4ed39d2616
Phase 4: extract config defaults, Google Consent Mode helper, and framework adapter internals into sibling files so every source file is under the hard cap. Public API surface preserved; all 135 tests green, tsup build + tsc typecheck clean. - core/ConsentManager 525 -> 467 LOC (extract config + google helpers) - react/index 511 LOC -> 199 LOC barrel + components/hooks/context - vue/index 511 LOC -> 32 LOC barrel + components/composables/context/plugin - angular/index 509 LOC -> 45 LOC barrel + interface/service/module/templates Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
32 lines
889 B
TypeScript
32 lines
889 B
TypeScript
/**
|
|
* Vue consent context — injection key + shape.
|
|
*
|
|
* Phase 4: extracted from vue/index.ts.
|
|
*/
|
|
|
|
import type { InjectionKey, Ref } from 'vue';
|
|
import type { ConsentManager } from '../core/ConsentManager';
|
|
import type {
|
|
ConsentCategories,
|
|
ConsentCategory,
|
|
ConsentState,
|
|
} from '../types';
|
|
|
|
export interface ConsentContext {
|
|
manager: Ref<ConsentManager | null>;
|
|
consent: Ref<ConsentState | null>;
|
|
isInitialized: Ref<boolean>;
|
|
isLoading: Ref<boolean>;
|
|
isBannerVisible: Ref<boolean>;
|
|
needsConsent: Ref<boolean>;
|
|
hasConsent: (category: ConsentCategory) => boolean;
|
|
acceptAll: () => Promise<void>;
|
|
rejectAll: () => Promise<void>;
|
|
saveSelection: (categories: Partial<ConsentCategories>) => Promise<void>;
|
|
showBanner: () => void;
|
|
hideBanner: () => void;
|
|
showSettings: () => void;
|
|
}
|
|
|
|
export const CONSENT_KEY: InjectionKey<ConsentContext> = Symbol('consent');
|