{"version":3,"file":"insite.min.js","sources":["../../Insite.UserInterface/Source/features/Polyfills/custom-elements-es5-adapter.js","../../Insite.UserInterface/Source/features/Content/ContentStore.ts","../../Insite.UserInterface/Source/features/UrlBox/index.ts","../../Insite.UserInterface/Source/Library/ElementDataWatcher.ts","../../Insite.UserInterface/Source/features/ContentViewers/ImagesViewerElement.ts","../../Insite.UserInterface/Source/features/ContentViewers/TookViewerElement.ts","../../Insite.UserInterface/Source/features/ContentViewers/ContentTypeViewerElement.ts","../../Insite.UserInterface/Source/features/ContentViewers/StringViewerElement.ts","../../Insite.UserInterface/Source/features/ContentViewers/ContentViewerElement.ts","../../Insite.UserInterface/Source/features/ContentViewers/FeedsViewerElement.ts"],"sourcesContent":["/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n/**\n * This shim allows elements written in, or compiled to, ES5 to work on native\n * implementations of Custom Elements v1. It sets new.target to the value of\n * this.constructor so that the native HTMLElement constructor can access the\n * current under-construction element's definition.\n */\n(function() {\n if (\n // No Reflect, no classes, no need for shim because native custom elements\n // require ES2015 classes or Reflect.\n window.Reflect === undefined ||\n window.customElements === undefined ||\n // The webcomponentsjs custom elements polyfill doesn't require\n // ES2015-compatible construction (`super()` or `Reflect.construct`).\n window.customElements.hasOwnProperty('polyfillWrapFlushCallback')\n ) {\n return;\n }\n const BuiltInHTMLElement = HTMLElement;\n window.HTMLElement = /** @this {!Object} */ function HTMLElement() {\n return Reflect.construct(\n BuiltInHTMLElement, [], /** @type {!Function} */ (this.constructor));\n };\n HTMLElement.prototype = BuiltInHTMLElement.prototype;\n HTMLElement.prototype.constructor = HTMLElement;\n Object.setPrototypeOf(HTMLElement, BuiltInHTMLElement);\n })();","export class ContentStore {\n private static _instance = new ContentStore();\n private constructor() { }\n public static get instance() {\n return this._instance;\n }\n\n public async getDocument(url: string): Promise {\n var serverUrl = new URL(`${window.location.protocol}//${window.location.host}/content`);\n serverUrl.searchParams.append(\"url\", url);\n const response = await fetch(serverUrl.toString());\n const contentDocument = await response.json() as ContentDocument;\n\n if (contentDocument.content) {\n contentDocument.content[\"text/plain+formatted\"] = undefined;\n contentDocument.content[\"text/html\"] = undefined;\n }\n\n return contentDocument;\n }\n}\n\n\nexport interface ThreatLevel {\n kind: string;\n url: string;\n submitted: Date;\n clean: boolean;\n badUrl: boolean;\n types: any[];\n}\n\nexport interface Dimensions {\n width: number;\n height: number;\n}\n\nexport interface Image {\n url: string;\n relation: string;\n score: number;\n dimensions: Dimensions;\n urlTemplate: string;\n}\n\nexport interface Content {\n [Key: string]: string;\n}\n\nexport interface ContentDocument {\n took: number;\n contentType: string;\n description: string;\n title: string;\n language: string;\n readable: boolean;\n threatLevel: ThreatLevel;\n canonicalUrl: string;\n readingTime: string;\n feeds: any[];\n images: Image[];\n content: Content;\n}\n\n","import { ContentStore, ContentDocument } from \"../Content/ContentStore\";\n\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n const urlBox = document.querySelector(\"input\");\n urlBox.addEventListener(\"keypress\", keypressHandler);\n});\n\n\n\nconst keypressHandler = (event: KeyboardEvent) => {\n const urlBox = document.querySelector(\"input\");\n if (event.key === \"Enter\") \n showUrl(urlBox.value);\n};\n\nconst shortDate = (source: string) : string => {\n const date = new Date(source);\n \n return `${date.getFullYear()}/${date.getMonth()+1}/${date.getDate()}`;\n}\n\nconst showUrl = async (checkUrl: string) => {\n const contentDocument = await ContentStore.instance.getDocument(checkUrl);\n const result = document.querySelector(\"[name=result]\");\n result.innerHTML = contentView(contentDocument);\n}\n\ninterface MalwareResponse {\n url: string;\n submitted: string;\n source: string;\n moreDetails: string;\n clean: boolean;\n}\n\nconst titleize = (sentence: string) => {\n if(!sentence.split) return sentence;\n const result: string[] = [];\n\n var _titleizeWord = (s: string) => {\n return s.charAt(0).toUpperCase() + s.slice(1).toLowerCase();\n }\n\n sentence.split(\" \").forEach(function(w) {\n result.push(_titleizeWord(w));\n });\n\n return result.join(\" \");\n}\n\nconst contentView = (contentDocument: ContentDocument) => `\n ${Object.keys(contentDocument).map(key => `\n <${key}-viewer title=\"${titleize(key)}\">\n \n `)\n .join(\"\")}\n`;\n\nconst malwareView = (malwareResponse: MalwareResponse) => `\n

\n ${malwareResponse.clean ? \"Url is clean\" : \"Url is infected\"}\n

\n
\n ${malwareResponse.source}, ${malwareResponse.submitted ? shortDate(malwareResponse.submitted) : \"\"} More info\n
\n`;\n","\n\nexport class ElementDataWatcher {\n private changeObserver: MutationObserver;\n private type: string = \"application/json+\";\n private cachedEntity: TEntity;\n private cachedChecksum: string;\n \n // private emitChanged = (entity: TEntity) => this.emit(\"changed\", entity);\n // public onChanged = (callback: (entity: TEntity) => void) => this.on(\"changed\", callback);\n // public offChanged = (callback: (entity: TEntity) => void) => this.removeListener(\"changed\", callback);\n\n constructor(private rootElement: HTMLElement, entityContentType: string) {\n this.type += entityContentType;\n\n this.cachedChecksum = this.checksum(this.getJSON());\n\n this.changeObserver = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n const addedNodes = [].slice.call(mutation.addedNodes) as HTMLElement[];\n const script = addedNodes.filter(a => a.localName === \"script\" && a.getAttribute(\"type\") === this.type)[0] as HTMLElement;\n if (script && script.innerText) {\n if (this.checksum(script.innerText) !== this.cachedChecksum) {\n this.flushCache();\n //this.emitChanged(this.data);\n }\n \n }\n \n });\n });\n\n this.changeObserver.observe(this.rootElement, { childList: true })\n }\n\n private flushCache() {\n this.cachedEntity = undefined;\n }\n\n private getJSON() {\n const jsonElement = this.rootElement.querySelector(`script[type='${this.type}']`) as HTMLElement;\n if (!jsonElement) {\n //console.log(`jsonElement not found for element ${this.id} (${this.innerHTML.length})`, this.innerHTML);\n return undefined;\n }\n\n return jsonElement.innerText; \n }\n\n\n private parseEntity() : TEntity {\n const json = this.getJSON();\n if (json)\n return JSON.parse(json) as TEntity;\n \n return undefined; \n }\n\n get data(): TEntity {\n if (this.cachedEntity)\n return this.cachedEntity;\n\n return this.cachedEntity = this.parseEntity();\n }\n\n set data(entity: TEntity) {\n const jsonElement = this.rootElement.querySelector(`script[type='${this.type}']`) as HTMLElement;\n jsonElement.innerHTML = JSON.stringify(entity);\n this.flushCache();\n //this.emitChanged(this.data);\n }\n\n destroy() {\n this.changeObserver.disconnect();\n }\n\n private checksum(source = \"\") : string\n {\n let chk = 0x12345678;\n const len = source.length;\n for (let i = 0; i < len; i++) \n chk += (source.charCodeAt(i) * (i + 1));\n \n return (chk & 0xffffffff).toString(16);\n }\n}","import { Image } from \"../Content/ContentStore\";\nimport { ElementDataWatcher } from \"../../Library/ElementDataWatcher\";\nimport \"./ImagesViewerElement.less\";\nimport * as contentStyle from \"./ContentViewers.less\";\n\nclass ImagesViewerElement extends HTMLElement {\n private dataWatcher: ElementDataWatcher;\n\n connectedCallback() {\n this.dataWatcher = new ElementDataWatcher(this, \"images\");\n this.className += ` ${contentStyle.contentViewer}`;\n this.innerHTML = this.view(this.dataWatcher.data);\n }\n view = (images: Image[]) => `\n

Images

\n
\n ${images.map(image => this.imageView(image)).join(\"\")}\n
\n `;\n\n private imageView = (image: Image) => `\n
\n
${image.score} ${image.relation}
\n \n \n \n
${image.dimensions?.width || \"?\"} x ${image.dimensions?.height || \"?\"}
\n\n
\n `;\n}\n\ncustomElements.define(\"images-viewer\", ImagesViewerElement);","import { Image } from \"../Content/ContentStore\";\nimport { ElementDataWatcher } from \"../../Library/ElementDataWatcher\";\nimport * as contentStyle from \"./ContentViewers.less\";\n\nclass TookViewerElement extends HTMLElement {\n private dataWatcher: ElementDataWatcher;\n\n connectedCallback() {\n this.dataWatcher = new ElementDataWatcher(this, \"took\");\n this.className += ` ${contentStyle.contentViewer}`;\n this.innerHTML = this.view(this.dataWatcher.data);\n }\n \n private view = (took: string) => `\n

Took

\n
${took} milliseconds
\n `;\n}\n\ncustomElements.define(\"took-viewer\", TookViewerElement);","import { Image } from \"../Content/ContentStore\";\nimport { ElementDataWatcher } from \"../../Library/ElementDataWatcher\";\nimport * as contentStyle from \"./ContentViewers.less\";\n\nclass ContentTypeViewerElement extends HTMLElement {\n private dataWatcher: ElementDataWatcher;\n\n connectedCallback() {\n this.dataWatcher = new ElementDataWatcher(this, \"contentType\");\n this.className += ` ${contentStyle.contentViewer}`;\n this.innerHTML = this.view(this.dataWatcher.data);\n }\n \n private view = (contentType: string) => `\n

ContentType

\n ${contentType}\n `;\n}\n\ncustomElements.define(\"contenttype-viewer\", ContentTypeViewerElement);","import { ElementDataWatcher } from \"../../Library/ElementDataWatcher\";\nimport * as contentStyle from \"./ContentViewers.less\";\n\nabstract class StringViewerElement extends HTMLElement {\n private dataWatcher: ElementDataWatcher;\n \n\n connectedCallback() {\n const dataName = this.tagName.split(\"-\")[0];\n this.dataWatcher = new ElementDataWatcher(this, dataName);\n this.className += ` ${contentStyle.contentViewer}`;\n this.insertAdjacentHTML(\"beforeend\", this.view(this.dataWatcher.data));\n }\n \n private view = (data: string) => `\n

${this.title}

\n
${data}
\n `;\n}\n\nclass DescriptionViewerElement extends StringViewerElement {}\nclass TitleViewerElement extends StringViewerElement {}\nclass LanguageViewerElement extends StringViewerElement {}\nclass ReadableViewerElement extends StringViewerElement {}\nclass CanonicalurlViewerElement extends StringViewerElement {}\nclass ReadingtimeViewerElement extends StringViewerElement {}\n\ncustomElements.define(\"description-viewer\", DescriptionViewerElement);\ncustomElements.define(\"title-viewer\", TitleViewerElement);\ncustomElements.define(\"language-viewer\", LanguageViewerElement);\ncustomElements.define(\"readable-viewer\", ReadableViewerElement);\ncustomElements.define(\"canonicalurl-viewer\", CanonicalurlViewerElement);\ncustomElements.define(\"readingtime-viewer\", ReadingtimeViewerElement);","import { Content } from \"../Content/ContentStore\";\nimport { ElementDataWatcher } from \"../../Library/ElementDataWatcher\";\nimport \"./ImagesViewerElement.less\";\nimport * as contentStyle from \"./ContentViewers.less\";\nimport { Context } from \"vm\";\nimport * as viewerStyle from \"./ContentViewer.less\";\n\nclass ContentViewerElement extends HTMLElement {\n private dataWatcher: ElementDataWatcher;\n\n connectedCallback() {\n this.dataWatcher = new ElementDataWatcher(this, \"content\");\n this.className += ` ${contentStyle.contentViewer} ${viewerStyle.contentViewer}`;\n this.innerHTML = this.view(this.dataWatcher.data);\n }\n view = (content: Context) => `\n
\n

Content

\n

text/plain

\n
\n ${content[\"text/plain\"]}\n
\n

text/html+formatted

\n
\n ${content[\"text/html+formatted\"]}\n
\n

text/plain+raw

\n
\n ${content[\"text/plain+raw\"]}\n
\n
\n \n `;\n}\n\ncustomElements.define(\"content-viewer\", ContentViewerElement);","import { ElementDataWatcher } from \"../../Library/ElementDataWatcher\";\nimport * as contentStyle from \"./ContentViewers.less\";\n\nclass FeedsViewerElement extends HTMLElement {\n private dataWatcher: ElementDataWatcher;\n\n connectedCallback() {\n this.dataWatcher = new ElementDataWatcher(this, \"feeds\");\n this.className += ` ${contentStyle.contentViewer}`;\n this.innerHTML = this.view(this.dataWatcher.data);\n }\n \n private view = (feeds: Feed[]) => `\n

Feeds

\n ${feeds.map(feed => `
${feed.title} (${feed.type})
`).join(\"\")}\n `;\n}\n\ninterface Feed {\n url: string;\n title: string;\n type: string;\n}\n\ncustomElements.define(\"feeds-viewer\", FeedsViewerElement);"],"names":["contentStyle.contentViewer","viewerStyle.viewer","viewerStyle.contentViewer"],"mappings":"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"}