@d-i-t-a/reader 2.1.0-alpha.2 → 2.1.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/README.md +52 -3
  2. package/dist/esm/index.js +48822 -0
  3. package/dist/esm/index.js.map +7 -0
  4. package/dist/injectables/click/click.js +1774 -2
  5. package/dist/injectables/click/click.js.map +7 -1
  6. package/dist/injectables/mui/script.js +205 -0
  7. package/dist/injectables/mui/style.css +271 -0
  8. package/dist/injectables/style/linefocus.css +55 -0
  9. package/dist/injectables/style/popover.css +125 -0
  10. package/dist/injectables/style/popup.css +121 -0
  11. package/dist/injectables/style/style.css +261 -0
  12. package/dist/injectables/style/toast.css +76 -0
  13. package/dist/reader.css +1 -1125
  14. package/dist/reader.css.map +1 -21
  15. package/dist/reader.js +126 -3
  16. package/dist/reader.js.map +7 -1
  17. package/dist/types/index.d.ts +7 -0
  18. package/dist/{model → types/model}/Link.d.ts +2 -1
  19. package/dist/{model → types/model}/Locator.d.ts +4 -22
  20. package/dist/types/model/Publication.d.ts +51 -0
  21. package/dist/{model → types/model}/user-settings/ReadiumCSS.d.ts +0 -0
  22. package/dist/{model → types/model}/user-settings/UserProperties.d.ts +10 -4
  23. package/dist/{model → types/model}/user-settings/UserSettings.d.ts +23 -24
  24. package/dist/types/modules/AnnotationModule.d.ts +78 -0
  25. package/dist/types/modules/BookmarkModule.d.ts +57 -0
  26. package/dist/types/modules/ReaderModule.d.ts +2 -0
  27. package/dist/types/modules/TTS/TTSModule2.d.ts +74 -0
  28. package/dist/{modules → types/modules}/TTS/TTSSettings.d.ts +44 -20
  29. package/dist/types/modules/citation/CitationModule.d.ts +46 -0
  30. package/dist/{modules → types/modules}/highlight/HtmlElementSelector.d.ts +0 -0
  31. package/dist/types/modules/highlight/LayerSettings.d.ts +19 -0
  32. package/dist/{modules → types/modules}/highlight/TextHighlighter.d.ts +69 -61
  33. package/dist/{modules → types/modules}/highlight/common/document.d.ts +0 -0
  34. package/dist/{modules → types/modules}/highlight/common/events.d.ts +0 -0
  35. package/dist/types/modules/highlight/common/highlight.d.ts +72 -0
  36. package/dist/{modules → types/modules}/highlight/common/rect-utils.d.ts +2 -2
  37. package/dist/{modules → types/modules}/highlight/common/selection.d.ts +8 -3
  38. package/dist/{modules → types/modules}/highlight/renderer/common/cssselector.d.ts +0 -0
  39. package/dist/{modules → types/modules}/highlight/renderer/common/cssselector2.d.ts +0 -0
  40. package/dist/{modules → types/modules}/highlight/renderer/iframe/selection.d.ts +2 -2
  41. package/dist/{modules → types/modules}/highlight/renderer/iframe/state.d.ts +0 -3
  42. package/dist/types/modules/history/HistoryModule.d.ts +34 -0
  43. package/dist/types/modules/linefocus/LineFocusModule.d.ts +51 -0
  44. package/dist/{modules → types/modules}/mediaoverlays/MediaOverlayModule.d.ts +19 -14
  45. package/dist/{modules → types/modules}/mediaoverlays/MediaOverlaySettings.d.ts +21 -16
  46. package/dist/types/modules/pagebreak/PageBreakModule.d.ts +30 -0
  47. package/dist/{modules → types/modules}/positions/TimelineModule.d.ts +3 -3
  48. package/dist/{modules → types/modules}/protection/ContentProtectionModule.d.ts +15 -11
  49. package/dist/types/modules/sampleread/SampleReadEventHandler.d.ts +8 -0
  50. package/dist/types/modules/search/DefinitionsModule.d.ts +52 -0
  51. package/dist/types/modules/search/Popup.d.ts +10 -0
  52. package/dist/{modules → types/modules}/search/SearchModule.d.ts +23 -18
  53. package/dist/{modules → types/modules}/search/searchWithDomSeek.d.ts +1 -1
  54. package/dist/{navigator → types/navigator}/IFrameNavigator.d.ts +116 -97
  55. package/dist/{navigator → types/navigator}/Navigator.d.ts +0 -0
  56. package/dist/types/reader.d.ts +202 -0
  57. package/dist/types/store/Annotator.d.ts +29 -0
  58. package/dist/types/store/LocalAnnotator.d.ts +36 -0
  59. package/dist/{store → types/store}/LocalStorageStore.d.ts +3 -3
  60. package/dist/{store → types/store}/MemoryStore.d.ts +3 -3
  61. package/dist/types/store/Store.d.ts +6 -0
  62. package/dist/{utils → types/utils}/BrowserUtilities.d.ts +0 -0
  63. package/dist/types/utils/EventHandler.d.ts +23 -0
  64. package/dist/types/utils/HTMLTemplates.d.ts +2 -0
  65. package/dist/{utils → types/utils}/HTMLUtilities.d.ts +3 -3
  66. package/dist/{utils → types/utils}/IconLib.d.ts +1 -0
  67. package/dist/{utils → types/utils}/JsonUtil.d.ts +0 -0
  68. package/dist/types/utils/KeyboardEventHandler.d.ts +10 -0
  69. package/dist/{utils → types/utils}/TouchEventHandler.d.ts +4 -1
  70. package/dist/types/utils/index.d.ts +1 -0
  71. package/dist/{views → types/views}/BookView.d.ts +10 -7
  72. package/dist/{views → types/views}/FixedBookView.d.ts +8 -4
  73. package/dist/{views → types/views}/ReflowableBookView.d.ts +7 -5
  74. package/package.json +59 -27
  75. package/NOTICE +0 -20
  76. package/dist/index.d.ts +0 -61
  77. package/dist/injectables/click/click.d.ts +0 -1
  78. package/dist/injectables/footnotes/footnotes.d.ts +0 -1
  79. package/dist/injectables/footnotes/footnotes.js +0 -2
  80. package/dist/injectables/footnotes/footnotes.js.map +0 -1
  81. package/dist/injectables/glossary/glossary.d.ts +0 -5
  82. package/dist/injectables/glossary/glossary.js +0 -3
  83. package/dist/injectables/glossary/glossary.js.LICENSE.txt +0 -6
  84. package/dist/injectables/glossary/glossary.js.map +0 -1
  85. package/dist/material.css +0 -4637
  86. package/dist/material.css.map +0 -30
  87. package/dist/model/MediaOverlayNode.d.ts +0 -3
  88. package/dist/model/Publication.d.ts +0 -26
  89. package/dist/modules/AnnotationModule.d.ts +0 -59
  90. package/dist/modules/BookmarkModule.d.ts +0 -46
  91. package/dist/modules/ReaderModule.d.ts +0 -3
  92. package/dist/modules/TTS/TTSModule.d.ts +0 -58
  93. package/dist/modules/highlight/common/highlight.d.ts +0 -19
  94. package/dist/modules/highlight/common/styles.d.ts +0 -35
  95. package/dist/modules/syncnarration/SyncSettings.d.ts +0 -67
  96. package/dist/modules/syncnarration/SynchronizedNarrationModule.d.ts +0 -81
  97. package/dist/modules/syncnarration/renderer/media-overlays.d.ts +0 -0
  98. package/dist/reader.js.LICENSE.txt +0 -66
  99. package/dist/store/Annotator.d.ts +0 -25
  100. package/dist/store/LocalAnnotator.d.ts +0 -31
  101. package/dist/store/Store.d.ts +0 -6
  102. package/dist/utils/EventHandler.d.ts +0 -9
  103. package/dist/utils/HTMLTemplates.d.ts +0 -4
  104. package/dist/utils/KeyboardEventHandler.d.ts +0 -7
  105. package/dist/utils/decodeURI.d.ts +0 -1
package/NOTICE DELETED
@@ -1,20 +0,0 @@
1
- R2D2BC
2
- Copyright 2018-2020 DITA (AM Consulting LLC)
3
-
4
- This project bundles the following dependencies under the MIT license.
5
- See bundled license files for details.
6
-
7
- - Materialize | Copyright (c) 2014-2018 Materialize
8
- -> in "styles/sass/materialize"
9
-
10
- This project bundles the following dependencies under the SIL Open Font License.
11
- See bundled license files for details.
12
-
13
- - OpenDyxslexic Font | Copyright (c) 12/2012 - 2019
14
- -> in "viewer/fonts/opendyslexic"
15
-
16
- This project bundles the following dependencies under the BSD license.
17
- See bundled license files for details.
18
-
19
- - Readium-CSS | Copyright (c) 2017, Readium
20
- -> in "viewer/readium-css"
package/dist/index.d.ts DELETED
@@ -1,61 +0,0 @@
1
- import { ReaderConfig } from "./navigator/IFrameNavigator";
2
- import { Locator } from "./model/Locator";
3
- export declare const IS_DEV: boolean;
4
- export declare function unload(): Promise<void>;
5
- export declare function hasMediaOverlays(): boolean;
6
- export declare function startReadAloud(): void;
7
- export declare function stopReadAloud(): void;
8
- export declare function pauseReadAloud(): void;
9
- export declare function resumeReadAloud(): void;
10
- export declare function saveBookmark(): Promise<any>;
11
- export declare function deleteBookmark(bookmark: any): Promise<any>;
12
- export declare function deleteAnnotation(highlight: any): Promise<any>;
13
- export declare function addAnnotation(highlight: any): Promise<any>;
14
- export declare function tableOfContents(): Promise<any>;
15
- export declare function readingOrder(): Promise<any>;
16
- export declare function bookmarks(): Promise<any>;
17
- export declare function annotations(): Promise<any>;
18
- export declare function search(term: any, current: any): Promise<any>;
19
- export declare function goToSearchIndex(href: any, index: any, current: any): Promise<void>;
20
- export declare function goToSearchID(href: any, index: any, current: any): Promise<void>;
21
- export declare function clearSearch(): Promise<void>;
22
- export declare function currentResource(): number;
23
- export declare function mostRecentNavigatedTocItem(): string;
24
- export declare function totalResources(): number;
25
- export declare function publicationLanguage(): string[];
26
- export declare function resetUserSettings(): Promise<void>;
27
- export declare function applyUserSettings(userSettings: any): Promise<void>;
28
- export declare function currentSettings(): Promise<{
29
- appearance: string;
30
- fontFamily: string;
31
- textAlignment: string;
32
- columnCount: string;
33
- verticalScroll: boolean;
34
- fontSize: number;
35
- wordSpacing: number;
36
- letterSpacing: number;
37
- pageMargins: number;
38
- lineHeight: number;
39
- }>;
40
- export declare function increase(incremental: any): Promise<void>;
41
- export declare function decrease(incremental: any): Promise<void>;
42
- export declare function resetTTSSettings(): Promise<void>;
43
- export declare function applyTTSSettings(ttsSettings: any): Promise<void>;
44
- export declare function applyTTSSetting(key: any, value: any): Promise<void>;
45
- export declare function applyPreferredVoice(value: any): Promise<void>;
46
- export declare function resetSyncSettings(): Promise<void>;
47
- export declare function applyMediaOverlaySettings(setting: any): Promise<void>;
48
- export declare function goTo(locator: any): Promise<void>;
49
- export declare function nextResource(): Promise<void>;
50
- export declare function previousResource(): Promise<void>;
51
- export declare function nextPage(): Promise<void>;
52
- export declare function previousPage(): Promise<void>;
53
- export declare function atStart(): Promise<boolean>;
54
- export declare function atEnd(): Promise<boolean>;
55
- export declare function scroll(value: any): Promise<void>;
56
- export declare function currentLocator(): Promise<Locator>;
57
- export declare function positions(): Promise<any>;
58
- export declare function goToPosition(value: any): Promise<void>;
59
- export declare function applyAttributes(value: any): Promise<void>;
60
- export declare function snapToElement(value: any): Promise<void>;
61
- export declare function load(config: ReaderConfig): Promise<any>;
@@ -1 +0,0 @@
1
- export declare const IS_DEV: boolean;
@@ -1 +0,0 @@
1
- export declare const IS_DEV: boolean;
@@ -1,2 +0,0 @@
1
- var Footnotes;(()=>{"use strict";var e={d:(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{IS_DEV:()=>o});var n=function(e,t,n,o){return new(n||(n=Promise))((function(r,a){function i(e){try{c(o.next(e))}catch(e){a(e)}}function l(e){try{c(o.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(i,l)}c((o=o.apply(e,t||[])).next())}))};const o=!1;document.addEventListener("click",(e=>n(void 0,void 0,void 0,(function*(){o&&console.log("Footnote Click Handler");var t=e.target;if("a"===t.tagName.toLowerCase()){var r=document.createElement("div");r.innerHTML=t.outerHTML;var a=r.querySelector("a");if(a&&"noteref"===a.getAttribute("epub:type")){var i=a.getAttribute("href");if(i.indexOf("#")>0){var l=i.substring(i.indexOf("#")+1),c=function(e){var t=document.location.href;return new URL(e,t).href}(i);c=c.substring(0,c.indexOf("#")),e.preventDefault(),e.stopPropagation(),yield fetch(c).then((e=>e.text())).then((e=>n(void 0,void 0,void 0,(function*(){var n=(new DOMParser).parseFromString(e,"text/html").querySelector("aside#"+l);if(n){var o=document.createElement("div");o.className="modal",o.innerHTML='<div class="modal-content"><span class="close">x</span>'+n.innerHTML+"</div>",o.style.display="block",document.body.appendChild(o);var r=o.getElementsByClassName("modal-content")[0],i=t.offsetTop;t.offsetTop>100&&(i=t.offsetTop-20),r.style.top=i+"px",o.getElementsByClassName("close")[0].onclick=function(){o.style.display="none",o.parentElement.removeChild(o)},window.onclick=function(e){e.target===o&&(o.style.display="none",o.parentElement.removeChild(o))}}else a.click()}))))}}}}))),!0),Footnotes=t})();
2
- //# sourceMappingURL=footnotes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://Footnotes/webpack/bootstrap","webpack://Footnotes/webpack/runtime/define property getters","webpack://Footnotes/webpack/runtime/hasOwnProperty shorthand","webpack://Footnotes/webpack/runtime/make namespace object","webpack://Footnotes/./injectables/footnotes/footnotes.ts"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","IS_DEV","document","addEventListener","event","console","log","htmlElement","target","tagName","toLowerCase","element","createElement","innerHTML","outerHTML","link","querySelector","getAttribute","href","indexOf","id","substring","absolute","currentUrl","location","URL","getAbsoluteHref","preventDefault","stopPropagation","fetch","then","r","text","data","aside","DOMParser","parseFromString","modal","className","style","display","body","appendChild","modalContent","getElementsByClassName","offset","offsetTop","top","onclick","parentElement","removeChild","window","click"],"mappings":"iCACA,IAAIA,EAAsB,CCA1B,EAAwB,CAACC,EAASC,KACjC,IAAI,IAAIC,KAAOD,EACXF,EAAoBI,EAAEF,EAAYC,KAASH,EAAoBI,EAAEH,EAASE,IAC5EE,OAAOC,eAAeL,EAASE,EAAK,CAAEI,YAAY,EAAMC,IAAKN,EAAWC,MCJ3E,EAAwB,CAACM,EAAKC,IAAUL,OAAOM,UAAUC,eAAeC,KAAKJ,EAAKC,GCClF,EAAyBT,IACH,oBAAXa,QAA0BA,OAAOC,aAC1CV,OAAOC,eAAeL,EAASa,OAAOC,YAAa,CAAEC,MAAO,WAE7DX,OAAOC,eAAeL,EAAS,aAAc,CAAEe,OAAO,M,4UCchD,MAAMC,GAC+B,EAE5CC,SAASC,iBACP,SACOC,GAAU,OAAD,6BACVH,GAAQI,QAAQC,IAAI,0BACxB,IAAIC,EAAcH,EAAMI,OACxB,GAA0C,MAAtCD,EAAYE,QAAQC,cAAuB,CAC7C,IAAIC,EAAUT,SAASU,cAAc,OACrCD,EAAQE,UAAYN,EAAYO,UAEhC,IAAIC,EAAOJ,EAAQK,cAAc,KACjC,GAAID,GACiD,YAAnCA,EAAKE,aAAa,aACnB,CACb,IAAIC,EAAOH,EAAKE,aAAa,QAC7B,GAAIC,EAAKC,QAAQ,KAAO,EAAG,CACzB,IAAIC,EAAKF,EAAKG,UAAUH,EAAKC,QAAQ,KAAO,GACxCG,EAsDZ,SAAyBJ,GACvB,IAAIK,EAAarB,SAASsB,SAASN,KACnC,OAAO,IAAIO,IAAIP,EAAMK,GAAYL,KAxDZQ,CAAgBR,GAC/BI,EAAWA,EAASD,UAAU,EAAGC,EAASH,QAAQ,MAElDf,EAAMuB,iBACNvB,EAAMwB,wBAEAC,MAAMP,GACTQ,MAAMC,GAAMA,EAAEC,SACdF,MAAYG,GAAS,OAAD,6BACnB,IAEIC,GAFS,IAAIC,WACAC,gBAAgBH,EAAM,aACvBjB,cAAc,SAAWI,GACzC,GAAIc,EAAO,CACT,IAAIG,EAAQnC,SAASU,cAAc,OACnCyB,EAAMC,UAAY,QAClBD,EAAMxB,UACJ,0DACAqB,EAAMrB,UACN,SACFwB,EAAME,MAAMC,QAAU,QAEtBtC,SAASuC,KAAKC,YAAYL,GAE1B,IAAIM,EAAeN,EAAMO,uBACvB,iBACA,GACEC,EAAStC,EAAYuC,UACrBvC,EAAYuC,UAAY,MAC1BD,EAAStC,EAAYuC,UAAY,IAEnCH,EAAaJ,MAAMQ,IAAMF,EAAS,KAEvBR,EAAMO,uBACf,SACA,GACGI,QAAU,WACbX,EAAME,MAAMC,QAAU,OACtBH,EAAMY,cAAcC,YAAYb,IAGlCc,OAAOH,QAAU,SAAU5C,GACrBA,EAAMI,SAAW6B,IACnBA,EAAME,MAAMC,QAAU,OACtBH,EAAMY,cAAcC,YAAYb,UAIpCtB,EAAKqC,qBAYrB,G","file":"footnotes.js","sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*\n * Copyright 2018-2020 DITA (AM Consulting LLC)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * Developed on behalf of: DITA\n * Licensed to: Bokbasen AS and CAST under one or more contributor license agreements.\n */\n\nexport const IS_DEV =\n process.env.NODE_ENV === \"development\" || process.env.NODE_ENV === \"dev\";\n\ndocument.addEventListener(\n \"click\",\n async (event) => {\n if (IS_DEV) console.log(\"Footnote Click Handler\");\n var htmlElement = event.target as HTMLElement;\n if (htmlElement.tagName.toLowerCase() === \"a\") {\n var element = document.createElement(\"div\");\n element.innerHTML = htmlElement.outerHTML;\n\n var link = element.querySelector(\"a\");\n if (link) {\n var attribute = link.getAttribute(\"epub:type\") === \"noteref\";\n if (attribute) {\n var href = link.getAttribute(\"href\");\n if (href.indexOf(\"#\") > 0) {\n var id = href.substring(href.indexOf(\"#\") + 1);\n var absolute = getAbsoluteHref(href);\n absolute = absolute.substring(0, absolute.indexOf(\"#\"));\n\n event.preventDefault();\n event.stopPropagation();\n\n await fetch(absolute)\n .then((r) => r.text())\n .then(async (data) => {\n var parser = new DOMParser();\n var doc = parser.parseFromString(data, \"text/html\");\n var aside = doc.querySelector(\"aside#\" + id);\n if (aside) {\n var modal = document.createElement(\"div\");\n modal.className = \"modal\";\n modal.innerHTML =\n '<div class=\"modal-content\"><span class=\"close\">x</span>' +\n aside.innerHTML +\n \"</div>\";\n modal.style.display = \"block\";\n\n document.body.appendChild(modal);\n\n var modalContent = modal.getElementsByClassName(\n \"modal-content\"\n )[0] as HTMLDivElement;\n var offset = htmlElement.offsetTop;\n if (htmlElement.offsetTop > 100) {\n offset = htmlElement.offsetTop - 20;\n }\n modalContent.style.top = offset + \"px\";\n\n var span = modal.getElementsByClassName(\n \"close\"\n )[0] as HTMLSpanElement;\n span.onclick = function () {\n modal.style.display = \"none\";\n modal.parentElement.removeChild(modal);\n };\n\n window.onclick = function (event) {\n if (event.target === modal) {\n modal.style.display = \"none\";\n modal.parentElement.removeChild(modal);\n }\n };\n } else {\n link.click();\n }\n });\n }\n }\n }\n }\n function getAbsoluteHref(href: string): string | null {\n var currentUrl = document.location.href;\n return new URL(href, currentUrl).href;\n }\n },\n true\n);\n"],"sourceRoot":""}
@@ -1,5 +0,0 @@
1
- export declare const IS_DEV: boolean;
2
- export interface GlossaryItem {
3
- word: string;
4
- definition: string;
5
- }
@@ -1,3 +0,0 @@
1
- /*! For license information please see glossary.js.LICENSE.txt */
2
- var Glossary;(()=>{var e={813:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(n){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=o,this.iframesTimeout=i}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var o=e.contentWindow;if(r=o.document,!o||!r)throw new Error("iframe inaccessible")}catch(e){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,o=!1,i=null,a=function a(){if(!o){o=!0,clearTimeout(i);try{r.isIframeBlank(e)||(e.removeEventListener("load",a),r.getIframeContents(e,t,n))}catch(e){n()}}};e.addEventListener("load",a),i=setTimeout(a,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(e){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var o=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=t.querySelectorAll("iframe"),s=a.length,c=0;a=Array.prototype.slice.call(a);var u=function(){--s<=0&&i(c)};s||u(),a.forEach((function(t){e.matches(t,o.exclude)?u():o.onIframeReady(t,(function(e){n(t)&&(c++,r(e)),u()}),u)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var o=!1,i=!1;return r.forEach((function(e,t){e.val===n&&(o=t,i=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==o||i?!1===o||i||(r[o].handled=!0):r.push({val:n,handled:!0}),!0):(!1===o&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var o=this;e.forEach((function(e){e.handled||o.getIframeContents(e.val,(function(e){o.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,o){for(var i=this,a=this.createIterator(t,e,r),s=[],c=[],u=void 0,l=void 0;h=void 0,h=i.getIteratorNode(a),l=h.prevNode,u=h.node;)this.iframes&&this.forEachIframe(t,(function(e){return i.checkIframeFilter(u,l,e,s)}),(function(t){i.createInstanceOnIframe(t).forEachNode(e,(function(e){return c.push(e)}),r)})),c.push(u);var h;c.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(s,e,n,r),o()}},{key:"forEachNode",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=this.getContexts(),a=i.length;a||o(),i.forEach((function(i){var s=function(){r.iterateThroughNodes(e,i,t,n,(function(){--a<=0&&o()}))};r.iframes?r.waitForIframes(i,s):s()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var o=!1;return n.every((function(t){return!r.call(e,t)||(o=!0,!1)})),o}return!1}}]),e}(),i=function(){function i(e){t(this,i),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(i,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var o in t)if(t.hasOwnProperty(o)){var i=t[o],a="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o),s="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(i):this.escapeStr(i);""!==a&&""!==s&&(e=e.replace(new RegExp("("+this.escapeStr(a)+"|"+this.escapeStr(s)+")","gm"+n),r+"("+this.processSynomyms(a)+"|"+this.processSynomyms(s)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":""}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":""}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["aàáảãạăằắẳẵặâầấẩẫậäåāą","AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćč","CÇĆČ","dđď","DĐĎ","eèéẻẽẹêềếểễệëěēę","EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïī","IÌÍỈĨỊÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøō","OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rř","RŘ","sšśșş","SŠŚȘŞ","tťțţ","TŤȚŢ","uùúủũụưừứửữựûüůū","UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿ","YÝỲỶỸỴŸ","zžżź","ZŽŻŹ"]:["aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ","cçćčCÇĆČ","dđďDĐĎ","eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ","iìíỉĩịîïīIÌÍỈĨỊÎÏĪ","lłLŁ","nñňńNÑŇŃ","oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ","rřRŘ","sšśșşSŠŚȘŞ","tťțţTŤȚŢ","uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ","yýỳỷỹỵÿYÝỲỶỸỴŸ","zžżźZŽŻŹ"],r=[];return e.split("").forEach((function(o){n.every((function(n){if(-1!==n.indexOf(o)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n=this.opt.accuracy,r="string"==typeof n?n:n.value,o="string"==typeof n?[]:n.limiters,i="";switch(o.forEach((function(e){i+="|"+t.escapeStr(e)})),r){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~¡¿")))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var o=t.callNoMatchOnInvalidRanges(e,r),i=o.start,a=o.end;o.valid&&(e.start=i,e.length=a-i,n.push(e),r=a)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,o=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?o=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:o}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,o=!0,i=n.length,a=t-i,s=parseInt(e.start,10)-a;return(r=(s=s>i?i:s)+parseInt(e.length,10))>i&&(r=i,this.log("End range automatically set to the max value of "+i)),s<0||r-s<0||s>i||r>i?(o=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(s,r).replace(/\s+/g,"")&&(o=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:o}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return o.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",o=e.splitText(t),i=o.splitText(n-t),a=document.createElement(r);return a.setAttribute("data-markjs","true"),this.opt.className&&a.setAttribute("class",this.opt.className),a.textContent=o.textContent,o.parentNode.replaceChild(a,o),i}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,o){var i=this;e.nodes.every((function(a,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(a.node))return!1;var u=t-a.start,l=(n>a.end?a.end:n)-a.start,h=e.value.substr(0,a.start),f=e.value.substr(l+a.start);if(a.node=i.wrapRangeInTextNode(a.node,u,l),e.value=h+f,e.nodes.forEach((function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=l),e.nodes[n].end-=l)})),n-=l,o(a.node.previousSibling,a.start),!(n>a.end))return!1;t=a.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,o){var i=this,a=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var o=void 0;null!==(o=e.exec(t.textContent))&&""!==o[a];)if(n(o[a],t)){var s=o.index;if(0!==a)for(var c=1;c<a;c++)s+=o[c].length;t=i.wrapRangeInTextNode(t,s,s+o[a].length),r(t.previousSibling),e.lastIndex=0}})),o()}))}},{key:"wrapMatchesAcrossElements",value:function(e,t,n,r,o){var i=this,a=0===t?0:t+1;this.getTextNodes((function(t){for(var s=void 0;null!==(s=e.exec(t.value))&&""!==s[a];){var c=s.index;if(0!==a)for(var u=1;u<a;u++)c+=s[u].length;var l=c+s[a].length;i.wrapRangeInMappedTextNode(t,c,l,(function(e){return n(s[a],e)}),(function(t,n){e.lastIndex=n,r(t)}))}o()}))}},{key:"wrapRangeFromIndex",value:function(e,t,n,r){var o=this;this.getTextNodes((function(i){var a=i.value.length;e.forEach((function(e,r){var s=o.checkWhitespaceRanges(e,a,i.value),c=s.start,u=s.end;s.valid&&o.wrapRangeInMappedTextNode(i,c,u,(function(n){return t(n,e,i.value.substring(c,u),r)}),(function(t){n(t,e)}))})),r()}))}},{key:"unwrapMatches",value:function(e){for(var t=e.parentNode,n=document.createDocumentFragment();e.firstChild;)n.appendChild(e.removeChild(e.firstChild));t.replaceChild(n,e),this.ie?this.normalizeTextNode(t):t.normalize()}},{key:"normalizeTextNode",value:function(e){if(e){if(3===e.nodeType)for(;e.nextSibling&&3===e.nextSibling.nodeType;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}},{key:"markRegExp",value:function(e,t){var n=this;this.opt=t,this.log('Searching with expression "'+e+'"');var r=0,o="wrapMatches";this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),this[o](e,this.opt.ignoreGroups,(function(e,t){return n.opt.filter(t,e,r)}),(function(e){r++,n.opt.each(e)}),(function(){0===r&&n.opt.noMatch(e),n.opt.done(r)}))}},{key:"mark",value:function(e,t){var n=this;this.opt=t;var r=0,o="wrapMatches",i=this.getSeparatedKeywords("string"==typeof e?[e]:e),a=i.keywords,s=i.length,c=this.opt.caseSensitive?"":"i";this.opt.acrossElements&&(o="wrapMatchesAcrossElements"),0===s?this.opt.done(r):function e(t){var i=new RegExp(n.createRegExp(t),"gm"+c),u=0;n.log('Searching with expression "'+i+'"'),n[o](i,1,(function(e,o){return n.opt.filter(o,t,r,u)}),(function(e){u++,r++,n.opt.each(e)}),(function(){0===u&&n.opt.noMatch(t),a[s-1]===t?n.opt.done(r):e(a[a.indexOf(t)+1])}))}(a[0])}},{key:"markRanges",value:function(e,t){var n=this;this.opt=t;var r=0,o=this.checkRanges(e);o&&o.length?(this.log("Starting to mark with the following ranges: "+JSON.stringify(o)),this.wrapRangeFromIndex(o,(function(e,t,r,o){return n.opt.filter(e,t,r,o)}),(function(e,t){r++,n.opt.each(e,t)}),(function(){n.opt.done(r)}))):this.opt.done(r)}},{key:"unmark",value:function(e){var t=this;this.opt=e;var n=this.opt.element?this.opt.element:"*";n+="[data-markjs]",this.opt.className&&(n+="."+this.opt.className),this.log('Removal selector "'+n+'"'),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,(function(e){t.unwrapMatches(e)}),(function(e){var r=o.matches(e,n),i=t.matchesExclude(e);return!r||i?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),this.opt.done)}},{key:"opt",set:function(e){this._opt=r({},{element:"",className:"",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:"partially",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:"disabled",each:function(){},noMatch:function(){},filter:function(){return!0},done:function(){},debug:!1,log:window.console},e)},get:function(){return this._opt}},{key:"iterator",get:function(){return new o(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}}]),i}();return function(e){var t=this,n=new i(e);return this.mark=function(e,r){return n.mark(e,r),t},this.markRegExp=function(e,r){return n.markRegExp(e,r),t},this.markRanges=function(e,r){return n.markRanges(e,r),t},this.unmark=function(e){return n.unmark(e),t},this}}()}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r),n.d(r,{IS_DEV:()=>o});var e=n(813),t=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const o=!1;!function(n){t(this,void 0,void 0,(function*(){o&&console.log("glossary mark words "+n),n.forEach((function(n){return t(this,void 0,void 0,(function*(){o&&console.log(n);var r=new e(document.body);yield r.mark(n.word,{accuracy:{value:"exactly",limiters:[".",",",";",":",")"]},separateWordSearch:!1,acrossElements:!0,exclude:["h1","h2","h3","h4","h5","h6","figure"],element:"a",className:"gloss",each:function(e){e.addEventListener("click",(r=>t(this,void 0,void 0,(function*(){var t=e;o&&console.log("Mark Node Click Handler"),r.preventDefault(),r.stopPropagation();var i=document.createElement("div");i.className="modal",i.innerHTML='<div class="modal-content"><span class="close">x</span>'+n.definition+"</div>",i.style.display="block",document.body.appendChild(i);var a=i.getElementsByClassName("modal-content")[0],s=t.offsetTop;t.offsetTop>100&&(s=t.offsetTop-20),a.style.top=s+"px",i.getElementsByClassName("close")[0].onclick=function(){i.style.display="none",i.parentElement.removeChild(i)},window.onclick=function(e){e.target===i&&(i.style.display="none",i.parentElement.removeChild(i))}}))),!0)}})}))}))}))}([{word:"frankenstein",definition:"who is frankenstein"},{word:"Mary Shelley",definition:"who is Mary Shelley?"}])})(),Glossary=r})();
3
- //# sourceMappingURL=glossary.js.map
@@ -1,6 +0,0 @@
1
- /*!***************************************************
2
- * mark.js v8.11.1
3
- * https://markjs.io/
4
- * Copyright (c) 2014–2018, Julian Kühnel
5
- * Released under the MIT license https://git.io/vwTVl
6
- *****************************************************/
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack://Glossary/./node_modules/mark.js/dist/mark.js","webpack://Glossary/webpack/bootstrap","webpack://Glossary/webpack/runtime/compat get default export","webpack://Glossary/webpack/runtime/define property getters","webpack://Glossary/webpack/runtime/hasOwnProperty shorthand","webpack://Glossary/webpack/runtime/make namespace object","webpack://Glossary/./injectables/glossary/glossary.ts"],"names":["module","exports","_typeof","Symbol","iterator","obj","constructor","prototype","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","_extends","assign","arguments","source","hasOwnProperty","call","DOMIterator","ctx","iframes","undefined","exclude","iframesTimeout","this","value","filteredCtx","NodeList","isPrototypeOf","Array","slice","isArray","document","querySelectorAll","forEach","isDescendant","filter","contexts","contains","indexOf","push","ifr","successFn","errorFn","doc","ifrWin","contentWindow","Error","e","bl","src","getAttribute","trim","location","href","_this","called","tout","listener","clearTimeout","isIframeBlank","removeEventListener","getIframeContents","addEventListener","setTimeout","readyState","observeIframeLoad","done","_this2","eachCalled","forEachIframe","waitForIframes","querySelector","handled","each","_this3","end","open","checkEnd","matches","onIframeReady","con","whatToShow","createNodeIterator","contents","node","prevNode","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_FOLLOWING","itr","previousNode","nextNode","currIfr","ifrDict","val","compareNodeIframe","eCb","fCb","_this4","createInstanceOnIframe","forEachNode","eachCb","filterCb","doneCb","_this5","createIterator","elements","_getIteratorNode","getIteratorNode","checkIframeFilter","ifrNode","handleOpenIframes","_this6","getContexts","ready","iterateThroughNodes","element","selector","selectors","fn","matchesSelector","msMatchesSelector","mozMatchesSelector","oMatchesSelector","webkitMatchesSelector","match","every","sel","Mark$1","Mark","ie","ua","window","navigator","userAgent","msg","level","log","opt","debug","str","replace","wildcards","setupWildcardsRegExp","escapeStr","keys","synonyms","createSynonymsRegExp","ignoreJoiners","ignorePunctuation","setupIgnoreJoinersRegExp","diacritics","createDiacriticsRegExp","createMergedBlanksRegExp","createJoinersRegExp","createWildcardsRegExp","createAccuracyRegExp","syn","sens","caseSensitive","joinerPlaceholder","index","k1","k2","RegExp","processSynomyms","charAt","spaces","indx","original","nextChar","test","joiner","join","split","dct","ch","acc","accuracy","ls","limiters","lsJoin","limiter","sv","stack","kw","separateWordSearch","kwSplitted","sort","a","b","Number","parseFloat","array","toString","noMatch","last","start","item","_callNoMatchOnInvalid","callNoMatchOnInvalidRanges","valid","range","parseInt","isNumeric","JSON","stringify","originalLength","string","max","offset","substring","cb","nodes","NodeFilter","SHOW_TEXT","textContent","matchesExclude","parentNode","FILTER_REJECT","FILTER_ACCEPT","el","concat","hEl","startNode","splitText","ret","repl","createElement","setAttribute","className","replaceChild","dict","n","sibl","s","startStr","substr","endStr","wrapRangeInTextNode","k","j","previousSibling","regex","ignoreGroups","endCb","matchIdx","getTextNodes","exec","pos","lastIndex","_this7","wrapRangeInMappedTextNode","ranges","_this8","counter","_checkWhitespaceRange","checkWhitespaceRanges","parent","docFrag","createDocumentFragment","firstChild","appendChild","removeChild","normalizeTextNode","normalize","nodeType","nextSibling","nodeValue","regexp","_this9","totalMatches","acrossElements","_this10","_getSeparatedKeywords","getSeparatedKeywords","kwArr","keywords","kwArrLen","handler","createRegExp","term","rawRanges","_this11","checkRanges","wrapRangeFromIndex","_this12","SHOW_ELEMENT","unwrapMatches","matchesSel","set","_opt","console","get","mark","markRegExp","markRanges","unmark","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","__esModule","d","definition","o","prop","r","toStringTag","IS_DEV","glossary","glossaryitem","body","word","event","htmlElement","preventDefault","stopPropagation","modal","innerHTML","style","display","modalContent","getElementsByClassName","offsetTop","top","onclick","parentElement","markCuedWords"],"mappings":"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","file":"glossary.js","sourcesContent":["/*!***************************************************\n* mark.js v8.11.1\n* https://markjs.io/\n* Copyright (c) 2014–2018, Julian Kühnel\n* Released under the MIT license https://git.io/vwTVl\n*****************************************************/\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.Mark = factory());\n}(this, (function () { 'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\n\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar DOMIterator = function () {\n function DOMIterator(ctx) {\n var iframes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var exclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var iframesTimeout = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5000;\n classCallCheck(this, DOMIterator);\n\n this.ctx = ctx;\n this.iframes = iframes;\n this.exclude = exclude;\n this.iframesTimeout = iframesTimeout;\n }\n\n createClass(DOMIterator, [{\n key: 'getContexts',\n value: function getContexts() {\n var ctx = void 0,\n filteredCtx = [];\n if (typeof this.ctx === 'undefined' || !this.ctx) {\n ctx = [];\n } else if (NodeList.prototype.isPrototypeOf(this.ctx)) {\n ctx = Array.prototype.slice.call(this.ctx);\n } else if (Array.isArray(this.ctx)) {\n ctx = this.ctx;\n } else if (typeof this.ctx === 'string') {\n ctx = Array.prototype.slice.call(document.querySelectorAll(this.ctx));\n } else {\n ctx = [this.ctx];\n }\n ctx.forEach(function (ctx) {\n var isDescendant = filteredCtx.filter(function (contexts) {\n return contexts.contains(ctx);\n }).length > 0;\n if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {\n filteredCtx.push(ctx);\n }\n });\n return filteredCtx;\n }\n }, {\n key: 'getIframeContents',\n value: function getIframeContents(ifr, successFn) {\n var errorFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n\n var doc = void 0;\n try {\n var ifrWin = ifr.contentWindow;\n doc = ifrWin.document;\n if (!ifrWin || !doc) {\n throw new Error('iframe inaccessible');\n }\n } catch (e) {\n errorFn();\n }\n if (doc) {\n successFn(doc);\n }\n }\n }, {\n key: 'isIframeBlank',\n value: function isIframeBlank(ifr) {\n var bl = 'about:blank',\n src = ifr.getAttribute('src').trim(),\n href = ifr.contentWindow.location.href;\n return href === bl && src !== bl && src;\n }\n }, {\n key: 'observeIframeLoad',\n value: function observeIframeLoad(ifr, successFn, errorFn) {\n var _this = this;\n\n var called = false,\n tout = null;\n var listener = function listener() {\n if (called) {\n return;\n }\n called = true;\n clearTimeout(tout);\n try {\n if (!_this.isIframeBlank(ifr)) {\n ifr.removeEventListener('load', listener);\n _this.getIframeContents(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n };\n ifr.addEventListener('load', listener);\n tout = setTimeout(listener, this.iframesTimeout);\n }\n }, {\n key: 'onIframeReady',\n value: function onIframeReady(ifr, successFn, errorFn) {\n try {\n if (ifr.contentWindow.document.readyState === 'complete') {\n if (this.isIframeBlank(ifr)) {\n this.observeIframeLoad(ifr, successFn, errorFn);\n } else {\n this.getIframeContents(ifr, successFn, errorFn);\n }\n } else {\n this.observeIframeLoad(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n }\n }, {\n key: 'waitForIframes',\n value: function waitForIframes(ctx, done) {\n var _this2 = this;\n\n var eachCalled = 0;\n this.forEachIframe(ctx, function () {\n return true;\n }, function (ifr) {\n eachCalled++;\n _this2.waitForIframes(ifr.querySelector('html'), function () {\n if (! --eachCalled) {\n done();\n }\n });\n }, function (handled) {\n if (!handled) {\n done();\n }\n });\n }\n }, {\n key: 'forEachIframe',\n value: function forEachIframe(ctx, filter, each) {\n var _this3 = this;\n\n var end = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n var ifr = ctx.querySelectorAll('iframe'),\n open = ifr.length,\n handled = 0;\n ifr = Array.prototype.slice.call(ifr);\n var checkEnd = function checkEnd() {\n if (--open <= 0) {\n end(handled);\n }\n };\n if (!open) {\n checkEnd();\n }\n ifr.forEach(function (ifr) {\n if (DOMIterator.matches(ifr, _this3.exclude)) {\n checkEnd();\n } else {\n _this3.onIframeReady(ifr, function (con) {\n if (filter(ifr)) {\n handled++;\n each(con);\n }\n checkEnd();\n }, checkEnd);\n }\n });\n }\n }, {\n key: 'createIterator',\n value: function createIterator(ctx, whatToShow, filter) {\n return document.createNodeIterator(ctx, whatToShow, filter, false);\n }\n }, {\n key: 'createInstanceOnIframe',\n value: function createInstanceOnIframe(contents) {\n return new DOMIterator(contents.querySelector('html'), this.iframes);\n }\n }, {\n key: 'compareNodeIframe',\n value: function compareNodeIframe(node, prevNode, ifr) {\n var compCurr = node.compareDocumentPosition(ifr),\n prev = Node.DOCUMENT_POSITION_PRECEDING;\n if (compCurr & prev) {\n if (prevNode !== null) {\n var compPrev = prevNode.compareDocumentPosition(ifr),\n after = Node.DOCUMENT_POSITION_FOLLOWING;\n if (compPrev & after) {\n return true;\n }\n } else {\n return true;\n }\n }\n return false;\n }\n }, {\n key: 'getIteratorNode',\n value: function getIteratorNode(itr) {\n var prevNode = itr.previousNode();\n var node = void 0;\n if (prevNode === null) {\n node = itr.nextNode();\n } else {\n node = itr.nextNode() && itr.nextNode();\n }\n return {\n prevNode: prevNode,\n node: node\n };\n }\n }, {\n key: 'checkIframeFilter',\n value: function checkIframeFilter(node, prevNode, currIfr, ifr) {\n var key = false,\n handled = false;\n ifr.forEach(function (ifrDict, i) {\n if (ifrDict.val === currIfr) {\n key = i;\n handled = ifrDict.handled;\n }\n });\n if (this.compareNodeIframe(node, prevNode, currIfr)) {\n if (key === false && !handled) {\n ifr.push({\n val: currIfr,\n handled: true\n });\n } else if (key !== false && !handled) {\n ifr[key].handled = true;\n }\n return true;\n }\n if (key === false) {\n ifr.push({\n val: currIfr,\n handled: false\n });\n }\n return false;\n }\n }, {\n key: 'handleOpenIframes',\n value: function handleOpenIframes(ifr, whatToShow, eCb, fCb) {\n var _this4 = this;\n\n ifr.forEach(function (ifrDict) {\n if (!ifrDict.handled) {\n _this4.getIframeContents(ifrDict.val, function (con) {\n _this4.createInstanceOnIframe(con).forEachNode(whatToShow, eCb, fCb);\n });\n }\n });\n }\n }, {\n key: 'iterateThroughNodes',\n value: function iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) {\n var _this5 = this;\n\n var itr = this.createIterator(ctx, whatToShow, filterCb);\n var ifr = [],\n elements = [],\n node = void 0,\n prevNode = void 0,\n retrieveNodes = function retrieveNodes() {\n var _getIteratorNode = _this5.getIteratorNode(itr);\n\n prevNode = _getIteratorNode.prevNode;\n node = _getIteratorNode.node;\n\n return node;\n };\n while (retrieveNodes()) {\n if (this.iframes) {\n this.forEachIframe(ctx, function (currIfr) {\n return _this5.checkIframeFilter(node, prevNode, currIfr, ifr);\n }, function (con) {\n _this5.createInstanceOnIframe(con).forEachNode(whatToShow, function (ifrNode) {\n return elements.push(ifrNode);\n }, filterCb);\n });\n }\n elements.push(node);\n }\n elements.forEach(function (node) {\n eachCb(node);\n });\n if (this.iframes) {\n this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb);\n }\n doneCb();\n }\n }, {\n key: 'forEachNode',\n value: function forEachNode(whatToShow, each, filter) {\n var _this6 = this;\n\n var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n\n var contexts = this.getContexts();\n var open = contexts.length;\n if (!open) {\n done();\n }\n contexts.forEach(function (ctx) {\n var ready = function ready() {\n _this6.iterateThroughNodes(whatToShow, ctx, each, filter, function () {\n if (--open <= 0) {\n done();\n }\n });\n };\n if (_this6.iframes) {\n _this6.waitForIframes(ctx, ready);\n } else {\n ready();\n }\n });\n }\n }], [{\n key: 'matches',\n value: function matches(element, selector) {\n var selectors = typeof selector === 'string' ? [selector] : selector,\n fn = element.matches || element.matchesSelector || element.msMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector;\n if (fn) {\n var match = false;\n selectors.every(function (sel) {\n if (fn.call(element, sel)) {\n match = true;\n return false;\n }\n return true;\n });\n return match;\n } else {\n return false;\n }\n }\n }]);\n return DOMIterator;\n}();\n\nvar Mark$1 = function () {\n function Mark(ctx) {\n classCallCheck(this, Mark);\n\n this.ctx = ctx;\n this.ie = false;\n var ua = window.navigator.userAgent;\n if (ua.indexOf('MSIE') > -1 || ua.indexOf('Trident') > -1) {\n this.ie = true;\n }\n }\n\n createClass(Mark, [{\n key: 'log',\n value: function log(msg) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'debug';\n\n var log = this.opt.log;\n if (!this.opt.debug) {\n return;\n }\n if ((typeof log === 'undefined' ? 'undefined' : _typeof(log)) === 'object' && typeof log[level] === 'function') {\n log[level]('mark.js: ' + msg);\n }\n }\n }, {\n key: 'escapeStr',\n value: function escapeStr(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n }\n }, {\n key: 'createRegExp',\n value: function createRegExp(str) {\n if (this.opt.wildcards !== 'disabled') {\n str = this.setupWildcardsRegExp(str);\n }\n str = this.escapeStr(str);\n if (Object.keys(this.opt.synonyms).length) {\n str = this.createSynonymsRegExp(str);\n }\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n if (this.opt.diacritics) {\n str = this.createDiacriticsRegExp(str);\n }\n str = this.createMergedBlanksRegExp(str);\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.createJoinersRegExp(str);\n }\n if (this.opt.wildcards !== 'disabled') {\n str = this.createWildcardsRegExp(str);\n }\n str = this.createAccuracyRegExp(str);\n return str;\n }\n }, {\n key: 'createSynonymsRegExp',\n value: function createSynonymsRegExp(str) {\n var syn = this.opt.synonyms,\n sens = this.opt.caseSensitive ? '' : 'i',\n joinerPlaceholder = this.opt.ignoreJoiners || this.opt.ignorePunctuation.length ? '\\0' : '';\n for (var index in syn) {\n if (syn.hasOwnProperty(index)) {\n var value = syn[index],\n k1 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(index) : this.escapeStr(index),\n k2 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(value) : this.escapeStr(value);\n if (k1 !== '' && k2 !== '') {\n str = str.replace(new RegExp('(' + this.escapeStr(k1) + '|' + this.escapeStr(k2) + ')', 'gm' + sens), joinerPlaceholder + ('(' + this.processSynomyms(k1) + '|') + (this.processSynomyms(k2) + ')') + joinerPlaceholder);\n }\n }\n }\n return str;\n }\n }, {\n key: 'processSynomyms',\n value: function processSynomyms(str) {\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n return str;\n }\n }, {\n key: 'setupWildcardsRegExp',\n value: function setupWildcardsRegExp(str) {\n str = str.replace(/(?:\\\\)*\\?/g, function (val) {\n return val.charAt(0) === '\\\\' ? '?' : '\\x01';\n });\n return str.replace(/(?:\\\\)*\\*/g, function (val) {\n return val.charAt(0) === '\\\\' ? '*' : '\\x02';\n });\n }\n }, {\n key: 'createWildcardsRegExp',\n value: function createWildcardsRegExp(str) {\n var spaces = this.opt.wildcards === 'withSpaces';\n return str.replace(/\\u0001/g, spaces ? '[\\\\S\\\\s]?' : '\\\\S?').replace(/\\u0002/g, spaces ? '[\\\\S\\\\s]*?' : '\\\\S*');\n }\n }, {\n key: 'setupIgnoreJoinersRegExp',\n value: function setupIgnoreJoinersRegExp(str) {\n return str.replace(/[^(|)\\\\]/g, function (val, indx, original) {\n var nextChar = original.charAt(indx + 1);\n if (/[(|)\\\\]/.test(nextChar) || nextChar === '') {\n return val;\n } else {\n return val + '\\0';\n }\n });\n }\n }, {\n key: 'createJoinersRegExp',\n value: function createJoinersRegExp(str) {\n var joiner = [];\n var ignorePunctuation = this.opt.ignorePunctuation;\n if (Array.isArray(ignorePunctuation) && ignorePunctuation.length) {\n joiner.push(this.escapeStr(ignorePunctuation.join('')));\n }\n if (this.opt.ignoreJoiners) {\n joiner.push('\\\\u00ad\\\\u200b\\\\u200c\\\\u200d');\n }\n return joiner.length ? str.split(/\\u0000+/).join('[' + joiner.join('') + ']*') : str;\n }\n }, {\n key: 'createDiacriticsRegExp',\n value: function createDiacriticsRegExp(str) {\n var sens = this.opt.caseSensitive ? '' : 'i',\n dct = this.opt.caseSensitive ? ['aàáảãạăằắẳẵặâầấẩẫậäåāą', 'AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćč', 'CÇĆČ', 'dđď', 'DĐĎ', 'eèéẻẽẹêềếểễệëěēę', 'EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïī', 'IÌÍỈĨỊÎÏĪ', 'lł', 'LŁ', 'nñňń', 'NÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøō', 'OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rř', 'RŘ', 'sšśșş', 'SŠŚȘŞ', 'tťțţ', 'TŤȚŢ', 'uùúủũụưừứửữựûüůū', 'UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿ', 'YÝỲỶỸỴŸ', 'zžżź', 'ZŽŻŹ'] : ['aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćčCÇĆČ', 'dđďDĐĎ', 'eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïīIÌÍỈĨỊÎÏĪ', 'lłLŁ', 'nñňńNÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rřRŘ', 'sšśșşSŠŚȘŞ', 'tťțţTŤȚŢ', 'uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿYÝỲỶỸỴŸ', 'zžżźZŽŻŹ'];\n var handled = [];\n str.split('').forEach(function (ch) {\n dct.every(function (dct) {\n if (dct.indexOf(ch) !== -1) {\n if (handled.indexOf(dct) > -1) {\n return false;\n }\n str = str.replace(new RegExp('[' + dct + ']', 'gm' + sens), '[' + dct + ']');\n handled.push(dct);\n }\n return true;\n });\n });\n return str;\n }\n }, {\n key: 'createMergedBlanksRegExp',\n value: function createMergedBlanksRegExp(str) {\n return str.replace(/[\\s]+/gmi, '[\\\\s]+');\n }\n }, {\n key: 'createAccuracyRegExp',\n value: function createAccuracyRegExp(str) {\n var _this = this;\n\n var chars = '!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~¡¿';\n var acc = this.opt.accuracy,\n val = typeof acc === 'string' ? acc : acc.value,\n ls = typeof acc === 'string' ? [] : acc.limiters,\n lsJoin = '';\n ls.forEach(function (limiter) {\n lsJoin += '|' + _this.escapeStr(limiter);\n });\n switch (val) {\n case 'partially':\n default:\n return '()(' + str + ')';\n case 'complementary':\n lsJoin = '\\\\s' + (lsJoin ? lsJoin : this.escapeStr(chars));\n return '()([^' + lsJoin + ']*' + str + '[^' + lsJoin + ']*)';\n case 'exactly':\n return '(^|\\\\s' + lsJoin + ')(' + str + ')(?=$|\\\\s' + lsJoin + ')';\n }\n }\n }, {\n key: 'getSeparatedKeywords',\n value: function getSeparatedKeywords(sv) {\n var _this2 = this;\n\n var stack = [];\n sv.forEach(function (kw) {\n if (!_this2.opt.separateWordSearch) {\n if (kw.trim() && stack.indexOf(kw) === -1) {\n stack.push(kw);\n }\n } else {\n kw.split(' ').forEach(function (kwSplitted) {\n if (kwSplitted.trim() && stack.indexOf(kwSplitted) === -1) {\n stack.push(kwSplitted);\n }\n });\n }\n });\n return {\n 'keywords': stack.sort(function (a, b) {\n return b.length - a.length;\n }),\n 'length': stack.length\n };\n }\n }, {\n key: 'isNumeric',\n value: function isNumeric(value) {\n return Number(parseFloat(value)) == value;\n }\n }, {\n key: 'checkRanges',\n value: function checkRanges(array) {\n var _this3 = this;\n\n if (!Array.isArray(array) || Object.prototype.toString.call(array[0]) !== '[object Object]') {\n this.log('markRanges() will only accept an array of objects');\n this.opt.noMatch(array);\n return [];\n }\n var stack = [];\n var last = 0;\n array.sort(function (a, b) {\n return a.start - b.start;\n }).forEach(function (item) {\n var _callNoMatchOnInvalid = _this3.callNoMatchOnInvalidRanges(item, last),\n start = _callNoMatchOnInvalid.start,\n end = _callNoMatchOnInvalid.end,\n valid = _callNoMatchOnInvalid.valid;\n\n if (valid) {\n item.start = start;\n item.length = end - start;\n stack.push(item);\n last = end;\n }\n });\n return stack;\n }\n }, {\n key: 'callNoMatchOnInvalidRanges',\n value: function callNoMatchOnInvalidRanges(range, last) {\n var start = void 0,\n end = void 0,\n valid = false;\n if (range && typeof range.start !== 'undefined') {\n start = parseInt(range.start, 10);\n end = start + parseInt(range.length, 10);\n if (this.isNumeric(range.start) && this.isNumeric(range.length) && end - last > 0 && end - start > 0) {\n valid = true;\n } else {\n this.log('Ignoring invalid or overlapping range: ' + ('' + JSON.stringify(range)));\n this.opt.noMatch(range);\n }\n } else {\n this.log('Ignoring invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'checkWhitespaceRanges',\n value: function checkWhitespaceRanges(range, originalLength, string) {\n var end = void 0,\n valid = true,\n max = string.length,\n offset = originalLength - max,\n start = parseInt(range.start, 10) - offset;\n start = start > max ? max : start;\n end = start + parseInt(range.length, 10);\n if (end > max) {\n end = max;\n this.log('End range automatically set to the max value of ' + max);\n }\n if (start < 0 || end - start < 0 || start > max || end > max) {\n valid = false;\n this.log('Invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n } else if (string.substring(start, end).replace(/\\s+/g, '') === '') {\n valid = false;\n this.log('Skipping whitespace only range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'getTextNodes',\n value: function getTextNodes(cb) {\n var _this4 = this;\n\n var val = '',\n nodes = [];\n this.iterator.forEachNode(NodeFilter.SHOW_TEXT, function (node) {\n nodes.push({\n start: val.length,\n end: (val += node.textContent).length,\n node: node\n });\n }, function (node) {\n if (_this4.matchesExclude(node.parentNode)) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, function () {\n cb({\n value: val,\n nodes: nodes\n });\n });\n }\n }, {\n key: 'matchesExclude',\n value: function matchesExclude(el) {\n return DOMIterator.matches(el, this.opt.exclude.concat(['script', 'style', 'title', 'head', 'html']));\n }\n }, {\n key: 'wrapRangeInTextNode',\n value: function wrapRangeInTextNode(node, start, end) {\n var hEl = !this.opt.element ? 'mark' : this.opt.element,\n startNode = node.splitText(start),\n ret = startNode.splitText(end - start);\n var repl = document.createElement(hEl);\n repl.setAttribute('data-markjs', 'true');\n if (this.opt.className) {\n repl.setAttribute('class', this.opt.className);\n }\n repl.textContent = startNode.textContent;\n startNode.parentNode.replaceChild(repl, startNode);\n return ret;\n }\n }, {\n key: 'wrapRangeInMappedTextNode',\n value: function wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) {\n var _this5 = this;\n\n dict.nodes.every(function (n, i) {\n var sibl = dict.nodes[i + 1];\n if (typeof sibl === 'undefined' || sibl.start > start) {\n if (!filterCb(n.node)) {\n return false;\n }\n var s = start - n.start,\n e = (end > n.end ? n.end : end) - n.start,\n startStr = dict.value.substr(0, n.start),\n endStr = dict.value.substr(e + n.start);\n n.node = _this5.wrapRangeInTextNode(n.node, s, e);\n dict.value = startStr + endStr;\n dict.nodes.forEach(function (k, j) {\n if (j >= i) {\n if (dict.nodes[j].start > 0 && j !== i) {\n dict.nodes[j].start -= e;\n }\n dict.nodes[j].end -= e;\n }\n });\n end -= e;\n eachCb(n.node.previousSibling, n.start);\n if (end > n.end) {\n start = n.end;\n } else {\n return false;\n }\n }\n return true;\n });\n }\n }, {\n key: 'wrapMatches',\n value: function wrapMatches(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this6 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n dict.nodes.forEach(function (node) {\n node = node.node;\n var match = void 0;\n while ((match = regex.exec(node.textContent)) !== null && match[matchIdx] !== '') {\n if (!filterCb(match[matchIdx], node)) {\n continue;\n }\n var pos = match.index;\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n pos += match[i].length;\n }\n }\n node = _this6.wrapRangeInTextNode(node, pos, pos + match[matchIdx].length);\n eachCb(node.previousSibling);\n regex.lastIndex = 0;\n }\n });\n endCb();\n });\n }\n }, {\n key: 'wrapMatchesAcrossElements',\n value: function wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this7 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n var match = void 0;\n while ((match = regex.exec(dict.value)) !== null && match[matchIdx] !== '') {\n var start = match.index;\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n start += match[i].length;\n }\n }\n var end = start + match[matchIdx].length;\n _this7.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(match[matchIdx], node);\n }, function (node, lastIndex) {\n regex.lastIndex = lastIndex;\n eachCb(node);\n });\n }\n endCb();\n });\n }\n }, {\n key: 'wrapRangeFromIndex',\n value: function wrapRangeFromIndex(ranges, filterCb, eachCb, endCb) {\n var _this8 = this;\n\n this.getTextNodes(function (dict) {\n var originalLength = dict.value.length;\n ranges.forEach(function (range, counter) {\n var _checkWhitespaceRange = _this8.checkWhitespaceRanges(range, originalLength, dict.value),\n start = _checkWhitespaceRange.start,\n end = _checkWhitespaceRange.end,\n valid = _checkWhitespaceRange.valid;\n\n if (valid) {\n _this8.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(node, range, dict.value.substring(start, end), counter);\n }, function (node) {\n eachCb(node, range);\n });\n }\n });\n endCb();\n });\n }\n }, {\n key: 'unwrapMatches',\n value: function unwrapMatches(node) {\n var parent = node.parentNode;\n var docFrag = document.createDocumentFragment();\n while (node.firstChild) {\n docFrag.appendChild(node.removeChild(node.firstChild));\n }\n parent.replaceChild(docFrag, node);\n if (!this.ie) {\n parent.normalize();\n } else {\n this.normalizeTextNode(parent);\n }\n }\n }, {\n key: 'normalizeTextNode',\n value: function normalizeTextNode(node) {\n if (!node) {\n return;\n }\n if (node.nodeType === 3) {\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\n node.nodeValue += node.nextSibling.nodeValue;\n node.parentNode.removeChild(node.nextSibling);\n }\n } else {\n this.normalizeTextNode(node.firstChild);\n }\n this.normalizeTextNode(node.nextSibling);\n }\n }, {\n key: 'markRegExp',\n value: function markRegExp(regexp, opt) {\n var _this9 = this;\n\n this.opt = opt;\n this.log('Searching with expression \"' + regexp + '\"');\n var totalMatches = 0,\n fn = 'wrapMatches';\n var eachCb = function eachCb(element) {\n totalMatches++;\n _this9.opt.each(element);\n };\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n this[fn](regexp, this.opt.ignoreGroups, function (match, node) {\n return _this9.opt.filter(node, match, totalMatches);\n }, eachCb, function () {\n if (totalMatches === 0) {\n _this9.opt.noMatch(regexp);\n }\n _this9.opt.done(totalMatches);\n });\n }\n }, {\n key: 'mark',\n value: function mark(sv, opt) {\n var _this10 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n fn = 'wrapMatches';\n\n var _getSeparatedKeywords = this.getSeparatedKeywords(typeof sv === 'string' ? [sv] : sv),\n kwArr = _getSeparatedKeywords.keywords,\n kwArrLen = _getSeparatedKeywords.length,\n sens = this.opt.caseSensitive ? '' : 'i',\n handler = function handler(kw) {\n var regex = new RegExp(_this10.createRegExp(kw), 'gm' + sens),\n matches = 0;\n _this10.log('Searching with expression \"' + regex + '\"');\n _this10[fn](regex, 1, function (term, node) {\n return _this10.opt.filter(node, kw, totalMatches, matches);\n }, function (element) {\n matches++;\n totalMatches++;\n _this10.opt.each(element);\n }, function () {\n if (matches === 0) {\n _this10.opt.noMatch(kw);\n }\n if (kwArr[kwArrLen - 1] === kw) {\n _this10.opt.done(totalMatches);\n } else {\n handler(kwArr[kwArr.indexOf(kw) + 1]);\n }\n });\n };\n\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n if (kwArrLen === 0) {\n this.opt.done(totalMatches);\n } else {\n handler(kwArr[0]);\n }\n }\n }, {\n key: 'markRanges',\n value: function markRanges(rawRanges, opt) {\n var _this11 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n ranges = this.checkRanges(rawRanges);\n if (ranges && ranges.length) {\n this.log('Starting to mark with the following ranges: ' + JSON.stringify(ranges));\n this.wrapRangeFromIndex(ranges, function (node, range, match, counter) {\n return _this11.opt.filter(node, range, match, counter);\n }, function (element, range) {\n totalMatches++;\n _this11.opt.each(element, range);\n }, function () {\n _this11.opt.done(totalMatches);\n });\n } else {\n this.opt.done(totalMatches);\n }\n }\n }, {\n key: 'unmark',\n value: function unmark(opt) {\n var _this12 = this;\n\n this.opt = opt;\n var sel = this.opt.element ? this.opt.element : '*';\n sel += '[data-markjs]';\n if (this.opt.className) {\n sel += '.' + this.opt.className;\n }\n this.log('Removal selector \"' + sel + '\"');\n this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, function (node) {\n _this12.unwrapMatches(node);\n }, function (node) {\n var matchesSel = DOMIterator.matches(node, sel),\n matchesExclude = _this12.matchesExclude(node);\n if (!matchesSel || matchesExclude) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, this.opt.done);\n }\n }, {\n key: 'opt',\n set: function set$$1(val) {\n this._opt = _extends({}, {\n 'element': '',\n 'className': '',\n 'exclude': [],\n 'iframes': false,\n 'iframesTimeout': 5000,\n 'separateWordSearch': true,\n 'diacritics': true,\n 'synonyms': {},\n 'accuracy': 'partially',\n 'acrossElements': false,\n 'caseSensitive': false,\n 'ignoreJoiners': false,\n 'ignoreGroups': 0,\n 'ignorePunctuation': [],\n 'wildcards': 'disabled',\n 'each': function each() {},\n 'noMatch': function noMatch() {},\n 'filter': function filter() {\n return true;\n },\n 'done': function done() {},\n 'debug': false,\n 'log': window.console\n }, val);\n },\n get: function get$$1() {\n return this._opt;\n }\n }, {\n key: 'iterator',\n get: function get$$1() {\n return new DOMIterator(this.ctx, this.opt.iframes, this.opt.exclude, this.opt.iframesTimeout);\n }\n }]);\n return Mark;\n}();\n\nfunction Mark(ctx) {\n var _this = this;\n\n var instance = new Mark$1(ctx);\n this.mark = function (sv, opt) {\n instance.mark(sv, opt);\n return _this;\n };\n this.markRegExp = function (sv, opt) {\n instance.markRegExp(sv, opt);\n return _this;\n };\n this.markRanges = function (sv, opt) {\n instance.markRanges(sv, opt);\n return _this;\n };\n this.unmark = function (opt) {\n instance.unmark(opt);\n return _this;\n };\n return this;\n}\n\nreturn Mark;\n\n})));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/*\n * Copyright 2018-2020 DITA (AM Consulting LLC)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * Developed on behalf of: CAST (http://www.cast.org)\n * Licensed to: Bokbasen AS and CAST under one or more contributor license agreements.\n */\n\nimport * as Mark from \"mark.js\";\n\nexport const IS_DEV =\n process.env.NODE_ENV === \"development\" || process.env.NODE_ENV === \"dev\";\n\nasync function markCuedWords(glossary: Array<GlossaryItem>) {\n if (IS_DEV) console.log(\"glossary mark words \" + glossary);\n\n glossary.forEach(async function (glossaryitem: GlossaryItem) {\n if (IS_DEV) console.log(glossaryitem);\n var instance = new Mark(document.body);\n await instance.mark(glossaryitem.word, {\n accuracy: { value: \"exactly\", limiters: [\".\", \",\", \";\", \":\", \")\"] },\n separateWordSearch: false,\n acrossElements: true,\n exclude: [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"figure\"],\n element: \"a\",\n className: \"gloss\",\n each: function (node) {\n node.addEventListener(\n \"click\",\n async (event) => {\n var htmlElement = node as HTMLElement;\n if (IS_DEV) console.log(\"Mark Node Click Handler\");\n\n event.preventDefault();\n event.stopPropagation();\n var modal = document.createElement(\"div\");\n modal.className = \"modal\";\n modal.innerHTML =\n '<div class=\"modal-content\"><span class=\"close\">x</span>' +\n glossaryitem.definition +\n \"</div>\";\n modal.style.display = \"block\";\n\n document.body.appendChild(modal);\n\n var modalContent = modal.getElementsByClassName(\n \"modal-content\"\n )[0] as HTMLDivElement;\n var offset = htmlElement.offsetTop;\n if (htmlElement.offsetTop > 100) {\n offset = htmlElement.offsetTop - 20;\n }\n modalContent.style.top = offset + \"px\";\n\n var span = modal.getElementsByClassName(\n \"close\"\n )[0] as HTMLSpanElement;\n span.onclick = function () {\n modal.style.display = \"none\";\n modal.parentElement.removeChild(modal);\n };\n\n window.onclick = function (event) {\n if (event.target === modal) {\n modal.style.display = \"none\";\n modal.parentElement.removeChild(modal);\n }\n };\n },\n true\n );\n },\n });\n });\n}\n\nexport interface GlossaryItem {\n word: string;\n definition: string;\n}\n\nvar glossary: Array<GlossaryItem> = [\n { word: \"frankenstein\", definition: \"who is frankenstein\" },\n { word: \"Mary Shelley\", definition: \"who is Mary Shelley?\" },\n];\n\nmarkCuedWords(glossary);\n"],"sourceRoot":""}