{"version":3,"file":"default-src_app_dynamic-module_text-panel_text-panel_component_ts.js","mappings":"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","sources":["./src/app/dynamic-module/text-panel/text-panel.component.ts","./src/app/dynamic-module/text-panel/text-panel.component.html","./src/app/shared/content-helper/content-helper.module.ts","./src/app/shared/content-helper/content-linkify.directive.ts","./src/app/shared/helpers/link.helper.ts"],"sourcesContent":["import { Component, OnInit, Input, HostBinding } from '@angular/core';\r\nimport { resolveThemeCssClass } from '../lib/helper/panel-settings';\r\nimport { IUProperty } from 'src/app/shared/interface/umbraco-property';\r\nimport { IPanelSettings, ButtonData, LinkModule } from '../lib/public_api';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SharedModule } from 'src/app/shared/shared.module';\r\nimport { ContentHelperModule } from 'src/app/shared/content-helper/content-helper.module';\r\n\r\ninterface TextPanelData {\r\n description?: IUProperty;\r\n link?: IUProperty;\r\n panelSettings?: IPanelSettings;\r\n anchor: IUProperty;\r\n}\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'app-text-panel',\r\n templateUrl: './text-panel.component.html',\r\n styleUrls: ['./text-panel.component.less'],\r\n imports: [CommonModule, SharedModule, LinkModule, ContentHelperModule],\r\n})\r\nexport class TextPanelComponent implements OnInit {\r\n @Input() data: TextPanelData;\r\n\r\n @HostBinding('class') get hostClasses() {\r\n return resolveThemeCssClass(this.data.panelSettings, 'text-panel');\r\n }\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","
\r\n
\r\n\r\n
\r\n\r\n {{ data.link.value.name }}\r\n \r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ContentLinkifyDirective } from './content-linkify.directive';\r\n\r\nconst components = [ContentLinkifyDirective];\r\n\r\n@NgModule({\r\n declarations: components,\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n ...components\r\n ]\r\n})\r\nexport class ContentHelperModule { }\r\n","import { Directive, ElementRef, HostListener, Input, HostBinding, Renderer2, SecurityContext } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UrlType } from 'src/app/shared/enum/url-type';\r\nimport { LinkHelper } from '../helpers/link.helper';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nconst isMediaRegexp = /(\\.(pdf|png|jpg|jpeg|svg))$/i;\r\n\r\n@Directive({\r\n selector: '[contentLinkify]'\r\n})\r\nexport class ContentLinkifyDirective {\r\n @Input('contentLinkify') set content(content: string) {\r\n const contentSanitized = this._domSanitizer.sanitize(SecurityContext.HTML, content);\r\n this.renderer.setProperty(this.el.nativeElement, 'innerHTML', contentSanitized);\r\n\r\n this.setCorrectTypes(this.el.nativeElement);\r\n }\r\n\r\n constructor(\r\n private el: ElementRef,\r\n private router: Router,\r\n private renderer: Renderer2,\r\n private _domSanitizer: DomSanitizer) {\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n public onClick(event) {\r\n if (event.target.tagName !== 'A') return;\r\n\r\n const urlType = this.getType(event.target);\r\n if (urlType === UrlType.Node) {\r\n const route = LinkHelper.normalizeUrl(event.target.getAttribute('href'));\r\n this.router.navigate([route]);\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n private setCorrectTypes(nativeElement) {\r\n const links = nativeElement.querySelectorAll('a');\r\n\r\n if (links && links.length) {\r\n Array.from(links)\r\n .forEach((link : HTMLAnchorElement) => {\r\n this.setType(link);\r\n })\r\n }\r\n }\r\n\r\n private getType(element: HTMLElement): UrlType {\r\n const type = element.getAttribute('type');\r\n return type ? parseInt(type) : null;\r\n }\r\n\r\n private setType(link: HTMLAnchorElement){\r\n if(this.isExternal(link)){\r\n link.setAttribute('type', UrlType.External.toString());\r\n link.classList.add('link--external');\r\n }else if(this.isMedia(link)){\r\n link.setAttribute('type', UrlType.Media.toString());\r\n }\r\n else{\r\n link.setAttribute('type', UrlType.Node.toString());\r\n }\r\n }\r\n\r\n private isExternal(link: HTMLAnchorElement){\r\n return link.hostname != location.hostname;\r\n }\r\n\r\n private isMedia(link: HTMLAnchorElement){\r\n\r\n return link.href.match(isMediaRegexp)\r\n }\r\n\r\n}\r\n","import { IUProperty } from '../interface/umbraco-property';\r\nimport { IButtonData } from '../components/button/button.component';\r\n\r\ninterface LinkProperty{\r\n name: string,\r\n url: string,\r\n target?: string;\r\n}\r\n\r\nexport class LinkHelper {\r\n static mapLink(link: IUProperty): IButtonData {\r\n if (!(link && link.value)) return;\r\n\r\n let linkData = Object.assign({}, link.value);\r\n\r\n if (linkData.name === linkData.url) {\r\n linkData.name = '';\r\n }\r\n\r\n return linkData;\r\n }\r\n\r\n static normalizeUrl(url?: string): string {\r\n if (!url) return url;\r\n let newUrl = url.replace('/?', '?');\r\n if (newUrl.lastIndexOf('/') === newUrl.length - 1) {\r\n newUrl = newUrl.slice(0, -1);\r\n }\r\n return newUrl;\r\n }\r\n}\r\n"],"names":["resolveThemeCssClass","LinkModule","CommonModule","SharedModule","ContentHelperModule","i0","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ctx_r0","data","link","value","ɵɵadvance","ɵɵtextInterpolate1","name","ɵɵelement","ɵɵtemplate","TextPanelComponent_section_0_ubl_link_2_Template","description","TextPanelComponent","hostClasses","panelSettings","constructor","ngOnInit","_","_2","selectors","hostVars","hostBindings","TextPanelComponent_HostBindings","rf","ctx","ɵɵclassMap","TextPanelComponent_section_0_Template","i1","NgIf","i2","LinkComponent","i3","ContentLinkifyDirective","styles","components","_3","declarations","imports","exports","SecurityContext","UrlType","LinkHelper","isMediaRegexp","content","contentSanitized","_domSanitizer","sanitize","HTML","renderer","setProperty","el","nativeElement","setCorrectTypes","router","onClick","event","target","tagName","urlType","getType","Node","route","normalizeUrl","getAttribute","navigate","preventDefault","links","querySelectorAll","length","Array","from","forEach","setType","element","type","parseInt","isExternal","setAttribute","External","toString","classList","add","isMedia","Media","hostname","location","href","match","ɵɵdirectiveInject","ElementRef","Router","Renderer2","DomSanitizer","ContentLinkifyDirective_HostBindings","ɵɵlistener","ContentLinkifyDirective_click_HostBindingHandler","$event","mapLink","linkData","Object","assign","url","newUrl","replace","lastIndexOf","slice"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}