@sanity/document-internationalization 4.1.1 → 5.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +44 -36
- package/dist/_chunks-es/{resources.mjs → resources.js} +1 -1
- package/dist/{_chunks-cjs → _chunks-es}/resources.js.map +1 -1
- package/dist/index.d.ts +112 -88
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1075 -1337
- package/dist/index.js.map +1 -1
- package/package.json +35 -69
- package/dist/_chunks-cjs/resources.js +0 -8
- package/dist/_chunks-es/resources.mjs.map +0 -1
- package/dist/_legacy/resources.esm.js +0 -9
- package/dist/_legacy/resources.esm.js.map +0 -1
- package/dist/index.d.mts +0 -108
- package/dist/index.esm.js +0 -1625
- package/dist/index.esm.js.map +0 -1
- package/dist/index.mjs +0 -1625
- package/dist/index.mjs.map +0 -1
- package/sanity.json +0 -8
- package/src/actions/DeleteMetadataAction.tsx +0 -93
- package/src/actions/DeleteTranslationAction.tsx +0 -102
- package/src/actions/DuplicateWithTranslationsAction.tsx +0 -251
- package/src/badges/index.tsx +0 -27
- package/src/components/BulkPublish/DocumentCheck.tsx +0 -90
- package/src/components/BulkPublish/Info.tsx +0 -28
- package/src/components/BulkPublish/InfoIcon.tsx +0 -34
- package/src/components/BulkPublish/index.tsx +0 -181
- package/src/components/ConstrainedBox.tsx +0 -6
- package/src/components/DeleteTranslationDialog/DocumentPreview.tsx +0 -19
- package/src/components/DeleteTranslationDialog/index.tsx +0 -111
- package/src/components/DeleteTranslationDialog/separateReferences.ts +0 -23
- package/src/components/DeleteTranslationFooter.tsx +0 -28
- package/src/components/DocumentInternationalizationContext.tsx +0 -47
- package/src/components/DocumentInternationalizationMenu.tsx +0 -235
- package/src/components/LanguageManage.tsx +0 -108
- package/src/components/LanguageOption.tsx +0 -259
- package/src/components/LanguagePatch.tsx +0 -67
- package/src/components/OptimisticallyStrengthen/ReferencePatcher.tsx +0 -50
- package/src/components/OptimisticallyStrengthen/index.tsx +0 -34
- package/src/components/Warning.tsx +0 -18
- package/src/constants.ts +0 -16
- package/src/hooks/useLanguageMetadata.tsx +0 -26
- package/src/hooks/useOpenInNewPane.tsx +0 -33
- package/src/i18n/index.ts +0 -21
- package/src/i18n/resources.ts +0 -7
- package/src/index.ts +0 -6
- package/src/plugin.tsx +0 -239
- package/src/schema/translation/metadata.ts +0 -68
- package/src/types.ts +0 -97
- package/src/utils/createReference.ts +0 -20
- package/src/utils/excludePaths.ts +0 -123
- package/v2-incompatible.js +0 -11
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# @sanity/document-internationalization
|
|
2
2
|
|
|
3
|
-
All new rewrite exclusively for Sanity Studio v3
|
|
4
|
-
|
|
5
3
|
- [@sanity/document-internationalization](#sanitydocument-internationalization)
|
|
6
4
|
- [What this plugin solves](#what-this-plugin-solves)
|
|
7
5
|
- [Many projects use both](#many-projects-use-both)
|
|
@@ -12,16 +10,13 @@ All new rewrite exclusively for Sanity Studio v3
|
|
|
12
10
|
- [Advanced configuration](#advanced-configuration)
|
|
13
11
|
- [Language field](#language-field)
|
|
14
12
|
- [Excluding fields](#excluding-fields)
|
|
13
|
+
- [Document actions](#document-actions)
|
|
15
14
|
- [Querying translations](#querying-translations)
|
|
16
15
|
- [Querying with GROQ](#querying-with-groq)
|
|
17
16
|
- [Querying with GraphQL](#querying-with-graphql)
|
|
18
17
|
- [Note on document quotas](#note-on-document-quotas)
|
|
19
18
|
- [Documentation](#documentation)
|
|
20
19
|
- [License](#license)
|
|
21
|
-
- [Develop \& test](#develop--test)
|
|
22
|
-
- [Release new version](#release-new-version)
|
|
23
|
-
|
|
24
|
-

|
|
25
20
|
|
|
26
21
|
## What this plugin solves
|
|
27
22
|
|
|
@@ -42,7 +37,7 @@ This plugin adds features to the Studio to improve handling **document-level tra
|
|
|
42
37
|
- Hooks and components to use throughout your custom components to handle translations
|
|
43
38
|
- Document Badges to highlight the language version of a document
|
|
44
39
|
|
|
45
|
-
For **field-level translations** you should use the [sanity-plugin-internationalized-array](https://github.com/sanity-io/sanity-plugin-internationalized-array).
|
|
40
|
+
For **field-level translations** you should use the [sanity-plugin-internationalized-array](https://github.com/sanity-io/plugins/tree/main/plugins/sanity-plugin-internationalized-array).
|
|
46
41
|
|
|
47
42
|
### Many projects use both
|
|
48
43
|
|
|
@@ -52,7 +47,7 @@ A good use of **field-level** translation could be a `person` schema. It could h
|
|
|
52
47
|
|
|
53
48
|
## Upgrade
|
|
54
49
|
|
|
55
|
-
|
|
50
|
+
If upgrading from a previous version (v1), please see the [upgrade documentation](https://github.com/sanity-io/document-internationalization/blob/main/docs/00-upgrade-from-v1.md) in the original repository.
|
|
56
51
|
|
|
57
52
|
## Install
|
|
58
53
|
|
|
@@ -126,7 +121,7 @@ export const defineConfig({
|
|
|
126
121
|
|
|
127
122
|
// Optional
|
|
128
123
|
// Customizes the name of the language field
|
|
129
|
-
languageField: `language`, //
|
|
124
|
+
languageField: `language`, // defaults to "language"
|
|
130
125
|
|
|
131
126
|
// Optional
|
|
132
127
|
// Keep translation.metadata references weak
|
|
@@ -205,6 +200,37 @@ defineField({
|
|
|
205
200
|
}),
|
|
206
201
|
```
|
|
207
202
|
|
|
203
|
+
### Document actions
|
|
204
|
+
|
|
205
|
+
This package exports hook-based document actions that you can add in your Studio `document.actions` configuration:
|
|
206
|
+
|
|
207
|
+
- `useDeleteTranslationAction`
|
|
208
|
+
- `useDuplicateWithTranslationsAction`
|
|
209
|
+
|
|
210
|
+
The legacy action exports `DeleteTranslationAction` and `DuplicateWithTranslationsAction` are deprecated.
|
|
211
|
+
|
|
212
|
+
```ts
|
|
213
|
+
import {
|
|
214
|
+
useDeleteTranslationAction,
|
|
215
|
+
useDuplicateWithTranslationsAction,
|
|
216
|
+
} from '@sanity/document-internationalization'
|
|
217
|
+
|
|
218
|
+
export default defineConfig({
|
|
219
|
+
// ... all other config
|
|
220
|
+
document: {
|
|
221
|
+
actions: (prev, context) => {
|
|
222
|
+
const translatedSchemaTypes = ['lesson', 'article']
|
|
223
|
+
|
|
224
|
+
if (translatedSchemaTypes.includes(context.schemaType)) {
|
|
225
|
+
return [...prev, useDeleteTranslationAction, useDuplicateWithTranslationsAction]
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
return prev
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
})
|
|
232
|
+
```
|
|
233
|
+
|
|
208
234
|
## Querying translations
|
|
209
235
|
|
|
210
236
|
### Querying with GROQ
|
|
@@ -234,10 +260,7 @@ Fortunately, the Sanity GraphQL API contains a similar filter for document refer
|
|
|
234
260
|
```graphql
|
|
235
261
|
# In this example we retrieve a lesson by its `slug.current` field value
|
|
236
262
|
query GetLesson($language: String!, $slug: String!) {
|
|
237
|
-
allLesson(
|
|
238
|
-
limit: 1
|
|
239
|
-
where: {language: {eq: $language}, slug: {current: {eq: $slug}}}
|
|
240
|
-
) {
|
|
263
|
+
allLesson(limit: 1, where: {language: {eq: $language}, slug: {current: {eq: $slug}}}) {
|
|
241
264
|
_id
|
|
242
265
|
title
|
|
243
266
|
language
|
|
@@ -273,31 +296,16 @@ This means if you have 100 documents and they are all translated into 3 language
|
|
|
273
296
|
|
|
274
297
|
## Documentation
|
|
275
298
|
|
|
276
|
-
For more advanced topics see the
|
|
299
|
+
For more advanced topics see the [original repository documentation](https://github.com/sanity-io/document-internationalization/tree/main/docs).
|
|
277
300
|
|
|
278
|
-
- [Upgrade from v1](
|
|
279
|
-
- [Creating translations of singleton documents](
|
|
280
|
-
- [Importing and creating documents](
|
|
281
|
-
- [Deleting translated documents](
|
|
282
|
-
- [Importing plugin components](
|
|
283
|
-
- [Allowing the same slug on different language versions](
|
|
284
|
-
- [Remove default new document template](
|
|
301
|
+
- [Upgrade from v1](https://github.com/sanity-io/document-internationalization/blob/main/docs/00-upgrade-from-v1.md)
|
|
302
|
+
- [Creating translations of singleton documents](https://github.com/sanity-io/document-internationalization/blob/main/docs/01-singleton-documents.md)
|
|
303
|
+
- [Importing and creating documents](https://github.com/sanity-io/document-internationalization/blob/main/docs/02-importing-and-creating-documents.md)
|
|
304
|
+
- [Deleting translated documents](https://github.com/sanity-io/document-internationalization/blob/main/docs/03-deleting-translated-documents.md)
|
|
305
|
+
- [Importing plugin components](https://github.com/sanity-io/document-internationalization/blob/main/docs/04-importing-plugin-components.md)
|
|
306
|
+
- [Allowing the same slug on different language versions](https://github.com/sanity-io/document-internationalization/blob/main/docs/05-allowing-the-same-slug-for-translations.md)
|
|
307
|
+
- [Remove default new document template](https://github.com/sanity-io/document-internationalization/blob/main/docs/06-remove-default-new-document-template.md)
|
|
285
308
|
|
|
286
309
|
## License
|
|
287
310
|
|
|
288
311
|
[MIT](LICENSE) © Sanity.io
|
|
289
|
-
|
|
290
|
-
## Develop & test
|
|
291
|
-
|
|
292
|
-
This plugin uses [@sanity/plugin-kit](https://github.com/sanity-io/plugin-kit)
|
|
293
|
-
with default configuration for build & watch scripts.
|
|
294
|
-
|
|
295
|
-
See [Testing a plugin in Sanity Studio](https://github.com/sanity-io/plugin-kit#testing-a-plugin-in-sanity-studio)
|
|
296
|
-
on how to run this plugin with hot reload in the studio.
|
|
297
|
-
|
|
298
|
-
### Release new version
|
|
299
|
-
|
|
300
|
-
Run ["CI & Release" workflow](https://github.com/sanity-io/sanity-plugin-workflow/actions/workflows/main.yml).
|
|
301
|
-
Make sure to select the main branch and check "Release new version".
|
|
302
|
-
|
|
303
|
-
Semantic release will only release on configured branches, so it is safe to run the release on any branch.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sources":["../../src/i18n/resources.ts"],"sourcesContent":["export default {\n 'action.duplicate.label': 'Duplicate with translations',\n 'action.duplicate.disabled.missing-metadata':\n 'The document cannot be duplicated because the metadata document is missing',\n 'action.duplicate.disabled.multiple-metadata':\n 'The document cannot be duplicated because there are multiple metadata documents',\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resources.js","sources":["../../src/i18n/resources.ts"],"sourcesContent":["export default {\n 'action.duplicate.label': 'Duplicate with translations',\n 'action.duplicate.disabled.missing-metadata':\n 'The document cannot be duplicated because the metadata document is missing',\n 'action.duplicate.disabled.multiple-metadata':\n 'The document cannot be duplicated because there are multiple metadata documents',\n}\n"],"names":[],"mappings":"AAAA,IAAA,YAAe;AAAA,EACb,0BAA0B;AAAA,EAC1B,8CACE;AAAA,EACF,+CACE;AACJ;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,92 +1,111 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
1
|
+
import * as sanity0 from "sanity";
|
|
2
|
+
import { DocumentActionDescription, DocumentActionProps, FieldDefinition, ObjectSchemaType, Reference, SanityClient, SanityDocument, SanityDocumentLike } from "sanity";
|
|
3
|
+
import { InternationalizedArrayItem } from "sanity-plugin-internationalized-array";
|
|
4
|
+
/**
|
|
5
|
+
* Optional Document action that removes a single translation from the metadata document
|
|
6
|
+
* and optionally deletes the translation document. Opens a confirmation dialog
|
|
7
|
+
* showing which metadata entries reference the document and any other references
|
|
8
|
+
* that may exist. When the document has translation references, those references
|
|
9
|
+
* are unset; otherwise the document is deleted directly.
|
|
10
|
+
*
|
|
11
|
+
* To use it, you need to add it to the document actions config
|
|
12
|
+
* ```
|
|
13
|
+
* const translatedSchemaTypes = ['lesson', 'article'];
|
|
14
|
+
* document: {
|
|
15
|
+
* actions: (prev, {schemaType}) => {
|
|
16
|
+
* if (translatedSchemaTypes.includes(schemaType)) {
|
|
17
|
+
* return [...prev, useDeleteTranslationAction]
|
|
18
|
+
* }
|
|
19
|
+
* return prev
|
|
20
|
+
* },
|
|
21
|
+
* },
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
declare const useDeleteTranslationAction: {
|
|
25
|
+
(props: DocumentActionProps): DocumentActionDescription;
|
|
26
|
+
action: string;
|
|
27
|
+
displayName: string;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* @deprecated use useDeleteTranslationAction instead
|
|
31
|
+
* Will be removed in the next major version
|
|
32
|
+
*/
|
|
33
|
+
declare const DeleteTranslationAction: (props: DocumentActionProps) => DocumentActionDescription;
|
|
34
|
+
/**
|
|
35
|
+
* Optional Document action that duplicates a document along with all its translations
|
|
36
|
+
* and the associated metadata document. The workflow duplicates each translated
|
|
37
|
+
* document, duplicates the metadata document, patches the new metadata to
|
|
38
|
+
* reference the new translation copies, and navigates to the duplicated document.
|
|
39
|
+
* Disabled when the user lacks permissions, metadata is missing or ambiguous,
|
|
40
|
+
* or the underlying duplicate operation is unavailable.
|
|
41
|
+
*/
|
|
42
|
+
declare const useDuplicateWithTranslationsAction: {
|
|
43
|
+
({
|
|
44
|
+
id,
|
|
45
|
+
type,
|
|
46
|
+
onComplete
|
|
47
|
+
}: DocumentActionProps): DocumentActionDescription;
|
|
48
|
+
action: string;
|
|
49
|
+
displayName: string;
|
|
50
|
+
};
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated use useDuplicateWithTranslationsAction instead
|
|
53
|
+
* Will be removed in the next major version
|
|
54
|
+
*/
|
|
55
|
+
declare const DuplicateWithTranslationsAction: {
|
|
56
|
+
(props: DocumentActionProps): DocumentActionDescription;
|
|
57
|
+
action: string;
|
|
58
|
+
displayName: string;
|
|
59
|
+
};
|
|
60
|
+
type Language = {
|
|
61
|
+
id: Intl.UnicodeBCP47LocaleIdentifier;
|
|
62
|
+
title: string;
|
|
63
|
+
};
|
|
64
|
+
type SupportedLanguages = Language[] | ((client: SanityClient) => Promise<Language[]>);
|
|
65
|
+
type PluginCallbackArgs = {
|
|
66
|
+
sourceDocument: SanityDocument;
|
|
67
|
+
newDocument: SanityDocument;
|
|
68
|
+
sourceLanguageId: string;
|
|
69
|
+
destinationLanguageId: string;
|
|
70
|
+
metaDocumentId: string;
|
|
71
|
+
client: SanityClient;
|
|
72
|
+
};
|
|
73
|
+
type PluginConfig = {
|
|
74
|
+
supportedLanguages: SupportedLanguages;
|
|
75
|
+
schemaTypes: string[];
|
|
76
|
+
languageField?: string;
|
|
77
|
+
weakReferences?: boolean;
|
|
78
|
+
bulkPublish?: boolean;
|
|
79
|
+
metadataFields?: FieldDefinition[];
|
|
80
|
+
apiVersion?: string;
|
|
81
|
+
allowCreateMetaDoc?: boolean;
|
|
82
|
+
callback?: ((args: PluginCallbackArgs) => Promise<void>) | null;
|
|
83
|
+
};
|
|
84
|
+
type PluginConfigContext = Required<PluginConfig> & {
|
|
85
|
+
supportedLanguages: Language[];
|
|
86
|
+
};
|
|
87
|
+
type TranslationReference = InternationalizedArrayItem<Reference> & {
|
|
88
|
+
_type: 'internationalizedArrayReferenceValue';
|
|
89
|
+
value: Reference;
|
|
90
|
+
};
|
|
91
|
+
type Metadata = {
|
|
92
|
+
_id: string;
|
|
93
|
+
_createdAt: string;
|
|
94
|
+
translations: TranslationReference[];
|
|
95
|
+
};
|
|
96
|
+
type MetadataDocument = SanityDocumentLike & {
|
|
97
|
+
schemaTypes: string[];
|
|
98
|
+
translations: TranslationReference[];
|
|
99
|
+
};
|
|
100
|
+
type DocumentInternationalizationMenuProps = {
|
|
101
|
+
schemaType: ObjectSchemaType;
|
|
102
|
+
documentId: string;
|
|
103
|
+
};
|
|
104
|
+
interface DocumentInternationalizationSchemaOpts {
|
|
28
105
|
documentInternationalization?: {
|
|
29
|
-
/** Set to true to disable duplication of this field or type */
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export declare const DuplicateWithTranslationsAction: DocumentActionComponent
|
|
35
|
-
|
|
36
|
-
export declare type Language = {
|
|
37
|
-
id: Intl.UnicodeBCP47LocaleIdentifier
|
|
38
|
-
title: string
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export declare type Metadata = {
|
|
42
|
-
_id: string
|
|
43
|
-
_createdAt: string
|
|
44
|
-
translations: TranslationReference[]
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export declare type MetadataDocument = SanityDocumentLike & {
|
|
48
|
-
schemaTypes: string[]
|
|
49
|
-
translations: TranslationReference[]
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export declare type PluginCallbackArgs = {
|
|
53
|
-
sourceDocument: SanityDocument
|
|
54
|
-
newDocument: SanityDocument
|
|
55
|
-
sourceLanguageId: string
|
|
56
|
-
destinationLanguageId: string
|
|
57
|
-
metaDocumentId: string
|
|
58
|
-
client: SanityClient
|
|
106
|
+
/** Set to true to disable duplication of this field or type */exclude?: boolean;
|
|
107
|
+
};
|
|
59
108
|
}
|
|
60
|
-
|
|
61
|
-
export declare type PluginConfig = {
|
|
62
|
-
supportedLanguages: SupportedLanguages
|
|
63
|
-
schemaTypes: string[]
|
|
64
|
-
languageField?: string
|
|
65
|
-
weakReferences?: boolean
|
|
66
|
-
bulkPublish?: boolean
|
|
67
|
-
metadataFields?: FieldDefinition[]
|
|
68
|
-
apiVersion?: string
|
|
69
|
-
allowCreateMetaDoc?: boolean
|
|
70
|
-
callback?: ((args: PluginCallbackArgs) => Promise<void>) | null
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export declare type PluginConfigContext = Required<PluginConfig> & {
|
|
74
|
-
supportedLanguages: Language[]
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export declare type SupportedLanguages =
|
|
78
|
-
| Language[]
|
|
79
|
-
| ((client: SanityClient) => Promise<Language[]>)
|
|
80
|
-
|
|
81
|
-
export declare type TranslationReference = KeyedObject & {
|
|
82
|
-
_type: 'internationalizedArrayReferenceValue'
|
|
83
|
-
value: Reference
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export declare function useDocumentInternationalizationContext(): PluginConfigContext
|
|
87
|
-
|
|
88
|
-
export {}
|
|
89
|
-
|
|
90
109
|
declare module 'sanity' {
|
|
91
110
|
interface ArrayOptions extends DocumentInternationalizationSchemaOpts {}
|
|
92
111
|
interface BlockOptions extends DocumentInternationalizationSchemaOpts {}
|
|
@@ -105,4 +124,9 @@ declare module 'sanity' {
|
|
|
105
124
|
interface TextOptions extends DocumentInternationalizationSchemaOpts {}
|
|
106
125
|
interface UrlOptions extends DocumentInternationalizationSchemaOpts {}
|
|
107
126
|
interface EmailOptions extends DocumentInternationalizationSchemaOpts {}
|
|
108
|
-
}
|
|
127
|
+
} //# sourceMappingURL=types.d.ts.map
|
|
128
|
+
declare function useDocumentInternationalizationContext(): PluginConfigContext;
|
|
129
|
+
declare function DocumentInternationalizationMenu(props: DocumentInternationalizationMenuProps): React.JSX.Element | null;
|
|
130
|
+
declare const documentInternationalization: sanity0.Plugin<PluginConfig>;
|
|
131
|
+
export { DeleteTranslationAction, DocumentInternationalizationMenu, DocumentInternationalizationMenuProps, DocumentInternationalizationSchemaOpts, DuplicateWithTranslationsAction, Language, Metadata, MetadataDocument, PluginCallbackArgs, PluginConfig, PluginConfigContext, SupportedLanguages, TranslationReference, documentInternationalization, useDeleteTranslationAction, useDocumentInternationalizationContext, useDuplicateWithTranslationsAction };
|
|
132
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/actions/DeleteTranslationAction.tsx","../src/actions/DuplicateWithTranslationsAction.tsx","../src/types.ts","../src/components/DocumentInternationalizationContext.tsx","../src/components/DocumentInternationalizationMenu.tsx","../src/plugin.tsx"],"mappings":";;;;;;AAkCA;;;;;;;;;;;AA+FA;;;;;;cA/Fa,0BAAA;EAAA,QACJ,mBAAA,GACN,yBAAA;;;;;;;;cA6FU,uBAAA,GAA2B,KAAA,EAAO,mBAAA,KAAsB,yBAAA;;;;AA/FrE;;;;;cCkBa,kCAAA;EAAA;;;;KAKV,mBAAA,GAAsB,yBAAA;;;;;ADwEzB;;;cC2Ha,+BAAA;EAAA,QACJ,mBAAA,GACN,yBAAA;;;;KCpPS,QAAA;EACV,EAAA,EAAI,IAAA,CAAK,4BAAA;EACT,KAAA;AAAA;AAAA,KAGU,kBAAA,GAAqB,QAAA,OAAe,MAAA,EAAQ,YAAA,KAAiB,OAAA,CAAQ,QAAA;AAAA,KAErE,kBAAA;EACV,cAAA,EAAgB,cAAA;EAChB,WAAA,EAAa,cAAA;EACb,gBAAA;EACA,qBAAA;EACA,cAAA;EACA,MAAA,EAAQ,YAAA;AAAA;AAAA,KAGE,YAAA;EACV,kBAAA,EAAoB,kBAAA;EACpB,WAAA;EACA,aAAA;EACA,cAAA;EACA,WAAA;EACA,cAAA,GAAiB,eAAA;EACjB,UAAA;EACA,kBAAA;EACA,QAAA,KAAa,IAAA,EAAM,kBAAA,KAAuB,OAAA;AAAA;AAAA,KAMhC,mBAAA,GAAsB,QAAA,CAAS,YAAA;EACzC,kBAAA,EAAoB,QAAA;AAAA;AAAA,KAGV,oBAAA,GAAuB,0BAAA,CAA2B,SAAA;EAC5D,KAAA;EACA,KAAA,EAAO,SAAA;AAAA;AAAA,KAGG,QAAA;EACV,GAAA;EACA,UAAA;EACA,YAAA,EAAc,oBAAA;AAAA;AAAA,KAGJ,gBAAA,GAAmB,kBAAA;EAC7B,WAAA;EACA,YAAA,EAAc,oBAAA;AAAA;AAAA,KAGJ,qCAAA;EACV,UAAA,EAAY,gBAAA;EACZ,UAAA;AAAA;AAAA,UAIe,sCAAA;EACf,4BAAA;ID4LD,+DC1LG,OAAA;EAAA;AAAA;AAAA;EAAA,UAKQ,YAAA,SAAqB,sCAAA;EAAA,UACrB,YAAA,SAAqB,sCAAA;EAAA,UACrB,cAAA,SAAuB,sCAAA;EAAA,UACvB,4BAAA,SAAqC,sCAAA;EAAA,UACrC,WAAA,SAAoB,sCAAA;EAAA,UACpB,eAAA,SAAwB,sCAAA;EAAA,UACxB,WAAA,SAAoB,sCAAA;EAAA,UACpB,eAAA,SAAwB,sCAAA;EAAA,UACxB,YAAA,SAAqB,sCAAA;EAAA,UACrB,aAAA,SAAsB,sCAAA;EAAA,UACtB,aAAA,SAAsB,sCAAA;EAAA,UACtB,oBAAA,SAA6B,sCAAA;EAAA,UAC7B,WAAA,SAAoB,sCAAA;EAAA,UACpB,aAAA,SAAsB,sCAAA;EAAA,UACtB,WAAA,SAAoB,sCAAA;EAAA,UACpB,UAAA,SAAmB,sCAAA;EAAA,UACnB,YAAA,SAAqB,sCAAA;AAAA;AAAA,iBChFjB,sCAAA,CAAA,GAA0C,mBAAA;AAAA,iBCO1C,gCAAA,CACd,KAAA,EAAO,qCAAA,GACN,KAAA,CAAM,GAAA,CAAI,OAAA;AAAA,cCJA,4BAAA,EAA4B,OAAA,CAAA,MAAA,CAAA,YAAA"}
|