{"version":3,"file":"doCtaControllerChunk.js?v=23.134.0+20261102.30.bbbf8652390b5ce306040b1cece1df0dd99fac01&h=084a635e6aeb3ba7b248","mappings":"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","sources":["webpack://site-client-side/./ClientApp/components/doCta/cta/gm/configBuilder.ts","webpack://site-client-side/./ClientApp/components/doCta/doCtaController.ts","webpack://site-client-side/./ClientApp/components/doCta/cta/gm/gmElementGenerator.ts"],"sourcesContent":["export const ICON_TYPE = { EXPAND: 1, ARROW_LEFT: 2, ARROW_RIGHT: 3 };\nexport const HTML_BUILDER_TYPE = {\n GENERIC: 1,\n IMAGE: 2,\n IMAGE_BG: 3,\n DROPDOWN: 4,\n ICON: 5,\n INPUT: 6,\n};\nexport const linkTypes: number[] = [\n HTML_BUILDER_TYPE.GENERIC,\n HTML_BUILDER_TYPE.IMAGE,\n HTML_BUILDER_TYPE.IMAGE_BG,\n HTML_BUILDER_TYPE.INPUT,\n];\n\nexport function buildGenericConfig(config: any, type: number): any {\n if (!config.class) {\n config[\"class\"] = \"\";\n }\n if (!config.dataLoc) {\n config.dataLoc = \"\";\n console.warn(\n `No data-loc attribute was generated for component ${config[\"component-id\"]}`\n );\n }\n if (type == HTML_BUILDER_TYPE.GENERIC) {\n if (!config.ctavalue) {\n config.ctavalue = \"\";\n console.warn(\n `No ctaValue attribute exists for component ${config[\"component-id\"]}`\n );\n }\n }\n if (linkTypes.includes(type)) {\n if (!config.href) {\n config[\"href\"] = \"\";\n console.warn(\n `No href attribute exists for component ${config[\"component-id\"]}`\n );\n }\n }\n return config;\n}\n\nexport function buildImageBgConfig(config: any): any {\n if (config.src) {\n if (config.ctastyle) {\n config.ctastyle += ` background-image:url('${config.src}');`;\n } else {\n config[\"ctastyle\"] = `background-image:url('${config.src}');`;\n }\n config.src = \"\";\n }\n if (config.class) {\n if (!config.class.includes(\"img-background\")) {\n config.class += \" img-background\";\n }\n } else {\n config[\"class\"] = \"img-background\";\n }\n return config;\n}\n\nexport function buildIconConfig(config: any, type: number): any {\n if (config.iconclass) {\n return config;\n }\n switch (type) {\n case ICON_TYPE.EXPAND:\n config[\"iconclass\"] = \"fa fa-chevron-down\";\n break;\n case ICON_TYPE.ARROW_LEFT:\n config[\"iconclass\"] = \"fa fa-chevron-right\";\n break;\n case ICON_TYPE.ARROW_RIGHT:\n config[\"iconclass\"] = \"fa fa-chevron-left\";\n break;\n default:\n break;\n }\n return config;\n}\n\nexport function buildDropdownConfig(config: any): any {\n config = generateDropdownOptionsList(config);\n return config;\n}\n\nexport function generateDropdownOptionsList(config: any): any {\n if (config.options) {\n config.options = config.options.split(\",\");\n return config;\n }\n}\n","import { getElementHtmlByType } from \"./cta/gm/gmElementGenerator\";\n\nexport default class DoCtaController {\n private readonly _element: HTMLElement;\n private readonly _config: any; // Assuming _config has a specific type, replace 'any' with the actual type if possible\n private readonly _tagList: string[];\n\n public constructor(element: HTMLElement, config: any) {\n // Assuming _config has a specific type, replace 'any' with the actual type if possible\n this._element = element;\n this._config = config;\n this._tagList = [\"H1\", \"H2\", \"H3\"];\n this.initialize();\n }\n\n private initialize(): void {\n const configValid: boolean = this.validateConfig();\n if (configValid && this._config.oem === \"gm\") {\n this.generateHtmlForGm();\n }\n }\n\n private validateConfig(): boolean {\n let valid: boolean = true;\n if (!this._config.ctatype) {\n console.warn(\n \"DO-CTA does not contain the required ctaType attribute, and therefore will not be rendered.\"\n );\n valid = false;\n }\n if (!this._config.oem) {\n console.warn(\n \"DO-CTA does not contain the required oem attribute, and therefore will not be rendered.\"\n );\n valid = false;\n }\n return valid;\n }\n\n private generateHtmlForGm(): void {\n this.setDataLoc();\n const html: string = getElementHtmlByType(this._config);\n this._element.outerHTML = html;\n }\n\n private setDataLoc(): void {\n if (this._config.dataLoc) {\n return;\n }\n let currentElement: HTMLElement | null = this._element;\n while (!this.getHeadingTags(currentElement)) {\n currentElement = this.getNextElement(currentElement);\n if (!currentElement) {\n break;\n }\n }\n }\n\n private getNextElement(element: HTMLElement): HTMLElement | null {\n if (element === this._element) {\n if (element.previousElementSibling) {\n return element.previousElementSibling as HTMLElement;\n } else {\n return element.parentElement;\n }\n }\n return element.parentElement;\n }\n\n private getHeadingTags(element: HTMLElement): boolean {\n if (element.children) {\n for (let i = 0; i < element.children.length; i++) {\n const child: HTMLElement = element.children[i] as HTMLElement;\n if (this._tagList.includes(child.tagName)) {\n this._config.dataLoc = child.textContent?.toLowerCase();\n return true;\n }\n }\n }\n return false;\n }\n}\n","import {\n buildGenericConfig,\n buildImageBgConfig,\n buildIconConfig,\n buildDropdownConfig,\n HTML_BUILDER_TYPE,\n ICON_TYPE,\n} from \"./configBuilder\";\n\nexport function getElementHtmlByType(config: any): string {\n let valid: boolean = true;\n let tag: string = \"\";\n let classType: string = \"\";\n let buildType: number = 0;\n let attributes: string = \"\";\n const type: string = config.ctatype.toLowerCase();\n\n switch (type) {\n case \"img\":\n tag = \"img\";\n classType = \"stat-image-link\";\n buildType = HTML_BUILDER_TYPE.IMAGE;\n break;\n case \"imgbg\":\n tag = \"div\";\n classType = \"stat-image-link\";\n buildType = HTML_BUILDER_TYPE.IMAGE_BG;\n config = buildImageBgConfig(config);\n break;\n case \"imgthumb\":\n tag = \"img\";\n classType = \"stat-thumbnail\";\n buildType = HTML_BUILDER_TYPE.IMAGE;\n break;\n case \"text\":\n tag = \"a\";\n classType = \"stat-text-link\";\n buildType = HTML_BUILDER_TYPE.GENERIC;\n break;\n case \"searchbtn\":\n tag = \"button\";\n classType = \"stat-search-button\";\n buildType = HTML_BUILDER_TYPE.GENERIC;\n break;\n case \"btn\":\n tag = \"button\";\n classType = \"stat-button-link\";\n buildType = HTML_BUILDER_TYPE.GENERIC;\n break;\n case \"tab\":\n tag = \"a\";\n classType = \"stat-tab-link\";\n buildType = HTML_BUILDER_TYPE.GENERIC;\n break;\n case \"searchsubmit\":\n tag = \"button\";\n classType = \"stat-search-submit\";\n buildType = HTML_BUILDER_TYPE.GENERIC;\n break;\n case \"close\":\n tag = \"button\";\n classType = \"stat-button-close\";\n buildType = HTML_BUILDER_TYPE.GENERIC;\n break;\n case \"input\":\n tag = \"input\";\n classType = \"stat-input-field\";\n buildType = HTML_BUILDER_TYPE.INPUT;\n config[\"type\"] = \"text\";\n break;\n case \"radio\":\n tag = \"input\";\n classType = \"stat-radio\";\n buildType = HTML_BUILDER_TYPE.INPUT;\n config[\"type\"] = \"radio\";\n break;\n case \"checkbox\":\n tag = \"input\";\n classType = \"stat-checkbox\";\n buildType = HTML_BUILDER_TYPE.INPUT;\n config[\"type\"] = \"checkbox\";\n break;\n case \"dropdown\":\n tag = \"select\";\n classType = \"stat-dropdown\";\n buildType = HTML_BUILDER_TYPE.DROPDOWN;\n config = buildDropdownConfig(config);\n break;\n case \"arrowleft\":\n classType = \"stat-arrow-prev\";\n buildType = HTML_BUILDER_TYPE.ICON;\n config = buildIconConfig(config, ICON_TYPE.ARROW_LEFT);\n break;\n case \"arrowright\":\n classType = \"stat-arrow-next\";\n buildType = HTML_BUILDER_TYPE.ICON;\n config = buildIconConfig(config, ICON_TYPE.ARROW_RIGHT);\n break;\n case \"expand\":\n classType = \"stat-expand-icon\";\n buildType = HTML_BUILDER_TYPE.ICON;\n config = buildIconConfig(config, ICON_TYPE.EXPAND);\n break;\n case \"icon\":\n classType = \"stat-icon-link\";\n buildType = HTML_BUILDER_TYPE.ICON;\n config = buildIconConfig(config, -1);\n break;\n default:\n valid = false;\n }\n\n if (valid) {\n config = buildGenericConfig(config, buildType);\n attributes = generateAttributeString(config);\n\n switch (buildType) {\n case HTML_BUILDER_TYPE.GENERIC: {\n let hrefString: string = \"\";\n if (config.href) {\n hrefString = `href=${config.href} `;\n }\n return generateGenericLinkHtml(\n config,\n tag,\n classType,\n hrefString,\n attributes\n );\n }\n case HTML_BUILDER_TYPE.IMAGE:\n case HTML_BUILDER_TYPE.IMAGE_BG:\n return generateImageLinkHtml(config, tag, classType, attributes);\n case HTML_BUILDER_TYPE.INPUT:\n return generateInputElementHtml(config, tag, classType, attributes);\n case HTML_BUILDER_TYPE.DROPDOWN:\n return generateDropdownHtml(config, classType, attributes);\n case HTML_BUILDER_TYPE.ICON:\n return generateIconLinkHtml(config, classType, attributes);\n }\n } else {\n console.warn(\n `The given ctaType value of ${type} is not valid. No element will be rendered`\n );\n return \"\";\n }\n}\n\nfunction generateGenericLinkHtml(\n config: any,\n tag: string,\n classType: string,\n href: string,\n attributes: string\n): string {\n return `<${tag} ${href} class=\"${classType} ${config.class}\" data-loc=\"${config.dataLoc}\" ${attributes}>${config.ctavalue}`;\n}\n\nfunction generateImageLinkHtml(\n config: any,\n tag: string,\n classType: string,\n attributes: string\n): string {\n return `<${tag} class=\"${classType} ${config.class}\" data-loc=\"${config.dataLoc}\" ${attributes}>`;\n}\n\nfunction generateIconLinkHtml(\n config: any,\n classType: string,\n attributes: string\n): string {\n return ``;\n}\n\nfunction generateInputElementHtml(\n config: any,\n tag: string,\n classType: string,\n attributes: string\n): string {\n return `<${tag} class=\"${classType} ${config.class}\" data-loc=\"${config.dataLoc}\" ${attributes}>`;\n}\n\nfunction generateDropdownHtml(\n config: any,\n classType: string,\n attributes: string\n): string {\n let html: string = `\";\n return html;\n}\n\nfunction generateAttributeString(config: any): string {\n let attrString: string = \"\";\n const attrToIgnore: Set = new Set([\n \"ctatype\",\n \"ctavalue\",\n \"dataLoc\",\n \"oem\",\n \"class\",\n \"style\",\n \"iconclass\",\n \"href\",\n ]);\n const keys: string[] = Object.keys(config);\n\n for (const key of keys) {\n if (!attrToIgnore.has(key)) {\n const val: string = config[key];\n let attrKey: string = key;\n if (key === \"ctastyle\") {\n attrKey = \"style\";\n }\n if (val) {\n attrString += ` ${attrKey}=\"${val}\"`;\n }\n }\n }\n return attrString;\n}\n"],"names":["ICON_TYPE","EXPAND","ARROW_LEFT","ARROW_RIGHT","HTML_BUILDER_TYPE","linkTypes","buildIconConfig","config","type","iconclass","DoCtaController","element","this","_element","_config","_tagList","initialize","validateConfig","oem","generateHtmlForGm","valid","ctatype","console","warn","setDataLoc","html","tag","classType","buildType","attributes","toLowerCase","src","ctastyle","class","includes","buildImageBgConfig","options","split","generateDropdownOptionsList","buildDropdownConfig","dataLoc","ctavalue","href","buildGenericConfig","attrString","attrToIgnore","Set","keys","Object","key","has","val","attrKey","generateAttributeString","hrefString","generateGenericLinkHtml","generateImageLinkHtml","generateInputElementHtml","forEach","option","generateDropdownHtml","generateIconLinkHtml","getElementHtmlByType","outerHTML","currentElement","getHeadingTags","getNextElement","previousElementSibling","parentElement","children","i","length","child","tagName","textContent"],"sourceRoot":""}