import { DoCheck, ElementRef, KeyValueDiffers, OnInit } from '@angular/core'; import * as i0 from "@angular/core"; /** * SME directive to wrap around telemetry tags for convenience and control. JSLL and 1DS use these to add information to telemetry events. */ export declare class TelemetryDirective implements DoCheck, OnInit { private elementRef; private kvDiffers; /** * JSLL/1DS main tag labels - all tags are supported (data-bi-*) but these are the main labels and are * specifically checked for in various cases. */ private static readonly idLabel; private static readonly areaNameLabel; private static readonly slotNumberLabel; private static readonly contentNameLabel; private static readonly contentSourceLabel; private static readonly templateNameLabel; private static readonly productIdLabel; private static readonly contentTypeLabel; private static readonly disableAutomaticTrackingLabel; private static readonly disableElementTrackingLabel; private static readonly directivePrefix; private static readonly labeledDirectives; /** * The source name to use for logging */ protected get logSourceName(): string; /** * Content to specify custom directives on */ smeTelemetry: any; /** * Adds data-bi-id */ set telemetryId(value: string); get telemetryId(): string; /** * Adds data-bi-area */ set areaName(value: string); get areaName(): string; /** * Adds data-bi-slot */ set slotNumber(value: string); get slotNumber(): string; /** * Adds data-bi-name */ set contentName(value: string); get contentName(): string; /** * Adds data-bi-source */ set contentSource(value: string); get contentSource(): string; /** * Adds data-bi-type */ set contentType(value: string); get contentType(): string; /** * Adds data-bi-view */ set templateName(value: string); get templateName(): string; /** * Adds data-bi-product */ set productId(value: string); get productId(): string; /** * Adds each field in JSON object to element. Allows for custom element typings. Data-m has a similar behavior, but splitting up * the individual fields works together with lineage component, whereas specifying data-m blocks the lineage handling (ie cannot pull * tags from higher or lower in the DOM tree) * This uses the ngDoCheck to change DOM mainly, this setter is used for the initial object set. */ set dataBlob(value: any); get dataBlob(): any; /** * Adds data-bi-mto * Removes the element from being subject to default automatic tracking. */ set disableAutomaticTracking(value: boolean); get disableAutomaticTracking(): boolean; /** * Adds data-bi-dnt * Removes element from all telemetry events. */ set disableElementTracking(value: boolean); get disableElementTracking(): boolean; /** * Initialize differ for data blob so it constantly updates based on object. * Also, check if smeTelemetry specified. If so, search for anything with smeTelemetry prefix and add data-bi telemetry * tags. This allows for any singular addition of a data-bi- tag, as opposed to dataBlob which uses an object to retrieve fields. * Due to Angular limitations we cannot bind to any custom SmeTelemetry____ directive, limiting it to mainly use for * static data-bi- labels. Custom directives, if not part of data blob, should primarily stem from the data-bi- * dictionary for adding target fields in telemetry. * See https://martech.azurewebsites.net/website-tools/jsll/references/data-bi-event-dictionary/ * @param elementRef Element with the directive * @param kvDiffers KeyValue differs for dataBlob */ constructor(elementRef: ElementRef, kvDiffers: KeyValueDiffers); private dataBlobDiffer; /** * Internal variable holders */ private internalId; private internalAreaName; private internalSlotNumber; private internalContentName; private internalContentSource; private internalTemplateName; private internalProductId; private internalContentType; private internalDisableAutomaticTracking; private internalDisableElementTracking; private internalDataBlob; ngOnInit(): void; /** * Handle changes to data blob object, needed b/c data object will update without triggering setter. * Selectively update DOM fields based on individual changes. */ ngDoCheck(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; }