valtech-components 2.0.808 → 2.0.810
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/esm2022/lib/components/molecules/update-banner/types.mjs +42 -0
- package/esm2022/lib/components/molecules/update-banner/update-banner.component.mjs +205 -74
- package/esm2022/lib/components/organisms/faq/faq.component.mjs +136 -0
- package/esm2022/lib/components/organisms/faq/types.mjs +9 -0
- package/esm2022/lib/services/app-version/app-version.service.mjs +187 -0
- package/esm2022/lib/services/app-version/config.mjs +42 -0
- package/esm2022/lib/services/app-version/index.mjs +24 -0
- package/esm2022/lib/services/app-version/types.mjs +17 -0
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +8 -1
- package/fesm2022/valtech-components.mjs +745 -179
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/update-banner/types.d.ts +41 -0
- package/lib/components/molecules/update-banner/update-banner.component.d.ts +26 -20
- package/lib/components/organisms/faq/faq.component.d.ts +38 -0
- package/lib/components/organisms/faq/types.d.ts +53 -0
- package/lib/services/app-version/app-version.service.d.ts +64 -0
- package/lib/services/app-version/config.d.ts +35 -0
- package/lib/services/app-version/index.d.ts +23 -0
- package/lib/services/app-version/types.d.ts +35 -0
- package/lib/version.d.ts +1 -1
- package/package.json +5 -1
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UpdateBanner Types
|
|
3
|
+
*
|
|
4
|
+
* Contenido i18n del banner de actualización de la app.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Namespace i18n usado por `val-update-banner`.
|
|
8
|
+
* Las apps consumidoras pueden sobreescribir estas keys registrando
|
|
9
|
+
* contenido bajo este namespace en `I18nService`.
|
|
10
|
+
*/
|
|
11
|
+
export declare const UPDATE_BANNER_I18N_NAMESPACE = "UpdateBanner";
|
|
12
|
+
/**
|
|
13
|
+
* Textos por defecto del banner (fallback si la app no registra el namespace).
|
|
14
|
+
* Soporta es / en / pt.
|
|
15
|
+
*/
|
|
16
|
+
export declare const UPDATE_BANNER_DEFAULT_CONTENT: {
|
|
17
|
+
readonly es: {
|
|
18
|
+
readonly availableTitle: "Hay una versión nueva disponible";
|
|
19
|
+
readonly availableMessage: "Actualiza para obtener las últimas mejoras.";
|
|
20
|
+
readonly requiredTitle: "Debes actualizar para continuar";
|
|
21
|
+
readonly requiredMessage: "Esta versión ya no es compatible. Actualiza para seguir.";
|
|
22
|
+
readonly updateAction: "Actualizar";
|
|
23
|
+
readonly dismissAction: "Cerrar";
|
|
24
|
+
};
|
|
25
|
+
readonly en: {
|
|
26
|
+
readonly availableTitle: "A new version is available";
|
|
27
|
+
readonly availableMessage: "Update to get the latest improvements.";
|
|
28
|
+
readonly requiredTitle: "You must update to continue";
|
|
29
|
+
readonly requiredMessage: "This version is no longer supported. Please update.";
|
|
30
|
+
readonly updateAction: "Update";
|
|
31
|
+
readonly dismissAction: "Close";
|
|
32
|
+
};
|
|
33
|
+
readonly pt: {
|
|
34
|
+
readonly availableTitle: "Há uma nova versão disponível";
|
|
35
|
+
readonly availableMessage: "Atualize para obter as últimas melhorias.";
|
|
36
|
+
readonly requiredTitle: "Você precisa atualizar para continuar";
|
|
37
|
+
readonly requiredMessage: "Esta versão não é mais compatível. Atualize para seguir.";
|
|
38
|
+
readonly updateAction: "Atualizar";
|
|
39
|
+
readonly dismissAction: "Fechar";
|
|
40
|
+
};
|
|
41
|
+
};
|
|
@@ -1,42 +1,48 @@
|
|
|
1
|
-
import { BannerMetadata } from '../../organisms/banner/types';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
/**
|
|
4
3
|
* val-update-banner
|
|
5
4
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Avisa al usuario de una versión nueva. Colócalo una sola vez, alto en el
|
|
6
|
+
* árbol de la app (p.ej. en `app.component` por encima del router outlet)
|
|
7
|
+
* para que sea visible en cualquier ruta.
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```html
|
|
11
|
-
* <!-- Uso básico -->
|
|
12
11
|
* <val-update-banner />
|
|
13
|
-
*
|
|
14
|
-
* <!-- El banner solo aparece si hay actualización disponible -->
|
|
15
12
|
* ```
|
|
16
13
|
*/
|
|
17
14
|
export declare class UpdateBannerComponent {
|
|
18
|
-
private
|
|
19
|
-
private i18n;
|
|
20
|
-
/**
|
|
21
|
-
* Signal para controlar si el banner fue descartado por el usuario.
|
|
22
|
-
*/
|
|
23
|
-
private dismissed;
|
|
15
|
+
private readonly version;
|
|
16
|
+
private readonly i18n;
|
|
24
17
|
/**
|
|
25
|
-
*
|
|
18
|
+
* True cuando el banner está en modo obligatorio (hard gate, no descartable).
|
|
26
19
|
*/
|
|
27
|
-
readonly
|
|
20
|
+
readonly required: import("@angular/core").Signal<boolean>;
|
|
28
21
|
/**
|
|
29
|
-
*
|
|
22
|
+
* True cuando el banner debe renderizarse:
|
|
23
|
+
* - siempre que el estado sea `update-required`, o
|
|
24
|
+
* - si es `update-available` y el usuario no lo descartó.
|
|
30
25
|
*/
|
|
31
|
-
readonly
|
|
26
|
+
readonly visible: import("@angular/core").Signal<boolean>;
|
|
32
27
|
/**
|
|
33
|
-
*
|
|
28
|
+
* Textos resolvidos del banner. Reactivo a idioma y al estado required.
|
|
29
|
+
* Usa el namespace `UpdateBanner` de `I18nService` con fallback embebido.
|
|
34
30
|
*/
|
|
35
|
-
|
|
31
|
+
readonly t: import("@angular/core").Signal<{
|
|
32
|
+
title: string;
|
|
33
|
+
message: string;
|
|
34
|
+
updateAction: string;
|
|
35
|
+
dismissAction: string;
|
|
36
|
+
}>;
|
|
37
|
+
/** Aplica la actualización (activa el SW si existe + recarga). */
|
|
38
|
+
onUpdate(): void;
|
|
39
|
+
/** Descarta el banner opcional. No-op en modo obligatorio. */
|
|
40
|
+
onDismiss(): void;
|
|
36
41
|
/**
|
|
37
|
-
*
|
|
42
|
+
* Resuelve una key i18n del namespace `UpdateBanner` con fallback al
|
|
43
|
+
* contenido por defecto embebido (es / en / pt).
|
|
38
44
|
*/
|
|
39
|
-
|
|
45
|
+
private tr;
|
|
40
46
|
static ɵfac: i0.ɵɵFactoryDeclaration<UpdateBannerComponent, never>;
|
|
41
47
|
static ɵcmp: i0.ɵɵComponentDeclaration<UpdateBannerComponent, "val-update-banner", never, {}, {}, never, never, true, never>;
|
|
42
48
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { AccordionMetadata } from '../../molecules/accordion/types';
|
|
2
|
+
import { FaqCategory, FaqMetadata } from './types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* `val-faq`
|
|
6
|
+
*
|
|
7
|
+
* Organism de preguntas frecuentes. Q&A categorizado con accordion colapsable
|
|
8
|
+
* y buscador en vivo. Pensado para vistas FAQ públicas — el caller puede
|
|
9
|
+
* reusar la misma data (`FaqMetadata.categories`) para emitir el structured
|
|
10
|
+
* data `FAQPage` (JSON-LD) y ganar rich results en buscadores.
|
|
11
|
+
*
|
|
12
|
+
* Compone `val-accordion` (una por categoría) + `val-searchbar`.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```html
|
|
16
|
+
* <val-faq [props]="{ categories: faqCategories, searchable: true }" />
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class FaqComponent {
|
|
20
|
+
private readonly props_;
|
|
21
|
+
set props(value: FaqMetadata | undefined);
|
|
22
|
+
get props(): FaqMetadata;
|
|
23
|
+
/** Término de búsqueda actual (lowercase). */
|
|
24
|
+
private readonly query;
|
|
25
|
+
/**
|
|
26
|
+
* Categorías visibles tras aplicar el filtro de búsqueda. Una categoría
|
|
27
|
+
* desaparece si ninguna de sus preguntas matchea. El match es sobre
|
|
28
|
+
* pregunta + respuesta, case-insensitive.
|
|
29
|
+
*/
|
|
30
|
+
readonly visibleCategories: import("@angular/core").Signal<FaqCategory[]>;
|
|
31
|
+
/** `true` si se debe mostrar el label de cada categoría. */
|
|
32
|
+
readonly showCategoryLabel: import("@angular/core").Signal<boolean>;
|
|
33
|
+
/** Mapea una categoría a `AccordionMetadata` para `val-accordion`. */
|
|
34
|
+
accordionFor(cat: FaqCategory): AccordionMetadata;
|
|
35
|
+
onSearch(term: string): void;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FaqComponent, never>;
|
|
37
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FaqComponent, "val-faq", never, { "props": { "alias": "props"; "required": false; }; }, {}, never, never, true, never>;
|
|
38
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipos del organism `val-faq`.
|
|
3
|
+
*
|
|
4
|
+
* Modelo Q&A categorizado. Pensado para vistas FAQ públicas (sitio corporativo)
|
|
5
|
+
* — el caller también puede usar la misma data para emitir structured data
|
|
6
|
+
* `FAQPage` (JSON-LD) y ganar rich results en buscadores.
|
|
7
|
+
*/
|
|
8
|
+
/** Una pregunta-respuesta. */
|
|
9
|
+
export interface FaqItem {
|
|
10
|
+
/** Identificador único dentro de la FAQ — usado como track + accordion value. */
|
|
11
|
+
id: string;
|
|
12
|
+
/** La pregunta. */
|
|
13
|
+
question: string;
|
|
14
|
+
/** La respuesta. Texto plano (los saltos de línea se respetan). */
|
|
15
|
+
answer: string;
|
|
16
|
+
}
|
|
17
|
+
/** Grupo de preguntas bajo un tema. */
|
|
18
|
+
export interface FaqCategory {
|
|
19
|
+
/** Identificador único de la categoría. */
|
|
20
|
+
id: string;
|
|
21
|
+
/** Etiqueta visible del grupo. */
|
|
22
|
+
label: string;
|
|
23
|
+
/** Preguntas del grupo. */
|
|
24
|
+
items: FaqItem[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Configuración del organism `val-faq`.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```html
|
|
31
|
+
* <val-faq
|
|
32
|
+
* [props]="{
|
|
33
|
+
* categories: faqCategories,
|
|
34
|
+
* searchable: true,
|
|
35
|
+
* searchPlaceholder: 'Buscar...',
|
|
36
|
+
* }"
|
|
37
|
+
* />
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
export interface FaqMetadata {
|
|
41
|
+
/** Categorías con sus preguntas, en orden de aparición. */
|
|
42
|
+
categories: FaqCategory[];
|
|
43
|
+
/** Muestra el buscador que filtra preguntas en vivo. Default `true`. */
|
|
44
|
+
searchable?: boolean;
|
|
45
|
+
/** Placeholder del buscador. */
|
|
46
|
+
searchPlaceholder?: string;
|
|
47
|
+
/** Permite varias preguntas abiertas a la vez. Default `false`. */
|
|
48
|
+
multiple?: boolean;
|
|
49
|
+
/** Texto cuando la búsqueda no arroja resultados. */
|
|
50
|
+
noResultsText?: string;
|
|
51
|
+
/** Oculta el label de categoría cuando solo hay una. Default `true`. */
|
|
52
|
+
hideSingleCategoryLabel?: boolean;
|
|
53
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
import { AppVersionStatus } from './types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class AppVersionService {
|
|
5
|
+
/** SwUpdate solo existe si el SW está registrado (prod build). */
|
|
6
|
+
private readonly swUpdate;
|
|
7
|
+
/** AppConfigService es opcional: la app puede no wirearlo. */
|
|
8
|
+
private readonly appConfig;
|
|
9
|
+
private readonly serviceConfig;
|
|
10
|
+
private readonly document;
|
|
11
|
+
private readonly destroyRef;
|
|
12
|
+
/** True cuando el SW reportó un bundle nuevo listo (`VERSION_READY`). */
|
|
13
|
+
private readonly swUpdateReady;
|
|
14
|
+
/**
|
|
15
|
+
* True cuando el usuario descartó el banner de actualización opcional.
|
|
16
|
+
* El banner obligatorio (`update-required`) ignora este flag.
|
|
17
|
+
*/
|
|
18
|
+
private readonly _dismissed;
|
|
19
|
+
readonly dismissed: Signal<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Versión local del build actual de la app.
|
|
22
|
+
* Proviene del provider `provideValtechAppVersion({ currentVersion })`.
|
|
23
|
+
*/
|
|
24
|
+
readonly currentVersion: Signal<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Última versión publicada según el config remoto.
|
|
27
|
+
* `null` si `AppConfigService` no está disponible o aún no cargó.
|
|
28
|
+
*/
|
|
29
|
+
readonly latestVersion: Signal<string | null>;
|
|
30
|
+
/**
|
|
31
|
+
* Estado de la versión:
|
|
32
|
+
* - `update-required` — la versión local quedó por debajo de `minVersion`
|
|
33
|
+
* del config remoto. Hard gate. Solo si `AppConfigService` tiene datos.
|
|
34
|
+
* - `update-available` — el SW descargó un bundle nuevo (`VERSION_READY`)
|
|
35
|
+
* o `AppConfigService.hasUpdate` es true.
|
|
36
|
+
* - `up-to-date` — en cualquier otro caso.
|
|
37
|
+
*/
|
|
38
|
+
readonly status: Signal<AppVersionStatus>;
|
|
39
|
+
constructor();
|
|
40
|
+
/**
|
|
41
|
+
* Aplica la actualización pendiente.
|
|
42
|
+
*
|
|
43
|
+
* Si el SW está habilitado, activa la versión descargada y recarga; si no,
|
|
44
|
+
* solo recarga la página (la web obtiene el bundle nuevo del servidor).
|
|
45
|
+
*/
|
|
46
|
+
applyUpdate(): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Descarta el banner de actualización opcional.
|
|
49
|
+
* No tiene efecto sobre el estado `update-required` (hard gate).
|
|
50
|
+
*/
|
|
51
|
+
dismiss(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Fuerza un chequeo de actualización del service worker.
|
|
54
|
+
* No-op si el SW no está habilitado.
|
|
55
|
+
*/
|
|
56
|
+
checkNow(): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Suscribe `versionUpdates`, programa chequeos periódicos y reacciona al
|
|
59
|
+
* volver la app a foreground. Solo actúa si el SW está habilitado.
|
|
60
|
+
*/
|
|
61
|
+
private wireServiceWorker;
|
|
62
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppVersionService, never>;
|
|
63
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AppVersionService>;
|
|
64
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppVersion Provider
|
|
3
|
+
*
|
|
4
|
+
* Provider e injection token para el servicio de verificación de versión.
|
|
5
|
+
*/
|
|
6
|
+
import { EnvironmentProviders, InjectionToken } from '@angular/core';
|
|
7
|
+
import { AppVersionServiceConfig } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Token de inyección para la configuración de AppVersionService.
|
|
10
|
+
*/
|
|
11
|
+
export declare const VALTECH_APP_VERSION: InjectionToken<Required<AppVersionServiceConfig>>;
|
|
12
|
+
/**
|
|
13
|
+
* Provee el servicio de verificación de versión a la aplicación Angular.
|
|
14
|
+
*
|
|
15
|
+
* Detecta cuándo hay una versión nueva de la app combinando dos señales:
|
|
16
|
+
* - `SwUpdate` (PWA service worker) — bundle nuevo descargado y listo.
|
|
17
|
+
* - `AppConfigService` (config remoto en Firestore) — `version` / `minVersion`.
|
|
18
|
+
*
|
|
19
|
+
* @param config - Configuración del servicio. `currentVersion` es obligatorio.
|
|
20
|
+
* @returns EnvironmentProviders para usar en bootstrapApplication.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* // main.ts
|
|
25
|
+
* import { provideValtechAppVersion } from 'valtech-components';
|
|
26
|
+
* import pkg from '../package.json';
|
|
27
|
+
*
|
|
28
|
+
* bootstrapApplication(AppComponent, {
|
|
29
|
+
* providers: [
|
|
30
|
+
* provideValtechAppVersion({ currentVersion: pkg.version }),
|
|
31
|
+
* ],
|
|
32
|
+
* });
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare function provideValtechAppVersion(config: AppVersionServiceConfig): EnvironmentProviders;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppVersion Service Module
|
|
3
|
+
*
|
|
4
|
+
* Verificación de versión de la app para PWA / web. Detecta cuándo hay una
|
|
5
|
+
* versión nueva combinando el service worker (`SwUpdate`) y el config remoto
|
|
6
|
+
* (`AppConfigService`), con soporte para actualización obligatoria (hard gate).
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // main.ts
|
|
11
|
+
* import { provideValtechAppVersion } from 'valtech-components';
|
|
12
|
+
* import pkg from '../package.json';
|
|
13
|
+
*
|
|
14
|
+
* bootstrapApplication(AppComponent, {
|
|
15
|
+
* providers: [
|
|
16
|
+
* provideValtechAppVersion({ currentVersion: pkg.version }),
|
|
17
|
+
* ],
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export * from './types';
|
|
22
|
+
export { VALTECH_APP_VERSION, provideValtechAppVersion } from './config';
|
|
23
|
+
export { AppVersionService } from './app-version.service';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AppVersion Types
|
|
3
|
+
*
|
|
4
|
+
* Tipos para el servicio de verificación de versión de la aplicación.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Estado de la versión de la aplicación respecto a la versión publicada.
|
|
8
|
+
*
|
|
9
|
+
* - `up-to-date` — la app está al día, no hay nada que hacer.
|
|
10
|
+
* - `update-available` — hay una versión nueva (bundle del SW listo o config
|
|
11
|
+
* remoto más nuevo). El usuario puede actualizar pero NO está obligado.
|
|
12
|
+
* - `update-required` — la versión local quedó por debajo de `minVersion`
|
|
13
|
+
* del config remoto (hard gate). El usuario DEBE actualizar para continuar.
|
|
14
|
+
*/
|
|
15
|
+
export type AppVersionStatus = 'up-to-date' | 'update-available' | 'update-required';
|
|
16
|
+
/**
|
|
17
|
+
* Configuración para el proveedor de AppVersionService.
|
|
18
|
+
*
|
|
19
|
+
* @property currentVersion - Versión del build actual de la app (semver string).
|
|
20
|
+
* Normalmente proviene del `version` de `package.json`.
|
|
21
|
+
* @property checkIntervalMs - Intervalo (ms) entre llamadas a
|
|
22
|
+
* `SwUpdate.checkForUpdate()`. Default: 30 minutos.
|
|
23
|
+
*/
|
|
24
|
+
export interface AppVersionServiceConfig {
|
|
25
|
+
currentVersion: string;
|
|
26
|
+
checkIntervalMs?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Intervalo por defecto de chequeo de actualizaciones: 30 minutos.
|
|
30
|
+
*/
|
|
31
|
+
export declare const DEFAULT_CHECK_INTERVAL_MS: number;
|
|
32
|
+
/**
|
|
33
|
+
* Configuración por defecto del servicio.
|
|
34
|
+
*/
|
|
35
|
+
export declare const DEFAULT_APP_VERSION_SERVICE_CONFIG: Required<AppVersionServiceConfig>;
|
package/lib/version.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "valtech-components",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.810",
|
|
4
4
|
"private": false,
|
|
5
5
|
"bin": {
|
|
6
6
|
"valtech-firebase-config": "./src/lib/services/firebase/scripts/generate-sw-config.js"
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"@angular/common": "^18.0.0",
|
|
15
15
|
"@angular/core": "^18.0.0",
|
|
16
16
|
"@angular/fire": "^18.0.1",
|
|
17
|
+
"@angular/service-worker": "^18.0.0",
|
|
17
18
|
"@capacitor/app": ">=5.0.0",
|
|
18
19
|
"@capacitor/clipboard": "^6.0.1",
|
|
19
20
|
"@ionic/angular": "^8.0.0",
|
|
@@ -24,6 +25,9 @@
|
|
|
24
25
|
"peerDependenciesMeta": {
|
|
25
26
|
"@capacitor/app": {
|
|
26
27
|
"optional": true
|
|
28
|
+
},
|
|
29
|
+
"@angular/service-worker": {
|
|
30
|
+
"optional": true
|
|
27
31
|
}
|
|
28
32
|
},
|
|
29
33
|
"dependencies": {
|
package/public-api.d.ts
CHANGED
|
@@ -167,6 +167,7 @@ export * from './lib/components/molecules/links-accordion/types';
|
|
|
167
167
|
export * from './lib/components/molecules/refresher/refresher.component';
|
|
168
168
|
export * from './lib/components/molecules/refresher/types';
|
|
169
169
|
export * from './lib/components/molecules/update-banner/update-banner.component';
|
|
170
|
+
export * from './lib/components/molecules/update-banner/types';
|
|
170
171
|
export * from './lib/components/molecules/action-card/action-card.component';
|
|
171
172
|
export * from './lib/components/molecules/action-card/types';
|
|
172
173
|
export * from './lib/components/molecules/username-input/username-input.component';
|
|
@@ -225,6 +226,8 @@ export * from './lib/components/organisms/avatar-upload/avatar-upload.component'
|
|
|
225
226
|
export * from './lib/components/organisms/avatar-upload/types';
|
|
226
227
|
export * from './lib/components/organisms/skeleton-layout/skeleton-layout.component';
|
|
227
228
|
export * from './lib/components/organisms/skeleton-layout/types';
|
|
229
|
+
export * from './lib/components/organisms/faq/faq.component';
|
|
230
|
+
export * from './lib/components/organisms/faq/types';
|
|
228
231
|
export * from './lib/components/templates/simple/simple.component';
|
|
229
232
|
export * from './lib/components/templates/simple/types';
|
|
230
233
|
export * from './lib/components/templates/page-template/page-template.component';
|
|
@@ -265,6 +268,7 @@ export * from './lib/services/preferences';
|
|
|
265
268
|
export * from './lib/services/page-refresh/page-refresh.service';
|
|
266
269
|
export * from './lib/services/refreshable-stream';
|
|
267
270
|
export * from './lib/services/app-config';
|
|
271
|
+
export * from './lib/services/app-version';
|
|
268
272
|
export * from './lib/services/presets';
|
|
269
273
|
export * from './lib/services/skeleton';
|
|
270
274
|
export * from './lib/services/pagination';
|