{"version":3,"file":"MarkdownRendererHelpers.js","sourceRoot":"","sources":["../../TS/MarkdownRendererHelpers.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,uBAAuB;IAApC;QAcY,yBAAoB,GAAG,IAAI,CAAC;IA4CxC,CAAC;IArDU,UAAU;QACb,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,yBAAyB,CAAC;QAE7C,MAAM,CAAC,kBAAkB,CAAC,GAAG,IAAI,CAAC;QAElC,OAAO,IAAI,CAAC;IAChB,CAAC;IAIM,qBAAqB,CAAC,GAAW;QACpC,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC;IACpC,CAAC;IAEM,KAAK,CAAC,qBAAqB,CAAC,aAAqB,EAAE,WAAmB,EAAE,cAAsB;QACjG,IAAI,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QAErD,IAAI,OAAO,GAAG;YACV,IAAI,EAAE,SAAS;SAClB,CAAA;QAED,IAAI,iBAAiB,GAAG,IAAI,CAAC;QAE7B,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE;YAChD,IAAI,iBAAiB,IAAI,IAAI,EAAE;gBAC3B,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3H;iBAAM;gBACH,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACpB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;oBAC3C,IAAI,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;oBAEtD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,SAAS,EAAE;wBACzC,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;qBACjD;yBAAM;wBACH,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAA;qBACxG;gBACL,CAAC,CAAC,CAAC;aACN;YACD,IAAI,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAEhF,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAqB,EAAE,UAAU,CAAC;iBACzE,IAAI,CAAC,GAAG,EAAE;gBACP,IAAI,IAAI,CAAC,oBAAoB,EAAE;oBAC3B,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;iBACvE;YACL,CAAC,CAAC,CAAC;QACX,CAAC,EAAE,OAAO,CAAC,CAAC;QAEZ,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3D,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;CACJ","sourcesContent":["import { IJSModule } from \"./IJSModule.js\";\r\n\r\nexport class MarkdownRendererHelpers implements IJSModule {\r\n private ASSEMBLYNAME;\r\n\r\n public serviceName: string;\r\n\r\n public initialize(): boolean {\r\n this.ASSEMBLYNAME = 'SPCW';\r\n this.serviceName = \"MarkdownRendererHelpers\";\r\n\r\n window['MarkdownRenderer'] = this;\r\n\r\n return true;\r\n }\r\n\r\n private componentInstanceObj = null;\r\n\r\n public passComponentInstance(obj: object) {\r\n this.componentInstanceObj = obj;\r\n }\r\n\r\n public async detectAnchorsOnScroll(baseItemClass: string, containerId: string, navContainerId: string) {\r\n let container = document.getElementById(containerId);\r\n\r\n let options = {\r\n root: container\r\n }\r\n\r\n let intersectingItems = null;\r\n\r\n const observer = new IntersectionObserver(entries => {\r\n if (intersectingItems == null) {\r\n intersectingItems = entries.map(x => { return { id: x.target.getAttribute('id'), isIntersecting: x.isIntersecting }; });\r\n } else {\r\n entries.forEach(entry => {\r\n const id = entry.target.getAttribute('id');\r\n let existed = intersectingItems.find(x => x.id == id);\r\n\r\n if (existed != null && existed != undefined) {\r\n existed.isIntersecting = entry.isIntersecting;\r\n } else {\r\n intersectingItems.push({ id: entry.target.getAttribute('id'), isIntersecting: entry.isIntersecting })\r\n }\r\n });\r\n }\r\n let visibleIds = intersectingItems.filter(x => x.isIntersecting).map(x => x.id);\r\n\r\n DotNet.invokeMethodAsync(this.ASSEMBLYNAME, \"MDNavSetActiveItems\", visibleIds)\r\n .then(() => {\r\n if (this.componentInstanceObj) {\r\n this.componentInstanceObj.invokeMethodAsync('MDNavUpdateUI').then();\r\n }\r\n });\r\n }, options);\r\n\r\n container.querySelectorAll('[add-to-legend]').forEach((item) => {\r\n observer.observe(item);\r\n });\r\n }\r\n}\r\n"]}