From 11041f8292920dc9c0d71b4059a71196bc715e5a Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Mon, 25 Jul 2022 16:58:14 +0200 Subject: [PATCH 01/16] Rebranding --- package.json | 5 ++--- src/Client.ts | 2 +- src/Components/BrewerStoreContainer.tsx | 2 +- src/Components/CoffeeStoreContainer.tsx | 2 +- src/Components/Metadata.tsx | 2 +- src/Pages/Admin/Configuration.tsx | 8 ++++---- src/Utilities/CheckboxFilter.ts | 2 +- src/Utilities/LanguageCodes.ts | 2 +- src/Utilities/SelectedProject.ts | 2 +- src/Utilities/StoreListing.tsx | 2 +- 10 files changed, 14 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index a48284d..75ec89f 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,8 @@ { - "name": "@kentico/kontent-sample-app-react", + "name": "@kontent-ai/sample-app-react", "version": "2.1.0", "private": true, "devDependencies": { - "@kentico/kontent-model-generator": "^4.1.0", "@simply007org/kontent-react-components": "^0.0.8", "@testing-library/jest-dom": "^5.16.3", "@testing-library/react": "^12.1.4", @@ -22,7 +21,7 @@ "react-scripts": "^5.0.1" }, "dependencies": { - "@kentico/kontent-delivery": "11.7.0", + "@kontent-ai/delivery-sdk": "^12.0.2", "@simply007org/kontent-react-components": "0.0.8", "@simply007org/react-spinners": "0.0.3", "qs": "^6.9.4", diff --git a/src/Client.ts b/src/Client.ts index 9b9f951..e2df775 100644 --- a/src/Client.ts +++ b/src/Client.ts @@ -2,7 +2,7 @@ import Cookies from 'universal-cookie'; import { camelCasePropertyNameResolver, DeliveryClient, -} from '@kentico/kontent-delivery'; +} from '@kontent-ai/delivery-sdk'; import packageInfo from '../package.json'; import { selectedProjectCookieName } from './const'; import { defaultProjectId } from './Utilities/SelectedProject'; diff --git a/src/Components/BrewerStoreContainer.tsx b/src/Components/BrewerStoreContainer.tsx index f0bc71e..5a55729 100644 --- a/src/Components/BrewerStoreContainer.tsx +++ b/src/Components/BrewerStoreContainer.tsx @@ -9,7 +9,7 @@ import { } from '../Utilities/LanguageCodes'; import BrewerStoreListing from './BrewerStoreListing'; import CheckboxFilter from './CheckboxFilter'; -import { ITaxonomyTerms } from '@kentico/kontent-delivery'; +import { ITaxonomyTerms } from '@kontent-ai/delivery-sdk'; import { useIntl } from 'react-intl'; import { Brewer } from '../Models/brewer'; import { projectModel } from '../Models/_project'; diff --git a/src/Components/CoffeeStoreContainer.tsx b/src/Components/CoffeeStoreContainer.tsx index 44961b3..1d2d8ae 100644 --- a/src/Components/CoffeeStoreContainer.tsx +++ b/src/Components/CoffeeStoreContainer.tsx @@ -8,7 +8,7 @@ import { } from '../Utilities/LanguageCodes'; import CheckboxFilter from './CheckboxFilter'; import CoffeeStoreListing from './CoffeeStoreListing'; -import { ITaxonomyTerms } from '@kentico/kontent-delivery'; +import { ITaxonomyTerms } from '@kontent-ai/delivery-sdk'; import { Coffee } from '../Models/coffee'; import { useIntl } from 'react-intl'; import { projectModel } from '../Models/_project'; diff --git a/src/Components/Metadata.tsx b/src/Components/Metadata.tsx index ae992a0..dc3e4a8 100644 --- a/src/Components/Metadata.tsx +++ b/src/Components/Metadata.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { Helmet } from 'react-helmet'; -import { Elements } from '@kentico/kontent-delivery'; +import { Elements } from '@kontent-ai/delivery-sdk'; interface MetaDataProps { title?: Elements.TextElement; diff --git a/src/Pages/Admin/Configuration.tsx b/src/Pages/Admin/Configuration.tsx index 58f471d..beabb0c 100644 --- a/src/Pages/Admin/Configuration.tsx +++ b/src/Pages/Admin/Configuration.tsx @@ -129,7 +129,7 @@ const Configuration: React.FC = () => { navigate(`/?infoMessage=${infoMessage}`); }; - const openKenticoKontentProjectSelector = ( + const openKontentProjectSelector = ( event: FormEvent ): void => { event.preventDefault(); @@ -139,7 +139,7 @@ const Configuration: React.FC = () => { window.open( 'https://app.kontent.ai/sample-site-configuration', - 'Kentico Kontent', + 'Kontent-ai', `status=no,width=${windowWidth},height=${windowHeight},resizable=yes,left= ${left},top=${top},toolbar=no,menubar=no,location=no,directories=no` ); @@ -164,7 +164,7 @@ const Configuration: React.FC = () => { Kentico Kontent logo @@ -188,7 +188,7 @@ const Configuration: React.FC = () => { new sample project. The app will be configured with its project ID.

-
+ { return price.toLocaleString(language, { From c49d1864d52f1d38ff251d803df9e0093e2d08df Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Tue, 26 Jul 2022 09:11:34 +0200 Subject: [PATCH 02/16] Rebranding --- .github/CODEOWNERS | 2 +- CODE_OF_CONDUCT.md | 2 +- CONTRIBUTING.md | 13 +-- LICENSE | 2 +- README.md | 10 +- package-lock.json | 211 +++++++++++++----------------------- src/Components/RichText.tsx | 2 +- 7 files changed, 91 insertions(+), 151 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 8a6fe3f..90fb03a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,4 +1,4 @@ # Users referenced in this file will automatically be requested as reviewers for PRs that modify the given paths. # See https://help.github.com/articles/about-code-owners/ -* @Kentico/developer-relations +* @Kontent-ai/developer-relations diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index a1dab8b..c1ff396 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -34,7 +34,7 @@ This Code of Conduct applies both within project spaces and in public spaces whe ## Enforcement -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at DevelopersCommunity@kentico.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at devrel@konten.ai. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cdf4977..3580d79 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,7 @@ There are many different ways in which you can contribute. One of the easiest wa Please note that **level of provided support is always determined by the [LICENSE](LICENSE.md)** of a given open-source project. Also, always make sure you use the **[latest version](../../releases)** of any given OS project. We can't provide any help for older versions. We don't want to make things complicated so we try to take the same approach in all our repositories. -### I found a bug in a Kentico's open-source project +### I found a bug in a Kontent.ai open-source project @@ -20,8 +20,7 @@ Sorry to hear that. Just log a new [GitHub issue](../../issues) and someone will To get help with coding and structuring your projects, use [StackOverflow](https://stackoverflow.com/) to ask questions with one of the following tags: -- [`kentico-kontent`](https://stackoverflow.com/questions/tagged/kentico-kontent) -- [`kentico`](https://stackoverflow.com/questions/tagged/kentico) +- [`kontent.ai`](https://stackoverflow.com/questions/tagged/kontent.ai) Our team members and the community monitor these channels on a regular basis. @@ -29,7 +28,7 @@ Our team members and the community monitor these channels on a regular basis. -Security issues and bugs should be reported privately, via email, to the Kentico Developer Community Team developerscommunity@kentico.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. +Security issues and bugs should be reported privately, via email, to the Kontent.ai Developer Community Team devrel@kontent.ai. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. ### I have an idea for a new feature (or feedback on existing functionality) @@ -42,7 +41,7 @@ Everybody loves new features! You can submit a new [feature request](../../issue Unless you're fixing a typo, it's usually a good idea to discuss the feature before you submit a pull request with code changes, so let's start with submitting a new [GitHub issue](../../issues) and discussing the whether it fits the vision of a given project. -You might also read these two blogs posts on contributing code: [Open Source Contribution Etiquette](http://tirania.org/blog/archive/2010/Dec-31.html) by Miguel de Icaza and [Don't "Push" Your Pull Requests](https://www.igvita.com/2011/12/19/dont-push-your-pull-requests/) by Ilya Grigorik. Note that all code submissions will be rigorously reviewed and tested by the Kentico Maintainers teams, and only those that meet an high bar for both quality and design/roadmap appropriateness will be merged into the source. +You might also read these two blogs posts on contributing code: [Open Source Contribution Etiquette](http://tirania.org/blog/archive/2010/Dec-31.html) by Miguel de Icaza and [Don't "Push" Your Pull Requests](https://www.igvita.com/2011/12/19/dont-push-your-pull-requests/) by Ilya Grigorik. Note that all code submissions will be rigorously reviewed and tested by the Kontent.ai Maintainers teams, and only those that meet an high bar for both quality and design/roadmap appropriateness will be merged into the source. ### Example - process of contribution @@ -68,12 +67,12 @@ To start with coding, fork the repository you want to contribute to, create a ne -Your pull request will now go through extensive checks by the subject matter experts on our team. Please be patient. Update your pull request according to feedback until it is approved by one of the Kentico maintainers. After that, one of our team members may adjust the branch you merge into based on the expected release schedule. +Your pull request will now go through extensive checks by the subject matter experts on our team. Please be patient. Update your pull request according to feedback until it is approved by one of the Kontent.ai maintainers. After that, one of our team members may adjust the branch you merge into based on the expected release schedule. ## Code of Conduct -The Kentico team is committed to fostering a welcoming community, therefore this project has adopted the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). If you have any additional questions or comments, you can contact us directly at developerscommunity@kentico.com. +The Kotent.ai team is committed to fostering a welcoming community, therefore this project has adopted the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). If you have any additional questions or comments, you can contact us directly at devrel@kontent.ai ![Analytics](https://kentico-ga-beacon.azurewebsites.net/api/UA-69014260-4/Kentico/Home/master/CONTRIBUTING.md?pixel) diff --git a/LICENSE b/LICENSE index 3343ee8..290435b 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017 Kentico +Copyright (c) 2022 Kontent s.r.o. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 72afe04..cfd2bbc 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![Live Demo](https://img.shields.io/badge/live-demo-brightgreen.svg)](https://kontent-sample-app-react.netlify.app/) [![Stack Overflow](https://img.shields.io/badge/Stack%20Overflow-ASK%20NOW-FE7A16.svg?logo=stackoverflow&logoColor=white)](https://stackoverflow.com/tags/kentico-kontent) -This is a sample website written in Typescript utilizing the Kontent Delivery API to retrieve content from Kontent by Kentico. You can register your developer account at . For a brief walkthrough, check out [Running the React sample app](https://kontent.ai/learn/tutorials/develop-apps/get-started/run-the-react-sample-app) at Kontent Learn. +This is a sample website written in Typescript utilizing the Kontent.ai Delivery API to retrieve content from Kontent.ai. You can register your developer account at . For a brief walkthrough, check out [Running the React sample app](https://kontent.ai/learn/tutorials/develop-apps/get-started/run-the-react-sample-app) at Kontent Learn. ## Application setup @@ -74,7 +74,7 @@ You can retrieve content either through the Kontent Delivery SDKs or the Kontent For more info about the API, see the [API reference](https://kontent.ai/learn/reference). -You can find the Delivery and other SDKs at . +You can find the Delivery and other SDKs at . ## Used toolchain @@ -86,7 +86,7 @@ There are two types of model mapping in this application: ### content type -> DTO -> component -Content type definitions are being generated from content types via [Kontent.ai model generator](https://github.com/Kentico/kontent-model-generator-js) tool. All generated types can be found in `src/Models` folder. The `_project.ts` contains information about the project structure such as project languages as well as other structure information like codenames about content types. +Content type definitions are being generated from content types via [Kontent.ai model generator](https://github.com/kontent-ai/model-generator-js) tool. All generated types can be found in `src/Models` folder. The `_project.ts` contains information about the project structure such as project languages as well as other structure information like codenames about content types. ### content type -> DTO -> view model -> component @@ -94,7 +94,7 @@ Some models displayed in views might require an adjustment from content types. F ### Data fetching -This solution fetches data using the [Delivery client](https://github.com/Kentico/kontent-delivery-sdk-js). For more implementation detail to set up the client see `src/Client.ts`. The data are fetched and stored in a `container` component directly in its state. Then they are passed to the `presentation` component. For a better understanding see the code example below. However, depending on your needs, you can use other technologies for managing application states such as: +This solution fetches data using the [Delivery client](https://github.com/kontent-ai/delivery-sdk-js). For more implementation detail to set up the client see `src/Client.ts`. The data are fetched and stored in a `container` component directly in its state. Then they are passed to the `presentation` component. For a better understanding see the code example below. However, depending on your needs, you can use other technologies for managing application states such as: - [Context](https://reactjs.org/docs/context.html) - [Redux](https://react-redux.js.org/) @@ -245,4 +245,4 @@ We would like to express our thanks to the following people who contributed and - [Bee Martinez](https://github.com/beemtz) -Would you like to become a hero too? Pick an [issue](https://github.com/Kentico/kontent-sample-app-react/issues) and send us a pull request! +Would you like to become a hero too? Pick an [issue](https://github.com/kontent-ai/delivery-sdk-js/issues) and send us a pull request! diff --git a/package-lock.json b/package-lock.json index bcd3071..cf2a259 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,14 +1,14 @@ { - "name": "@kentico/kontent-sample-app-react", + "name": "@kontent-ai/sample-app-react", "version": "2.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "@kentico/kontent-sample-app-react", + "name": "@kontent-ai/sample-app-react", "version": "2.1.0", "dependencies": { - "@kentico/kontent-delivery": "11.7.0", + "@kontent-ai/delivery-sdk": "^12.0.2", "@simply007org/kontent-react-components": "0.0.8", "@simply007org/react-spinners": "0.0.3", "qs": "^6.9.4", @@ -21,7 +21,6 @@ "validator": "^13.7.0" }, "devDependencies": { - "@kentico/kontent-model-generator": "^4.1.0", "@simply007org/kontent-react-components": "^0.0.8", "@testing-library/jest-dom": "^5.16.3", "@testing-library/react": "^12.1.4", @@ -3081,6 +3080,7 @@ "version": "9.5.0", "resolved": "https://registry.npmjs.org/@kentico/kontent-core/-/kontent-core-9.5.0.tgz", "integrity": "sha512-jYhanUJNfU9Ot9owxA5oIEFU56ULxfbyv1cQpmlhLKzL+DfkVKT73h7aQFIn6Dw8pILqNX9pSxGcsJhfRtoWQw==", + "dev": true, "dependencies": { "axios": "0.26.1" }, @@ -3092,6 +3092,7 @@ "version": "11.7.0", "resolved": "https://registry.npmjs.org/@kentico/kontent-delivery/-/kontent-delivery-11.7.0.tgz", "integrity": "sha512-1NrPeGzBz7+AY62dH1nUAXOibSM+dUPBBToWrUJpsAE/qWRuVGUHprusjpXwR+hY+5tIWSw6pNjKCA06X5PMEw==", + "dev": true, "dependencies": { "@kentico/kontent-core": "9.5.0", "url-parse": "1.5.10", @@ -3101,74 +3102,50 @@ "node": ">= 8" } }, - "node_modules/@kentico/kontent-model-generator": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@kentico/kontent-model-generator/-/kontent-model-generator-4.1.0.tgz", - "integrity": "sha512-8moZ1und/s5jCHiRL1QSRI3FTokUQZUTVsV8RfWd3Xd+uuDfghUAjJIk7ulXNxwOAaMxJaU/QprJPD7GJnzYnw==", - "dev": true, + "node_modules/@kontent-ai/core-sdk": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@kontent-ai/core-sdk/-/core-sdk-10.0.0.tgz", + "integrity": "sha512-Qm3QbNmnsXPweHvB3roa5WuX0Z0Uesg0ehfJGM6Gr/5eI4/dCXs+M3CA2fB+KQ/mQoxJ9hbLyIXbhPiFVS+eZw==", "dependencies": { - "@kentico/kontent-delivery": "11.0.0", - "colors": "1.4.0", - "prettier": "2.4.1", - "yargs": "17.2.1" - }, - "bin": { - "kontent-generate": "dist/cjs/lib/cli/cli.js" + "axios": "0.27.2" }, "engines": { "node": ">= 8" } }, - "node_modules/@kentico/kontent-model-generator/node_modules/@kentico/kontent-core": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@kentico/kontent-core/-/kontent-core-9.3.0.tgz", - "integrity": "sha512-1+XjR5JaQv9yEFu9XUPtM4VphVLR04LuT5hgczYxlaYwHFbnYdi192YaGJF3ffdrIxfTbCbuJyH47eVzYLfcoA==", - "dev": true, + "node_modules/@kontent-ai/core-sdk/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dependencies": { - "axios": "0.21.4" - }, - "engines": { - "node": ">= 8" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, - "node_modules/@kentico/kontent-model-generator/node_modules/@kentico/kontent-delivery": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@kentico/kontent-delivery/-/kontent-delivery-11.0.0.tgz", - "integrity": "sha512-YSH40GL7t1VI5G4J4TslnBN/jYjHL4NdLnVo+BBPi5RwLWx7l+3ZrqRVvqjkRk1PRPd/hzMuH98LNSWP1WQJpA==", - "dev": true, + "node_modules/@kontent-ai/core-sdk/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { - "@kentico/kontent-core": "9.3.0", - "uuid": "8.3.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, "engines": { - "node": ">= 8" - } - }, - "node_modules/@kentico/kontent-model-generator/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.0" + "node": ">= 6" } }, - "node_modules/@kentico/kontent-model-generator/node_modules/yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", - "dev": true, + "node_modules/@kontent-ai/delivery-sdk": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/@kontent-ai/delivery-sdk/-/delivery-sdk-12.0.2.tgz", + "integrity": "sha512-baeWlq5Sp2OKpBgwmo4bcuf8vIpXwKAGX2ngcAOfnyR8zj8CcqWbHat4ix3MXLaPxwB2wEWmTSuVw+lFo0IVKA==", "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "@kontent-ai/core-sdk": "10.0.0", + "url-parse": "1.5.10", + "uuid": "8.3.2" }, "engines": { - "node": ">=12" + "node": ">= 8" } }, "node_modules/@leichtgewicht/ip-codec": { @@ -5100,8 +5077,7 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -5170,6 +5146,7 @@ "version": "0.26.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dev": true, "dependencies": { "follow-redirects": "^1.14.8" } @@ -6055,20 +6032,10 @@ "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -7105,7 +7072,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, "engines": { "node": ">=0.4.0" } @@ -13357,7 +13323,6 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -13366,7 +13331,6 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -15577,15 +15541,18 @@ } }, "node_modules/prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", "dev": true, "bin": { "prettier": "bin-prettier.js" }, "engines": { "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/pretty-bytes": { @@ -21591,6 +21558,7 @@ "version": "9.5.0", "resolved": "https://registry.npmjs.org/@kentico/kontent-core/-/kontent-core-9.5.0.tgz", "integrity": "sha512-jYhanUJNfU9Ot9owxA5oIEFU56ULxfbyv1cQpmlhLKzL+DfkVKT73h7aQFIn6Dw8pILqNX9pSxGcsJhfRtoWQw==", + "dev": true, "requires": { "axios": "0.26.1" } @@ -21599,69 +21567,52 @@ "version": "11.7.0", "resolved": "https://registry.npmjs.org/@kentico/kontent-delivery/-/kontent-delivery-11.7.0.tgz", "integrity": "sha512-1NrPeGzBz7+AY62dH1nUAXOibSM+dUPBBToWrUJpsAE/qWRuVGUHprusjpXwR+hY+5tIWSw6pNjKCA06X5PMEw==", + "dev": true, "requires": { "@kentico/kontent-core": "9.5.0", "url-parse": "1.5.10", "uuid": "8.3.2" } }, - "@kentico/kontent-model-generator": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@kentico/kontent-model-generator/-/kontent-model-generator-4.1.0.tgz", - "integrity": "sha512-8moZ1und/s5jCHiRL1QSRI3FTokUQZUTVsV8RfWd3Xd+uuDfghUAjJIk7ulXNxwOAaMxJaU/QprJPD7GJnzYnw==", - "dev": true, + "@kontent-ai/core-sdk": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@kontent-ai/core-sdk/-/core-sdk-10.0.0.tgz", + "integrity": "sha512-Qm3QbNmnsXPweHvB3roa5WuX0Z0Uesg0ehfJGM6Gr/5eI4/dCXs+M3CA2fB+KQ/mQoxJ9hbLyIXbhPiFVS+eZw==", "requires": { - "@kentico/kontent-delivery": "11.0.0", - "colors": "1.4.0", - "prettier": "2.4.1", - "yargs": "17.2.1" + "axios": "0.27.2" }, "dependencies": { - "@kentico/kontent-core": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@kentico/kontent-core/-/kontent-core-9.3.0.tgz", - "integrity": "sha512-1+XjR5JaQv9yEFu9XUPtM4VphVLR04LuT5hgczYxlaYwHFbnYdi192YaGJF3ffdrIxfTbCbuJyH47eVzYLfcoA==", - "dev": true, - "requires": { - "axios": "0.21.4" - } - }, - "@kentico/kontent-delivery": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/@kentico/kontent-delivery/-/kontent-delivery-11.0.0.tgz", - "integrity": "sha512-YSH40GL7t1VI5G4J4TslnBN/jYjHL4NdLnVo+BBPi5RwLWx7l+3ZrqRVvqjkRk1PRPd/hzMuH98LNSWP1WQJpA==", - "dev": true, - "requires": { - "@kentico/kontent-core": "9.3.0", - "uuid": "8.3.2" - } - }, "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dev": true, + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "requires": { - "follow-redirects": "^1.14.0" + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" } }, - "yargs": { - "version": "17.2.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.2.1.tgz", - "integrity": "sha512-XfR8du6ua4K6uLGm5S6fA+FIJom/MdJcFNVY8geLlp2v8GYbOXD4EB1tPNZsRn4vBzKGMgb5DRZMeWuFc2GO8Q==", - "dev": true, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" } } } }, + "@kontent-ai/delivery-sdk": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/@kontent-ai/delivery-sdk/-/delivery-sdk-12.0.2.tgz", + "integrity": "sha512-baeWlq5Sp2OKpBgwmo4bcuf8vIpXwKAGX2ngcAOfnyR8zj8CcqWbHat4ix3MXLaPxwB2wEWmTSuVw+lFo0IVKA==", + "requires": { + "@kontent-ai/core-sdk": "10.0.0", + "url-parse": "1.5.10", + "uuid": "8.3.2" + } + }, "@leichtgewicht/ip-codec": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", @@ -23143,8 +23094,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "at-least-node": { "version": "1.0.0", @@ -23182,6 +23132,7 @@ "version": "0.26.1", "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dev": true, "requires": { "follow-redirects": "^1.14.8" } @@ -23869,17 +23820,10 @@ "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -24609,8 +24553,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "depd": { "version": "2.0.0", @@ -29266,14 +29209,12 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "requires": { "mime-db": "1.52.0" } @@ -30754,9 +30695,9 @@ "dev": true }, "prettier": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", - "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", "dev": true }, "pretty-bytes": { diff --git a/src/Components/RichText.tsx b/src/Components/RichText.tsx index bf18324..1853503 100644 --- a/src/Components/RichText.tsx +++ b/src/Components/RichText.tsx @@ -12,7 +12,7 @@ import { IContentItem, ILink, IRichTextImage, -} from '@kentico/kontent-delivery'; +} from '@kontent-ai/delivery-sdk'; interface RichTextProps { element: Elements.RichTextElement; From 3503b684c470df8fb731b88564c3cc614ebc6475 Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Tue, 26 Jul 2022 11:11:43 +0200 Subject: [PATCH 03/16] Rebranding: change netlify and glitch links --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cfd2bbc..00fd84d 100644 --- a/README.md +++ b/README.md @@ -38,9 +38,9 @@ When you now run the sample application, the application retrieves content from Deploy, explore and change the app directly in the browser. -[![Remix on Glitch](https://cdn.glitch.com/2703baf2-b643-4da7-ab91-7ee2a2d00b5b%2Fremix-button.svg)](https://glitch.com/edit/#!/remix/clone-from-repo?REPO_URL=https://github.com/Kentico/kontent-sample-app-react) +[![Remix on Glitch](https://cdn.glitch.com/2703baf2-b643-4da7-ab91-7ee2a2d00b5b%2Fremix-button.svg)](https://glitch.com/edit/#!/remix/clone-from-repo?REPO_URL=https://github.com/kontent-ai/sample-app-react) -[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/Kentico/kontent-sample-app-react) +[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/kontent-ai/sample-app-react) ## Previewing content from your project From f260ea5f487df276ae80e13e453c1458778523ab Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Tue, 26 Jul 2022 13:55:21 +0200 Subject: [PATCH 04/16] Rebranding, regenerate models with new generator --- src/Components/Banner.tsx | 2 +- src/Components/BrewerStoreContainer.tsx | 6 +- src/Components/BrewerStoreListing.tsx | 2 +- src/Components/CoffeeStoreContainer.tsx | 6 +- src/Components/CoffeeStoreListing.tsx | 2 +- src/Components/LatestArticles.tsx | 2 +- src/Components/OurStory.tsx | 2 +- src/Components/TasteOurCoffee.tsx | 2 +- src/Models/_project.ts | 919 -------- src/Models/about_us.ts | 21 - src/Models/accessory.ts | 26 - src/Models/article.ts | 29 - src/Models/brewer.ts | 26 - src/Models/cafe.ts | 16 - src/Models/coffee.ts | 30 - src/Models/content-types/about_us.ts | 156 ++ src/Models/content-types/accessory.ts | 216 ++ src/Models/content-types/article.ts | 236 ++ src/Models/content-types/brewer.ts | 215 ++ src/Models/content-types/cafe.ts | 83 + src/Models/content-types/coffee.ts | 255 +++ src/Models/content-types/fact_about_us.ts | 49 + src/Models/content-types/grinder.ts | 216 ++ src/Models/content-types/hero_unit.ts | 49 + src/Models/content-types/home.ts | 199 ++ src/Models/content-types/hosted_video.ts | 25 + src/Models/content-types/index.ts | 13 + src/Models/content-types/office.ts | 83 + src/Models/content-types/tweet.ts | 33 + src/Models/fact_about_us.ts | 11 - src/Models/grinder.ts | 26 - src/Models/hero_unit.ts | 11 - src/Models/home.ts | 28 - src/Models/hosted_video.ts | 9 - src/Models/index.ts | 3 + src/Models/office.ts | 16 - src/Models/project/assetFolders.ts | 18 + src/Models/project/collections.ts | 17 + src/Models/project/contentTypes.ts | 2498 +++++++++++++++++++++ src/Models/project/index.ts | 8 + src/Models/project/languages.ts | 34 + src/Models/project/roles.ts | 8 + src/Models/project/taxonomies.ts | 268 +++ src/Models/project/webhooks.ts | 8 + src/Models/project/workflows.ts | 19 + src/Models/taxonomies/index.ts | 5 + src/Models/taxonomies/manufacturer.ts | 8 + src/Models/taxonomies/personas.ts | 14 + src/Models/taxonomies/processing.ts | 8 + src/Models/taxonomies/product_status.ts | 8 + src/Models/taxonomies/sitemap_538125f.ts | 21 + src/Models/tweet.ts | 10 - src/Pages/About.tsx | 8 +- src/Pages/Article.tsx | 6 +- src/Pages/Articles.tsx | 9 +- src/Pages/Brewer.tsx | 6 +- src/Pages/Cafes.tsx | 6 +- src/Pages/Coffee.tsx | 6 +- src/Pages/Contacts.tsx | 6 +- src/Pages/Home.tsx | 6 +- src/Utilities/CafeListing.ts | 2 +- 61 files changed, 4812 insertions(+), 1218 deletions(-) delete mode 100644 src/Models/_project.ts delete mode 100644 src/Models/about_us.ts delete mode 100644 src/Models/accessory.ts delete mode 100644 src/Models/article.ts delete mode 100644 src/Models/brewer.ts delete mode 100644 src/Models/cafe.ts delete mode 100644 src/Models/coffee.ts create mode 100644 src/Models/content-types/about_us.ts create mode 100644 src/Models/content-types/accessory.ts create mode 100644 src/Models/content-types/article.ts create mode 100644 src/Models/content-types/brewer.ts create mode 100644 src/Models/content-types/cafe.ts create mode 100644 src/Models/content-types/coffee.ts create mode 100644 src/Models/content-types/fact_about_us.ts create mode 100644 src/Models/content-types/grinder.ts create mode 100644 src/Models/content-types/hero_unit.ts create mode 100644 src/Models/content-types/home.ts create mode 100644 src/Models/content-types/hosted_video.ts create mode 100644 src/Models/content-types/index.ts create mode 100644 src/Models/content-types/office.ts create mode 100644 src/Models/content-types/tweet.ts delete mode 100644 src/Models/fact_about_us.ts delete mode 100644 src/Models/grinder.ts delete mode 100644 src/Models/hero_unit.ts delete mode 100644 src/Models/home.ts delete mode 100644 src/Models/hosted_video.ts create mode 100644 src/Models/index.ts delete mode 100644 src/Models/office.ts create mode 100644 src/Models/project/assetFolders.ts create mode 100644 src/Models/project/collections.ts create mode 100644 src/Models/project/contentTypes.ts create mode 100644 src/Models/project/index.ts create mode 100644 src/Models/project/languages.ts create mode 100644 src/Models/project/roles.ts create mode 100644 src/Models/project/taxonomies.ts create mode 100644 src/Models/project/webhooks.ts create mode 100644 src/Models/project/workflows.ts create mode 100644 src/Models/taxonomies/index.ts create mode 100644 src/Models/taxonomies/manufacturer.ts create mode 100644 src/Models/taxonomies/personas.ts create mode 100644 src/Models/taxonomies/processing.ts create mode 100644 src/Models/taxonomies/product_status.ts create mode 100644 src/Models/taxonomies/sitemap_538125f.ts delete mode 100644 src/Models/tweet.ts diff --git a/src/Components/Banner.tsx b/src/Components/Banner.tsx index a728c81..0be01ba 100644 --- a/src/Components/Banner.tsx +++ b/src/Components/Banner.tsx @@ -1,6 +1,6 @@ import React from 'react'; +import { HeroUnit } from '../Models/content-types/hero_unit'; import RichText from './RichText'; -import { HeroUnit } from '../Models/hero_unit'; interface BannerProps { heroUnit: HeroUnit; diff --git a/src/Components/BrewerStoreContainer.tsx b/src/Components/BrewerStoreContainer.tsx index 5a55729..09af526 100644 --- a/src/Components/BrewerStoreContainer.tsx +++ b/src/Components/BrewerStoreContainer.tsx @@ -11,8 +11,8 @@ import BrewerStoreListing from './BrewerStoreListing'; import CheckboxFilter from './CheckboxFilter'; import { ITaxonomyTerms } from '@kontent-ai/delivery-sdk'; import { useIntl } from 'react-intl'; -import { Brewer } from '../Models/brewer'; -import { projectModel } from '../Models/_project'; +import { Brewer } from '../Models/content-types/brewer'; +import { contentTypes } from '../Models/project/contentTypes'; interface filterType { [index: string]: string[]; @@ -47,7 +47,7 @@ const BrewerStoreContainer: React.FC = () => { spinnerService.show('apiSpinner'); const query = Client.items() - .type(projectModel.contentTypes.brewer.codename) + .type(contentTypes.brewer.codename) .orderByAscending('elements.product_name'); if (language) { diff --git a/src/Components/BrewerStoreListing.tsx b/src/Components/BrewerStoreListing.tsx index 4214062..30bb91b 100644 --- a/src/Components/BrewerStoreListing.tsx +++ b/src/Components/BrewerStoreListing.tsx @@ -2,8 +2,8 @@ import React from 'react'; import { Link } from 'react-router-dom'; import { resolveContentLink } from '../Utilities/ContentLinks'; import { formatPrice, renderProductStatus } from '../Utilities/StoreListing'; -import { Brewer } from '../Models/brewer'; import { useIntl } from 'react-intl'; +import { Brewer } from '../Models/content-types/brewer'; interface BrewerStoreListingProps { brewers: Brewer[]; diff --git a/src/Components/CoffeeStoreContainer.tsx b/src/Components/CoffeeStoreContainer.tsx index 1d2d8ae..c233d65 100644 --- a/src/Components/CoffeeStoreContainer.tsx +++ b/src/Components/CoffeeStoreContainer.tsx @@ -9,9 +9,9 @@ import { import CheckboxFilter from './CheckboxFilter'; import CoffeeStoreListing from './CoffeeStoreListing'; import { ITaxonomyTerms } from '@kontent-ai/delivery-sdk'; -import { Coffee } from '../Models/coffee'; import { useIntl } from 'react-intl'; -import { projectModel } from '../Models/_project'; +import { Coffee } from '../Models/content-types/coffee'; +import { contentTypes } from '../Models/project/contentTypes'; interface filterType { [index: string]: string[]; @@ -36,7 +36,7 @@ const CoffeeStoreContainer: React.FC = () => { spinnerService.show('apiSpinner'); const query = Client.items() - .type(projectModel.contentTypes.coffee.codename) + .type(contentTypes.coffee.codename) .orderByAscending('elements.product_name'); if (language) { diff --git a/src/Components/CoffeeStoreListing.tsx b/src/Components/CoffeeStoreListing.tsx index b97b2e2..ab96112 100644 --- a/src/Components/CoffeeStoreListing.tsx +++ b/src/Components/CoffeeStoreListing.tsx @@ -2,8 +2,8 @@ import React from 'react'; import { Link } from 'react-router-dom'; import { resolveContentLink } from '../Utilities/ContentLinks'; import { formatPrice, renderProductStatus } from '../Utilities/StoreListing'; -import { Coffee } from '../Models/coffee'; import { useIntl } from 'react-intl'; +import { Coffee } from '../Models/content-types/coffee'; interface CoffeeStoreListingProps { coffees: Coffee[]; diff --git a/src/Components/LatestArticles.tsx b/src/Components/LatestArticles.tsx index 3c3882b..3ceef02 100644 --- a/src/Components/LatestArticles.tsx +++ b/src/Components/LatestArticles.tsx @@ -1,7 +1,7 @@ import React from 'react'; import Link from '../Components/LowerCaseUrlLink'; import { FormattedDate, useIntl } from 'react-intl'; -import { Article } from '../Models/article'; +import { Article } from '../Models/content-types/article'; interface LatestArticlesProps { articles: Article[]; diff --git a/src/Components/OurStory.tsx b/src/Components/OurStory.tsx index 0d98dfa..8836151 100644 --- a/src/Components/OurStory.tsx +++ b/src/Components/OurStory.tsx @@ -1,6 +1,6 @@ import React from 'react'; +import { FactAboutUs } from '../Models/content-types/fact_about_us'; import RichText from './RichText'; -import { FactAboutUs } from '../Models/fact_about_us'; interface OurStoryProps { fact: FactAboutUs; diff --git a/src/Components/TasteOurCoffee.tsx b/src/Components/TasteOurCoffee.tsx index 2a72110..9da0d5c 100644 --- a/src/Components/TasteOurCoffee.tsx +++ b/src/Components/TasteOurCoffee.tsx @@ -2,7 +2,7 @@ import React from 'react'; import Link from '../Components/LowerCaseUrlLink'; import { useIntl } from 'react-intl'; -import { Cafe } from '../Models/cafe'; +import { Cafe } from '../Models/content-types/cafe'; interface TestOurCoffeeProps { cafes: Cafe[]; diff --git a/src/Models/_project.ts b/src/Models/_project.ts deleted file mode 100644 index 6ea6735..0000000 --- a/src/Models/_project.ts +++ /dev/null @@ -1,919 +0,0 @@ -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export const projectModel = { - languages: { - enUS: { - codename: 'en-US', - name: 'English (United States)', - }, - esES: { - codename: 'es-ES', - name: 'Spanish (Spain)', - }, - }, - contentTypes: { - about_us: { - codename: 'about_us', - name: 'About us', - elements: { - metadata__og_description: { - codename: 'metadata__og_description', - name: 'og:description', - }, - metadata__meta_title: { - codename: 'metadata__meta_title', - name: 'Meta title', - }, - metadata__og_title: { - codename: 'metadata__og_title', - name: 'og:title', - }, - metadata__meta_description: { - codename: 'metadata__meta_description', - name: 'Meta description', - }, - metadata__twitter_site: { - codename: 'metadata__twitter_site', - name: 'twitter:site', - }, - url_pattern: { - codename: 'url_pattern', - name: 'URL pattern', - }, - metadata__twitter_image: { - codename: 'metadata__twitter_image', - name: 'twitter:image', - }, - sitemap: { - codename: 'sitemap', - name: 'Sitemap', - }, - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - name: 'twitter:creator', - }, - metadata__twitter_title: { - codename: 'metadata__twitter_title', - name: 'twitter:title', - }, - metadata__twitter_description: { - codename: 'metadata__twitter_description', - name: 'twitter:description', - }, - metadata__og_image: { - codename: 'metadata__og_image', - name: 'og:image', - }, - facts: { - codename: 'facts', - name: 'Facts', - }, - }, - }, - accessory: { - codename: 'accessory', - name: 'Accessory', - elements: { - metadata__og_description: { - codename: 'metadata__og_description', - name: 'og:description', - }, - metadata__meta_title: { - codename: 'metadata__meta_title', - name: 'Meta title', - }, - metadata__og_title: { - codename: 'metadata__og_title', - name: 'og:title', - }, - long_description: { - codename: 'long_description', - name: 'Long description', - }, - metadata__meta_description: { - codename: 'metadata__meta_description', - name: 'Meta description', - }, - metadata__twitter_site: { - codename: 'metadata__twitter_site', - name: 'twitter:site', - }, - price: { - codename: 'price', - name: 'Price', - }, - metadata__twitter_image: { - codename: 'metadata__twitter_image', - name: 'twitter:image', - }, - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - name: 'twitter:creator', - }, - url_pattern: { - codename: 'url_pattern', - name: 'URL pattern', - }, - short_description: { - codename: 'short_description', - name: 'Short description', - }, - manufacturer: { - codename: 'manufacturer', - name: 'Manufacturer', - }, - metadata__twitter_title: { - codename: 'metadata__twitter_title', - name: 'twitter:title', - }, - metadata__twitter_description: { - codename: 'metadata__twitter_description', - name: 'twitter:description', - }, - metadata__og_image: { - codename: 'metadata__og_image', - name: 'og:image', - }, - sitemap: { - codename: 'sitemap', - name: 'Sitemap', - }, - product_status: { - codename: 'product_status', - name: 'Product status', - }, - image: { - codename: 'image', - name: 'Image', - }, - product_name: { - codename: 'product_name', - name: 'Product name', - }, - }, - }, - article: { - codename: 'article', - name: 'Article', - elements: { - metadata__og_description: { - codename: 'metadata__og_description', - name: 'og:description', - }, - metadata__meta_title: { - codename: 'metadata__meta_title', - name: 'Meta title', - }, - personas: { - codename: 'personas', - name: 'Personas', - }, - body_copy: { - codename: 'body_copy', - name: 'Body Copy', - }, - metadata__og_title: { - codename: 'metadata__og_title', - name: 'og:title', - }, - metadata__meta_description: { - codename: 'metadata__meta_description', - name: 'Meta description', - }, - metadata__twitter_site: { - codename: 'metadata__twitter_site', - name: 'twitter:site', - }, - post_date: { - codename: 'post_date', - name: 'Post date', - }, - meta_keywords: { - codename: 'meta_keywords', - name: 'Meta keywords', - }, - teaser_image: { - codename: 'teaser_image', - name: 'Teaser image', - }, - metadata__twitter_image: { - codename: 'metadata__twitter_image', - name: 'twitter:image', - }, - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - name: 'twitter:creator', - }, - title: { - codename: 'title', - name: 'Title', - }, - summary: { - codename: 'summary', - name: 'Summary', - }, - sitemap: { - codename: 'sitemap', - name: 'Sitemap', - }, - metadata__twitter_title: { - codename: 'metadata__twitter_title', - name: 'twitter:title', - }, - metadata__twitter_description: { - codename: 'metadata__twitter_description', - name: 'twitter:description', - }, - meta_description: { - codename: 'meta_description', - name: 'Meta description', - }, - metadata__og_image: { - codename: 'metadata__og_image', - name: 'og:image', - }, - related_articles: { - codename: 'related_articles', - name: 'Related articles', - }, - url_pattern: { - codename: 'url_pattern', - name: 'URL pattern', - }, - }, - }, - brewer: { - codename: 'brewer', - name: 'Brewer', - elements: { - product_name: { - codename: 'product_name', - name: 'Product name', - }, - metadata__og_description: { - codename: 'metadata__og_description', - name: 'og:description', - }, - metadata__meta_title: { - codename: 'metadata__meta_title', - name: 'Meta title', - }, - long_description: { - codename: 'long_description', - name: 'Long description', - }, - metadata__og_title: { - codename: 'metadata__og_title', - name: 'og:title', - }, - metadata__meta_description: { - codename: 'metadata__meta_description', - name: 'Meta description', - }, - metadata__twitter_site: { - codename: 'metadata__twitter_site', - name: 'twitter:site', - }, - price: { - codename: 'price', - name: 'Price', - }, - manufacturer: { - codename: 'manufacturer', - name: 'Manufacturer', - }, - metadata__twitter_image: { - codename: 'metadata__twitter_image', - name: 'twitter:image', - }, - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - name: 'twitter:creator', - }, - url_pattern: { - codename: 'url_pattern', - name: 'URL pattern', - }, - sitemap: { - codename: 'sitemap', - name: 'Sitemap', - }, - short_description: { - codename: 'short_description', - name: 'Short description', - }, - product_status: { - codename: 'product_status', - name: 'Product status', - }, - metadata__twitter_title: { - codename: 'metadata__twitter_title', - name: 'twitter:title', - }, - metadata__twitter_description: { - codename: 'metadata__twitter_description', - name: 'twitter:description', - }, - metadata__og_image: { - codename: 'metadata__og_image', - name: 'og:image', - }, - image: { - codename: 'image', - name: 'Image', - }, - }, - }, - cafe: { - codename: 'cafe', - name: 'Cafe', - elements: { - phone: { - codename: 'phone', - name: 'Phone', - }, - city: { - codename: 'city', - name: 'City', - }, - photo: { - codename: 'photo', - name: 'Photo', - }, - email: { - codename: 'email', - name: 'Email', - }, - country: { - codename: 'country', - name: 'Country', - }, - street: { - codename: 'street', - name: 'Street', - }, - state: { - codename: 'state', - name: 'State', - }, - zip_code: { - codename: 'zip_code', - name: 'ZIP Code', - }, - sitemap: { - codename: 'sitemap', - name: 'Sitemap', - }, - }, - }, - coffee: { - codename: 'coffee', - name: 'Coffee', - elements: { - metadata__og_description: { - codename: 'metadata__og_description', - name: 'og:description', - }, - metadata__meta_title: { - codename: 'metadata__meta_title', - name: 'Meta title', - }, - metadata__og_title: { - codename: 'metadata__og_title', - name: 'og:title', - }, - product_status: { - codename: 'product_status', - name: 'Product status', - }, - altitude: { - codename: 'altitude', - name: 'Altitude', - }, - metadata__meta_description: { - codename: 'metadata__meta_description', - name: 'Meta description', - }, - variety: { - codename: 'variety', - name: 'Variety', - }, - image: { - codename: 'image', - name: 'Image', - }, - metadata__twitter_site: { - codename: 'metadata__twitter_site', - name: 'twitter:site', - }, - url_pattern: { - codename: 'url_pattern', - name: 'URL pattern', - }, - price: { - codename: 'price', - name: 'Price', - }, - metadata__twitter_image: { - codename: 'metadata__twitter_image', - name: 'twitter:image', - }, - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - name: 'twitter:creator', - }, - country: { - codename: 'country', - name: 'Country', - }, - sitemap: { - codename: 'sitemap', - name: 'Sitemap', - }, - metadata__twitter_title: { - codename: 'metadata__twitter_title', - name: 'twitter:title', - }, - short_description: { - codename: 'short_description', - name: 'Short description', - }, - processing: { - codename: 'processing', - name: 'Processing', - }, - metadata__twitter_description: { - codename: 'metadata__twitter_description', - name: 'twitter:description', - }, - metadata__og_image: { - codename: 'metadata__og_image', - name: 'og:image', - }, - long_description: { - codename: 'long_description', - name: 'Long description', - }, - farm: { - codename: 'farm', - name: 'Farm', - }, - product_name: { - codename: 'product_name', - name: 'Product name', - }, - }, - }, - fact_about_us: { - codename: 'fact_about_us', - name: 'Fact about us', - elements: { - description: { - codename: 'description', - name: 'Description', - }, - title: { - codename: 'title', - name: 'Title', - }, - sitemap: { - codename: 'sitemap', - name: 'Sitemap', - }, - image: { - codename: 'image', - name: 'Image', - }, - }, - }, - grinder: { - codename: 'grinder', - name: 'Grinder', - elements: { - sitemap: { - codename: 'sitemap', - name: 'Sitemap', - }, - metadata__og_description: { - codename: 'metadata__og_description', - name: 'og:description', - }, - metadata__meta_title: { - codename: 'metadata__meta_title', - name: 'Meta title', - }, - metadata__og_title: { - codename: 'metadata__og_title', - name: 'og:title', - }, - price: { - codename: 'price', - name: 'Price', - }, - long_description: { - codename: 'long_description', - name: 'Long description', - }, - short_description: { - codename: 'short_description', - name: 'Short description', - }, - manufacturer: { - codename: 'manufacturer', - name: 'Manufacturer', - }, - metadata__meta_description: { - codename: 'metadata__meta_description', - name: 'Meta description', - }, - metadata__twitter_site: { - codename: 'metadata__twitter_site', - name: 'twitter:site', - }, - product_status: { - codename: 'product_status', - name: 'Product status', - }, - metadata__twitter_image: { - codename: 'metadata__twitter_image', - name: 'twitter:image', - }, - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - name: 'twitter:creator', - }, - image: { - codename: 'image', - name: 'Image', - }, - metadata__twitter_title: { - codename: 'metadata__twitter_title', - name: 'twitter:title', - }, - product_name: { - codename: 'product_name', - name: 'Product name', - }, - metadata__twitter_description: { - codename: 'metadata__twitter_description', - name: 'twitter:description', - }, - url_pattern: { - codename: 'url_pattern', - name: 'URL pattern', - }, - metadata__og_image: { - codename: 'metadata__og_image', - name: 'og:image', - }, - }, - }, - hero_unit: { - codename: 'hero_unit', - name: 'Hero Unit', - elements: { - sitemap: { - codename: 'sitemap', - name: 'Sitemap', - }, - title: { - codename: 'title', - name: 'Title', - }, - image: { - codename: 'image', - name: 'Image', - }, - marketing_message: { - codename: 'marketing_message', - name: 'Marketing message', - }, - }, - }, - home: { - codename: 'home', - name: 'Home', - elements: { - metadata__og_description: { - codename: 'metadata__og_description', - name: 'og:description', - }, - metadata__meta_title: { - codename: 'metadata__meta_title', - name: 'Meta title', - }, - metadata__og_title: { - codename: 'metadata__og_title', - name: 'og:title', - }, - articles: { - codename: 'articles', - name: 'Articles', - }, - hero_unit: { - codename: 'hero_unit', - name: 'Hero unit', - }, - metadata__meta_description: { - codename: 'metadata__meta_description', - name: 'Meta description', - }, - metadata__twitter_site: { - codename: 'metadata__twitter_site', - name: 'twitter:site', - }, - our_story: { - codename: 'our_story', - name: 'Our story', - }, - cafes: { - codename: 'cafes', - name: 'Cafes', - }, - metadata__twitter_image: { - codename: 'metadata__twitter_image', - name: 'twitter:image', - }, - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - name: 'twitter:creator', - }, - metadata__twitter_title: { - codename: 'metadata__twitter_title', - name: 'twitter:title', - }, - metadata__twitter_description: { - codename: 'metadata__twitter_description', - name: 'twitter:description', - }, - metadata__og_image: { - codename: 'metadata__og_image', - name: 'og:image', - }, - url_pattern: { - codename: 'url_pattern', - name: 'URL pattern', - }, - sitemap: { - codename: 'sitemap', - name: 'Sitemap', - }, - contact: { - codename: 'contact', - name: 'Contact', - }, - }, - }, - hosted_video: { - codename: 'hosted_video', - name: 'Hosted video', - elements: { - video_id: { - codename: 'video_id', - name: 'Video ID', - }, - video_host: { - codename: 'video_host', - name: 'Video host', - }, - }, - }, - office: { - codename: 'office', - name: 'Office', - elements: { - state: { - codename: 'state', - name: 'State', - }, - email: { - codename: 'email', - name: 'Email', - }, - phone: { - codename: 'phone', - name: 'Phone', - }, - country: { - codename: 'country', - name: 'Country', - }, - sitemap: { - codename: 'sitemap', - name: 'Sitemap', - }, - city: { - codename: 'city', - name: 'City', - }, - name: { - codename: 'name', - name: 'Name', - }, - zip_code: { - codename: 'zip_code', - name: 'Zip code', - }, - street: { - codename: 'street', - name: 'Street', - }, - }, - }, - tweet: { - codename: 'tweet', - name: 'Tweet', - elements: { - tweet_link: { - codename: 'tweet_link', - name: 'Tweet link', - }, - theme: { - codename: 'theme', - name: 'Theme', - }, - display_options: { - codename: 'display_options', - name: 'Display options', - }, - }, - }, - }, - taxonomies: { - manufacturer: { - codename: 'manufacturer', - name: 'Manufacturer', - terms: { - aerobie: { - codename: 'aerobie', - name: 'Aerobie', - terms: {}, - }, - chemex: { - codename: 'chemex', - name: 'Chemex', - terms: {}, - }, - espro: { - codename: 'espro', - name: 'Espro', - terms: {}, - }, - hario: { - codename: 'hario', - name: 'Hario', - terms: {}, - }, - }, - }, - personas: { - codename: 'personas', - name: 'Personas', - terms: { - coffee_expert: { - codename: 'coffee_expert', - name: 'Coffee expert', - terms: { - barista: { - codename: 'barista', - name: 'Barista', - terms: {}, - }, - cafe_owner: { - codename: 'cafe_owner', - name: 'Cafe owner', - terms: {}, - }, - }, - }, - coffee_enthusiast: { - codename: 'coffee_enthusiast', - name: 'Coffee enthusiast', - terms: { - coffee_lover: { - codename: 'coffee_lover', - name: 'Coffee lover', - terms: {}, - }, - coffee_blogger: { - codename: 'coffee_blogger', - name: 'Coffee blogger', - terms: {}, - }, - }, - }, - }, - }, - processing: { - codename: 'processing', - name: 'Processing', - terms: { - wet__washed_: { - codename: 'wet__washed_', - name: 'Wet (Washed)', - terms: {}, - }, - dry__natural_: { - codename: 'dry__natural_', - name: 'Dry (Natural)', - terms: {}, - }, - semi_dry: { - codename: 'semi_dry', - name: 'Semi-dry', - terms: {}, - }, - }, - }, - product_status: { - codename: 'product_status', - name: 'Product status', - terms: { - on_sale: { - codename: 'on_sale', - name: 'On sale', - terms: {}, - }, - bestseller: { - codename: 'bestseller', - name: 'Bestseller', - terms: {}, - }, - }, - }, - sitemap_538125f: { - codename: 'sitemap_538125f', - name: 'Sitemap', - terms: { - home: { - codename: 'home', - name: 'Home', - terms: {}, - }, - products: { - codename: 'products', - name: 'Products', - terms: { - coffee: { - codename: 'coffee', - name: 'Coffee', - terms: {}, - }, - brewers: { - codename: 'brewers', - name: 'Brewers', - terms: {}, - }, - accessories: { - codename: 'accessories', - name: 'Accessories', - terms: {}, - }, - grinders: { - codename: 'grinders', - name: 'Grinders', - terms: {}, - }, - }, - }, - cafes: { - codename: 'cafes', - name: 'Cafes', - terms: { - north_america: { - codename: 'north_america', - name: 'North America', - terms: {}, - }, - europe: { - codename: 'europe', - name: 'Europe', - terms: {}, - }, - australia: { - codename: 'australia', - name: 'Australia', - terms: {}, - }, - }, - }, - articles: { - codename: 'articles', - name: 'Articles', - terms: {}, - }, - offices: { - codename: 'offices', - name: 'Offices', - terms: {}, - }, - about_us: { - codename: 'about_us', - name: 'About us', - terms: {}, - }, - }, - }, - }, -}; diff --git a/src/Models/about_us.ts b/src/Models/about_us.ts deleted file mode 100644 index 7cf607c..0000000 --- a/src/Models/about_us.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; -import { FactAboutUs } from './fact_about_us'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type AboutUs = IContentItem<{ - metadataOgDescription: Elements.TextElement; - metadataMetaTitle: Elements.TextElement; - metadataOgTitle: Elements.TextElement; - metadataMetaDescription: Elements.TextElement; - metadataTwitterSite: Elements.TextElement; - urlPattern: Elements.UrlSlugElement; - metadataTwitterImage: Elements.AssetsElement; - sitemap: Elements.TaxonomyElement; - metadataTwitterCreator: Elements.TextElement; - metadataTwitterTitle: Elements.TextElement; - metadataTwitterDescription: Elements.TextElement; - metadataOgImage: Elements.AssetsElement; - facts: Elements.LinkedItemsElement; -}>; diff --git a/src/Models/accessory.ts b/src/Models/accessory.ts deleted file mode 100644 index db0c137..0000000 --- a/src/Models/accessory.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type Accessory = IContentItem<{ - metadataOgDescription: Elements.TextElement; - metadataMetaTitle: Elements.TextElement; - metadataOgTitle: Elements.TextElement; - longDescription: Elements.RichTextElement; - metadataMetaDescription: Elements.TextElement; - metadataTwitterSite: Elements.TextElement; - price: Elements.NumberElement; - metadataTwitterImage: Elements.AssetsElement; - metadataTwitterCreator: Elements.TextElement; - urlPattern: Elements.UrlSlugElement; - shortDescription: Elements.RichTextElement; - manufacturer: Elements.TextElement; - metadataTwitterTitle: Elements.TextElement; - metadataTwitterDescription: Elements.TextElement; - metadataOgImage: Elements.AssetsElement; - sitemap: Elements.TaxonomyElement; - productStatus: Elements.TaxonomyElement; - image: Elements.AssetsElement; - productName: Elements.TextElement; -}>; diff --git a/src/Models/article.ts b/src/Models/article.ts deleted file mode 100644 index d36ce1b..0000000 --- a/src/Models/article.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ - -export type Article = IContentItem<{ - metadataOgDescription: Elements.TextElement; - metadataMetaTitle: Elements.TextElement; - personas: Elements.TaxonomyElement; - bodyCopy: Elements.RichTextElement; - metadataOgTitle: Elements.TextElement; - metadataMetaDescription: Elements.TextElement; - metadataTwitterSite: Elements.TextElement; - postDate: Elements.DateTimeElement; - metaKeywords: Elements.TextElement; - teaserImage: Elements.AssetsElement; - metadataTwitterImage: Elements.AssetsElement; - metadataTwitterCreator: Elements.TextElement; - title: Elements.TextElement; - summary: Elements.TextElement; - sitemap: Elements.TaxonomyElement; - metadataTwitterTitle: Elements.TextElement; - metadataTwitterDescription: Elements.TextElement; - metaDescription: Elements.TextElement; - metadataOgImage: Elements.AssetsElement; - relatedArticles: Elements.LinkedItemsElement
; - urlPattern: Elements.UrlSlugElement; -}>; diff --git a/src/Models/brewer.ts b/src/Models/brewer.ts deleted file mode 100644 index b2a792a..0000000 --- a/src/Models/brewer.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type Brewer = IContentItem<{ - productName: Elements.TextElement; - metadataOgDescription: Elements.TextElement; - metadataMetaTitle: Elements.TextElement; - longDescription: Elements.RichTextElement; - metadataOgTitle: Elements.TextElement; - metadataMetaDescription: Elements.TextElement; - metadataTwitterSite: Elements.TextElement; - price: Elements.NumberElement; - manufacturer: Elements.TaxonomyElement; - metadataTwitterImage: Elements.AssetsElement; - metadataTwitterCreator: Elements.TextElement; - urlPattern: Elements.UrlSlugElement; - sitemap: Elements.TaxonomyElement; - shortDescription: Elements.RichTextElement; - productStatus: Elements.TaxonomyElement; - metadataTwitterTitle: Elements.TextElement; - metadataTwitterDescription: Elements.TextElement; - metadataOgImage: Elements.AssetsElement; - image: Elements.AssetsElement; -}>; diff --git a/src/Models/cafe.ts b/src/Models/cafe.ts deleted file mode 100644 index 2f2399b..0000000 --- a/src/Models/cafe.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type Cafe = IContentItem<{ - phone: Elements.TextElement; - city: Elements.TextElement; - photo: Elements.AssetsElement; - email: Elements.TextElement; - country: Elements.TextElement; - street: Elements.TextElement; - state: Elements.TextElement; - zipCode: Elements.TextElement; - sitemap: Elements.TaxonomyElement; -}>; diff --git a/src/Models/coffee.ts b/src/Models/coffee.ts deleted file mode 100644 index e59d6ea..0000000 --- a/src/Models/coffee.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type Coffee = IContentItem<{ - metadataOgDescription: Elements.TextElement; - metadataMetaTitle: Elements.TextElement; - metadataOgTitle: Elements.TextElement; - productStatus: Elements.TaxonomyElement; - altitude: Elements.TextElement; - metadataMetaDescription: Elements.TextElement; - variety: Elements.TextElement; - image: Elements.AssetsElement; - metadataTwitterSite: Elements.TextElement; - urlPattern: Elements.UrlSlugElement; - price: Elements.NumberElement; - metadataTwitterImage: Elements.AssetsElement; - metadataTwitterCreator: Elements.TextElement; - country: Elements.TextElement; - sitemap: Elements.TaxonomyElement; - metadataTwitterTitle: Elements.TextElement; - shortDescription: Elements.RichTextElement; - processing: Elements.TaxonomyElement; - metadataTwitterDescription: Elements.TextElement; - metadataOgImage: Elements.AssetsElement; - longDescription: Elements.RichTextElement; - farm: Elements.TextElement; - productName: Elements.TextElement; -}>; diff --git a/src/Models/content-types/about_us.ts b/src/Models/content-types/about_us.ts new file mode 100644 index 0000000..dd449eb --- /dev/null +++ b/src/Models/content-types/about_us.ts @@ -0,0 +1,156 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; +import { FactAboutUs } from './fact_about_us'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * About us + * Id: b2c14f2c-6467-460b-a70b-bca17972a33a + * Codename: about_us + */ +export type AboutUs = IContentItem<{ + /** + * Facts (modular_content) + * Required: false + * Id: cff560dc-ed24-7036-cbb6-b7a1b61b196a + * Codename: facts + * + * Assign all facts about our company which will be displayed on the about us page. + */ + facts: Elements.LinkedItemsElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: 50cb9acf-45f5-a186-5c00-9a9e4a37d84a + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 65911e49-7bb0-41ca-9d17-ab218135126d + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/accessory.ts b/src/Models/content-types/accessory.ts new file mode 100644 index 0000000..63fec7b --- /dev/null +++ b/src/Models/content-types/accessory.ts @@ -0,0 +1,216 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { ProductStatus } from '../taxonomies/product_status'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Accessory + * Id: d9748663-f567-4c51-a922-c24a1d6b935a + * Codename: accessory + */ +export type Accessory = IContentItem<{ + /** + * Product name (text) + * Required: false + * Id: f9e2672c-5035-412e-3985-d6112b3781bd + * Codename: product_name + * + * Include a product display name. + */ + productName: Elements.TextElement; + + /** + * Price (number) + * Required: false + * Id: 51d63ac3-d40d-15ea-c219-be207714077c + * Codename: price + * + * Include a product price. + */ + price: Elements.NumberElement; + + /** + * Image (asset) + * Required: false + * Id: f0db12e6-86e4-8597-903b-c5984076d6b3 + * Codename: image + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: Elements.AssetsElement; + + /** + * Manufacturer (text) + * Required: false + * Id: ab75ff46-b629-5ce5-aac9-79ed8a7b869c + * Codename: manufacturer + * + * Include a manufacturer's name. + */ + manufacturer: Elements.TextElement; + + /** + * Product status (taxonomy) + * Required: false + * Id: ef13b1f4-b558-f707-35a4-86146dbe4518 + * Codename: product_status + * + * Add a product status if the product is included in a special offering. + */ + productStatus: Elements.TaxonomyElement; + + /** + * Short description (rich_text) + * Required: false + * Id: 9740e2d0-87e8-52f5-ff4c-566fa00b1253 + * Codename: short_description + * + * Include a short description that fits within 160 characters. + */ + shortDescription: Elements.RichTextElement; + + /** + * Long description (rich_text) + * Required: false + * Id: 1f961774-a589-4e21-9f8e-a8c4908ea476 + * Codename: long_description + * + * Include a full product description. + */ + longDescription: Elements.RichTextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: 69e4af48-f1ac-1146-e6c9-d20d55ca5792 + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: d8ed1597-930c-4cf8-a34e-c5d5e82718ed + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/article.ts b/src/Models/content-types/article.ts new file mode 100644 index 0000000..c572cfe --- /dev/null +++ b/src/Models/content-types/article.ts @@ -0,0 +1,236 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Personas } from '../taxonomies/personas'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Article + * Id: b7aa4a53-d9b1-48cf-b7a6-ed0b182c4b89 + * Codename: article + */ +export type Article = IContentItem<{ + /** + * Title (text) + * Required: false + * Id: 85d5efc6-f47e-2fde-a6f5-0950fe89ecd1 + * Codename: title + * + * The title should fit within 60 characters.Our voice and tone recommendations: — avoid coffee jargon. + */ + title: Elements.TextElement; + + /** + * Teaser image (asset) + * Required: false + * Id: 62eb9881-e222-6b81-91d2-fdf052726414 + * Codename: teaser_image + * + * Upload an image at a resolution of at least 600 × 1200 px. + */ + teaserImage: Elements.AssetsElement; + + /** + * Post date (date_time) + * Required: false + * Id: 4ae5f7a9-fe1f-1e8c-bfec-d321455139c4 + * Codename: post_date + * + * Provide a date that will appear on the live site as the date this article was posted live. This date will also influence the order of the articles. + */ + postDate: Elements.DateTimeElement; + + /** + * Summary (text) + * Required: false + * Id: 90550cbe-7bff-40a9-2947-9c81489fe562 + * Codename: summary + * + * Provide a short summary of the text. It should be catchy and make the visitor want to read the whole article.The summary should fit within 160 characters. + */ + summary: Elements.TextElement; + + /** + * Body Copy (rich_text) + * Required: false + * Id: 108ed7c0-fc8c-c0ec-d0b5-5a8071408b54 + * Codename: body_copy + * + * Keep the article structured with concise paragraphs complemented with headlines that will help the reader navigate through the article's content.Preferred glossary terms — coffee, brewing, grinder, drip, roast, filter. + */ + bodyCopy: Elements.RichTextElement; + + /** + * Related articles (modular_content) + * Required: false + * Id: ee7c3687-b469-6c56-3ac6-c8dfdc8b58b5 + * Codename: related_articles + * + * Provide articles with related topics. + */ + relatedArticles: Elements.LinkedItemsElement; + + /** + * Meta keywords (text) + * Required: false + * Id: 5efb2425-5987-a4a6-a2d3-b14712b56e73 + * Codename: meta_keywords + * + * Enter tags separated with a comma. Example: coffee, "coffee roast”, grinder + */ + metaKeywords: Elements.TextElement; + + /** + * Personas (taxonomy) + * Required: false + * Id: 0a16b642-ac3e-584d-a45a-ba354a30b2bd + * Codename: personas + * + * Provide all personas for which this article is relevant. + */ + personas: Elements.TaxonomyElement; + + /** + * Meta description (text) + * Required: false + * Id: b9dc537c-2518-e4f5-8325-ce4fce26171e + * Codename: meta_description + * + * Sum up the blog for SEO purposes. Limit for the meta description is 160 characters. + */ + metaDescription: Elements.TextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: f2ff5e3f-a9ca-4604-58b0-34a2ad6a7cf1 + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: a4d7a146-7e39-4001-b462-c5a0c734f3f5 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/brewer.ts b/src/Models/content-types/brewer.ts new file mode 100644 index 0000000..f74c1fd --- /dev/null +++ b/src/Models/content-types/brewer.ts @@ -0,0 +1,215 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { ProductStatus } from '../taxonomies/product_status'; +import { Manufacturer } from '../taxonomies/manufacturer'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Brewer + * Id: 7bc932b3-ce2a-4aa7-954e-04cbcbd214fc + * Codename: brewer + */ +export type Brewer = IContentItem<{ + /** + * Product name (text) + * Required: false + * Id: 01d6c6c7-92ff-a675-e413-861e5a9a4034 + * Codename: product_name + * + * Include a product display name. + */ + productName: Elements.TextElement; + + /** + * Price (number) + * Required: false + * Id: 48ebe0fc-afe7-2b93-d351-0e352332bc52 + * Codename: price + * + * Include a product price. + */ + price: Elements.NumberElement; + + /** + * Image (asset) + * Required: false + * Id: d0c1e9e7-7d5d-e61f-8564-56a8cb758cb8 + * Codename: image + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: Elements.AssetsElement; + + /** + * Product status (taxonomy) + * Required: false + * Id: 960d0011-ff3b-41ac-1447-8eac6ee66eaa + * Codename: product_status + * + * Add a product status if the product is included in a special offering. + */ + productStatus: Elements.TaxonomyElement; + + /** + * Short description (rich_text) + * Required: false + * Id: 8c235a7f-034e-f803-e612-9c47c8a49506 + * Codename: short_description + * + * Include a short description that fits within 160 characters. + */ + shortDescription: Elements.RichTextElement; + + /** + * Long description (rich_text) + * Required: false + * Id: 14510bef-fd86-7d5d-992a-c1e091cbcb97 + * Codename: long_description + * + * Include a full product description. + */ + longDescription: Elements.RichTextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: 737c85be-f532-c8fe-a308-2a0f2c512f3e + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Manufacturer (taxonomy) + * Required: false + * Id: 53b6bddb-fe8a-a8b2-9765-343479bf9fc2 + * Codename: manufacturer + */ + manufacturer: Elements.TaxonomyElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 7632f3bb-2e53-438d-933c-4e8b6c035cb1 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/cafe.ts b/src/Models/content-types/cafe.ts new file mode 100644 index 0000000..8f90286 --- /dev/null +++ b/src/Models/content-types/cafe.ts @@ -0,0 +1,83 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Cafe + * Id: fe41ae5a-5fe2-420a-8560-f7d6d3533dc2 + * Codename: cafe + */ +export type Cafe = IContentItem<{ + /** + * Street (text) + * Required: false + * Id: 866afdba-d334-f01a-1d52-a9ca3f57cb4b + * Codename: street + */ + street: Elements.TextElement; + + /** + * City (text) + * Required: false + * Id: 339e6d4f-67c1-5f5e-6921-3b374eb96f5b + * Codename: city + */ + city: Elements.TextElement; + + /** + * Country (text) + * Required: false + * Id: 7531a08f-e148-8cc0-9d2d-155215502e08 + * Codename: country + */ + country: Elements.TextElement; + + /** + * State (text) + * Required: false + * Id: a015b689-cad3-1ac9-04b4-73697525752d + * Codename: state + */ + state: Elements.TextElement; + + /** + * ZIP Code (text) + * Required: false + * Id: bb158ac2-41e1-5a7d-0826-bb8bf6744f0e + * Codename: zip_code + */ + zipCode: Elements.TextElement; + + /** + * Phone (text) + * Required: false + * Id: 1c71bc62-4b62-f307-37ef-0823776f8f73 + * Codename: phone + */ + phone: Elements.TextElement; + + /** + * Email (text) + * Required: false + * Id: 6f726c77-36bd-8062-51df-056136e10d35 + * Codename: email + */ + email: Elements.TextElement; + + /** + * Photo (asset) + * Required: false + * Id: 5769c0f4-66a8-4c73-3c19-c023bdfa123a + * Codename: photo + */ + photo: Elements.AssetsElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: e82d0f49-5b15-45e1-9b1f-32ccc1be4941 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; +}>; diff --git a/src/Models/content-types/coffee.ts b/src/Models/content-types/coffee.ts new file mode 100644 index 0000000..da63661 --- /dev/null +++ b/src/Models/content-types/coffee.ts @@ -0,0 +1,255 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { ProductStatus } from '../taxonomies/product_status'; +import { Processing } from '../taxonomies/processing'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Coffee + * Id: 929985ac-4aa5-436b-85a2-94c2d4fbbebd + * Codename: coffee + */ +export type Coffee = IContentItem<{ + /** + * Product name (text) + * Required: false + * Id: edaec5c4-e653-9109-eb0d-fc40ccf3c810 + * Codename: product_name + * + * Include a product display name. + */ + productName: Elements.TextElement; + + /** + * Price (number) + * Required: false + * Id: 624592dc-49b2-330a-7185-e1f2396ce90c + * Codename: price + * + * Include a product price. + */ + price: Elements.NumberElement; + + /** + * Image (asset) + * Required: false + * Id: 30ac3ccc-1e7f-1490-e1f6-915c64176a55 + * Codename: image + * + * Upload a product image; the recommended size is 300 × 300 px. + */ + image: Elements.AssetsElement; + + /** + * Short description (rich_text) + * Required: false + * Id: b5a3263a-a1d7-92b7-865a-329f833285fa + * Codename: short_description + * + * Include a short description that fits within 160 characters. + */ + shortDescription: Elements.RichTextElement; + + /** + * Long description (rich_text) + * Required: false + * Id: d468a0aa-e0fa-0cae-41db-6e006bff2527 + * Codename: long_description + * + * Include a full product description. + */ + longDescription: Elements.RichTextElement; + + /** + * Product status (taxonomy) + * Required: false + * Id: 1ee64175-fde7-fc1e-5259-511a31c326c3 + * Codename: product_status + * + * Add a product status if the product is included in a special offering. + */ + productStatus: Elements.TaxonomyElement; + + /** + * Farm (text) + * Required: false + * Id: e5cf103f-9b84-1ab0-29f1-fb5a1657c6f7 + * Codename: farm + * + * Include the name of the coffee farm. + */ + farm: Elements.TextElement; + + /** + * Country (text) + * Required: false + * Id: 6eec1918-378d-3b15-8b1a-19c5f0748321 + * Codename: country + * + * Include the coffee's country of origin. + */ + country: Elements.TextElement; + + /** + * Variety (text) + * Required: false + * Id: 301c6712-962f-b05a-6f6e-2f0e1e959039 + * Codename: variety + * + * Include a coffee variety name. + */ + variety: Elements.TextElement; + + /** + * Altitude (text) + * Required: false + * Id: 23a772c0-0b2b-588d-9849-e29068701f03 + * Codename: altitude + * + * Include the altitude at which the coffee is grown. Elevation affects the size, shape, and taste of coffee beans. + */ + altitude: Elements.TextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: 3af8ce38-c03d-063c-ea80-72684dfddf31 + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Processing (taxonomy) + * Required: false + * Id: b63e3516-d5fa-fdac-a03a-2b027bf02a28 + * Codename: processing + */ + processing: Elements.TaxonomyElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 99d7a378-e18f-41dd-b5bb-2a569c3d1de7 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/fact_about_us.ts b/src/Models/content-types/fact_about_us.ts new file mode 100644 index 0000000..86d6057 --- /dev/null +++ b/src/Models/content-types/fact_about_us.ts @@ -0,0 +1,49 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Fact about us + * Id: b99ec220-0f2b-4658-a080-ff0afe92f6d1 + * Codename: fact_about_us + */ +export type FactAboutUs = IContentItem<{ + /** + * Title (text) + * Required: false + * Id: 2375ca8a-43d2-7282-162c-922a6fdeba3e + * Codename: title + * + * Provide a title that fits within 60 characters. + */ + title: Elements.TextElement; + + /** + * Description (rich_text) + * Required: false + * Id: 1b658e81-88c9-73d1-374d-7a60e3756ef7 + * Codename: description + * + * Include a main goal of our business. The limit is 80 characters. + */ + description: Elements.RichTextElement; + + /** + * Image (asset) + * Required: false + * Id: 68d194b6-efad-6b25-89a4-2dfc75fed5a5 + * Codename: image + * + * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. + */ + image: Elements.AssetsElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 23a715f9-755c-4b9d-b6b3-e02fc1b09b83 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; +}>; diff --git a/src/Models/content-types/grinder.ts b/src/Models/content-types/grinder.ts new file mode 100644 index 0000000..78cf2cb --- /dev/null +++ b/src/Models/content-types/grinder.ts @@ -0,0 +1,216 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { ProductStatus } from '../taxonomies/product_status'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Grinder + * Id: da4f1cb1-8a55-43e5-9fcc-67ad331c8888 + * Codename: grinder + */ +export type Grinder = IContentItem<{ + /** + * Product name (text) + * Required: false + * Id: b7b9604e-c74e-79ea-2a0f-d74d6347e35a + * Codename: product_name + * + * Include a product display name. + */ + productName: Elements.TextElement; + + /** + * Price (number) + * Required: false + * Id: 1e14595d-7fe8-7765-6df6-fad6a6e4851f + * Codename: price + * + * Include a product price. + */ + price: Elements.NumberElement; + + /** + * Image (asset) + * Required: false + * Id: 7fe226b9-d21f-80ff-e680-6e6f44ce044b + * Codename: image + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: Elements.AssetsElement; + + /** + * Manufacturer (text) + * Required: false + * Id: 2c389736-7dfa-b03e-8996-7eba451cfdb5 + * Codename: manufacturer + * + * Include a manufacturer's name. + */ + manufacturer: Elements.TextElement; + + /** + * Product status (taxonomy) + * Required: false + * Id: 54120e88-82cc-2202-e72d-9cae0ced3f51 + * Codename: product_status + * + * Add a product status if the product is included in a special offering. + */ + productStatus: Elements.TaxonomyElement; + + /** + * Short description (rich_text) + * Required: false + * Id: 23ee310f-9732-9193-ad5e-80f75bfc276d + * Codename: short_description + * + * Include a short description that fits within 160 characters. + */ + shortDescription: Elements.RichTextElement; + + /** + * Long description (rich_text) + * Required: false + * Id: 21e77286-e87b-d6e3-902d-13b5814b5e75 + * Codename: long_description + * + * Include a full product description. + */ + longDescription: Elements.RichTextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: bf6ad588-11e5-ba0d-2c18-ccd50064a32a + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 02f0e374-6760-4b4d-99a8-60485572b764 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/hero_unit.ts b/src/Models/content-types/hero_unit.ts new file mode 100644 index 0000000..ec01010 --- /dev/null +++ b/src/Models/content-types/hero_unit.ts @@ -0,0 +1,49 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Hero Unit + * Id: f4deeb7e-fe9b-49a2-a5f6-a51a9be6ac73 + * Codename: hero_unit + */ +export type HeroUnit = IContentItem<{ + /** + * Title (text) + * Required: false + * Id: 16ea3e64-4103-da81-eabd-af7efc2ab8a6 + * Codename: title + * + * Provide a title that fits within 60 characters. + */ + title: Elements.TextElement; + + /** + * Image (asset) + * Required: false + * Id: 4aeed98e-58d1-ab13-232c-542bf268fe48 + * Codename: image + * + * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. + */ + image: Elements.AssetsElement; + + /** + * Marketing message (rich_text) + * Required: false + * Id: ecf4e55f-1ae0-f539-3516-5714a0f032e9 + * Codename: marketing_message + * + * Include a main goal of our business. The limit is 80 characters. + */ + marketingMessage: Elements.RichTextElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 0f620d29-a4c7-4944-b7d2-be5de2733b6e + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; +}>; diff --git a/src/Models/content-types/home.ts b/src/Models/content-types/home.ts new file mode 100644 index 0000000..3e87159 --- /dev/null +++ b/src/Models/content-types/home.ts @@ -0,0 +1,199 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; +import { Article } from './article'; +import { Cafe } from './cafe'; +import { FactAboutUs } from './fact_about_us'; +import { HeroUnit } from './hero_unit'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Home + * Id: a29399c3-5281-47ab-9916-acd4a6f887b7 + * Codename: home + */ +export type Home = IContentItem<{ + /** + * Hero unit (modular_content) + * Required: false + * Id: 2b15a8f3-2e5f-7d01-4d8e-5b22e222aa76 + * Codename: hero_unit + * + * Assign 1 Hero unit that has been prepared for a home page. + */ + heroUnit: Elements.LinkedItemsElement; + + /** + * Articles (modular_content) + * Required: false + * Id: 222f3a69-a54f-3e92-83ac-05f8a08e667f + * Codename: articles + * + * Assign all articles which should be displayed on the home page. + */ + articles: Elements.LinkedItemsElement
; + + /** + * Our story (modular_content) + * Required: false + * Id: 617bccc0-4844-4beb-4ede-6247e954633a + * Codename: our_story + * + * Assign 1 Fact about us which will be displayed on the home page. + */ + ourStory: Elements.LinkedItemsElement; + + /** + * Cafes (modular_content) + * Required: false + * Id: 6356c948-0fd6-00d0-8fc1-e2484180ae7c + * Codename: cafes + * + * Assign 4 Cafes which will be displayed on the home page. + */ + cafes: Elements.LinkedItemsElement; + + /** + * Contact (rich_text) + * Required: false + * Id: ee854076-236b-5312-0ed5-8c3cd55ca9e0 + * Codename: contact + * + * Add Contact us information to be displayed on the home page. + */ + contact: Elements.RichTextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: dd70db4b-ee97-5ab4-b752-4f9d70389426 + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: ea3bf3c2-7eb7-4c91-aff3-09f89c743710 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/hosted_video.ts b/src/Models/content-types/hosted_video.ts new file mode 100644 index 0000000..3c1d127 --- /dev/null +++ b/src/Models/content-types/hosted_video.ts @@ -0,0 +1,25 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Hosted video + * Id: 269202ad-1d9d-47fd-b3e8-bdb05b3e3cf0 + * Codename: hosted_video + */ +export type HostedVideo = IContentItem<{ + /** + * Video ID (text) + * Required: true + * Id: 116a2441-6441-7124-c85b-46a4fef5dcb9 + * Codename: video_id + */ + videoId: Elements.TextElement; + + /** + * Video host (multiple_choice) + * Required: true + * Id: 87924912-4861-aa84-176a-1eae7b22529b + * Codename: video_host + */ + videoHost: Elements.MultipleChoiceElement; +}>; diff --git a/src/Models/content-types/index.ts b/src/Models/content-types/index.ts new file mode 100644 index 0000000..eec4878 --- /dev/null +++ b/src/Models/content-types/index.ts @@ -0,0 +1,13 @@ +export * from './hero_unit'; +export * from './hosted_video'; +export * from './coffee'; +export * from './article'; +export * from './grinder'; +export * from './office'; +export * from './tweet'; +export * from './cafe'; +export * from './home'; +export * from './accessory'; +export * from './brewer'; +export * from './about_us'; +export * from './fact_about_us'; diff --git a/src/Models/content-types/office.ts b/src/Models/content-types/office.ts new file mode 100644 index 0000000..a92795a --- /dev/null +++ b/src/Models/content-types/office.ts @@ -0,0 +1,83 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Office + * Id: e097306b-3893-4a42-9973-2525fad14d66 + * Codename: office + */ +export type Office = IContentItem<{ + /** + * Name (text) + * Required: false + * Id: bb81a11d-886c-2a32-e480-29f01cea667f + * Codename: name + */ + name: Elements.TextElement; + + /** + * Street (text) + * Required: false + * Id: f7eb7ab2-4e41-aca0-7e93-dbbbdca330eb + * Codename: street + */ + street: Elements.TextElement; + + /** + * City (text) + * Required: false + * Id: 95477abc-d6b4-a6b3-5b72-c92763da55bf + * Codename: city + */ + city: Elements.TextElement; + + /** + * Country (text) + * Required: false + * Id: 4fbc7779-652d-7716-2673-7419aaaceed1 + * Codename: country + */ + country: Elements.TextElement; + + /** + * State (text) + * Required: false + * Id: 08df2f10-52b8-d451-fab1-b6da8ddb3fd2 + * Codename: state + */ + state: Elements.TextElement; + + /** + * Zip code (text) + * Required: false + * Id: e7141da8-8792-a66d-d1c8-1fe704758393 + * Codename: zip_code + */ + zipCode: Elements.TextElement; + + /** + * Phone (text) + * Required: false + * Id: 2ac708e2-cd0e-67b0-67f8-71725625dc6d + * Codename: phone + */ + phone: Elements.TextElement; + + /** + * Email (text) + * Required: false + * Id: 251dc38f-43a3-d924-a328-8708ecb00ef1 + * Codename: email + */ + email: Elements.TextElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 93e978da-a9dd-43eb-a16a-ace55c1a5245 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; +}>; diff --git a/src/Models/content-types/tweet.ts b/src/Models/content-types/tweet.ts new file mode 100644 index 0000000..c6c29c5 --- /dev/null +++ b/src/Models/content-types/tweet.ts @@ -0,0 +1,33 @@ +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Tweet + * Id: f808c142-4b62-43b0-8f4d-1cbf412580ab + * Codename: tweet + */ +export type Tweet = IContentItem<{ + /** + * Tweet link (text) + * Required: true + * Id: 20bf9ba1-28fe-203c-5920-6f9610498fb9 + * Codename: tweet_link + */ + tweetLink: Elements.TextElement; + + /** + * Theme (multiple_choice) + * Required: false + * Id: 779b27fd-5a4d-5e5f-66dc-b30931fcba92 + * Codename: theme + */ + theme: Elements.MultipleChoiceElement; + + /** + * Display options (multiple_choice) + * Required: false + * Id: 8c6db6cf-1003-951e-5407-b2a19c15b4cd + * Codename: display_options + */ + displayOptions: Elements.MultipleChoiceElement; +}>; diff --git a/src/Models/fact_about_us.ts b/src/Models/fact_about_us.ts deleted file mode 100644 index 43fdd58..0000000 --- a/src/Models/fact_about_us.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type FactAboutUs = IContentItem<{ - description: Elements.RichTextElement; - title: Elements.TextElement; - sitemap: Elements.TaxonomyElement; - image: Elements.AssetsElement; -}>; diff --git a/src/Models/grinder.ts b/src/Models/grinder.ts deleted file mode 100644 index 3901b82..0000000 --- a/src/Models/grinder.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type Grinder = IContentItem<{ - sitemap: Elements.TaxonomyElement; - metadataOgDescription: Elements.TextElement; - metadataMetaTitle: Elements.TextElement; - metadataOgTitle: Elements.TextElement; - price: Elements.NumberElement; - longDescription: Elements.RichTextElement; - shortDescription: Elements.RichTextElement; - manufacturer: Elements.TextElement; - metadataMetaDescription: Elements.TextElement; - metadataTwitterSite: Elements.TextElement; - productStatus: Elements.TaxonomyElement; - metadataTwitterImage: Elements.AssetsElement; - metadataTwitterCreator: Elements.TextElement; - image: Elements.AssetsElement; - metadataTwitterTitle: Elements.TextElement; - productName: Elements.TextElement; - metadataTwitterDescription: Elements.TextElement; - urlPattern: Elements.UrlSlugElement; - metadataOgImage: Elements.AssetsElement; -}>; diff --git a/src/Models/hero_unit.ts b/src/Models/hero_unit.ts deleted file mode 100644 index 27e85bd..0000000 --- a/src/Models/hero_unit.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type HeroUnit = IContentItem<{ - sitemap: Elements.TaxonomyElement; - title: Elements.TextElement; - image: Elements.AssetsElement; - marketingMessage: Elements.RichTextElement; -}>; diff --git a/src/Models/home.ts b/src/Models/home.ts deleted file mode 100644 index 0da08ba..0000000 --- a/src/Models/home.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; -import { Article } from './article'; -import { HeroUnit } from './hero_unit'; -import { Cafe } from './cafe'; -import { FactAboutUs } from './fact_about_us'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type Home = IContentItem<{ - metadataOgDescription: Elements.TextElement; - metadataMetaTitle: Elements.TextElement; - metadataOgTitle: Elements.TextElement; - articles: Elements.LinkedItemsElement
; - heroUnit: Elements.LinkedItemsElement; - metadataMetaDescription: Elements.TextElement; - metadataTwitterSite: Elements.TextElement; - ourStory: Elements.LinkedItemsElement; - cafes: Elements.LinkedItemsElement; - metadataTwitterImage: Elements.AssetsElement; - metadataTwitterCreator: Elements.TextElement; - metadataTwitterTitle: Elements.TextElement; - metadataTwitterDescription: Elements.TextElement; - metadataOgImage: Elements.AssetsElement; - urlPattern: Elements.UrlSlugElement; - sitemap: Elements.TaxonomyElement; - contact: Elements.RichTextElement; -}>; diff --git a/src/Models/hosted_video.ts b/src/Models/hosted_video.ts deleted file mode 100644 index c94e143..0000000 --- a/src/Models/hosted_video.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type HostedVideo = IContentItem<{ - videoId: Elements.TextElement; - videoHost: Elements.MultipleChoiceElement; -}>; diff --git a/src/Models/index.ts b/src/Models/index.ts new file mode 100644 index 0000000..9dbdf34 --- /dev/null +++ b/src/Models/index.ts @@ -0,0 +1,3 @@ +export * from './project'; +export * from './content-types'; +export * from './taxonomies'; diff --git a/src/Models/office.ts b/src/Models/office.ts deleted file mode 100644 index ff6965c..0000000 --- a/src/Models/office.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type Office = IContentItem<{ - state: Elements.TextElement; - email: Elements.TextElement; - phone: Elements.TextElement; - country: Elements.TextElement; - sitemap: Elements.TaxonomyElement; - city: Elements.TextElement; - name: Elements.TextElement; - zipCode: Elements.TextElement; - street: Elements.TextElement; -}>; diff --git a/src/Models/project/assetFolders.ts b/src/Models/project/assetFolders.ts new file mode 100644 index 0000000..aa97575 --- /dev/null +++ b/src/Models/project/assetFolders.ts @@ -0,0 +1,18 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const assetFolders = { + /** + * Café locations + */ + caféLocations: { + id: '958001d8-2228-4373-b966-5262b5b96f71', + name: 'Café locations', + externalId: undefined, + folders: {}, + }, +}; diff --git a/src/Models/project/collections.ts b/src/Models/project/collections.ts new file mode 100644 index 0000000..c41cc80 --- /dev/null +++ b/src/Models/project/collections.ts @@ -0,0 +1,17 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const collections = { + /** + * Default + */ + default: { + codename: 'default', + id: '00000000-0000-0000-0000-000000000000', + name: 'Default', + }, +}; diff --git a/src/Models/project/contentTypes.ts b/src/Models/project/contentTypes.ts new file mode 100644 index 0000000..afe3f25 --- /dev/null +++ b/src/Models/project/contentTypes.ts @@ -0,0 +1,2498 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const contentTypes = { + /** + * Hero Unit + * Last modified: Wed Mar 27 2019 14:06:00 GMT+0100 (Středoevropský standardní čas) + */ + hero_unit: { + codename: 'hero_unit', + id: 'f4deeb7e-fe9b-49a2-a5f6-a51a9be6ac73', + externalId: undefined, + name: 'Hero Unit', + elements: { + /** + * Title (text) + * + * Provide a title that fits within 60 characters. + */ + title: { + codename: 'title', + id: '16ea3e64-4103-da81-eabd-af7efc2ab8a6', + externalId: undefined, + name: 'Title', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. + */ + image: { + codename: 'image', + id: '4aeed98e-58d1-ab13-232c-542bf268fe48', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Marketing message (rich_text) + * + * Include a main goal of our business. The limit is 80 characters. + */ + marketing_message: { + codename: 'marketing_message', + id: 'ecf4e55f-1ae0-f539-3516-5714a0f032e9', + externalId: undefined, + name: 'Marketing message', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '0f620d29-a4c7-4944-b7d2-be5de2733b6e', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + }, + }, + + /** + * Hosted video + * Last modified: Fri Mar 29 2019 14:55:48 GMT+0100 (Středoevropský standardní čas) + */ + hosted_video: { + codename: 'hosted_video', + id: '269202ad-1d9d-47fd-b3e8-bdb05b3e3cf0', + externalId: undefined, + name: 'Hosted video', + elements: { + /** + * Video ID (text) + */ + video_id: { + codename: 'video_id', + id: '116a2441-6441-7124-c85b-46a4fef5dcb9', + externalId: undefined, + name: 'Video ID', + required: true, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Video host (multiple_choice) + */ + video_host: { + codename: 'video_host', + id: '87924912-4861-aa84-176a-1eae7b22529b', + externalId: undefined, + name: 'Video host', + required: true, + type: 'multiple_choice', + snippetCodename: undefined, + }, + }, + }, + + /** + * Coffee + * Last modified: Tue Jul 16 2019 09:18:34 GMT+0200 (Středoevropský letní čas) + */ + coffee: { + codename: 'coffee', + id: '929985ac-4aa5-436b-85a2-94c2d4fbbebd', + externalId: undefined, + name: 'Coffee', + elements: { + /** + * Product name (text) + * + * Include a product display name. + */ + product_name: { + codename: 'product_name', + id: 'edaec5c4-e653-9109-eb0d-fc40ccf3c810', + externalId: undefined, + name: 'Product name', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Price (number) + * + * Include a product price. + */ + price: { + codename: 'price', + id: '624592dc-49b2-330a-7185-e1f2396ce90c', + externalId: undefined, + name: 'Price', + required: false, + type: 'number', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Upload a product image; the recommended size is 300 × 300 px. + */ + image: { + codename: 'image', + id: '30ac3ccc-1e7f-1490-e1f6-915c64176a55', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Short description (rich_text) + * + * Include a short description that fits within 160 characters. + */ + short_description: { + codename: 'short_description', + id: 'b5a3263a-a1d7-92b7-865a-329f833285fa', + externalId: undefined, + name: 'Short description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Long description (rich_text) + * + * Include a full product description. + */ + long_description: { + codename: 'long_description', + id: 'd468a0aa-e0fa-0cae-41db-6e006bff2527', + externalId: undefined, + name: 'Long description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Product status (taxonomy) + * + * Add a product status if the product is included in a special offering. + */ + product_status: { + codename: 'product_status', + id: '1ee64175-fde7-fc1e-5259-511a31c326c3', + externalId: undefined, + name: 'Product status', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Farm (text) + * + * Include the name of the coffee farm. + */ + farm: { + codename: 'farm', + id: 'e5cf103f-9b84-1ab0-29f1-fb5a1657c6f7', + externalId: undefined, + name: 'Farm', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Country (text) + * + * Include the coffee's country of origin. + */ + country: { + codename: 'country', + id: '6eec1918-378d-3b15-8b1a-19c5f0748321', + externalId: undefined, + name: 'Country', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Variety (text) + * + * Include a coffee variety name. + */ + variety: { + codename: 'variety', + id: '301c6712-962f-b05a-6f6e-2f0e1e959039', + externalId: undefined, + name: 'Variety', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Altitude (text) + * + * Include the altitude at which the coffee is grown. Elevation affects the size, shape, and taste of coffee beans. + */ + altitude: { + codename: 'altitude', + id: '23a772c0-0b2b-588d-9849-e29068701f03', + externalId: undefined, + name: 'Altitude', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: '3af8ce38-c03d-063c-ea80-72684dfddf31', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Processing (taxonomy) + */ + processing: { + codename: 'processing', + id: 'b63e3516-d5fa-fdac-a03a-2b027bf02a28', + externalId: undefined, + name: 'Processing', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '99d7a378-e18f-41dd-b5bb-2a569c3d1de7', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Article + * Last modified: Tue Jul 16 2019 09:12:44 GMT+0200 (Středoevropský letní čas) + */ + article: { + codename: 'article', + id: 'b7aa4a53-d9b1-48cf-b7a6-ed0b182c4b89', + externalId: undefined, + name: 'Article', + elements: { + /** + * Title (text) + * + * The title should fit within 60 characters.Our voice and tone recommendations: — avoid coffee jargon. + */ + title: { + codename: 'title', + id: '85d5efc6-f47e-2fde-a6f5-0950fe89ecd1', + externalId: undefined, + name: 'Title', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Teaser image (asset) + * + * Upload an image at a resolution of at least 600 × 1200 px. + */ + teaser_image: { + codename: 'teaser_image', + id: '62eb9881-e222-6b81-91d2-fdf052726414', + externalId: undefined, + name: 'Teaser image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Post date (date_time) + * + * Provide a date that will appear on the live site as the date this article was posted live. This date will also influence the order of the articles. + */ + post_date: { + codename: 'post_date', + id: '4ae5f7a9-fe1f-1e8c-bfec-d321455139c4', + externalId: undefined, + name: 'Post date', + required: false, + type: 'date_time', + snippetCodename: undefined, + }, + + /** + * Summary (text) + * + * Provide a short summary of the text. It should be catchy and make the visitor want to read the whole article.The summary should fit within 160 characters. + */ + summary: { + codename: 'summary', + id: '90550cbe-7bff-40a9-2947-9c81489fe562', + externalId: undefined, + name: 'Summary', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Body Copy (rich_text) + * + * Keep the article structured with concise paragraphs complemented with headlines that will help the reader navigate through the article's content.Preferred glossary terms — coffee, brewing, grinder, drip, roast, filter. + */ + body_copy: { + codename: 'body_copy', + id: '108ed7c0-fc8c-c0ec-d0b5-5a8071408b54', + externalId: undefined, + name: 'Body Copy', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Related articles (modular_content) + * + * Provide articles with related topics. + */ + related_articles: { + codename: 'related_articles', + id: 'ee7c3687-b469-6c56-3ac6-c8dfdc8b58b5', + externalId: undefined, + name: 'Related articles', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * Meta keywords (text) + * + * Enter tags separated with a comma. Example: coffee, "coffee roast”, grinder + */ + meta_keywords: { + codename: 'meta_keywords', + id: '5efb2425-5987-a4a6-a2d3-b14712b56e73', + externalId: undefined, + name: 'Meta keywords', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Personas (taxonomy) + * + * Provide all personas for which this article is relevant. + */ + personas: { + codename: 'personas', + id: '0a16b642-ac3e-584d-a45a-ba354a30b2bd', + externalId: undefined, + name: 'Personas', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta description (text) + * + * Sum up the blog for SEO purposes. Limit for the meta description is 160 characters. + */ + meta_description: { + codename: 'meta_description', + id: 'b9dc537c-2518-e4f5-8325-ce4fce26171e', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: 'f2ff5e3f-a9ca-4604-58b0-34a2ad6a7cf1', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: 'a4d7a146-7e39-4001-b462-c5a0c734f3f5', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Grinder + * Last modified: Tue Jul 16 2019 09:16:16 GMT+0200 (Středoevropský letní čas) + */ + grinder: { + codename: 'grinder', + id: 'da4f1cb1-8a55-43e5-9fcc-67ad331c8888', + externalId: undefined, + name: 'Grinder', + elements: { + /** + * Product name (text) + * + * Include a product display name. + */ + product_name: { + codename: 'product_name', + id: 'b7b9604e-c74e-79ea-2a0f-d74d6347e35a', + externalId: undefined, + name: 'Product name', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Price (number) + * + * Include a product price. + */ + price: { + codename: 'price', + id: '1e14595d-7fe8-7765-6df6-fad6a6e4851f', + externalId: undefined, + name: 'Price', + required: false, + type: 'number', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: { + codename: 'image', + id: '7fe226b9-d21f-80ff-e680-6e6f44ce044b', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Manufacturer (text) + * + * Include a manufacturer's name. + */ + manufacturer: { + codename: 'manufacturer', + id: '2c389736-7dfa-b03e-8996-7eba451cfdb5', + externalId: undefined, + name: 'Manufacturer', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Product status (taxonomy) + * + * Add a product status if the product is included in a special offering. + */ + product_status: { + codename: 'product_status', + id: '54120e88-82cc-2202-e72d-9cae0ced3f51', + externalId: undefined, + name: 'Product status', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Short description (rich_text) + * + * Include a short description that fits within 160 characters. + */ + short_description: { + codename: 'short_description', + id: '23ee310f-9732-9193-ad5e-80f75bfc276d', + externalId: undefined, + name: 'Short description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Long description (rich_text) + * + * Include a full product description. + */ + long_description: { + codename: 'long_description', + id: '21e77286-e87b-d6e3-902d-13b5814b5e75', + externalId: undefined, + name: 'Long description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: 'bf6ad588-11e5-ba0d-2c18-ccd50064a32a', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '02f0e374-6760-4b4d-99a8-60485572b764', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Office + * Last modified: Wed Mar 27 2019 14:07:06 GMT+0100 (Středoevropský standardní čas) + */ + office: { + codename: 'office', + id: 'e097306b-3893-4a42-9973-2525fad14d66', + externalId: undefined, + name: 'Office', + elements: { + /** + * Name (text) + */ + name: { + codename: 'name', + id: 'bb81a11d-886c-2a32-e480-29f01cea667f', + externalId: undefined, + name: 'Name', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Street (text) + */ + street: { + codename: 'street', + id: 'f7eb7ab2-4e41-aca0-7e93-dbbbdca330eb', + externalId: undefined, + name: 'Street', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * City (text) + */ + city: { + codename: 'city', + id: '95477abc-d6b4-a6b3-5b72-c92763da55bf', + externalId: undefined, + name: 'City', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Country (text) + */ + country: { + codename: 'country', + id: '4fbc7779-652d-7716-2673-7419aaaceed1', + externalId: undefined, + name: 'Country', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * State (text) + */ + state: { + codename: 'state', + id: '08df2f10-52b8-d451-fab1-b6da8ddb3fd2', + externalId: undefined, + name: 'State', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Zip code (text) + */ + zip_code: { + codename: 'zip_code', + id: 'e7141da8-8792-a66d-d1c8-1fe704758393', + externalId: undefined, + name: 'Zip code', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Phone (text) + */ + phone: { + codename: 'phone', + id: '2ac708e2-cd0e-67b0-67f8-71725625dc6d', + externalId: undefined, + name: 'Phone', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Email (text) + */ + email: { + codename: 'email', + id: '251dc38f-43a3-d924-a328-8708ecb00ef1', + externalId: undefined, + name: 'Email', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '93e978da-a9dd-43eb-a16a-ace55c1a5245', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + }, + }, + + /** + * Tweet + * Last modified: Fri Mar 29 2019 14:55:38 GMT+0100 (Středoevropský standardní čas) + */ + tweet: { + codename: 'tweet', + id: 'f808c142-4b62-43b0-8f4d-1cbf412580ab', + externalId: undefined, + name: 'Tweet', + elements: { + /** + * Tweet link (text) + */ + tweet_link: { + codename: 'tweet_link', + id: '20bf9ba1-28fe-203c-5920-6f9610498fb9', + externalId: undefined, + name: 'Tweet link', + required: true, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Theme (multiple_choice) + */ + theme: { + codename: 'theme', + id: '779b27fd-5a4d-5e5f-66dc-b30931fcba92', + externalId: undefined, + name: 'Theme', + required: false, + type: 'multiple_choice', + snippetCodename: undefined, + }, + + /** + * Display options (multiple_choice) + */ + display_options: { + codename: 'display_options', + id: '8c6db6cf-1003-951e-5407-b2a19c15b4cd', + externalId: undefined, + name: 'Display options', + required: false, + type: 'multiple_choice', + snippetCodename: undefined, + }, + }, + }, + + /** + * Cafe + * Last modified: Wed Mar 27 2019 14:05:05 GMT+0100 (Středoevropský standardní čas) + */ + cafe: { + codename: 'cafe', + id: 'fe41ae5a-5fe2-420a-8560-f7d6d3533dc2', + externalId: undefined, + name: 'Cafe', + elements: { + /** + * Street (text) + */ + street: { + codename: 'street', + id: '866afdba-d334-f01a-1d52-a9ca3f57cb4b', + externalId: undefined, + name: 'Street', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * City (text) + */ + city: { + codename: 'city', + id: '339e6d4f-67c1-5f5e-6921-3b374eb96f5b', + externalId: undefined, + name: 'City', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Country (text) + */ + country: { + codename: 'country', + id: '7531a08f-e148-8cc0-9d2d-155215502e08', + externalId: undefined, + name: 'Country', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * State (text) + */ + state: { + codename: 'state', + id: 'a015b689-cad3-1ac9-04b4-73697525752d', + externalId: undefined, + name: 'State', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * ZIP Code (text) + */ + zip_code: { + codename: 'zip_code', + id: 'bb158ac2-41e1-5a7d-0826-bb8bf6744f0e', + externalId: undefined, + name: 'ZIP Code', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Phone (text) + */ + phone: { + codename: 'phone', + id: '1c71bc62-4b62-f307-37ef-0823776f8f73', + externalId: undefined, + name: 'Phone', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Email (text) + */ + email: { + codename: 'email', + id: '6f726c77-36bd-8062-51df-056136e10d35', + externalId: undefined, + name: 'Email', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Photo (asset) + */ + photo: { + codename: 'photo', + id: '5769c0f4-66a8-4c73-3c19-c023bdfa123a', + externalId: undefined, + name: 'Photo', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: 'e82d0f49-5b15-45e1-9b1f-32ccc1be4941', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + }, + }, + + /** + * Home + * Last modified: Tue Jul 16 2019 09:16:46 GMT+0200 (Středoevropský letní čas) + */ + home: { + codename: 'home', + id: 'a29399c3-5281-47ab-9916-acd4a6f887b7', + externalId: undefined, + name: 'Home', + elements: { + /** + * Hero unit (modular_content) + * + * Assign 1 Hero unit that has been prepared for a home page. + */ + hero_unit: { + codename: 'hero_unit', + id: '2b15a8f3-2e5f-7d01-4d8e-5b22e222aa76', + externalId: undefined, + name: 'Hero unit', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * Articles (modular_content) + * + * Assign all articles which should be displayed on the home page. + */ + articles: { + codename: 'articles', + id: '222f3a69-a54f-3e92-83ac-05f8a08e667f', + externalId: undefined, + name: 'Articles', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * Our story (modular_content) + * + * Assign 1 Fact about us which will be displayed on the home page. + */ + our_story: { + codename: 'our_story', + id: '617bccc0-4844-4beb-4ede-6247e954633a', + externalId: undefined, + name: 'Our story', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * Cafes (modular_content) + * + * Assign 4 Cafes which will be displayed on the home page. + */ + cafes: { + codename: 'cafes', + id: '6356c948-0fd6-00d0-8fc1-e2484180ae7c', + externalId: undefined, + name: 'Cafes', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * Contact (rich_text) + * + * Add Contact us information to be displayed on the home page. + */ + contact: { + codename: 'contact', + id: 'ee854076-236b-5312-0ed5-8c3cd55ca9e0', + externalId: undefined, + name: 'Contact', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: 'dd70db4b-ee97-5ab4-b752-4f9d70389426', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: 'ea3bf3c2-7eb7-4c91-aff3-09f89c743710', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Accessory + * Last modified: Tue Jul 16 2019 09:11:09 GMT+0200 (Středoevropský letní čas) + */ + accessory: { + codename: 'accessory', + id: 'd9748663-f567-4c51-a922-c24a1d6b935a', + externalId: undefined, + name: 'Accessory', + elements: { + /** + * Product name (text) + * + * Include a product display name. + */ + product_name: { + codename: 'product_name', + id: 'f9e2672c-5035-412e-3985-d6112b3781bd', + externalId: undefined, + name: 'Product name', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Price (number) + * + * Include a product price. + */ + price: { + codename: 'price', + id: '51d63ac3-d40d-15ea-c219-be207714077c', + externalId: undefined, + name: 'Price', + required: false, + type: 'number', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: { + codename: 'image', + id: 'f0db12e6-86e4-8597-903b-c5984076d6b3', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Manufacturer (text) + * + * Include a manufacturer's name. + */ + manufacturer: { + codename: 'manufacturer', + id: 'ab75ff46-b629-5ce5-aac9-79ed8a7b869c', + externalId: undefined, + name: 'Manufacturer', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Product status (taxonomy) + * + * Add a product status if the product is included in a special offering. + */ + product_status: { + codename: 'product_status', + id: 'ef13b1f4-b558-f707-35a4-86146dbe4518', + externalId: undefined, + name: 'Product status', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Short description (rich_text) + * + * Include a short description that fits within 160 characters. + */ + short_description: { + codename: 'short_description', + id: '9740e2d0-87e8-52f5-ff4c-566fa00b1253', + externalId: undefined, + name: 'Short description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Long description (rich_text) + * + * Include a full product description. + */ + long_description: { + codename: 'long_description', + id: '1f961774-a589-4e21-9f8e-a8c4908ea476', + externalId: undefined, + name: 'Long description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: '69e4af48-f1ac-1146-e6c9-d20d55ca5792', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: 'd8ed1597-930c-4cf8-a34e-c5d5e82718ed', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Brewer + * Last modified: Tue Jul 16 2019 09:15:27 GMT+0200 (Středoevropský letní čas) + */ + brewer: { + codename: 'brewer', + id: '7bc932b3-ce2a-4aa7-954e-04cbcbd214fc', + externalId: undefined, + name: 'Brewer', + elements: { + /** + * Product name (text) + * + * Include a product display name. + */ + product_name: { + codename: 'product_name', + id: '01d6c6c7-92ff-a675-e413-861e5a9a4034', + externalId: undefined, + name: 'Product name', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Price (number) + * + * Include a product price. + */ + price: { + codename: 'price', + id: '48ebe0fc-afe7-2b93-d351-0e352332bc52', + externalId: undefined, + name: 'Price', + required: false, + type: 'number', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: { + codename: 'image', + id: 'd0c1e9e7-7d5d-e61f-8564-56a8cb758cb8', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Product status (taxonomy) + * + * Add a product status if the product is included in a special offering. + */ + product_status: { + codename: 'product_status', + id: '960d0011-ff3b-41ac-1447-8eac6ee66eaa', + externalId: undefined, + name: 'Product status', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Short description (rich_text) + * + * Include a short description that fits within 160 characters. + */ + short_description: { + codename: 'short_description', + id: '8c235a7f-034e-f803-e612-9c47c8a49506', + externalId: undefined, + name: 'Short description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Long description (rich_text) + * + * Include a full product description. + */ + long_description: { + codename: 'long_description', + id: '14510bef-fd86-7d5d-992a-c1e091cbcb97', + externalId: undefined, + name: 'Long description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: '737c85be-f532-c8fe-a308-2a0f2c512f3e', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Manufacturer (taxonomy) + */ + manufacturer: { + codename: 'manufacturer', + id: '53b6bddb-fe8a-a8b2-9765-343479bf9fc2', + externalId: undefined, + name: 'Manufacturer', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '7632f3bb-2e53-438d-933c-4e8b6c035cb1', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * About us + * Last modified: Tue Jul 16 2019 09:07:38 GMT+0200 (Středoevropský letní čas) + */ + about_us: { + codename: 'about_us', + id: 'b2c14f2c-6467-460b-a70b-bca17972a33a', + externalId: undefined, + name: 'About us', + elements: { + /** + * Facts (modular_content) + * + * Assign all facts about our company which will be displayed on the about us page. + */ + facts: { + codename: 'facts', + id: 'cff560dc-ed24-7036-cbb6-b7a1b61b196a', + externalId: undefined, + name: 'Facts', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: '50cb9acf-45f5-a186-5c00-9a9e4a37d84a', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '65911e49-7bb0-41ca-9d17-ab218135126d', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Fact about us + * Last modified: Wed Mar 27 2019 14:05:49 GMT+0100 (Středoevropský standardní čas) + */ + fact_about_us: { + codename: 'fact_about_us', + id: 'b99ec220-0f2b-4658-a080-ff0afe92f6d1', + externalId: undefined, + name: 'Fact about us', + elements: { + /** + * Title (text) + * + * Provide a title that fits within 60 characters. + */ + title: { + codename: 'title', + id: '2375ca8a-43d2-7282-162c-922a6fdeba3e', + externalId: undefined, + name: 'Title', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Description (rich_text) + * + * Include a main goal of our business. The limit is 80 characters. + */ + description: { + codename: 'description', + id: '1b658e81-88c9-73d1-374d-7a60e3756ef7', + externalId: undefined, + name: 'Description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. + */ + image: { + codename: 'image', + id: '68d194b6-efad-6b25-89a4-2dfc75fed5a5', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '23a715f9-755c-4b9d-b6b3-e02fc1b09b83', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + }, + }, +}; diff --git a/src/Models/project/index.ts b/src/Models/project/index.ts new file mode 100644 index 0000000..3d3453e --- /dev/null +++ b/src/Models/project/index.ts @@ -0,0 +1,8 @@ +export * from './languages'; +export * from './collections'; +export * from './contentTypes'; +export * from './taxonomies'; +export * from './workflows'; +export * from './roles'; +export * from './assetFolders'; +export * from './webhooks'; diff --git a/src/Models/project/languages.ts b/src/Models/project/languages.ts new file mode 100644 index 0000000..7f92163 --- /dev/null +++ b/src/Models/project/languages.ts @@ -0,0 +1,34 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const languages = { + /** + * English (United States) + */ + enUS: { + codename: 'en-US', + id: '00000000-0000-0000-0000-000000000000', + isActive: true, + isDefault: true, + fallbackLanguageId: '00000000-0000-0000-0000-000000000000', + externalId: undefined, + name: 'English (United States)', + }, + + /** + * Spanish (Spain) + */ + esES: { + codename: 'es-ES', + id: 'd1f95fde-af02-b3b5-bd9e-f232311ccab8', + isActive: true, + isDefault: false, + fallbackLanguageId: '00000000-0000-0000-0000-000000000000', + externalId: undefined, + name: 'Spanish (Spain)', + }, +}; diff --git a/src/Models/project/roles.ts b/src/Models/project/roles.ts new file mode 100644 index 0000000..ecd257b --- /dev/null +++ b/src/Models/project/roles.ts @@ -0,0 +1,8 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const roles = {}; diff --git a/src/Models/project/taxonomies.ts b/src/Models/project/taxonomies.ts new file mode 100644 index 0000000..e0ed39a --- /dev/null +++ b/src/Models/project/taxonomies.ts @@ -0,0 +1,268 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const taxonomies = { + /** + * Processing + */ + processing: { + codename: 'processing', + id: 'd351400e-0290-87b2-1413-6c411d8ae5a4', + externalId: undefined, + name: 'Processing', + terms: { + wet__washed_: { + codename: 'wet__washed_', + id: 'a831d60b-ff0e-7df1-61d2-73e851a5deab', + externalId: undefined, + name: 'Wet (Washed)', + terms: {}, + }, + dry__natural_: { + codename: 'dry__natural_', + id: 'ac34eaa7-8463-62b9-825e-66aff9e6b216', + externalId: undefined, + name: 'Dry (Natural)', + terms: {}, + }, + semi_dry: { + codename: 'semi_dry', + id: '908321fa-776d-d441-6a72-76fba3959c1d', + externalId: undefined, + name: 'Semi-dry', + terms: {}, + }, + }, + }, + + /** + * Product status + */ + product_status: { + codename: 'product_status', + id: '79b1c5b6-30bc-d076-a236-d9ec9f1ff01b', + externalId: undefined, + name: 'Product status', + terms: { + on_sale: { + codename: 'on_sale', + id: '6352c8bf-8024-9986-8373-35445e1f0d59', + externalId: undefined, + name: 'On sale', + terms: {}, + }, + bestseller: { + codename: 'bestseller', + id: '8d808da3-29de-e608-5699-8565687dd474', + externalId: undefined, + name: 'Bestseller', + terms: {}, + }, + }, + }, + + /** + * Sitemap + */ + sitemap_538125f: { + codename: 'sitemap_538125f', + id: '538125ff-c59c-4193-88ce-71a7016830ed', + externalId: undefined, + name: 'Sitemap', + terms: { + home: { + codename: 'home', + id: '796ad1bc-7d9f-426f-97ba-d16003c3f04c', + externalId: undefined, + name: 'Home', + terms: {}, + }, + products: { + codename: 'products', + id: '6bb115ce-4f92-44c6-8643-d148f9f7028a', + externalId: undefined, + name: 'Products', + terms: { + coffee: { + codename: 'coffee', + id: '30453aab-633b-4e7c-b9b3-cda95163ad0f', + externalId: undefined, + name: 'Coffee', + terms: {}, + }, + brewers: { + codename: 'brewers', + id: 'c66be017-bacc-403f-9f98-8ead623d687e', + externalId: undefined, + name: 'Brewers', + terms: {}, + }, + accessories: { + codename: 'accessories', + id: 'baa49a0a-479a-4279-9fe0-f29393f330c5', + externalId: undefined, + name: 'Accessories', + terms: {}, + }, + grinders: { + codename: 'grinders', + id: '82b3f64d-a41f-4f78-a410-c6c0e095b3c7', + externalId: undefined, + name: 'Grinders', + terms: {}, + }, + }, + }, + cafes: { + codename: 'cafes', + id: '2ab0aad5-7609-4371-8d6e-cb4a917b2ad1', + externalId: undefined, + name: 'Cafes', + terms: { + north_america: { + codename: 'north_america', + id: 'f319b28e-c194-496a-b188-4f91cc010a67', + externalId: undefined, + name: 'North America', + terms: {}, + }, + europe: { + codename: 'europe', + id: 'bbac5542-33b5-40ad-a3a9-2f2d37a40ab3', + externalId: undefined, + name: 'Europe', + terms: {}, + }, + australia: { + codename: 'australia', + id: '405c6578-8233-4277-9826-6b5e74dc6f39', + externalId: undefined, + name: 'Australia', + terms: {}, + }, + }, + }, + articles: { + codename: 'articles', + id: '7ca9b56c-6379-46dc-ae90-3df4b9abd217', + externalId: undefined, + name: 'Articles', + terms: {}, + }, + offices: { + codename: 'offices', + id: '3f7bee52-08cc-4a12-8fe9-dbce05871ca0', + externalId: undefined, + name: 'Offices', + terms: {}, + }, + about_us: { + codename: 'about_us', + id: 'bbe0ed98-bc68-4f9b-85cb-73cb28078b3c', + externalId: undefined, + name: 'About us', + terms: {}, + }, + }, + }, + + /** + * Personas + */ + personas: { + codename: 'personas', + id: 'f30c7f72-e9ab-8832-2a57-62944a038809', + externalId: undefined, + name: 'Personas', + terms: { + coffee_expert: { + codename: 'coffee_expert', + id: '6693ca6e-79e0-57e4-000d-d23d5ce8f656', + externalId: undefined, + name: 'Coffee expert', + terms: { + barista: { + codename: 'barista', + id: '6a372f43-ccd7-e524-6308-c2094e7b6596', + externalId: undefined, + name: 'Barista', + terms: {}, + }, + cafe_owner: { + codename: 'cafe_owner', + id: 'cdf2f3c6-89e3-5df1-f7de-7179460bd6b4', + externalId: undefined, + name: 'Cafe owner', + terms: {}, + }, + }, + }, + coffee_enthusiast: { + codename: 'coffee_enthusiast', + id: 'ab2b73a3-473d-4232-0652-495598f5d670', + externalId: undefined, + name: 'Coffee enthusiast', + terms: { + coffee_lover: { + codename: 'coffee_lover', + id: '208a9095-1b92-10da-7627-75ae311935cf', + externalId: undefined, + name: 'Coffee lover', + terms: {}, + }, + coffee_blogger: { + codename: 'coffee_blogger', + id: '4fa27320-c363-3ebe-5ab5-b531300f053f', + externalId: undefined, + name: 'Coffee blogger', + terms: {}, + }, + }, + }, + }, + }, + + /** + * Manufacturer + */ + manufacturer: { + codename: 'manufacturer', + id: '4ce421e9-c403-eee8-fdc2-74f09392a749', + externalId: undefined, + name: 'Manufacturer', + terms: { + aerobie: { + codename: 'aerobie', + id: 'f04c8552-1b97-a49b-3944-79275622f471', + externalId: undefined, + name: 'Aerobie', + terms: {}, + }, + chemex: { + codename: 'chemex', + id: '16d27bf1-e0f4-8646-0e54-1b71efc6947f', + externalId: undefined, + name: 'Chemex', + terms: {}, + }, + espro: { + codename: 'espro', + id: 'b378225f-6dfc-e261-3848-dd030a6d7883', + externalId: undefined, + name: 'Espro', + terms: {}, + }, + hario: { + codename: 'hario', + id: '6fde9724-5b72-8bc9-6da0-4f0573a54532', + externalId: undefined, + name: 'Hario', + terms: {}, + }, + }, + }, +}; diff --git a/src/Models/project/webhooks.ts b/src/Models/project/webhooks.ts new file mode 100644 index 0000000..9f45fc8 --- /dev/null +++ b/src/Models/project/webhooks.ts @@ -0,0 +1,8 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const webhooks = {}; diff --git a/src/Models/project/workflows.ts b/src/Models/project/workflows.ts new file mode 100644 index 0000000..9eff47b --- /dev/null +++ b/src/Models/project/workflows.ts @@ -0,0 +1,19 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const workflows = { + /** + * Default + * Archived step Id: 7a535a69-ad34-47f8-806a-def1fdf4d391 + * Published step Id: b4363ccd-8f21-45fd-a840-5843d7b7f008 + */ + default: { + codename: 'default', + id: '00000000-0000-0000-0000-000000000000', + name: 'Default', + }, +}; diff --git a/src/Models/taxonomies/index.ts b/src/Models/taxonomies/index.ts new file mode 100644 index 0000000..4a62747 --- /dev/null +++ b/src/Models/taxonomies/index.ts @@ -0,0 +1,5 @@ +export * from './processing'; +export * from './product_status'; +export * from './sitemap_538125f'; +export * from './personas'; +export * from './manufacturer'; diff --git a/src/Models/taxonomies/manufacturer.ts b/src/Models/taxonomies/manufacturer.ts new file mode 100644 index 0000000..81a90b1 --- /dev/null +++ b/src/Models/taxonomies/manufacturer.ts @@ -0,0 +1,8 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Manufacturer + * Id: 4ce421e9-c403-eee8-fdc2-74f09392a749 + * Codename: manufacturer + */ +export type Manufacturer = 'aerobie' | 'chemex' | 'espro' | 'hario'; diff --git a/src/Models/taxonomies/personas.ts b/src/Models/taxonomies/personas.ts new file mode 100644 index 0000000..593ae84 --- /dev/null +++ b/src/Models/taxonomies/personas.ts @@ -0,0 +1,14 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Personas + * Id: f30c7f72-e9ab-8832-2a57-62944a038809 + * Codename: personas + */ +export type Personas = + | 'coffee_expert' + | 'barista' + | 'cafe_owner' + | 'coffee_enthusiast' + | 'coffee_lover' + | 'coffee_blogger'; diff --git a/src/Models/taxonomies/processing.ts b/src/Models/taxonomies/processing.ts new file mode 100644 index 0000000..e145cd7 --- /dev/null +++ b/src/Models/taxonomies/processing.ts @@ -0,0 +1,8 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Processing + * Id: d351400e-0290-87b2-1413-6c411d8ae5a4 + * Codename: processing + */ +export type Processing = 'wet__washed_' | 'dry__natural_' | 'semi_dry'; diff --git a/src/Models/taxonomies/product_status.ts b/src/Models/taxonomies/product_status.ts new file mode 100644 index 0000000..cedaacc --- /dev/null +++ b/src/Models/taxonomies/product_status.ts @@ -0,0 +1,8 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Product status + * Id: 79b1c5b6-30bc-d076-a236-d9ec9f1ff01b + * Codename: product_status + */ +export type ProductStatus = 'on_sale' | 'bestseller'; diff --git a/src/Models/taxonomies/sitemap_538125f.ts b/src/Models/taxonomies/sitemap_538125f.ts new file mode 100644 index 0000000..5a09669 --- /dev/null +++ b/src/Models/taxonomies/sitemap_538125f.ts @@ -0,0 +1,21 @@ +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Sitemap + * Id: 538125ff-c59c-4193-88ce-71a7016830ed + * Codename: sitemap_538125f + */ +export type Sitemap = + | 'home' + | 'products' + | 'coffee' + | 'brewers' + | 'accessories' + | 'grinders' + | 'cafes' + | 'north_america' + | 'europe' + | 'australia' + | 'articles' + | 'offices' + | 'about_us'; diff --git a/src/Models/tweet.ts b/src/Models/tweet.ts deleted file mode 100644 index c3152ae..0000000 --- a/src/Models/tweet.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { IContentItem, Elements } from '@kentico/kontent-delivery'; - -/** - * Generated by '@kentico/kontent-model-generator@4.1.0' at 'Thu, 07 Apr 2022 08:01:06 GMT' - */ -export type Tweet = IContentItem<{ - tweetLink: Elements.TextElement; - theme: Elements.MultipleChoiceElement; - displayOptions: Elements.MultipleChoiceElement; -}>; diff --git a/src/Pages/About.tsx b/src/Pages/About.tsx index 74e9b7d..5fd4c42 100644 --- a/src/Pages/About.tsx +++ b/src/Pages/About.tsx @@ -8,10 +8,10 @@ import { defaultLanguage, initLanguageCodeObject, } from '../Utilities/LanguageCodes'; -import { FactAboutUs } from '../Models/fact_about_us'; import { useIntl } from 'react-intl'; -import { AboutUs } from '../Models/about_us'; -import { projectModel } from '../Models/_project'; +import { AboutUs } from '../Models/content-types/about_us'; +import { contentTypes } from '../Models/project/contentTypes'; +import { FactAboutUs } from '../Models/content-types/fact_about_us'; interface AboutProps { urlSlug?: string; @@ -26,7 +26,7 @@ const About: React.FC = ({ urlSlug }) => { spinnerService.show('apiSpinner'); const query = Client.items() - .type(projectModel.contentTypes.about_us.codename) + .type(contentTypes.about_us.codename) .elementsParameter([ 'facts', 'modular_content', diff --git a/src/Pages/Article.tsx b/src/Pages/Article.tsx index 5f3884e..f9b88d6 100644 --- a/src/Pages/Article.tsx +++ b/src/Pages/Article.tsx @@ -10,8 +10,8 @@ import RichText from '../Components/RichText'; import Metadata from '../Components/Metadata'; import { useParams } from 'react-router-dom'; import { useIntl } from 'react-intl'; -import { Article as ArticleType } from '../Models/article'; -import { projectModel } from '../Models/_project'; +import { Article as ArticleType } from '../Models/content-types/article'; +import { contentTypes } from '../Models/project/contentTypes'; const Article: React.FC = () => { const { locale: language, formatDate, formatMessage } = useIntl(); @@ -22,7 +22,7 @@ const Article: React.FC = () => { spinnerService.show('apiSpinner'); const query = Client.items() - .type(projectModel.contentTypes.article.codename) + .type(contentTypes.article.codename) .equalsFilter('system.id', articleId!!) .elementsParameter([ 'title', diff --git a/src/Pages/Articles.tsx b/src/Pages/Articles.tsx index d9deb61..cb609c6 100644 --- a/src/Pages/Articles.tsx +++ b/src/Pages/Articles.tsx @@ -8,9 +8,8 @@ import { } from '../Utilities/LanguageCodes'; import { Link } from 'react-router-dom'; import { useIntl } from 'react-intl'; -import { Article } from '../Models/article'; -import { Article as ArticleType } from '../Models/article'; -import { projectModel } from '../Models/_project'; +import { Article as ArticleType } from '../Models/content-types/article'; +import { contentTypes } from '../Models/project/contentTypes'; const Articles: React.FC = () => { const { locale: language, formatDate, formatMessage } = useIntl(); @@ -22,7 +21,7 @@ const Articles: React.FC = () => { spinnerService.show('apiSpinner'); const query = Client.items() - .type(projectModel.contentTypes.article.codename) + .type(contentTypes.article.codename) .orderByDescending('elements.post_date') .limitParameter(10); @@ -51,7 +50,7 @@ const Articles: React.FC = () => { let counter = 0; const articlesComponent = articles[language].reduce( - (result: JSX.Element[], article: Article, index: number) => { + (result: JSX.Element[], article: ArticleType, index: number) => { if (index % 4 === 0) { result.push(
); } diff --git a/src/Pages/Brewer.tsx b/src/Pages/Brewer.tsx index 8f4029a..1a86d98 100644 --- a/src/Pages/Brewer.tsx +++ b/src/Pages/Brewer.tsx @@ -9,8 +9,8 @@ import { } from '../Utilities/LanguageCodes'; import { useParams } from 'react-router-dom'; import { useIntl } from 'react-intl'; -import { Brewer as BrewerType } from '../Models/brewer'; -import { projectModel } from '../Models/_project'; +import { Brewer as BrewerType } from '../Models/content-types/brewer'; +import { contentTypes } from '../Models/project/contentTypes'; const Brewer: React.FC = () => { const [brewer, setBrewer] = useState( @@ -23,7 +23,7 @@ const Brewer: React.FC = () => { spinnerService.show('apiSpinner'); const query = Client.items() - .type(projectModel.contentTypes.brewer.codename) + .type(contentTypes.brewer.codename) .equalsFilter('elements.url_pattern', brewerSlug!!); if (language) { diff --git a/src/Pages/Cafes.tsx b/src/Pages/Cafes.tsx index 99d48c8..c39ce47 100644 --- a/src/Pages/Cafes.tsx +++ b/src/Pages/Cafes.tsx @@ -8,10 +8,10 @@ import { ILanguageObjectWithArray, initLanguageCodeObjectWithArray, } from '../Utilities/LanguageCodes'; -import { Cafe } from '../Models/cafe'; import { useIntl } from 'react-intl'; -import { projectModel } from '../Models/_project'; import { CafeModel } from '../ViewModels/CafeModel'; +import { Cafe } from '../Models/content-types/cafe'; +import { contentTypes } from '../Models/project/contentTypes'; const Cafes: React.FC = () => { const { formatMessage, locale: language } = useIntl(); @@ -23,7 +23,7 @@ const Cafes: React.FC = () => { spinnerService.show('apiSpinner'); const query = Client.items() - .type(projectModel.contentTypes.cafe.codename) + .type(contentTypes.cafe.codename) .orderByDescending('system.name'); if (language) { diff --git a/src/Pages/Coffee.tsx b/src/Pages/Coffee.tsx index 0b9985a..45a94e4 100644 --- a/src/Pages/Coffee.tsx +++ b/src/Pages/Coffee.tsx @@ -10,8 +10,8 @@ import { } from '../Utilities/LanguageCodes'; import { useParams } from 'react-router-dom'; import { useIntl } from 'react-intl'; -import { Coffee as CoffeeType } from '../Models/coffee'; -import { projectModel } from '../Models/_project'; +import { Coffee as CoffeeType } from '../Models/content-types/coffee'; +import { contentTypes } from '../Models/project/contentTypes'; const Coffee: React.FC = () => { const [coffee, setCoffee] = useState(initLanguageCodeObject()); @@ -22,7 +22,7 @@ const Coffee: React.FC = () => { spinnerService.show('apiSpinner'); const query = Client.items() - .type(projectModel.contentTypes.coffee.codename) + .type(contentTypes.coffee.codename) .equalsFilter('elements.url_pattern', coffeeSlug!!); if (language) { diff --git a/src/Pages/Contacts.tsx b/src/Pages/Contacts.tsx index d32dfdf..db07ba9 100644 --- a/src/Pages/Contacts.tsx +++ b/src/Pages/Contacts.tsx @@ -7,9 +7,9 @@ import { defaultLanguage, initLanguageCodeObjectWithArray, } from '../Utilities/LanguageCodes'; -import { Cafe } from '../Models/cafe'; import { useIntl } from 'react-intl'; -import { projectModel } from '../Models/_project'; +import { Cafe } from '../Models/content-types/cafe'; +import { contentTypes } from '../Models/project/contentTypes'; const Contacts: React.FC = () => { const { locale: language, formatMessage } = useIntl(); @@ -21,7 +21,7 @@ const Contacts: React.FC = () => { spinnerService.show('apiSpinner'); const query = Client.items() - .type(projectModel.contentTypes.cafe.codename) + .type(contentTypes.cafe.codename) .equalsFilter('elements.country', 'USA') .orderByDescending('system.name'); diff --git a/src/Pages/Home.tsx b/src/Pages/Home.tsx index b45fee4..687eb9a 100644 --- a/src/Pages/Home.tsx +++ b/src/Pages/Home.tsx @@ -14,8 +14,8 @@ import { initLanguageCodeObject, } from '../Utilities/LanguageCodes'; import { useIntl } from 'react-intl'; -import { Home as HomeType } from '../Models/home'; -import { projectModel } from '../Models/_project'; +import { Home as HomeType } from '../Models/content-types/home'; +import { contentTypes } from '../Models/project/contentTypes'; const Home: React.FC = () => { const { locale: language, formatMessage } = useIntl(); @@ -25,7 +25,7 @@ const Home: React.FC = () => { spinnerService.show('apiSpinner'); const query = Client.items().type( - projectModel.contentTypes.home.codename + contentTypes.home.codename ); if (language) { query.languageParameter(language); diff --git a/src/Utilities/CafeListing.ts b/src/Utilities/CafeListing.ts index dd85615..41607c0 100644 --- a/src/Utilities/CafeListing.ts +++ b/src/Utilities/CafeListing.ts @@ -1,4 +1,4 @@ -import { Cafe } from '../Models/cafe'; +import { Cafe } from '../Models/content-types/cafe'; import { CafeModel } from '../ViewModels/CafeModel'; const createCafeModel = (cafe: Cafe): CafeModel => { From a23ad49bffacad40ef7fa8df4094cd51e893bf76 Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Tue, 2 Aug 2022 08:40:42 +0200 Subject: [PATCH 05/16] Rebranding --- CODE_OF_CONDUCT.md | 1 - CONTRIBUTING.md | 2 -- README.md | 2 +- src/Pages/Admin/Configuration.css | 2 +- 4 files changed, 2 insertions(+), 5 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index c1ff396..cf51e86 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -45,4 +45,3 @@ This Code of Conduct is adapted from the [Contributor Covenant][homepage], versi [homepage]: https://contributor-covenant.org [version]: https://contributor-covenant.org/version/1/4/ -![Analytics](https://kentico-ga-beacon.azurewebsites.net/api/UA-69014260-4/Kentico/Home/master/CODE_OF_CONDUCT.md?pixel) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3580d79..8edcb28 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -74,5 +74,3 @@ Your pull request will now go through extensive checks by the subject matter exp The Kotent.ai team is committed to fostering a welcoming community, therefore this project has adopted the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). If you have any additional questions or comments, you can contact us directly at devrel@kontent.ai - -![Analytics](https://kentico-ga-beacon.azurewebsites.net/api/UA-69014260-4/Kentico/Home/master/CONTRIBUTING.md?pixel) diff --git a/README.md b/README.md index 00fd84d..df57be2 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Netlify Status](https://api.netlify.com/api/v1/badges/5018e8db-b76e-4f19-8ad2-7fd9da21a2ee/deploy-status)](https://app.netlify.com/sites/kontent-sample-app-react/deploys) [![Live Demo](https://img.shields.io/badge/live-demo-brightgreen.svg)](https://kontent-sample-app-react.netlify.app/) -[![Stack Overflow](https://img.shields.io/badge/Stack%20Overflow-ASK%20NOW-FE7A16.svg?logo=stackoverflow&logoColor=white)](https://stackoverflow.com/tags/kentico-kontent) +[![Stack Overflow](https://img.shields.io/badge/Stack%20Overflow-ASK%20NOW-FE7A16.svg?logo=stackoverflow&logoColor=white)](https://stackoverflow.com/tags/kontent-ai) This is a sample website written in Typescript utilizing the Kontent.ai Delivery API to retrieve content from Kontent.ai. You can register your developer account at . For a brief walkthrough, check out [Running the React sample app](https://kontent.ai/learn/tutorials/develop-apps/get-started/run-the-react-sample-app) at Kontent Learn. diff --git a/src/Pages/Admin/Configuration.css b/src/Pages/Admin/Configuration.css index 79dc3e9..fa66a5d 100644 --- a/src/Pages/Admin/Configuration.css +++ b/src/Pages/Admin/Configuration.css @@ -1,4 +1,4 @@ -/* taken from https://github.com/Kentico/kontent-sample-app-net#getting-started build output*/ +/* taken from https://github.com/kontent-ai/sample-app-net build output*/ /* and prefixed to not affect rest of the site */ .configuration-page .button { font-family: helvetica, arial, sans-serif; From 7e194babab92125417ffaad0f613290f449894cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Chrastina?= Date: Mon, 8 Aug 2022 15:16:01 +0200 Subject: [PATCH 06/16] upgrade to new package version --- package-lock.json | 232 +++++++++++++++++------------------- package.json | 2 +- src/Components/RichText.tsx | 2 +- 3 files changed, 111 insertions(+), 125 deletions(-) diff --git a/package-lock.json b/package-lock.json index cf2a259..e0dae62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "2.1.0", "dependencies": { "@kontent-ai/delivery-sdk": "^12.0.2", - "@simply007org/kontent-react-components": "0.0.8", + "@kontent-ai/react-components": "0.1.1", "@simply007org/react-spinners": "0.0.3", "qs": "^6.9.4", "react": "^17.0.2", @@ -3051,6 +3051,20 @@ "node": ">=8" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", @@ -3060,6 +3074,25 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.11", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", @@ -3067,9 +3100,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", @@ -3148,6 +3181,21 @@ "node": ">= 8" } }, + "node_modules/@kontent-ai/react-components": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@kontent-ai/react-components/-/react-components-0.1.1.tgz", + "integrity": "sha512-kRj1Z/J9aDsT9qitATzqQH0Ml9RzLJL4K/V3HKpeqgwx6bXicVKmr0re/YmYz4LIsxM8OxMq8vRGJ5gjGY3cgg==", + "dependencies": { + "@types/react": "^17.0.39", + "@types/react-dom": "^17.0.11", + "html-react-parser": "^1.4.8", + "react": "^17.0.2", + "react-dom": "^17.0.2" + }, + "peerDependencies": { + "@kontent-ai/delivery-sdk": "12.x" + } + }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", @@ -4148,7 +4196,6 @@ "version": "17.0.14", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.14.tgz", "integrity": "sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==", - "dev": true, "dependencies": { "@types/react": "*" } @@ -7241,7 +7288,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -7255,7 +7301,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true, "funding": [ { "type": "github", @@ -7288,7 +7333,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, "dependencies": { "domelementtype": "^2.2.0" }, @@ -7303,7 +7347,6 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -7445,7 +7488,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -9393,7 +9435,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-1.1.1.tgz", "integrity": "sha512-ddijSO0GluZEdlLNmiAjFI+CkAgzUgf8n3vpitQhvlsniPMbCSWtu+QYmioaVmEN0stytm9C38p6SsTDthv0cA==", - "dev": true, "dependencies": { "domhandler": "4.3.1", "htmlparser2": "7.2.0" @@ -9403,7 +9444,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "dev": true, "engines": { "node": ">=0.12" }, @@ -9415,7 +9455,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", - "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -9479,7 +9518,6 @@ "version": "1.4.10", "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-1.4.10.tgz", "integrity": "sha512-GiG7mEwI0enY7hz0F0Zx1B4D0MCQWx2xH0KdVNV9fjqOXwwnPYM79meJ2dsIJf9QR4qQTTPEdSq7wlJfq/i6Tw==", - "dev": true, "dependencies": { "domhandler": "4.3.1", "html-dom-parser": "1.1.1", @@ -9782,8 +9820,7 @@ "node_modules/inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", - "dev": true + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" }, "node_modules/internal-slot": { "version": "1.0.3", @@ -16045,8 +16082,7 @@ "node_modules/react-property": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.0.tgz", - "integrity": "sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==", - "dev": true + "integrity": "sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==" }, "node_modules/react-refresh": { "version": "0.11.0", @@ -17530,7 +17566,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.0.tgz", "integrity": "sha512-1OqefPDxGrlMwcbfpsTVRyzwdhr4W0uxYQzeA2F1CBc8WG04udg2+ybRnvh3XYL4TdHQrCahLtax2jc8xaE6rA==", - "dev": true, "dependencies": { "style-to-object": "0.3.0" } @@ -17539,7 +17574,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "dev": true, "dependencies": { "inline-style-parser": "0.1.1" } @@ -17827,14 +17861,14 @@ } }, "node_modules/terser": { - "version": "5.13.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.13.1.tgz", - "integrity": "sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dev": true, "dependencies": { + "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.8.0-beta.0", "source-map-support": "~0.5.20" }, "bin": { @@ -17893,44 +17927,6 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/terser/node_modules/source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dev": true, - "dependencies": { - "whatwg-url": "^7.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/terser/node_modules/tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/terser/node_modules/webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "node_modules/terser/node_modules/whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "dependencies": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -21532,12 +21528,39 @@ } } }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "@jridgewell/resolve-uri": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", "dev": true }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, "@jridgewell/sourcemap-codec": { "version": "1.4.11", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", @@ -21545,9 +21568,9 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -21613,6 +21636,18 @@ "uuid": "8.3.2" } }, + "@kontent-ai/react-components": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@kontent-ai/react-components/-/react-components-0.1.1.tgz", + "integrity": "sha512-kRj1Z/J9aDsT9qitATzqQH0Ml9RzLJL4K/V3HKpeqgwx6bXicVKmr0re/YmYz4LIsxM8OxMq8vRGJ5gjGY3cgg==", + "requires": { + "@types/react": "^17.0.39", + "@types/react-dom": "^17.0.11", + "html-react-parser": "^1.4.8", + "react": "^17.0.2", + "react-dom": "^17.0.2" + } + }, "@leichtgewicht/ip-codec": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", @@ -22377,7 +22412,6 @@ "version": "17.0.14", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.14.tgz", "integrity": "sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==", - "dev": true, "requires": { "@types/react": "*" } @@ -24687,7 +24721,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "dev": true, "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -24697,8 +24730,7 @@ "domelementtype": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", - "dev": true + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" }, "domexception": { "version": "2.0.1", @@ -24721,7 +24753,6 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, "requires": { "domelementtype": "^2.2.0" } @@ -24730,7 +24761,6 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, "requires": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -24841,8 +24871,7 @@ "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, "error-ex": { "version": "1.3.2", @@ -26303,7 +26332,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-1.1.1.tgz", "integrity": "sha512-ddijSO0GluZEdlLNmiAjFI+CkAgzUgf8n3vpitQhvlsniPMbCSWtu+QYmioaVmEN0stytm9C38p6SsTDthv0cA==", - "dev": true, "requires": { "domhandler": "4.3.1", "htmlparser2": "7.2.0" @@ -26312,14 +26340,12 @@ "entities": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "dev": true + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" }, "htmlparser2": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", - "dev": true, "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.2", @@ -26369,7 +26395,6 @@ "version": "1.4.10", "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-1.4.10.tgz", "integrity": "sha512-GiG7mEwI0enY7hz0F0Zx1B4D0MCQWx2xH0KdVNV9fjqOXwwnPYM79meJ2dsIJf9QR4qQTTPEdSq7wlJfq/i6Tw==", - "dev": true, "requires": { "domhandler": "4.3.1", "html-dom-parser": "1.1.1", @@ -26586,8 +26611,7 @@ "inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", - "dev": true + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" }, "internal-slot": { "version": "1.0.3", @@ -31077,8 +31101,7 @@ "react-property": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.0.tgz", - "integrity": "sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==", - "dev": true + "integrity": "sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==" }, "react-refresh": { "version": "0.11.0", @@ -32217,7 +32240,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.0.tgz", "integrity": "sha512-1OqefPDxGrlMwcbfpsTVRyzwdhr4W0uxYQzeA2F1CBc8WG04udg2+ybRnvh3XYL4TdHQrCahLtax2jc8xaE6rA==", - "dev": true, "requires": { "style-to-object": "0.3.0" } @@ -32226,7 +32248,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "dev": true, "requires": { "inline-style-parser": "0.1.1" } @@ -32453,14 +32474,14 @@ } }, "terser": { - "version": "5.13.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.13.1.tgz", - "integrity": "sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dev": true, "requires": { + "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.8.0-beta.0", "source-map-support": "~0.5.20" }, "dependencies": { @@ -32469,41 +32490,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true - }, - "source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "dev": true, - "requires": { - "whatwg-url": "^7.0.0" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", - "dev": true - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "dev": true, - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } } } }, diff --git a/package.json b/package.json index 75ec89f..89731c7 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ }, "dependencies": { "@kontent-ai/delivery-sdk": "^12.0.2", - "@simply007org/kontent-react-components": "0.0.8", + "@kontent-ai/react-components": "0.1.1", "@simply007org/react-spinners": "0.0.3", "qs": "^6.9.4", "react": "^17.0.2", diff --git a/src/Components/RichText.tsx b/src/Components/RichText.tsx index 1853503..4170548 100644 --- a/src/Components/RichText.tsx +++ b/src/Components/RichText.tsx @@ -2,7 +2,7 @@ import { DomElementOptionsType, ResolversType, RichTextElement, -} from '@simply007org/kontent-react-components/dist/components/rich-text-element'; +} from '@kontent-ai/react-components'; import React from 'react'; import { Link } from 'react-router-dom'; import { resolveContentLink } from '../Utilities/ContentLinks'; From 3d741f8e54b0151f06d8843f6f34859389126c51 Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Tue, 9 Aug 2022 08:15:22 +0200 Subject: [PATCH 07/16] prettier --- CODE_OF_CONDUCT.md | 1 - src/Pages/Admin/Configuration.tsx | 6 +----- src/Pages/Home.tsx | 4 +--- 3 files changed, 2 insertions(+), 9 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index cf51e86..abdb262 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -44,4 +44,3 @@ This Code of Conduct is adapted from the [Contributor Covenant][homepage], versi [homepage]: https://contributor-covenant.org [version]: https://contributor-covenant.org/version/1/4/ - diff --git a/src/Pages/Admin/Configuration.tsx b/src/Pages/Admin/Configuration.tsx index beabb0c..84f0bf6 100644 --- a/src/Pages/Admin/Configuration.tsx +++ b/src/Pages/Admin/Configuration.tsx @@ -161,11 +161,7 @@ const Configuration: React.FC = () => {
diff --git a/src/Pages/Home.tsx b/src/Pages/Home.tsx index 687eb9a..93f5867 100644 --- a/src/Pages/Home.tsx +++ b/src/Pages/Home.tsx @@ -24,9 +24,7 @@ const Home: React.FC = () => { useEffect(() => { spinnerService.show('apiSpinner'); - const query = Client.items().type( - contentTypes.home.codename - ); + const query = Client.items().type(contentTypes.home.codename); if (language) { query.languageParameter(language); } From c4caa9c41fd903752c489e912c11868d069ee880 Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Tue, 9 Aug 2022 08:22:45 +0200 Subject: [PATCH 08/16] Rebranding --- README.md | 20 ++++++++++---------- src/Pages/Admin/Configuration.tsx | 12 ++++++------ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index df57be2..2120386 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# Kontent sample React single-page application +# Kontent.ai sample React single-page application [![Netlify Status](https://api.netlify.com/api/v1/badges/5018e8db-b76e-4f19-8ad2-7fd9da21a2ee/deploy-status)](https://app.netlify.com/sites/kontent-sample-app-react/deploys) [![Live Demo](https://img.shields.io/badge/live-demo-brightgreen.svg)](https://kontent-sample-app-react.netlify.app/) [![Stack Overflow](https://img.shields.io/badge/Stack%20Overflow-ASK%20NOW-FE7A16.svg?logo=stackoverflow&logoColor=white)](https://stackoverflow.com/tags/kontent-ai) -This is a sample website written in Typescript utilizing the Kontent.ai Delivery API to retrieve content from Kontent.ai. You can register your developer account at . For a brief walkthrough, check out [Running the React sample app](https://kontent.ai/learn/tutorials/develop-apps/get-started/run-the-react-sample-app) at Kontent Learn. +This is a sample website written in Typescript utilizing the Kontent.ai Delivery API to retrieve content from Kontent.ai. You can register your developer account at . For a brief walkthrough, check out [Running the React sample app](https://kontent.ai/learn/tutorials/develop-apps/get-started/run-the-react-sample-app) at Kontent.ai Learn. ## Application setup @@ -17,15 +17,15 @@ This is a sample website written in Typescript utilizing the Kontent.ai Delivery ### Connecting to your sample project -At the first run of the app, you'll be presented with a configuration page. It will allow you to connect the app to your Kontent project or create a new one. You'll also be able to start a trial and convert to a free plan when the trial expires. +At the first run of the app, you'll be presented with a configuration page. It will allow you to connect the app to your Kontent.ai project or create a new one. You'll also be able to start a trial and convert to a free plan when the trial expires. Alternatively, you can connect your project manually as per the chapter below. #### Connecting to your project manually -If you want to change the source Kontent project, follow these steps: +If you want to change the source Kontent.ai project, follow these steps: -1. In Kontent, choose Project settings from the app menu. +1. In Kontent.ai, choose Project settings from the app menu. 2. Under Development, choose API keys. 3. Copy your Project ID. 4. Open `.env.example` in the root directory. @@ -44,11 +44,11 @@ Deploy, explore and change the app directly in the browser. ## Previewing content from your project -If you already have a Kontent account and you want to connect the sample application to a project of your own, you need to provide your Project ID and your Preview API key to authorize requests to the Delivery Preview API. For example, you can connect the application to your modified version of the sample project. +If you already have a Kontent.ai account and you want to connect the sample application to a project of your own, you need to provide your Project ID and your Preview API key to authorize requests to the Delivery Preview API. For example, you can connect the application to your modified version of the sample project. To preview content in the sample application, follow these steps: -1. In Kontent, choose Project settings from the app menu. +1. In Kontent.ai, choose Project settings from the app menu. 2. Under Development, choose API keys. 3. Copy your Project ID and Preview API key. 4. Open `.env.example` in the root directory . @@ -63,11 +63,11 @@ When you now run the application, you will see all project content including the 2. Sign in with your credentials. 3. Manage content in the content administration interface of your sample project. -You can learn more about content editing in our tutorials at [Kontent Learn](https://kontent.ai/learn/tutorials/write-and-collaborate/create-content/introducing-content-items). +You can learn more about content editing in our tutorials at [Kontent.ai Learn](https://kontent.ai/learn/tutorials/write-and-collaborate/create-content/introducing-content-items). ## Content delivery -You can retrieve content either through the Kontent Delivery SDKs or the Kontent Delivery API: +You can retrieve content either through the Kontent.ai Delivery SDKs or the Kontent.ai Delivery API: - For published content, use `https://deliver.kontent.ai/PROJECT_ID/items`. - For unpublished content, use `https://preview-deliver.kontent.ai/PROJECT_ID/items`. @@ -188,7 +188,7 @@ const Container: React.FC = () => { ## Localization -In Kontent each language is identified by codename, in case of this project, it is `en-US` and `es-ES`. +In Kontent.ai each language is identified by codename, in case of this project, it is `en-US` and `es-ES`. ### Resource strings diff --git a/src/Pages/Admin/Configuration.tsx b/src/Pages/Admin/Configuration.tsx index 84f0bf6..51f7993 100644 --- a/src/Pages/Admin/Configuration.tsx +++ b/src/Pages/Admin/Configuration.tsx @@ -124,7 +124,7 @@ const Configuration: React.FC = () => { const redirectToHome = (newProjectId: string): void => { const infoMessage = newProjectId === defaultProjectId - ? `You've configured your app to with a project ID of a shared Kontent project.` + ? `You've configured your app to with a project ID of a shared Kontent.ai project.` : `You've configured your app with a project ID "${newProjectId}". You can edit its contents at https://kontent.ai/.`; navigate(`/?infoMessage=${infoMessage}`); }; @@ -168,11 +168,11 @@ const Configuration: React.FC = () => {

Sample Site—Configuration

- For your sample app to work, you should have a Kontent project - containing content. Your app should be then configured with its - project ID. You can either get it by signing in using your - Kontent credentials or by signing up for a trial. Later, it will - be converted to a free plan. + For your sample app to work, you should have a Kontent.ai + project containing content. Your app should be then configured + with its project ID. You can either get it by signing in using + your Kontent.ai credentials or by signing up for a trial. Later, + it will be converted to a free plan.

From 7c764f7c8bfb40c15ffd687d682bbe09117b608e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Chrastina?= Date: Tue, 9 Aug 2022 09:32:38 +0200 Subject: [PATCH 09/16] lint --- src/Models/content-types/about_us.ts | 312 +- src/Models/content-types/accessory.ts | 432 +- src/Models/content-types/article.ts | 472 +- src/Models/content-types/brewer.ts | 430 +- src/Models/content-types/cafe.ts | 166 +- src/Models/content-types/coffee.ts | 510 +-- src/Models/content-types/fact_about_us.ts | 98 +- src/Models/content-types/grinder.ts | 432 +- src/Models/content-types/hero_unit.ts | 98 +- src/Models/content-types/home.ts | 398 +- src/Models/content-types/hosted_video.ts | 50 +- src/Models/content-types/index.ts | 26 +- src/Models/content-types/office.ts | 166 +- src/Models/content-types/tweet.ts | 66 +- src/Models/index.ts | 6 +- src/Models/project/assetFolders.ts | 36 +- src/Models/project/collections.ts | 34 +- src/Models/project/contentTypes.ts | 4996 ++++++++++----------- src/Models/project/index.ts | 16 +- src/Models/project/languages.ts | 68 +- src/Models/project/roles.ts | 16 +- src/Models/project/taxonomies.ts | 536 +-- src/Models/project/webhooks.ts | 16 +- src/Models/project/workflows.ts | 38 +- src/Models/taxonomies/index.ts | 10 +- src/Models/taxonomies/manufacturer.ts | 16 +- src/Models/taxonomies/personas.ts | 28 +- src/Models/taxonomies/processing.ts | 16 +- src/Models/taxonomies/product_status.ts | 16 +- src/Models/taxonomies/sitemap_538125f.ts | 42 +- 30 files changed, 4773 insertions(+), 4773 deletions(-) diff --git a/src/Models/content-types/about_us.ts b/src/Models/content-types/about_us.ts index dd449eb..8303a98 100644 --- a/src/Models/content-types/about_us.ts +++ b/src/Models/content-types/about_us.ts @@ -1,156 +1,156 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -import { Sitemap } from '../taxonomies/sitemap_538125f'; -import { FactAboutUs } from './fact_about_us'; - -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * About us - * Id: b2c14f2c-6467-460b-a70b-bca17972a33a - * Codename: about_us - */ -export type AboutUs = IContentItem<{ - /** - * Facts (modular_content) - * Required: false - * Id: cff560dc-ed24-7036-cbb6-b7a1b61b196a - * Codename: facts - * - * Assign all facts about our company which will be displayed on the about us page. - */ - facts: Elements.LinkedItemsElement; - - /** - * URL pattern (url_slug) - * Required: false - * Id: 50cb9acf-45f5-a186-5c00-9a9e4a37d84a - * Codename: url_pattern - * - * Provide a SEO-friendly URL. - */ - urlPattern: Elements.UrlSlugElement; - - /** - * Sitemap (taxonomy) - * Required: false - * Id: 65911e49-7bb0-41ca-9d17-ab218135126d - * Codename: sitemap - */ - sitemap: Elements.TaxonomyElement; - - /** - * Meta title (text) - * Required: false - * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 - * Codename: metadata__meta_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 30–60 characters - */ - metadataMetaTitle: Elements.TextElement; - - /** - * Meta description (text) - * Required: false - * Id: 2e555cc1-1eae-520c-189e-28548904f529 - * Codename: metadata__meta_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 70–150 characters - */ - metadataMetaDescription: Elements.TextElement; - - /** - * og:title (text) - * Required: false - * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 - * Codename: metadata__og_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataOgTitle: Elements.TextElement; - - /** - * og:description (text) - * Required: false - * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d - * Codename: metadata__og_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 150 characters - */ - metadataOgDescription: Elements.TextElement; - - /** - * og:image (asset) - * Required: false - * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd - * Codename: metadata__og_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadataOgImage: Elements.AssetsElement; - - /** - * twitter:site (text) - * Required: false - * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a - * Codename: metadata__twitter_site - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterSite: Elements.TextElement; - - /** - * twitter:creator (text) - * Required: false - * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af - * Codename: metadata__twitter_creator - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterCreator: Elements.TextElement; - - /** - * twitter:title (text) - * Required: false - * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 - * Codename: metadata__twitter_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataTwitterTitle: Elements.TextElement; - - /** - * twitter:description (text) - * Required: false - * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 - * Codename: metadata__twitter_description - * From snippet: Metadata - * Snippet codename: metadata - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadataTwitterDescription: Elements.TextElement; - - /** - * twitter:image (asset) - * Required: false - * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca - * Codename: metadata__twitter_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadataTwitterImage: Elements.AssetsElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; +import { FactAboutUs } from './fact_about_us'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * About us + * Id: b2c14f2c-6467-460b-a70b-bca17972a33a + * Codename: about_us + */ +export type AboutUs = IContentItem<{ + /** + * Facts (modular_content) + * Required: false + * Id: cff560dc-ed24-7036-cbb6-b7a1b61b196a + * Codename: facts + * + * Assign all facts about our company which will be displayed on the about us page. + */ + facts: Elements.LinkedItemsElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: 50cb9acf-45f5-a186-5c00-9a9e4a37d84a + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 65911e49-7bb0-41ca-9d17-ab218135126d + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/accessory.ts b/src/Models/content-types/accessory.ts index 63fec7b..fe57272 100644 --- a/src/Models/content-types/accessory.ts +++ b/src/Models/content-types/accessory.ts @@ -1,216 +1,216 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -import { ProductStatus } from '../taxonomies/product_status'; -import { Sitemap } from '../taxonomies/sitemap_538125f'; - -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Accessory - * Id: d9748663-f567-4c51-a922-c24a1d6b935a - * Codename: accessory - */ -export type Accessory = IContentItem<{ - /** - * Product name (text) - * Required: false - * Id: f9e2672c-5035-412e-3985-d6112b3781bd - * Codename: product_name - * - * Include a product display name. - */ - productName: Elements.TextElement; - - /** - * Price (number) - * Required: false - * Id: 51d63ac3-d40d-15ea-c219-be207714077c - * Codename: price - * - * Include a product price. - */ - price: Elements.NumberElement; - - /** - * Image (asset) - * Required: false - * Id: f0db12e6-86e4-8597-903b-c5984076d6b3 - * Codename: image - * - * Upload one product image; the recommended size is 300 × 300 px. - */ - image: Elements.AssetsElement; - - /** - * Manufacturer (text) - * Required: false - * Id: ab75ff46-b629-5ce5-aac9-79ed8a7b869c - * Codename: manufacturer - * - * Include a manufacturer's name. - */ - manufacturer: Elements.TextElement; - - /** - * Product status (taxonomy) - * Required: false - * Id: ef13b1f4-b558-f707-35a4-86146dbe4518 - * Codename: product_status - * - * Add a product status if the product is included in a special offering. - */ - productStatus: Elements.TaxonomyElement; - - /** - * Short description (rich_text) - * Required: false - * Id: 9740e2d0-87e8-52f5-ff4c-566fa00b1253 - * Codename: short_description - * - * Include a short description that fits within 160 characters. - */ - shortDescription: Elements.RichTextElement; - - /** - * Long description (rich_text) - * Required: false - * Id: 1f961774-a589-4e21-9f8e-a8c4908ea476 - * Codename: long_description - * - * Include a full product description. - */ - longDescription: Elements.RichTextElement; - - /** - * URL pattern (url_slug) - * Required: false - * Id: 69e4af48-f1ac-1146-e6c9-d20d55ca5792 - * Codename: url_pattern - * - * Provide a SEO-friendly URL. - */ - urlPattern: Elements.UrlSlugElement; - - /** - * Sitemap (taxonomy) - * Required: false - * Id: d8ed1597-930c-4cf8-a34e-c5d5e82718ed - * Codename: sitemap - */ - sitemap: Elements.TaxonomyElement; - - /** - * Meta title (text) - * Required: false - * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 - * Codename: metadata__meta_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 30–60 characters - */ - metadataMetaTitle: Elements.TextElement; - - /** - * Meta description (text) - * Required: false - * Id: 2e555cc1-1eae-520c-189e-28548904f529 - * Codename: metadata__meta_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 70–150 characters - */ - metadataMetaDescription: Elements.TextElement; - - /** - * og:title (text) - * Required: false - * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 - * Codename: metadata__og_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataOgTitle: Elements.TextElement; - - /** - * og:description (text) - * Required: false - * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d - * Codename: metadata__og_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 150 characters - */ - metadataOgDescription: Elements.TextElement; - - /** - * og:image (asset) - * Required: false - * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd - * Codename: metadata__og_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadataOgImage: Elements.AssetsElement; - - /** - * twitter:site (text) - * Required: false - * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a - * Codename: metadata__twitter_site - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterSite: Elements.TextElement; - - /** - * twitter:creator (text) - * Required: false - * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af - * Codename: metadata__twitter_creator - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterCreator: Elements.TextElement; - - /** - * twitter:title (text) - * Required: false - * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 - * Codename: metadata__twitter_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataTwitterTitle: Elements.TextElement; - - /** - * twitter:description (text) - * Required: false - * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 - * Codename: metadata__twitter_description - * From snippet: Metadata - * Snippet codename: metadata - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadataTwitterDescription: Elements.TextElement; - - /** - * twitter:image (asset) - * Required: false - * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca - * Codename: metadata__twitter_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadataTwitterImage: Elements.AssetsElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { ProductStatus } from '../taxonomies/product_status'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Accessory + * Id: d9748663-f567-4c51-a922-c24a1d6b935a + * Codename: accessory + */ +export type Accessory = IContentItem<{ + /** + * Product name (text) + * Required: false + * Id: f9e2672c-5035-412e-3985-d6112b3781bd + * Codename: product_name + * + * Include a product display name. + */ + productName: Elements.TextElement; + + /** + * Price (number) + * Required: false + * Id: 51d63ac3-d40d-15ea-c219-be207714077c + * Codename: price + * + * Include a product price. + */ + price: Elements.NumberElement; + + /** + * Image (asset) + * Required: false + * Id: f0db12e6-86e4-8597-903b-c5984076d6b3 + * Codename: image + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: Elements.AssetsElement; + + /** + * Manufacturer (text) + * Required: false + * Id: ab75ff46-b629-5ce5-aac9-79ed8a7b869c + * Codename: manufacturer + * + * Include a manufacturer's name. + */ + manufacturer: Elements.TextElement; + + /** + * Product status (taxonomy) + * Required: false + * Id: ef13b1f4-b558-f707-35a4-86146dbe4518 + * Codename: product_status + * + * Add a product status if the product is included in a special offering. + */ + productStatus: Elements.TaxonomyElement; + + /** + * Short description (rich_text) + * Required: false + * Id: 9740e2d0-87e8-52f5-ff4c-566fa00b1253 + * Codename: short_description + * + * Include a short description that fits within 160 characters. + */ + shortDescription: Elements.RichTextElement; + + /** + * Long description (rich_text) + * Required: false + * Id: 1f961774-a589-4e21-9f8e-a8c4908ea476 + * Codename: long_description + * + * Include a full product description. + */ + longDescription: Elements.RichTextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: 69e4af48-f1ac-1146-e6c9-d20d55ca5792 + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: d8ed1597-930c-4cf8-a34e-c5d5e82718ed + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/article.ts b/src/Models/content-types/article.ts index c572cfe..bf9b00c 100644 --- a/src/Models/content-types/article.ts +++ b/src/Models/content-types/article.ts @@ -1,236 +1,236 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -import { Personas } from '../taxonomies/personas'; -import { Sitemap } from '../taxonomies/sitemap_538125f'; - -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Article - * Id: b7aa4a53-d9b1-48cf-b7a6-ed0b182c4b89 - * Codename: article - */ -export type Article = IContentItem<{ - /** - * Title (text) - * Required: false - * Id: 85d5efc6-f47e-2fde-a6f5-0950fe89ecd1 - * Codename: title - * - * The title should fit within 60 characters.Our voice and tone recommendations: — avoid coffee jargon. - */ - title: Elements.TextElement; - - /** - * Teaser image (asset) - * Required: false - * Id: 62eb9881-e222-6b81-91d2-fdf052726414 - * Codename: teaser_image - * - * Upload an image at a resolution of at least 600 × 1200 px. - */ - teaserImage: Elements.AssetsElement; - - /** - * Post date (date_time) - * Required: false - * Id: 4ae5f7a9-fe1f-1e8c-bfec-d321455139c4 - * Codename: post_date - * - * Provide a date that will appear on the live site as the date this article was posted live. This date will also influence the order of the articles. - */ - postDate: Elements.DateTimeElement; - - /** - * Summary (text) - * Required: false - * Id: 90550cbe-7bff-40a9-2947-9c81489fe562 - * Codename: summary - * - * Provide a short summary of the text. It should be catchy and make the visitor want to read the whole article.The summary should fit within 160 characters. - */ - summary: Elements.TextElement; - - /** - * Body Copy (rich_text) - * Required: false - * Id: 108ed7c0-fc8c-c0ec-d0b5-5a8071408b54 - * Codename: body_copy - * - * Keep the article structured with concise paragraphs complemented with headlines that will help the reader navigate through the article's content.Preferred glossary terms — coffee, brewing, grinder, drip, roast, filter. - */ - bodyCopy: Elements.RichTextElement; - - /** - * Related articles (modular_content) - * Required: false - * Id: ee7c3687-b469-6c56-3ac6-c8dfdc8b58b5 - * Codename: related_articles - * - * Provide articles with related topics. - */ - relatedArticles: Elements.LinkedItemsElement; - - /** - * Meta keywords (text) - * Required: false - * Id: 5efb2425-5987-a4a6-a2d3-b14712b56e73 - * Codename: meta_keywords - * - * Enter tags separated with a comma. Example: coffee, "coffee roast”, grinder - */ - metaKeywords: Elements.TextElement; - - /** - * Personas (taxonomy) - * Required: false - * Id: 0a16b642-ac3e-584d-a45a-ba354a30b2bd - * Codename: personas - * - * Provide all personas for which this article is relevant. - */ - personas: Elements.TaxonomyElement; - - /** - * Meta description (text) - * Required: false - * Id: b9dc537c-2518-e4f5-8325-ce4fce26171e - * Codename: meta_description - * - * Sum up the blog for SEO purposes. Limit for the meta description is 160 characters. - */ - metaDescription: Elements.TextElement; - - /** - * URL pattern (url_slug) - * Required: false - * Id: f2ff5e3f-a9ca-4604-58b0-34a2ad6a7cf1 - * Codename: url_pattern - * - * Provide a SEO-friendly URL. - */ - urlPattern: Elements.UrlSlugElement; - - /** - * Sitemap (taxonomy) - * Required: false - * Id: a4d7a146-7e39-4001-b462-c5a0c734f3f5 - * Codename: sitemap - */ - sitemap: Elements.TaxonomyElement; - - /** - * Meta title (text) - * Required: false - * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 - * Codename: metadata__meta_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 30–60 characters - */ - metadataMetaTitle: Elements.TextElement; - - /** - * Meta description (text) - * Required: false - * Id: 2e555cc1-1eae-520c-189e-28548904f529 - * Codename: metadata__meta_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 70–150 characters - */ - metadataMetaDescription: Elements.TextElement; - - /** - * og:title (text) - * Required: false - * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 - * Codename: metadata__og_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataOgTitle: Elements.TextElement; - - /** - * og:description (text) - * Required: false - * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d - * Codename: metadata__og_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 150 characters - */ - metadataOgDescription: Elements.TextElement; - - /** - * og:image (asset) - * Required: false - * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd - * Codename: metadata__og_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadataOgImage: Elements.AssetsElement; - - /** - * twitter:site (text) - * Required: false - * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a - * Codename: metadata__twitter_site - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterSite: Elements.TextElement; - - /** - * twitter:creator (text) - * Required: false - * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af - * Codename: metadata__twitter_creator - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterCreator: Elements.TextElement; - - /** - * twitter:title (text) - * Required: false - * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 - * Codename: metadata__twitter_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataTwitterTitle: Elements.TextElement; - - /** - * twitter:description (text) - * Required: false - * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 - * Codename: metadata__twitter_description - * From snippet: Metadata - * Snippet codename: metadata - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadataTwitterDescription: Elements.TextElement; - - /** - * twitter:image (asset) - * Required: false - * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca - * Codename: metadata__twitter_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadataTwitterImage: Elements.AssetsElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Personas } from '../taxonomies/personas'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Article + * Id: b7aa4a53-d9b1-48cf-b7a6-ed0b182c4b89 + * Codename: article + */ +export type Article = IContentItem<{ + /** + * Title (text) + * Required: false + * Id: 85d5efc6-f47e-2fde-a6f5-0950fe89ecd1 + * Codename: title + * + * The title should fit within 60 characters.Our voice and tone recommendations: — avoid coffee jargon. + */ + title: Elements.TextElement; + + /** + * Teaser image (asset) + * Required: false + * Id: 62eb9881-e222-6b81-91d2-fdf052726414 + * Codename: teaser_image + * + * Upload an image at a resolution of at least 600 × 1200 px. + */ + teaserImage: Elements.AssetsElement; + + /** + * Post date (date_time) + * Required: false + * Id: 4ae5f7a9-fe1f-1e8c-bfec-d321455139c4 + * Codename: post_date + * + * Provide a date that will appear on the live site as the date this article was posted live. This date will also influence the order of the articles. + */ + postDate: Elements.DateTimeElement; + + /** + * Summary (text) + * Required: false + * Id: 90550cbe-7bff-40a9-2947-9c81489fe562 + * Codename: summary + * + * Provide a short summary of the text. It should be catchy and make the visitor want to read the whole article.The summary should fit within 160 characters. + */ + summary: Elements.TextElement; + + /** + * Body Copy (rich_text) + * Required: false + * Id: 108ed7c0-fc8c-c0ec-d0b5-5a8071408b54 + * Codename: body_copy + * + * Keep the article structured with concise paragraphs complemented with headlines that will help the reader navigate through the article's content.Preferred glossary terms — coffee, brewing, grinder, drip, roast, filter. + */ + bodyCopy: Elements.RichTextElement; + + /** + * Related articles (modular_content) + * Required: false + * Id: ee7c3687-b469-6c56-3ac6-c8dfdc8b58b5 + * Codename: related_articles + * + * Provide articles with related topics. + */ + relatedArticles: Elements.LinkedItemsElement; + + /** + * Meta keywords (text) + * Required: false + * Id: 5efb2425-5987-a4a6-a2d3-b14712b56e73 + * Codename: meta_keywords + * + * Enter tags separated with a comma. Example: coffee, "coffee roast”, grinder + */ + metaKeywords: Elements.TextElement; + + /** + * Personas (taxonomy) + * Required: false + * Id: 0a16b642-ac3e-584d-a45a-ba354a30b2bd + * Codename: personas + * + * Provide all personas for which this article is relevant. + */ + personas: Elements.TaxonomyElement; + + /** + * Meta description (text) + * Required: false + * Id: b9dc537c-2518-e4f5-8325-ce4fce26171e + * Codename: meta_description + * + * Sum up the blog for SEO purposes. Limit for the meta description is 160 characters. + */ + metaDescription: Elements.TextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: f2ff5e3f-a9ca-4604-58b0-34a2ad6a7cf1 + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: a4d7a146-7e39-4001-b462-c5a0c734f3f5 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/brewer.ts b/src/Models/content-types/brewer.ts index f74c1fd..45aa701 100644 --- a/src/Models/content-types/brewer.ts +++ b/src/Models/content-types/brewer.ts @@ -1,215 +1,215 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -import { ProductStatus } from '../taxonomies/product_status'; -import { Manufacturer } from '../taxonomies/manufacturer'; -import { Sitemap } from '../taxonomies/sitemap_538125f'; - -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Brewer - * Id: 7bc932b3-ce2a-4aa7-954e-04cbcbd214fc - * Codename: brewer - */ -export type Brewer = IContentItem<{ - /** - * Product name (text) - * Required: false - * Id: 01d6c6c7-92ff-a675-e413-861e5a9a4034 - * Codename: product_name - * - * Include a product display name. - */ - productName: Elements.TextElement; - - /** - * Price (number) - * Required: false - * Id: 48ebe0fc-afe7-2b93-d351-0e352332bc52 - * Codename: price - * - * Include a product price. - */ - price: Elements.NumberElement; - - /** - * Image (asset) - * Required: false - * Id: d0c1e9e7-7d5d-e61f-8564-56a8cb758cb8 - * Codename: image - * - * Upload one product image; the recommended size is 300 × 300 px. - */ - image: Elements.AssetsElement; - - /** - * Product status (taxonomy) - * Required: false - * Id: 960d0011-ff3b-41ac-1447-8eac6ee66eaa - * Codename: product_status - * - * Add a product status if the product is included in a special offering. - */ - productStatus: Elements.TaxonomyElement; - - /** - * Short description (rich_text) - * Required: false - * Id: 8c235a7f-034e-f803-e612-9c47c8a49506 - * Codename: short_description - * - * Include a short description that fits within 160 characters. - */ - shortDescription: Elements.RichTextElement; - - /** - * Long description (rich_text) - * Required: false - * Id: 14510bef-fd86-7d5d-992a-c1e091cbcb97 - * Codename: long_description - * - * Include a full product description. - */ - longDescription: Elements.RichTextElement; - - /** - * URL pattern (url_slug) - * Required: false - * Id: 737c85be-f532-c8fe-a308-2a0f2c512f3e - * Codename: url_pattern - * - * Provide a SEO-friendly URL. - */ - urlPattern: Elements.UrlSlugElement; - - /** - * Manufacturer (taxonomy) - * Required: false - * Id: 53b6bddb-fe8a-a8b2-9765-343479bf9fc2 - * Codename: manufacturer - */ - manufacturer: Elements.TaxonomyElement; - - /** - * Sitemap (taxonomy) - * Required: false - * Id: 7632f3bb-2e53-438d-933c-4e8b6c035cb1 - * Codename: sitemap - */ - sitemap: Elements.TaxonomyElement; - - /** - * Meta title (text) - * Required: false - * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 - * Codename: metadata__meta_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 30–60 characters - */ - metadataMetaTitle: Elements.TextElement; - - /** - * Meta description (text) - * Required: false - * Id: 2e555cc1-1eae-520c-189e-28548904f529 - * Codename: metadata__meta_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 70–150 characters - */ - metadataMetaDescription: Elements.TextElement; - - /** - * og:title (text) - * Required: false - * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 - * Codename: metadata__og_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataOgTitle: Elements.TextElement; - - /** - * og:description (text) - * Required: false - * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d - * Codename: metadata__og_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 150 characters - */ - metadataOgDescription: Elements.TextElement; - - /** - * og:image (asset) - * Required: false - * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd - * Codename: metadata__og_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadataOgImage: Elements.AssetsElement; - - /** - * twitter:site (text) - * Required: false - * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a - * Codename: metadata__twitter_site - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterSite: Elements.TextElement; - - /** - * twitter:creator (text) - * Required: false - * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af - * Codename: metadata__twitter_creator - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterCreator: Elements.TextElement; - - /** - * twitter:title (text) - * Required: false - * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 - * Codename: metadata__twitter_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataTwitterTitle: Elements.TextElement; - - /** - * twitter:description (text) - * Required: false - * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 - * Codename: metadata__twitter_description - * From snippet: Metadata - * Snippet codename: metadata - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadataTwitterDescription: Elements.TextElement; - - /** - * twitter:image (asset) - * Required: false - * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca - * Codename: metadata__twitter_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadataTwitterImage: Elements.AssetsElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { ProductStatus } from '../taxonomies/product_status'; +import { Manufacturer } from '../taxonomies/manufacturer'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Brewer + * Id: 7bc932b3-ce2a-4aa7-954e-04cbcbd214fc + * Codename: brewer + */ +export type Brewer = IContentItem<{ + /** + * Product name (text) + * Required: false + * Id: 01d6c6c7-92ff-a675-e413-861e5a9a4034 + * Codename: product_name + * + * Include a product display name. + */ + productName: Elements.TextElement; + + /** + * Price (number) + * Required: false + * Id: 48ebe0fc-afe7-2b93-d351-0e352332bc52 + * Codename: price + * + * Include a product price. + */ + price: Elements.NumberElement; + + /** + * Image (asset) + * Required: false + * Id: d0c1e9e7-7d5d-e61f-8564-56a8cb758cb8 + * Codename: image + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: Elements.AssetsElement; + + /** + * Product status (taxonomy) + * Required: false + * Id: 960d0011-ff3b-41ac-1447-8eac6ee66eaa + * Codename: product_status + * + * Add a product status if the product is included in a special offering. + */ + productStatus: Elements.TaxonomyElement; + + /** + * Short description (rich_text) + * Required: false + * Id: 8c235a7f-034e-f803-e612-9c47c8a49506 + * Codename: short_description + * + * Include a short description that fits within 160 characters. + */ + shortDescription: Elements.RichTextElement; + + /** + * Long description (rich_text) + * Required: false + * Id: 14510bef-fd86-7d5d-992a-c1e091cbcb97 + * Codename: long_description + * + * Include a full product description. + */ + longDescription: Elements.RichTextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: 737c85be-f532-c8fe-a308-2a0f2c512f3e + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Manufacturer (taxonomy) + * Required: false + * Id: 53b6bddb-fe8a-a8b2-9765-343479bf9fc2 + * Codename: manufacturer + */ + manufacturer: Elements.TaxonomyElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 7632f3bb-2e53-438d-933c-4e8b6c035cb1 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/cafe.ts b/src/Models/content-types/cafe.ts index 8f90286..d8eb07e 100644 --- a/src/Models/content-types/cafe.ts +++ b/src/Models/content-types/cafe.ts @@ -1,83 +1,83 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -import { Sitemap } from '../taxonomies/sitemap_538125f'; - -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Cafe - * Id: fe41ae5a-5fe2-420a-8560-f7d6d3533dc2 - * Codename: cafe - */ -export type Cafe = IContentItem<{ - /** - * Street (text) - * Required: false - * Id: 866afdba-d334-f01a-1d52-a9ca3f57cb4b - * Codename: street - */ - street: Elements.TextElement; - - /** - * City (text) - * Required: false - * Id: 339e6d4f-67c1-5f5e-6921-3b374eb96f5b - * Codename: city - */ - city: Elements.TextElement; - - /** - * Country (text) - * Required: false - * Id: 7531a08f-e148-8cc0-9d2d-155215502e08 - * Codename: country - */ - country: Elements.TextElement; - - /** - * State (text) - * Required: false - * Id: a015b689-cad3-1ac9-04b4-73697525752d - * Codename: state - */ - state: Elements.TextElement; - - /** - * ZIP Code (text) - * Required: false - * Id: bb158ac2-41e1-5a7d-0826-bb8bf6744f0e - * Codename: zip_code - */ - zipCode: Elements.TextElement; - - /** - * Phone (text) - * Required: false - * Id: 1c71bc62-4b62-f307-37ef-0823776f8f73 - * Codename: phone - */ - phone: Elements.TextElement; - - /** - * Email (text) - * Required: false - * Id: 6f726c77-36bd-8062-51df-056136e10d35 - * Codename: email - */ - email: Elements.TextElement; - - /** - * Photo (asset) - * Required: false - * Id: 5769c0f4-66a8-4c73-3c19-c023bdfa123a - * Codename: photo - */ - photo: Elements.AssetsElement; - - /** - * Sitemap (taxonomy) - * Required: false - * Id: e82d0f49-5b15-45e1-9b1f-32ccc1be4941 - * Codename: sitemap - */ - sitemap: Elements.TaxonomyElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Cafe + * Id: fe41ae5a-5fe2-420a-8560-f7d6d3533dc2 + * Codename: cafe + */ +export type Cafe = IContentItem<{ + /** + * Street (text) + * Required: false + * Id: 866afdba-d334-f01a-1d52-a9ca3f57cb4b + * Codename: street + */ + street: Elements.TextElement; + + /** + * City (text) + * Required: false + * Id: 339e6d4f-67c1-5f5e-6921-3b374eb96f5b + * Codename: city + */ + city: Elements.TextElement; + + /** + * Country (text) + * Required: false + * Id: 7531a08f-e148-8cc0-9d2d-155215502e08 + * Codename: country + */ + country: Elements.TextElement; + + /** + * State (text) + * Required: false + * Id: a015b689-cad3-1ac9-04b4-73697525752d + * Codename: state + */ + state: Elements.TextElement; + + /** + * ZIP Code (text) + * Required: false + * Id: bb158ac2-41e1-5a7d-0826-bb8bf6744f0e + * Codename: zip_code + */ + zipCode: Elements.TextElement; + + /** + * Phone (text) + * Required: false + * Id: 1c71bc62-4b62-f307-37ef-0823776f8f73 + * Codename: phone + */ + phone: Elements.TextElement; + + /** + * Email (text) + * Required: false + * Id: 6f726c77-36bd-8062-51df-056136e10d35 + * Codename: email + */ + email: Elements.TextElement; + + /** + * Photo (asset) + * Required: false + * Id: 5769c0f4-66a8-4c73-3c19-c023bdfa123a + * Codename: photo + */ + photo: Elements.AssetsElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: e82d0f49-5b15-45e1-9b1f-32ccc1be4941 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; +}>; diff --git a/src/Models/content-types/coffee.ts b/src/Models/content-types/coffee.ts index da63661..c75eeee 100644 --- a/src/Models/content-types/coffee.ts +++ b/src/Models/content-types/coffee.ts @@ -1,255 +1,255 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -import { ProductStatus } from '../taxonomies/product_status'; -import { Processing } from '../taxonomies/processing'; -import { Sitemap } from '../taxonomies/sitemap_538125f'; - -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Coffee - * Id: 929985ac-4aa5-436b-85a2-94c2d4fbbebd - * Codename: coffee - */ -export type Coffee = IContentItem<{ - /** - * Product name (text) - * Required: false - * Id: edaec5c4-e653-9109-eb0d-fc40ccf3c810 - * Codename: product_name - * - * Include a product display name. - */ - productName: Elements.TextElement; - - /** - * Price (number) - * Required: false - * Id: 624592dc-49b2-330a-7185-e1f2396ce90c - * Codename: price - * - * Include a product price. - */ - price: Elements.NumberElement; - - /** - * Image (asset) - * Required: false - * Id: 30ac3ccc-1e7f-1490-e1f6-915c64176a55 - * Codename: image - * - * Upload a product image; the recommended size is 300 × 300 px. - */ - image: Elements.AssetsElement; - - /** - * Short description (rich_text) - * Required: false - * Id: b5a3263a-a1d7-92b7-865a-329f833285fa - * Codename: short_description - * - * Include a short description that fits within 160 characters. - */ - shortDescription: Elements.RichTextElement; - - /** - * Long description (rich_text) - * Required: false - * Id: d468a0aa-e0fa-0cae-41db-6e006bff2527 - * Codename: long_description - * - * Include a full product description. - */ - longDescription: Elements.RichTextElement; - - /** - * Product status (taxonomy) - * Required: false - * Id: 1ee64175-fde7-fc1e-5259-511a31c326c3 - * Codename: product_status - * - * Add a product status if the product is included in a special offering. - */ - productStatus: Elements.TaxonomyElement; - - /** - * Farm (text) - * Required: false - * Id: e5cf103f-9b84-1ab0-29f1-fb5a1657c6f7 - * Codename: farm - * - * Include the name of the coffee farm. - */ - farm: Elements.TextElement; - - /** - * Country (text) - * Required: false - * Id: 6eec1918-378d-3b15-8b1a-19c5f0748321 - * Codename: country - * - * Include the coffee's country of origin. - */ - country: Elements.TextElement; - - /** - * Variety (text) - * Required: false - * Id: 301c6712-962f-b05a-6f6e-2f0e1e959039 - * Codename: variety - * - * Include a coffee variety name. - */ - variety: Elements.TextElement; - - /** - * Altitude (text) - * Required: false - * Id: 23a772c0-0b2b-588d-9849-e29068701f03 - * Codename: altitude - * - * Include the altitude at which the coffee is grown. Elevation affects the size, shape, and taste of coffee beans. - */ - altitude: Elements.TextElement; - - /** - * URL pattern (url_slug) - * Required: false - * Id: 3af8ce38-c03d-063c-ea80-72684dfddf31 - * Codename: url_pattern - * - * Provide a SEO-friendly URL. - */ - urlPattern: Elements.UrlSlugElement; - - /** - * Processing (taxonomy) - * Required: false - * Id: b63e3516-d5fa-fdac-a03a-2b027bf02a28 - * Codename: processing - */ - processing: Elements.TaxonomyElement; - - /** - * Sitemap (taxonomy) - * Required: false - * Id: 99d7a378-e18f-41dd-b5bb-2a569c3d1de7 - * Codename: sitemap - */ - sitemap: Elements.TaxonomyElement; - - /** - * Meta title (text) - * Required: false - * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 - * Codename: metadata__meta_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 30–60 characters - */ - metadataMetaTitle: Elements.TextElement; - - /** - * Meta description (text) - * Required: false - * Id: 2e555cc1-1eae-520c-189e-28548904f529 - * Codename: metadata__meta_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 70–150 characters - */ - metadataMetaDescription: Elements.TextElement; - - /** - * og:title (text) - * Required: false - * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 - * Codename: metadata__og_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataOgTitle: Elements.TextElement; - - /** - * og:description (text) - * Required: false - * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d - * Codename: metadata__og_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 150 characters - */ - metadataOgDescription: Elements.TextElement; - - /** - * og:image (asset) - * Required: false - * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd - * Codename: metadata__og_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadataOgImage: Elements.AssetsElement; - - /** - * twitter:site (text) - * Required: false - * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a - * Codename: metadata__twitter_site - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterSite: Elements.TextElement; - - /** - * twitter:creator (text) - * Required: false - * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af - * Codename: metadata__twitter_creator - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterCreator: Elements.TextElement; - - /** - * twitter:title (text) - * Required: false - * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 - * Codename: metadata__twitter_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataTwitterTitle: Elements.TextElement; - - /** - * twitter:description (text) - * Required: false - * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 - * Codename: metadata__twitter_description - * From snippet: Metadata - * Snippet codename: metadata - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadataTwitterDescription: Elements.TextElement; - - /** - * twitter:image (asset) - * Required: false - * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca - * Codename: metadata__twitter_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadataTwitterImage: Elements.AssetsElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { ProductStatus } from '../taxonomies/product_status'; +import { Processing } from '../taxonomies/processing'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Coffee + * Id: 929985ac-4aa5-436b-85a2-94c2d4fbbebd + * Codename: coffee + */ +export type Coffee = IContentItem<{ + /** + * Product name (text) + * Required: false + * Id: edaec5c4-e653-9109-eb0d-fc40ccf3c810 + * Codename: product_name + * + * Include a product display name. + */ + productName: Elements.TextElement; + + /** + * Price (number) + * Required: false + * Id: 624592dc-49b2-330a-7185-e1f2396ce90c + * Codename: price + * + * Include a product price. + */ + price: Elements.NumberElement; + + /** + * Image (asset) + * Required: false + * Id: 30ac3ccc-1e7f-1490-e1f6-915c64176a55 + * Codename: image + * + * Upload a product image; the recommended size is 300 × 300 px. + */ + image: Elements.AssetsElement; + + /** + * Short description (rich_text) + * Required: false + * Id: b5a3263a-a1d7-92b7-865a-329f833285fa + * Codename: short_description + * + * Include a short description that fits within 160 characters. + */ + shortDescription: Elements.RichTextElement; + + /** + * Long description (rich_text) + * Required: false + * Id: d468a0aa-e0fa-0cae-41db-6e006bff2527 + * Codename: long_description + * + * Include a full product description. + */ + longDescription: Elements.RichTextElement; + + /** + * Product status (taxonomy) + * Required: false + * Id: 1ee64175-fde7-fc1e-5259-511a31c326c3 + * Codename: product_status + * + * Add a product status if the product is included in a special offering. + */ + productStatus: Elements.TaxonomyElement; + + /** + * Farm (text) + * Required: false + * Id: e5cf103f-9b84-1ab0-29f1-fb5a1657c6f7 + * Codename: farm + * + * Include the name of the coffee farm. + */ + farm: Elements.TextElement; + + /** + * Country (text) + * Required: false + * Id: 6eec1918-378d-3b15-8b1a-19c5f0748321 + * Codename: country + * + * Include the coffee's country of origin. + */ + country: Elements.TextElement; + + /** + * Variety (text) + * Required: false + * Id: 301c6712-962f-b05a-6f6e-2f0e1e959039 + * Codename: variety + * + * Include a coffee variety name. + */ + variety: Elements.TextElement; + + /** + * Altitude (text) + * Required: false + * Id: 23a772c0-0b2b-588d-9849-e29068701f03 + * Codename: altitude + * + * Include the altitude at which the coffee is grown. Elevation affects the size, shape, and taste of coffee beans. + */ + altitude: Elements.TextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: 3af8ce38-c03d-063c-ea80-72684dfddf31 + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Processing (taxonomy) + * Required: false + * Id: b63e3516-d5fa-fdac-a03a-2b027bf02a28 + * Codename: processing + */ + processing: Elements.TaxonomyElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 99d7a378-e18f-41dd-b5bb-2a569c3d1de7 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/fact_about_us.ts b/src/Models/content-types/fact_about_us.ts index 86d6057..ab349ca 100644 --- a/src/Models/content-types/fact_about_us.ts +++ b/src/Models/content-types/fact_about_us.ts @@ -1,49 +1,49 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -import { Sitemap } from '../taxonomies/sitemap_538125f'; - -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Fact about us - * Id: b99ec220-0f2b-4658-a080-ff0afe92f6d1 - * Codename: fact_about_us - */ -export type FactAboutUs = IContentItem<{ - /** - * Title (text) - * Required: false - * Id: 2375ca8a-43d2-7282-162c-922a6fdeba3e - * Codename: title - * - * Provide a title that fits within 60 characters. - */ - title: Elements.TextElement; - - /** - * Description (rich_text) - * Required: false - * Id: 1b658e81-88c9-73d1-374d-7a60e3756ef7 - * Codename: description - * - * Include a main goal of our business. The limit is 80 characters. - */ - description: Elements.RichTextElement; - - /** - * Image (asset) - * Required: false - * Id: 68d194b6-efad-6b25-89a4-2dfc75fed5a5 - * Codename: image - * - * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. - */ - image: Elements.AssetsElement; - - /** - * Sitemap (taxonomy) - * Required: false - * Id: 23a715f9-755c-4b9d-b6b3-e02fc1b09b83 - * Codename: sitemap - */ - sitemap: Elements.TaxonomyElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Fact about us + * Id: b99ec220-0f2b-4658-a080-ff0afe92f6d1 + * Codename: fact_about_us + */ +export type FactAboutUs = IContentItem<{ + /** + * Title (text) + * Required: false + * Id: 2375ca8a-43d2-7282-162c-922a6fdeba3e + * Codename: title + * + * Provide a title that fits within 60 characters. + */ + title: Elements.TextElement; + + /** + * Description (rich_text) + * Required: false + * Id: 1b658e81-88c9-73d1-374d-7a60e3756ef7 + * Codename: description + * + * Include a main goal of our business. The limit is 80 characters. + */ + description: Elements.RichTextElement; + + /** + * Image (asset) + * Required: false + * Id: 68d194b6-efad-6b25-89a4-2dfc75fed5a5 + * Codename: image + * + * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. + */ + image: Elements.AssetsElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 23a715f9-755c-4b9d-b6b3-e02fc1b09b83 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; +}>; diff --git a/src/Models/content-types/grinder.ts b/src/Models/content-types/grinder.ts index 78cf2cb..a5375df 100644 --- a/src/Models/content-types/grinder.ts +++ b/src/Models/content-types/grinder.ts @@ -1,216 +1,216 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -import { ProductStatus } from '../taxonomies/product_status'; -import { Sitemap } from '../taxonomies/sitemap_538125f'; - -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Grinder - * Id: da4f1cb1-8a55-43e5-9fcc-67ad331c8888 - * Codename: grinder - */ -export type Grinder = IContentItem<{ - /** - * Product name (text) - * Required: false - * Id: b7b9604e-c74e-79ea-2a0f-d74d6347e35a - * Codename: product_name - * - * Include a product display name. - */ - productName: Elements.TextElement; - - /** - * Price (number) - * Required: false - * Id: 1e14595d-7fe8-7765-6df6-fad6a6e4851f - * Codename: price - * - * Include a product price. - */ - price: Elements.NumberElement; - - /** - * Image (asset) - * Required: false - * Id: 7fe226b9-d21f-80ff-e680-6e6f44ce044b - * Codename: image - * - * Upload one product image; the recommended size is 300 × 300 px. - */ - image: Elements.AssetsElement; - - /** - * Manufacturer (text) - * Required: false - * Id: 2c389736-7dfa-b03e-8996-7eba451cfdb5 - * Codename: manufacturer - * - * Include a manufacturer's name. - */ - manufacturer: Elements.TextElement; - - /** - * Product status (taxonomy) - * Required: false - * Id: 54120e88-82cc-2202-e72d-9cae0ced3f51 - * Codename: product_status - * - * Add a product status if the product is included in a special offering. - */ - productStatus: Elements.TaxonomyElement; - - /** - * Short description (rich_text) - * Required: false - * Id: 23ee310f-9732-9193-ad5e-80f75bfc276d - * Codename: short_description - * - * Include a short description that fits within 160 characters. - */ - shortDescription: Elements.RichTextElement; - - /** - * Long description (rich_text) - * Required: false - * Id: 21e77286-e87b-d6e3-902d-13b5814b5e75 - * Codename: long_description - * - * Include a full product description. - */ - longDescription: Elements.RichTextElement; - - /** - * URL pattern (url_slug) - * Required: false - * Id: bf6ad588-11e5-ba0d-2c18-ccd50064a32a - * Codename: url_pattern - * - * Provide a SEO-friendly URL. - */ - urlPattern: Elements.UrlSlugElement; - - /** - * Sitemap (taxonomy) - * Required: false - * Id: 02f0e374-6760-4b4d-99a8-60485572b764 - * Codename: sitemap - */ - sitemap: Elements.TaxonomyElement; - - /** - * Meta title (text) - * Required: false - * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 - * Codename: metadata__meta_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 30–60 characters - */ - metadataMetaTitle: Elements.TextElement; - - /** - * Meta description (text) - * Required: false - * Id: 2e555cc1-1eae-520c-189e-28548904f529 - * Codename: metadata__meta_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 70–150 characters - */ - metadataMetaDescription: Elements.TextElement; - - /** - * og:title (text) - * Required: false - * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 - * Codename: metadata__og_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataOgTitle: Elements.TextElement; - - /** - * og:description (text) - * Required: false - * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d - * Codename: metadata__og_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 150 characters - */ - metadataOgDescription: Elements.TextElement; - - /** - * og:image (asset) - * Required: false - * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd - * Codename: metadata__og_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadataOgImage: Elements.AssetsElement; - - /** - * twitter:site (text) - * Required: false - * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a - * Codename: metadata__twitter_site - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterSite: Elements.TextElement; - - /** - * twitter:creator (text) - * Required: false - * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af - * Codename: metadata__twitter_creator - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterCreator: Elements.TextElement; - - /** - * twitter:title (text) - * Required: false - * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 - * Codename: metadata__twitter_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataTwitterTitle: Elements.TextElement; - - /** - * twitter:description (text) - * Required: false - * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 - * Codename: metadata__twitter_description - * From snippet: Metadata - * Snippet codename: metadata - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadataTwitterDescription: Elements.TextElement; - - /** - * twitter:image (asset) - * Required: false - * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca - * Codename: metadata__twitter_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadataTwitterImage: Elements.AssetsElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { ProductStatus } from '../taxonomies/product_status'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Grinder + * Id: da4f1cb1-8a55-43e5-9fcc-67ad331c8888 + * Codename: grinder + */ +export type Grinder = IContentItem<{ + /** + * Product name (text) + * Required: false + * Id: b7b9604e-c74e-79ea-2a0f-d74d6347e35a + * Codename: product_name + * + * Include a product display name. + */ + productName: Elements.TextElement; + + /** + * Price (number) + * Required: false + * Id: 1e14595d-7fe8-7765-6df6-fad6a6e4851f + * Codename: price + * + * Include a product price. + */ + price: Elements.NumberElement; + + /** + * Image (asset) + * Required: false + * Id: 7fe226b9-d21f-80ff-e680-6e6f44ce044b + * Codename: image + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: Elements.AssetsElement; + + /** + * Manufacturer (text) + * Required: false + * Id: 2c389736-7dfa-b03e-8996-7eba451cfdb5 + * Codename: manufacturer + * + * Include a manufacturer's name. + */ + manufacturer: Elements.TextElement; + + /** + * Product status (taxonomy) + * Required: false + * Id: 54120e88-82cc-2202-e72d-9cae0ced3f51 + * Codename: product_status + * + * Add a product status if the product is included in a special offering. + */ + productStatus: Elements.TaxonomyElement; + + /** + * Short description (rich_text) + * Required: false + * Id: 23ee310f-9732-9193-ad5e-80f75bfc276d + * Codename: short_description + * + * Include a short description that fits within 160 characters. + */ + shortDescription: Elements.RichTextElement; + + /** + * Long description (rich_text) + * Required: false + * Id: 21e77286-e87b-d6e3-902d-13b5814b5e75 + * Codename: long_description + * + * Include a full product description. + */ + longDescription: Elements.RichTextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: bf6ad588-11e5-ba0d-2c18-ccd50064a32a + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 02f0e374-6760-4b4d-99a8-60485572b764 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/hero_unit.ts b/src/Models/content-types/hero_unit.ts index ec01010..7e5ddb0 100644 --- a/src/Models/content-types/hero_unit.ts +++ b/src/Models/content-types/hero_unit.ts @@ -1,49 +1,49 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -import { Sitemap } from '../taxonomies/sitemap_538125f'; - -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Hero Unit - * Id: f4deeb7e-fe9b-49a2-a5f6-a51a9be6ac73 - * Codename: hero_unit - */ -export type HeroUnit = IContentItem<{ - /** - * Title (text) - * Required: false - * Id: 16ea3e64-4103-da81-eabd-af7efc2ab8a6 - * Codename: title - * - * Provide a title that fits within 60 characters. - */ - title: Elements.TextElement; - - /** - * Image (asset) - * Required: false - * Id: 4aeed98e-58d1-ab13-232c-542bf268fe48 - * Codename: image - * - * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. - */ - image: Elements.AssetsElement; - - /** - * Marketing message (rich_text) - * Required: false - * Id: ecf4e55f-1ae0-f539-3516-5714a0f032e9 - * Codename: marketing_message - * - * Include a main goal of our business. The limit is 80 characters. - */ - marketingMessage: Elements.RichTextElement; - - /** - * Sitemap (taxonomy) - * Required: false - * Id: 0f620d29-a4c7-4944-b7d2-be5de2733b6e - * Codename: sitemap - */ - sitemap: Elements.TaxonomyElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Hero Unit + * Id: f4deeb7e-fe9b-49a2-a5f6-a51a9be6ac73 + * Codename: hero_unit + */ +export type HeroUnit = IContentItem<{ + /** + * Title (text) + * Required: false + * Id: 16ea3e64-4103-da81-eabd-af7efc2ab8a6 + * Codename: title + * + * Provide a title that fits within 60 characters. + */ + title: Elements.TextElement; + + /** + * Image (asset) + * Required: false + * Id: 4aeed98e-58d1-ab13-232c-542bf268fe48 + * Codename: image + * + * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. + */ + image: Elements.AssetsElement; + + /** + * Marketing message (rich_text) + * Required: false + * Id: ecf4e55f-1ae0-f539-3516-5714a0f032e9 + * Codename: marketing_message + * + * Include a main goal of our business. The limit is 80 characters. + */ + marketingMessage: Elements.RichTextElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 0f620d29-a4c7-4944-b7d2-be5de2733b6e + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; +}>; diff --git a/src/Models/content-types/home.ts b/src/Models/content-types/home.ts index 3e87159..34b10c8 100644 --- a/src/Models/content-types/home.ts +++ b/src/Models/content-types/home.ts @@ -1,199 +1,199 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -import { Sitemap } from '../taxonomies/sitemap_538125f'; -import { Article } from './article'; -import { Cafe } from './cafe'; -import { FactAboutUs } from './fact_about_us'; -import { HeroUnit } from './hero_unit'; - -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Home - * Id: a29399c3-5281-47ab-9916-acd4a6f887b7 - * Codename: home - */ -export type Home = IContentItem<{ - /** - * Hero unit (modular_content) - * Required: false - * Id: 2b15a8f3-2e5f-7d01-4d8e-5b22e222aa76 - * Codename: hero_unit - * - * Assign 1 Hero unit that has been prepared for a home page. - */ - heroUnit: Elements.LinkedItemsElement; - - /** - * Articles (modular_content) - * Required: false - * Id: 222f3a69-a54f-3e92-83ac-05f8a08e667f - * Codename: articles - * - * Assign all articles which should be displayed on the home page. - */ - articles: Elements.LinkedItemsElement
; - - /** - * Our story (modular_content) - * Required: false - * Id: 617bccc0-4844-4beb-4ede-6247e954633a - * Codename: our_story - * - * Assign 1 Fact about us which will be displayed on the home page. - */ - ourStory: Elements.LinkedItemsElement; - - /** - * Cafes (modular_content) - * Required: false - * Id: 6356c948-0fd6-00d0-8fc1-e2484180ae7c - * Codename: cafes - * - * Assign 4 Cafes which will be displayed on the home page. - */ - cafes: Elements.LinkedItemsElement; - - /** - * Contact (rich_text) - * Required: false - * Id: ee854076-236b-5312-0ed5-8c3cd55ca9e0 - * Codename: contact - * - * Add Contact us information to be displayed on the home page. - */ - contact: Elements.RichTextElement; - - /** - * URL pattern (url_slug) - * Required: false - * Id: dd70db4b-ee97-5ab4-b752-4f9d70389426 - * Codename: url_pattern - * - * Provide a SEO-friendly URL. - */ - urlPattern: Elements.UrlSlugElement; - - /** - * Sitemap (taxonomy) - * Required: false - * Id: ea3bf3c2-7eb7-4c91-aff3-09f89c743710 - * Codename: sitemap - */ - sitemap: Elements.TaxonomyElement; - - /** - * Meta title (text) - * Required: false - * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 - * Codename: metadata__meta_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 30–60 characters - */ - metadataMetaTitle: Elements.TextElement; - - /** - * Meta description (text) - * Required: false - * Id: 2e555cc1-1eae-520c-189e-28548904f529 - * Codename: metadata__meta_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Length: 70–150 characters - */ - metadataMetaDescription: Elements.TextElement; - - /** - * og:title (text) - * Required: false - * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 - * Codename: metadata__og_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataOgTitle: Elements.TextElement; - - /** - * og:description (text) - * Required: false - * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d - * Codename: metadata__og_description - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 150 characters - */ - metadataOgDescription: Elements.TextElement; - - /** - * og:image (asset) - * Required: false - * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd - * Codename: metadata__og_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadataOgImage: Elements.AssetsElement; - - /** - * twitter:site (text) - * Required: false - * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a - * Codename: metadata__twitter_site - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterSite: Elements.TextElement; - - /** - * twitter:creator (text) - * Required: false - * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af - * Codename: metadata__twitter_creator - * From snippet: Metadata - * Snippet codename: metadata - */ - metadataTwitterCreator: Elements.TextElement; - - /** - * twitter:title (text) - * Required: false - * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 - * Codename: metadata__twitter_title - * From snippet: Metadata - * Snippet codename: metadata - * - * Max. 60 characters - */ - metadataTwitterTitle: Elements.TextElement; - - /** - * twitter:description (text) - * Required: false - * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 - * Codename: metadata__twitter_description - * From snippet: Metadata - * Snippet codename: metadata - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadataTwitterDescription: Elements.TextElement; - - /** - * twitter:image (asset) - * Required: false - * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca - * Codename: metadata__twitter_image - * From snippet: Metadata - * Snippet codename: metadata - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadataTwitterImage: Elements.AssetsElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; +import { Article } from './article'; +import { Cafe } from './cafe'; +import { FactAboutUs } from './fact_about_us'; +import { HeroUnit } from './hero_unit'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Home + * Id: a29399c3-5281-47ab-9916-acd4a6f887b7 + * Codename: home + */ +export type Home = IContentItem<{ + /** + * Hero unit (modular_content) + * Required: false + * Id: 2b15a8f3-2e5f-7d01-4d8e-5b22e222aa76 + * Codename: hero_unit + * + * Assign 1 Hero unit that has been prepared for a home page. + */ + heroUnit: Elements.LinkedItemsElement; + + /** + * Articles (modular_content) + * Required: false + * Id: 222f3a69-a54f-3e92-83ac-05f8a08e667f + * Codename: articles + * + * Assign all articles which should be displayed on the home page. + */ + articles: Elements.LinkedItemsElement
; + + /** + * Our story (modular_content) + * Required: false + * Id: 617bccc0-4844-4beb-4ede-6247e954633a + * Codename: our_story + * + * Assign 1 Fact about us which will be displayed on the home page. + */ + ourStory: Elements.LinkedItemsElement; + + /** + * Cafes (modular_content) + * Required: false + * Id: 6356c948-0fd6-00d0-8fc1-e2484180ae7c + * Codename: cafes + * + * Assign 4 Cafes which will be displayed on the home page. + */ + cafes: Elements.LinkedItemsElement; + + /** + * Contact (rich_text) + * Required: false + * Id: ee854076-236b-5312-0ed5-8c3cd55ca9e0 + * Codename: contact + * + * Add Contact us information to be displayed on the home page. + */ + contact: Elements.RichTextElement; + + /** + * URL pattern (url_slug) + * Required: false + * Id: dd70db4b-ee97-5ab4-b752-4f9d70389426 + * Codename: url_pattern + * + * Provide a SEO-friendly URL. + */ + urlPattern: Elements.UrlSlugElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: ea3bf3c2-7eb7-4c91-aff3-09f89c743710 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; + + /** + * Meta title (text) + * Required: false + * Id: 09398b24-61ed-512e-5b5c-affd54a098e5 + * Codename: metadata__meta_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 30–60 characters + */ + metadataMetaTitle: Elements.TextElement; + + /** + * Meta description (text) + * Required: false + * Id: 2e555cc1-1eae-520c-189e-28548904f529 + * Codename: metadata__meta_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Length: 70–150 characters + */ + metadataMetaDescription: Elements.TextElement; + + /** + * og:title (text) + * Required: false + * Id: 1db86c7a-e836-3c4e-01e6-4f704ad38ba5 + * Codename: metadata__og_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataOgTitle: Elements.TextElement; + + /** + * og:description (text) + * Required: false + * Id: 05987dc9-ebe3-7b61-b949-522eb42dbc0d + * Codename: metadata__og_description + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 150 characters + */ + metadataOgDescription: Elements.TextElement; + + /** + * og:image (asset) + * Required: false + * Id: ce6cda71-9d38-1d57-3ac3-ec9b2e286edd + * Codename: metadata__og_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadataOgImage: Elements.AssetsElement; + + /** + * twitter:site (text) + * Required: false + * Id: 34213fdf-0015-8f4f-e5e6-83c6842cff4a + * Codename: metadata__twitter_site + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterSite: Elements.TextElement; + + /** + * twitter:creator (text) + * Required: false + * Id: 68f65095-c9b4-05d6-a473-2883c2f0c7af + * Codename: metadata__twitter_creator + * From snippet: Metadata + * Snippet codename: metadata + */ + metadataTwitterCreator: Elements.TextElement; + + /** + * twitter:title (text) + * Required: false + * Id: b208d3dc-bd8d-b1af-5ef0-747650730ba7 + * Codename: metadata__twitter_title + * From snippet: Metadata + * Snippet codename: metadata + * + * Max. 60 characters + */ + metadataTwitterTitle: Elements.TextElement; + + /** + * twitter:description (text) + * Required: false + * Id: b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7 + * Codename: metadata__twitter_description + * From snippet: Metadata + * Snippet codename: metadata + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadataTwitterDescription: Elements.TextElement; + + /** + * twitter:image (asset) + * Required: false + * Id: 63793ba4-6004-a93c-68ca-52a1f0482bca + * Codename: metadata__twitter_image + * From snippet: Metadata + * Snippet codename: metadata + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadataTwitterImage: Elements.AssetsElement; +}>; diff --git a/src/Models/content-types/hosted_video.ts b/src/Models/content-types/hosted_video.ts index 3c1d127..a2ad68d 100644 --- a/src/Models/content-types/hosted_video.ts +++ b/src/Models/content-types/hosted_video.ts @@ -1,25 +1,25 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Hosted video - * Id: 269202ad-1d9d-47fd-b3e8-bdb05b3e3cf0 - * Codename: hosted_video - */ -export type HostedVideo = IContentItem<{ - /** - * Video ID (text) - * Required: true - * Id: 116a2441-6441-7124-c85b-46a4fef5dcb9 - * Codename: video_id - */ - videoId: Elements.TextElement; - - /** - * Video host (multiple_choice) - * Required: true - * Id: 87924912-4861-aa84-176a-1eae7b22529b - * Codename: video_host - */ - videoHost: Elements.MultipleChoiceElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Hosted video + * Id: 269202ad-1d9d-47fd-b3e8-bdb05b3e3cf0 + * Codename: hosted_video + */ +export type HostedVideo = IContentItem<{ + /** + * Video ID (text) + * Required: true + * Id: 116a2441-6441-7124-c85b-46a4fef5dcb9 + * Codename: video_id + */ + videoId: Elements.TextElement; + + /** + * Video host (multiple_choice) + * Required: true + * Id: 87924912-4861-aa84-176a-1eae7b22529b + * Codename: video_host + */ + videoHost: Elements.MultipleChoiceElement; +}>; diff --git a/src/Models/content-types/index.ts b/src/Models/content-types/index.ts index eec4878..5c47cb9 100644 --- a/src/Models/content-types/index.ts +++ b/src/Models/content-types/index.ts @@ -1,13 +1,13 @@ -export * from './hero_unit'; -export * from './hosted_video'; -export * from './coffee'; -export * from './article'; -export * from './grinder'; -export * from './office'; -export * from './tweet'; -export * from './cafe'; -export * from './home'; -export * from './accessory'; -export * from './brewer'; -export * from './about_us'; -export * from './fact_about_us'; +export * from './hero_unit'; +export * from './hosted_video'; +export * from './coffee'; +export * from './article'; +export * from './grinder'; +export * from './office'; +export * from './tweet'; +export * from './cafe'; +export * from './home'; +export * from './accessory'; +export * from './brewer'; +export * from './about_us'; +export * from './fact_about_us'; diff --git a/src/Models/content-types/office.ts b/src/Models/content-types/office.ts index a92795a..321e5bf 100644 --- a/src/Models/content-types/office.ts +++ b/src/Models/content-types/office.ts @@ -1,83 +1,83 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -import { Sitemap } from '../taxonomies/sitemap_538125f'; - -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Office - * Id: e097306b-3893-4a42-9973-2525fad14d66 - * Codename: office - */ -export type Office = IContentItem<{ - /** - * Name (text) - * Required: false - * Id: bb81a11d-886c-2a32-e480-29f01cea667f - * Codename: name - */ - name: Elements.TextElement; - - /** - * Street (text) - * Required: false - * Id: f7eb7ab2-4e41-aca0-7e93-dbbbdca330eb - * Codename: street - */ - street: Elements.TextElement; - - /** - * City (text) - * Required: false - * Id: 95477abc-d6b4-a6b3-5b72-c92763da55bf - * Codename: city - */ - city: Elements.TextElement; - - /** - * Country (text) - * Required: false - * Id: 4fbc7779-652d-7716-2673-7419aaaceed1 - * Codename: country - */ - country: Elements.TextElement; - - /** - * State (text) - * Required: false - * Id: 08df2f10-52b8-d451-fab1-b6da8ddb3fd2 - * Codename: state - */ - state: Elements.TextElement; - - /** - * Zip code (text) - * Required: false - * Id: e7141da8-8792-a66d-d1c8-1fe704758393 - * Codename: zip_code - */ - zipCode: Elements.TextElement; - - /** - * Phone (text) - * Required: false - * Id: 2ac708e2-cd0e-67b0-67f8-71725625dc6d - * Codename: phone - */ - phone: Elements.TextElement; - - /** - * Email (text) - * Required: false - * Id: 251dc38f-43a3-d924-a328-8708ecb00ef1 - * Codename: email - */ - email: Elements.TextElement; - - /** - * Sitemap (taxonomy) - * Required: false - * Id: 93e978da-a9dd-43eb-a16a-ace55c1a5245 - * Codename: sitemap - */ - sitemap: Elements.TaxonomyElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +import { Sitemap } from '../taxonomies/sitemap_538125f'; + +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Office + * Id: e097306b-3893-4a42-9973-2525fad14d66 + * Codename: office + */ +export type Office = IContentItem<{ + /** + * Name (text) + * Required: false + * Id: bb81a11d-886c-2a32-e480-29f01cea667f + * Codename: name + */ + name: Elements.TextElement; + + /** + * Street (text) + * Required: false + * Id: f7eb7ab2-4e41-aca0-7e93-dbbbdca330eb + * Codename: street + */ + street: Elements.TextElement; + + /** + * City (text) + * Required: false + * Id: 95477abc-d6b4-a6b3-5b72-c92763da55bf + * Codename: city + */ + city: Elements.TextElement; + + /** + * Country (text) + * Required: false + * Id: 4fbc7779-652d-7716-2673-7419aaaceed1 + * Codename: country + */ + country: Elements.TextElement; + + /** + * State (text) + * Required: false + * Id: 08df2f10-52b8-d451-fab1-b6da8ddb3fd2 + * Codename: state + */ + state: Elements.TextElement; + + /** + * Zip code (text) + * Required: false + * Id: e7141da8-8792-a66d-d1c8-1fe704758393 + * Codename: zip_code + */ + zipCode: Elements.TextElement; + + /** + * Phone (text) + * Required: false + * Id: 2ac708e2-cd0e-67b0-67f8-71725625dc6d + * Codename: phone + */ + phone: Elements.TextElement; + + /** + * Email (text) + * Required: false + * Id: 251dc38f-43a3-d924-a328-8708ecb00ef1 + * Codename: email + */ + email: Elements.TextElement; + + /** + * Sitemap (taxonomy) + * Required: false + * Id: 93e978da-a9dd-43eb-a16a-ace55c1a5245 + * Codename: sitemap + */ + sitemap: Elements.TaxonomyElement; +}>; diff --git a/src/Models/content-types/tweet.ts b/src/Models/content-types/tweet.ts index c6c29c5..bc39518 100644 --- a/src/Models/content-types/tweet.ts +++ b/src/Models/content-types/tweet.ts @@ -1,33 +1,33 @@ -import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Tweet - * Id: f808c142-4b62-43b0-8f4d-1cbf412580ab - * Codename: tweet - */ -export type Tweet = IContentItem<{ - /** - * Tweet link (text) - * Required: true - * Id: 20bf9ba1-28fe-203c-5920-6f9610498fb9 - * Codename: tweet_link - */ - tweetLink: Elements.TextElement; - - /** - * Theme (multiple_choice) - * Required: false - * Id: 779b27fd-5a4d-5e5f-66dc-b30931fcba92 - * Codename: theme - */ - theme: Elements.MultipleChoiceElement; - - /** - * Display options (multiple_choice) - * Required: false - * Id: 8c6db6cf-1003-951e-5407-b2a19c15b4cd - * Codename: display_options - */ - displayOptions: Elements.MultipleChoiceElement; -}>; +import { IContentItem, Elements } from '@kontent-ai/delivery-sdk'; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Tweet + * Id: f808c142-4b62-43b0-8f4d-1cbf412580ab + * Codename: tweet + */ +export type Tweet = IContentItem<{ + /** + * Tweet link (text) + * Required: true + * Id: 20bf9ba1-28fe-203c-5920-6f9610498fb9 + * Codename: tweet_link + */ + tweetLink: Elements.TextElement; + + /** + * Theme (multiple_choice) + * Required: false + * Id: 779b27fd-5a4d-5e5f-66dc-b30931fcba92 + * Codename: theme + */ + theme: Elements.MultipleChoiceElement; + + /** + * Display options (multiple_choice) + * Required: false + * Id: 8c6db6cf-1003-951e-5407-b2a19c15b4cd + * Codename: display_options + */ + displayOptions: Elements.MultipleChoiceElement; +}>; diff --git a/src/Models/index.ts b/src/Models/index.ts index 9dbdf34..c0895c9 100644 --- a/src/Models/index.ts +++ b/src/Models/index.ts @@ -1,3 +1,3 @@ -export * from './project'; -export * from './content-types'; -export * from './taxonomies'; +export * from './project'; +export * from './content-types'; +export * from './taxonomies'; diff --git a/src/Models/project/assetFolders.ts b/src/Models/project/assetFolders.ts index aa97575..0ba5773 100644 --- a/src/Models/project/assetFolders.ts +++ b/src/Models/project/assetFolders.ts @@ -1,18 +1,18 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Project name: Sample Project - * Environment: Production - * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 - */ -export const assetFolders = { - /** - * Café locations - */ - caféLocations: { - id: '958001d8-2228-4373-b966-5262b5b96f71', - name: 'Café locations', - externalId: undefined, - folders: {}, - }, -}; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const assetFolders = { + /** + * Café locations + */ + caféLocations: { + id: '958001d8-2228-4373-b966-5262b5b96f71', + name: 'Café locations', + externalId: undefined, + folders: {}, + }, +}; diff --git a/src/Models/project/collections.ts b/src/Models/project/collections.ts index c41cc80..e9fba75 100644 --- a/src/Models/project/collections.ts +++ b/src/Models/project/collections.ts @@ -1,17 +1,17 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Project name: Sample Project - * Environment: Production - * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 - */ -export const collections = { - /** - * Default - */ - default: { - codename: 'default', - id: '00000000-0000-0000-0000-000000000000', - name: 'Default', - }, -}; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const collections = { + /** + * Default + */ + default: { + codename: 'default', + id: '00000000-0000-0000-0000-000000000000', + name: 'Default', + }, +}; diff --git a/src/Models/project/contentTypes.ts b/src/Models/project/contentTypes.ts index afe3f25..13d672c 100644 --- a/src/Models/project/contentTypes.ts +++ b/src/Models/project/contentTypes.ts @@ -1,2498 +1,2498 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Project name: Sample Project - * Environment: Production - * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 - */ -export const contentTypes = { - /** - * Hero Unit - * Last modified: Wed Mar 27 2019 14:06:00 GMT+0100 (Středoevropský standardní čas) - */ - hero_unit: { - codename: 'hero_unit', - id: 'f4deeb7e-fe9b-49a2-a5f6-a51a9be6ac73', - externalId: undefined, - name: 'Hero Unit', - elements: { - /** - * Title (text) - * - * Provide a title that fits within 60 characters. - */ - title: { - codename: 'title', - id: '16ea3e64-4103-da81-eabd-af7efc2ab8a6', - externalId: undefined, - name: 'Title', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Image (asset) - * - * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. - */ - image: { - codename: 'image', - id: '4aeed98e-58d1-ab13-232c-542bf268fe48', - externalId: undefined, - name: 'Image', - required: false, - type: 'asset', - snippetCodename: undefined, - }, - - /** - * Marketing message (rich_text) - * - * Include a main goal of our business. The limit is 80 characters. - */ - marketing_message: { - codename: 'marketing_message', - id: 'ecf4e55f-1ae0-f539-3516-5714a0f032e9', - externalId: undefined, - name: 'Marketing message', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * Sitemap (taxonomy) - */ - sitemap: { - codename: 'sitemap', - id: '0f620d29-a4c7-4944-b7d2-be5de2733b6e', - externalId: undefined, - name: 'Sitemap', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - }, - }, - - /** - * Hosted video - * Last modified: Fri Mar 29 2019 14:55:48 GMT+0100 (Středoevropský standardní čas) - */ - hosted_video: { - codename: 'hosted_video', - id: '269202ad-1d9d-47fd-b3e8-bdb05b3e3cf0', - externalId: undefined, - name: 'Hosted video', - elements: { - /** - * Video ID (text) - */ - video_id: { - codename: 'video_id', - id: '116a2441-6441-7124-c85b-46a4fef5dcb9', - externalId: undefined, - name: 'Video ID', - required: true, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Video host (multiple_choice) - */ - video_host: { - codename: 'video_host', - id: '87924912-4861-aa84-176a-1eae7b22529b', - externalId: undefined, - name: 'Video host', - required: true, - type: 'multiple_choice', - snippetCodename: undefined, - }, - }, - }, - - /** - * Coffee - * Last modified: Tue Jul 16 2019 09:18:34 GMT+0200 (Středoevropský letní čas) - */ - coffee: { - codename: 'coffee', - id: '929985ac-4aa5-436b-85a2-94c2d4fbbebd', - externalId: undefined, - name: 'Coffee', - elements: { - /** - * Product name (text) - * - * Include a product display name. - */ - product_name: { - codename: 'product_name', - id: 'edaec5c4-e653-9109-eb0d-fc40ccf3c810', - externalId: undefined, - name: 'Product name', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Price (number) - * - * Include a product price. - */ - price: { - codename: 'price', - id: '624592dc-49b2-330a-7185-e1f2396ce90c', - externalId: undefined, - name: 'Price', - required: false, - type: 'number', - snippetCodename: undefined, - }, - - /** - * Image (asset) - * - * Upload a product image; the recommended size is 300 × 300 px. - */ - image: { - codename: 'image', - id: '30ac3ccc-1e7f-1490-e1f6-915c64176a55', - externalId: undefined, - name: 'Image', - required: false, - type: 'asset', - snippetCodename: undefined, - }, - - /** - * Short description (rich_text) - * - * Include a short description that fits within 160 characters. - */ - short_description: { - codename: 'short_description', - id: 'b5a3263a-a1d7-92b7-865a-329f833285fa', - externalId: undefined, - name: 'Short description', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * Long description (rich_text) - * - * Include a full product description. - */ - long_description: { - codename: 'long_description', - id: 'd468a0aa-e0fa-0cae-41db-6e006bff2527', - externalId: undefined, - name: 'Long description', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * Product status (taxonomy) - * - * Add a product status if the product is included in a special offering. - */ - product_status: { - codename: 'product_status', - id: '1ee64175-fde7-fc1e-5259-511a31c326c3', - externalId: undefined, - name: 'Product status', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Farm (text) - * - * Include the name of the coffee farm. - */ - farm: { - codename: 'farm', - id: 'e5cf103f-9b84-1ab0-29f1-fb5a1657c6f7', - externalId: undefined, - name: 'Farm', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Country (text) - * - * Include the coffee's country of origin. - */ - country: { - codename: 'country', - id: '6eec1918-378d-3b15-8b1a-19c5f0748321', - externalId: undefined, - name: 'Country', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Variety (text) - * - * Include a coffee variety name. - */ - variety: { - codename: 'variety', - id: '301c6712-962f-b05a-6f6e-2f0e1e959039', - externalId: undefined, - name: 'Variety', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Altitude (text) - * - * Include the altitude at which the coffee is grown. Elevation affects the size, shape, and taste of coffee beans. - */ - altitude: { - codename: 'altitude', - id: '23a772c0-0b2b-588d-9849-e29068701f03', - externalId: undefined, - name: 'Altitude', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * URL pattern (url_slug) - * - * Provide a SEO-friendly URL. - */ - url_pattern: { - codename: 'url_pattern', - id: '3af8ce38-c03d-063c-ea80-72684dfddf31', - externalId: undefined, - name: 'URL pattern', - required: false, - type: 'url_slug', - snippetCodename: undefined, - }, - - /** - * Processing (taxonomy) - */ - processing: { - codename: 'processing', - id: 'b63e3516-d5fa-fdac-a03a-2b027bf02a28', - externalId: undefined, - name: 'Processing', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Sitemap (taxonomy) - */ - sitemap: { - codename: 'sitemap', - id: '99d7a378-e18f-41dd-b5bb-2a569c3d1de7', - externalId: undefined, - name: 'Sitemap', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Meta title (text) - * - * Length: 30–60 characters - */ - metadata__meta_title: { - codename: 'metadata__meta_title', - id: '09398b24-61ed-512e-5b5c-affd54a098e5', - externalId: undefined, - name: 'Meta title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * Meta description (text) - * - * Length: 70–150 characters - */ - metadata__meta_description: { - codename: 'metadata__meta_description', - id: '2e555cc1-1eae-520c-189e-28548904f529', - externalId: undefined, - name: 'Meta description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:title (text) - * - * Max. 60 characters - */ - metadata__og_title: { - codename: 'metadata__og_title', - id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', - externalId: undefined, - name: 'og:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:description (text) - * - * Max. 150 characters - */ - metadata__og_description: { - codename: 'metadata__og_description', - id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', - externalId: undefined, - name: 'og:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:image (asset) - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadata__og_image: { - codename: 'metadata__og_image', - id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', - externalId: undefined, - name: 'og:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - - /** - * twitter:site (text) - */ - metadata__twitter_site: { - codename: 'metadata__twitter_site', - id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', - externalId: undefined, - name: 'twitter:site', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:creator (text) - */ - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', - externalId: undefined, - name: 'twitter:creator', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:title (text) - * - * Max. 60 characters - */ - metadata__twitter_title: { - codename: 'metadata__twitter_title', - id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', - externalId: undefined, - name: 'twitter:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:description (text) - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadata__twitter_description: { - codename: 'metadata__twitter_description', - id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', - externalId: undefined, - name: 'twitter:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:image (asset) - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadata__twitter_image: { - codename: 'metadata__twitter_image', - id: '63793ba4-6004-a93c-68ca-52a1f0482bca', - externalId: undefined, - name: 'twitter:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - }, - }, - - /** - * Article - * Last modified: Tue Jul 16 2019 09:12:44 GMT+0200 (Středoevropský letní čas) - */ - article: { - codename: 'article', - id: 'b7aa4a53-d9b1-48cf-b7a6-ed0b182c4b89', - externalId: undefined, - name: 'Article', - elements: { - /** - * Title (text) - * - * The title should fit within 60 characters.Our voice and tone recommendations: — avoid coffee jargon. - */ - title: { - codename: 'title', - id: '85d5efc6-f47e-2fde-a6f5-0950fe89ecd1', - externalId: undefined, - name: 'Title', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Teaser image (asset) - * - * Upload an image at a resolution of at least 600 × 1200 px. - */ - teaser_image: { - codename: 'teaser_image', - id: '62eb9881-e222-6b81-91d2-fdf052726414', - externalId: undefined, - name: 'Teaser image', - required: false, - type: 'asset', - snippetCodename: undefined, - }, - - /** - * Post date (date_time) - * - * Provide a date that will appear on the live site as the date this article was posted live. This date will also influence the order of the articles. - */ - post_date: { - codename: 'post_date', - id: '4ae5f7a9-fe1f-1e8c-bfec-d321455139c4', - externalId: undefined, - name: 'Post date', - required: false, - type: 'date_time', - snippetCodename: undefined, - }, - - /** - * Summary (text) - * - * Provide a short summary of the text. It should be catchy and make the visitor want to read the whole article.The summary should fit within 160 characters. - */ - summary: { - codename: 'summary', - id: '90550cbe-7bff-40a9-2947-9c81489fe562', - externalId: undefined, - name: 'Summary', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Body Copy (rich_text) - * - * Keep the article structured with concise paragraphs complemented with headlines that will help the reader navigate through the article's content.Preferred glossary terms — coffee, brewing, grinder, drip, roast, filter. - */ - body_copy: { - codename: 'body_copy', - id: '108ed7c0-fc8c-c0ec-d0b5-5a8071408b54', - externalId: undefined, - name: 'Body Copy', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * Related articles (modular_content) - * - * Provide articles with related topics. - */ - related_articles: { - codename: 'related_articles', - id: 'ee7c3687-b469-6c56-3ac6-c8dfdc8b58b5', - externalId: undefined, - name: 'Related articles', - required: false, - type: 'modular_content', - snippetCodename: undefined, - }, - - /** - * Meta keywords (text) - * - * Enter tags separated with a comma. Example: coffee, "coffee roast”, grinder - */ - meta_keywords: { - codename: 'meta_keywords', - id: '5efb2425-5987-a4a6-a2d3-b14712b56e73', - externalId: undefined, - name: 'Meta keywords', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Personas (taxonomy) - * - * Provide all personas for which this article is relevant. - */ - personas: { - codename: 'personas', - id: '0a16b642-ac3e-584d-a45a-ba354a30b2bd', - externalId: undefined, - name: 'Personas', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Meta description (text) - * - * Sum up the blog for SEO purposes. Limit for the meta description is 160 characters. - */ - meta_description: { - codename: 'meta_description', - id: 'b9dc537c-2518-e4f5-8325-ce4fce26171e', - externalId: undefined, - name: 'Meta description', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * URL pattern (url_slug) - * - * Provide a SEO-friendly URL. - */ - url_pattern: { - codename: 'url_pattern', - id: 'f2ff5e3f-a9ca-4604-58b0-34a2ad6a7cf1', - externalId: undefined, - name: 'URL pattern', - required: false, - type: 'url_slug', - snippetCodename: undefined, - }, - - /** - * Sitemap (taxonomy) - */ - sitemap: { - codename: 'sitemap', - id: 'a4d7a146-7e39-4001-b462-c5a0c734f3f5', - externalId: undefined, - name: 'Sitemap', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Meta title (text) - * - * Length: 30–60 characters - */ - metadata__meta_title: { - codename: 'metadata__meta_title', - id: '09398b24-61ed-512e-5b5c-affd54a098e5', - externalId: undefined, - name: 'Meta title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * Meta description (text) - * - * Length: 70–150 characters - */ - metadata__meta_description: { - codename: 'metadata__meta_description', - id: '2e555cc1-1eae-520c-189e-28548904f529', - externalId: undefined, - name: 'Meta description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:title (text) - * - * Max. 60 characters - */ - metadata__og_title: { - codename: 'metadata__og_title', - id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', - externalId: undefined, - name: 'og:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:description (text) - * - * Max. 150 characters - */ - metadata__og_description: { - codename: 'metadata__og_description', - id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', - externalId: undefined, - name: 'og:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:image (asset) - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadata__og_image: { - codename: 'metadata__og_image', - id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', - externalId: undefined, - name: 'og:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - - /** - * twitter:site (text) - */ - metadata__twitter_site: { - codename: 'metadata__twitter_site', - id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', - externalId: undefined, - name: 'twitter:site', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:creator (text) - */ - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', - externalId: undefined, - name: 'twitter:creator', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:title (text) - * - * Max. 60 characters - */ - metadata__twitter_title: { - codename: 'metadata__twitter_title', - id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', - externalId: undefined, - name: 'twitter:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:description (text) - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadata__twitter_description: { - codename: 'metadata__twitter_description', - id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', - externalId: undefined, - name: 'twitter:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:image (asset) - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadata__twitter_image: { - codename: 'metadata__twitter_image', - id: '63793ba4-6004-a93c-68ca-52a1f0482bca', - externalId: undefined, - name: 'twitter:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - }, - }, - - /** - * Grinder - * Last modified: Tue Jul 16 2019 09:16:16 GMT+0200 (Středoevropský letní čas) - */ - grinder: { - codename: 'grinder', - id: 'da4f1cb1-8a55-43e5-9fcc-67ad331c8888', - externalId: undefined, - name: 'Grinder', - elements: { - /** - * Product name (text) - * - * Include a product display name. - */ - product_name: { - codename: 'product_name', - id: 'b7b9604e-c74e-79ea-2a0f-d74d6347e35a', - externalId: undefined, - name: 'Product name', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Price (number) - * - * Include a product price. - */ - price: { - codename: 'price', - id: '1e14595d-7fe8-7765-6df6-fad6a6e4851f', - externalId: undefined, - name: 'Price', - required: false, - type: 'number', - snippetCodename: undefined, - }, - - /** - * Image (asset) - * - * Upload one product image; the recommended size is 300 × 300 px. - */ - image: { - codename: 'image', - id: '7fe226b9-d21f-80ff-e680-6e6f44ce044b', - externalId: undefined, - name: 'Image', - required: false, - type: 'asset', - snippetCodename: undefined, - }, - - /** - * Manufacturer (text) - * - * Include a manufacturer's name. - */ - manufacturer: { - codename: 'manufacturer', - id: '2c389736-7dfa-b03e-8996-7eba451cfdb5', - externalId: undefined, - name: 'Manufacturer', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Product status (taxonomy) - * - * Add a product status if the product is included in a special offering. - */ - product_status: { - codename: 'product_status', - id: '54120e88-82cc-2202-e72d-9cae0ced3f51', - externalId: undefined, - name: 'Product status', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Short description (rich_text) - * - * Include a short description that fits within 160 characters. - */ - short_description: { - codename: 'short_description', - id: '23ee310f-9732-9193-ad5e-80f75bfc276d', - externalId: undefined, - name: 'Short description', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * Long description (rich_text) - * - * Include a full product description. - */ - long_description: { - codename: 'long_description', - id: '21e77286-e87b-d6e3-902d-13b5814b5e75', - externalId: undefined, - name: 'Long description', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * URL pattern (url_slug) - * - * Provide a SEO-friendly URL. - */ - url_pattern: { - codename: 'url_pattern', - id: 'bf6ad588-11e5-ba0d-2c18-ccd50064a32a', - externalId: undefined, - name: 'URL pattern', - required: false, - type: 'url_slug', - snippetCodename: undefined, - }, - - /** - * Sitemap (taxonomy) - */ - sitemap: { - codename: 'sitemap', - id: '02f0e374-6760-4b4d-99a8-60485572b764', - externalId: undefined, - name: 'Sitemap', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Meta title (text) - * - * Length: 30–60 characters - */ - metadata__meta_title: { - codename: 'metadata__meta_title', - id: '09398b24-61ed-512e-5b5c-affd54a098e5', - externalId: undefined, - name: 'Meta title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * Meta description (text) - * - * Length: 70–150 characters - */ - metadata__meta_description: { - codename: 'metadata__meta_description', - id: '2e555cc1-1eae-520c-189e-28548904f529', - externalId: undefined, - name: 'Meta description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:title (text) - * - * Max. 60 characters - */ - metadata__og_title: { - codename: 'metadata__og_title', - id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', - externalId: undefined, - name: 'og:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:description (text) - * - * Max. 150 characters - */ - metadata__og_description: { - codename: 'metadata__og_description', - id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', - externalId: undefined, - name: 'og:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:image (asset) - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadata__og_image: { - codename: 'metadata__og_image', - id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', - externalId: undefined, - name: 'og:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - - /** - * twitter:site (text) - */ - metadata__twitter_site: { - codename: 'metadata__twitter_site', - id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', - externalId: undefined, - name: 'twitter:site', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:creator (text) - */ - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', - externalId: undefined, - name: 'twitter:creator', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:title (text) - * - * Max. 60 characters - */ - metadata__twitter_title: { - codename: 'metadata__twitter_title', - id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', - externalId: undefined, - name: 'twitter:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:description (text) - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadata__twitter_description: { - codename: 'metadata__twitter_description', - id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', - externalId: undefined, - name: 'twitter:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:image (asset) - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadata__twitter_image: { - codename: 'metadata__twitter_image', - id: '63793ba4-6004-a93c-68ca-52a1f0482bca', - externalId: undefined, - name: 'twitter:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - }, - }, - - /** - * Office - * Last modified: Wed Mar 27 2019 14:07:06 GMT+0100 (Středoevropský standardní čas) - */ - office: { - codename: 'office', - id: 'e097306b-3893-4a42-9973-2525fad14d66', - externalId: undefined, - name: 'Office', - elements: { - /** - * Name (text) - */ - name: { - codename: 'name', - id: 'bb81a11d-886c-2a32-e480-29f01cea667f', - externalId: undefined, - name: 'Name', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Street (text) - */ - street: { - codename: 'street', - id: 'f7eb7ab2-4e41-aca0-7e93-dbbbdca330eb', - externalId: undefined, - name: 'Street', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * City (text) - */ - city: { - codename: 'city', - id: '95477abc-d6b4-a6b3-5b72-c92763da55bf', - externalId: undefined, - name: 'City', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Country (text) - */ - country: { - codename: 'country', - id: '4fbc7779-652d-7716-2673-7419aaaceed1', - externalId: undefined, - name: 'Country', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * State (text) - */ - state: { - codename: 'state', - id: '08df2f10-52b8-d451-fab1-b6da8ddb3fd2', - externalId: undefined, - name: 'State', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Zip code (text) - */ - zip_code: { - codename: 'zip_code', - id: 'e7141da8-8792-a66d-d1c8-1fe704758393', - externalId: undefined, - name: 'Zip code', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Phone (text) - */ - phone: { - codename: 'phone', - id: '2ac708e2-cd0e-67b0-67f8-71725625dc6d', - externalId: undefined, - name: 'Phone', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Email (text) - */ - email: { - codename: 'email', - id: '251dc38f-43a3-d924-a328-8708ecb00ef1', - externalId: undefined, - name: 'Email', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Sitemap (taxonomy) - */ - sitemap: { - codename: 'sitemap', - id: '93e978da-a9dd-43eb-a16a-ace55c1a5245', - externalId: undefined, - name: 'Sitemap', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - }, - }, - - /** - * Tweet - * Last modified: Fri Mar 29 2019 14:55:38 GMT+0100 (Středoevropský standardní čas) - */ - tweet: { - codename: 'tweet', - id: 'f808c142-4b62-43b0-8f4d-1cbf412580ab', - externalId: undefined, - name: 'Tweet', - elements: { - /** - * Tweet link (text) - */ - tweet_link: { - codename: 'tweet_link', - id: '20bf9ba1-28fe-203c-5920-6f9610498fb9', - externalId: undefined, - name: 'Tweet link', - required: true, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Theme (multiple_choice) - */ - theme: { - codename: 'theme', - id: '779b27fd-5a4d-5e5f-66dc-b30931fcba92', - externalId: undefined, - name: 'Theme', - required: false, - type: 'multiple_choice', - snippetCodename: undefined, - }, - - /** - * Display options (multiple_choice) - */ - display_options: { - codename: 'display_options', - id: '8c6db6cf-1003-951e-5407-b2a19c15b4cd', - externalId: undefined, - name: 'Display options', - required: false, - type: 'multiple_choice', - snippetCodename: undefined, - }, - }, - }, - - /** - * Cafe - * Last modified: Wed Mar 27 2019 14:05:05 GMT+0100 (Středoevropský standardní čas) - */ - cafe: { - codename: 'cafe', - id: 'fe41ae5a-5fe2-420a-8560-f7d6d3533dc2', - externalId: undefined, - name: 'Cafe', - elements: { - /** - * Street (text) - */ - street: { - codename: 'street', - id: '866afdba-d334-f01a-1d52-a9ca3f57cb4b', - externalId: undefined, - name: 'Street', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * City (text) - */ - city: { - codename: 'city', - id: '339e6d4f-67c1-5f5e-6921-3b374eb96f5b', - externalId: undefined, - name: 'City', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Country (text) - */ - country: { - codename: 'country', - id: '7531a08f-e148-8cc0-9d2d-155215502e08', - externalId: undefined, - name: 'Country', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * State (text) - */ - state: { - codename: 'state', - id: 'a015b689-cad3-1ac9-04b4-73697525752d', - externalId: undefined, - name: 'State', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * ZIP Code (text) - */ - zip_code: { - codename: 'zip_code', - id: 'bb158ac2-41e1-5a7d-0826-bb8bf6744f0e', - externalId: undefined, - name: 'ZIP Code', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Phone (text) - */ - phone: { - codename: 'phone', - id: '1c71bc62-4b62-f307-37ef-0823776f8f73', - externalId: undefined, - name: 'Phone', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Email (text) - */ - email: { - codename: 'email', - id: '6f726c77-36bd-8062-51df-056136e10d35', - externalId: undefined, - name: 'Email', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Photo (asset) - */ - photo: { - codename: 'photo', - id: '5769c0f4-66a8-4c73-3c19-c023bdfa123a', - externalId: undefined, - name: 'Photo', - required: false, - type: 'asset', - snippetCodename: undefined, - }, - - /** - * Sitemap (taxonomy) - */ - sitemap: { - codename: 'sitemap', - id: 'e82d0f49-5b15-45e1-9b1f-32ccc1be4941', - externalId: undefined, - name: 'Sitemap', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - }, - }, - - /** - * Home - * Last modified: Tue Jul 16 2019 09:16:46 GMT+0200 (Středoevropský letní čas) - */ - home: { - codename: 'home', - id: 'a29399c3-5281-47ab-9916-acd4a6f887b7', - externalId: undefined, - name: 'Home', - elements: { - /** - * Hero unit (modular_content) - * - * Assign 1 Hero unit that has been prepared for a home page. - */ - hero_unit: { - codename: 'hero_unit', - id: '2b15a8f3-2e5f-7d01-4d8e-5b22e222aa76', - externalId: undefined, - name: 'Hero unit', - required: false, - type: 'modular_content', - snippetCodename: undefined, - }, - - /** - * Articles (modular_content) - * - * Assign all articles which should be displayed on the home page. - */ - articles: { - codename: 'articles', - id: '222f3a69-a54f-3e92-83ac-05f8a08e667f', - externalId: undefined, - name: 'Articles', - required: false, - type: 'modular_content', - snippetCodename: undefined, - }, - - /** - * Our story (modular_content) - * - * Assign 1 Fact about us which will be displayed on the home page. - */ - our_story: { - codename: 'our_story', - id: '617bccc0-4844-4beb-4ede-6247e954633a', - externalId: undefined, - name: 'Our story', - required: false, - type: 'modular_content', - snippetCodename: undefined, - }, - - /** - * Cafes (modular_content) - * - * Assign 4 Cafes which will be displayed on the home page. - */ - cafes: { - codename: 'cafes', - id: '6356c948-0fd6-00d0-8fc1-e2484180ae7c', - externalId: undefined, - name: 'Cafes', - required: false, - type: 'modular_content', - snippetCodename: undefined, - }, - - /** - * Contact (rich_text) - * - * Add Contact us information to be displayed on the home page. - */ - contact: { - codename: 'contact', - id: 'ee854076-236b-5312-0ed5-8c3cd55ca9e0', - externalId: undefined, - name: 'Contact', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * URL pattern (url_slug) - * - * Provide a SEO-friendly URL. - */ - url_pattern: { - codename: 'url_pattern', - id: 'dd70db4b-ee97-5ab4-b752-4f9d70389426', - externalId: undefined, - name: 'URL pattern', - required: false, - type: 'url_slug', - snippetCodename: undefined, - }, - - /** - * Sitemap (taxonomy) - */ - sitemap: { - codename: 'sitemap', - id: 'ea3bf3c2-7eb7-4c91-aff3-09f89c743710', - externalId: undefined, - name: 'Sitemap', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Meta title (text) - * - * Length: 30–60 characters - */ - metadata__meta_title: { - codename: 'metadata__meta_title', - id: '09398b24-61ed-512e-5b5c-affd54a098e5', - externalId: undefined, - name: 'Meta title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * Meta description (text) - * - * Length: 70–150 characters - */ - metadata__meta_description: { - codename: 'metadata__meta_description', - id: '2e555cc1-1eae-520c-189e-28548904f529', - externalId: undefined, - name: 'Meta description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:title (text) - * - * Max. 60 characters - */ - metadata__og_title: { - codename: 'metadata__og_title', - id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', - externalId: undefined, - name: 'og:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:description (text) - * - * Max. 150 characters - */ - metadata__og_description: { - codename: 'metadata__og_description', - id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', - externalId: undefined, - name: 'og:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:image (asset) - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadata__og_image: { - codename: 'metadata__og_image', - id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', - externalId: undefined, - name: 'og:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - - /** - * twitter:site (text) - */ - metadata__twitter_site: { - codename: 'metadata__twitter_site', - id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', - externalId: undefined, - name: 'twitter:site', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:creator (text) - */ - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', - externalId: undefined, - name: 'twitter:creator', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:title (text) - * - * Max. 60 characters - */ - metadata__twitter_title: { - codename: 'metadata__twitter_title', - id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', - externalId: undefined, - name: 'twitter:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:description (text) - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadata__twitter_description: { - codename: 'metadata__twitter_description', - id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', - externalId: undefined, - name: 'twitter:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:image (asset) - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadata__twitter_image: { - codename: 'metadata__twitter_image', - id: '63793ba4-6004-a93c-68ca-52a1f0482bca', - externalId: undefined, - name: 'twitter:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - }, - }, - - /** - * Accessory - * Last modified: Tue Jul 16 2019 09:11:09 GMT+0200 (Středoevropský letní čas) - */ - accessory: { - codename: 'accessory', - id: 'd9748663-f567-4c51-a922-c24a1d6b935a', - externalId: undefined, - name: 'Accessory', - elements: { - /** - * Product name (text) - * - * Include a product display name. - */ - product_name: { - codename: 'product_name', - id: 'f9e2672c-5035-412e-3985-d6112b3781bd', - externalId: undefined, - name: 'Product name', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Price (number) - * - * Include a product price. - */ - price: { - codename: 'price', - id: '51d63ac3-d40d-15ea-c219-be207714077c', - externalId: undefined, - name: 'Price', - required: false, - type: 'number', - snippetCodename: undefined, - }, - - /** - * Image (asset) - * - * Upload one product image; the recommended size is 300 × 300 px. - */ - image: { - codename: 'image', - id: 'f0db12e6-86e4-8597-903b-c5984076d6b3', - externalId: undefined, - name: 'Image', - required: false, - type: 'asset', - snippetCodename: undefined, - }, - - /** - * Manufacturer (text) - * - * Include a manufacturer's name. - */ - manufacturer: { - codename: 'manufacturer', - id: 'ab75ff46-b629-5ce5-aac9-79ed8a7b869c', - externalId: undefined, - name: 'Manufacturer', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Product status (taxonomy) - * - * Add a product status if the product is included in a special offering. - */ - product_status: { - codename: 'product_status', - id: 'ef13b1f4-b558-f707-35a4-86146dbe4518', - externalId: undefined, - name: 'Product status', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Short description (rich_text) - * - * Include a short description that fits within 160 characters. - */ - short_description: { - codename: 'short_description', - id: '9740e2d0-87e8-52f5-ff4c-566fa00b1253', - externalId: undefined, - name: 'Short description', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * Long description (rich_text) - * - * Include a full product description. - */ - long_description: { - codename: 'long_description', - id: '1f961774-a589-4e21-9f8e-a8c4908ea476', - externalId: undefined, - name: 'Long description', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * URL pattern (url_slug) - * - * Provide a SEO-friendly URL. - */ - url_pattern: { - codename: 'url_pattern', - id: '69e4af48-f1ac-1146-e6c9-d20d55ca5792', - externalId: undefined, - name: 'URL pattern', - required: false, - type: 'url_slug', - snippetCodename: undefined, - }, - - /** - * Sitemap (taxonomy) - */ - sitemap: { - codename: 'sitemap', - id: 'd8ed1597-930c-4cf8-a34e-c5d5e82718ed', - externalId: undefined, - name: 'Sitemap', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Meta title (text) - * - * Length: 30–60 characters - */ - metadata__meta_title: { - codename: 'metadata__meta_title', - id: '09398b24-61ed-512e-5b5c-affd54a098e5', - externalId: undefined, - name: 'Meta title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * Meta description (text) - * - * Length: 70–150 characters - */ - metadata__meta_description: { - codename: 'metadata__meta_description', - id: '2e555cc1-1eae-520c-189e-28548904f529', - externalId: undefined, - name: 'Meta description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:title (text) - * - * Max. 60 characters - */ - metadata__og_title: { - codename: 'metadata__og_title', - id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', - externalId: undefined, - name: 'og:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:description (text) - * - * Max. 150 characters - */ - metadata__og_description: { - codename: 'metadata__og_description', - id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', - externalId: undefined, - name: 'og:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:image (asset) - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadata__og_image: { - codename: 'metadata__og_image', - id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', - externalId: undefined, - name: 'og:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - - /** - * twitter:site (text) - */ - metadata__twitter_site: { - codename: 'metadata__twitter_site', - id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', - externalId: undefined, - name: 'twitter:site', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:creator (text) - */ - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', - externalId: undefined, - name: 'twitter:creator', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:title (text) - * - * Max. 60 characters - */ - metadata__twitter_title: { - codename: 'metadata__twitter_title', - id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', - externalId: undefined, - name: 'twitter:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:description (text) - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadata__twitter_description: { - codename: 'metadata__twitter_description', - id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', - externalId: undefined, - name: 'twitter:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:image (asset) - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadata__twitter_image: { - codename: 'metadata__twitter_image', - id: '63793ba4-6004-a93c-68ca-52a1f0482bca', - externalId: undefined, - name: 'twitter:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - }, - }, - - /** - * Brewer - * Last modified: Tue Jul 16 2019 09:15:27 GMT+0200 (Středoevropský letní čas) - */ - brewer: { - codename: 'brewer', - id: '7bc932b3-ce2a-4aa7-954e-04cbcbd214fc', - externalId: undefined, - name: 'Brewer', - elements: { - /** - * Product name (text) - * - * Include a product display name. - */ - product_name: { - codename: 'product_name', - id: '01d6c6c7-92ff-a675-e413-861e5a9a4034', - externalId: undefined, - name: 'Product name', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Price (number) - * - * Include a product price. - */ - price: { - codename: 'price', - id: '48ebe0fc-afe7-2b93-d351-0e352332bc52', - externalId: undefined, - name: 'Price', - required: false, - type: 'number', - snippetCodename: undefined, - }, - - /** - * Image (asset) - * - * Upload one product image; the recommended size is 300 × 300 px. - */ - image: { - codename: 'image', - id: 'd0c1e9e7-7d5d-e61f-8564-56a8cb758cb8', - externalId: undefined, - name: 'Image', - required: false, - type: 'asset', - snippetCodename: undefined, - }, - - /** - * Product status (taxonomy) - * - * Add a product status if the product is included in a special offering. - */ - product_status: { - codename: 'product_status', - id: '960d0011-ff3b-41ac-1447-8eac6ee66eaa', - externalId: undefined, - name: 'Product status', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Short description (rich_text) - * - * Include a short description that fits within 160 characters. - */ - short_description: { - codename: 'short_description', - id: '8c235a7f-034e-f803-e612-9c47c8a49506', - externalId: undefined, - name: 'Short description', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * Long description (rich_text) - * - * Include a full product description. - */ - long_description: { - codename: 'long_description', - id: '14510bef-fd86-7d5d-992a-c1e091cbcb97', - externalId: undefined, - name: 'Long description', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * URL pattern (url_slug) - * - * Provide a SEO-friendly URL. - */ - url_pattern: { - codename: 'url_pattern', - id: '737c85be-f532-c8fe-a308-2a0f2c512f3e', - externalId: undefined, - name: 'URL pattern', - required: false, - type: 'url_slug', - snippetCodename: undefined, - }, - - /** - * Manufacturer (taxonomy) - */ - manufacturer: { - codename: 'manufacturer', - id: '53b6bddb-fe8a-a8b2-9765-343479bf9fc2', - externalId: undefined, - name: 'Manufacturer', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Sitemap (taxonomy) - */ - sitemap: { - codename: 'sitemap', - id: '7632f3bb-2e53-438d-933c-4e8b6c035cb1', - externalId: undefined, - name: 'Sitemap', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Meta title (text) - * - * Length: 30–60 characters - */ - metadata__meta_title: { - codename: 'metadata__meta_title', - id: '09398b24-61ed-512e-5b5c-affd54a098e5', - externalId: undefined, - name: 'Meta title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * Meta description (text) - * - * Length: 70–150 characters - */ - metadata__meta_description: { - codename: 'metadata__meta_description', - id: '2e555cc1-1eae-520c-189e-28548904f529', - externalId: undefined, - name: 'Meta description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:title (text) - * - * Max. 60 characters - */ - metadata__og_title: { - codename: 'metadata__og_title', - id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', - externalId: undefined, - name: 'og:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:description (text) - * - * Max. 150 characters - */ - metadata__og_description: { - codename: 'metadata__og_description', - id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', - externalId: undefined, - name: 'og:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:image (asset) - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadata__og_image: { - codename: 'metadata__og_image', - id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', - externalId: undefined, - name: 'og:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - - /** - * twitter:site (text) - */ - metadata__twitter_site: { - codename: 'metadata__twitter_site', - id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', - externalId: undefined, - name: 'twitter:site', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:creator (text) - */ - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', - externalId: undefined, - name: 'twitter:creator', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:title (text) - * - * Max. 60 characters - */ - metadata__twitter_title: { - codename: 'metadata__twitter_title', - id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', - externalId: undefined, - name: 'twitter:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:description (text) - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadata__twitter_description: { - codename: 'metadata__twitter_description', - id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', - externalId: undefined, - name: 'twitter:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:image (asset) - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadata__twitter_image: { - codename: 'metadata__twitter_image', - id: '63793ba4-6004-a93c-68ca-52a1f0482bca', - externalId: undefined, - name: 'twitter:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - }, - }, - - /** - * About us - * Last modified: Tue Jul 16 2019 09:07:38 GMT+0200 (Středoevropský letní čas) - */ - about_us: { - codename: 'about_us', - id: 'b2c14f2c-6467-460b-a70b-bca17972a33a', - externalId: undefined, - name: 'About us', - elements: { - /** - * Facts (modular_content) - * - * Assign all facts about our company which will be displayed on the about us page. - */ - facts: { - codename: 'facts', - id: 'cff560dc-ed24-7036-cbb6-b7a1b61b196a', - externalId: undefined, - name: 'Facts', - required: false, - type: 'modular_content', - snippetCodename: undefined, - }, - - /** - * URL pattern (url_slug) - * - * Provide a SEO-friendly URL. - */ - url_pattern: { - codename: 'url_pattern', - id: '50cb9acf-45f5-a186-5c00-9a9e4a37d84a', - externalId: undefined, - name: 'URL pattern', - required: false, - type: 'url_slug', - snippetCodename: undefined, - }, - - /** - * Sitemap (taxonomy) - */ - sitemap: { - codename: 'sitemap', - id: '65911e49-7bb0-41ca-9d17-ab218135126d', - externalId: undefined, - name: 'Sitemap', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - - /** - * Meta title (text) - * - * Length: 30–60 characters - */ - metadata__meta_title: { - codename: 'metadata__meta_title', - id: '09398b24-61ed-512e-5b5c-affd54a098e5', - externalId: undefined, - name: 'Meta title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * Meta description (text) - * - * Length: 70–150 characters - */ - metadata__meta_description: { - codename: 'metadata__meta_description', - id: '2e555cc1-1eae-520c-189e-28548904f529', - externalId: undefined, - name: 'Meta description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:title (text) - * - * Max. 60 characters - */ - metadata__og_title: { - codename: 'metadata__og_title', - id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', - externalId: undefined, - name: 'og:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:description (text) - * - * Max. 150 characters - */ - metadata__og_description: { - codename: 'metadata__og_description', - id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', - externalId: undefined, - name: 'og:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * og:image (asset) - * - * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. - */ - metadata__og_image: { - codename: 'metadata__og_image', - id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', - externalId: undefined, - name: 'og:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - - /** - * twitter:site (text) - */ - metadata__twitter_site: { - codename: 'metadata__twitter_site', - id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', - externalId: undefined, - name: 'twitter:site', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:creator (text) - */ - metadata__twitter_creator: { - codename: 'metadata__twitter_creator', - id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', - externalId: undefined, - name: 'twitter:creator', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:title (text) - * - * Max. 60 characters - */ - metadata__twitter_title: { - codename: 'metadata__twitter_title', - id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', - externalId: undefined, - name: 'twitter:title', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:description (text) - * - * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. - */ - metadata__twitter_description: { - codename: 'metadata__twitter_description', - id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', - externalId: undefined, - name: 'twitter:description', - required: false, - type: 'text', - snippetCodename: 'metadata', - }, - - /** - * twitter:image (asset) - * - * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. - */ - metadata__twitter_image: { - codename: 'metadata__twitter_image', - id: '63793ba4-6004-a93c-68ca-52a1f0482bca', - externalId: undefined, - name: 'twitter:image', - required: false, - type: 'asset', - snippetCodename: 'metadata', - }, - }, - }, - - /** - * Fact about us - * Last modified: Wed Mar 27 2019 14:05:49 GMT+0100 (Středoevropský standardní čas) - */ - fact_about_us: { - codename: 'fact_about_us', - id: 'b99ec220-0f2b-4658-a080-ff0afe92f6d1', - externalId: undefined, - name: 'Fact about us', - elements: { - /** - * Title (text) - * - * Provide a title that fits within 60 characters. - */ - title: { - codename: 'title', - id: '2375ca8a-43d2-7282-162c-922a6fdeba3e', - externalId: undefined, - name: 'Title', - required: false, - type: 'text', - snippetCodename: undefined, - }, - - /** - * Description (rich_text) - * - * Include a main goal of our business. The limit is 80 characters. - */ - description: { - codename: 'description', - id: '1b658e81-88c9-73d1-374d-7a60e3756ef7', - externalId: undefined, - name: 'Description', - required: false, - type: 'rich_text', - snippetCodename: undefined, - }, - - /** - * Image (asset) - * - * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. - */ - image: { - codename: 'image', - id: '68d194b6-efad-6b25-89a4-2dfc75fed5a5', - externalId: undefined, - name: 'Image', - required: false, - type: 'asset', - snippetCodename: undefined, - }, - - /** - * Sitemap (taxonomy) - */ - sitemap: { - codename: 'sitemap', - id: '23a715f9-755c-4b9d-b6b3-e02fc1b09b83', - externalId: undefined, - name: 'Sitemap', - required: false, - type: 'taxonomy', - snippetCodename: undefined, - }, - }, - }, -}; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const contentTypes = { + /** + * Hero Unit + * Last modified: Wed Mar 27 2019 14:06:00 GMT+0100 (Středoevropský standardní čas) + */ + hero_unit: { + codename: 'hero_unit', + id: 'f4deeb7e-fe9b-49a2-a5f6-a51a9be6ac73', + externalId: undefined, + name: 'Hero Unit', + elements: { + /** + * Title (text) + * + * Provide a title that fits within 60 characters. + */ + title: { + codename: 'title', + id: '16ea3e64-4103-da81-eabd-af7efc2ab8a6', + externalId: undefined, + name: 'Title', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. + */ + image: { + codename: 'image', + id: '4aeed98e-58d1-ab13-232c-542bf268fe48', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Marketing message (rich_text) + * + * Include a main goal of our business. The limit is 80 characters. + */ + marketing_message: { + codename: 'marketing_message', + id: 'ecf4e55f-1ae0-f539-3516-5714a0f032e9', + externalId: undefined, + name: 'Marketing message', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '0f620d29-a4c7-4944-b7d2-be5de2733b6e', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + }, + }, + + /** + * Hosted video + * Last modified: Fri Mar 29 2019 14:55:48 GMT+0100 (Středoevropský standardní čas) + */ + hosted_video: { + codename: 'hosted_video', + id: '269202ad-1d9d-47fd-b3e8-bdb05b3e3cf0', + externalId: undefined, + name: 'Hosted video', + elements: { + /** + * Video ID (text) + */ + video_id: { + codename: 'video_id', + id: '116a2441-6441-7124-c85b-46a4fef5dcb9', + externalId: undefined, + name: 'Video ID', + required: true, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Video host (multiple_choice) + */ + video_host: { + codename: 'video_host', + id: '87924912-4861-aa84-176a-1eae7b22529b', + externalId: undefined, + name: 'Video host', + required: true, + type: 'multiple_choice', + snippetCodename: undefined, + }, + }, + }, + + /** + * Coffee + * Last modified: Tue Jul 16 2019 09:18:34 GMT+0200 (Středoevropský letní čas) + */ + coffee: { + codename: 'coffee', + id: '929985ac-4aa5-436b-85a2-94c2d4fbbebd', + externalId: undefined, + name: 'Coffee', + elements: { + /** + * Product name (text) + * + * Include a product display name. + */ + product_name: { + codename: 'product_name', + id: 'edaec5c4-e653-9109-eb0d-fc40ccf3c810', + externalId: undefined, + name: 'Product name', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Price (number) + * + * Include a product price. + */ + price: { + codename: 'price', + id: '624592dc-49b2-330a-7185-e1f2396ce90c', + externalId: undefined, + name: 'Price', + required: false, + type: 'number', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Upload a product image; the recommended size is 300 × 300 px. + */ + image: { + codename: 'image', + id: '30ac3ccc-1e7f-1490-e1f6-915c64176a55', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Short description (rich_text) + * + * Include a short description that fits within 160 characters. + */ + short_description: { + codename: 'short_description', + id: 'b5a3263a-a1d7-92b7-865a-329f833285fa', + externalId: undefined, + name: 'Short description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Long description (rich_text) + * + * Include a full product description. + */ + long_description: { + codename: 'long_description', + id: 'd468a0aa-e0fa-0cae-41db-6e006bff2527', + externalId: undefined, + name: 'Long description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Product status (taxonomy) + * + * Add a product status if the product is included in a special offering. + */ + product_status: { + codename: 'product_status', + id: '1ee64175-fde7-fc1e-5259-511a31c326c3', + externalId: undefined, + name: 'Product status', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Farm (text) + * + * Include the name of the coffee farm. + */ + farm: { + codename: 'farm', + id: 'e5cf103f-9b84-1ab0-29f1-fb5a1657c6f7', + externalId: undefined, + name: 'Farm', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Country (text) + * + * Include the coffee's country of origin. + */ + country: { + codename: 'country', + id: '6eec1918-378d-3b15-8b1a-19c5f0748321', + externalId: undefined, + name: 'Country', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Variety (text) + * + * Include a coffee variety name. + */ + variety: { + codename: 'variety', + id: '301c6712-962f-b05a-6f6e-2f0e1e959039', + externalId: undefined, + name: 'Variety', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Altitude (text) + * + * Include the altitude at which the coffee is grown. Elevation affects the size, shape, and taste of coffee beans. + */ + altitude: { + codename: 'altitude', + id: '23a772c0-0b2b-588d-9849-e29068701f03', + externalId: undefined, + name: 'Altitude', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: '3af8ce38-c03d-063c-ea80-72684dfddf31', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Processing (taxonomy) + */ + processing: { + codename: 'processing', + id: 'b63e3516-d5fa-fdac-a03a-2b027bf02a28', + externalId: undefined, + name: 'Processing', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '99d7a378-e18f-41dd-b5bb-2a569c3d1de7', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Article + * Last modified: Tue Jul 16 2019 09:12:44 GMT+0200 (Středoevropský letní čas) + */ + article: { + codename: 'article', + id: 'b7aa4a53-d9b1-48cf-b7a6-ed0b182c4b89', + externalId: undefined, + name: 'Article', + elements: { + /** + * Title (text) + * + * The title should fit within 60 characters.Our voice and tone recommendations: — avoid coffee jargon. + */ + title: { + codename: 'title', + id: '85d5efc6-f47e-2fde-a6f5-0950fe89ecd1', + externalId: undefined, + name: 'Title', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Teaser image (asset) + * + * Upload an image at a resolution of at least 600 × 1200 px. + */ + teaser_image: { + codename: 'teaser_image', + id: '62eb9881-e222-6b81-91d2-fdf052726414', + externalId: undefined, + name: 'Teaser image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Post date (date_time) + * + * Provide a date that will appear on the live site as the date this article was posted live. This date will also influence the order of the articles. + */ + post_date: { + codename: 'post_date', + id: '4ae5f7a9-fe1f-1e8c-bfec-d321455139c4', + externalId: undefined, + name: 'Post date', + required: false, + type: 'date_time', + snippetCodename: undefined, + }, + + /** + * Summary (text) + * + * Provide a short summary of the text. It should be catchy and make the visitor want to read the whole article.The summary should fit within 160 characters. + */ + summary: { + codename: 'summary', + id: '90550cbe-7bff-40a9-2947-9c81489fe562', + externalId: undefined, + name: 'Summary', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Body Copy (rich_text) + * + * Keep the article structured with concise paragraphs complemented with headlines that will help the reader navigate through the article's content.Preferred glossary terms — coffee, brewing, grinder, drip, roast, filter. + */ + body_copy: { + codename: 'body_copy', + id: '108ed7c0-fc8c-c0ec-d0b5-5a8071408b54', + externalId: undefined, + name: 'Body Copy', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Related articles (modular_content) + * + * Provide articles with related topics. + */ + related_articles: { + codename: 'related_articles', + id: 'ee7c3687-b469-6c56-3ac6-c8dfdc8b58b5', + externalId: undefined, + name: 'Related articles', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * Meta keywords (text) + * + * Enter tags separated with a comma. Example: coffee, "coffee roast”, grinder + */ + meta_keywords: { + codename: 'meta_keywords', + id: '5efb2425-5987-a4a6-a2d3-b14712b56e73', + externalId: undefined, + name: 'Meta keywords', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Personas (taxonomy) + * + * Provide all personas for which this article is relevant. + */ + personas: { + codename: 'personas', + id: '0a16b642-ac3e-584d-a45a-ba354a30b2bd', + externalId: undefined, + name: 'Personas', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta description (text) + * + * Sum up the blog for SEO purposes. Limit for the meta description is 160 characters. + */ + meta_description: { + codename: 'meta_description', + id: 'b9dc537c-2518-e4f5-8325-ce4fce26171e', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: 'f2ff5e3f-a9ca-4604-58b0-34a2ad6a7cf1', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: 'a4d7a146-7e39-4001-b462-c5a0c734f3f5', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Grinder + * Last modified: Tue Jul 16 2019 09:16:16 GMT+0200 (Středoevropský letní čas) + */ + grinder: { + codename: 'grinder', + id: 'da4f1cb1-8a55-43e5-9fcc-67ad331c8888', + externalId: undefined, + name: 'Grinder', + elements: { + /** + * Product name (text) + * + * Include a product display name. + */ + product_name: { + codename: 'product_name', + id: 'b7b9604e-c74e-79ea-2a0f-d74d6347e35a', + externalId: undefined, + name: 'Product name', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Price (number) + * + * Include a product price. + */ + price: { + codename: 'price', + id: '1e14595d-7fe8-7765-6df6-fad6a6e4851f', + externalId: undefined, + name: 'Price', + required: false, + type: 'number', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: { + codename: 'image', + id: '7fe226b9-d21f-80ff-e680-6e6f44ce044b', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Manufacturer (text) + * + * Include a manufacturer's name. + */ + manufacturer: { + codename: 'manufacturer', + id: '2c389736-7dfa-b03e-8996-7eba451cfdb5', + externalId: undefined, + name: 'Manufacturer', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Product status (taxonomy) + * + * Add a product status if the product is included in a special offering. + */ + product_status: { + codename: 'product_status', + id: '54120e88-82cc-2202-e72d-9cae0ced3f51', + externalId: undefined, + name: 'Product status', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Short description (rich_text) + * + * Include a short description that fits within 160 characters. + */ + short_description: { + codename: 'short_description', + id: '23ee310f-9732-9193-ad5e-80f75bfc276d', + externalId: undefined, + name: 'Short description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Long description (rich_text) + * + * Include a full product description. + */ + long_description: { + codename: 'long_description', + id: '21e77286-e87b-d6e3-902d-13b5814b5e75', + externalId: undefined, + name: 'Long description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: 'bf6ad588-11e5-ba0d-2c18-ccd50064a32a', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '02f0e374-6760-4b4d-99a8-60485572b764', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Office + * Last modified: Wed Mar 27 2019 14:07:06 GMT+0100 (Středoevropský standardní čas) + */ + office: { + codename: 'office', + id: 'e097306b-3893-4a42-9973-2525fad14d66', + externalId: undefined, + name: 'Office', + elements: { + /** + * Name (text) + */ + name: { + codename: 'name', + id: 'bb81a11d-886c-2a32-e480-29f01cea667f', + externalId: undefined, + name: 'Name', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Street (text) + */ + street: { + codename: 'street', + id: 'f7eb7ab2-4e41-aca0-7e93-dbbbdca330eb', + externalId: undefined, + name: 'Street', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * City (text) + */ + city: { + codename: 'city', + id: '95477abc-d6b4-a6b3-5b72-c92763da55bf', + externalId: undefined, + name: 'City', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Country (text) + */ + country: { + codename: 'country', + id: '4fbc7779-652d-7716-2673-7419aaaceed1', + externalId: undefined, + name: 'Country', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * State (text) + */ + state: { + codename: 'state', + id: '08df2f10-52b8-d451-fab1-b6da8ddb3fd2', + externalId: undefined, + name: 'State', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Zip code (text) + */ + zip_code: { + codename: 'zip_code', + id: 'e7141da8-8792-a66d-d1c8-1fe704758393', + externalId: undefined, + name: 'Zip code', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Phone (text) + */ + phone: { + codename: 'phone', + id: '2ac708e2-cd0e-67b0-67f8-71725625dc6d', + externalId: undefined, + name: 'Phone', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Email (text) + */ + email: { + codename: 'email', + id: '251dc38f-43a3-d924-a328-8708ecb00ef1', + externalId: undefined, + name: 'Email', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '93e978da-a9dd-43eb-a16a-ace55c1a5245', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + }, + }, + + /** + * Tweet + * Last modified: Fri Mar 29 2019 14:55:38 GMT+0100 (Středoevropský standardní čas) + */ + tweet: { + codename: 'tweet', + id: 'f808c142-4b62-43b0-8f4d-1cbf412580ab', + externalId: undefined, + name: 'Tweet', + elements: { + /** + * Tweet link (text) + */ + tweet_link: { + codename: 'tweet_link', + id: '20bf9ba1-28fe-203c-5920-6f9610498fb9', + externalId: undefined, + name: 'Tweet link', + required: true, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Theme (multiple_choice) + */ + theme: { + codename: 'theme', + id: '779b27fd-5a4d-5e5f-66dc-b30931fcba92', + externalId: undefined, + name: 'Theme', + required: false, + type: 'multiple_choice', + snippetCodename: undefined, + }, + + /** + * Display options (multiple_choice) + */ + display_options: { + codename: 'display_options', + id: '8c6db6cf-1003-951e-5407-b2a19c15b4cd', + externalId: undefined, + name: 'Display options', + required: false, + type: 'multiple_choice', + snippetCodename: undefined, + }, + }, + }, + + /** + * Cafe + * Last modified: Wed Mar 27 2019 14:05:05 GMT+0100 (Středoevropský standardní čas) + */ + cafe: { + codename: 'cafe', + id: 'fe41ae5a-5fe2-420a-8560-f7d6d3533dc2', + externalId: undefined, + name: 'Cafe', + elements: { + /** + * Street (text) + */ + street: { + codename: 'street', + id: '866afdba-d334-f01a-1d52-a9ca3f57cb4b', + externalId: undefined, + name: 'Street', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * City (text) + */ + city: { + codename: 'city', + id: '339e6d4f-67c1-5f5e-6921-3b374eb96f5b', + externalId: undefined, + name: 'City', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Country (text) + */ + country: { + codename: 'country', + id: '7531a08f-e148-8cc0-9d2d-155215502e08', + externalId: undefined, + name: 'Country', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * State (text) + */ + state: { + codename: 'state', + id: 'a015b689-cad3-1ac9-04b4-73697525752d', + externalId: undefined, + name: 'State', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * ZIP Code (text) + */ + zip_code: { + codename: 'zip_code', + id: 'bb158ac2-41e1-5a7d-0826-bb8bf6744f0e', + externalId: undefined, + name: 'ZIP Code', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Phone (text) + */ + phone: { + codename: 'phone', + id: '1c71bc62-4b62-f307-37ef-0823776f8f73', + externalId: undefined, + name: 'Phone', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Email (text) + */ + email: { + codename: 'email', + id: '6f726c77-36bd-8062-51df-056136e10d35', + externalId: undefined, + name: 'Email', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Photo (asset) + */ + photo: { + codename: 'photo', + id: '5769c0f4-66a8-4c73-3c19-c023bdfa123a', + externalId: undefined, + name: 'Photo', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: 'e82d0f49-5b15-45e1-9b1f-32ccc1be4941', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + }, + }, + + /** + * Home + * Last modified: Tue Jul 16 2019 09:16:46 GMT+0200 (Středoevropský letní čas) + */ + home: { + codename: 'home', + id: 'a29399c3-5281-47ab-9916-acd4a6f887b7', + externalId: undefined, + name: 'Home', + elements: { + /** + * Hero unit (modular_content) + * + * Assign 1 Hero unit that has been prepared for a home page. + */ + hero_unit: { + codename: 'hero_unit', + id: '2b15a8f3-2e5f-7d01-4d8e-5b22e222aa76', + externalId: undefined, + name: 'Hero unit', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * Articles (modular_content) + * + * Assign all articles which should be displayed on the home page. + */ + articles: { + codename: 'articles', + id: '222f3a69-a54f-3e92-83ac-05f8a08e667f', + externalId: undefined, + name: 'Articles', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * Our story (modular_content) + * + * Assign 1 Fact about us which will be displayed on the home page. + */ + our_story: { + codename: 'our_story', + id: '617bccc0-4844-4beb-4ede-6247e954633a', + externalId: undefined, + name: 'Our story', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * Cafes (modular_content) + * + * Assign 4 Cafes which will be displayed on the home page. + */ + cafes: { + codename: 'cafes', + id: '6356c948-0fd6-00d0-8fc1-e2484180ae7c', + externalId: undefined, + name: 'Cafes', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * Contact (rich_text) + * + * Add Contact us information to be displayed on the home page. + */ + contact: { + codename: 'contact', + id: 'ee854076-236b-5312-0ed5-8c3cd55ca9e0', + externalId: undefined, + name: 'Contact', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: 'dd70db4b-ee97-5ab4-b752-4f9d70389426', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: 'ea3bf3c2-7eb7-4c91-aff3-09f89c743710', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Accessory + * Last modified: Tue Jul 16 2019 09:11:09 GMT+0200 (Středoevropský letní čas) + */ + accessory: { + codename: 'accessory', + id: 'd9748663-f567-4c51-a922-c24a1d6b935a', + externalId: undefined, + name: 'Accessory', + elements: { + /** + * Product name (text) + * + * Include a product display name. + */ + product_name: { + codename: 'product_name', + id: 'f9e2672c-5035-412e-3985-d6112b3781bd', + externalId: undefined, + name: 'Product name', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Price (number) + * + * Include a product price. + */ + price: { + codename: 'price', + id: '51d63ac3-d40d-15ea-c219-be207714077c', + externalId: undefined, + name: 'Price', + required: false, + type: 'number', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: { + codename: 'image', + id: 'f0db12e6-86e4-8597-903b-c5984076d6b3', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Manufacturer (text) + * + * Include a manufacturer's name. + */ + manufacturer: { + codename: 'manufacturer', + id: 'ab75ff46-b629-5ce5-aac9-79ed8a7b869c', + externalId: undefined, + name: 'Manufacturer', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Product status (taxonomy) + * + * Add a product status if the product is included in a special offering. + */ + product_status: { + codename: 'product_status', + id: 'ef13b1f4-b558-f707-35a4-86146dbe4518', + externalId: undefined, + name: 'Product status', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Short description (rich_text) + * + * Include a short description that fits within 160 characters. + */ + short_description: { + codename: 'short_description', + id: '9740e2d0-87e8-52f5-ff4c-566fa00b1253', + externalId: undefined, + name: 'Short description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Long description (rich_text) + * + * Include a full product description. + */ + long_description: { + codename: 'long_description', + id: '1f961774-a589-4e21-9f8e-a8c4908ea476', + externalId: undefined, + name: 'Long description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: '69e4af48-f1ac-1146-e6c9-d20d55ca5792', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: 'd8ed1597-930c-4cf8-a34e-c5d5e82718ed', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Brewer + * Last modified: Tue Jul 16 2019 09:15:27 GMT+0200 (Středoevropský letní čas) + */ + brewer: { + codename: 'brewer', + id: '7bc932b3-ce2a-4aa7-954e-04cbcbd214fc', + externalId: undefined, + name: 'Brewer', + elements: { + /** + * Product name (text) + * + * Include a product display name. + */ + product_name: { + codename: 'product_name', + id: '01d6c6c7-92ff-a675-e413-861e5a9a4034', + externalId: undefined, + name: 'Product name', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Price (number) + * + * Include a product price. + */ + price: { + codename: 'price', + id: '48ebe0fc-afe7-2b93-d351-0e352332bc52', + externalId: undefined, + name: 'Price', + required: false, + type: 'number', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Upload one product image; the recommended size is 300 × 300 px. + */ + image: { + codename: 'image', + id: 'd0c1e9e7-7d5d-e61f-8564-56a8cb758cb8', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Product status (taxonomy) + * + * Add a product status if the product is included in a special offering. + */ + product_status: { + codename: 'product_status', + id: '960d0011-ff3b-41ac-1447-8eac6ee66eaa', + externalId: undefined, + name: 'Product status', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Short description (rich_text) + * + * Include a short description that fits within 160 characters. + */ + short_description: { + codename: 'short_description', + id: '8c235a7f-034e-f803-e612-9c47c8a49506', + externalId: undefined, + name: 'Short description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Long description (rich_text) + * + * Include a full product description. + */ + long_description: { + codename: 'long_description', + id: '14510bef-fd86-7d5d-992a-c1e091cbcb97', + externalId: undefined, + name: 'Long description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: '737c85be-f532-c8fe-a308-2a0f2c512f3e', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Manufacturer (taxonomy) + */ + manufacturer: { + codename: 'manufacturer', + id: '53b6bddb-fe8a-a8b2-9765-343479bf9fc2', + externalId: undefined, + name: 'Manufacturer', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '7632f3bb-2e53-438d-933c-4e8b6c035cb1', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * About us + * Last modified: Tue Jul 16 2019 09:07:38 GMT+0200 (Středoevropský letní čas) + */ + about_us: { + codename: 'about_us', + id: 'b2c14f2c-6467-460b-a70b-bca17972a33a', + externalId: undefined, + name: 'About us', + elements: { + /** + * Facts (modular_content) + * + * Assign all facts about our company which will be displayed on the about us page. + */ + facts: { + codename: 'facts', + id: 'cff560dc-ed24-7036-cbb6-b7a1b61b196a', + externalId: undefined, + name: 'Facts', + required: false, + type: 'modular_content', + snippetCodename: undefined, + }, + + /** + * URL pattern (url_slug) + * + * Provide a SEO-friendly URL. + */ + url_pattern: { + codename: 'url_pattern', + id: '50cb9acf-45f5-a186-5c00-9a9e4a37d84a', + externalId: undefined, + name: 'URL pattern', + required: false, + type: 'url_slug', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '65911e49-7bb0-41ca-9d17-ab218135126d', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + + /** + * Meta title (text) + * + * Length: 30–60 characters + */ + metadata__meta_title: { + codename: 'metadata__meta_title', + id: '09398b24-61ed-512e-5b5c-affd54a098e5', + externalId: undefined, + name: 'Meta title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * Meta description (text) + * + * Length: 70–150 characters + */ + metadata__meta_description: { + codename: 'metadata__meta_description', + id: '2e555cc1-1eae-520c-189e-28548904f529', + externalId: undefined, + name: 'Meta description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:title (text) + * + * Max. 60 characters + */ + metadata__og_title: { + codename: 'metadata__og_title', + id: '1db86c7a-e836-3c4e-01e6-4f704ad38ba5', + externalId: undefined, + name: 'og:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:description (text) + * + * Max. 150 characters + */ + metadata__og_description: { + codename: 'metadata__og_description', + id: '05987dc9-ebe3-7b61-b949-522eb42dbc0d', + externalId: undefined, + name: 'og:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * og:image (asset) + * + * Use images that are at least 1200 × 630 px for best display on high resolution devices. At the minimum, you should use images that are 600 × 315 px to display link page posts with larger images. Images may be up to 1 MB in size. + */ + metadata__og_image: { + codename: 'metadata__og_image', + id: 'ce6cda71-9d38-1d57-3ac3-ec9b2e286edd', + externalId: undefined, + name: 'og:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + + /** + * twitter:site (text) + */ + metadata__twitter_site: { + codename: 'metadata__twitter_site', + id: '34213fdf-0015-8f4f-e5e6-83c6842cff4a', + externalId: undefined, + name: 'twitter:site', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:creator (text) + */ + metadata__twitter_creator: { + codename: 'metadata__twitter_creator', + id: '68f65095-c9b4-05d6-a473-2883c2f0c7af', + externalId: undefined, + name: 'twitter:creator', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:title (text) + * + * Max. 60 characters + */ + metadata__twitter_title: { + codename: 'metadata__twitter_title', + id: 'b208d3dc-bd8d-b1af-5ef0-747650730ba7', + externalId: undefined, + name: 'twitter:title', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:description (text) + * + * A description that concisely summarizes the content as appropriate for presentation within a Tweet. You should not re-use the title as the description, or use this field to describe the general services provided by the website. Max. 150 characters. + */ + metadata__twitter_description: { + codename: 'metadata__twitter_description', + id: 'b7d1dd8b-a5d8-2ad8-2f57-49881363f6f7', + externalId: undefined, + name: 'twitter:description', + required: false, + type: 'text', + snippetCodename: 'metadata', + }, + + /** + * twitter:image (asset) + * + * Twitter's recommendation: A URL to a unique image representing the content of the page. You should not use a generic image such as your website logo, author photo, or other image that spans multiple pages. Images for this Card should be at least 280 × 150 px. Images may be up to 1 MB in size.Let's go for 560 × 300 px. + */ + metadata__twitter_image: { + codename: 'metadata__twitter_image', + id: '63793ba4-6004-a93c-68ca-52a1f0482bca', + externalId: undefined, + name: 'twitter:image', + required: false, + type: 'asset', + snippetCodename: 'metadata', + }, + }, + }, + + /** + * Fact about us + * Last modified: Wed Mar 27 2019 14:05:49 GMT+0100 (Středoevropský standardní čas) + */ + fact_about_us: { + codename: 'fact_about_us', + id: 'b99ec220-0f2b-4658-a080-ff0afe92f6d1', + externalId: undefined, + name: 'Fact about us', + elements: { + /** + * Title (text) + * + * Provide a title that fits within 60 characters. + */ + title: { + codename: 'title', + id: '2375ca8a-43d2-7282-162c-922a6fdeba3e', + externalId: undefined, + name: 'Title', + required: false, + type: 'text', + snippetCodename: undefined, + }, + + /** + * Description (rich_text) + * + * Include a main goal of our business. The limit is 80 characters. + */ + description: { + codename: 'description', + id: '1b658e81-88c9-73d1-374d-7a60e3756ef7', + externalId: undefined, + name: 'Description', + required: false, + type: 'rich_text', + snippetCodename: undefined, + }, + + /** + * Image (asset) + * + * Attach a teaser image; max. dimensions are 1280 × 600 px; allowed formats are *.jpg, *.png, *.gif. + */ + image: { + codename: 'image', + id: '68d194b6-efad-6b25-89a4-2dfc75fed5a5', + externalId: undefined, + name: 'Image', + required: false, + type: 'asset', + snippetCodename: undefined, + }, + + /** + * Sitemap (taxonomy) + */ + sitemap: { + codename: 'sitemap', + id: '23a715f9-755c-4b9d-b6b3-e02fc1b09b83', + externalId: undefined, + name: 'Sitemap', + required: false, + type: 'taxonomy', + snippetCodename: undefined, + }, + }, + }, +}; diff --git a/src/Models/project/index.ts b/src/Models/project/index.ts index 3d3453e..4bb996e 100644 --- a/src/Models/project/index.ts +++ b/src/Models/project/index.ts @@ -1,8 +1,8 @@ -export * from './languages'; -export * from './collections'; -export * from './contentTypes'; -export * from './taxonomies'; -export * from './workflows'; -export * from './roles'; -export * from './assetFolders'; -export * from './webhooks'; +export * from './languages'; +export * from './collections'; +export * from './contentTypes'; +export * from './taxonomies'; +export * from './workflows'; +export * from './roles'; +export * from './assetFolders'; +export * from './webhooks'; diff --git a/src/Models/project/languages.ts b/src/Models/project/languages.ts index 7f92163..998cf3d 100644 --- a/src/Models/project/languages.ts +++ b/src/Models/project/languages.ts @@ -1,34 +1,34 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Project name: Sample Project - * Environment: Production - * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 - */ -export const languages = { - /** - * English (United States) - */ - enUS: { - codename: 'en-US', - id: '00000000-0000-0000-0000-000000000000', - isActive: true, - isDefault: true, - fallbackLanguageId: '00000000-0000-0000-0000-000000000000', - externalId: undefined, - name: 'English (United States)', - }, - - /** - * Spanish (Spain) - */ - esES: { - codename: 'es-ES', - id: 'd1f95fde-af02-b3b5-bd9e-f232311ccab8', - isActive: true, - isDefault: false, - fallbackLanguageId: '00000000-0000-0000-0000-000000000000', - externalId: undefined, - name: 'Spanish (Spain)', - }, -}; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const languages = { + /** + * English (United States) + */ + enUS: { + codename: 'en-US', + id: '00000000-0000-0000-0000-000000000000', + isActive: true, + isDefault: true, + fallbackLanguageId: '00000000-0000-0000-0000-000000000000', + externalId: undefined, + name: 'English (United States)', + }, + + /** + * Spanish (Spain) + */ + esES: { + codename: 'es-ES', + id: 'd1f95fde-af02-b3b5-bd9e-f232311ccab8', + isActive: true, + isDefault: false, + fallbackLanguageId: '00000000-0000-0000-0000-000000000000', + externalId: undefined, + name: 'Spanish (Spain)', + }, +}; diff --git a/src/Models/project/roles.ts b/src/Models/project/roles.ts index ecd257b..e82e740 100644 --- a/src/Models/project/roles.ts +++ b/src/Models/project/roles.ts @@ -1,8 +1,8 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Project name: Sample Project - * Environment: Production - * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 - */ -export const roles = {}; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const roles = {}; diff --git a/src/Models/project/taxonomies.ts b/src/Models/project/taxonomies.ts index e0ed39a..78bd636 100644 --- a/src/Models/project/taxonomies.ts +++ b/src/Models/project/taxonomies.ts @@ -1,268 +1,268 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Project name: Sample Project - * Environment: Production - * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 - */ -export const taxonomies = { - /** - * Processing - */ - processing: { - codename: 'processing', - id: 'd351400e-0290-87b2-1413-6c411d8ae5a4', - externalId: undefined, - name: 'Processing', - terms: { - wet__washed_: { - codename: 'wet__washed_', - id: 'a831d60b-ff0e-7df1-61d2-73e851a5deab', - externalId: undefined, - name: 'Wet (Washed)', - terms: {}, - }, - dry__natural_: { - codename: 'dry__natural_', - id: 'ac34eaa7-8463-62b9-825e-66aff9e6b216', - externalId: undefined, - name: 'Dry (Natural)', - terms: {}, - }, - semi_dry: { - codename: 'semi_dry', - id: '908321fa-776d-d441-6a72-76fba3959c1d', - externalId: undefined, - name: 'Semi-dry', - terms: {}, - }, - }, - }, - - /** - * Product status - */ - product_status: { - codename: 'product_status', - id: '79b1c5b6-30bc-d076-a236-d9ec9f1ff01b', - externalId: undefined, - name: 'Product status', - terms: { - on_sale: { - codename: 'on_sale', - id: '6352c8bf-8024-9986-8373-35445e1f0d59', - externalId: undefined, - name: 'On sale', - terms: {}, - }, - bestseller: { - codename: 'bestseller', - id: '8d808da3-29de-e608-5699-8565687dd474', - externalId: undefined, - name: 'Bestseller', - terms: {}, - }, - }, - }, - - /** - * Sitemap - */ - sitemap_538125f: { - codename: 'sitemap_538125f', - id: '538125ff-c59c-4193-88ce-71a7016830ed', - externalId: undefined, - name: 'Sitemap', - terms: { - home: { - codename: 'home', - id: '796ad1bc-7d9f-426f-97ba-d16003c3f04c', - externalId: undefined, - name: 'Home', - terms: {}, - }, - products: { - codename: 'products', - id: '6bb115ce-4f92-44c6-8643-d148f9f7028a', - externalId: undefined, - name: 'Products', - terms: { - coffee: { - codename: 'coffee', - id: '30453aab-633b-4e7c-b9b3-cda95163ad0f', - externalId: undefined, - name: 'Coffee', - terms: {}, - }, - brewers: { - codename: 'brewers', - id: 'c66be017-bacc-403f-9f98-8ead623d687e', - externalId: undefined, - name: 'Brewers', - terms: {}, - }, - accessories: { - codename: 'accessories', - id: 'baa49a0a-479a-4279-9fe0-f29393f330c5', - externalId: undefined, - name: 'Accessories', - terms: {}, - }, - grinders: { - codename: 'grinders', - id: '82b3f64d-a41f-4f78-a410-c6c0e095b3c7', - externalId: undefined, - name: 'Grinders', - terms: {}, - }, - }, - }, - cafes: { - codename: 'cafes', - id: '2ab0aad5-7609-4371-8d6e-cb4a917b2ad1', - externalId: undefined, - name: 'Cafes', - terms: { - north_america: { - codename: 'north_america', - id: 'f319b28e-c194-496a-b188-4f91cc010a67', - externalId: undefined, - name: 'North America', - terms: {}, - }, - europe: { - codename: 'europe', - id: 'bbac5542-33b5-40ad-a3a9-2f2d37a40ab3', - externalId: undefined, - name: 'Europe', - terms: {}, - }, - australia: { - codename: 'australia', - id: '405c6578-8233-4277-9826-6b5e74dc6f39', - externalId: undefined, - name: 'Australia', - terms: {}, - }, - }, - }, - articles: { - codename: 'articles', - id: '7ca9b56c-6379-46dc-ae90-3df4b9abd217', - externalId: undefined, - name: 'Articles', - terms: {}, - }, - offices: { - codename: 'offices', - id: '3f7bee52-08cc-4a12-8fe9-dbce05871ca0', - externalId: undefined, - name: 'Offices', - terms: {}, - }, - about_us: { - codename: 'about_us', - id: 'bbe0ed98-bc68-4f9b-85cb-73cb28078b3c', - externalId: undefined, - name: 'About us', - terms: {}, - }, - }, - }, - - /** - * Personas - */ - personas: { - codename: 'personas', - id: 'f30c7f72-e9ab-8832-2a57-62944a038809', - externalId: undefined, - name: 'Personas', - terms: { - coffee_expert: { - codename: 'coffee_expert', - id: '6693ca6e-79e0-57e4-000d-d23d5ce8f656', - externalId: undefined, - name: 'Coffee expert', - terms: { - barista: { - codename: 'barista', - id: '6a372f43-ccd7-e524-6308-c2094e7b6596', - externalId: undefined, - name: 'Barista', - terms: {}, - }, - cafe_owner: { - codename: 'cafe_owner', - id: 'cdf2f3c6-89e3-5df1-f7de-7179460bd6b4', - externalId: undefined, - name: 'Cafe owner', - terms: {}, - }, - }, - }, - coffee_enthusiast: { - codename: 'coffee_enthusiast', - id: 'ab2b73a3-473d-4232-0652-495598f5d670', - externalId: undefined, - name: 'Coffee enthusiast', - terms: { - coffee_lover: { - codename: 'coffee_lover', - id: '208a9095-1b92-10da-7627-75ae311935cf', - externalId: undefined, - name: 'Coffee lover', - terms: {}, - }, - coffee_blogger: { - codename: 'coffee_blogger', - id: '4fa27320-c363-3ebe-5ab5-b531300f053f', - externalId: undefined, - name: 'Coffee blogger', - terms: {}, - }, - }, - }, - }, - }, - - /** - * Manufacturer - */ - manufacturer: { - codename: 'manufacturer', - id: '4ce421e9-c403-eee8-fdc2-74f09392a749', - externalId: undefined, - name: 'Manufacturer', - terms: { - aerobie: { - codename: 'aerobie', - id: 'f04c8552-1b97-a49b-3944-79275622f471', - externalId: undefined, - name: 'Aerobie', - terms: {}, - }, - chemex: { - codename: 'chemex', - id: '16d27bf1-e0f4-8646-0e54-1b71efc6947f', - externalId: undefined, - name: 'Chemex', - terms: {}, - }, - espro: { - codename: 'espro', - id: 'b378225f-6dfc-e261-3848-dd030a6d7883', - externalId: undefined, - name: 'Espro', - terms: {}, - }, - hario: { - codename: 'hario', - id: '6fde9724-5b72-8bc9-6da0-4f0573a54532', - externalId: undefined, - name: 'Hario', - terms: {}, - }, - }, - }, -}; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const taxonomies = { + /** + * Processing + */ + processing: { + codename: 'processing', + id: 'd351400e-0290-87b2-1413-6c411d8ae5a4', + externalId: undefined, + name: 'Processing', + terms: { + wet__washed_: { + codename: 'wet__washed_', + id: 'a831d60b-ff0e-7df1-61d2-73e851a5deab', + externalId: undefined, + name: 'Wet (Washed)', + terms: {}, + }, + dry__natural_: { + codename: 'dry__natural_', + id: 'ac34eaa7-8463-62b9-825e-66aff9e6b216', + externalId: undefined, + name: 'Dry (Natural)', + terms: {}, + }, + semi_dry: { + codename: 'semi_dry', + id: '908321fa-776d-d441-6a72-76fba3959c1d', + externalId: undefined, + name: 'Semi-dry', + terms: {}, + }, + }, + }, + + /** + * Product status + */ + product_status: { + codename: 'product_status', + id: '79b1c5b6-30bc-d076-a236-d9ec9f1ff01b', + externalId: undefined, + name: 'Product status', + terms: { + on_sale: { + codename: 'on_sale', + id: '6352c8bf-8024-9986-8373-35445e1f0d59', + externalId: undefined, + name: 'On sale', + terms: {}, + }, + bestseller: { + codename: 'bestseller', + id: '8d808da3-29de-e608-5699-8565687dd474', + externalId: undefined, + name: 'Bestseller', + terms: {}, + }, + }, + }, + + /** + * Sitemap + */ + sitemap_538125f: { + codename: 'sitemap_538125f', + id: '538125ff-c59c-4193-88ce-71a7016830ed', + externalId: undefined, + name: 'Sitemap', + terms: { + home: { + codename: 'home', + id: '796ad1bc-7d9f-426f-97ba-d16003c3f04c', + externalId: undefined, + name: 'Home', + terms: {}, + }, + products: { + codename: 'products', + id: '6bb115ce-4f92-44c6-8643-d148f9f7028a', + externalId: undefined, + name: 'Products', + terms: { + coffee: { + codename: 'coffee', + id: '30453aab-633b-4e7c-b9b3-cda95163ad0f', + externalId: undefined, + name: 'Coffee', + terms: {}, + }, + brewers: { + codename: 'brewers', + id: 'c66be017-bacc-403f-9f98-8ead623d687e', + externalId: undefined, + name: 'Brewers', + terms: {}, + }, + accessories: { + codename: 'accessories', + id: 'baa49a0a-479a-4279-9fe0-f29393f330c5', + externalId: undefined, + name: 'Accessories', + terms: {}, + }, + grinders: { + codename: 'grinders', + id: '82b3f64d-a41f-4f78-a410-c6c0e095b3c7', + externalId: undefined, + name: 'Grinders', + terms: {}, + }, + }, + }, + cafes: { + codename: 'cafes', + id: '2ab0aad5-7609-4371-8d6e-cb4a917b2ad1', + externalId: undefined, + name: 'Cafes', + terms: { + north_america: { + codename: 'north_america', + id: 'f319b28e-c194-496a-b188-4f91cc010a67', + externalId: undefined, + name: 'North America', + terms: {}, + }, + europe: { + codename: 'europe', + id: 'bbac5542-33b5-40ad-a3a9-2f2d37a40ab3', + externalId: undefined, + name: 'Europe', + terms: {}, + }, + australia: { + codename: 'australia', + id: '405c6578-8233-4277-9826-6b5e74dc6f39', + externalId: undefined, + name: 'Australia', + terms: {}, + }, + }, + }, + articles: { + codename: 'articles', + id: '7ca9b56c-6379-46dc-ae90-3df4b9abd217', + externalId: undefined, + name: 'Articles', + terms: {}, + }, + offices: { + codename: 'offices', + id: '3f7bee52-08cc-4a12-8fe9-dbce05871ca0', + externalId: undefined, + name: 'Offices', + terms: {}, + }, + about_us: { + codename: 'about_us', + id: 'bbe0ed98-bc68-4f9b-85cb-73cb28078b3c', + externalId: undefined, + name: 'About us', + terms: {}, + }, + }, + }, + + /** + * Personas + */ + personas: { + codename: 'personas', + id: 'f30c7f72-e9ab-8832-2a57-62944a038809', + externalId: undefined, + name: 'Personas', + terms: { + coffee_expert: { + codename: 'coffee_expert', + id: '6693ca6e-79e0-57e4-000d-d23d5ce8f656', + externalId: undefined, + name: 'Coffee expert', + terms: { + barista: { + codename: 'barista', + id: '6a372f43-ccd7-e524-6308-c2094e7b6596', + externalId: undefined, + name: 'Barista', + terms: {}, + }, + cafe_owner: { + codename: 'cafe_owner', + id: 'cdf2f3c6-89e3-5df1-f7de-7179460bd6b4', + externalId: undefined, + name: 'Cafe owner', + terms: {}, + }, + }, + }, + coffee_enthusiast: { + codename: 'coffee_enthusiast', + id: 'ab2b73a3-473d-4232-0652-495598f5d670', + externalId: undefined, + name: 'Coffee enthusiast', + terms: { + coffee_lover: { + codename: 'coffee_lover', + id: '208a9095-1b92-10da-7627-75ae311935cf', + externalId: undefined, + name: 'Coffee lover', + terms: {}, + }, + coffee_blogger: { + codename: 'coffee_blogger', + id: '4fa27320-c363-3ebe-5ab5-b531300f053f', + externalId: undefined, + name: 'Coffee blogger', + terms: {}, + }, + }, + }, + }, + }, + + /** + * Manufacturer + */ + manufacturer: { + codename: 'manufacturer', + id: '4ce421e9-c403-eee8-fdc2-74f09392a749', + externalId: undefined, + name: 'Manufacturer', + terms: { + aerobie: { + codename: 'aerobie', + id: 'f04c8552-1b97-a49b-3944-79275622f471', + externalId: undefined, + name: 'Aerobie', + terms: {}, + }, + chemex: { + codename: 'chemex', + id: '16d27bf1-e0f4-8646-0e54-1b71efc6947f', + externalId: undefined, + name: 'Chemex', + terms: {}, + }, + espro: { + codename: 'espro', + id: 'b378225f-6dfc-e261-3848-dd030a6d7883', + externalId: undefined, + name: 'Espro', + terms: {}, + }, + hario: { + codename: 'hario', + id: '6fde9724-5b72-8bc9-6da0-4f0573a54532', + externalId: undefined, + name: 'Hario', + terms: {}, + }, + }, + }, +}; diff --git a/src/Models/project/webhooks.ts b/src/Models/project/webhooks.ts index 9f45fc8..0426b31 100644 --- a/src/Models/project/webhooks.ts +++ b/src/Models/project/webhooks.ts @@ -1,8 +1,8 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Project name: Sample Project - * Environment: Production - * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 - */ -export const webhooks = {}; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const webhooks = {}; diff --git a/src/Models/project/workflows.ts b/src/Models/project/workflows.ts index 9eff47b..7840a6d 100644 --- a/src/Models/project/workflows.ts +++ b/src/Models/project/workflows.ts @@ -1,19 +1,19 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Project name: Sample Project - * Environment: Production - * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 - */ -export const workflows = { - /** - * Default - * Archived step Id: 7a535a69-ad34-47f8-806a-def1fdf4d391 - * Published step Id: b4363ccd-8f21-45fd-a840-5843d7b7f008 - */ - default: { - codename: 'default', - id: '00000000-0000-0000-0000-000000000000', - name: 'Default', - }, -}; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Project name: Sample Project + * Environment: Production + * Project Id: 159e78b3-53be-00bf-4a39-4f5211f2ace4 + */ +export const workflows = { + /** + * Default + * Archived step Id: 7a535a69-ad34-47f8-806a-def1fdf4d391 + * Published step Id: b4363ccd-8f21-45fd-a840-5843d7b7f008 + */ + default: { + codename: 'default', + id: '00000000-0000-0000-0000-000000000000', + name: 'Default', + }, +}; diff --git a/src/Models/taxonomies/index.ts b/src/Models/taxonomies/index.ts index 4a62747..391202c 100644 --- a/src/Models/taxonomies/index.ts +++ b/src/Models/taxonomies/index.ts @@ -1,5 +1,5 @@ -export * from './processing'; -export * from './product_status'; -export * from './sitemap_538125f'; -export * from './personas'; -export * from './manufacturer'; +export * from './processing'; +export * from './product_status'; +export * from './sitemap_538125f'; +export * from './personas'; +export * from './manufacturer'; diff --git a/src/Models/taxonomies/manufacturer.ts b/src/Models/taxonomies/manufacturer.ts index 81a90b1..49d4550 100644 --- a/src/Models/taxonomies/manufacturer.ts +++ b/src/Models/taxonomies/manufacturer.ts @@ -1,8 +1,8 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Manufacturer - * Id: 4ce421e9-c403-eee8-fdc2-74f09392a749 - * Codename: manufacturer - */ -export type Manufacturer = 'aerobie' | 'chemex' | 'espro' | 'hario'; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Manufacturer + * Id: 4ce421e9-c403-eee8-fdc2-74f09392a749 + * Codename: manufacturer + */ +export type Manufacturer = 'aerobie' | 'chemex' | 'espro' | 'hario'; diff --git a/src/Models/taxonomies/personas.ts b/src/Models/taxonomies/personas.ts index 593ae84..1e79664 100644 --- a/src/Models/taxonomies/personas.ts +++ b/src/Models/taxonomies/personas.ts @@ -1,14 +1,14 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Personas - * Id: f30c7f72-e9ab-8832-2a57-62944a038809 - * Codename: personas - */ -export type Personas = - | 'coffee_expert' - | 'barista' - | 'cafe_owner' - | 'coffee_enthusiast' - | 'coffee_lover' - | 'coffee_blogger'; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Personas + * Id: f30c7f72-e9ab-8832-2a57-62944a038809 + * Codename: personas + */ +export type Personas = + | 'coffee_expert' + | 'barista' + | 'cafe_owner' + | 'coffee_enthusiast' + | 'coffee_lover' + | 'coffee_blogger'; diff --git a/src/Models/taxonomies/processing.ts b/src/Models/taxonomies/processing.ts index e145cd7..992ca56 100644 --- a/src/Models/taxonomies/processing.ts +++ b/src/Models/taxonomies/processing.ts @@ -1,8 +1,8 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Processing - * Id: d351400e-0290-87b2-1413-6c411d8ae5a4 - * Codename: processing - */ -export type Processing = 'wet__washed_' | 'dry__natural_' | 'semi_dry'; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Processing + * Id: d351400e-0290-87b2-1413-6c411d8ae5a4 + * Codename: processing + */ +export type Processing = 'wet__washed_' | 'dry__natural_' | 'semi_dry'; diff --git a/src/Models/taxonomies/product_status.ts b/src/Models/taxonomies/product_status.ts index cedaacc..15fbef0 100644 --- a/src/Models/taxonomies/product_status.ts +++ b/src/Models/taxonomies/product_status.ts @@ -1,8 +1,8 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Product status - * Id: 79b1c5b6-30bc-d076-a236-d9ec9f1ff01b - * Codename: product_status - */ -export type ProductStatus = 'on_sale' | 'bestseller'; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Product status + * Id: 79b1c5b6-30bc-d076-a236-d9ec9f1ff01b + * Codename: product_status + */ +export type ProductStatus = 'on_sale' | 'bestseller'; diff --git a/src/Models/taxonomies/sitemap_538125f.ts b/src/Models/taxonomies/sitemap_538125f.ts index 5a09669..7a6447d 100644 --- a/src/Models/taxonomies/sitemap_538125f.ts +++ b/src/Models/taxonomies/sitemap_538125f.ts @@ -1,21 +1,21 @@ -/** - * Generated by '@kontent-ai/model-generator@5.2.0' - * - * Sitemap - * Id: 538125ff-c59c-4193-88ce-71a7016830ed - * Codename: sitemap_538125f - */ -export type Sitemap = - | 'home' - | 'products' - | 'coffee' - | 'brewers' - | 'accessories' - | 'grinders' - | 'cafes' - | 'north_america' - | 'europe' - | 'australia' - | 'articles' - | 'offices' - | 'about_us'; +/** + * Generated by '@kontent-ai/model-generator@5.2.0' + * + * Sitemap + * Id: 538125ff-c59c-4193-88ce-71a7016830ed + * Codename: sitemap_538125f + */ +export type Sitemap = + | 'home' + | 'products' + | 'coffee' + | 'brewers' + | 'accessories' + | 'grinders' + | 'cafes' + | 'north_america' + | 'europe' + | 'australia' + | 'articles' + | 'offices' + | 'about_us'; From b40aace5bcbb0534686583402706abc60d85c288 Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Mon, 22 Aug 2022 13:16:42 +0200 Subject: [PATCH 10/16] Change font, logo and colors --- src/Fonts/SourceSansPro-Bold.woff | Bin 17264 -> 0 bytes src/Fonts/SourceSansPro-Light.woff | Bin 17540 -> 0 bytes src/Fonts/SourceSansPro-Regular.woff | Bin 17500 -> 0 bytes src/Fonts/WorkSans-Bold.woff2 | Bin 0 -> 76284 bytes src/Fonts/WorkSans-Medium.woff2 | Bin 0 -> 76900 bytes src/Fonts/WorkSans-Regular.woff2 | Bin 0 -> 71988 bytes src/Images/Admin/kk-logo.svg | 2 +- src/Pages/Admin/Configuration.css | 22 +++++---------- src/index.css | 40 +++++++++++++-------------- src/index.tsx | 4 ++- 10 files changed, 31 insertions(+), 37 deletions(-) delete mode 100644 src/Fonts/SourceSansPro-Bold.woff delete mode 100644 src/Fonts/SourceSansPro-Light.woff delete mode 100644 src/Fonts/SourceSansPro-Regular.woff create mode 100644 src/Fonts/WorkSans-Bold.woff2 create mode 100644 src/Fonts/WorkSans-Medium.woff2 create mode 100644 src/Fonts/WorkSans-Regular.woff2 diff --git a/src/Fonts/SourceSansPro-Bold.woff b/src/Fonts/SourceSansPro-Bold.woff deleted file mode 100644 index 600751c89b89700c3bfb27c295f35047dcf2086d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17264 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 `er~`dhK1MRlu! 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

DtJ5P+XjRFU~9q*3zaEp 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 diff --git a/src/Fonts/SourceSansPro-Light.woff b/src/Fonts/SourceSansPro-Light.woff deleted file mode 100644 index fb26ef3bb6ceb7f75748fe4cd8a439a5ed9dadd0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17540 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 NumKye09mjBjsTTdxt;a=Mc) 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 diff --git a/src/Fonts/WorkSans-Bold.woff2 b/src/Fonts/WorkSans-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8033cd39603aa196f1b66ebe06a8410ab00cdc50 GIT binary patch literal 76284 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 z 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 literal 0 HcmV?d00001 diff --git a/src/Fonts/WorkSans-Medium.woff2 b/src/Fonts/WorkSans-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ec1b3435da4fbe2eab1719450308d4344947675a GIT binary patch literal 76900 zcmaHS1yo#JvM%oK?jGC;?oM!bcY&erbKF%Dql>TM_05* z@61KCp=mxr}=q?L9c2v2s|5L zAxPA3YI2WW{`0tr?Y*>W<~)6JMfbQ%2g)7D!9kRxPsUU~HvV9vB55V=2+5gIan+b6`IS~lVvu7lsqG|l0iIFp z3nq@xzIf1}pXNuIdy!}&|9Ya{FziT?wkn6*$o=o#AsntfRXIB;L=G7P?<2ObD?=v$13p3E1Fm|a`eL?@x)N({>aL;!mS_^ z&NAmkA*7z7MIX%QFW8dHjfzJgiMMy8?RcF#2pV9Cs^>>k%qeG z@0H|$38>BGnBc>q@*fzqZ*sHyk{3H47Gqa$1A}&fG=8?RM4c+a*?_w#h`9iPBu&Ze zMp~J`^bx4Gj)CyX#xp;z!Gi-Q7qws`LtV5jIqa4@k|2^?u&MF@*lmK&fjcM5l5pp@=v)8U;OU8xW3rF|j2EnebQ`Epulbw1o zJ?iDlDYFtn+yFWZe}x(MY29@AE`Ch$Qj}S$9EIJAdnk_=F{jloWV+UC2sXcTrwT2> zE3K3V)MhyJN~YVADE{a%Vg6DgSUBn^*wANgX$6y%e6Ywy|5BKGuslAf6YSEl%=m#i z>Nb%~+JXfq;+b`DBA|ISsVbnHa-?0y_QJcpLpa}huDPC(u?hHk%sj^&?V!=}V7g#% zXpPz6jx+a0o!peBCJD*8&~$r&c8$4H8cMcbyJeP(wRf72~RQlgK9 z1P=p2Mg@^`ItDIhcw^#dPGbI9K!G>0AYFh=2Lr~}9~@N?F1g@vqAsq}Z7M23Gxi>? zTm|`xO?sYE(%B!G5K{ayWCBYH)oS7wF^<249Jl2o*`OyTvbHBj9Mc!0H53+>674Yb zC>xq(v8S*b?Z9W0t)y&Z#fl6eA@@snp!Tsfdxy`o8qbxKk-B{3LL}KM=H}{Uhg}&t z^Nsy0Rd$)fW=a8m6x;|WS^(uK>&-u#09Z~>_@>90i~MWy4BHB5`OtAIbeGjQt8Ix2 zXiSHp zkXcFWwa+^?w%>HyhJPP|EP$jh1`HCHOQVfgq~Gk?%T}4ph+0``1F?HFnQxR&BHOcY z+=9QOpjtGf>9UIRaBjS&a4TvqZaPV3MTja%`KU6?+NBkGdEvx)POr_{AVn9<)OuMY3JHS)EKh_kgdrDq0vqPD zKqV#vQGo>*i+m0Zy{<@3E32N~c`Fdw!4H-7*P7&AKla57tj~o@f&8dpJ^wobzBIM@{lBq7i8#Y&&!HR`6$Qj%IyjpfT>WZviVRQa50_%%wPwN?-C-^ zR{)?Ha|9;s78YbH^qKT|a;hGBsAwX3dIoPlQCaO(=Tzrlp!2>>c=p|Gd`;QR zvk8wf4yR08pjuzfH=qT)hsSGtx~CF0Xs~q;HLSTC;3FrR0;J=5Y}`?~h?R=%gwb6T z1{ynQr$3Y#urCtwfeTM2qK145!F2v|fGGvC^MHe;>r+k_M=k9s5`;UByI&^p;+M?+ z3%cv&X!8Mv9ypiOH%$*d8xY(wN-CCSxc(bS-L!eh_DKx?Bk#9IvM<1Og8=7y#RSn6 zq{%uX+LgUV1_lP8F1&r?Tjav@r7A{LilVU*X?A5H;rcCy!B;3;E(iVUd)Ny>>kJy7 zX{?a%iO?nk95Am(qovc5>0bPma7ne6Kd$8i(vAaP)IQQ{A0cnUtL&l9DWF$G)j_It8QrY2g3^I%bB%wZWf8XIl&+K$@lWub~<(x zw?O~MS_lZv-opT`8VtNre5G@$1^l?=22O$PD+E^$28KQCY4h|G6#GgfoQfZm0ZFE6 zqvtaG@=D@#q1bD+ef(0OvaKf!ubAUQ0aMjaaRCTIs!hlg5aQdzFu#ATvL zA22|Kk(U7GgbIm=3qi0CIdB=n%OYt%mz; zTb=WBmcy@WV`e0cfqElMA`LL8CYl79nTgo&S=(fygF73 zKF|jY2}!Y?@o?eKK^mfO2jYYvyXc29u_Hf_lz__bGN&sPNBnISC_Jv%5pm^keXrCn zF1zf>#*I{M;ubNcB^dNk!nU$Td%Q~ojX4&8Fc$$SZR5!vFX(5+S2CxQ#|r8ba%d|` zbfqq+@ahsgTE0N&V}&kO3%}TxN8u;o@(Qesrs?AbyZg4SdUO(JW8TdOvzQs0#f+Ym z@qBYM_Ib9X^O<%YAqdO)leF#ABta=AWILT|>0TnTQ@qFh9Ljwvs~d5hd;YA+g%z6R zj0~QZf@Mlpl@o@9GE#Vvgq58OMGAtk7oE}@t5x9`eV^Dzz!KmB8ADO?+^g=)!5qQV zXoK}OHLQep~vF+3F6Y=BrNh4>@o121Z4`3Lg(6W)HSPr9;1 zB`1~B_0%t!_px4LIh+qchA+v=HKF2hGsu$%MKfEyj1>Y<554L0qsH8egK5imFO{Vg zr_WL3J}8E1)>;M<*sO(81=h&HQI($%Tyo7YE8-=OvzcWx9g+)OBw7om>l1iPh8c}V zzg4XJENG0}w6Hf~uUBlNnER8co_oEdEFK?Arl7c^3R(-KCp<u7qrij4HmLMGK>)&;04xM?kDU*!DZ| ziB)s4Cd$~htWaLNa|at5XCw#Jr=Oe$-+ew0vxoH9WtFra!$p2y_bQ4G-2o6l%8*B& zJY4o|&$gvUvcBH=>n4VMq+?eS@cBy(wQ5cvoaFgs0MMF0l zT$~>{8nngWT4I4o$?sJ<92EMS>HRwQyBpz=isAO4Vc=JnF1BifS};z2nv$36rsXBJ zU3`oXGbGu&Z$%&p;qxiJym?kUfl|IuKPtL{JMt|+lwlwgDe$-Ox;5v1tn&aDa#Cqn z=)OQf00My!?TSI@lCyAs!Gq6Em549JrjA^M{h=Eu43UN5pS$N5^tpXzmh{*)1wo3~ z7oiUWS&E);3wIG_T-zl@siqV@vFnbtjH&?Pbl(Ri2U5`3i46o1 zF(#KHA0a09bofi#Se8_I6b{bmJf(_PJtu|_g|vvbggesFsE14Xy%HDXFU2o7t-K5n z#NqU>ZzKRQ^TLsSbGG|S8^J-crCGZ{7Byc|k^nLVW$x)?Ciqp^GdNX|Vlv~8%C-Ad zn}L#-i|S^*NqFQ0!fIKxYHUCHmMLC&>+eW06=Kd|(WLx*RTGTysFcD@G)ffCNs%Ah zrIy6E*GEl1o|I(@aW8%?9=j$yxn#+GW?aovV?;IWw`5#sxS?67oQ39*N)2MafM*r} z`3@NjG=$Lo+*V&#X`ppTMs#y%1zbCv8n$_cBkSpZTS<%q=a|sz?RO7<45n06l*Zi@;~5orw?%;49%w>o%uwd#J$%AZZdsZVY^?HlLk`*&t!5e#_reo>8s9s*AN9|swvxJW!4 zdak9PeCeik(m>!JF^#_jQg7V5>F_M{->Td=NmKTx0Nu@n@Cy05c|k=7*JRrNf}*gX z+@-B$7`V^BTq1?hQ@=`1>N#AQcG*80PbBzcC?#Y{U0=;Njg8jc4#N%geFZMe-V~?! zB%wI_F!k|4M<_GrWTYP$W=*9s!W;VMC_I1oU6}%2h3rcRxE>(Bh^zsQAtmerZ909t zQU*-L^+%Fld*g{6+lMpS6>ix}8|W)b4}$v^FwYjr8L94bxKy5&MT93j3j?6bhB`;| ztBMWQ_>e`VQ=Z#Rbki=8oq&vVyt-z0&c;jpzI9KK2dn#nW-a+3eloeu8fhr~hNRW@pH!eO~I*PVAaKP^JQfls5*qdp}h zC3H)ZIf_Xlrb%QqnsC_y>}HM8A{cJvk&^5>To|OEDU5U^6{Ws#ba%Aj3u9` zk(TEml^)0AG!fKICU1a{PZ5&SWqpZOtn2Kp>fMlU2BKxZ?Z;rs zee57n$ln@v;S#aba|xJ@^k?z%1SU~nOmT{9CQs8lXTF!;rTIKzBh%9J5><#X3w%cj zF@GkSo40Nr!eCo|rP{0=HP4r5<$xt`s)+h!Q=MRmME9fuPWkzeC;Uaj|9Su_9sUuT zZl4?b!?VeS67wo))6s5$%N(7=wLUq`P2cDcjiga;h-7kYr&jbjwOYi^kU?3o zN22HlQ(=YxX%v-+K~)wFHK(>hD$^3B8O6L3Nv)qtbvt!Vd7#J3M}w>vA^(el73iSQHtLQ1p@1*6@?V8K!B`@hA4@KY?6f- z`pScq%V2-*E4&D^#HO@BMkP3crszDR*YCHffK-j#DNfNOPNO=lf&s-xC`*9?ChXUh z13`fl3fJqcFHn^|CyPS?6$;(!w;>3b?JrA2!4MB30Y%zf;4P^nB`u{TB`BpJB`KvL zCG+x0-pnXLMQ%G!AOei$;}r(IewT+Mu~2o`0_kzJlW4(q<`@J*tRFjEE@^=}8pnZkYORd1}}-ajvrv?nn;2NSloDbO`b) zIH>PFs=QrM7n~12(c99X!P#wbD8@AHA+_M6uyMz+2?CKxa!rZ-de!V}+|g;VPNTAO4<1DOr!xbg}h8ws?T2SK`sLf$>8F z)Yn?7uT{o%1$NB&;x-bZj#B-O0^}^^m>H91853$F%^c)*yGyRlomviqMk<<)Bdv$l zs%KGY)=kHeEhkN0fF$Fz^kLYB#~WH)$yF>T{ksD*XocBFgeS-c6?E+~BK z7HXwy4NnE#3(r=IM;87)BpQ8{?K$Lni1?t2Hvv5elpk?41vA+2xi7_FXz6~S8OLWy zjt=OSM#+}e4=v3Wn!8|ZO}$nppOf5|b^+mCdkp?un$ES?V&yE+xpkMgFxfcpRk7#@ zprNfRps_LfT2?g*mS$NcoeHC7w?!$NFO&ksc~srcqhvlUC}1|8FPsKPgrwy*a3zO9 zZ|ENy80ixNs=N6EcjH_SkO(D5-vGv$qSJ_rBNf>2GXem@N0{Vqy7s}{IO`Ps?4IOy zj4Az)Y^{a?Sw|4D$T@bTv8qVoq;Z;1lm)TsbtRG{Cdks!4 zfs)jZ4k4@`!i-6$I1p5DpG+kqttF@+`QQ;r&kXEPYp{>S4HPmtI7$oj<{P>vXN%+QvGWB$%M*k(dce-@XaE(8jgC=6*P zK>pWk%*0I}0*UHe^JYDDR-rlDph^3afOe!aRESQ9&~*^;37EebC$i(L>=cToCxD4A z@5A~tV90*z>*8Ky_r9G1bGKdV>qV+(y0HNKbwPSR`%WKRf#nSjMX|h{F&+mslQHgp ziCvg{$@N}{>JILY8k2@VgfugX{#V7I2fOI#;wPe!2q9ql@UX3A&*L9YuPJ0Jr%kjA ze{O<-48YHTB@^uc7T3EYtBI#WfD%GFX&6qKUn>3{Pxq|Ly=;f;E7%)BE0NN0X{nJP zG}Pr~m$+x$pE~MS8@OUQa6B5<&soJi9#6p=D~o8OC55B}Bt&HR#f7B>ziRvSJ@N6_ z02v|pBBFFd#^%0822?HG^58!e$4!d}i}^fvrRY1D{<(4xx%5QqSTnBp}dgqf&=_Rc?Q>?$c) zkz9!e9j5k3v~!{;WM9Dm4nZm+1mV~Ov(XNu6Z6-BxL1QFPs`A0PMqj`M;5i}fNS_7 zy`yE)n%3K%u|sqFrS?W!^S0Gy2D_4&oGyaTlLGd`b^HR1><6Pr1;?p0l@EloNId0w ztlqN15awHMz&)RRg;1;vRU^@b#FeL+p_KT^^Y7rI|00f7rR1?Pnn;Ix*s~1B<@2z zRh_ZABknIa3~A%A8DnSmTlA{0wP`IuMM+sNPdYp2oW*k23<3sIVG|WPw&JlQ;;(KF z#&0)=P(0SZ==I?>IKcP<5CU2Jpr#y44tBUQS&h*;;Aa2;Z*YJgm;g&}uF&g~tx=F* zfb8!CAg_;&z+y=t-+v7N;7=kB^#1V2?_ZDrcn25*>j|X%KvhC+?li6QR)7Hb{>1Tm z76u@eB&65X$Q&KZSr=Y^b&nz=T{%T2$djWLa$~C_ow_QlBrNAnMWuWu^EO-{SLF%$<(E9h-{!9#_R2d z+1)!9AL6a?-bAmdaXXzui}A_7Zfq`u*L+cwW|JBYgy6K+zMTd7U6=s*Nl`|=;m`%g zN>#{~PGgnJ*wCl`Kzqxn6FMN3>5=8`so}AE=u1pLYcK*Zd5E_brlG2?wrKcuW)$x| z>2NanNMa}zvEB>ipFJ&~;sI4CunhKoJw_GG+ne+2%Z7Pe85QQCx3`mLRIGO!2l&0C z@?XCXMhNeTe;ng2&gAFoKyqjuC%ak^ilpFV|M>89Ado;lz0W0JF59Q|L|Chho0$Bj!E6KlfVQm9p9|Kc58C4buLf16kj+*O4GqGStrj4U z#sD4C2`FDLkXaweb1_th-EgwxezrGQgARc3_7h}t z*RkK}3goRK(vM;=wJ?3# z>I0>lwng81bSqJY?v6C3m7T_XyG`esard_^dF{adlHbdGe)1c>1S8_L@JOEZf@r zcsO$Y&L4#1MB<5e%M1U4opv{9C^065xj?0oV~40{7d66#Vzh)Pj_)8T%~8DIIkK8>v~DUt~FVe0Ya)mj``mqiEQy&`g%nS z=Zz4ajlus`QC^_}W0OFMyhZI>j{j~ct~IwAbOUtfI!`;!UM_;3w>ZaZv&(u>e7WNo z)Nr2&Vh2#DB1Uzq=WuAF=nz7CkV>R@a#v)2LG#RsMegEyKjcCWb|tlaM@OK5i43OX zFnaqg^4HTnWC)I^|GSD+bo6r&7#*cs;j?z(+OiGQd3@ozv1MfIEI(gnipPQ|%51%u zJRCO1!zn|fq)FAGUZ07z1YKR~&PG@fP}h;5RScI4eGcee?;%6f7We4njT=T%Amnb% zn!4bZ_hcNPq$nviGu_|A#2_Yt^xOd&V%>J)F~k$kFPuwLh5!(t_tj_r9f|RK;28P` zIMMGITE#Eq2{{COpgyH&{hnNYccnD+Rq+-K{wwK&h;$m@LNTfu-NCZ;-QSPq7Yo0k zMYnzWV8dD~cw+d#FSb992Ih@InXME~&ucH{Do2b>EGLX2%c+s=9fX)|xxGB_lVA3c z7g9Sr+~>e?yc1Ro=lJJ(zUa3G)cRww`8sl3Jh~SriqKp$X`ORp$7c22IwR9y+wzOj zPOm4hAn7(cKjuC(OZ5zA{UFL()n{|%fre5xzEOlqqxtfna0{KSHSVVT+E~Ed~tv7NVW;Y3JQ)W1`SK3)~GTcX@*U! zw_L2U7&~`5IUWMbOcz7eq3qyRF@vS=Z4MT@D(#7EqvbtkWvc;s*r(zj@UA>N?yuy1 zCVFFqVcp2Dz$%1K$E)e4WB(wEG=#nWUC+s?`!I1;IBG z;+~ZkKJXVS*I!Qnqqq{hb8m~IT=eMoj`yD}v$BN&@EyU8l2s#x8o#5-e<6#%_|2Zh z$^Q22>f$mQoWjb=B#Hv^|4&RxAs$g&v+kGB+v963drRxAo=gdLzQ65aj8G;YF_kxz z2>gb3W*oX}ErY*pj_S+-Y?~D_c%D=12e%L5^Oln+Ns-w>Nl=+%seg0>>l3XtgH9IU zqDDQ1R3>At;ZkOGLIJ(mc=8h?G}bdWKO>4G7ovec7er%I^)MW%jL-?y2@1@N%cqCu zN|55EM}^5*g510EaIlGrBIocSVAF4MU9(L;g;{Oy=sWm~{;{m1jYHeHW9)2hPNzsp z#>1CkRG^C}S3X}NuD$+MLr~D?)jHf{QtrdO{OK5E6&mfS?JZz?w>5}Lx1VlARFs{c zTbNUjXQCU9z}bkvdlzXMQlG1M0)4$W1=5^#V*2%AW|kFt1^`G%t9W>#(BxDXE00{? z6fX+Ed6l9`jxna3dj@hJg-7`ZfxyDhms*km_lsG1*Surb8fF{V{bPUUg4?sUv1}lT zVC3#%4Au5wJU7x}-QGU)5FP(&UWq6|m=C4F6wn3sgd&Jm(3URd3{KP2BlcAx#HNZn zeD(Nl&3ekQSFkX{rNpc*w$;-zlu{lH)%TgX>?UggV(S#2g++~1o$nzBhzeB^a z+GsaeEEY4gDfzQwn-N;nc^L@Pfs1UeHD7C!{E^s9`3vGNrq5jhtavKaBl=0g6_85^ zk+Op9VJDK}xx*n_n5Sc;*3B_A%nLiSMu8u7WS`=89_oQk)%Vgu^K7{mvR{`7#D}+d zxTdq=c~K+F;*yS}`Phu~nw4BvexhM7*aq4%EBMu9oYp9PSG0si#Wwol;>Xpc|?262jd8`F|c zTt<>MUw*pUsLwMOEth^#DCS*A86ep@wZkk6a5#p7N=SpW;Rs2nHgjYntk)MKB;%-541XdRM$cp>%LnY z@ZFZml{KVAWPqf^d;`7LWJg!On#z&ITgEFSG=Z&uxLUk8E~bhEl9Nd$@V_*)QRNfBI70aLj2XfdFgF4 zWKQ3Xdm1W_*vU5aj5%5-?{NKJPXSGUo#0r_Kqz$E?2EbdI#XYUp8zTO_C@RP2K#Q| zFjT>qg{nvkTP z(m%h#VkpG2({+!eIeJ!5l~hg(mV^ILwIctKg(OYZW^=^=s7d84P3~;@qk(vZ;7auE zPmy-ylam#NOP}KF=zpuq^z{&wik#HI&lskxkVL#M_2ZlfW~>G(cIX${Ep}cjuJqHN zj&2YqnZ!8;{|5?Va){M)S{C{oBR+VHdsYN^Uq}kH-cm(nla749x%3n5Y_Dd$p*J-O~tX&9X5oJ*F_}cVmCr>6{ zk)>TX*v_2c$Y3uFe7|{pw)B|-tNBkc+0`m04SuVT$(8Y{!u5X>-qbneSi-)AJYl5i zBv^_vpBJ~-&Mqd$IdBGzay!0~y$O$2sXTlPbmyzfGwM3)j|g3Etv+ovb1Xg->+TQ-p5s^`tEt8d2EV?ibj%ir)U{~D+hed^atB@yNB zk?!GsIsyvCzR~a>EqL?V3Drm};)cnl#m=Dc@F^kNk)_3LpIN_?ef(OGuX{DP?6$Aro+n;NVCWITs9p%I|vnIqg#1Nm2W zSwKFz=>$eHKMlvoBlOn;fK27kwx|y+e?^4SOF&q5&Rf-uIB_2Rpv7o8uA1d}!2LW< z7=&v(&Cs9md6Kdy!}ce~uGZ%XQUK65tO`h26Wc-O(im8gFO zHAieSN4G!UMpR}H^8ZwXKJjj%LZeJBQX{>UbrPoEZo{iobIj&@Y|rTqf)oHZ^;^FI-|6=1*UR>IDt_LyG{jkO^d`p%b4&#q6g0z#k#`oH*l zaP*S>f()8CY*kAo{~E)p?I${#_5f}S0^8Wssk4$7n=MHnw~uz{T{ zEJJN6W?W67URHc)fl&dq-|;klH%3WQ<6zG3(uE5zs(Gf`(g9^l`5`9tRVZg5+7JV)w9FgVaw&1(~fE0T}<=}r!qTjNsC%_vSs#<3z z`jGSAQ$C1Eg`3S8{u3SVSVunRjJk8st0^I1@Qt0zM~q0JnE9jMpuT-0S34gCl4L$( z6BQ6oz={daZ2%o9%`17a(%{8{fPwMpT7v-m=lcsE_Z~iT0*(6q6E?J)aNpWIzkueJ z=L>tQ&~{%;Ci0Xjvb^`?-$Il@PF&ZKpe|w!^xkkj)lLb$Gixxm1D}oeD*y@3jrikE zr1qVm$P2v7`JN%P5{8lmQcX|^r3$?GpRkQ_|L$S5_AH&H_Z=QIwLK~b3lEU{W?;ha zN0#HY{QB>DC;H59#af22*#8ff`3H%$(1#O*hI&5&!vI0}(1G4UftINJlXbqd?*AsS z`l5h@yVLhY`a7(ogyN0Ue&NuJRzlwv>cl{~=av%dR* zfk@H>jQ_N7E@gQfoZXO&ph3dg%N~YcO1+H*DnDXW_lGokL;`24rUYG3 zMOV_UW`(cJLt#vjB8wX|{Cl_D1&9d; zFJ{Zd88gtF*4cO8U)mbE&)pD4wnwBfTPaV5vS8P@7xQr-XM4&5Q>P66TObh}ail~V z&d*ik+QgPH7&mS;sLeR=%#K!n6&pQc5HDq+melyRF;uzK(6%DWq!VKu6;F8+zRmku zRL`(39)D9Xf2~e^y0!oio$sdg1f~>PTKAvrk?^mT%Dlo`G^$b1`{utie&b}sM;U7^Mg&m(|t2T%b5SLk$=(ZaI%_S^BT_d zhcK;N(07UJH!l9Pn-S2BA}ojU)045mdtG?md%^`~7+Al$p z8_`aSL%%L`oFL}E*14@hm!R{V1tSFilZ89$j5l(VnyHA3;P)kVX(kBIxx<62KxH!T zo2@J^slG0#rr7IZ26es3A=ZCbx^lgnD)66A_%52LU8>dxBs6J?CDil3@+zrt)>R0~a>$mU&NHu^a87Xg)+%>Q2HB=NCD&a0#KIg2UJki2pOn<-<>xLQl% zG?E4r^284d6&+euW*h90oA0+IzVxVb2JNJzTavYMG&8Of9se!GQq{Es+BywPiEr#= zSSX1oa;wRfVUuAI;~T~5AjrefzIC0pqm+{TN@Oh4EX;Maw;WlK!4;Y9oh-Dk_RZ_z z1wPe7O{PxH*-qI7nEh|r<6UyT)>3_q)PB&|Cc zZ^qPq=)SVT3TL37*zap-#OsOC2ZZp?k}Vx5vwn+Ch;?r5qcnr?>Sey$Y#?t7lZ-(w z7NW@fZao5bMJVlL9K^yRI%$rz(n*xGYUAUM~jxGab zVPyAKjAPzB*bR;F+SM3_2c_R->p#uo_XgeWmv*=+c~VoFHH_Y#o|UD;{!~g@CHZDk z{-@?byMzV?VEP_(007n2M~xm^9nClErZ%fVM#5eD2>j1E0B0_WI^C{~WHr?~v;O`n zj;1$~3-Pk9e~`r^ai`$1UK<COQww`yT-5_CV((BMuyD6=#O) z!(`FOgx!D2?W?AAKoI;YMd|)tQv=b#UD>sG0paw}nNnn1<*UB&y7CiOZnL5VK;1FD z7H`|!<>PK{u$zfvFXviT<0XG_g;%46%xpe%MoqyvueuJvs$nRcp@NTe>|u!A9Pwu^ zyU`;LkQ#E;$IRQh3F*CH`wTtcO<=onh|r18zWMJtz46DyCj+L)_wPp2u&P;x<1|8f zH_(=zb@oF{5P{hLPk_f}*z>1M(cV7q^MeciHtebX6^BbZzVC1Y}r%ytq2C_H%`I-HcO%fMaiHW zR$f1E9h5Pd_U@9TS+#Hkx69VUm`O$P>d5oOlKd$IuZDVT%G=S@ z($XSH{T~xkub-{%Zhu36y{jG;!1-JF0((uJ{Yh8Bhgs{TX8Y5SqD>d>La3RM~=a9?p<;U9o&^fid({iCmgl)M=Z$gsoV z2+98*`N(hs{;e`?XDwnn5jY7r*+%qtP84@wA1ZqVvY17}puq3?1XZmzX3%P_Y zVO_^Gij5R+((5wMSn#SL&sD!zgN1eWA8%k1e>#B<>O$VR@Iw$9;@!Nr5H)^sjsauB zZ>Xu8r?|gYHaV1!wyIK3{Lz>a&O@@JkhFR_Nd@h1hf1YX($qHF%sdO6;<#T2cyoJ*Dy z!BgUfvi|VKhr2m@SVR6g|kGgtDxhKxOCtg#d%Ws2@&GLt*BYpHD~%y_XbN9b^be*yJvMJm0#& zN!P^GH`+tm;MyIT&^v4kg(5m>t>py-Iy<7{c9icy`fPm)D$lLk^fijp{PrKbLpX)gDObptjd5oN$}4A zO?_&nayT+3|9?s{qtr;ToV=vy*mnq^v6kXQ42@DL*J80tJ0>87bq{s(bjVKy@{uWu zRQCqX(8a^t+XZ(-X_ZgA72W`$yt8q}xVO|Qi3#;>jc3uWKMP!uOQ1n|P1*S;-|(`a z?VnK}P6ruBM!Y(SA~HuG`QJM>+4;GkM`kG&9=s$Vfz@_8nm(rV&-!Xd*~|h_Nx>k)5ISa}w#*92jRT z7@BJ8(F&+5^6c(`Qy7T(bT-PDLsrYOKBXeRn&nsc$1wwz)39QmsK@NA8Z(U{^h`_N z%oJNJvFeT@x6p3QAcD#xKF>WY{?K3PqS=WpZJri*x3hSPrug>`_OYqAG(doS_y`an z{FU@l9cK7`2hIxtUCZ+WnZxJHvx{?R2&i6dGn1|zDKswmlIkD>u`mublWsOuMF3xY z=5&Jnw+XtOe{tS`JO0urd=KDFsl_EcTr91tt6{z`#H4=?RQbG#o|XKG)Pg#IKQ6@^ z?k_%*w7$yZ1mpI!<9UUR+5KD#^A)Iu>*T0}1dK7V7OGB`L@^ zGTh!mMM;QPQkiN_!3+vwxpD>~^(+;w)vT*1RiwqBB}8K((`r0@q=Y7|;+V5f(=t6#cDe*v z)~y@n8{gyr(;8F}2)D!%9U(DPv7jG_^h{aGt%mQHvHBrVwZl0sFkqlwJXk`g3_0Bf zELc>U`*WQ5G;45Rh-c;t7e9_L%IcUJ$l^zDq~qBdZI9XHULW0CS(^~yqoJ@bykN~I zX#^G3y%^mS#;1i^VlQr9XwU}`{2ndjLpCj2$mJwoQ*F&QzMYU^B!yy+*ltK)%0%{@j_ z-fVd9mehuzz;*Hk(XsGT~M}Ga6C=wZLzomZ>YPfbnO;zJO$sWt04XaoQ^=@N&v5$3MN7nM%K{X zQg!_7^>5)H87^>^K!Y}{jB6d^%55YN2dt0l^3%N!IUJ5;p-t(E{aWI4JZ_8*h|_A; zkF4rptHJZ2^-DCYZf$PoaCI5)Tr1T&ZRFsNZJHt0&Ku1DKVY^5w44Pb#8tR-e^{4~ z7_ZDH2ilX_4I0`t@Jd#qt%Y^&!OpQ%|9GU@Za2)Ph3SgR>RpPZ#63loYF9wL8KO16 zizvfhTYtgx5O4!GrHR&-QZWjw-b>megOM!kqbMiE z%;cC}e8e`lflWyVtoL?eKP1KuLo|L7Tbm=1rL-wpy~%B8{?k(IrCTy&9f#j}Fk9<) zk5$PZ?y091%cGF9;x9kj7w9xDvLH>Eb`?+RXYo~yLqwzEAgu=ffTc8w!@W23(2 z;?`J$(k`u6+cu-7`lVKgymzv20kv(eSgeb19N7NKAVafSu$Z%M7$B0eQ7ebhE<6z>WRPCC<@R99pt4 z<(`4QRrlq#9W=wPdw2=vlfUJvQZ;zNXpcJ~`C?@ZJ#gQ*hZ?#G?}G=oThY4{QyC!M zlPkg92L(LsZQk z>NE*VbYtrjPgzs@NqtSOGpRQ)(-u9#(%1qI(rX_u>Siw$3J?AT?W|+X_k4=bWInp= zQpPl6K-SdPsvCCP7+B}C0NrN_CL2@tlpD7Ko*dhG_s*vdn*=6H&C^yvwtj`$;nlpK z7TDdHrKc`|3Cc)EBNOzkvzCZXSJrxLNnzC>UGDTl|Kx^a#=5`f*Nl<3#^Tirdy2)4WO6xLh zDhx*lUftdJquVj0rM9R-(IwJ;q`WJGxx{W_w=#<#3}G0(qf(7!m~}=Z(l*V)B)u8s zcl17(e`m7n$9+Y)2z&;#*8&d24j?pm8REs1o!7#Ac z#-bmPy$(dhML;CbonUqKGKlKSKC$j<#06@Fssw32Nt|!zaX){9X*dYzXie?xxKGkZ z@2>sjqKjVKWkX}X0Ex0~s8gLbG|342OdU%VdNYij-a4XggY4M2{KA0>UT=7Se$(U? z&@NXm(m!MBcClkbmYksz(=5ejWkl$xW}o)5iwec9X?H-kPV4J&*MNTIUylbZigOl> zl1+CHXUt7rKJWB`FfQoG*U11alTT1KdUJuh-hX$8u=vfx7ATYWv(Qn4iwh9(=iYtS<`r3#YWbgjR|ovWkU54Sx} z7*Z_lGvno^;YYkuCGEseXMeV1p}O6@Gdu;ZtQl~o)vpN4yax{*a=d8betl^YPD(+2 z98tecK9hHSTV}YzU2|~JdA2i=?!Z{xn}hXKkwJUdy72a~{fq$}w`zlS;79t6GjThy zh~a6LPP+T-rd$3IJkG}YGB7G#-l1h_0(r9ov&?gZTaN();)3J_|FqoIj}UT=6e0;9 z4=<4!bT0HN%_KPC>3cWNMGBk8I@@V;PlyAzw~b#kEHC*-tY;bqvgZ%niL^7sth7m4 zsw(QqrF%tW8Rs(2B1kD!;iMeMDG=NWDUie_7aYTvb+(uv%Fvn?%aAT|K}n6jmVVr} zdPqujrZIObaCO3lwz4k@J1MDfGS52IF98#xc&^njAmggnT>zK7F>8PVLjOt-_!5)x z{bgQeT?99V?W$*mF>Wq~tdN(|97gO6~L#Odi-by~fd!jCXOu_^xfkfy|Bw4xQkT(DAD zEJ&%$4Exz1icXsC5A>Mz!WqK*up}`|T1Ux}3H~1dd_aT0%S00ilT49inrX7kFjJOU z7890QM%Za5lf8~eaMXET7hKRwt0$#<$_I=-@|jFu_)*ADeiL_z6YM%4*o^=Zk|Z6@ z8E;h0J z#V20J5|YGUa_Ay4QbfG`WoP=?vnxYN zI-C({jb%()6Pb|KRAxAGA!j+#ny0jUnihIKi-wjjqDA>Kw3If&i|uO!ivCm#+LyC9 zvZQkl5GV@{ zDk}XW7aLdOCbWb}y+*asH#KI`j8$URp&#n)N{u?1y`fhHwL#T1hPi2ts-!cniryp- z!ZfoF%qrrN3bt#nGCpZuNkq!n4g@ZOKq{cnG8n7^4lhF>f=o;SX6B$gc>xw=h?O3MT*KfIZG8QF6ZJZRjMpiP_VO*P|$(0Z%`~EA<7|q*VgP>i$TySkzE+p+mFm0diR(+a>Q%H zvC0q_Gw77ZF9!1o2N@a>l0ZMIS`#Be7(&Y@NBvBv>t{Q&Wkbu033%hIKBjC*0*5Qcd3<7ngV*m~r8h_A zrc`2}ph_(Rm>20~=>-S@A>D`W!=U@neMAD00MymiwbDfpSB%A&x32B*C>(eam`Fr& zk(WW{X9|8QK|X@^@n@?{LakRZ`2@v1`R8?SKSwcdMC&E%ZET9N%PF@h<#F;?pk9*# z!aA1!{qf)nP@QnC4t6KBLtG1*ax?V?FxPDmz(MELQR^+b$V1QRew+|6JCA^iVS z3MMBwCRg>FKB$_5!0-Ir-tIOLb8+`}PVN!z7OwmHY35iIlA!u}#W+Dcds=sW4R$AV znd`@Gd0L(lmE0Pxa-P|F;oA>J7B>_A@;j zj)G(-X$1(5A{IzDdf_Po5 zEM8*sr2Y$&)N0mMZvzcC#w0V$GtUxB-0E)Y1eL4q-s)4{;@$D)6EQZlQy(4jn-Z>! zYW(!1&B*Q}@fz#do>m^@6@p8MXCjWndg&2UOo3KRxz+=(f)Hb&vIajlIx!lhoUjGVGDX_-#?r`2PwuW5obF{)UHWegm_9 zC9)5@z_mvRr=FwI`#j}wz_U$xQ+XMa?s|26Z@{M$1KqODjO@S(>@(lBNm_l9F7xz$ zOyFH^B*gxA9}-?Z5e9gDKSsc$5bd1}>kKr!TubmyVp(MMib2jyaLAz=?Ln_{EC51X zbUji>wk5182xaq!>!@Gsph6s1x3V>wJCZPzL#|$&9uLNQs)^n+7WCe=u{{pPL?pH1 z`ZICA5U)Z>h^NV?7{kuL70mSpTtSwBK=;9J*e-bboo9Cw@P{f1I-tNmvK?z zA=JAa;T14m|>{0^mUw*w%^iJ^4+( zgO18tM%OpxN8xAG>}2fHI;D8djwi8;DW}IO;lgjN z@a4696ruc>I10^WN0+0$-Sq4y=wX6o&aM_NIltyNg#(A5g1gA73Kog5aqSxhN2cXL z352)T!z4}elj)hWw)0*3WUOU(nh!KrfOQlj=f25^A<~{YkszOs6B5julTVSin43@n zOQh2i5{@~M=Dm|AMAhrvk5f2VqVNNxaFKMu6vA)IQ$%*o`)Ywl(2uE7A}!Dc&xWEf zSavXLSbx`YD7#T~OaE|`J<+QwSb%)-&M zxV8FV+WPcB5@A{kQNC+!hdF}_&%LcL5+Uq?@{Du$b~9(4=qgrX^&OU})@MZglDH#M zKuXbjK}=MJnV;}Q(*dLQymZX0VIp9_%xEILQ`22OpY;vdqOLH)G%H%Epo>}>bFC5j z-SxU$l>e|<#!HClhx~^nERZHJT3sU`krNfsR0)pk)3~$J zTj}t1JdBmhZow;&dhKx{1%mXDM~O((d$Q=)ACnc?l))z5GsOD!iEus>j(5V+$^O_* zg{`om7A#b6B5(`@S3qLT46Jb&qG$y4fl$y&RY2l2qC0X4N;Ur- zrhuj&KHFSaU_#S=jRo6w?0`Qz-=d3Df4YBd9>0FDpV?G)a&}|CE#U$H?mfVjR-W(& zx0vcchBE4vP}ju*b33K?0|Yu48BhTPNC2F2?f~GU*pLKD5BO80+R%SS#ubUuNGn}# z_IG>X^W+3BcYH~XQ^N=97OIYY`f@B)NdF{T5{~N8@b+!?nL|Sd30XT ztve2y9Kq$^z`qyJ%73bgYHBl7Ppi^w(-QfH<}r~Gv!r>R20(&K{Fy^>AkHnpTMTdOSP>udd}LOlTj^+OU3dLLjwriVeX zL{GxS*!Kc0{hU?JVX>0i)EHSk5;)xCo;~6J{Q&(3fJ(u@rT`wS6N3hrPI!u*!b@O) znL}@y_0Yk3R1@t39I^gLMp5W-HAIs@s)#;&Sb#5UHq$Z3QR@e>iNk5ag0210vnYtv zsJ6GZ%~f__XUpi>F_#&>Y{+x$fsD@o^Q!B0dPHxgv0snHg$SRKLFClG3;M1gPOE)|L>nb0X~KjubZ6-HW=pRquehKqZHO_YGh(zu6zoBuvUO zn7|gPJgx}~kY02;WcQdpYo4rCdFK2y7pxXZ1G`x`G8=gvH&tQ;9O<`3uAWt6m(z=( z!9=E6b@G6^X)82XTeX?$h*<)&)I~gJ`d&RLe!V^v#^WFB->M%EYd8;EBZSYSQZ-m` zuP}sKgW(Ni=B?N9`av)BTEFd%2Pk+12(5xh9|$Fy1X9IQLDKxDs&m=ln<|5n;|at@ zb6;{DRiQG$^lRJD2bbHv#huMrM_YCGS)b3G`azz$eU`CkUUvLT3UM1Y83iJx;Q0i1 zG{8l4FajYTkhpuNA;uCuN39pvzWz5dOycqMhv&G6VTEIj;=A5{=e>Wx`!?GWu$L5C zb5_ixEUC33!Y)U9UaVSS=dP1`Q~|-^pO}_>Ao%1SHo*)=1x+raC%fQ+TUZe(+CH zfrDSc!+^@*SLN;a<~{C}gir1ITadNL$eBKBCgjrR>;U?**Idk&M1Pt#wN& z5&8}FJ_OoSRi|qxqc#&xF_T}p(gc&Dw>)7+2d_UC%e@|$!0F>8q;$q~@f1>2?U0J- zb7nmlNIE^S;aUA5?tr!|hf*LrHNt#~LZ;E?!$O58&_@o6;A=pWpq*Sz!{&~cr_2?- zXP32fE-KP914c4CNVl5Y+?+f@x_cKiUc|#U0G+1-5J&l>i!;i92v*}DO%i_g6TPoVYq_H%16~uuEwKQ{)!FE)o*ufD=n8i?R#|!=dbhum=oOZd9;iGrv*} zxuwLud<_1&cG2*TCr89SEvE6o+4vwNd$G;0iJu@*S(U`^S7trZ%tHXf$@xvhPozS%J>*(gu5d7-_0GQ?Lr` zP;1JCFj%-*?r*kL$wmBa-d_OK!fnVjxbHlMaZ)}~R4@yG|E#Di_tt7e^nA8@nS`fSxFeAB?V@; z>99`L`SF4M0h>sdr&V%+H7Gl2&NfqQD?oKXXewfv+*M{RSJPP{OmSIeCt(G1M6=)Dp4!Ri2VtHQFJxC2ZDP2e_`JOQ9O);+;w4TMD$ z;TDvii{on=dew$X{)ZS_o&_hHZrM($zbd&!43@k)KXi}1CCHV97ddq&k2W3xV6d&< z3F~yMS5lJq=bn(LV82n8D5A`uzfvPDnC#uId`;wF$xa1KGPciggBX~?hRZmTDmcr+ zH?}zo7QRpg6qr;Sy$A(`xWrLO4%dFn-WHCaCwKpzX6!~7A5ATW|G7N@>08ySWspW06jug~l|kY%*rg1v z82~@%Gxsf?`uk1HbQX!clKA)qBnt`&i-<~*DowgJVlrgPicx#h{PM86%fmKZ9`@<- za7>qnbGkfS)8*lwE{}xis`AVbpA?Bi;@u1O6|Somwy1V!u=H;-*9C&*)Yi6kz=~?S z`kG+4x_EOVtfH>1y%k1l=#13DI8Du6-7wj|=8C{n@wT2;m_FWK8;4o%oSO@BQLc$= z&}hdn|ancwjHx|(1=ezSZBBqepX^|WHV zWWTv!DN+K!7e`76xVDhl!_7mK%_%tGl zSVLS(e77{c)L7aEBN2d@@NCH-{Dlz|!%2!}SWb{+O*btE`?VSXLNJ123{H>~&G2;e z^bHJ+jLj@8t!?Z)d+}=1mb9##yn>>VvWgwM_Epu?9S}71NVg_+x90Z0yVQ>VqJQgG? z8#_uqhXNo4B^5Od9f+QRk%^gwm5rT)lZ%^&mycgyP_xd_o(sQHUoRbSnWG>3_$Lrl zjymZ?zjpdFKZj*guBi8%Vg=DhU$gD`g^_~k`LYS*$R#31)Gv1-YKAky^)ftui@^h{u+i~g*x>bG-}eUMNC{!NLaNR5mB|yn|Iv} z3;uD_Ew|lC*}q>wSw4v5Hz~XJI_QUq(r3+!L*-Da$?Kx$n=t;6-RfS z#Fm77^LM7@R}sptGzVf=c;WG{ek~GEmqsMA+;Wp%UU|v5>g788Uc<7c_aYTny1bCW zxjX;oula?gZhl+p=kKSbVI`!bjVmY3w0RYzGlErLjdZNx8m4P))*;c_kExEVt&GKM9 zmWM}=`3M@X%wHER<$;F1m$RCEkX2RO>An!1Ke$m^=?1FW_+d?E@u z2#b79dRA^hQBB%(8#Ja$gEof<4HipW|) znvB`=7Ot+AI_hn>W!2Qwfw~)Lq^U0Up!MXoJ*F0zVfphcVccb|a21>0?R{h4-_Q5^ z{b7myb^qGZUf;X>cwcUPdvARJ>p8m9xd0|r!3Y;CNjkhD1VpX6^#5WDhBdoRaFx}G z6go%XM%;9^Ul6hJ>`B3~^Bf!p&&6@JfQTy&EyHoQ0wIG)zvB(|RLd!pMz_#-hD z68j2^J;yX(CCwa#R|EA~!;lDcfC{DO1a3Y<-k$etEf)v#!2ZDoYX$WN$V<3dS4MPmDn|$Sl4kf`X5eaU*lx; z4Nko8$^Jge4y{8Qr?NjFE)z;0DCr7+8KX|Rs-w)&AYBtMZ!~crZiYj`kHaE>BSbPz z{^;Tq3>>F$^a*FejR8*a7~zzR8BXa~5FXENEOFY76;9RI;*<{w$I8zUhbm;mD7gUg z11OF{H%dLI^rF^>Mn75u=nMiGLT?y@5sWTkatX7`SX{yCDmJ6ojo~nk(*!P)xJ|8S zR4KY*D5hd5w&3(ww%`m=EJ5{f#idK}6kiB32)%{K+lak`#JfnnxAM@ZyvnEi1Az@0 zg5?k@mvDKz)g{Lpwv~p-O~uCjnFMsYc@EE_jx~OI??ryAs$&ZwGpC?ndO8d92^qDc{}W@R)E z3rcIabVf>Vv<$||XuM1&%51VMrpg*PLhrP)cMrxaFiwH735-Wz3<8%OxYWSq1uiK+ zoSes;nkSr|r<|Ep&dxK=&2!Gr3ogt{F3zh~>#PxL)q;n9cbgVE5G}hFJ`C_0WP9E= z$~xMbq*>~+eo4f4*J9kY+6!~{>a4Cu4zt6;qlfun>G8wxF!7wj=s>n|597lWZ^NDw zjeDM^ojYk>QMKLY&^cfe818+0kcFGSIe&8-Y7qf2-v~}5_pUZxo*4MqHH~Y@+=E5& z(n_gfQv(jQI5q6LE+nemy6eHOA0(Tw8@zn94w-3|s5$76nrfZ}(mvhG#jHfiboVh? zPT($f%3b1&yHx9nWghjoww`xa`p8}7I%ZdAn$l!gy~^+l`_5%Vhcjtp z$8yrd&SuusUWPQi4ON-l`zmw#`gbHHeUC@!VAZv7deyV|GN!$JwX0Q0JcJYPs+X)u?1c1blb_gIo%k*GDIc`OXaMq>w#Jqp44Um6ZFBqdMt}-ByC)WUCw9$3P zJcOq=HrU=xVb-iqUzZ(2tZAm)^=)0l(#x!||MFalC-3!47tB!V38b5VAvw6q+qsPR zkcX}%K+^pQ&=ZcVCsUCilZ370QB=A<^A7I18r$v+IG?zkM}Vi5b2c1dLMT{IAxldbuXYx z&H9{{&y#g4v2La!%k>SPSvTJtalGQkFMMuZLA1snh&uXp5E1DWx_Fh{NIt+Q)ra=g z@Tt8lZ???XOdZ}zK%z==>L4jrbQ>u5Eh4S+9j;-{%ee-^$ZB788G7}=b3NEoJ>4@s z+u6=l)N{(r^?&1}#(r&6o7v)9Hvma$ITv=2YFv5#Y%+kaixZQWbnp!Hm@_1@j;K<^4> zQ!>f84(VssAg)PQb-H^|ColWWv(m3H(wzR&2n+Df2&&_X$SPN_*KGa&-Mhz9-1p^o3afBX;th+`oHIg-|OeGV>(~P)-c3m4lNt2?Ws-@(PSX2r%GKl|8@D(?avnr z`&tBNCe3lrwtpl1#L3ElHM&+;ppgqIqgok_Yb5q-rT2w~Fgf1w_nU3E+kS@~ciMTE zT|Ym``+T`4a>B{eoc3fVKg9{|N!=CE9hkh}<_54_0o8{B?p73q-h|WUU>sc0>qs{aacOE<( z8Xg%P8=sg|JV$t@X2t`P>Kr*hhUjEkP*v;lTxiviex7TIinKQs0AAJXhbtw(T+}F(G5KMF^OfYVjWb_v59T$Vjlt$ zLYQFYd^oK5hc~lO@yMpsTpWAvX4z|>{SG*))uSHsxQ{Z0S_!C!9vViOLC}C(FlvZZ zq>BXdDM%S!$|wC+*#YXDg6ih}`u$MZe)oqzwd2{?Ia0@Xjcr`xo6y82HMw*oyR`0$98-tc5zUW&KmB-zZ)mt>%YE{lJDOwk$IL^LV46+ z4+^vmjxvqeo_?l(T0pV-f*brg1O$bc1X*$D!Z;K-rBD&4 zVlE|0l_^)DQk80M9$r3v0YM=U7y^aC5lqbTSdgr2?5Iba8OXizV6K1Gf`ejEvlQb$ zT%ni-4<+nzo#N7;I5(HA6sk>f(L=RLRh6nM)l_P%)TC=}Jf+?H6UC|pJnBbsj@%&T z6p*8=K8*v$8!NG=)(Lw?Svdb4E7NbE@Dg;^+h8pwnPrh%t+L5Ob~)sfR!@7`+dlTS zpZ(37h;(vCCx)>IF2s1mFJXyJ!ju!UXj9v>-9|#MWoaQ)yICnggx9pZ7^&Z?I3LI~ zDl3BPwkRWv=`=4X0CP=B@I&kvKcSJCM^L&PC8{;*sxMww7nhBeoGb&21PSmMhtd$$ zO&~}l_{g}6)*`d95ep-kCZ!B|HCCS1GR-(dR-~z1s6Jda)|#Rc^5s#rYnT;nBS*e1 zC2@=en8R=eMUr2J^p%G%>Ag9U;f!Q7V;RpxCd(~vA)CF%I3+u$wDFiomIApbHYMCk zD!ZDL`)2PWg`JytV7ci z6=mi0Zg+tC_2o+r9?$_lPk<-k`ruus0_3AYy&XWW1%UqA4S*;CV1Ori2;`Pm;Qt(S z({Bux0c`SBSe8$U)10>S=U8q<9Xf1mmDjrX+Sj8|74<@IwZoo~wAKc;A%}tn1Z86J z6C$g`G>MT+#t3#f{UV-rSyjK|419p~awJdWq_ zI)qqSV`_Y@shhh=|7rmw05(wtD(%QGO=(MCj^=9AF~pSic$-#C?d#sCp6&V0_x}On zLO6tLU}H2$)*qNode_ps5o<(YhXXFS;f?^JiGfQlB{b2tnXXSVi0f&twX}KUiLRH; zRK7}7=N{A%_qdKf?^%gf{IosRVxu+-2VB2mF>_M%#aNt(Qz43r@hF~EHNIF<_tccs zjon1lwnyTUKs<=Hm_O}#72%v!t^stD2>W4X zfOzyo4-Ld~hdaEdn`A&vdvPg?3To*Ugb}npHk> zes7ojao@9p^ZumKrmb68XxSY+6T+g{Y%7gtSD@EvL0hfb$-YyagA<~YwP~oDa zwpUs)B1OwAURDWe%To|bRhb$pR2W<5Ds-$&*Q#`>Qtuk{tj_3!M%8UVty=0av}XP4 zGPZu>8_bYN9WkX5lN&a*Q8Sw~uj3YU()>z%7Z~+dVs5wXatW^soJ`Io77r zeQ>JxPW0Ae{cxl2uJ_HShI_j>o=HG|m3gxvc(-9bX^gMh+1Gwf*>OFFGnkjwYbA|9$F`Vh6$NQgN5>Zn{%CHqkA>_)TmeWhP2{BK?2cO4v_;KW+8Nt=Y5a2(yVNJA+j6pZ&iC2v{&y#W&yDa-L-ASTeB5ZCHr6-&!f#FGDnLR( z^fa-i16w+>rxQz>$+Txk9b@X5(m+eC>aw&eM^i;gN>Ns-wxuaAU1>Zc>M*Q>)^y#v z7Tnf(cXZL6U2<2K-QEQox@l9lZSIbHx@%*%yigb~Rg6~}gx4C3*NftfO7Utt;k$PA zZI!<7mwqfVC8!i6RG=`XG?e5NR4_OQ0tNe**PzF??X*2!#*dwUOA~eCMB5`)vKS2U z63__=iqY2Lku7f0`qF-YGH^M z|KZ30%?UGeV?hVBh#0ltnSqv0H;K772NfgcAT=as^A>k?F)Ev#dmfS6sv5XpV{rU^E*(h z%WtEhXJ@Yxl^WNV-u1nqz^c@+C#g$_ImYrB3;mvi8Sa*mdzi(`qFtFHs*)MXkv;Uy~@vnCl)I9hsS7lJNDtxpyhfy7e-^4tpK zO(~c<@6+Q|pIlW7gd$P+S`mP0^}C|ubAR&HXiB#2<$Wh|{`HumjC-9VZ-=<$(vAf& zZy>!4B)dAH#W-A_JSei;0&Zd?B#Wj3Lcc;Hu4hDVt>oK{Ap#{$RXM#RvI%U2r@`V*qH^{eL4mc+Y09;zHdRm^s-(J9kLptc+BESIP;)D) zQzQKf19?^k&FMpfJQCO77!hAIzV`i9G666_OU5LvNw01{RCbJ`srVEtYTvf7O~*;Q zuxWM_o*IMdtZHnB$LGMSQnxR#03&SYXA(s@@}g!1_a6Xw^G?>vJk7HCDp>+GCS`9W zY_(ATa$2FfRrk4$COF~JliGJ51J2LeE z1ozt;L&R?+N^4Q%c|w`p<2*8;&TBMq7)C`ZNbcapG{7&_Nnd&%PKd6mTM~J7$yCYq zNJMU9x5_x`VcAvXsOZEIX%fQN2wA44^^sL_UXDsGCw?>uGLy25)0%4xiQ~~qmzcv& zBet@DB$sk*h$!pH=8RyF;u=ihN#BcCO+js2e9f(MaV@(w(VoOf8fb}_G` zrI2IAaW*>F!4*w^uJzVLr4{MMubT>LRI)}o^8!Wcag9F2{CrtV1Q@e}RoKC`tT`_# z5pQKgmmP2rH6mT@gf8O6po}p3;o9$Xd94NM_FcQ;m+hw9^uI*`G;@tB@4Jgj`zyLX z8o1kn3gg@^HKjcPHwyvJBf*Y&ik5wcg2GOreOZKq(l~}As#65?Q5NA-Iramg~JRD&l!!}+TT`g{EFX5q)E8J*!td~;=Y_h83A#LF-=p^8EM-c?^0`w)vYdk{Q`{UdoJd!u-x+CXZ2h7o;YwBuL&%Cp+< zCAZv?uI}w1-gz_aPZv65Hn!#i^*_}&5g>G;2Y~ia0Q4(Cd;_X}B=r6bWdBR>|4rEc z4Se;&HupZ-o%AI(f%CAwoe51}N$4?qpYG;uYhced%o|#yI5g>&7qR;g*8l?X5f{tn z8ti=VS_TkXW8x1%SQhgmhoXM2o;b+viVT|uH) z<$-U`5}VAh1WcqY6IQ~zbS}&rah&}wQ-hA4H&jTyua_6J?Bzg6GiN2KebYa$oE9Y# zS?8-FZ&caGKGuu2YN0)*eUbDtAZzZye7F#A3V{?Z!m5x5pftf#5h9t{2N{$BE zQsPZ3Czt5Ds8+O)d^68lt+|) zJBhOr(BuHg&;WxDW-&og0}sWQ^-PRSB)P(sG(NiDo`a6diy}q25>9v+xYNDursvgx zYtNU5_&naVPtXrhLI8h9uxR?L`RlG1>o z3Rs<1g3|Y=MAj0GU|vGLmo63(_Xs_~eR1F(zR+cdlJ29Tqya3DF&hDg0K#F=@4-V^ z00#1+=($B!1(|BP|oW~(R;a$uInhF1)zEJ4NRS~G~o{BE&&N} z#LWIu(X}f%5m69PRMYu%-+Zm{?>BKP#lEfBB)P3)Y`h-o#MwyJpdipot?h-xeMK#4 zA_@Z;r~=1k0I&s@sWUTboXSiWV@<%b)h#%Le`Wa$ z%*;Hk%1%K02RruZZ?1~$nl z+)iWQix>Cqy?q;kDY755x*al*kGqLmP=Df3TEDW!RGq4kB}0H^7eOI&=zdJvxsOi# zmP6D;3H&+@j9>u3;5no-05U{|!5B+P@cn|3l668{{aVn`f39yq?d$qv6a3k;2gRV{ zOOJh&y@KzbF-F-?i+n0na>hkZSzI6EngXwBlBNw`2K)e$=UTrlX;7(M2i_R<>7@*j z054@Wz;*2!uahmrV&1%Z^(tvJ>Dke*=X@hr$dMOPMtEv92m6IkX#`ujSFk*3wZ30d z@{7*%9-3_+RnnBqe~^~;aPgsq6iKMtf)p&I6*(0rwjl@}hASVJ#|1Zu3R2{YT_VEt z;VgSb4XPZw2$T6;7e=Vur0ikRXZ}SwoT)%)-JU8UYU;cN)aWtT>(W0jfnsWZA5-I)-EyAt(9TW z&IN`e1gXCdP$FwMCPU)EmoX*1rinCg-GZu3Y?-200ikoU8`^SA*YBdO9AEDsO7YCf zUy-nxLT9r*B~wNn&T=XQC{YV(!rfP8@PggvjDl)7QjlIuMrn|S$wicK?pVWgTomvy z(3^H`1vI(L`4OD-MH3qej{BG~#tAB;9$$4ps^q`W6 zya@(JAcNQbUDFy*hve8r*EB!++q9!j#;3}UL;BO43W_M1NQTqHVp?{wvpM3JZyVGD zaU!iz!ant+Dx!+1#0Ak%@r{wmw8MgAEOvm{sM*pK$E19bl6b>Jy1@@P4ir;DXc>41 z@M@wK&}4z5%&OJuFLH1%7>@epEYpKD%(>IR!#q^JlLv*;kgU~klZJwwayFd-;Z@+d z^g|fHPKqrUFD<01MX|JmTeSx>({Pj}omeg}WzHv6u`+Dw^-e_Hj_{{nEcz30@!G5+*}<&$+o%BzdT}Chbt=c{k&( zslRUuW$JXOh+^%%6|B^4Cuz29sS-QT>gDqI+gE?X1l>|&I>&rtdac^(3RX6`5k=hZ z3vHV(-%6~A{aahw`MxK!@YP9n* zFC|bV1{0u8pqP1!kA7laxV!E@o2(MlhwqG%gPS8X98^55_=|OR(VE+Z61OdETWO<+ zDjC=6H8oPKT@@2FyjX8rcd7{2SoVv{chdT(IWKuwdyd^%xHdzmXf?Pmv)=>C;fi8p zp{a8=bK+O0MxGg^P+@6utqzSquN4+$q1R$X`B?SHoC8{kP>%X9i=Smb8WAks!*y4e2U8Vt&%i5&ANVQQ(a$xj9SPg*4UXwh{spj`k@m zrjF6d+O$kWTzt3K>6TqKrU;KF;9pluPr<;$j`+{;5+y9B-gDW>-b(fE~HZx zv0M1}2|aqh7ziid;C=bn9xj_T$gbC5J~rnHMK+kM@M3mnRpF#9D~&K@I!MTg$wTED z=1nuiG$9NEi};x)X)8bx8EQ(^Y1c*hRupR*sId|W^BHYhXZ};>Z_Br4*ha`Lh4l$N z=CIc{%Loc}fP~hOT%3$x4Kq|qHJ&lLp(^2(K&XDP9r+A06y>{kdE})Pt=K6D(QSyp z^_PbRghR9_A`8tJnHst_Drgssp+|s>;!+Yy>`DsOay=Z*l1pnTSGIb>a(bT49F@wI zD)Hc$t21sAe$qY_hLk~6tk(d_-e1@T)e;jQf>>bbnfhVdN#o4eM z{GRD`{wNeahHb)q_qhu7KDJDO}ZqN{(VWFrLq&$;t4j z69W>3lFbVHJ#wa4*BrGcJShWKIHQ8|Pya{$kit!NS|yom(|D9?U2|rqd z6JvN+2rXo9DFXyAjoI9*7mM|L%e%`kX@Oui*N?cnVUPN6a!#l(O0&GYH=P#J8C(qS z5Ru?<&FTOh7?EigAfr~oUvk5kVxGYuw$`S-A*t!?PU-;ybt$1JbX;=jH+RIoxfhbX zxf7P%P1I$ZKU)@0VUG)9XL}3df#*faBeyoYfS zHL-|WIkJ52RwcnMtO$~Vv!5X0OqVqtGp4L`WR}i45R*yIyWX|akmAoj2@)q9E$9=I z)Hb5Am*`E{^JPos&=hm1DEYVTK5)sF02m#HL%YWMG&)R1;|HST?Hm*0on)~7C}h~^ z?e`h4$S^iyaYU`ibm26;BzDliR?w7F`zZB*HJZD|7CP>*Qx^gV-7)|T!y!0#kBkcO zfqtkjIC#$bCKD{i!3mcmb_O^S$Yz9NF-dqpgy8=}Ee8=!y!>sCvlIQtI3>8QNHzIm z1H_NNffELPX$u6LlbA2o_O#M9ZY$Y8V_K{7F1p~j(-8vjni-&oA+Oz_?~cs_@dBR- zW0}0YsK@PQtT(EpE4nO@PUiFQ5eRAl_yuB##K7+x0_PfDRQB&<3i}mxaRww&>U)=w zEf$WG=-St0&UoXivYxeGqmYG~@1GM&M8>v=K=Pd1FVqoK{+Rx86{|Jvl}W-bRKL(^ z`+q8#6E)j%hp(I|%hv&AvrN%K_=AB8azZMh4o>aEhOh+`O~#naD$?NVt6Ucdce)wS7y;C@9 zd3MVVcTmJYFv?ivBuaNIB2|Jy+R!mV{wE8md=qIkl5i1G)tgjM-}2%QnK+koG!1uu z7WXOGYW5%Ws{chgTX$~<6VsT&lm9DbzJXz~3{D<#i(m~2n?zOzggI?JHiql=^dE(- zto_ieB-oN~bmi@zdRaZnTe_59nO>atL5Y%jiX$CrePe_9O*SQ=EJ2J#q`e{LjB0N4 z4`bL~%#SqOBsz8xmnSun^k@DcIjmDm5#G=5deB5uXl-XNmv@oP%#7;Wz)Iy$Y%gWU zL@Q|bEFgW(^7AcMmIZKztfZpfZ%B2v@nV%Y#GmXym1vh3ip18YO9 z?pf{7iV<1XLa{LO1dsc>)%Y97V(HtGbbV+g67ps!$Dx@~cG0k5$hM{oCvdN&h*yGk zjVVK#a)a-*GOv4BDk&BnJdWa=_bj67MBcV8?R~HRNj%b9sJ$7NygI>!^Vd`4TQRa>T`2o zhAX8mAh{>tNH_uNvY30i8tzieK##KnvlEX|?>|8Uix&PJm5Ro5G^d|-HN=DAE8%Gv zX3^;$XvWYY$mP}q6M+#%-(TY523J@IW7t>e5gzPAzlYwI-l3(Mfk7mRNuRsy8Seht=rs9K^96T)tR z!~`3qsfxTZQSA>~Z1R4Tg%$$`B?isK)(c4R4p8PNbp=!jiJ<_rYuPUBxVg^8I=5r4u~*flt;Q5z_$x?8Q1Kt)w5qTNrGu=@-d94+ z_+<-Cu1Pbdgg>bE&Y3wIRUt>4sSa;|f9v4{d!*k4s6t}bc%ml;G75GcLL;UC24zU; z*s3MKp4Gn}hi!!vvx{k)BpJbG1AIj7C_cKJX~ODsj~4uv>EU7tQ#wJXP&UHj?OmWy zEE8X{_tWSz$1YS5+Q)Ft!OR$3`PQryznM~7$#ziwi!~^=y%kK`}W7z|jq z=`sP>!iO*US?NAbG)(Ew7wVhB zak6ocffJ%4U8oZ!3VaOevFbdrpKotoq%x*1K62FyMhkLyF3#G5bk(XR{FNB zfqA@?f?>z*vueJfV8i*=}|AUC=o z_=VXR;tK-2cb*QeA>qYooaeFddX7a8TPE_AWonFlYl=RaTdGZVZpYnSac+*!z-{cq zkmk~6O3^l?QdDzljAx-_Ct=a3D?s!F9V>-x!CU+AQ8vPKD; zSit|CcFS%&*0t^+Js*lybDJ?vMS)>hDX=Zx5dYow&|cw|!OE_RN#}PtMhaHM``B`c zkoKgwU75^vigI`_+>N^^6b9e-G3D@gWV@grW*%<1xFzv2n9=2&TeufQZDCF%utZ)K z*vx=>iKUbqvzZlWo!Y!I7zV~nPhpIwm4j}4$!sON&FYB)Y=x1Z^B&o@CVV7S#MH^o z#6K5eM7?~PQ4u&Vvb=1?1Dv$t53EUpjZ!u?8ugR1gXx{s)#_v3wAH}kEBNw7{i@{E z-TD$dJ~ekPyv5eWa%P1HRCl_!{%_U2E;1u&8~S!-6|kIkK59avemoX3Z2zbu3}B=q ztH*gT+;w9gABhyoSp7t)?v6;-<;yO%pna}|2 z3Zm4>rt(bXncyu>3qxC_l`IAp8`VZAK6k0`)F+*}RB}L2QtWT~TU(OO-*ib2V`>q3Ax)71QAzP3u19aT(lw z#%zzakh6mDNOtt>=bgRC^^R)x(c-POa=bau>y1V={Be8SwpX{I zAwRZ=zvy>ZN}367^7{kEhcn~1qkvsAx6uu|@hn}Nxb6+_*H-WLy_UUa7oh4t zPc!#te2HS*(KPP5lUv7jRD+WP(>=H5m!jXnV|-ZJitKFJt~Uw-ON4luS(-%%;U0}J za6X#hUwJ9s@-0?&&^`n z)t~BT(oz9Ze7Vb0@#M@!%Cg8>x5p_xh7BM1`>=Yw=FPm~Z+}$`{;e7{C%3IU*z= zQ|^l@F6;#tyga>5%zu{Jo+5IM_xGvY>RcfvWHe3OoOXuZkJo2xDZn5K=j%R02~HTX znVIVo{-OfO%cEqoq-q{MI^!&NK5!$-Debi`Mn*AN{ z#aTw6k^iccGUeV~{W|E&`0~$r@vlB_|LN0rPrv(z5BENzzZW06*IviV=cT9R4+36R z0WG(@lP%v%z07Zer1BqGno2|74~b|C$y-9h`DJz>rfxk>Kip5q-{v6{Q!=`NBZN{G z`a|JbE0Ko+Hc`F11u})xPSIa-!uFT{LR8wxX5Srud%ssBB*26JjX>i`(6MjxqT}Jy zwrRUjdXvHwVqgXI7|74wuoElrN$9G5DX`19<_-bJUi`Ha`g~#W=QQCUYi6Us)$-$$ zZHvi->}bC1Xxs18C6mpMW9%|`wsIMJqCr0~rlPXjRBHPsGQrGcrD4L7`83RAFTBXH z%%bNTw|VQ+mz$Qnhh2}34&*H%W~2U&JWEti5~K=kJgbIt#XibQR=hz&fm_Cvb16n` zisA&bgn1~EnJbo152(sCwTkrTkq|B|GsBiVe26vRrtgPL8z4f$ZEm(SyIY@b&mxW; z*6Fah_l0qx+0_s%`7(C{mMwgAbTu@Sn1lK|@oZUTRcA$oj~v7QI@gN5jY(FVpre4T z@`K+dZFcorP*i}){Jf5QELM|3*V?|3t*CaEyxIrU;ebS9;*wc5oITerjh+)Wm^ zh9bSY`=&=DkJTE~+XC4H*UMKho=f;C{I2?EDevD~@o|y2Mo6XIhwx`>2YR7KZc4BMq3peO@ zB@9d24q}&224cG&kAF9xvdj+doIzYECPi_AUINS|vT`KiiAXR@m~%CZv@2p|5xoum zyXlsW-zS)^d;aT;7~hJ?7* zKEs(o!js>jVen`)9)teRbqmcDYH}4?bTK$7FAEOOx+O9{Hb49HI2n2BbC!m~sk-8V z(I=qYVp!pslJtWWup}M)ar+Ve=vZPPwmc`^kh9puw5kmPmupMewP_tqyZjHuo#(Q5 zr7fLTV>9K~0`cH`Gcn|uY3m!>{2S}}XcZZO_~rBy>ibVvgqmhP7>6IH)f^9$Gwd@n z38RZ%0A0fSF0o;$FYK$G*;7$O-I+w&xx9!pIz3bT?;h7~SaQpe=*;LpyWM(W$+07) z@Q+putkN9s)%IfSB&!^m$nCdZx6I9!HrRr7^(H{mLs&5a-nFY{&1@E2NzKeo3Wl1; zdV6g+6h5q>!imWcqq7QuX1>V=^sfdZz1`8t1EduyOM_(lk5;VP@AY|w0T zGc>y@G@@wc$OF#>{jaC_(}>sHjbpvNjbrYb_fHI8R!=vNwnl13+nT3;

^wT7^(3 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 >EaV|UGgZlP(*ry(p)+}dq+f>T)T30<|8FDzv zIY-<=DQcOEw}L4as;oc)Byd566ji#Wl=H@m82hra;N)ZSaC8~>Hz*|vBxd>iD4&0) zLm&hlX}$STpf?!-Olj&zr2O z#;JfNZtngSV_OQ@2udROoCH^&nRpc;wP>I!(Ke3k-9S7eK!qHgDM;f6?wBj!1D{Il z)f}p1P{NM8IkwY>1ZMdhu#;tT9~QtNE9C_RLeV0L@EPvy2>@tjkz*-K6Hc_aOuye>|4snFraW32eJ$uB`*g3AAk?jdWlK%a0Fx)Q&^*HZ0T?nP;CL%kOV# zkEQNqo<%v28$_fzDZS8AX$S8P22!Ngxu*}MQyl;@vN+Df85VK4!4epVrbQMVTS`b& zE;+iUaZt|I98j{;xDv4BZ)P^O>Uk=Zr$(XsU>ETa+_el?xP>p)uc=w5eO21dY)fg3 zqX$W%QwOEd|GZX3CTLtTjy&_&rt((Ub<>qQIYtWR7QjRVq)BXsW#M%oEO&FEqZrz1 z{p-Zi&$DoicLJT)a4~SiG137`1GCFqGoF&c$N-nos7~xYc4ge7Q8}w|GtwI z4Vwy#jgZ0VJiU_1>H}t_C(fOwWP)VRDY^hQB`QbNOuU1n34o?z2sTCy`2)=dsv#qU z*Xf^IDV;W8{j?NpxgH&(C4iQzEr~rS_dO2)8U~Lqg4o$$TgXl)*tuFq6^nE-hDn<< z3u8A!cY(YIfL?MdHaF{IoR+R~g01#rUvYdtRS2~dyh2+Po z0(WEw;FNuE#8vUyPG9G|JSf%mynF7SMyqYPeZ^=O@LSZ#Z3zTLR?)SVQBgO-WCzmoGE^h}eJ>;+yDemUSD0v+t?Bci{H(9=i& zLpMQm$6S(t*HQr460?a_nptFtix}gngmrRnSRnz>$h!wwOjYjj7sGX`x0+1BJ)9y;4PMZ~% z>&yqU!JS$3_we2ZYYqm=xWFAV50EcY3?s2|wpwCYk_ptTv-a$mZ$c0F!p(q%w}3KA zl8nANEUmsQZP}J>lru}f@_oq!y-)^+P0Y2DP~`ca%PH`VSIu#z2`J=MRxa6^1!s^o zetNuWw(VACQN^K0?L+HTa&}EOM3;^SX4)@mr)bkfBj|~@#;tff5Iy!51Jm=XMu7}u z6SQMV5$&bw;Ux~+Ow0`*dZ)zg@1TD2?pQ#UKTm#ds8p6RN{^E8#B0=p$J!vx=?FwPV}Zn0OrQ{h zO%8Rj<&`cqho}~F*FDlrQw)HaNkOmj-@qfUPioV67id4W?l+*Ib*Zx(@yr37CQ+ws zZn~iIqWI<^VMwhr!{~%`q=b!yY=dMA17pQaT`D)?P?P;rK%aA^GSpTSb2$Gn;K*@l%c+mV@&jyBe~vD?lX zdu0*T`mAXszN}&CB@n%lDd3>FZ0YJ~X=XKuHj&1fJAqavES#u3c|0;E-PqEW%l^&c z(2|=DJFSc@MZu1HaAJ~LTrTaTEg*F+(!Irf0d#ibES=z>oC^hX=q&6LZe0(;Dy#C! zb8s^L8k!5exDrYbRD{UnYN1I%b5@sLNEnafNV_~rSzBM8-j2hiNHhrpg*s7>d(YFH zzwfJ7fI?|n!Cq`xw@4MuI@A5MmQv0jY9+bps8FWCMQMn|orUxX5~M>o%3VI z0E`&Lv1ihsP71fCI>Q18x+*%#3v^UM`cYCgz`LUQT4(UwV0n zfRF1zX#OT@kZQs3u%y}#3K}oiz9YSilP9%KZUbP6MP4h0*{N?;8(XsFy=ty(Ye)Gq zd0+HwhT0`F(J1S>=nC*FZ8{Ae_HE5szacVbjOb>zd40O}aI$DTkH+fiB zf3BDO9dFte@CeVbfTjCJN;*jpo95a*z?PD7<};<_+GpMIsiMKwPot~td3W}-`Kuu> z{lMFrK1ix5)2PL{*W_|Ow`oVSvWV&kffAJiJLqSuLKoRSWzR&BZ<_`L(}fH8g3lHn(&AiTtNt||l2JQyv0 zZjNBD5C#2(sYD*3nF}xERGVjpc`Or1&|r*R?9~-e@J2no+1$5xqpPtVK?7)e@KB^u zcX!TVt}!1#-swJprhFIXcDq4$b=ih97*&SPEQDQI>HyTNOx2p`;0&JFajK=GTurCf+m{({3rsyNA(Zdd+&(tBw2h&g*Qk7T+E}_v1?2s8N}0q`>Db$rha^8fhTgZCT{q5HYhX72 z{kAlSa(OILsHOlUb{|G=Bos_wf$8$R*&2YrMhtM$`i^18O}dw^el*F?pAK~w=J*OS zvd7u&$ytEMK7ty_A>2X+^Vy{G(lfeRP#+&g7)^QhYFgT`Ro_H32%4cae|n2`Np;|y zD_Xe-HW8T5m^M}Xy`l4oww(;6(gTknszynE4g%FBI?HOn`x#f1XSBcF(f6@9e?ao`iWJ z{|xc1gP=h_TjqBmd356@>c%zlv-L$pYHmr>CijZKT!$FWX+2o^=^Nkcv&HOs*>8uw zYl|Ef=*CkY52bxA+CvLFAXCwVBje4oAs5{o)aNup8xmWQp zsk*HsCCz;=kK)KZ9NbrRoKH`ZZ8}Z;JQR47acpCYb@OfA-eIxX*PW3{)%0dv7M2)n zB&&+_Q&c+w+QXpZsP=N24k_qbio+x6tm^o~Lyl3AW0);&(u)#v63|%oyOKx66pkRyuWAZBpAjXOGmnX+GW1>N^E%@T zRzD)bDDicwQG?(ZwURt|w-yRzA%WJc+NyWltVL1HXC~eCtPZRaJ0(2yy0WEsK3cL= z6tciD3T^YjpIjor8iz~(duO4aLuB|Ca8p9IzlSX)k#~CSldePHCq1}mRm&k6%C;lX z=lsmo-oVuJZ&yc8`%PZUn$cA$`Qb!eVKgP$xljIRpO`*&gkwEcU^AEwoB{)v`O?Kj(3gcr8c2dw2R4>$GH!}e zplqT)<|;sPp;ELUwBlcsPTMCx+^&B5*{kF0lk4^J`u*+u-Ny8FRpfKSCqCY(@EY~$ zhSc<}Gg6v;bT>Fg-tMD8>2OOLRNhp-9&6$50$>b%tkF@enR+gbd+#N^-nbbkT5~~p z!4F{i%VGlp1YucT!KLgHJtg;K-){6;?_HN9fnT7`ajm03HZZL4+E8YhMpLoX#b+*DLpDdbQ9x#z7zplz&Olw={sRQXnY z?|iqvo@e0h!yo zLvpo_ruo0zF|bG;Y5EFTRbB!>vtg4=TvbZP=AO0&shQC<>) zG_{&VDOSSs>2z?mSuR2WuHS9$&+d;7p17o=YIGiqjHvoo^=XOWSeXL`LP`gC1-;%2 z)X*J28#y>DVRnKTYZ=B^34MvSzie{7?zT%RQHF(ip$}cl2^%*d0br8#snUBrx?js`5 zAymgcy*Wo(X?veh+Qn@)5fhAFG$v+;s6dk8t}6wdrBxaLNjZo69ESvPamThgY*P`P z^|MZqL(-w+v)?Ir9#cpBW+j)NIYLF>fw}o!&M4vXr3k7Jyw;K~_b+iDo}{D4!QGXV zhmm`%kYTgkKX?yQ<@%C)r&Hq(7-aTF+K7-1qbnJ>F#r|)N1LYfsl4BY&^xA0*r2fN zgRAhwj(FyV%wwk_0%u0M{48*lJy)Zx0ir4ZxyO-Wh>j3qaw`fH>nqV{CqID?m z^iC>Z0bWwkB?{Y>I;I4blJNLCUg5Z>3w=uvovHBJF-3&0A_Cvrz&fYy$1WQ2DXEA< zPFadn#34NMJIFNBX96av>Sd``SYa1g$5bO|%d+4_I#h(yN|hhlc-Ax5nt(M*5ke6A zUCJz!B7_hI>;eadd>=8G*H$L3`IgtsmP3vC_CBhi|ROm^aQ!hi2HPnso$vX z4C?yzl+>~Xr$8zvO#q$fFgD$oH*6mHfw$qeAMG)3ABp6xFj3Z!^8O7HP4@Do0Ju5c zBw%u57o&_h2_$cjc5ot{+h_+KTT&85BAz33&*hD?)dqKIQ+p_VF!s8sWR`M)3(OFO zf>olv2O?91N-?s4RL%%vCJaAGI7Ch@fXuWNX*8ci z6Ag3(X5e-}6H4lAr#S?~PIE7}4!dI!0U2@zc4cHbKm>%bF5Q%!L1K@lKHaQ~2yhVf zOexJ$RtPK2c#Nb%82fS{S%atWv{FFziW0HjR{kR1!3YIEgAtR#S82NzyrD;Q_bkt5 zi5dn;(kt@rD`fBdsD%pjTR~lK=cS!i@md~EBxw(VebpU@W;aS{A2@X@ z<7)E!Y6Bn$kIy~OG$RXFGy3|NCtl~qMH>_-HS}vD&yI8-R^fa(o#)Pj?P8@PQSM`x z+Y&xpzOiax#a=6!5a(S@orqa5-7!vt*B36ft8Gm>2qn{|w|A?cGz z-kEO=qI@i}z(wvVtHV_O#yizc+6QyrJv3FNn(vxd7Vxbb@L;;)+ZQ+4ZiXJK zVen{>a=KBZaCjAi9m|OmkK17o$Yq%DCsq8=N{9vVG+OLLr$OFw76dg%w<}eiCcPxw z^SI->Gv)k9xl~1}KFS`B2P~nDf+|x2ag5Jl6wP@gSX6t&8B5%c5*zc)W-Cl6z~J1R zhEv;=W7rMVALu!LNTT!P{op4vPkT3 zkJNxDu*EsLS}^@(+LzawXf6SHv{;0Kmkq0ZiA<6W=_)NE8VA0DRW~CU`wd?UvU1MiP5 zio3UYd)&NYQufZfC7=$+qGEZwzT|77u^YU4mRIreDqr49O5U%{CK05d1&G4HwO{y+ zp&_u??CavH=|S0D{|pkskE1ql25;KBUtdiQ+Ng%6@cJd9A$I-WSXBpXqqsyeHfC1S zFtkP6#_5iSQdlsP&o`BeMmCgS6a^-?IMl?kbxbzw?=@bxjH8K!On6bXz)_|Q-96$c z4jjaJ{g{|9gE3x|Iu6QsS)-G4jD`7>`our(qDlqUY~T^!uVuQhw3SOM%8klq6%$kd zZlp9sLEvZ#&zmloW%DMRm=qRJ?(aBT#szi-ST!FR8n0PB$b||=dHocQK;-9Z7XB0r zgDH)mfQMWe+JoBoEoGk$&dD=7I5VpsD~=RelWBWUFP>y$pBt=tc9z7t#0{{l zJIW@*sY5ER!2=Wa!6Q}OYA|a2zDcP6JppQ(wjj0*^_Z{%-bR^e7SJ=i!crOl=1QvG zJ&p_nZ{EgX`ok?Y5gmZtyK6BSjOdiF#4!RDDI{e8u}21*RNC|irEkAKZX$95uyD^{8t1?d ze7&XG;mqm!s_(yg2sjucB>wORM;j^7EU}KHs@ovpSy!jkP=a>;0Qp_Z{X>jfya1t8 zLggZ5rsfVhr*p{V5GU zZQz>+NBOgb`98)9_Sne|23IOPH?Gl?Kl-|gb;}^;;P9U5rD`1N#zD4Cy)6YXE;1q zjaNa~;b`T*-K0ZkdZmrma1OR2_^k=6`W330QdKo|ubHl@hM#Ja>UvbQ=Da6*Q|sET zLJJE-X`rCW(VX&qrr{<+ih=r`wxstcdS^M$2$+XmV<{$}Vy{g%lFvX`dp^FxaM<^* z2zRsg2RPprTtPmPNrQxM9Qn#cQUdZK zMP?(`Ey+L4la3b6(F6-Ohc$V(P*}}aiK@#8oW{B&UF2WhO=cyA>yDJ03shn{D=|Eb zBkIo;9U-TAz@j7PiQyrSqWPe}L2SVT#h*&^2LAIG;m$^yw~T5@Ok^c0HQKBnosveU z+=M9^R^(s7 zR$yc>rjWeNqtVMTY-9vpuS<<~!RKh0{ZQtdszR<9a&?uBeTkeU2J`Nacu>qllhoQ# zYt6(%H{De+EE^$bQCPHiRSX*(alY$sUAFZq1aXccUQncd#Ms7cM=e(dX@kxU>kYwe zmdUUSqh2NqrQ>2(L~A5=E1h0Hu0xN^IaNC_c2{PB#&%L;LCHq|kqy)GWs{Lh#gvMV z#hu1~svAnyR_xo<_Ej%sh0V!a&M!e&i1z|Fjk!IhW&T^XV>RxmZnX9StBQ|>wRZNj zSOt@|?DGKUTlNXr=mpZ3xw3n#@PD$Fuh6T&K&zEc&({z2B$g^R=*>XrGU^j&MQC3w z>FH?AfOS5ZpbQj>Mm33)lX2adNG506!Zr;*g-vHyMQhyi5sG$xv%6hB>9MKc6U!vB zX3;;b*)Voi4M48al|7ByI?3pjq_X)NRq)6{dY3j3MDlo;*m6t_XI~aVA(_@Z!|0T? zyD@hBlW}(R@u@r`=aKJ&%s!+ue|M=Wy8*icTT!%QKwV=$kgs#Um!>dVL$7$tcijo! z)+44WZ*+&XleQic%Ek#G8?;J!b_%!6Y{XJwY-?DX-)+qMfXcDYMs0T}tYtmNB$~VZFja zxUK3K^-$dF@^t89H|l2`Kb~ttYof!8HrN_9!POXcjMBWjeJgUC+Ch{&KSAD<~V$zEctEWU%X!wh$+1ILQ^mqnF;2fOX7B_t| zV5|b3)TcF}1^xq}ATSpewpTA~!0Gtt-9Hb;O4Rg~7{bt~R5%f1*{G>L9)NX(X|f`{ zSlrMCV(-)OQeW0*5(;WLo}w>(8mqC>?7k(GO+;sxJ;nSNFKYi)> z`ncb=W7o`VX;GaMy*ECI>4g0QkPY0-IC(jLM0a#{E#Qx4x&YGw#wR|3GO;#&qV+?H zuj&W8aE)#s1E`ELUrUC7nbbHy*I#(*YO!#U`Q@FEHmHh&DVzNv;%vt_KNZXkfB zg>MpL0&TjC({;;%p^vmz&7f{fvxyPoZm}$0D2fl^+CpREkR(>8850-BvTlkl*t|FC z`i8FhWfv=kxKf0Xvx%MT4BmoD2oszK>!D{$=jkf2s?L|CViG1%TUspMbR#)8dF$ zInq0KoEBO@P8P7S(7IFLc8>sZvRVv8*?!4WzUY=u-976yWl#;mkeO4ny+L2Dd9ZL@ zHIPpvO7AjhI~yEo136RYlsj3WMeDCK2;1^kWv7~GS{rdA$9P*OebrlF1^|S>jSK=h z+gjq$vTIb%v6?4-;H|f6-51N?{gPY+og-%PV=atpV*+UAft&UyW7zd16yg#1WlxXJ zGzq|@2&BS8oHMtijnvD8PBnG(Uhl=Hvn=QqcO7D%39@s4&P=vH;cjRGUFBTI3z-|xHN~KYb(_yoNHI^w7+yat9FOsUKYT`U&W z6pD2!Q?>Q^pF`D=GAaihkJQuhwh{`#+HHWVxY05y`UmW3<46(Mn+GjsQBr~kM(MFr zBtx%s?@sl%@T*}(G`+XQCw07H1WykaADvs>Rx*P`22XQGqiFP`+_0gM?ASZF&&t|Z zX9#sP_G?l=qbVkw9DaA?L8eVe)bm_3idnktMXVUVl1;9G*ipd<*-iGk$4#xpB-%xe zV}`PfaACdD9)@MW$+@YZFV@D80nKBMgm5a``WO{3S$A*M6ug3{27h^wf^=qU96= z@S#U1ZQ3G)+xi!or~?9TV~G1U2z6X2tT0-hw<6uev6PE7U)e@nHUh5p8*j*3*eCmW zUuyV~<1ghTFw5WjvXWs%ul%WiU;b^wmu-;LSy3b~oB%_-M-k`(8YARq)&T7Ed|wvh zPQ^1*YVe9*IMizpYXPuC^b&G*aWL0@Wl^3pYs`FlejGQ;D^MPP1)!V6wLqA~J z7|t7jOm?8D0FW4B&z3q@b5 z6n&|;D*@~eMmp{I#9;Nf1;=W~n&A>AUM0^r41A^u;F{D_rTtLbgGb)mCLSCNEuK(_ z&`Ze?1hWgvU6MV}FZ|BWl_@jCyv({HT*lU`7*yIM(Sx{iK|H$yP&E&x98#r3PWn8EEpJcCBzHTd% zDgN1_~fdsrzi|=2e&k z-oujoxYMUgG13|Imdm8jn5DzkW^ike9qGh&cfAdwIk0oq2TLRk#y^7ABl4GR%2ojla& zoB#pL{-&&TY9nuk*ny;qLLuc9^vp!aT0}tU2ozt7pTb>@84#GuW0G0-O zh4H_>owXMehe9#hooLDf+<-wH1Je?5ZC$NJ$cF!9OBg)D*t)6&PsBncvlGoDo`4+c7!$gP9h{l7A{F)xWs(XYzK@ylOz=vT*mH52cVn9l$2oYRMSyDx+-|15Ln2+mZZ5j`4ohx>~l& zXwodDB>4Cv{|vQ<40X9RV^fkL6W6X{5d|AGzB7>aS?XC#2Vkw^mHF9tRKCy=E3OK3 zBxy`$hFPejA!~xMFFTJh4?;1xlqJhpDtO~a>w#&AiSgbWLeUK%y+^%Txj|lx8kDLj z3)*%@k}Ol+bu95fq}8^uUOXpG+625}kDNTE9f+_XvNX_0U9U-~%7`rW-Q~Hs&<8!m z!Hu-v2B`|Wyqu`I1rjv5EtGQHP8SFT69B@Tf-(jW5iMtuH`l=WmECW4wIW40j*rmt zr_#0GK`TEj$15s^@&~cuo>{$14wi2hr5?0}Eya^gMfp;~d9I9n(};hu#&&1NAhKoE zt|GYMu%W$OF29|w%$gHwPVvikXLNt{eB3Ug{}6Q7Ql{LUz!)m=oq1S#qDFWTy$kCeOsXI)#$Aa)-i-1H}WmVkR4|ze~>)xe?QXd z`uQ7rLg+4^hinXiGwO-Ec|q(Y9q1c6tu-eOW2D#lH`omc@7QgAq*Q}zNi zp`;umMJ)hv1AGkZ12OtUTUezJLe%MAEQ`t8rWqj9KRI1XK22peGH}_XKyF$z@d%&Z zGMewV$M|&z9Lkrhmu%vp!Q-1!Nhrpk%)JL(MEWBH(4T@RB-g;}+{*xF@~IfLqSf$> zq<*HJZkW0SykPdljsRo~zq0k84E*wMCT84B!!087lwr1R?h)IG&g&rLEQsrdoa0d45^}Y>NCSkBqKca%KfzjZo%XeIUF0ROJ)4 zbzB*6To^)*X=ZeF!c4kvDL+4o=ijLhfQUa?A~mrj&Y<|LQV#&(_9$ismC0mbSxOZI zmeL^FCOI7((rJV#?$+HjkjU)Pa?0?jbOQK5UJ^+$B}r+il{B{jLLv7v}`?EQh1*1#Hk!Ptr9X!>#gr~P%ONp8GLF0ZHO#mZ)-EmqRXQ~U`@w&Ng58Ke7 z7Lzg{HnzyP4k~MQcaKcX4^1J*+!#wNUqx2{!q>gdFc%~_JHc`Fy=5bu+D0BQ?%r>N z%)u=0=Q;(@{?Wt5H{Wrk!V;#8LyQ6=+r`*(6POi~5eybzNMd|ay%_SPvn&;LSC^Us zk|8Pxh7*my8>ZA zjOwf^V8IexPNY6dmCCONBjhj;D#coxhp~qkVeXdn8KQS3KRaaXix6V+`6*}e1jJ<@$^_AeZdLiQ^wZMbi3(9>BVZ^f`ZI4Xlt#I`pr|6S+fxC)pt@YfzzEC zIB8H8vh|Q>`f6gk@v3{`s!~5wb%;>XguX`54d5}AAvl72UyL+vJb~kN@TuU*V1hk) zH_||2FV3BbFUdP|g_t-JW`e|Ez-Z8yY{@Cj>&|s#9yBlEy4uZ&ok;$`!+hmOhpMqu zbj*h#W>9w)@kt*d;Z>b*%lgBfy=fM|lSI>wlZvp8_9qO>v%txsucYUtYX2Go_uOx< z$95=?+ucHPb>~`yPm$Bb)!bn5q8L?A#Xiw+vZkpaNniCDv+W3KQ^RAztXgU$s`-S@ zq!lmPj&iR(S&NCc#3cg7gXA@15of)rXyvxyl9(mG(P1l0YFvWppEL^^Ozx004A$li zxcHW1ESP|ICdTX(@(Mk%=D8UGV zIDemem~gK-TI&|8AJHH5Z@{=V{sLBkzF|t>4Rglcwr#D&8`f$1hQ67sHiTg6zCk~ZV>(uEN+c#q#>IlDcc&xD#-(bU*bS5sZlQrS{GGT7hN8jrO! zD?pJ@u+Zearx94$1RjBdryO!QJ=vggbxlhB!{^xbu?<|ZaMYF8Q5{c2qo~!5ZGwu0m*!VfBZB&_R;7XSg$?m71&7SdOr(ZN5Hs*~w*>j-SZu$?J_*wKZkMPoCvP!1@5mtV3ZTTLFzOW(mhElGPF6 zwK=iT3Zc%710Q+sBEKgFU}Vrr?2`TyurXb|=A+xzr(so+uKMV4EPClhz-7_uT64pf ze3D}N170o{yKRt@=d*?dZAl>INK0}}SN3JPXD=v;!;|^$4_|pW?nm3b>eu_XG~o{M z)37K1=&e!_;umuzE0R*YxlH(7998j3^G(E{JSnoC9hENp+*DdQ@lM-$3^Tv_csX^) zPMgyXM#r+exBQD;XhzKme4h;_c#D=?`A{bQ!N!uC#tsk;opB$j6%Gw6oYum+IjizL zy>}e$)uVfYn4m=#2?5yA> zvExdiDFmkDZ&+lzM#-5{&KDF3yhuVK8*xivqJv1;BaUfk4v`6K+CiJQvQ>=G+$O8w z)_xc>TC}$d>_W2h$cwY1(Kwh+Ma5iFkgmp|9s~A4P<_nD`_KDsyC3M(ccC9*IhXc` z9+;9BWJi`*JE{mbO!3_OF2sbZuIL%utzLYh8Rw>SkhoQ9rS{=#83f-a-?x^doElGtZ;ats z`F611m}fwfJytw+IC@viK>ur_8rvG9D_}T(!AjwUn(4rN&8p~^T~44G3O$uCh;P(c z`LGR*RNd$iD%_8#QHbXcJyWo(-y1cnYuJ4l0G>3{pKD4Vp{1qu=z9 zRqV*WO?oVqmv2g!|2cepWO-;m9_Pp7uJjusr-5HW>m73N3=TkXUZsE@iyeQ-caTF( zgmU%TEac`v=9|eEEV^zTO2tjNa{5c?L<_inRumk|v^z zH3LUaLX%2>?5(27W*+8jk&69xINNiKg8QKl?0kzI6SqQd9!ss+wOb@#@u36UC+BOA zr%}k11fwH!$bFd#NWSRB1N%Sh_(jQlI>v8h8^69Yo6M_!7kHUpeA#^A1L5`ejxePY z8CAMs%=PW{HW%SX#2`kzC~3W8ez)}v3s3S3%w$O`9QT)MxB>!8Zp#gt5^mP%^T|+* z0GjUq+pmcE(B~~l#Mql3!~1vcQ*X;W+{b%eM$afgAdJg|YgBMXO5674e4D5e_<0=GQq6Fj~Qj~F=xs`oM0_w5xZ5~T|5wxqwNQ`tUo2tJl#oN z!Y>UIEhHXZ3Q34Fanz9EXf8N}Vjtc59LqU^?eDgO@*f54mPDjKWiSr=H8Y<9Z2Il7 zN=mo8mTv7Z?TE}4;>F*=5yl>SX2ZG#yetgz1q)00fU4xe(k5ZPjMToe2VgC5==WJ^ zz3#4*QRI+By=W5HS*(MM5DyMQacBrK*#b@BKR2? z5=66Ip0(Vbd@++_mxfC9TO;aKc0YXbJCY2Rurhj5n#yXx+~C8g#O(I<1A9@b`3X9e zi3onA*Wz5nb5?o?1dzO&bj6DV-2wzF$?EO|aMSfH66S!zc&2-x7c^s_e@JpgXiwgh zh^K#lpnzpzph~g~TV&ZiPck^{8id^o|q1zs^zo~}ML$RK(Wu^T{ zeQ8^N(3DAgOB>a1*A!+ubm^pr_fTu;mdwJ28KL z1G`o%^=9^&3t?+RrY^d!~Yq2s^7+Srq45;;%r^(bz8tAT+%YeaFT zAKgeP6Y^mOI{a7Y6rpA>RTeb-7g+Y7CW)O?SMAZmvtZ%h+;c9j5I989nkrSX+`k%S zNL`qxr7Tpgaavlf3GEAbgoU!Zg-D<*Yx!b~r{^TuvmbTF^5_KAhWz}I%YqkED;Uy3 z2lFgOxZ^wV{0?76sOMSlj2coudy7MrQeSy@@qmPXl|SMkfd7Ek>CuGt!b)y$G_~f_ z<`;Uf6xj&m`|ZT)`$a=7_0#<;Q^q29-WTMWC0_yUeC7}ya<(Co$?4j-;}07@$W?8t z>}H$9P+YZ+!#OPdNVQ2{TxUpX-N)=7uNO0)>pH{82rjw^t@a4neGtJi1*d6xvQOPdoK$*pgQ51l*z+oc`Bm~PY zMlh$snHt-(;Cp^<&Ea#}JWiEsa7=tx3x0Zga5Pp^Inhqkb-y}|%~%EE}E@t zD{v;jGn{diH93762`BG)k}l&MBF9vw(teIElyM@Vb58MX?=>}2v&cEKoZ&J{x3;;% zwO~o>G1WGm9FP}BHeRTO@AiCp=Kv6304kskP=JB4tht9+Y$4|;Zl$un7e#@4DwS}K zOy49ds#`s<2QRP-ct%WXmNJ(comQ)<0+4g}XbTL?#P==)WugtK;((4CP%G|!VicRHec5dx zvljBwQ98ZdiC&Y!iY%uxp z1>-?ZC%G^41#2NF5Wvx-l@aquL4+J}8X>@~00IcWb#aXVB;^3$op1|+(itM)_#ccs zuOU#L7BPk&fdpM{pH2wB?hLLeQVhL|5z>)_5h6Zt^eA(~sJ4iaQ4rS#snX=hz{0?k z2>}NK%K-xAWjRP*mMT>SPAXYE9)6cXh^As!O5!J??y^#0z6FuCN~2{LiEYN|uD>Xo|2QF%;#Bzf2rddHUlx zqVndOw9Yyu)}Jk`Xo$dNyls|LJcxY-QD&1azGq0OU1C|utiN?-!$KiI!88APQtw3Y zNuEcv_mWP5y>U2H?+4ZkAN_fSQbOE=+ILGWsYLz(UCHVFcoY&}mAGjpN^ani0z$Zj zB*;)RN4IV=Uja6QrM=HmXlcNw!7AsV04zQwqi^1yWPcXS zWZ}Rd3AbGsc$}kx0VfTHXC?8}OxbWyCXoKv0nV!uHKu8?nT_>MpP6J- zq3#C#&~FmmKMCA)Cer=eV9vr17h#yC7VsZ4e+Tp%E5a?(ZOR?GU#7b(#{(g2F_aWq zR#Z(lOslop4hs=>T#wfWAEU!{&+py$>3T*`3@2hpif$2Dju%8pCRZp`>RPX(PpAJ& z=}dU$9P|uFqOo`)saGnE0{FDzW?xZOQB_lq-~+p5PR!j34}@R@#c+b8Xolr- zP@o)q5V|>1Vf}ATAF>zBIpLUG4VK|Do#Cg{cx9ny@BR7yHn+CZnQSg!D3;2Vo!!0t zYOQ`CG@7k;N0hof$l(XhaHMLwVOn52E^@lu6wS~M|28D_5Rqg>-KPMsKp0JCOI$Ls z$=d9Wcoa%$50!Vr>i{q%rz=t>Fn}9917kj|pux;i25mMHnVlm(eXi0O@bL2Svoy$> z)~x0_>Fny#8rb8vQkR@SS09)&8}nvsKErRUxiMUHQx$5uXB<7E`=;7?*j}{4BUqrf zg(F+cDyH!~8jsCmqLKB%V33 zf_d191aBJ9fyY}p>s;N65XlRN$KYs>>M(O^4TB?zv-;8E3SwI8o#c1A3QIZwh-U*WDa&z~< zWbR&j1KBiBIH}t+xOmD=qLZ`eGEFHNTTW7Ttd|RDnVFpsSPq#^Ffq%sfiiL?Lxr-A zQc|D3T!l(isuK~jJm>z}Hy`rx3kV7cQ#X|}$*dDeC1uZa%{WPea}T(pnj&ecxjHK< zo%@>kjCu_kHE9;pqBVI6V#IODjm|l3yL5KK$pYeJTG<0mOK6{;ajv>%+Kf|98#U&< z3#35$S3`!4$jHjcD<~={tEj4}YiMc#U=sa5jG!1^MWS5_`c(8GGkYh8%9YL&=gzUGUKG2EfVBvKa&3y+8tIZ9Y3??+8md1~~+Bd#$Xtihm|G84hT z7EwV_Y&wrRsIEKdTpV^AcxsxCnhZ1OD=Sl3;AJD9?lQDJt>9CxvJ2O8ns3Xp_>gk zpZ>0dpg~ znK_)AM)P#-o)XxiA{n;?OA=}oZ8F2*(&M_jJwB{&1NksAX|{hZnU&GvzkhOM_7Cg+ zB=91LLYT6(1HwwFMv)BUKy?cvKzw>alwz)gHBAv}KpR~QTBy#>SX3`YJk4r(KD6uW1 z*Tqy(;*Hk*B|172l_>%74Z=~Gf3YrkK3#00R7`6FC3b?tQ6nl@s*R$FL2 z+OdNKlriuH;Q+yH7cyh+Kp2`r=uJ2RleIGsz=s1AKAN^pTE1S>T9vae_E(g|^aC`I z-4S=_m<##Rrnf>LJruD)yo!ACXut6v+waZ~59>s%)Cel>Gf`ArS;Wf0lec92!=hi% zPG@+|@zsdrBBM(3dBMx1RBp@Z(Awjo9Md}mj`Ok_*ZIowAaG?+= zKqR99IMOOBz~W6^0$Rut65JpzA!-jMEy7t-JX(2$Fb#^??#bMch@P;AjH#D6{rAtW zuOn}bEY_2MMW!S=Ml^p4C>b+;Yhvb62VL9sV3MqM|Kk?90bh21JQQv+g~sBK9EEsZ z$R<&!L^})p8h~I}!~hnKL=*7vL@NV_Hl z3&7`gw2)8seNm@QN`;5MZS^Qxjf~n93Yo&U9yP!Mc%myeE!TL3UV;RIrZi#EA}`Sr zF7cggNYv4AVbL199{Kb@D>1RNxq}6!N5JPM zOb~EuB^&{A+xr-CtO?NxOJ$3P>kK>bi;~+8KNl=gJrNXTgej6Amx{k1fPfo$e!6B~h=CL>h=C5Q^KsZhIBX?%WRVnDKvBp5xFlu=k8%tong}%B;lWI@ z>OrAJn4lqlLX;xg$4^cw<%cT!d3dgLRZp)|jDT0(^fl5`J>T}Z+;gu_H*3@v4X>x$ zVKloto6kMGE=Q;)cfxm2PL@{pYHuw2Z6V(%=9YNj!+cxq@X7}P4?GUC+wzAX!6nU$ zp7w0%g(udw^-h8T6mx_40OurlWj=@?hxvBATiZ4}OouB416W`BjXK`Ag|0c*YfhjuDfO zu^b_AJGI)>3tsR7gjB0z*&04{nu%H~Wv~}uXq)fwzSIDDK|%Ailsu1XC3bOB+G#O; z09;^X-e9D8D59c{#k~nm8IXZ_Tu$^_sIgBcocVPuv4Nf^ng>k#-af?CBBw6KAPm7W z#`J~~&KhIQI+AQ4H}ym^qWFm9j;Z7C2p0U&h|CSoF!4%9Ooqou1(gL|&AlZx&%`6}v4!yXIFl;NM$u|^jy{yG0O*29kN)S{(n$eQWB|T; z9PGbp5W2_p({A(7=MVLutUb#GxH5zB7@Xg-nkV@JMwQJpyok7-*~*H2wre5`wM>?H z?EJWi)zxIzGJx}t5|sJoH}2JsgKh0wqq1!i{7FPB5~}&~zg%uFdbho=h^)yGF%m^} z(T_o2;GSqm_q$e~gtXYk3aYyJfaWgic%6$0>jdAM;3YNlpJ~=HXJ)x*j{qNEYAf#I zq+|>_5qxno{|kr=ntQky$#m3>&ow4n^ln6qHXiuH%z4PHx#@nq#cmk$TTVQ=nracR6#&%zw# z0=`LW($}!H(Dz)ZII+)FhZFlX(38fb9@qX*8ev^NWrA>`G|t~%E0#;dBvzDsoBW@7 z4Qn{V9`>+?Gn`=$?|ka5e0bq@u8dWlsyd)DDLoZay{1}KakusPmTu*iF1=M0MNt%u z?t$Tb+vC6b+oqQ=Dl|Y348cSXV4>}eVN_^<9vB5KJ%xoB!>G^zJunJf*LCYZi$Ch^ zuta9|+Mx}WtXQ+rb{Zp^71T1g|IpvSyI(6h zKExr2a+lV4CjEE);rjG$UEuNT&}NbEOwUJyMOmX&rCl8lQoF`D&!>HDY8?k1M+Cy2 zZRhXKkGDl)zxH^|yjk4Rt3;u-*y$cbYrzCJG2VenV~;?|A=(=gMxQooEezei%Gqv{ z&q%vHb!#V3b-m{h)1;^0<73-n{!Cy5b!%h6k(Y5inkQo!`v9fdIyH@;)SYlxE|uH4w5eB3rTatwPa z8+m}CQgKQCC{9gxm~&^X%58Y#Uy&iB)f>uARdAs3;taa8xqkP|9e{O}-^jC2uCcgV zM>f#C<5esK5>tv&Zdt8SC(>3~b*QCggN;?%Qt);*Iip1$G(jsJh-h2^$7?x=J;dC; z*KFm#f*o0CGHfst?xHcGb$f-8dcuJqI zr{Ee-Oyh;o>MhG`uxje?JxYfC5z)+iy#78^0nq+kq5OR&Y1wKthS~~ zyBw@sn1+h!a{XWvDPdRBqG@=LJ%ZM>W{!Xb!KnV6$}Fs#wH@$W%nXbg7mJYoP5e$z zhdy+_yWd}K&&}4mv8|gv4^iSu=t--BWsifcxKJ$;NHk0&fVzMXq@hg`(SX)+Ixi79 znE>hn0^P+BoMLz19K|P##4&Ray)$2hM3Ud0`o-~BCv7rwjy@M5HH>SFD1OS_dHWp< z{}=y{3%{oSmcaF=?`z2X|NPrOBY%T`-u(Y>?0;RTme%1jsh)f9O1c>QrHq z4!RhvGH?ImXqn}zbLA#*$I$uEmL+Z8j&^x2Jl3AzJ?9kp@tZ|}l$M}qX42T(!nv(! z1CSbEQeZ_dae`LPyZs;j!uL1C|DJga{Z)A9{`ni^AHNV|%8x*2H+|%O&HCr0#CPtI zJtg;YY`ONE<7@m^KbaTq9z8~vvN^@!$1lZ`54;WS_#qzZLw-o1F=4$!{O~P-S^oqB zyFUuQPmFw|HE-SMGe@uO-vW#@?0WRu`{q&pE35$ghrhp}==gL_RR0ox*AM22JVTGr ZspS4gfAH^DN&f3B4yXUcex~u$HvnfO3BdpW literal 0 HcmV?d00001 diff --git a/src/Fonts/WorkSans-Regular.woff2 b/src/Fonts/WorkSans-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..fac1d4528c8208b7ef366fd347dd1c9130f7ed41 GIT binary patch literal 71988 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�HW=jV+Cx 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 j2}~ z(p2k8^%tm*YTC?rIA9qFEysRc_O+P7!ba`4Sk2Y)xI&U(n*e87Ded!t z_;u{l@V34bT_s(jSkUb6#syPMj@5~2AVV#z%@)&3aBWf+bU6in9x~5PhSHJQvS**4Y;Q$ao~DBM&UB9Q{^jYZ+n_w^<47B7C|{Kz9XhIsHk=?rEL;kFDR z=b{8GAF0HE*bEp!iMO#z5=TplmNb@=R%1YH1`M*Vc(A8*_O;IvOu1-DGcY^r(tI~q zd!i0DP4BUM7g6`;BG?QQb7$TB0K@%aZ~gFF{9i`a#~*7jB~N|xDt7~4)&HSk zAJnU}CCQx?^fKNS;EMaPw-^EKxs%CNuY{G!&wUVwZR_! z*L%TO_ERiSj&Lx;bC3)A*7;jf<}Yro;g{A_C-rrKoph9KvHdgSUR^ykl;67()8*4Xmdox-LgM44USx%@_q!N1o0zvVjdAK~*1 Ir28BI00mJPBme*a literal 0 HcmV?d00001 diff --git a/src/Images/Admin/kk-logo.svg b/src/Images/Admin/kk-logo.svg index 37d508a..91f630a 100644 --- a/src/Images/Admin/kk-logo.svg +++ b/src/Images/Admin/kk-logo.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/src/Pages/Admin/Configuration.css b/src/Pages/Admin/Configuration.css index fa66a5d..68db4d4 100644 --- a/src/Pages/Admin/Configuration.css +++ b/src/Pages/Admin/Configuration.css @@ -1,7 +1,7 @@ /* taken from https://github.com/kontent-ai/sample-app-net build output*/ /* and prefixed to not affect rest of the site */ .configuration-page .button { - font-family: helvetica, arial, sans-serif; + font-family: "Work Sans", arial, sans-serif; font-size: 12px; font-weight: 700; line-height: 16px; @@ -13,23 +13,15 @@ text-transform: uppercase; } .configuration-page .button-primary { - background: #db3c00; - box-shadow: 0 8px 14px 2px rgba(244, 92, 35, 0.14), - 0 6px 20px 5px rgba(244, 92, 35, 0.12), - 0 8px 10px -5px rgba(244, 92, 35, 0.2); + background: #6956CC; color: #fff; } +.configuration-page .button-primary:hover, .configuration-page .button-primary:focus { - box-shadow: 0 0 0 2px #0093ff, inset 0 0 3px 0 #0093ff, - 0 8px 14px 2px rgba(244, 92, 35, 0.14), - 0 6px 20px 5px rgba(244, 92, 35, 0.12), - 0 8px 10px -5px rgba(244, 92, 35, 0.2); + background-color: #231f20; } .configuration-page .button-primary.active, .configuration-page .button-primary:active, -.configuration-page .button-primary:hover { - background: #953000; -} .configuration-page .button-primary.disabled, .configuration-page .button-primary[disabled] { color: #8c8c8c; @@ -105,19 +97,19 @@ } .configuration-page p { margin: 0; - font-family: helvetica, arial, sans-serif; + font-family: "Work Sans", arial, sans-serif; font-size: 16px; font-weight: 400; line-height: 24px; } .configuration-page .headline-large { - font-family: helvetica, arial, sans-serif; + font-family: "Work Sans", arial, sans-serif; font-size: 24px; font-weight: 700; line-height: 32px; } .configuration-page .headline-medium { - font-family: helvetica, arial, sans-serif; + font-family: "Work Sans", arial, sans-serif; font-size: 16px; font-weight: 700; line-height: 24px; diff --git a/src/index.css b/src/index.css index 92afe09..a282f20 100644 --- a/src/index.css +++ b/src/index.css @@ -6,25 +6,25 @@ url(./Fonts/PTSerif-Bold.woff) format('woff'); } @font-face { - font-family: 'Source Sans Pro'; + font-family: 'Work Sans'; font-style: normal; font-weight: 300; - src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), - url(./Fonts/SourceSansPro-Light.woff) format('woff'); + src: local('Work Sans Regular'), local('WorkSans-Regular'), + url(./Fonts/WorkSans-Regular.woff2) format('woff'); } @font-face { - font-family: 'Source Sans Pro'; + font-family: 'Work Sans'; font-style: normal; font-weight: 400; - src: local('Source Sans Pro'), local('SourceSansPro-Regular'), - url(./Fonts/SourceSansPro-Regular.woff) format('woff'); + src: local('Work Sans Medium'), local('WorkSans-Medium'), + url(./Fonts/WorkSans-Medium.woff2) format('woff'); } @font-face { - font-family: 'Source Sans Pro'; + font-family: 'Work Sans'; font-style: normal; font-weight: 700; - src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), - url(./Fonts/SourceSansPro-Bold.woff) format('woff'); + src: local('Work Sans Bold'), local('WorkSans-Bold'), + url(./Fonts/WorkSans-Bold.woff2) format('woff'); } @font-face { font-family: 'Core-icons'; @@ -46,7 +46,7 @@ body { margin: 0; } .application-content { - font-family: 'Source Sans Pro', sans-serif; + font-family: 'Work Sans', sans-serif; font-weight: 400; font-size: 16px; line-height: 1.4; @@ -323,7 +323,7 @@ body { } .application-content h4, .application-content .h4 { - font-family: 'Source Sans Pro', sans-serif; + font-family: 'Work Sans', sans-serif; font-weight: 700; font-size: 1.375rem; margin-bottom: 0.7rem; @@ -332,7 +332,7 @@ body { } .application-content h5, .application-content .h5 { - font-family: 'Source Sans Pro', sans-serif; + font-family: 'Work Sans', sans-serif; font-weight: 300; font-size: 1.375rem; margin-bottom: 0.7rem; @@ -344,7 +344,7 @@ body { margin-bottom: 0.7rem; } .application-content .lead-paragraph { - font-family: 'Source Sans Pro', sans-serif; + font-family: 'Work Sans', sans-serif; font-weight: 300; margin-bottom: 20px; font-size: 1.375rem; @@ -1411,7 +1411,7 @@ body { text-align: center; font-size: 1rem; font-weight: normal; - font-family: 'Source Sans Pro', sans-serif; + font-family: 'Work Sans', sans-serif; z-index: 1; position: absolute; display: block; @@ -1427,7 +1427,7 @@ body { display: block; float: right !important; margin-left: 1rem; - font-family: 'Source Sans Pro'; + font-family: 'Work Sans'; font-style: normal; font-weight: 400; border: 2px solid #08768c; @@ -1474,7 +1474,7 @@ body { text-align: center; font-size: 1rem; font-weight: normal; - font-family: 'Source Sans Pro', sans-serif; + font-family: 'Work Sans', sans-serif; } .application-content .featured-product .product-tile { margin: 0 -2px -2px 0; @@ -1569,7 +1569,7 @@ body { color: #bbbbbb; } .application-content .product-detail .option-category-name { - font-family: 'Source Sans Pro'; + font-family: 'Work Sans'; font-size: 1.375rem; font-weight: 400; } @@ -1677,7 +1677,7 @@ body { display: block; float: left !important; margin-left: 1rem; - font-family: 'Source Sans Pro'; + font-family: 'Work Sans'; font-style: normal; font-weight: 400; } @@ -5615,7 +5615,7 @@ body { display: inline-block; font-size: 1rem; text-transform: uppercase; - font-family: 'Source Sans Pro'; + font-family: 'Work Sans'; font-weight: normal; } @media (max-width: 1111px) { @@ -5723,7 +5723,7 @@ body { text-transform: uppercase; color: #ffffff; background-color: #b24143; - font-family: 'Source Sans Pro'; + font-family: 'Work Sans'; font-weight: normal; font-size: 1.375rem; padding: 1rem; diff --git a/src/index.tsx b/src/index.tsx index b83e739..bad3f42 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -14,7 +14,9 @@ import languageCodes, { englishCode } from './Utilities/LanguageCodes'; import Cookies from 'universal-cookie'; const cookies = new Cookies(document.cookie); -const lang = cookies.get('lang') ?? englishCode; +const cookiesLang = cookies.get('lang') +const lang = languageCodes.includes(cookiesLang) ? cookiesLang : englishCode; + ReactDOM.render( From c7f15f11ae251174c04ca7482ead45a7125c47e9 Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Mon, 22 Aug 2022 13:17:08 +0200 Subject: [PATCH 11/16] Redirect to the language fallback --- src/Pages/Article.tsx | 11 +++++++++-- src/Pages/Brewer.tsx | 9 ++++++++- src/Pages/Coffee.tsx | 9 ++++++++- src/Utilities/LanugageLink.ts | 5 +++++ 4 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 src/Utilities/LanugageLink.ts diff --git a/src/Pages/Article.tsx b/src/Pages/Article.tsx index f9b88d6..c9aaf3f 100644 --- a/src/Pages/Article.tsx +++ b/src/Pages/Article.tsx @@ -8,15 +8,18 @@ import { } from '../Utilities/LanguageCodes'; import RichText from '../Components/RichText'; import Metadata from '../Components/Metadata'; -import { useParams } from 'react-router-dom'; +import { useLocation, useNavigate, useParams } from 'react-router-dom'; import { useIntl } from 'react-intl'; import { Article as ArticleType } from '../Models/content-types/article'; import { contentTypes } from '../Models/project/contentTypes'; +import { resolveChangeLanguageLink } from '../Utilities/LanugageLink'; const Article: React.FC = () => { const { locale: language, formatDate, formatMessage } = useIntl(); const { articleId } = useParams(); const [article, setArticle] = useState(initLanguageCodeObject()); + const navigate = useNavigate(); + const { pathname } = useLocation(); useEffect(() => { spinnerService.show('apiSpinner'); @@ -52,6 +55,10 @@ const Article: React.FC = () => { query.toPromise().then((response) => { const currentLanguage = language || defaultLanguage; + + if (response.data.items[0].system.language !== language){ + navigate(resolveChangeLanguageLink(pathname, response.data.items[0].system.language), { replace: true }) + } spinnerService.hide('apiSpinner'); setArticle((data) => ({ @@ -59,7 +66,7 @@ const Article: React.FC = () => { [currentLanguage]: response.data.items[0] as ArticleType, })); }); - }, [language, articleId]); + }, [language, articleId, navigate, pathname]); const currentArticle = article[language]; if (!currentArticle) { diff --git a/src/Pages/Brewer.tsx b/src/Pages/Brewer.tsx index 1a86d98..034ad3b 100644 --- a/src/Pages/Brewer.tsx +++ b/src/Pages/Brewer.tsx @@ -7,10 +7,11 @@ import { defaultLanguage, initLanguageCodeObject, } from '../Utilities/LanguageCodes'; -import { useParams } from 'react-router-dom'; +import { useLocation, useNavigate, useParams } from 'react-router-dom'; import { useIntl } from 'react-intl'; import { Brewer as BrewerType } from '../Models/content-types/brewer'; import { contentTypes } from '../Models/project/contentTypes'; +import { resolveChangeLanguageLink } from '../Utilities/LanugageLink'; const Brewer: React.FC = () => { const [brewer, setBrewer] = useState( @@ -18,6 +19,8 @@ const Brewer: React.FC = () => { ); const { brewerSlug } = useParams(); const { locale: language, formatMessage } = useIntl(); + const navigate = useNavigate(); + const { pathname } = useLocation(); useEffect(() => { spinnerService.show('apiSpinner'); @@ -33,6 +36,10 @@ const Brewer: React.FC = () => { query.toPromise().then((response) => { const currentLanguage = language || defaultLanguage; + if (response.data.items[0].system.language !== language){ + navigate(resolveChangeLanguageLink(pathname, response.data.items[0].system.language), { replace: true }) + } + spinnerService.hide('apiSpinner'); setBrewer((data) => ({ ...data, diff --git a/src/Pages/Coffee.tsx b/src/Pages/Coffee.tsx index 45a94e4..7882fee 100644 --- a/src/Pages/Coffee.tsx +++ b/src/Pages/Coffee.tsx @@ -8,15 +8,18 @@ import { defaultLanguage, initLanguageCodeObject, } from '../Utilities/LanguageCodes'; -import { useParams } from 'react-router-dom'; +import { useLocation, useNavigate, useParams } from 'react-router-dom'; import { useIntl } from 'react-intl'; import { Coffee as CoffeeType } from '../Models/content-types/coffee'; import { contentTypes } from '../Models/project/contentTypes'; +import { resolveChangeLanguageLink } from '../Utilities/LanugageLink'; const Coffee: React.FC = () => { const [coffee, setCoffee] = useState(initLanguageCodeObject()); const { coffeeSlug } = useParams(); const { locale: language, formatMessage } = useIntl(); + const navigate = useNavigate(); + const { pathname } = useLocation(); useEffect(() => { spinnerService.show('apiSpinner'); @@ -32,6 +35,10 @@ const Coffee: React.FC = () => { query.toPromise().then((response) => { const currentLanguage = language || defaultLanguage; + if (response.data.items[0].system.language !== language){ + navigate(resolveChangeLanguageLink(pathname, response.data.items[0].system.language), { replace: true }) + } + spinnerService.hide('apiSpinner'); setCoffee((data) => ({ ...data, diff --git a/src/Utilities/LanugageLink.ts b/src/Utilities/LanugageLink.ts new file mode 100644 index 0000000..3084e7c --- /dev/null +++ b/src/Utilities/LanugageLink.ts @@ -0,0 +1,5 @@ +export function resolveChangeLanguageLink(path: string, language: string): string { + const pathArray = path.split('/'); + pathArray[1] = language.toLowerCase(); + return pathArray.join('/'); + } \ No newline at end of file From 7d4af66d4d3ad558c61ecb103f75b6e71eba15ea Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Mon, 22 Aug 2022 13:35:38 +0200 Subject: [PATCH 12/16] Prettier --- src/Pages/Admin/Configuration.css | 10 +++++----- src/Pages/Article.tsx | 12 +++++++++--- src/Pages/Brewer.tsx | 10 ++++++++-- src/Pages/Coffee.tsx | 10 ++++++++-- src/Utilities/LanugageLink.ts | 13 ++++++++----- src/index.tsx | 3 +-- 6 files changed, 39 insertions(+), 19 deletions(-) diff --git a/src/Pages/Admin/Configuration.css b/src/Pages/Admin/Configuration.css index 68db4d4..1ea4685 100644 --- a/src/Pages/Admin/Configuration.css +++ b/src/Pages/Admin/Configuration.css @@ -1,7 +1,7 @@ /* taken from https://github.com/kontent-ai/sample-app-net build output*/ /* and prefixed to not affect rest of the site */ .configuration-page .button { - font-family: "Work Sans", arial, sans-serif; + font-family: 'Work Sans', arial, sans-serif; font-size: 12px; font-weight: 700; line-height: 16px; @@ -13,7 +13,7 @@ text-transform: uppercase; } .configuration-page .button-primary { - background: #6956CC; + background: #6956cc; color: #fff; } .configuration-page .button-primary:hover, @@ -97,19 +97,19 @@ } .configuration-page p { margin: 0; - font-family: "Work Sans", arial, sans-serif; + font-family: 'Work Sans', arial, sans-serif; font-size: 16px; font-weight: 400; line-height: 24px; } .configuration-page .headline-large { - font-family: "Work Sans", arial, sans-serif; + font-family: 'Work Sans', arial, sans-serif; font-size: 24px; font-weight: 700; line-height: 32px; } .configuration-page .headline-medium { - font-family: "Work Sans", arial, sans-serif; + font-family: 'Work Sans', arial, sans-serif; font-size: 16px; font-weight: 700; line-height: 24px; diff --git a/src/Pages/Article.tsx b/src/Pages/Article.tsx index c9aaf3f..5d70582 100644 --- a/src/Pages/Article.tsx +++ b/src/Pages/Article.tsx @@ -55,9 +55,15 @@ const Article: React.FC = () => { query.toPromise().then((response) => { const currentLanguage = language || defaultLanguage; - - if (response.data.items[0].system.language !== language){ - navigate(resolveChangeLanguageLink(pathname, response.data.items[0].system.language), { replace: true }) + + if (response.data.items[0].system.language !== language) { + navigate( + resolveChangeLanguageLink( + pathname, + response.data.items[0].system.language + ), + { replace: true } + ); } spinnerService.hide('apiSpinner'); diff --git a/src/Pages/Brewer.tsx b/src/Pages/Brewer.tsx index 034ad3b..e361f66 100644 --- a/src/Pages/Brewer.tsx +++ b/src/Pages/Brewer.tsx @@ -36,8 +36,14 @@ const Brewer: React.FC = () => { query.toPromise().then((response) => { const currentLanguage = language || defaultLanguage; - if (response.data.items[0].system.language !== language){ - navigate(resolveChangeLanguageLink(pathname, response.data.items[0].system.language), { replace: true }) + if (response.data.items[0].system.language !== language) { + navigate( + resolveChangeLanguageLink( + pathname, + response.data.items[0].system.language + ), + { replace: true } + ); } spinnerService.hide('apiSpinner'); diff --git a/src/Pages/Coffee.tsx b/src/Pages/Coffee.tsx index 7882fee..a98f5de 100644 --- a/src/Pages/Coffee.tsx +++ b/src/Pages/Coffee.tsx @@ -35,8 +35,14 @@ const Coffee: React.FC = () => { query.toPromise().then((response) => { const currentLanguage = language || defaultLanguage; - if (response.data.items[0].system.language !== language){ - navigate(resolveChangeLanguageLink(pathname, response.data.items[0].system.language), { replace: true }) + if (response.data.items[0].system.language !== language) { + navigate( + resolveChangeLanguageLink( + pathname, + response.data.items[0].system.language + ), + { replace: true } + ); } spinnerService.hide('apiSpinner'); diff --git a/src/Utilities/LanugageLink.ts b/src/Utilities/LanugageLink.ts index 3084e7c..062e2c7 100644 --- a/src/Utilities/LanugageLink.ts +++ b/src/Utilities/LanugageLink.ts @@ -1,5 +1,8 @@ -export function resolveChangeLanguageLink(path: string, language: string): string { - const pathArray = path.split('/'); - pathArray[1] = language.toLowerCase(); - return pathArray.join('/'); - } \ No newline at end of file +export function resolveChangeLanguageLink( + path: string, + language: string +): string { + const pathArray = path.split('/'); + pathArray[1] = language.toLowerCase(); + return pathArray.join('/'); +} diff --git a/src/index.tsx b/src/index.tsx index bad3f42..b45cf02 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -14,10 +14,9 @@ import languageCodes, { englishCode } from './Utilities/LanguageCodes'; import Cookies from 'universal-cookie'; const cookies = new Cookies(document.cookie); -const cookiesLang = cookies.get('lang') +const cookiesLang = cookies.get('lang'); const lang = languageCodes.includes(cookiesLang) ? cookiesLang : englishCode; - ReactDOM.render( From ace344db5b7b375437d830b77f66c8e417e2cc30 Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Tue, 23 Aug 2022 10:13:15 +0200 Subject: [PATCH 13/16] Add dependencies to useEffect --- src/Pages/Brewer.tsx | 2 +- src/Pages/Coffee.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Pages/Brewer.tsx b/src/Pages/Brewer.tsx index e361f66..ca845c6 100644 --- a/src/Pages/Brewer.tsx +++ b/src/Pages/Brewer.tsx @@ -52,7 +52,7 @@ const Brewer: React.FC = () => { [currentLanguage]: response.data.items[0] as BrewerType, })); }); - }, [language, brewerSlug]); + }, [language, brewerSlug, pathname, navigate]); const brewerData = brewer[language || defaultLanguage]!; diff --git a/src/Pages/Coffee.tsx b/src/Pages/Coffee.tsx index a98f5de..6fe18c1 100644 --- a/src/Pages/Coffee.tsx +++ b/src/Pages/Coffee.tsx @@ -51,7 +51,7 @@ const Coffee: React.FC = () => { [currentLanguage]: response.data.items[0] as CoffeeType, })); }); - }, [language, coffeeSlug]); + }, [language, coffeeSlug, pathname, navigate]); const coffeeData = coffee[language || defaultLanguage]; From 34c679f0f72430bfdc6071e68caa1c5cb77cb431 Mon Sep 17 00:00:00 2001 From: Ivan Kiral Date: Tue, 23 Aug 2022 12:15:42 +0200 Subject: [PATCH 14/16] Update readme with language fallbacks --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index 2120386..0572b58 100644 --- a/README.md +++ b/README.md @@ -231,6 +231,20 @@ You might want to request items based on the URL slugs. For more information che > The showcase is not ideal, because it is using a combination of the language prefix and localizable solution is not ideal. You should try to stick with one of the approaches. Because it is hard to define the behavior for language setting clash i.e. `//articles/`. +### Language fallbacks + +To deal with content that is not available in current language, this project uses method called language fallbacks. It will fetch the content in the language which set as fallback language in the Kontent.ai project and redirect the website to the URL with prefix of the given language. However, it is possible to disable language fallbacks by adding a filter of `system.language` to your query. For more information about getting localized content check this [`link.`](https://kontent.ai/learn/tutorials/develop-apps/get-content/localized-content-items/?tech=javascript) + +```js +var query = Client.items().type(contentTypes.about_us.codename); + +if (this.language) { + query + .languageParameter(this.language) + .equalsFilter('system.language', 'es-ES'); +} +``` + ## Handling 404 For the not found resources, prefixed 404 pages are used for both languages. As the content on one page should be in one language, this approach might help you to optimize SEO. If language is not set in the URL the application uses the last used language, which is set in cookies. From 73d8cb2c639d69cefe9e4e41160a1c4ba0f256ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Chrastina?= <9218736+Simply007@users.noreply.github.com> Date: Tue, 23 Aug 2022 12:47:59 +0200 Subject: [PATCH 15/16] remove PT Serif font --- src/Fonts/PTSerif-Bold.woff | Bin 39520 -> 0 bytes src/index.css | 11 ++--------- 2 files changed, 2 insertions(+), 9 deletions(-) delete mode 100644 src/Fonts/PTSerif-Bold.woff diff --git a/src/Fonts/PTSerif-Bold.woff b/src/Fonts/PTSerif-Bold.woff deleted file mode 100644 index 19c01bd91fd5a6271d8150c4f1c037851e669863..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39520 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 Date: Tue, 23 Aug 2022 12:58:54 +0200 Subject: [PATCH 16/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0572b58..440a3d4 100644 --- a/README.md +++ b/README.md @@ -229,7 +229,7 @@ const Component: React.FC = () => { You might want to request items based on the URL slugs. For more information check out [Kontent.ai/learn tutorial](https://kontent.ai/learn/tutorials/develop-apps/get-content/localized-content-items/#a-get-items-by-localized-url-slug). An example in this application for this is provided in `src/Pages/About.tsx` page. -> The showcase is not ideal, because it is using a combination of the language prefix and localizable solution is not ideal. You should try to stick with one of the approaches. Because it is hard to define the behavior for language setting clash i.e. `//articles/`. +> The showcase is not ideal, because it is using a combination of the language prefixes and localizable routes. You should try to stick with one of the approaches. Because it is hard to define the behavior (priority) for language setting clashes like `//articles/. ### Language fallbacks