## class: `WyAnnotation`, `wy-annotation`

Annotation displayed as a small button.

**Used sub components**

*   [`<wy-button>`](./ui/wy-button)
*   [`<wy-icon>`](./ui/wy-icon)

### Fields

| Name   | Type       | Default | Description                     | Inherited From |
| ------ | ---------- | ------- | ------------------------------- | -------------- |
| `file` | `FileType` |         | The annotation file to display. |                |

### Methods

| Name        | Description                                          | Parameters | Return                       | Inherited From    |
| ----------- | ---------------------------------------------------- | ---------- | ---------------------------- | ----------------- |
| `whenReady` | Resolves when the component has rendered first time. |            | `Promise<WeavySubComponent>` | WeavySubComponent |

### Events

| Name        | Type                | Description                                 | Inherited From    |
| ----------- | ------------------- | ------------------------------------------- | ----------------- |
| `file-open` | `FileOpenEventType` | When opening a file in preview is requested |                   |
| `ready`     | `CustomEvent`       | When the component has rendered.            | WeavySubComponent |

### CSS Parts

| Name                 | Description                        |
| -------------------- | ---------------------------------- |
| `wy-annotation`      | Annotation button.                 |
| `wy-annotation-icon` | The icon of the annotation button. |
| `wy-annotation-text` | The text of the annotation button. |

<details><summary>Private API</summary>

### Fields

| Name                | Privacy   | Type                                                  | Default                                                              | Description | Inherited From    |
| ------------------- | --------- | ----------------------------------------------------- | -------------------------------------------------------------------- | ----------- | ----------------- |
| `exportParts`       | protected |                                                       | `new ShadowPartsController(this)`                                    |             |                   |
| `#resolveContextId` | private   | `(contextId: ContextIdType) => void \| undefined`     |                                                                      |             | WeavySubComponent |
| `#whenContextId`    | private   |                                                       | `new Promise<ContextIdType>((r) => { this.#resolveContextId = r; })` |             | WeavySubComponent |
| `#resolveUser`      | private   | `(user: UserType) => void \| undefined`               |                                                                      |             | WeavySubComponent |
| `#whenUser`         | private   |                                                       | `new Promise<UserType>((r) => { this.#resolveUser = r; })`           |             | WeavySubComponent |
| `#resolveWeavy`     | private   | `(weavy: WeavyType) => void \| undefined`             |                                                                      |             | WeavySubComponent |
| `#whenWeavy`        | private   |                                                       | `new Promise<WeavyType>((r) => { this.#resolveWeavy = r; })`         |             | WeavySubComponent |
| `#resolveReady`     | private   | `(component: WeavySubComponent) => void \| undefined` |                                                                      |             | WeavySubComponent |
| `#whenReady`        | private   |                                                       | `new Promise<WeavySubComponent>((r) => { this.#resolveReady = r; })` |             | WeavySubComponent |

</details>

<hr/>

## class: `WyAnnotationList`, `wy-annotation-list`

List of annotations. Displayed as inline buttons.

**Used sub components**

*   [`<wy-annotation>`](./wy-annotation)

### Fields

| Name    | Type                       | Default | Description                                                     | Inherited From        |
| ------- | -------------------------- | ------- | --------------------------------------------------------------- | --------------------- |
| `files` | `FileType[]`               | `[]`    | The annotations file list to display.                           |                       |
| `app`   | `AppType \| undefined`     |         | The app data.                                                   | WeavySubAppComponent  |
| `apps`  | `AppListType \| undefined` |         | Multiple apps data.                                             | WeavySubAppComponent  |
| `link`  | `LinkType \| undefined`    |         | Any provided link that should be loaded, shown and highlighted. | WeavySubTypeComponent |

### Methods

| Name        | Description                                          | Parameters | Return                       | Inherited From        |
| ----------- | ---------------------------------------------------- | ---------- | ---------------------------- | --------------------- |
| `whenApp`   | Resolves when app data is available.                 |            | `Promise<AppType>`           | WeavySubAppComponent  |
| `whenApps`  | Resolves when multiple app data is available.        |            | `Promise<AppListType>`       | WeavySubAppComponent  |
| `whenLink`  | Resolves when a provided link is available.          |            | `Promise<LinkType>`          | WeavySubTypeComponent |
| `whenReady` | Resolves when the component has rendered first time. |            | `Promise<WeavySubComponent>` | WeavySubComponent     |

### Events

| Name        | Type                | Description                                 | Inherited From    |
| ----------- | ------------------- | ------------------------------------------- | ----------------- |
| `file-open` | `FileOpenEventType` | When opening a file in preview is requested |                   |
| `ready`     | `CustomEvent`       | When the component has rendered.            | WeavySubComponent |

### CSS Parts

| Name             | Description                  |
| ---------------- | ---------------------------- |
| `wy-annotations` | Wrapper for the annotations. |

<details><summary>Private API</summary>

### Fields

| Name                        | Privacy   | Type                                                               | Default                                                                               | Description | Inherited From        |
| --------------------------- | --------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------- | ----------- | --------------------- |
| `exportParts`               | protected |                                                                    | `new ShadowPartsController(this)`                                                     |             |                       |
| `#resolveApp`               | private   | `(app: AppType) => void \| undefined`                              |                                                                                       |             | WeavySubAppComponent  |
| `#whenApp`                  | private   |                                                                    | `new Promise<AppType>((r) => { this.#resolveApp = r; })`                              |             | WeavySubAppComponent  |
| `#resolveApps`              | private   | `(apps: AppListType) => void \| undefined`                         |                                                                                       |             | WeavySubAppComponent  |
| `#whenApps`                 | private   |                                                                    | `new Promise<AppListType>((r) => { this.#resolveApps = r; })`                         |             | WeavySubAppComponent  |
| `#resolveContextDataBlobs`  | private   | `(blobs: ContextDataBlobsType) => void \| undefined`               |                                                                                       |             | WeavySubTypeComponent |
| `#whenContextDataBlobs`     | private   |                                                                    | `new Promise<ContextDataBlobsType>((r) => { this.#resolveContextDataBlobs = r; })`    |             | WeavySubTypeComponent |
| `#resolveComponentFeatures` | private   | `(componentFeatures: ComponentFeaturePolicy) => void \| undefined` |                                                                                       |             | WeavySubTypeComponent |
| `#whenComponentFeatures`    | private   |                                                                    | `new Promise<ComponentFeaturePolicy>((r) => { this.#resolveComponentFeatures = r; })` |             | WeavySubTypeComponent |
| `#resolveLink`              | private   | `(link: LinkType) => void \| undefined`                            |                                                                                       |             | WeavySubTypeComponent |
| `#whenLink`                 | private   |                                                                    | `new Promise<LinkType>((r) => { this.#resolveLink = r; })`                            |             | WeavySubTypeComponent |
| `#resolveSettings`          | private   | `(settings: WeavyComponentSettingsType) => void \| undefined`      |                                                                                       |             | WeavySubTypeComponent |
| `#whenSettings`             | private   |                                                                    | `new Promise<WeavyComponentSettingsType>((r) => { this.#resolveSettings = r; })`      |             | WeavySubTypeComponent |
| `#resolveContextId`         | private   | `(contextId: ContextIdType) => void \| undefined`                  |                                                                                       |             | WeavySubComponent     |
| `#whenContextId`            | private   |                                                                    | `new Promise<ContextIdType>((r) => { this.#resolveContextId = r; })`                  |             | WeavySubComponent     |
| `#resolveUser`              | private   | `(user: UserType) => void \| undefined`                            |                                                                                       |             | WeavySubComponent     |
| `#whenUser`                 | private   |                                                                    | `new Promise<UserType>((r) => { this.#resolveUser = r; })`                            |             | WeavySubComponent     |
| `#resolveWeavy`             | private   | `(weavy: WeavyType) => void \| undefined`                          |                                                                                       |             | WeavySubComponent     |
| `#whenWeavy`                | private   |                                                                    | `new Promise<WeavyType>((r) => { this.#resolveWeavy = r; })`                          |             | WeavySubComponent     |
| `#resolveReady`             | private   | `(component: WeavySubComponent) => void \| undefined`              |                                                                                       |             | WeavySubComponent     |
| `#whenReady`                | private   |                                                                    | `new Promise<WeavySubComponent>((r) => { this.#resolveReady = r; })`                  |             | WeavySubComponent     |

</details>

<hr/>

## Exports

| Kind                        | Name                 | Declaration      | Module                          | Package |
| --------------------------- | -------------------- | ---------------- | ------------------------------- | ------- |
| `js`                        | `WyAnnotation`       | WyAnnotation     | lib/components/wy-annotation.ts |         |
| `custom-element-definition` | `wy-annotation`      | WyAnnotation     | lib/components/wy-annotation.ts |         |
| `js`                        | `WyAnnotationList`   | WyAnnotationList | lib/components/wy-annotation.ts |         |
| `custom-element-definition` | `wy-annotation-list` | WyAnnotationList | lib/components/wy-annotation.ts |         |
