{"version":3,"sources":["webpack://sjem-js/webpack/bootstrap","webpack://sjem-js/webpack/runtime/chunk loaded","webpack://sjem-js/webpack/runtime/load script","webpack://sjem-js/./src/global.js","webpack://sjem-js/./src/lib/abp.js","webpack://sjem-js/./vendor/events-3.0.0/events.js","webpack://sjem-js/./src/components/contentViewer.ts","webpack://sjem-js/./src/router/reload-when-route-changes.ts","webpack://sjem-js/./src/init.ts","webpack://sjem-js/./src/lib/abpbase.ts","webpack://sjem-js/./src/lib/ajax.ts","webpack://sjem-js/./src/lib/base64.ts","webpack://sjem-js/./src/lib/editor-funcs.ts","webpack://sjem-js/./src/lib/insert-sorted.ts","webpack://sjem-js/./src/lib/marked/Renderer.ts","webpack://sjem-js/./src/lib/marked/defaults.ts","webpack://sjem-js/./src/lib/marked/helpers.ts","webpack://sjem-js/./src/lib/marked/marked.ts","webpack://sjem-js/./src/lib/marked/rules.ts","webpack://sjem-js/./src/lib/marked/InlineLexer.ts","webpack://sjem-js/./src/lib/marked/Lexer.ts","webpack://sjem-js/./src/lib/marked/Slugger.ts","webpack://sjem-js/./src/lib/marked/TextRenderer.ts","webpack://sjem-js/./src/lib/marked/Parser.ts","webpack://sjem-js/./src/lib/util.ts","webpack://sjem-js/./src/components/smallIndex.vue?38cf","webpack://sjem-js/./src/components/vTabs.ts","webpack://sjem-js/./src/layouts/mobile/appLayout.vue","webpack://sjem-js/./src/components/mobileSystemBar.vue","webpack://sjem-js/./src/components/vMenuCaret.vue","webpack://sjem-js/./src/components/vMenuCaret.vue?722c","webpack://sjem-js/./src/components/vMenuCaret.vue?0a52","webpack://sjem-js/./src/components/vMenuCaret.vue?be65","webpack://sjem-js/./src/components/mobileSystemBar.vue?a3f6","webpack://sjem-js/./src/components/mobileSystemBar.vue?b709","webpack://sjem-js/./src/components/mobileSystemBar.vue?077c","webpack://sjem-js/./src/components/searchBar.vue","webpack://sjem-js/./src/components/smallIndex.vue?d006","webpack://sjem-js/./src/components/smallIndex.vue","webpack://sjem-js/./src/components/searchResults.vue","webpack://sjem-js/./src/components/searchResults.vue?9600","webpack://sjem-js/./src/components/searchResults.vue?2002","webpack://sjem-js/./src/components/searchResults.vue?d611","webpack://sjem-js/./src/components/searchBar.vue?6f77","webpack://sjem-js/./src/components/searchBar.vue?e150","webpack://sjem-js/./src/components/searchBar.vue?3066","webpack://sjem-js/./src/layouts/mobile/appLayout.vue?440e","webpack://sjem-js/./src/layouts/mobile/appLayout.vue?0b61","webpack://sjem-js/./src/layouts/mobile/appLayout.vue?e59d","webpack://sjem-js/./src/layouts/simpleLayout.vue","webpack://sjem-js/./src/layouts/simpleLayout.vue?b1a7","webpack://sjem-js/./src/layouts/simpleLayout.vue?1bda","webpack://sjem-js/./src/layouts/simpleLayout.vue?1c8b","webpack://sjem-js/./src/plugins/framework.ts","webpack://sjem-js/./src/plugins/vuetify.ts","webpack://sjem-js/./src/main.ts","webpack://sjem-js/./src/filters/nullToEmpty.ts","webpack://sjem-js/./src/router/force-load.ts","webpack://sjem-js/./src/router/index.ts","webpack://sjem-js/./src/views/home/home.vue?9f9e","webpack://sjem-js/./src/views/article/article.vue","webpack://sjem-js/./src/views/article/article.vue?f811","webpack://sjem-js/./src/views/article/article.vue?297e","webpack://sjem-js/./src/views/article/article.vue?49b6","webpack://sjem-js/./src/views/article/not-found.vue","webpack://sjem-js/./src/views/article/not-found.vue?43d1","webpack://sjem-js/./src/views/article/not-found.vue?9497","webpack://sjem-js/./src/views/article/not-found.vue?3b37","webpack://sjem-js/./src/views/home/home.vue","webpack://sjem-js/./src/views/home/home.vue?7308","webpack://sjem-js/./src/views/home/home.vue?f909","webpack://sjem-js/./src/router/routes.ts","webpack://sjem-js/./src/store/modules/app.ts","webpack://sjem-js/./vendor/immediate-3.0.6/lib/index.es.js","webpack://sjem-js/./vendor/spark-md5-3.0.0/spark-md5.js","webpack://sjem-js/./vendor/pouchdb-browser-7.0.0/lib/index.es.js","webpack://sjem-js/./src/store/modules/article-list.ts","webpack://sjem-js/./src/store/modules/index-configuration.ts","webpack://sjem-js/./src/lib/wordcounts.ts","webpack://sjem-js/./src/store/modules/search.ts","webpack://sjem-js/./src/store/modules/account.ts","webpack://sjem-js/./vendor/argsarray-0.0.1/index.es.js","webpack://sjem-js/./src/store/modules/article-revision.ts","webpack://sjem-js/./src/store/modules/image-view.ts","webpack://sjem-js/./src/store/modules/list-module.ts","webpack://sjem-js/./src/store/modules/role.ts","webpack://sjem-js/./src/store/modules/session.ts","webpack://sjem-js/./src/store/modules/user.ts","webpack://sjem-js/./src/store/index.ts","webpack://sjem-js/./src/store/modules/article.ts","webpack://sjem-js/./src/lib/markdownImageCollector.ts","webpack://sjem-js/./src/store/modules/notice.ts","webpack://sjem-js/./src/app.vue","webpack://sjem-js/./src/app.vue?6b8a","webpack://sjem-js/./src/app.vue?1aec","webpack://sjem-js/./src/app.vue?06f3","webpack://sjem-js/./src/components/markdownViewer.vue?994c","webpack://sjem-js/./src/components/markdownViewer.vue","webpack://sjem-js/./src/components/markdownViewer.vue?b726","webpack://sjem-js/./src/components/markdownViewer.vue?00eb","webpack://sjem-js/./src/components/modalHost.vue","webpack://sjem-js/./src/components/zoomableImage.vue","webpack://sjem-js/./src/components/zoomableImage.vue?e9dc","webpack://sjem-js/./src/components/zoomableImage.vue?429d","webpack://sjem-js/./src/components/zoomableImage.vue?4075","webpack://sjem-js/./src/components/modalHost.vue?4681","webpack://sjem-js/./src/components/modalHost.vue?7d32","webpack://sjem-js/./src/components/modalHost.vue?d5d9","webpack://sjem-js/./src/components/notificationHost.vue","webpack://sjem-js/./src/components/notificationHost.vue?24b4","webpack://sjem-js/./src/components/notificationHost.vue?7277","webpack://sjem-js/./src/components/notificationHost.vue?2ed6","webpack://sjem-js/webpack/runtime/compat get default export","webpack://sjem-js/webpack/runtime/define property getters","webpack://sjem-js/webpack/runtime/ensure chunk","webpack://sjem-js/webpack/runtime/get javascript chunk filename","webpack://sjem-js/webpack/runtime/get mini-css chunk filename","webpack://sjem-js/webpack/runtime/hasOwnProperty shorthand","webpack://sjem-js/webpack/runtime/make namespace object","webpack://sjem-js/webpack/runtime/node module decorator","webpack://sjem-js/webpack/runtime/publicPath","webpack://sjem-js/webpack/runtime/css loading","webpack://sjem-js/webpack/runtime/jsonp chunk loading","webpack://sjem-js/webpack/startup"],"names":["__webpack_require__","moduleId","cachedModule","__webpack_module_cache__","undefined","exports","module","id","loaded","__webpack_modules__","deferred","inProgress","window","self","abp","appPath","pageLoadTime","Date","toAbsAppPath","path","indexOf","substring","multiTenancy","isEnabled","sides","TENANT","HOST","tenantIdCookieName","setTenantIdCookie","tenantId","utils","setCookieValue","toString","getTime","domain","deleteCookie","getTenantIdCookie","value","getCookieValue","parseInt","session","multiTenancySide","listeners","sessionChanged","isLoggedIn","listener","_unused","onSessionChanged","cb","push","localization","languages","currentLanguage","sources","values","localize","key","sourceName","copiedArguments","defaultSourceName","source","log","warn","console","formatString","getSource","args","splice","isCurrentCulture","name","currentCulture","abpWeb","auth","allPermissions","grantedPermissions","hasPermission","isGranted","hasAnyOfPermissions","isAnyGranted","hasAllOfPermissions","areAllGranted","permissionName","length","i","tokenCookieName","setToken","authToken","expireDate","getToken","clearToken","features","allFeatures","get","getValue","feature","setting","getBoolean","getInt","notifications","severity","INFO","SUCCESS","WARN","ERROR","FATAL","userNotificationState","UNREAD","READ","getUserNotificationStateAsString","getUiNotifyFuncBySeverity","notify","success","error","info","messageFormatters","userNotification","notification","data","message","properties","Message","localizedMessage","Object","keys","replace","getFormattedMessageFromUserNotification","formatter","type","isFunction","showUiNotifyForUserNotification","options","uiNotifyFunc","levels","DEBUG","level","logObject","logLevel","debug","fatal","title","showMessage","alert","confirm","titleOrCallback","callback","result","ui","block","elm","unblock","setBusy","optionsOrPromise","clearBusy","event","_callbacks","on","eventName","Set","add","off","callbacks","delete","size","trigger","apply","this","createNamespace","root","ns","parts","split","replaceAll","str","search","replacement","fix","RegExp","placeHolder","toPascalCase","charAt","toUpperCase","substr","toCamelCase","toLowerCase","truncateString","maxLength","truncateStringWithPostfix","postfix","buildQueryString","parameterInfos","includeQuestionMark","addSeperator","qs","parameterInfo","toJSON","encodeURIComponent","Array","isArray","j","cookieValue","toUTCString","document","cookie","equalities","splitted","decodeURIComponent","getDomain","url","matches","exec","timing","utcClockProvider","now","normalize","date","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toUtc","supportsMultipleTimezone","localClockProvider","toLocal","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","unspecifiedClockProvider","convertToUserTimezone","utcTime","getTimezoneOffset","targetTime","timeZoneInfo","windows","currentUtcOffsetInMilliseconds","clock","provider","security","antiForgery","tokenHeaderName","shouldSendToken","settings","crossDomain","location","href","EventEmitter","init","call","$getMaxListeners","that","_maxListeners","defaultMaxListeners","_addListener","target","prepend","m","events","existing","warning","TypeError","_events","create","_eventsCount","newListener","emit","unshift","warned","w","Error","String","emitter","count","onceWrapper","arguments","fired","removeListener","wrapFn","ReflectApply","_onceWrap","state","wrapped","bind","_listeners","unwrap","evlistener","arr","ret","unwrapListeners","arrayClone","listenerCount","n","copy","ReflectOwnKeys","R","Reflect","receiver","Function","prototype","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","concat","NumberIsNaN","Number","isNaN","defineProperty","enumerable","set","arg","RangeError","getPrototypeOf","setMaxListeners","getMaxListeners","doError","er","err","context","handler","len","addListener","prependListener","once","prependOnceListener","list","position","originalListener","shift","index","pop","spliceOne","removeAllListeners","rawListeners","eventNames","props","content","docid","components","VImg","VTab","VExpansionPanels","VExpansionPanel","VExpansionPanelHeader","VExpansionPanelContent","VTabs","VTabItem","VCard","VCardText","VIcon","VSkeletonLoader","VTabsItems","directives","Ripple","Touch","computed","attachmentMap","$store","articleList","methods","onImgError","onExpanderChanged","number","children","openChildren","map","filter","attributes","closedChildren","ix","includes","expanders","openChild","closedChild","$emit","onTabChanged","tabId","tabPart","tab","goBack","$router","back","goForward","forward","render","h","attachments","renderBlockLevelToken","nodes","host","cachedAttachments","docId","results","node","tag","attrs","staticClass","_objectSpread","JSON","parse","tabs","t","_cachedAttachments$at","e","commit","payload","currentTarget","getAttribute","v","_","attr","k","entries","dispatch","pending","user","role","reloadWhenRouteChanged","reload","register","swUrl","hooks","registrationOptions","navigator","async","registration","serviceWorker","handleInstalling","installingWorker","installing","onstatechange","controller","waiting","onupdatefound","registerValidSW","hook","hookFn","swapStyleSheets","modules","_document$getElementB","userAgent","body","style","overflow","height","classList","app","getElementById","opacity","transition","stylesheets","querySelectorAll","requestAnimationFrame","setTimeout","rel","isNomodules","endsWith","media","remove","appInsights","loadAppInsights","trackPageView","spaVersion","process","addEventListener","ev","trackException","exception","reason","protocol","requestIdleCallback","scope","cached","worker","forceLoadAllChunks","postMessage","env","fn","ApplicationInsights","config","instrumentationKey","enableCorsCorrelation","enableAutoRouteTracking","maxMessageLimit","isBeaconApiDisabled","APP_CONSTS","userManagement","defaultAdminUserName","defaultLocalizationSourceName","authorization","encrptedAuthTokenName","appBaseUrl","remoteServiceBaseUrl","AbpBase","Vue","constructor","_defineProperty","shortTime","valueOf","Intl","DateTimeFormat","day","month","year","hour","minute","formatToParts","join","moment","sourceDate","duration","suffix","normalizedDuration","unit","factor","unitedDuration","L","argus","ajax","axios","baseURL","timeout","interceptors","request","use","headers","common","Promise","reject","response","store","details","base64Encode","buffer","rawBufferStart","byteOffset","rawBufferEnd","byteLength","thisChunkSize","chunk","Uint8Array","btoa","fromCharCode","base64Decode","contents","atob","rawBuffer","charCodeAt","getSelectionContents","editorSelection","lines","linesPrefix","slice","fromLine","linesSuffix","toLine","spanPrefix","fromCol","spanSuffix","toCol","selection","selectionFirstLine","selectionLastLine","additionalSelectionLines","prefix","modifySelection","start","end","defaultContent","endMatcher","selected","selectedSpan","suffixLength","startsWith","suffixMatches","output","modifyLine","linePrefix","one","linePrefixRoot","_ix","linePrefixFn","relevantLines","every","l","isBlank","adjustedLines","lastLine","firstLineLength","lastLineLength","getGreatestPowerOfTwoLessThanOrEqualTo","compareSortables","a","b","compareArrays","minLength","r","rawBinarySearch","docs","insertion","convert","comparison","mode","match","lockedDigit","smallestIndexGreaterThan","largestIndexLessThan","currentSearch","raggedEnd","sampleToTest","comparisonResult","binarySearch","doc","extractKeyOrFunc","keyFuncOrMode","modeOpt","extractFn","keyOrFunc","keyFunc","insertIntoSorted","Renderer","ofText","text","encode","escape","cat","defaults","setOptions","code","infostring","escaped","lang","highlight","out","classes","langPrefix","renderAttributes","blockquote","quote","html","heading","raw","slugger","headerIds","headerPrefix","slug","hr","xhtml","ordered","orderstyle","listitem","checkbox","checked","paragraph","table","header","tablerow","tablecell","flags","align","strong","em","sub","sup","marked","codespan","br","del","link","href2","cleanUrl","sanitizer","baseUrl","image","width","styleNextElement","foundSoFar","has","NullRenderer","mangle","silent","smartLists","smartypants","escapeTest","test","escapeReplace","getEscapeReplacement","escapeTestNoEncode","escapeReplaceNoEncode","unescape","unescapeTest","edit","regexOuter","opt","regex","obj","valOuter","val","caret","getRegex","sanitize","base","prot","nonWordAndColonTest","originIndependentUrl","baseUrls","justDomain","rtrim","relativeBase","resolveUrl","encodeURI","splitCells","tableRow","rawcells","_match","offset","curr","cells","parsed","escapes","escapesequence","lengthwas","cap","trimLeft","trimRight","endindex","c","invert","suffLen","currChar","findClosingBracket","checkSanitizeDeprecation","escapeReplacements","ch","noopTest","src","optOrCallback","localDefaults","Lexer","lex","tokens","links","done","Parser","token","markedFull","renderer","opts","parseHTML","extractChildren","element","child","childNodes","nodeType","Node","TEXT_NODE","textContent","ELEMENT_NODE","tagName","attribute","DOMParser","parseFromString","_label","_title","def","_list","bullet","_tag","_html","_comment","_paragraph","blockBase","newline","fences","lheading","item","blockNormal","nptable","expandedBullet","normal","gfm","pedantic","_taginline","_scheme","_email","autolink","_attribute","_labelinline","_href","_titleinline","inlineBase","imglink","reflink","nolink","_escapes","inlineNormal","_backpedal","inlinePedantic","inlineGfm","_extended_email","inline","breaks","InlineLexer","rules","reset","inLink","inRawBlock","fragments","sliceFragments","styles","fragment","contentOffset","contentLength","lengthpreceding","lengthsucceeding","column","row","trueLength","inlineStyles","outerPosition","prevCapZero","initialLength","currentPosition","lastParenIndex","linkLen","trim","rawWidth","rawHeight","startIndex","outputLink","linkKey","innerresult","marklength","leadingwslength","trailingwslength","capoffset","top","final","lineOffsets","srcOffset","line","srcLength","getSrcOffset","posOfOffset","bull","listStart","istask","offsetfromend","offsetfrombeginning","srcleft","finalmarkupstart","markuplength","srcright","innercontent","nexttoken","innercap","nextcap","close","attributeName","quoteEndFinder","remainder","endIndex","classname","lastToken","srcEnd","srcStart","rawCap","lastIndex","delta","sourceIndex","codeBlockStyle","languageTagStart","textStart","endTagStart","infoRole","softTextStart","textEnd","depth","rawalignment","headeroffset","initialheaderlength","rawheaderstring","headerParseData","rawCells","startindex","cell","markupend","tokenLocalIndex","firstIndex","contentindex","fragmentIndexes","from","to","alignmentstart","rawalignmentindex","rowindex","rowdata","replacementstart","startLine","lineprefixes","innerLines","lengthprefix","rawcap","replacementend","lineoffset","isordered","bulletMatcher","miniParseRomanNumerals","sum","maybeMinus","smallestDigit","numeric","fives","NaN","loose","itemmatcher","currentmatch","nextmatch","listItems","next","originalLength","space","firstlineprefixlength","ischecked","originallength","task","pre","tokenLinks","rawHeader","headerstartindex","firstmeaningfulindex","cellstart","textend","finalizeTokens","fragmentswere","rawContent","firstline","lastline","fulllines","lineadjustments","fill","relevantattr","attrelement","lineadjustment","Slugger","seen","originalSlug","TextRenderer","encodeIt","_options","renderFactory","inlineText","reverse","tok","peek","parseText","nextToken","fr","spliceCellFragments","insertPoint","active","collectCellFragments","blockStyles","innertoken","errMsg","testURL","urlValidator","loadScript","script","createElement","appendChild","appname","page","showThisRoute","itAccess","currentAccess","getRouterObjByName","routers","routerObj","toDefaultPage","route","notHandle","redirect","renderSections","sections","articles","searchPath","_prefix","section","innerPath","searchKey","isPublic","hierarchyParent","hierarchyWeight","documentName","compareArticlesByPosition","relevantArticles","relevantDocument","icon","VTabsBarEx","VTabsBar","extend","marginLeft","default","marginRight","genContent","onTouchEnd","wrapper","$refs","maxScrollOffset","clientWidth","setProperty","$vuetify","rtl","scrollOffset","isOverflowing","setWidths","widths","scrollIntoView","genItems","items","$createElement","internalValue","touchless","change","genBar","slider","convertToUnit","activeClass","centerActive","dark","light","mandatory","optional","mobileBreakPoint","nextIcon","prevIcon","showArrows","callSlider","ref","setTextColor","computedColor","setBackgroundColor","backgroundColor","genSlider","_vm","zoomfactor","rawName","left","expression","class","mobile","_c","zoom","showall","zoomchanged","documentsAreReady","color","staticRenderFns","_withStripped","contain","_e","input","$event","multiple","_self","_setupProxy","right","_m","_t","VMenuCaret","__decorate","Prop","Boolean","Component","AppSystemBar","params","meta","_this$$store$state$ar","article","currentRemote","_this$$store$state$ar2","currentUser","surname","articlesAreSame","currentEditing","currentEditingSrc","colorIndex","colorArray","toggleDrawer","login","documentIndices","zoomChanged","Emit","VSpacer","VMenu","VBtn","VFlex","VSlider","VList","VListItemContent","VListItem","VListItemAction","VListGroup","VListItemTitle","VCheckbox","VListItemGroup","large","toggleToc","togglelayout","toc","click","currentItemSection","rounded","outlined","model","$$v","slot","scopedSlots","searchSection","sectionsOpen","searching","dense","underflow","HomePageIndex","indexConfiguration","alsSections","sortedArticles","protocolSection","blsSections","tempList","documents","sort","created","_h","nav","notices","renderSection","renderAdminLink","fromApp","visibleNotices","currentDate","currentNotices","noticesByDailyBucket","fromDate","modificationTime","VListItemIcon","VBadge","indeterminate","absolute","noResults","disabled","mark","excerpt","testIntersection","SearchResults","isSearching","_this$$store$state$se","searchResults","reachedEnd","intersectionRatio","itemSelected","checkUnderflow","nextEmit","expectedResults","propagateEmit","Watch","VListItemSubtitle","VProgressLinear","Intersect","SearchBar","onSearchParamsChange","rawTerm","rawSearch","doSearch","term","query","routeIsSearching","clearSearch","onToc","onSearch","focus","onMobile","$route","currentItem","currentSearchSection","onRouteChanged","toggleLayout","VTextField","VChip","MiniIndex","AppLayout","hideFooter","_onResized","firstUpdate","rect","getBoundingClientRect","_changeLayout","mounted","rawZoom","rawShowall","_onResizedBound","passive","unmounted","removeEventListener","completedInitialLoad","updated","afterZoomChanged","afterShowallChanged","NotificationHost","ModalHost","VContent","VContainer","VProgressCircular","mapState","SimpleLayout","install","$Modal","$Message","destroy","Vuetify","VTabTransition","Framework","icons","iconfont","theme","customProperties","themes","primary","secondary","component","productionTip","sync","router","moduleName","language","resolve","abpUserConfiguration","then","SJEM","Abp","AbpWeb","AbpZero","Util","merge","App","vuetify","$mount","catch","registerLoadableRoutes","routes","collectImports","collectedImports","registerLoaderModule","isLoaded","all","f","VueRouter","defaultLocation","ROUTER_CONFIG","beforeEach","_from","startTrackPage","fullPath","otherRoutes","appRoutes","userId","return","_to$meta","curRouterObj","permission","afterEach","stopTrackPage","scrollTo","expandall","showAll","viewstate","viewstatechanged","onViewStateChanged","showWatermark","watermarkColor","viewBox","d","watermark","ArticleView","s","onIdChanged","checkDocument","docViewState","stateKey","randoms","Math","random","randomId","onReadyStateChange","was","documentBody","docViewStates","idWas","warnOnContextSwitch","MarkdownViewer","_v","NotFoundView","exists","onExists","Home","newresults","flat","focusable","accordion","childResults","innerPrefix","innerResults","RawContentViewer","loginRoutes","layout","Article","NotFound","COLLECTIBLE_LAYOUT_IMPORTS","COLLECTIBLE_MODAL_IMPORTS","processExpirations","earliest","currentTimeout","notificationTimeout","clearTimeout","nextTimeout","currentTime","toISOString","nextTick","oldQueue","draining","queue","md5cycle","x","md5blk","md5blks","md5blk_array","md51","tail","tmp","lo","hi","rhex","hex_chr","hex","toUtf8","hexToBinaryString","bytes","SparkMD5","cloneBinaryObject","object","ArrayBuffer","buff","targetArray","sourceArray","cloneArrayBuffer","webkitSlice","clone","newObject","Blob","isBinaryObject","proto","Ctor","funcToString","objectCtorString","isPlainObject","hasOwnProperty","fun","called","getArguments","toPromise","func","usedCB","promise","fulfill","resp","mesg","adapterFun","_closed","_destroyed","logArgs","origCallback","res","responseArgs","logApiCall","taskqueue","isReady","addTask","failed","pick","prop","identityFunction","formatResultForOpenRevsGet","ok","bulkGet","db","checkDone","numDone","numDocs","perDocResults","forEach","nextBatch","allRequests","upTo","min","batch","docIdx","docRequests","requestsById","docOpts","open_revs","rev","formatResult","param","processBatch","requests","Map","guardedConsole","method","createError","CustomPouchError","generateErrorFromResponse","UNKNOWN_ERROR","status","filterChange","req","hasFilter","query_params","filterReturn","msg","BAD_REQUEST","tryFilter","include_docs","att","_attachments","stub","flatten","arrs","invalidIdError","INVALID_ID","RESERVED_ID","MISSING_ID","parseDesignDocFunctionName","normalizeDesignDocFunctionName","normalized","scopeEval","upsert","diffFun","docRev","_rev","newDoc","_id","put","tryAndPut","createBlob","builder","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","append","getBlob","binaryStringToArrayBuffer","bin","buf","binStringToBluffer","binString","b64ToBluffer","b64","thisAtob","readAsBinaryString","blob","reader","FileReader","hasBinaryString","onloadend","binary","arrayBufferToBinaryString","readAsArrayBuffer","blobToBinaryString","blobOrBuffer","appendBlob","sliceBlob","arrayBuffer","appendString","string","appendBinary","binaryMd5","setImmediateShim","loadNextChunk","base64","thisBtoa","rawToBase64","currentChunk","chunkSize","chunks","inputIsString","ceil","Md5","stringMd5","hash","uuidv4","sep","rnds","crypto","getRandomValues","bth","byteToHex","bytesToUuid","rev$$1","deterministic_revs","clonedDoc","_rev_tree","stringify","winningRev","metadata","winningId","winningPos","winningDeleted","toVisit","rev_tree","tree","ids","branches","pos","deleted","traverseRevTree","revs","newCtx","ctx","sortByPos","collectLeaves","leaves","isLeaf","acc","collectConflicts","win","conflicts","leaf","rootToLeaf","paths","history","sortByPos$1","insertSorted","comparator","idx","mid","low","high","pathToTree","numStemmed","currentLeaf","compareTree","mergeTree","in_tree1","in_tree2","tree1","tree2","merged","doMerge","dontExpand","restree","branch","t1","t2","diff","candidateParents","trees","parent","parentIdx","elements","elementsLen","el","newTree","stemmed","stemmedRevs","revHash","stem","getTrees","isDeleted","isLocalId","processChange","changeList","changes","_conflicts","compare","yankError","compareByIdThenRev","idCompare","_revisions","getFieldFromDoc","parsedField","parseField","fieldName","fields","current","isCombinationalField","field","combinationFields","getKey","mergeAndedSelectors","selectors","selector","matcher","$eq","fieldMatchers","operator","$gte","$gt","mergeGtGte","$lte","$lt","mergeLtLte","$ne","mergeNe","mergeEq","collate","normalizeKey","ai","collationIndex","bi","stringCollate","arrayCollate","ak","bk","objectCollate","Infinity","origKey","indexify","num","expFormat","toExponential","magnitude","neg","magString","padWith","upToLength","padding","targetLength","pad","abs","parseFloat","factorStr","toFixed","numToIndexableString","toIndexableString","objKey","parseNumber","originalIdx","numAsString","magAsString","stack","metaStack","lastMetaElement","lastElementIndex","filterInMemoryFields","rows","requestDef","inMemoryFields","rowFilter","fieldSorter","getFieldValuesAsArray","sorting","aRow","bRow","collation","createFieldSorter","skip","limit","docFieldValue","some","orMatchers","find","matchCominationalSelector","matchSelector","userOperator","userValue","matchers","fieldExists","fieldIsNotUndefined","arrayContainsValue","matchesSelector","rowsMatched","wasAnded","orOrNor","subSelector","massageSelector","validate","filterName","view","shouldFilter","changesHandler","doc_ids","complete","viewName","ddoc","isCancelled","mapFun","views","MISSING_DOC","doChanges","filterFun","filters","toObject","array","reduce","parseRevisionInfo","INVALID_REV","parseDoc","newEdits","dbOpts","nRevNum","newRevId","revInfo","_deleted","revisions","revisionIds","makeRevTreeFromRevisions","specialKey","reservedWords","DOC_VALIDATION","dataWords","preprocessString","blobType","asBinary","BAD_ARG","parseBase64","content_type","digest","preprocessBlob","md5","blobToBase64","preprocessAttachment","updateDoc","revLimit","prev","docInfo","writeDoc","splitRev","targetPos","targetId","revExists","previousWinningRev","previouslyDeleted","isRoot","REV_CONFLICT","newRev","rev_map","winningRev$$1","winningRevIsDeleted","processDocs","docInfos","api","fetchedDocs","tx","overallCallback","checkAllDocsDone","docsDone","docsToDo","new_edits","idsToDocs","currentDoc","resultsIdx","docWritten","nextDoc","rootIsMissing","insertDoc","idbError","evt","IDB_ERROR","encodeMetadata","json","deletedOrLocal","seq","decodeMetadata","storedObject","decodeDoc","_doc_id_rev","lastIndexOf","readBlobData","asBlob","fetchAttachmentsIfNecessary","txn","attObj","objectStore","onsuccess","fetchAttachment","postProcessAttachments","attNames","compactRevs","possiblyOrphanedDigests","attAndSeqStore","IDBKeyRange","bound","attStore","deleteOrphanedAttachments","seqStore","openCursor","only","cursor","digestSeq","primaryKey","continue","openTransactionSafely","idb","stores","transaction","idbBulkDocs","startTransaction","txnResult","DOC_STORE","META_STORE","onabort","ontimeout","oncomplete","docStore","bySeqStore","attachStore","attachAndSeqStore","metaStore","metaDoc","updateDocCountIfReady","finish","digests","filename","MISSING_STUB","verifyAttachment","attErr","verifyAttachments","preconditionErrored","numFetched","revs_limit","onAllDocsProcessed","readMetadata","fetchExistingDocs","allDocsProcessed","docCount","docCountDelta","_meta","newRevIsDeleted","isUpdate","collectResults","finishDoc","attachmentSaved","revpos","newAtt","saveAttachment","writeAttachments","afterPutDoc","revsToDelete","auto_compaction","compactTree","metadataToStore","afterPutMetadata","attsAdded","attsToAdd","onerror","preventDefault","stopPropagation","insertAttachmentMappings","putReq","docInfoError","blobSupport","docv","overallErr","processedAttachment","recv","preprocessAttachments","runBatchedCursor","keyRange","descending","batchSize","onBatch","onGetAll","valuesBatch","keysBatch","pseudoCursor","onGetAllKeys","onCursor","getAll","getAllKeys","newKeyRange","lastKey","upper","upperOpen","lowerBound","idbAllDocs","allDocsInner","docIdRevIndex","fetchDocAsynchronously","batchValues","batchValue","batchKeys","onResultsReady","returnVal","total_rows","update_seq","updateSeq","keyRangeError","startkey","endkey","inclusiveEnd","inclusive_end","upperBound","createKeyRange","onSuccess","maxKey","allDocsKeys","applyNext","running","dbName","onGetMetadata","docIdRev","last_seq","lastSeq","continuous","cancel","docIds","since","numResults","docIdsToMetadata","objectStores","processMetadataAndWinningDoc","winningDoc","filtered","return_docs","winningDocs","metadatas","fetchWinningDocAndMetadata","promises","onChange","onBatchDone","IdbPouch","action","PouchDB","tryCode","enqueueTask","thisCallback","addDeletedOrLocalIndex","createIndex","unique","migrateLocalStore","localStore","local","range","seqCursor","migrateAttsAndSeqs","atts","digestMap","migrateMetadata","onGetMetadataSeq","metadataSeq","fetchMetadataSeq","_remote","instanceId","_bulkDocs","reqOpts","_get","latest","historyNode","_getAttachment","attachId","attachment","blobData","_info","doc_count","idb_attachment_format","_allDocs","_changes","_close","cachedDBs","_getRevisionTree","_doCompaction","_getLocal","_putLocal","oldRev","oStore","oldDoc","_removeLocal","_destroy","openReq","openReqList","indexedDB","deleteDatabase","localStorage","global","open","onupgradeneeded","oldVersion","createObjectStore","keyPath","autoIncrement","createSchema","createLocalStoreSchema","addAttachAndSeqStore","migrations","migration","completeSetup","storedMetaDoc","storeMetaDocIfReady","instanceKey","onversionchange","countDocs","blobSupportPromise","blob$$1","matchedChrome","matchedEdge","checkBlobSupport","promisedCallback","sequentialize","promiseFactory","uniq","theSet","mapToKeysArray","createBuiltInError","BuiltInError","jLen","jNum","evalFunctionWithEval","_cspfun","createView","sourceDB","reduceFun","temporary","localDocName","cachedViews","viewSignature","createViewSignature","_cachedViews","promiseForView","depDbName","db_name","fullViewName","depDbs","registerDependentDatabase","adapter","lastSeqDoc","parseViewName","emitError","localTimeToLocalDate","dateStr","padStart","parentSection","reifyPath","findIndex","getPath","currentNode","cleanupParents","weight","getSearchKeys","wordData","WordCountRender","scale","wordsMap","word","words","commonWordsSet","sqrt","first","second","bigraphs","searchifyText","updateSearchIndex","searchIndex","previousEntry","idToKeys","published","newKeys","wordsToId","entry","enqueueOp","localSI","searchIndexStore","schema","stale","_unused2","_unused3","NEGATIVE_INFINITY","maxIndex","querySync","highlightText","rawLine","infixedWords","startsWithSpace","endOfCurrentlyHighlightedFragment","highlighted","generateExceptsFromLine","searchableLine","wordsFoundInLine","matchAll","foundFragments","entirePrefix","includedPrefix","includedSuffix","possiblyIncludedSuffix","infix","spacesSoFar","spacesRemaining","MAXIMUM_FRAGMENT_WORDS_AFTER","availableSuffix","suffixmatch","fragmentIx","goodness","generateExcerpts","fullWords","prefixWord","rawLines","searchableLines","LineRenderer","getRawContents","fullWordMatchers","highlightFullText","namespaced","actions","isTenantAvailable","_state","post","Vuex","footerComponent","pageOpenedList","currentPageName","menuList","drawer","notificationIndex","modal","loginTwoFactor","currentLayout","openModal","closeModal","setShowAll","setViewState","logout","setOpenedList","hideFooterComponent","updateMenuList","insertNotification","removeNotification","removeExpiredNotifications","setTwoFactorSetupState","setLayout","setFromApp","newLayout","acceptedtos","acceptTOS","loginClearTwoFactor","tokenExpireDate","rememberMe","expireInSeconds","accessToken","encryptedAccessToken","rep","requiresTwoFactor","forgotPassword","_context","clear","sessionStorage","newTimeout","setMilliseconds","timestamp","scheduleDrain","Mutation","MutationObserver","WebKitMutationObserver","observer","createTextNode","observe","characterData","setImmediate","MessageChannel","scriptEl","onreadystatechange","parentNode","removeChild","documentElement","channel","port1","onmessage","port2","clamp","max","begin","_buff","_length","_hash","_finish","getState","setState","hashBinary","returnUInt8Array","subarray","utf8Str2ArrayBuffer","md51_array","Changes","super","inprogress","eventFunction","changesOpts","cancelled","notifyLocalWindows","PouchError","MISSING_BULK_DOCS","QUERY_PARSE_ERROR","NOT_AN_OBJECT","Changes$1","ee","onDestroy","tryCatchInChangeListener","validateChanges","_changesFilterPlugin","live","newPromise","AbstractPouchDB","p","_compact","compactDocument","_type","bulkDocs","putDoc","_put","oldRevId","newRevNum","force","putAttachment","attachmentId","createAttachment","prevrevpos","removeAttachment","docOrId","optsOrRev","was_delete","revsDiff","addToMissing","revId","missing","missingForId","processDoc","missingObj","maxHeight","revTree","edges","prnt","edge","computeHeight","candidates","compact","_compactionQueue","doNextCompaction","finishOpenRevs","revs_info","splittedRev","revNo","currentPath","hashIndex","indexOfRev","howMany","_revs_info","getAttachment","allDocs","start_key","end_key","incompatibleOpt","allDocsKeysParse","attachmentError","attachmentNameError","cleanDocs","dependentDb","depDB","__opts","dependentDbs","usePrefix","use_prefix","destroyDb","localDoc","deletedMap","trueName","TaskQueue","execute","fail","ready","eventEmitter","backend","adapters","preferredAdapters","adapterName","parseAdapter","_adapter","valid","onDestroyed","from_constructor","onClosed","prepareForDestruction","addToPreferredAdapters","__defaults","defaultOpts","PouchAlt","f$1","AbortController","Pouch","destructListeners","fetch","Headers","_destructionListeners","dbList","$elemMatch","$allMatch","$exists","$mod","divisor","mod","modField","neValue","$in","$nin","$size","arraySize","$all","arrayContainsAllValues","$regex","regexMatch","$type","typeMatch","plugin","version","QueryParseError","captureStackTrace","NotFoundError","TaskQueue$1","persistentQueues","tempViewQueue","builtInReduce","sumsqr","_sumsqr","abstract","mapper","reducer","ddocValidator","tryMap","tryReduce","rereduce","sortByKeyThenValue","y","keyCompare","sliceResults","rowToDocId","coerceInteger","integerCandidate","asNumber","checkQueryParseError","startkeyName","endkeyName","group","group_level","optionName","checkPositiveInteger","defaultsTo","getDocsToPersist","docIdsToChangesAndEmits","metaDocId","defaultMetaDoc","docData","indexableKeysToKeyValues","isGenOne","getKeyValueDocs","kvDocsRes","kvDocs","oldKeys","keyValue","kvDoc","processKeyValueDocs","getQueue","updateView","listOfDocsToPersist","docsToPersist","saveKeyValues","processNextBatch","currentSeq","mapResults","createIndexableKeysToKeyValues","createDocIdsToChangesAndEmits","emittedKeyValue","complexKey","updateViewInQueue","queryView","fetchFromView","viewOpts","totalRows","expectedKeys","parsedKeyAndDocId","parsedNum","parsedStr","arrayElement","objElement","parseIndexableString","onMapResultsReady","finalResults","shouldReduce","shouldGroup","groups","lvl","POSITIVE_INFINITY","last","groupKey","reduceTry","reduceView","allDocsRes","docIdsToDocs","fetchPromises","keyStart","keyEnd","queryViewInQueue","queryPromised","_query","customQuery","finalPromiseFactory","designDocName","coerceOptions","viewCleanup","_viewCleanup","customViewCleanup","docsToViews","viewsToStatus","ddocName","viewDBNames","statusIsGood","viewDBName","destroyPromises","localViewCleanup","createAbstractMapReduce","origMap","reduceFunString","builtIn","getBuiltIn","mapreduce","datastore","concurrencyCheck","unmountDatastore","draftDocuments","draftDocumentIndices","attachmentIndices","noticeIndices","imageCounts","isSyncing","currentlySelectedDocument","articleModificationTime","draftArticleModificationTime","attachmentModificationTime","indexModificationTime","noticesModificationTime","pendingAttachmentMap","revisionCount","revisionDate","util","replacedBy","docBody","images","replaces","_context$rootState$ar","draft","protocolGroup","rootState","keywords","modificationUserName","isCurrent","select","pickNotice","throughDate","localConcurrencyCheck","indexUrl","indices","_unused4","update","lastRevisionDoc","_unused5","_unused6","_unused7","attachmentsUrl","fileSize","lastThree","found","_unused8","creationTime","_unused9","_unused10","_unused11","noticesUrl","pouchDoc","_unused12","_unused13","_unused14","_unused15","articlesUrl","_publishedRev","_unused16","_unused17","_unused18","_unused19","_unused20","startLoadDocuments","changeStream","_changes$doc","_changes$doc2","_changes$doc3","_changes$doc4","_unused21","newAttachments","fileBlob","blobURL","URL","createObjectURL","dest","beginEditingIndexConfiguration","finishLoadingBlob","revokeObjectURL","users","startLoadingBlob","file","setMinRevisionDate","selectDocument","startTrackEvent","completeInitialLoad","beginSyncing","endSyncing","loadDocuments","draftDocs","imageDeltas","docWas","usageCount","noticeWas","fromTime","throughTime","indexDate","nowTime","changedImages","changed","documentHeadersLoading","leftRevisionLoading","leftRevisionPicked","rightRevisionLoading","rightRevisionPicked","revisionHeaders","loadedRevisions","errorState","fromRevision","uptoRevision","getUrl","_resp$data","docIndex","leftDocumentRevision","hand","updateFromRemote","maximumLeftRevision","minimumRightRevision","_resp$data2","clearState","startLoadDocument","startUpdateFromRemote","finishLoadHeaders","firstDocument","startPos","startPickRevision","finishLoadingRevisionBody","setError","modalOpen","currentImage","editing","largestSectionEver","hasChanged","isSaving","startSaving","cancelSaving","cloneDeep","startEditing","addSection","topMost","treeSections","largestWeight","deleteSection","parentSections","indexInParent","moveUp","weightWas","moveDown","ListModule","totalCount","currentPage","pageSize","loading","setCurrentPage","setPageSize","pagesize","editRole","permissions","reponse","Ajax","inlineTags","LineBreakReader","long","datifyVisibleContents","currentWord","lastWord","closed","bigraph","wordwas","commonWordsList","originalOp","finally","fullWordResults","partialWordMatches","maxFullMatches","maxFullPartials","canonicalSearch","isNewSearch","canonical","searchstring","endIsPartialWord","searchWords","endWord","endBigraph","partialWordResult","remaining","singleWordResults","bigramResults","bigramWueryResultsResults","documentGoodness","adjustedWeight","documentBodies","excerpts","documentNameFragments","matchScore","stepResults","setSearch","searchStep","startSearching","stopSearching","searchCompleted","sessionLoaded","application","tenant","sessionState","rolesData","roleData","loadUser","editUser","roles","password","mutations","account","imageView","notice","articleRevision","hasChangedOnline","addImageState","contentType","altText","addLinkState","linkText","editMetadataState","currentSelection","setModal","fileType","publish","documentNameWas","collectImages","setKeywords","setIsPublic","setDocumentName","setProtocolSection","setHierarchyWeight","setHierarchyParent","setImageAltText","setImageUrl","setImageSource","setImageContent","setLinkSource","setLinkUrl","setLinkLinkText","commitMetadata","resetModalState","setSelection","setContent","stopTrackEvent","noticesAreSame","immediate","setTitle","setColor","setFromDate","setThroughDate","selectNotice","_setup","web-app-layout","_this$$route$meta","defaultLayout","onPlayStoreChanged","onLayoutChanged","firstElementChild","VApp","tagIsBlacklisted","uriSafeAttribute","attrIsBlacklisted","tagIsSelfClosing","hasTabs","onValueChanged","cachedviewstate","visitHTML","renderstate","tabNodes","firstTabNodeIndex","injectNode","tabNode","newResults","tabContentsIndex","tabContents","partid","expansionId","readonly","lastWasHR","lastWasNakedH2","cl","setToVisit","previousIndex","insertionPoint","lastExpanderIndex","rawDocumentId","documentId","maxWidth","originalChildren","originalAttributes","onDocIdChanged","vs","RawMarkdownContents","visible","attachmentURL","load","attachmentStyle","ZoomableImage","availableHeight","clientHeight","clientFontSize","availableWidth","heightScale","imageNaturalHeight","widthScale","imageNaturalWidth","generatedWidth","generatedHeight","imageIdentifier","imageSized","generatedLeft","generatedTop","transform","scaleFactorToFit","translateX","translateY","onImageIdentifierChanged","rawFontSize","getComputedStyle","getPropertyValue","imageId","noop","imageLoaded","imgProxy","naturalHeight","naturalWidth","link-modal","image-modal","metadata-modal","notice-info-modal","self-settings-modal","accept-tos-modal","bottom","vertical","closeNotification","VSnackbar","O","chunkIds","priority","notFulfilled","fulfilled","getter","__esModule","definition","o","chunkId","u","miniCssF","needAttach","scripts","getElementsByTagName","charset","nc","setAttribute","onScriptComplete","onload","doneFns","head","Symbol","toStringTag","nmd","loadStylesheet","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","oldTag","linkTag","errorType","realHref","insertBefore","nextSibling","createStylesheet","installedCssChunks","143","miniCss","installedChunks","installedChunkData","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"mappings":"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","file":"js/app.d9a72b6b.js","sourcesContent":["// 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\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"sjem-js:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","\"use strict\"\r\nmodule.exports = (typeof window === 'object') ? window : (typeof self === 'object') ? self : void 0;\r\n","export const abp = window.abp || {};\r\n/* Application paths *****************************************/\r\n\r\n//Current application root path (including virtual directory if exists).\r\nabp.appPath = abp.appPath || '/';\r\nabp.pageLoadTime = new Date();\r\n\r\n//Converts given path to absolute path using abp.appPath variable.\r\nabp.toAbsAppPath = path => {\r\n if (path.indexOf('/') == 0) {\r\n path = path.substring(1);\r\n }\r\n\r\n return abp.appPath + path;\r\n};\r\n\r\n/* MULTITENANCY */\r\n\r\nabp.multiTenancy = abp.multiTenancy || {};\r\n\r\nabp.multiTenancy.isEnabled = false;\r\n\r\nabp.multiTenancy.sides = {\r\n TENANT: 1,\r\n HOST: 2,\r\n};\r\n\r\nabp.multiTenancy.tenantIdCookieName = 'Abp.TenantId';\r\n\r\nabp.multiTenancy.setTenantIdCookie = tenantId => {\r\n if (tenantId) {\r\n abp.utils.setCookieValue(\r\n abp.multiTenancy.tenantIdCookieName,\r\n tenantId.toString(),\r\n new Date(new Date().getTime() + 5 * 365 * 86400000), //5 years\r\n abp.appPath,\r\n abp.domain\r\n );\r\n } else {\r\n abp.utils.deleteCookie(abp.multiTenancy.tenantIdCookieName, abp.appPath);\r\n }\r\n};\r\n\r\nabp.multiTenancy.getTenantIdCookie = () => {\r\n const value = abp.utils.getCookieValue(abp.multiTenancy.tenantIdCookieName);\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return parseInt(value);\r\n};\r\n\r\n/* SESSION */\r\n\r\nabp.session = abp.session || {\r\n multiTenancySide: abp.multiTenancy.sides.HOST,\r\n};\r\n\r\nconst listeners = [];\r\n\r\nabp.sessionChanged = function sessionChanged(isLoggedIn) {\r\n for (const listener of listeners) {\r\n try {\r\n listener(isLoggedIn);\r\n } catch {}\r\n }\r\n};\r\nabp.onSessionChanged = function onSessionChanged(cb) {\r\n listeners.push(cb);\r\n};\r\n\r\n/* LOCALIZATION ***********************************************/\r\n//Implements Localization API that simplifies usage of localization scripts generated by Abp.\r\n\r\nabp.localization = abp.localization || {};\r\n\r\nabp.localization.languages = [];\r\n\r\nabp.localization.currentLanguage = {};\r\n\r\nabp.localization.sources = [];\r\n\r\nabp.localization.values = {};\r\n\r\nabp.localization.localize = (key, sourceName, ...copiedArguments) => {\r\n sourceName = sourceName || abp.localization.defaultSourceName;\r\n\r\n const source = abp.localization.values[sourceName];\r\n\r\n if (!source) {\r\n abp.log.warn('Could not find localization source: ' + sourceName);\r\n return key;\r\n }\r\n\r\n const value = source[key];\r\n if (value == undefined) {\r\n console.warn(`There was no translation for key ${key}`);\r\n return key;\r\n }\r\n\r\n return abp.utils.formatString(value, ...copiedArguments);\r\n};\r\n\r\nabp.localization.getSource = sourceName => {\r\n return (key, ...args) => {\r\n const copiedArguments = [key, ...args];\r\n copiedArguments.splice(1, 0, sourceName);\r\n return abp.localization.localize(...copiedArguments);\r\n };\r\n};\r\n\r\nabp.localization.isCurrentCulture = name => {\r\n return (\r\n abp.localization.currentCulture &&\r\n abp.localization.currentCulture.name &&\r\n abp.localization.currentCulture.name.indexOf(name) == 0\r\n );\r\n};\r\n\r\nabp.localization.defaultSourceName = undefined;\r\nabp.localization.abpWeb = abp.localization.getSource('AbpWeb');\r\n\r\n/* AUTHORIZATION **********************************************/\r\n//Implements Authorization API that simplifies usage of authorization scripts generated by Abp.\r\n\r\nabp.auth = abp.auth || {};\r\n\r\nabp.auth.allPermissions = abp.auth.allPermissions || {};\r\n\r\nabp.auth.grantedPermissions = abp.auth.grantedPermissions || {};\r\n\r\n//Deprecated. Use abp.auth.isGranted instead.\r\nabp.auth.hasPermission = (...args) => {\r\n return abp.auth.isGranted(...args);\r\n};\r\n\r\n//Deprecated. Use abp.auth.isAnyGranted instead.\r\nabp.auth.hasAnyOfPermissions = (...args) => {\r\n return abp.auth.isAnyGranted(...args);\r\n};\r\n\r\n//Deprecated. Use abp.auth.areAllGranted instead.\r\nabp.auth.hasAllOfPermissions = (...args) => {\r\n return abp.auth.areAllGranted(...args);\r\n};\r\n\r\nabp.auth.isGranted = permissionName => {\r\n return (\r\n abp.auth.allPermissions[permissionName] != undefined &&\r\n abp.auth.grantedPermissions[permissionName] != undefined\r\n );\r\n};\r\n\r\nabp.auth.isAnyGranted = (...args) => {\r\n if (args.length == 0) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < args.length; i++) {\r\n if (abp.auth.isGranted(args[i])) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nabp.auth.areAllGranted = (...args) => {\r\n if (args.length == 0) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < args.length; i++) {\r\n if (!abp.auth.isGranted(args[i])) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n};\r\n\r\nabp.auth.tokenCookieName = 'Abp.AuthToken';\r\n\r\nabp.auth.setToken = (authToken, expireDate) => {\r\n abp.utils.setCookieValue(\r\n abp.auth.tokenCookieName,\r\n authToken,\r\n expireDate,\r\n abp.appPath,\r\n abp.domain\r\n );\r\n};\r\n\r\nabp.auth.getToken = () => {\r\n return abp.utils.getCookieValue(abp.auth.tokenCookieName);\r\n};\r\n\r\nabp.auth.clearToken = () => {\r\n abp.auth.setToken();\r\n};\r\n\r\n/* FEATURE SYSTEM *********************************************/\r\n//Implements Features API that simplifies usage of feature scripts generated by Abp.\r\n\r\nabp.features = abp.features || {};\r\n\r\nabp.features.allFeatures = abp.features.allFeatures || {};\r\n\r\nabp.features.get = name => {\r\n return abp.features.allFeatures[name];\r\n};\r\n\r\nabp.features.getValue = name => {\r\n const feature = abp.features.get(name);\r\n if (feature == undefined) {\r\n return undefined;\r\n }\r\n\r\n return feature.value;\r\n};\r\n\r\nabp.features.isEnabled = name => {\r\n const value = abp.features.getValue(name);\r\n return value == 'true' || value == 'True';\r\n};\r\n\r\n/* SETTINGS **************************************************/\r\n//Implements Settings API that simplifies usage of setting scripts generated by Abp.\r\n\r\nabp.setting = abp.setting || {};\r\n\r\nabp.setting.values = abp.setting.values || {};\r\n\r\nabp.setting.get = name => {\r\n return abp.setting.values[name];\r\n};\r\n\r\nabp.setting.getBoolean = name => {\r\n const value = abp.setting.get(name);\r\n return value == 'true' || value == 'True';\r\n};\r\n\r\nabp.setting.getInt = name => {\r\n return parseInt(abp.setting.values[name]);\r\n};\r\n\r\n/* REALTIME NOTIFICATIONS ************************************/\r\n\r\nabp.notifications = abp.notifications || {};\r\n\r\nabp.notifications.severity = {\r\n INFO: 0,\r\n SUCCESS: 1,\r\n WARN: 2,\r\n ERROR: 3,\r\n FATAL: 4,\r\n};\r\n\r\nabp.notifications.userNotificationState = {\r\n UNREAD: 0,\r\n READ: 1,\r\n};\r\n\r\nabp.notifications.getUserNotificationStateAsString = userNotificationState => {\r\n switch (userNotificationState) {\r\n case abp.notifications.userNotificationState.READ:\r\n return 'READ';\r\n case abp.notifications.userNotificationState.UNREAD:\r\n return 'UNREAD';\r\n default:\r\n abp.log.warn(\r\n 'Unknown user notification state value: ' + userNotificationState\r\n );\r\n return '?';\r\n }\r\n};\r\n\r\nabp.notifications.getUiNotifyFuncBySeverity = severity => {\r\n switch (severity) {\r\n case abp.notifications.severity.SUCCESS:\r\n return abp.notify.success;\r\n case abp.notifications.severity.WARN:\r\n return abp.notify.warn;\r\n case abp.notifications.severity.ERROR:\r\n return abp.notify.error;\r\n case abp.notifications.severity.FATAL:\r\n return abp.notify.error;\r\n case abp.notifications.severity.INFO:\r\n default:\r\n return abp.notify.info;\r\n }\r\n};\r\n\r\nabp.notifications.messageFormatters = {};\r\n\r\nabp.notifications.messageFormatters[\r\n 'Abp.Notifications.MessageNotificationData'\r\n] = userNotification => {\r\n return (\r\n userNotification.notification.data.message ||\r\n userNotification.notification.data.properties.Message\r\n );\r\n};\r\n\r\nabp.notifications.messageFormatters[\r\n 'Abp.Notifications.LocalizableMessageNotificationData'\r\n] = userNotification => {\r\n const message =\r\n userNotification.notification.data.message ||\r\n userNotification.notification.data.properties.Message;\r\n const localizedMessage = abp.localization.localize(\r\n message.name,\r\n message.sourceName\r\n );\r\n\r\n if (userNotification.notification.data.properties) {\r\n const properties = Object.keys(\r\n userNotification.notification.data.properties\r\n );\r\n for (let i = 0; i < properties.length; i++) {\r\n localizedMessage = localizedMessage.replace(\r\n '{' + properties[i] + '}',\r\n userNotification.notification.data.properties[properties[i]]\r\n );\r\n }\r\n }\r\n\r\n return localizedMessage;\r\n};\r\n\r\nabp.notifications.getFormattedMessageFromUserNotification = userNotification => {\r\n const formatter =\r\n abp.notifications.messageFormatters[\r\n userNotification.notification.data.type\r\n ];\r\n if (!formatter) {\r\n abp.log.warn(\r\n 'No message formatter defined for given data type: ' +\r\n userNotification.notification.data.type\r\n );\r\n return '?';\r\n }\r\n\r\n if (!abp.utils.isFunction(formatter)) {\r\n abp.log.warn(\r\n 'Message formatter should be a function! It is invalid for data type: ' +\r\n userNotification.notification.data.type\r\n );\r\n return '?';\r\n }\r\n\r\n return formatter(userNotification);\r\n};\r\n\r\nabp.notifications.showUiNotifyForUserNotification = (\r\n userNotification,\r\n options\r\n) => {\r\n const message = abp.notifications.getFormattedMessageFromUserNotification(\r\n userNotification\r\n );\r\n const uiNotifyFunc = abp.notifications.getUiNotifyFuncBySeverity(\r\n userNotification.notification.severity\r\n );\r\n uiNotifyFunc(message, undefined, options);\r\n};\r\n\r\n/* LOGGING ***************************************************/\r\n//Implements Logging API that provides secure & controlled usage of console.log\r\n\r\nabp.log = abp.log || {};\r\n\r\nabp.log.levels = {\r\n DEBUG: 1,\r\n INFO: 2,\r\n WARN: 3,\r\n ERROR: 4,\r\n FATAL: 5,\r\n};\r\n\r\nabp.log.level = abp.log.levels.DEBUG;\r\n\r\nabp.log.log = (logObject, logLevel) => {\r\n if (!window.console || !window.console.log) {\r\n return;\r\n }\r\n\r\n if (logLevel != undefined && logLevel < abp.log.level) {\r\n return;\r\n }\r\n\r\n console.log(logObject);\r\n};\r\n\r\nabp.log.debug = logObject => {\r\n abp.log.log('DEBUG: ', abp.log.levels.DEBUG);\r\n abp.log.log(logObject, abp.log.levels.DEBUG);\r\n};\r\n\r\nabp.log.info = logObject => {\r\n abp.log.log('INFO: ', abp.log.levels.INFO);\r\n abp.log.log(logObject, abp.log.levels.INFO);\r\n};\r\n\r\nabp.log.warn = logObject => {\r\n abp.log.log('WARN: ', abp.log.levels.WARN);\r\n abp.log.log(logObject, abp.log.levels.WARN);\r\n};\r\n\r\nabp.log.error = logObject => {\r\n abp.log.log('ERROR: ', abp.log.levels.ERROR);\r\n abp.log.log(logObject, abp.log.levels.ERROR);\r\n};\r\n\r\nabp.log.fatal = logObject => {\r\n abp.log.log('FATAL: ', abp.log.levels.FATAL);\r\n abp.log.log(logObject, abp.log.levels.FATAL);\r\n};\r\n\r\n/* NOTIFICATION *********************************************/\r\n//Defines Notification API, not implements it\r\n\r\nabp.notify = abp.notify || {};\r\n\r\nabp.notify.success = (message, title, options) => {\r\n abp.log.warn('abp.notify.success is not implemented!');\r\n};\r\n\r\nabp.notify.info = (message, title, options) => {\r\n abp.log.warn('abp.notify.info is not implemented!');\r\n};\r\n\r\nabp.notify.warn = (message, title, options) => {\r\n abp.log.warn('abp.notify.warn is not implemented!');\r\n};\r\n\r\nabp.notify.error = (message, title, options) => {\r\n abp.log.warn('abp.notify.error is not implemented!');\r\n};\r\n\r\n/* MESSAGE **************************************************/\r\n//Defines Message API, not implements it\r\n\r\nabp.message = abp.message || {};\r\n\r\nconst showMessage = (message, title) => {\r\n alert((title || '') + ' ' + message);\r\n};\r\n\r\nabp.message.info = (message, title) => {\r\n abp.log.warn('abp.message.info is not implemented!');\r\n return showMessage(message, title);\r\n};\r\n\r\nabp.message.success = (message, title) => {\r\n abp.log.warn('abp.message.success is not implemented!');\r\n return showMessage(message, title);\r\n};\r\n\r\nabp.message.warn = (message, title) => {\r\n abp.log.warn('abp.message.warn is not implemented!');\r\n return showMessage(message, title);\r\n};\r\n\r\nabp.message.error = (message, title) => {\r\n abp.log.warn('abp.message.error is not implemented!');\r\n return showMessage(message, title);\r\n};\r\n\r\nabp.message.confirm = (message, titleOrCallback, callback) => {\r\n abp.log.warn('abp.message.confirm is not implemented!');\r\n\r\n if (titleOrCallback && !(typeof titleOrCallback == 'string')) {\r\n callback = titleOrCallback;\r\n }\r\n\r\n const result = confirm(message);\r\n callback && callback(result);\r\n};\r\n\r\n/* UI *******************************************************/\r\n\r\nabp.ui = abp.ui || {};\r\n\r\n/* UI BLOCK */\r\n//Defines UI Block API, not implements it\r\n\r\nabp.ui.block = elm => {\r\n abp.log.warn('abp.ui.block is not implemented!');\r\n};\r\n\r\nabp.ui.unblock = elm => {\r\n abp.log.warn('abp.ui.unblock is not implemented!');\r\n};\r\n\r\n/* UI BUSY */\r\n//Defines UI Busy API, not implements it\r\n\r\nabp.ui.setBusy = (elm, optionsOrPromise) => {\r\n abp.log.warn('abp.ui.setBusy is not implemented!');\r\n};\r\n\r\nabp.ui.clearBusy = elm => {\r\n abp.log.warn('abp.ui.clearBusy is not implemented!');\r\n};\r\n\r\n/* SIMPLE EVENT BUS *****************************************/\r\n\r\nabp.event = (() => {\r\n const _callbacks = {};\r\n\r\n // Public interface ///////////////////////////////////////////////////\r\n\r\n return {\r\n on(eventName, callback) {\r\n if (!_callbacks[eventName]) {\r\n _callbacks[eventName] = new Set();\r\n }\r\n\r\n _callbacks[eventName].add(callback);\r\n },\r\n off(eventName, callback) {\r\n const callbacks = _callbacks[eventName];\r\n if (!callbacks) {\r\n return;\r\n }\r\n\r\n callbacks.delete(callback);\r\n if (callbacks.size == 0) {\r\n delete _callbacks[eventName];\r\n }\r\n },\r\n trigger(eventName, ...args) {\r\n const callbacks = _callbacks[eventName];\r\n if (!callbacks) {\r\n return;\r\n }\r\n\r\n for (const callback of callbacks) {\r\n callback.apply(this, args);\r\n }\r\n },\r\n };\r\n})();\r\n\r\n/* UTILS ***************************************************/\r\n\r\nabp.utils = abp.utils || {};\r\n\r\n/* Creates a name namespace.\r\n * Example:\r\n * const taskService = abp.utils.createNamespace(abp, 'services.task');\r\n * taskService will be equal to abp.services.task\r\n * first argument (root) must be defined first\r\n ************************************************************/\r\nabp.utils.createNamespace = (root, ns) => {\r\n const parts = ns.split('.');\r\n for (let i = 0; i < parts.length; i++) {\r\n if (typeof root[parts[i]] == 'undefined') {\r\n root[parts[i]] = {};\r\n }\r\n\r\n root = root[parts[i]];\r\n }\r\n\r\n return root;\r\n};\r\n\r\n/* Find and replaces a string (search) to another string (replacement) in\r\n * given string (str).\r\n * Example:\r\n * abp.utils.replaceAll('This is a test string', 'is', 'X') = 'ThX X a test string'\r\n ************************************************************/\r\nabp.utils.replaceAll = (str, search, replacement) => {\r\n const fix = search.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n return str.replace(new RegExp(fix, 'g'), replacement);\r\n};\r\n\r\n/* Formats a string just like string.format in C#.\r\n * Example:\r\n * abp.utils.formatString('Hello {0}','Tuana') = 'Hello Tuana'\r\n ************************************************************/\r\nabp.utils.formatString = (str, ...args) => {\r\n if (typeof str === 'undefined') {\r\n return null;\r\n }\r\n\r\n for (let i = 0; i < args.length; i++) {\r\n const placeHolder = '{' + i + '}';\r\n str = abp.utils.replaceAll(str, placeHolder, args[i]);\r\n }\r\n\r\n return str;\r\n};\r\n\r\nabp.utils.toPascalCase = str => {\r\n if (!str || !str.length) {\r\n return str;\r\n }\r\n\r\n if (str.length === 1) {\r\n return str.charAt(0).toUpperCase();\r\n }\r\n\r\n return str.charAt(0).toUpperCase() + str.substr(1);\r\n};\r\n\r\nabp.utils.toCamelCase = str => {\r\n if (!str || !str.length) {\r\n return str;\r\n }\r\n\r\n if (str.length === 1) {\r\n return str.charAt(0).toLowerCase();\r\n }\r\n\r\n return str.charAt(0).toLowerCase() + str.substr(1);\r\n};\r\n\r\nabp.utils.truncateString = (str, maxLength) => {\r\n if (!str || !str.length || str.length <= maxLength) {\r\n return str;\r\n }\r\n\r\n return str.substr(0, maxLength);\r\n};\r\n\r\nabp.utils.truncateStringWithPostfix = (str, maxLength, postfix) => {\r\n postfix = postfix || '...';\r\n\r\n if (!str || !str.length || str.length <= maxLength) {\r\n return str;\r\n }\r\n\r\n if (maxLength <= postfix.length) {\r\n return postfix.substr(0, maxLength);\r\n }\r\n\r\n return str.substr(0, maxLength - postfix.length) + postfix;\r\n};\r\n\r\n/**\r\n * parameterInfos should be an array of { name, value } objects\r\n * where name is query string parameter name and value is it's value.\r\n * includeQuestionMark is true by default.\r\n */\r\nabp.utils.buildQueryString = (parameterInfos, includeQuestionMark) => {\r\n if (includeQuestionMark === undefined) {\r\n includeQuestionMark = true;\r\n }\r\n\r\n let qs = '';\r\n\r\n function addSeperator() {\r\n if (!qs.length) {\r\n if (includeQuestionMark) {\r\n qs = qs + '?';\r\n }\r\n } else {\r\n qs = qs + '&';\r\n }\r\n }\r\n\r\n for (let i = 0; i < parameterInfos.length; ++i) {\r\n const parameterInfo = parameterInfos[i];\r\n if (parameterInfo.value === undefined) {\r\n continue;\r\n }\r\n\r\n if (parameterInfo.value === null) {\r\n parameterInfo.value = '';\r\n }\r\n\r\n addSeperator();\r\n\r\n if (\r\n parameterInfo.value.toJSON &&\r\n typeof parameterInfo.value.toJSON === 'function'\r\n ) {\r\n qs =\r\n qs +\r\n parameterInfo.name +\r\n '=' +\r\n encodeURIComponent(parameterInfo.value.toJSON());\r\n } else if (\r\n Array.isArray(parameterInfo.value) &&\r\n parameterInfo.value.length\r\n ) {\r\n for (let j = 0; j < parameterInfo.value.length; j++) {\r\n if (j > 0) {\r\n addSeperator();\r\n }\r\n\r\n qs =\r\n qs +\r\n parameterInfo.name +\r\n '[' +\r\n j +\r\n ']=' +\r\n encodeURIComponent(parameterInfo.value[j]);\r\n }\r\n } else {\r\n qs =\r\n qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value);\r\n }\r\n }\r\n\r\n return qs;\r\n};\r\n\r\n/**\r\n * Sets a cookie value for given key.\r\n * This is a simple implementation created to be used by ABP.\r\n * Please use a complete cookie library if you need.\r\n * @param {string} key\r\n * @param {string} value\r\n * @param {Date} expireDate (optional). If not specified the cookie will expire at the end of session.\r\n * @param {string} path (optional)\r\n */\r\nabp.utils.setCookieValue = (key, value, expireDate, path, domain) => {\r\n let cookieValue = encodeURIComponent(key) + '=';\r\n\r\n if (value) {\r\n cookieValue = cookieValue + encodeURIComponent(value);\r\n }\r\n\r\n if (expireDate) {\r\n cookieValue = cookieValue + '; expires=' + expireDate.toUTCString();\r\n }\r\n\r\n if (path) {\r\n cookieValue = cookieValue + '; path=' + path;\r\n }\r\n\r\n if (domain) {\r\n cookieValue = cookieValue + '; domain=' + domain;\r\n }\r\n\r\n document.cookie = cookieValue;\r\n};\r\n\r\n/**\r\n * Gets a cookie with given key.\r\n * This is a simple implementation created to be used by ABP.\r\n * Please use a complete cookie library if you need.\r\n * @param {string} key\r\n * @returns {string} Cookie value or null\r\n */\r\nabp.utils.getCookieValue = key => {\r\n const equalities = document.cookie.split('; ');\r\n for (let i = 0; i < equalities.length; i++) {\r\n if (!equalities[i]) {\r\n continue;\r\n }\r\n\r\n const splitted = equalities[i].split('=');\r\n if (splitted.length != 2) {\r\n continue;\r\n }\r\n\r\n if (decodeURIComponent(splitted[0]) === key) {\r\n return decodeURIComponent(splitted[1] || '');\r\n }\r\n }\r\n\r\n return null;\r\n};\r\n\r\n/**\r\n * Deletes cookie for given key.\r\n * This is a simple implementation created to be used by ABP.\r\n * Please use a complete cookie library if you need.\r\n * @param {string} key\r\n * @param {string} path (optional)\r\n */\r\nabp.utils.deleteCookie = (key, path) => {\r\n let cookieValue = encodeURIComponent(key) + '=';\r\n\r\n cookieValue =\r\n cookieValue +\r\n '; expires=' +\r\n new Date(new Date().getTime() - 86400000).toUTCString();\r\n\r\n if (path) {\r\n cookieValue = cookieValue + '; path=' + path;\r\n }\r\n\r\n document.cookie = cookieValue;\r\n};\r\n\r\n/**\r\n * Gets the domain of given url\r\n * @param {string} url\r\n * @returns {string}\r\n */\r\nabp.utils.getDomain = url => {\r\n const domainRegex = /(https?:){0,1}\\/\\/((?:[\\w\\d-]+\\.)+[\\w\\d]{2,})/i;\r\n const matches = domainRegex.exec(url);\r\n return matches && matches[2] ? matches[2] : '';\r\n};\r\n\r\n/* TIMING *****************************************/\r\nabp.timing = abp.timing || {};\r\n\r\nabp.timing.utcClockProvider = (() => {\r\n const toUtc = date => {\r\n return Date.UTC(\r\n date.getUTCFullYear(),\r\n date.getUTCMonth(),\r\n date.getUTCDate(),\r\n date.getUTCHours(),\r\n date.getUTCMinutes(),\r\n date.getUTCSeconds(),\r\n date.getUTCMilliseconds()\r\n );\r\n };\r\n\r\n const now = () => {\r\n return new Date();\r\n };\r\n\r\n const normalize = date => {\r\n if (!date) {\r\n return date;\r\n }\r\n\r\n return new Date(toUtc(date));\r\n };\r\n\r\n // Public interface ///////////////////////////////////////////////////\r\n\r\n return {\r\n now: now,\r\n normalize: normalize,\r\n supportsMultipleTimezone: true,\r\n };\r\n})();\r\n\r\nabp.timing.localClockProvider = (() => {\r\n const toLocal = date => {\r\n return new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n date.getHours(),\r\n date.getMinutes(),\r\n date.getSeconds(),\r\n date.getMilliseconds()\r\n );\r\n };\r\n\r\n const now = () => {\r\n return toLocal(new Date());\r\n };\r\n\r\n const normalize = date => {\r\n if (!date) {\r\n return date;\r\n }\r\n\r\n return toLocal(date);\r\n };\r\n\r\n // Public interface ///////////////////////////////////////////////////\r\n\r\n return {\r\n now: now,\r\n normalize: normalize,\r\n supportsMultipleTimezone: false,\r\n };\r\n})();\r\n\r\nabp.timing.unspecifiedClockProvider = (() => {\r\n const now = () => {\r\n return new Date();\r\n };\r\n\r\n const normalize = date => {\r\n return date;\r\n };\r\n\r\n // Public interface ///////////////////////////////////////////////////\r\n\r\n return {\r\n now: now,\r\n normalize: normalize,\r\n supportsMultipleTimezone: false,\r\n };\r\n})();\r\n\r\nabp.timing.convertToUserTimezone = date => {\r\n const localTime = date.getTime();\r\n const utcTime = localTime + date.getTimezoneOffset() * 60000;\r\n const targetTime =\r\n parseInt(utcTime) +\r\n parseInt(abp.timing.timeZoneInfo.windows.currentUtcOffsetInMilliseconds);\r\n return new Date(targetTime);\r\n};\r\n\r\n/* CLOCK *****************************************/\r\nabp.clock = abp.clock || {};\r\n\r\nabp.clock.now = () => {\r\n if (abp.clock.provider) {\r\n return abp.clock.provider.now();\r\n }\r\n\r\n return new Date();\r\n};\r\n\r\nabp.clock.normalize = date => {\r\n if (abp.clock.provider) {\r\n return abp.clock.provider.normalize(date);\r\n }\r\n\r\n return date;\r\n};\r\n\r\nabp.clock.provider = abp.timing.unspecifiedClockProvider;\r\n\r\n/* SECURITY ***************************************/\r\nabp.security = abp.security || {};\r\nabp.security.antiForgery = abp.security.antiForgery || {};\r\n\r\nabp.security.antiForgery.tokenCookieName = 'XSRF-TOKEN';\r\nabp.security.antiForgery.tokenHeaderName = 'X-XSRF-TOKEN';\r\n\r\nabp.security.antiForgery.getToken = () => {\r\n return abp.utils.getCookieValue(abp.security.antiForgery.tokenCookieName);\r\n};\r\n\r\nabp.security.antiForgery.shouldSendToken = settings => {\r\n if (settings.crossDomain === undefined || settings.crossDomain === null) {\r\n return (\r\n abp.utils.getDomain(location.href) === abp.utils.getDomain(settings.url)\r\n );\r\n }\r\n\r\n return !settings.crossDomain;\r\n};\r\n","// Copyright Joyent, Inc. and other Node contributors.\r\n//\r\n// Permission is hereby granted, free of charge, to any person obtaining a\r\n// copy of this software and associated documentation files (the\r\n// \"Software\"), to deal in the Software without restriction, including\r\n// without limitation the rights to use, copy, modify, merge, publish,\r\n// distribute, sublicense, and/or sell copies of the Software, and to permit\r\n// persons to whom the Software is furnished to do so, subject to the\r\n// following conditions:\r\n//\r\n// The above copyright notice and this permission notice shall be included\r\n// in all copies or substantial portions of the Software.\r\n//\r\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\r\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\r\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\r\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\r\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n'use strict';\r\n\r\nvar R = typeof Reflect === 'object' ? Reflect : null;\r\nvar ReflectApply =\r\n R && typeof R.apply === 'function'\r\n ? R.apply\r\n : function ReflectApply(target, receiver, args) {\r\n return Function.prototype.apply.call(target, receiver, args);\r\n };\r\n\r\nvar ReflectOwnKeys;\r\nif (R && typeof R.ownKeys === 'function') {\r\n ReflectOwnKeys = R.ownKeys;\r\n} else if (Object.getOwnPropertySymbols) {\r\n ReflectOwnKeys = function ReflectOwnKeys(target) {\r\n return Object.getOwnPropertyNames(target).concat(\r\n Object.getOwnPropertySymbols(target)\r\n );\r\n };\r\n} else {\r\n ReflectOwnKeys = function ReflectOwnKeys(target) {\r\n return Object.getOwnPropertyNames(target);\r\n };\r\n}\r\n\r\nfunction ProcessEmitWarning(warning) {\r\n if (console && console.warn) console.warn(warning);\r\n}\r\n\r\nvar NumberIsNaN =\r\n Number.isNaN ||\r\n function NumberIsNaN(value) {\r\n return value !== value;\r\n };\r\n\r\nfunction EventEmitter() {\r\n EventEmitter.init.call(this);\r\n}\r\nmodule.exports = EventEmitter;\r\n\r\n// Backwards-compat with node 0.10.x\r\nEventEmitter.EventEmitter = EventEmitter;\r\n\r\nEventEmitter.prototype._events = undefined;\r\nEventEmitter.prototype._eventsCount = 0;\r\nEventEmitter.prototype._maxListeners = undefined;\r\n\r\n// By default EventEmitters will print a warning if more than 10 listeners are\r\n// added to it. This is a useful default which helps finding memory leaks.\r\nvar defaultMaxListeners = 10;\r\n\r\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\r\n enumerable: true,\r\n get: function () {\r\n return defaultMaxListeners;\r\n },\r\n set: function (arg) {\r\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\r\n throw new RangeError(\r\n 'The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' +\r\n arg +\r\n '.'\r\n );\r\n }\r\n defaultMaxListeners = arg;\r\n },\r\n});\r\n\r\nEventEmitter.init = function () {\r\n if (\r\n this._events === undefined ||\r\n this._events === Object.getPrototypeOf(this)._events\r\n ) {\r\n this._events = Object.create(null);\r\n this._eventsCount = 0;\r\n }\r\n\r\n this._maxListeners = this._maxListeners || undefined;\r\n};\r\n\r\n// Obviously not all Emitters should be limited to 10. This function allows\r\n// that to be increased. Set to zero for unlimited.\r\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\r\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\r\n throw new RangeError(\r\n 'The value of \"n\" is out of range. It must be a non-negative number. Received ' +\r\n n +\r\n '.'\r\n );\r\n }\r\n this._maxListeners = n;\r\n return this;\r\n};\r\n\r\nfunction $getMaxListeners(that) {\r\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\r\n return that._maxListeners;\r\n}\r\n\r\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\r\n return $getMaxListeners(this);\r\n};\r\n\r\nEventEmitter.prototype.emit = function emit(type) {\r\n var args = [];\r\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\r\n var doError = type === 'error';\r\n\r\n var events = this._events;\r\n if (events !== undefined) doError = doError && events.error === undefined;\r\n else if (!doError) return false;\r\n\r\n // If there is no 'error' event listener then throw.\r\n if (doError) {\r\n var er;\r\n if (args.length > 0) er = args[0];\r\n if (er instanceof Error) {\r\n // Note: The comments on the `throw` lines are intentional, they show\r\n // up in Node's output if this results in an unhandled exception.\r\n throw er; // Unhandled 'error' event\r\n }\r\n // At least give some kind of context to the user\r\n var err = new Error(\r\n 'Unhandled error.' + (er ? ' (' + er.message + ')' : '')\r\n );\r\n err.context = er;\r\n throw err; // Unhandled 'error' event\r\n }\r\n\r\n var handler = events[type];\r\n\r\n if (handler === undefined) return false;\r\n\r\n if (typeof handler === 'function') {\r\n ReflectApply(handler, this, args);\r\n } else {\r\n var len = handler.length;\r\n var listeners = arrayClone(handler, len);\r\n for (var i = 0; i < len; ++i) ReflectApply(listeners[i], this, args);\r\n }\r\n\r\n return true;\r\n};\r\n\r\nfunction _addListener(target, type, listener, prepend) {\r\n var m;\r\n var events;\r\n var existing;\r\n\r\n if (typeof listener !== 'function') {\r\n throw new TypeError(\r\n 'The \"listener\" argument must be of type Function. Received type ' +\r\n typeof listener\r\n );\r\n }\r\n\r\n events = target._events;\r\n if (events === undefined) {\r\n events = target._events = Object.create(null);\r\n target._eventsCount = 0;\r\n } else {\r\n // To avoid recursion in the case that type === \"newListener\"! Before\r\n // adding it to the listeners, first emit \"newListener\".\r\n if (events.newListener !== undefined) {\r\n target.emit(\r\n 'newListener',\r\n type,\r\n listener.listener ? listener.listener : listener\r\n );\r\n\r\n // Re-assign `events` because a newListener handler could have caused the\r\n // this._events to be assigned to a new object\r\n events = target._events;\r\n }\r\n existing = events[type];\r\n }\r\n\r\n if (existing === undefined) {\r\n // Optimize the case of one listener. Don't need the extra array object.\r\n existing = events[type] = listener;\r\n ++target._eventsCount;\r\n } else {\r\n if (typeof existing === 'function') {\r\n // Adding the second element, need to change to array.\r\n existing = events[type] = prepend\r\n ? [listener, existing]\r\n : [existing, listener];\r\n // If we've already got an array, just append.\r\n } else if (prepend) {\r\n existing.unshift(listener);\r\n } else {\r\n existing.push(listener);\r\n }\r\n\r\n // Check for listener leak\r\n m = $getMaxListeners(target);\r\n if (m > 0 && existing.length > m && !existing.warned) {\r\n existing.warned = true;\r\n // No error code for this since it is a Warning\r\n // eslint-disable-next-line no-restricted-syntax\r\n var w = new Error(\r\n 'Possible EventEmitter memory leak detected. ' +\r\n existing.length +\r\n ' ' +\r\n String(type) +\r\n ' listeners ' +\r\n 'added. Use emitter.setMaxListeners() to ' +\r\n 'increase limit'\r\n );\r\n w.name = 'MaxListenersExceededWarning';\r\n w.emitter = target;\r\n w.type = type;\r\n w.count = existing.length;\r\n ProcessEmitWarning(w);\r\n }\r\n }\r\n\r\n return target;\r\n}\r\n\r\nEventEmitter.prototype.addListener = function addListener(type, listener) {\r\n return _addListener(this, type, listener, false);\r\n};\r\n\r\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\r\n\r\nEventEmitter.prototype.prependListener = function prependListener(\r\n type,\r\n listener\r\n) {\r\n return _addListener(this, type, listener, true);\r\n};\r\n\r\nfunction onceWrapper() {\r\n var args = [];\r\n for (var i = 0; i < arguments.length; i++) args.push(arguments[i]);\r\n if (!this.fired) {\r\n this.target.removeListener(this.type, this.wrapFn);\r\n this.fired = true;\r\n ReflectApply(this.listener, this.target, args);\r\n }\r\n}\r\n\r\nfunction _onceWrap(target, type, listener) {\r\n var state = {\r\n fired: false,\r\n wrapFn: undefined,\r\n target: target,\r\n type: type,\r\n listener: listener,\r\n };\r\n var wrapped = onceWrapper.bind(state);\r\n wrapped.listener = listener;\r\n state.wrapFn = wrapped;\r\n return wrapped;\r\n}\r\n\r\nEventEmitter.prototype.once = function once(type, listener) {\r\n if (typeof listener !== 'function') {\r\n throw new TypeError(\r\n 'The \"listener\" argument must be of type Function. Received type ' +\r\n typeof listener\r\n );\r\n }\r\n this.on(type, _onceWrap(this, type, listener));\r\n return this;\r\n};\r\n\r\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(\r\n type,\r\n listener\r\n) {\r\n if (typeof listener !== 'function') {\r\n throw new TypeError(\r\n 'The \"listener\" argument must be of type Function. Received type ' +\r\n typeof listener\r\n );\r\n }\r\n this.prependListener(type, _onceWrap(this, type, listener));\r\n return this;\r\n};\r\n\r\n// Emits a 'removeListener' event if and only if the listener was removed.\r\nEventEmitter.prototype.removeListener = function removeListener(\r\n type,\r\n listener\r\n) {\r\n var list, events, position, i, originalListener;\r\n\r\n if (typeof listener !== 'function') {\r\n throw new TypeError(\r\n 'The \"listener\" argument must be of type Function. Received type ' +\r\n typeof listener\r\n );\r\n }\r\n\r\n events = this._events;\r\n if (events === undefined) return this;\r\n\r\n list = events[type];\r\n if (list === undefined) return this;\r\n\r\n if (list === listener || list.listener === listener) {\r\n if (--this._eventsCount === 0) this._events = Object.create(null);\r\n else {\r\n delete events[type];\r\n if (events.removeListener)\r\n this.emit('removeListener', type, list.listener || listener);\r\n }\r\n } else if (typeof list !== 'function') {\r\n position = -1;\r\n\r\n for (i = list.length - 1; i >= 0; i--) {\r\n if (list[i] === listener || list[i].listener === listener) {\r\n originalListener = list[i].listener;\r\n position = i;\r\n break;\r\n }\r\n }\r\n\r\n if (position < 0) return this;\r\n\r\n if (position === 0) list.shift();\r\n else {\r\n spliceOne(list, position);\r\n }\r\n\r\n if (list.length === 1) events[type] = list[0];\r\n\r\n if (events.removeListener !== undefined)\r\n this.emit('removeListener', type, originalListener || listener);\r\n }\r\n\r\n return this;\r\n};\r\n\r\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\r\n\r\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\r\n var listeners, events, i;\r\n\r\n events = this._events;\r\n if (events === undefined) return this;\r\n\r\n // not listening for removeListener, no need to emit\r\n if (events.removeListener === undefined) {\r\n if (arguments.length === 0) {\r\n this._events = Object.create(null);\r\n this._eventsCount = 0;\r\n } else if (events[type] !== undefined) {\r\n if (--this._eventsCount === 0) this._events = Object.create(null);\r\n else delete events[type];\r\n }\r\n return this;\r\n }\r\n\r\n // emit removeListener for all listeners on all events\r\n if (arguments.length === 0) {\r\n var keys = Object.keys(events);\r\n var key;\r\n for (i = 0; i < keys.length; ++i) {\r\n key = keys[i];\r\n if (key === 'removeListener') continue;\r\n this.removeAllListeners(key);\r\n }\r\n this.removeAllListeners('removeListener');\r\n this._events = Object.create(null);\r\n this._eventsCount = 0;\r\n return this;\r\n }\r\n\r\n listeners = events[type];\r\n\r\n if (typeof listeners === 'function') {\r\n this.removeListener(type, listeners);\r\n } else if (listeners !== undefined) {\r\n // LIFO order\r\n for (i = listeners.length - 1; i >= 0; i--) {\r\n this.removeListener(type, listeners[i]);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\nfunction _listeners(target, type, unwrap) {\r\n var events = target._events;\r\n\r\n if (events === undefined) return [];\r\n\r\n var evlistener = events[type];\r\n if (evlistener === undefined) return [];\r\n\r\n if (typeof evlistener === 'function')\r\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\r\n\r\n return unwrap\r\n ? unwrapListeners(evlistener)\r\n : arrayClone(evlistener, evlistener.length);\r\n}\r\n\r\nEventEmitter.prototype.listeners = function listeners(type) {\r\n return _listeners(this, type, true);\r\n};\r\n\r\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\r\n return _listeners(this, type, false);\r\n};\r\n\r\nEventEmitter.listenerCount = function (emitter, type) {\r\n if (typeof emitter.listenerCount === 'function') {\r\n return emitter.listenerCount(type);\r\n } else {\r\n return listenerCount.call(emitter, type);\r\n }\r\n};\r\n\r\nEventEmitter.prototype.listenerCount = listenerCount;\r\nfunction listenerCount(type) {\r\n var events = this._events;\r\n\r\n if (events !== undefined) {\r\n var evlistener = events[type];\r\n\r\n if (typeof evlistener === 'function') {\r\n return 1;\r\n } else if (evlistener !== undefined) {\r\n return evlistener.length;\r\n }\r\n }\r\n\r\n return 0;\r\n}\r\n\r\nEventEmitter.prototype.eventNames = function eventNames() {\r\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\r\n};\r\n\r\nfunction arrayClone(arr, n) {\r\n var copy = new Array(n);\r\n for (var i = 0; i < n; ++i) copy[i] = arr[i];\r\n return copy;\r\n}\r\n\r\nfunction spliceOne(list, index) {\r\n for (; index + 1 < list.length; index++) list[index] = list[index + 1];\r\n list.pop();\r\n}\r\n\r\nfunction unwrapListeners(arr) {\r\n var ret = new Array(arr.length);\r\n for (var i = 0; i < ret.length; ++i) {\r\n ret[i] = arr[i].listener || arr[i];\r\n }\r\n return ret;\r\n}\r\n","import type { ComponentOptions } from 'vue';\r\nimport type VueBasic from 'vue/types/index';\r\nimport type {\r\n CreateElement,\r\n VNode,\r\n VNodeChildrenArrayContents,\r\n VNodeData,\r\n} from 'vue/types/index';\r\nimport {\r\n VCard,\r\n VCardText,\r\n VExpansionPanel,\r\n VExpansionPanelContent,\r\n VExpansionPanelHeader,\r\n VExpansionPanels,\r\n VIcon,\r\n VImg,\r\n VSkeletonLoader,\r\n VTab,\r\n VTabItem,\r\n VTabs,\r\n VTabsItems,\r\n} from 'vuetify/lib';\r\nimport { Ripple, Touch } from 'vuetify/lib/directives';\r\nimport type { Store } from 'vuex';\r\nimport type { SimpleVElement, SimpleVNodeList } from '../lib/marked/marked';\r\nimport type { RootState } from '../store';\r\nimport type { ArticleListState } from '../store/modules/article-list';\r\n\r\nfunction renderBlockLevelToken(\r\n h: CreateElement,\r\n nodes: SimpleVNodeList,\r\n host: RawContentViewer,\r\n attachments: string[],\r\n cachedAttachments: { [key: string]: { url: string } },\r\n docId: string\r\n): VNodeChildrenArrayContents {\r\n const results: VNodeChildrenArrayContents = [];\r\n for (const node of nodes) {\r\n if (typeof node === 'string') {\r\n results.push(node);\r\n continue;\r\n }\r\n const tag = node.tag.toLowerCase();\r\n const children = renderBlockLevelToken(\r\n h,\r\n node.children,\r\n host,\r\n attachments,\r\n cachedAttachments,\r\n docId\r\n );\r\n const options: VNodeData & { attrs: { [key: string]: any } } = {\r\n attrs: {},\r\n directives: [],\r\n staticClass: '',\r\n on: {},\r\n props: {},\r\n };\r\n\r\n const attributes = {\r\n ...node.attributes,\r\n };\r\n const { props } = node;\r\n\r\n if (tag == 'v-card') {\r\n options.attrs['flat'] = 'flat' in attributes;\r\n delete attributes['flat'];\r\n }\r\n if (tag == 'v-expansion-panels') {\r\n options.attrs['flat'] = 'flat' in attributes;\r\n options.attrs['focusible'] = 'focusible' in attributes;\r\n options.attrs['multiple'] = 'multiple' in attributes;\r\n options.attrs['accordion'] = 'accordion' in attributes;\r\n delete attributes['flat'];\r\n delete attributes['focusible'];\r\n delete attributes['multiple'];\r\n delete attributes['accordion'];\r\n }\r\n\r\n if (tag == 'v-expansion-panel') {\r\n options.attrs['flat'] = 'flat' in attributes;\r\n options.attrs['focusible'] = 'focusible' in attributes;\r\n options.attrs['multiple'] = 'multiple' in attributes;\r\n delete attributes['flat'];\r\n delete attributes['focusible'];\r\n delete attributes['multiple'];\r\n }\r\n\r\n if (tag == 'router-link') {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n options.attrs['to'] = JSON.parse(attributes['to']);\r\n delete attributes['to'];\r\n }\r\n\r\n if (tag == 'v-tabs-ex') {\r\n options.attrs['margin-left'] = Number(attributes['margin-left']);\r\n options.attrs['margin-right'] = Number(attributes['margin-right']);\r\n const tabs = node.children.filter(\r\n t => typeof t === 'object' && t.tag == 'v-tab'\r\n ).length;\r\n options.attrs['value'] =\r\n node.props &&\r\n 'value' in node.props &&\r\n typeof node.props.value === 'number'\r\n ? node.props.value\r\n : tabs > 1\r\n ? 1\r\n : 0;\r\n options.key = docId;\r\n delete attributes['margin-left'];\r\n delete attributes['margin-right'];\r\n }\r\n\r\n if (tag == 'v-img' && attributes['original-src']) {\r\n attributes['src'] =\r\n cachedAttachments[attributes['original-src']]?.url || '';\r\n attachments.push(attributes['original-src']);\r\n options.on!['click'] = (e: MouseEvent) =>\r\n host.$store.commit({\r\n type: 'imageView/openModal',\r\n payload: (e.currentTarget as HTMLElement).getAttribute(\r\n 'original-src'\r\n )!,\r\n });\r\n options.directives!.push({ name: 'Ripple' });\r\n }\r\n if (tag == 'v-img') {\r\n options.on!['error'] = (e: string) => {\r\n host.onImgError(e);\r\n };\r\n }\r\n if (tag == 'v-expansion-panels') {\r\n options.on!['change'] = (v: number[]) => {\r\n host.onExpanderChanged(v, node.children);\r\n };\r\n }\r\n if (tag == 'v-tabs-ex') {\r\n options.on!['change'] = (v: number | number[]) => {\r\n if (Array.isArray(v)) {\r\n v = v[0];\r\n }\r\n\r\n host.onTabChanged(\r\n v,\r\n node.children.filter((_, index) => index % 2 == 0)\r\n );\r\n };\r\n }\r\n if ('v-touch' in attributes) {\r\n delete attributes['v-touch'];\r\n }\r\n for (const attr in attributes) {\r\n if (attr.toLowerCase() == 'class') {\r\n options.staticClass = attributes[attr];\r\n continue;\r\n }\r\n options.attrs[attr] = attributes[attr];\r\n }\r\n if (props) {\r\n for (const [k, v] of Object.entries(props)) {\r\n options.props = options.props || {};\r\n if (typeof v === 'undefined') {\r\n continue;\r\n }\r\n options.props[k] = v;\r\n }\r\n }\r\n results.push(h(tag, options, children));\r\n }\r\n return results;\r\n}\r\ninterface RawContentViewer {\r\n content: SimpleVNodeList;\r\n attachmentMap: { [key: string]: { url: string } };\r\n docid: string;\r\n $store: Store;\r\n\r\n onImgError(url: string): void;\r\n onExpanderChanged(number: number[], children: SimpleVNodeList): void;\r\n onTabChanged(number: number, children: SimpleVNodeList): void;\r\n goBack(): void;\r\n goForward(): void;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nconst RawContentViewer: ComponentOptions = {\r\n props: {\r\n content: {\r\n type: Array,\r\n },\r\n docid: {\r\n type: String,\r\n },\r\n },\r\n components: {\r\n VImg,\r\n VTab,\r\n VExpansionPanels,\r\n VExpansionPanel,\r\n VExpansionPanelHeader,\r\n VExpansionPanelContent,\r\n VTabs,\r\n VTabItem,\r\n VCard,\r\n VCardText,\r\n VIcon,\r\n VSkeletonLoader,\r\n VTabsItems,\r\n },\r\n directives: {\r\n Ripple,\r\n Touch,\r\n },\r\n computed: {\r\n attachmentMap(this: VueBasic) {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\r\n return (this.$store.state.articleList as ArticleListState).attachmentMap;\r\n },\r\n },\r\n methods: {\r\n onImgError(url: string) {\r\n console.error(`URL ${url} could not be loaded`);\r\n },\r\n\r\n onExpanderChanged(number: number[], children: SimpleVNodeList): void {\r\n const openChildren = number\r\n .map(i => (children.length > i ? children[i] : null))\r\n .filter(\r\n (n): n is SimpleVElement => !!n && typeof n !== 'string'\r\n )\r\n .map(n => n.attributes['partid']);\r\n const closedChildren = children\r\n .map((n, ix) => (number.includes(ix) ? null : n))\r\n .filter(\r\n (n): n is SimpleVElement => !!n && typeof n !== 'string'\r\n )\r\n .map(n => n.attributes['partid']);\r\n const expanders: { [partid: string]: boolean } = {};\r\n for (const openChild of openChildren) {\r\n const partId = openChild.substring(0, openChild.length - 7);\r\n expanders[partId] = true;\r\n }\r\n for (const closedChild of closedChildren) {\r\n const partId = closedChild.substring(0, closedChild.length - 7);\r\n expanders[partId] = false;\r\n }\r\n this.$emit('viewstatechanged', { expanders });\r\n },\r\n\r\n onTabChanged(number: number, children: SimpleVNodeList): void {\r\n const tabId = children[number];\r\n if (typeof tabId === 'string' || typeof tabId === 'undefined') {\r\n return;\r\n }\r\n const tabPart = tabId.attributes['partid'];\r\n this.$emit('viewstatechanged', {\r\n tab: tabPart.substring(0, tabPart.length - 5),\r\n });\r\n },\r\n\r\n goBack(): void {\r\n this.$router.back();\r\n },\r\n\r\n goForward(): void {\r\n this.$router.forward();\r\n },\r\n },\r\n render(this: RawContentViewer, h: CreateElement): VNode {\r\n const attachments: string[] = [];\r\n const children: VNode[] = renderBlockLevelToken(\r\n h,\r\n this.content,\r\n this,\r\n attachments,\r\n this.attachmentMap,\r\n this.docid\r\n ) as VNode[];\r\n void this.$store.dispatch({\r\n type: 'articleList/blobifyAttachments',\r\n payload: { pending: attachments, user: 'markdown-viewer' },\r\n });\r\n return h(\r\n 'div',\r\n {\r\n attrs: {\r\n role: 'document',\r\n 'aria-label': 'main',\r\n },\r\n },\r\n children\r\n );\r\n },\r\n};\r\n\r\nexport default RawContentViewer;\r\n","let reload = false;\r\nexport function reloadWhenRouteChanged(): void {\r\n reload = true;\r\n}\r\n\r\nexport function shouldReloadWhenRouteChanged(): boolean {\r\n return reload;\r\n}\r\n","import { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport { forceLoadAllChunks } from './router/force-load';\r\nimport { reloadWhenRouteChanged } from './router/reload-when-route-changes';\r\n\r\nwindow.process = window.process || {};\r\nconst env = window.process.env || {};\r\nwindow.process.env = env;\r\n\r\nenv['NODE_ENV'] = env['NODE_ENV'] || 'development';\r\nenv['VERSION'] = env['VERSION'] || '00000000.0';\r\n\r\nif (!('requestIdleCallback' in window)) {\r\n (window as any)!.requestIdleCallback = function (fn: () => void) {\r\n window.setTimeout(fn, 0);\r\n };\r\n}\r\n\r\n// Register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// function windowHasAlreadyLoaded() {\r\n// if ('getEntriesByType' in window.performance) {\r\n// const navData = window.performance.getEntriesByType('navigation');\r\n// return (\r\n// navData.length &&\r\n// (navData[0] as PerformanceNavigationTiming).loadEventEnd > 0\r\n// );\r\n// }\r\n// return !!(window.performance as any).timing.loadEventEnd;\r\n// }\r\n\r\ninterface HookFunctions {\r\n registered?: (registration: ServiceWorkerRegistration) => void;\r\n updated?: (registration: ServiceWorkerRegistration) => void;\r\n updatefound?: (registration: ServiceWorkerRegistration) => void;\r\n cached?: (registration: ServiceWorkerRegistration) => void;\r\n error?: (error: any) => void;\r\n registrationOptions?: RegistrationOptions;\r\n}\r\n\r\ninterface EmitFunction {\r\n (\r\n event: 'registered' | 'updated' | 'updatefound' | 'cached',\r\n registration: ServiceWorkerRegistration\r\n ): void;\r\n (event: 'error', error: any): void;\r\n}\r\n\r\n// function onLoadedOrImmediate(cb: () => void) {\r\n// if (windowHasAlreadyLoaded()) {\r\n// cb();\r\n// return;\r\n// }\r\n// window.addEventListener('load', cb);\r\n// }\r\n\r\nfunction register(swUrl: string, hooks: HookFunctions) {\r\n if (hooks === void 0) hooks = {};\r\n\r\n const registrationOptions = hooks.registrationOptions || {};\r\n delete hooks.registrationOptions;\r\n\r\n const emit: EmitFunction = (\r\n hook: 'registered' | 'updated' | 'updatefound' | 'cached' | 'error',\r\n registration: any\r\n ) => {\r\n const hookFn = hooks[hook];\r\n if (hookFn) {\r\n hookFn(registration);\r\n }\r\n };\r\n\r\n if ('serviceWorker' in navigator) {\r\n registerValidSW(swUrl, emit, registrationOptions);\r\n }\r\n}\r\n\r\nasync function registerValidSW(\r\n swUrl: string,\r\n emit: EmitFunction,\r\n registrationOptions?: RegistrationOptions\r\n) {\r\n try {\r\n const registration = await navigator.serviceWorker.register(\r\n swUrl,\r\n registrationOptions\r\n );\r\n emit('registered', registration);\r\n function handleInstalling(registration: ServiceWorkerRegistration) {\r\n emit('updatefound', registration);\r\n const installingWorker = registration.installing;\r\n if (installingWorker) {\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n emit('updated', registration);\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n emit('cached', registration);\r\n }\r\n }\r\n };\r\n }\r\n }\r\n if (registration.waiting) {\r\n handleInstalling(registration);\r\n }\r\n registration.onupdatefound = () => {\r\n handleInstalling(registration);\r\n };\r\n } catch (err) {\r\n emit('error', err);\r\n }\r\n}\r\n\r\nfunction swapStyleSheets(modules: boolean) {\r\n const isIOSWKWebView = navigator.userAgent.includes('iOSWKWebView');\r\n if (isIOSWKWebView) {\r\n document.body.style.overflow = 'hidden';\r\n document.body.style.height = null!;\r\n document.body.classList.add('iosshell');\r\n }\r\n const app = document.getElementById('app')!;\r\n app.style.opacity = '0';\r\n app.style.transition = 'opacity 200ms linear';\r\n const stylesheets = document.querySelectorAll('link');\r\n const finishLoading = () => {\r\n app.style.opacity = '1';\r\n window.setTimeout(() => {\r\n app.style.opacity = null!;\r\n app.style.transition = null!;\r\n }, 10_000);\r\n };\r\n window.requestAnimationFrame(() => {\r\n window.requestAnimationFrame(() => {\r\n finishLoading();\r\n });\r\n });\r\n for (let i = 0; i < stylesheets.length; i++) {\r\n if (stylesheets[i].rel != 'stylesheet') {\r\n continue;\r\n }\r\n const isNomodules = stylesheets[i].href.endsWith('.es5.css');\r\n if ((isNomodules && !modules) || (!isNomodules && modules)) {\r\n stylesheets[i].media = 'all';\r\n }\r\n }\r\n document.getElementById('scrim')?.remove();\r\n}\r\n\r\nexport const appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: 'bec52d17-bb8a-48fe-bb9c-5998280ad49b',\r\n enableCorsCorrelation: true,\r\n enableAutoRouteTracking: false,\r\n maxMessageLimit: 50,\r\n isBeaconApiDisabled: false,\r\n },\r\n});\r\n\r\nexport default function init() {\r\n swapStyleSheets(true);\r\n appInsights.loadAppInsights();\r\n appInsights.trackPageView({\r\n properties: {\r\n spaVersion: process.env.VERSION || '00000000.0',\r\n },\r\n });\r\n\r\n window.addEventListener('unhandledrejection', ev => {\r\n appInsights.trackException({\r\n exception: ev.reason,\r\n });\r\n });\r\n window.addEventListener('error', ev => {\r\n appInsights.trackException({\r\n exception: ev.error,\r\n });\r\n });\r\n if (process.env.NODE_ENV === 'production' && location.protocol == 'https:') {\r\n window.setTimeout(() => {\r\n (window as any).requestIdleCallback(async () => {\r\n register('/service-worker.js', {\r\n registrationOptions: {\r\n scope: '/',\r\n },\r\n cached() {\r\n console.log('Content has been cached for offline use.');\r\n },\r\n async updatefound(worker) {\r\n console.log(\r\n 'Server content has changed. Preparing for the switch.'\r\n );\r\n await forceLoadAllChunks();\r\n console.log(\r\n 'Loading expired content into window in preparation of the service worker changeover.'\r\n );\r\n // if there are any other clients, give them time to catch up...\r\n window.setTimeout(() => {\r\n if (worker.waiting) {\r\n worker.waiting.postMessage({\r\n type: 'SKIP_WAITING',\r\n });\r\n reloadWhenRouteChanged();\r\n }\r\n }, 15000);\r\n },\r\n async updated() {\r\n console.log(\r\n 'New service worker ready. Are we ready for the new service worker?'\r\n );\r\n await forceLoadAllChunks();\r\n reloadWhenRouteChanged();\r\n },\r\n\r\n error(error) {\r\n console.error('Error during service worker registration:', error);\r\n },\r\n });\r\n });\r\n }, 4000);\r\n } else {\r\n window.setTimeout(() => {\r\n void forceLoadAllChunks();\r\n }, 4000);\r\n }\r\n}\r\n\r\nconst url =\r\n process.env.NODE_ENV === 'production' ? '' : 'http://localhost:21021/';\r\n\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport const APP_CONSTS = {\r\n userManagement: {\r\n defaultAdminUserName: 'webmaster@inspironix.com',\r\n },\r\n localization: {\r\n defaultLocalizationSourceName: 'SJEM',\r\n },\r\n authorization: {\r\n encrptedAuthTokenName: 'enc_auth_token',\r\n },\r\n appBaseUrl: url,\r\n remoteServiceBaseUrl: url,\r\n};\r\n","import { Vue } from 'vue-property-decorator';\r\nimport { Store } from 'vuex';\r\nimport { APP_CONSTS } from '../init';\r\nimport { RootState } from '../store';\r\nimport { abp } from './abp';\r\nexport interface TypedStore extends Vue {\r\n $store: Store;\r\n}\r\n\r\nexport default class AbpBase extends Vue implements TypedStore {\r\n shortTime(value: string): string {\r\n const m = new Date(value);\r\n if (Number.isNaN(m.valueOf()) || m.valueOf() < 0) {\r\n return '';\r\n }\r\n return new Intl.DateTimeFormat([], {\r\n day: 'numeric',\r\n month: 'numeric',\r\n year: 'numeric',\r\n hour: 'numeric',\r\n minute: '2-digit',\r\n })\r\n .formatToParts(m)\r\n .map(v => v.value)\r\n .join('');\r\n }\r\n\r\n moment(value: string): string {\r\n const sourceDate = Date.parse(value);\r\n if (Number.isNaN(sourceDate) || sourceDate < 0) {\r\n return '';\r\n }\r\n const duration = Date.now() - sourceDate;\r\n const suffix = duration < 0 ? 'from now' : 'ago';\r\n const normalizedDuration = duration < 0 ? duration * -1 : duration;\r\n const secondsDuration = 1_000;\r\n const secondsCutoff = 45_000;\r\n const minuteDuration = 60_000;\r\n const minutesCutoff = 45 * 60_000;\r\n const hoursDuration = 60 * 60_000;\r\n const hoursCutoff = 18 * 60 * 60_000;\r\n const daysDuration = 24 * 60 * 60_000;\r\n const daysCutoff = 25 * 24 * 60 * 60_000;\r\n const monthDuration = 30.4 * 24 * 60 * 60_000;\r\n const monthsCutoff = 304 * 24 * 60 * 60_000;\r\n const yearDuration = 365 * 24 * 60 * 60_000;\r\n let { unit, factor } =\r\n normalizedDuration < secondsCutoff\r\n ? { unit: 'second', factor: secondsDuration }\r\n : normalizedDuration < minutesCutoff\r\n ? { unit: 'minute', factor: minuteDuration }\r\n : normalizedDuration < hoursCutoff\r\n ? { unit: 'hour', factor: hoursDuration }\r\n : normalizedDuration < daysCutoff\r\n ? { unit: 'day', factor: daysDuration }\r\n : normalizedDuration < monthsCutoff\r\n ? { unit: 'month', factor: monthDuration }\r\n : { unit: 'year', factor: yearDuration };\r\n let unitedDuration: string | number = (normalizedDuration / factor) | 0;\r\n if (unitedDuration < 1) {\r\n unitedDuration = unit == 'hour' ? 'About an' : 'About a';\r\n } else if (unitedDuration == 1) {\r\n unitedDuration = unit == 'hour' ? 'An' : 'A';\r\n } else if (unitedDuration < 4) {\r\n unitedDuration = 'A few';\r\n unit = unit + 's';\r\n } else {\r\n unitedDuration = `${unitedDuration}`;\r\n unit = unit + 's';\r\n }\r\n return `${unitedDuration} ${unit} ${suffix}`;\r\n }\r\n\r\n L(value: string, source?: string, ...argus: string[]): string {\r\n if (source) {\r\n return abp.localization.localize(value, source, ...argus);\r\n } else {\r\n return abp.localization.localize(\r\n value,\r\n APP_CONSTS.localization.defaultLocalizationSourceName,\r\n ...argus\r\n );\r\n }\r\n }\r\n hasPermission(permissionName: string) {\r\n return abp.auth.isGranted(permissionName);\r\n }\r\n hasAnyOfPermissions(...argus: string[]) {\r\n return abp.auth.isAnyGranted(...argus);\r\n }\r\n hasAllOfPermissions(...argus: string[]) {\r\n return abp.auth.areAllGranted(...argus);\r\n }\r\n $store!: Store;\r\n}\r\n","import axios from 'axios';\r\nimport type { Store } from 'vuex';\r\nimport { APP_CONSTS } from '../init';\r\nimport type { RootState } from '../store';\r\nimport type { Notification } from '../store/modules/app';\r\nimport { abp } from './abp';\r\nconst ajax = axios.create({\r\n baseURL: APP_CONSTS.remoteServiceBaseUrl,\r\n timeout: 30000,\r\n});\r\najax.interceptors.request.use(\r\n function (config) {\r\n if (!!abp.auth.getToken()) {\r\n config.headers.common['Authorization'] = 'Bearer ' + abp.auth.getToken();\r\n }\r\n config.headers.common['.AspNetCore.Culture'] = abp.utils.getCookieValue(\r\n 'Abp.Localization.CultureName'\r\n );\r\n config.headers.common[\r\n 'Abp.TenantId'\r\n ] = abp.multiTenancy.getTenantIdCookie();\r\n return config;\r\n },\r\n function (error) {\r\n return Promise.reject(error);\r\n }\r\n);\r\najax.interceptors.response.use(\r\n response => {\r\n return response;\r\n },\r\n error => {\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n const store = ((window as unknown) as Record)[\r\n '__store__'\r\n ] as Store;\r\n // This error is modal and it should be presented to the user.\r\n if (error.config.url.includes('/api/services/app/User/EnableTOTP')) {\r\n return Promise.reject(error);\r\n }\r\n if (error.config.url.includes('/api/services/app/User/ValidateTOTP')) {\r\n return Promise.reject(error);\r\n }\r\n if (error.config.url.includes('/api/services/app/User/RescueUser')) {\r\n return Promise.reject(error);\r\n }\r\n if (\r\n !!error.response &&\r\n !!error.response.data.error &&\r\n !!error.response.data.error.message &&\r\n error.response.data.error.details\r\n ) {\r\n const payload: Notification = {\r\n message: error.response.data.error.message,\r\n details: error.response.data.error.details,\r\n severity: 'warning',\r\n duration: 15_000,\r\n tag: 'Connectivity',\r\n };\r\n store.dispatch(\r\n {\r\n type: 'app/notify',\r\n payload,\r\n },\r\n { root: true }\r\n );\r\n } else if (\r\n !!error.response &&\r\n !!error.response.data.error &&\r\n !!error.response.data.error.message\r\n ) {\r\n const payload: Notification = {\r\n message: 'CouldNotCompleteLoginOperation',\r\n details: error.response.data.error.message,\r\n severity: 'warning',\r\n duration: 15_000,\r\n tag: 'Connectivity',\r\n };\r\n store.dispatch(\r\n {\r\n type: 'app/notify',\r\n payload,\r\n },\r\n { root: true }\r\n );\r\n } else if (!error.response) {\r\n if (error.config && error.config.url) {\r\n // these happen every 30 seconds...\r\n if (error.config.url.includes('/api/services/app/Document/GetAll')) {\r\n return Promise.reject(error);\r\n }\r\n if (error.config.url.includes('/api/services/app/Attachment/GetAll')) {\r\n return Promise.reject(error);\r\n }\r\n if (\r\n error.config.url.includes(\r\n '/api/services/app/IndexConfigurationService/GetAll'\r\n )\r\n ) {\r\n return Promise.reject(error);\r\n }\r\n if (error.config.url.includes('/api/services/app/Notice/GetAll')) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n const payload: Notification = {\r\n message: 'ConnectivityError',\r\n severity: 'warning',\r\n duration: 15_000,\r\n tag: 'Connectivity',\r\n };\r\n store.dispatch(\r\n {\r\n type: 'app/notify',\r\n payload,\r\n },\r\n { root: true }\r\n );\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\nexport default ajax;\r\n","const chunkSize = 6 * 1024;\r\n\r\nexport function base64Encode(buffer: Uint8Array): string {\r\n let result = '';\r\n const rawBufferStart = buffer.byteOffset;\r\n const rawBufferEnd = buffer.byteLength + rawBufferStart;\r\n for (let i = rawBufferStart; i < rawBufferEnd; i += chunkSize) {\r\n const thisChunkSize =\r\n rawBufferEnd < i + chunkSize ? rawBufferEnd - i : chunkSize;\r\n const chunk = new Uint8Array(buffer.buffer, i, thisChunkSize);\r\n result += btoa(\r\n String.fromCharCode.apply(String, (chunk as any) as Array)\r\n );\r\n }\r\n return result;\r\n}\r\n\r\nexport function base64Decode(content: string): Uint8Array {\r\n const contents = atob(content);\r\n const rawBuffer = new Uint8Array(contents.length);\r\n for (let i = 0; i < contents.length; i++) {\r\n rawBuffer[i] = contents.charCodeAt(i);\r\n }\r\n return rawBuffer;\r\n}\r\n","export interface EditorSelection {\r\n fromLine: number;\r\n fromCol: number;\r\n toLine: number;\r\n toCol: number;\r\n}\r\n\r\nexport function getSelectionContents(\r\n editorSelection: EditorSelection,\r\n content: string\r\n): { prefix: string; suffix: string; selection: string } {\r\n const lines = content.split('\\n');\r\n const linesPrefix = lines.slice(0, editorSelection.fromLine - 1).join('\\n');\r\n const linesSuffix = lines.slice(editorSelection.toLine).join('\\n');\r\n const spanPrefix = lines[editorSelection.fromLine - 1].slice(\r\n 0,\r\n editorSelection.fromCol - 1\r\n );\r\n const spanSuffix = lines[editorSelection.toLine - 1].slice(\r\n editorSelection.toCol - 1\r\n );\r\n let selection: string;\r\n if (editorSelection.fromLine == editorSelection.toLine) {\r\n selection = lines[editorSelection.fromLine - 1].slice(\r\n editorSelection.fromCol - 1,\r\n editorSelection.toCol - 1\r\n );\r\n } else {\r\n const selectionFirstLine = lines[editorSelection.fromLine - 1].slice(\r\n editorSelection.fromCol - 1\r\n );\r\n const selectionLastLine = lines[editorSelection.toLine - 1].slice(\r\n 0,\r\n editorSelection.toCol - 1\r\n );\r\n const additionalSelectionLines = lines.slice(\r\n editorSelection.fromLine,\r\n editorSelection.toLine - 1\r\n );\r\n selection =\r\n selectionFirstLine +\r\n '\\n' +\r\n (additionalSelectionLines.length\r\n ? additionalSelectionLines.join('\\n') + '\\n'\r\n : '') +\r\n selectionLastLine;\r\n }\r\n const prefix =\r\n editorSelection.fromLine == 1\r\n ? spanPrefix\r\n : linesPrefix + '\\n' + spanPrefix;\r\n const suffix =\r\n editorSelection.toLine == lines.length\r\n ? spanSuffix\r\n : spanSuffix + '\\n' + linesSuffix;\r\n return { selection, prefix, suffix };\r\n}\r\n\r\nexport function modifySelection(\r\n start: string,\r\n end: string,\r\n defaultContent: string,\r\n selection: EditorSelection,\r\n content: string,\r\n endMatcher?: string | RegExp\r\n): { output: string; selection: EditorSelection } {\r\n if (typeof endMatcher === 'undefined') {\r\n endMatcher = end;\r\n }\r\n const { prefix, suffix, selection: selected } = getSelectionContents(\r\n selection,\r\n content\r\n );\r\n let selectedSpan = selected;\r\n\r\n const suffixMatches = (suffix: string): false | number => {\r\n if (typeof endMatcher === 'string') {\r\n return suffix.startsWith(endMatcher) && endMatcher.length;\r\n }\r\n const result = endMatcher!.exec(suffix);\r\n if (!result) {\r\n return false;\r\n }\r\n return result.index == 0 && result[0].length;\r\n };\r\n\r\n const suffixLength = suffixMatches(suffix);\r\n let remove = prefix.endsWith(start) && typeof suffixLength != 'boolean';\r\n\r\n // let spanIsEmpty = !selectedSpan;\r\n selectedSpan = selectedSpan || defaultContent;\r\n const output = remove\r\n ? prefix.substring(0, prefix.length - start.length) +\r\n selectedSpan +\r\n suffix.substring(suffixLength || 0)\r\n : prefix + start + selectedSpan + end + suffix;\r\n selection = {\r\n ...selection,\r\n fromCol: selection.fromCol + (remove ? -1 * start.length : start.length),\r\n toCol:\r\n selection.fromLine == selection.toLine\r\n ? selection.toCol + (remove ? -1 * start.length : start.length)\r\n : selection.toCol,\r\n };\r\n return { output, selection };\r\n}\r\n\r\nexport function modifyLine(\r\n linePrefix: string | ((ix: number) => string),\r\n defaultContent: string,\r\n selection: EditorSelection,\r\n content: string,\r\n one?: boolean\r\n): { output: string; selection: EditorSelection } {\r\n const lines = content.split('\\n');\r\n if (one) {\r\n selection = {\r\n ...selection,\r\n toLine: selection.fromLine,\r\n toCol:\r\n selection.toLine > selection.fromLine\r\n ? lines[selection.fromLine - 1].length\r\n : selection.toCol,\r\n };\r\n }\r\n if (typeof linePrefix == 'string') {\r\n const linePrefixRoot = linePrefix;\r\n linePrefix = (_ix: number) => linePrefixRoot;\r\n }\r\n const linePrefixFn = linePrefix;\r\n const linesPrefix = lines.slice(0, selection.fromLine - 1).join('\\n');\r\n const linesSuffix = lines.slice(selection.toLine).join('\\n');\r\n const relevantLines = lines.slice(selection.fromLine - 1, selection.toLine);\r\n const remove = relevantLines.every((l, ix) => l.startsWith(linePrefixFn(ix)));\r\n const isBlank = relevantLines.join('') == '';\r\n const adjustedLines = relevantLines.map((l, ix) =>\r\n remove ? l.substring(linePrefixFn(ix).length) : linePrefixFn(ix) + l\r\n );\r\n if (isBlank) {\r\n adjustedLines[0] += defaultContent;\r\n }\r\n const output =\r\n linesPrefix +\r\n (selection.fromLine == 1 ? '' : '\\n') +\r\n adjustedLines.join('\\n') +\r\n (selection.toLine == lines.length ? '' : '\\n') +\r\n linesSuffix;\r\n const toCol = isBlank ? defaultContent.length + 1 : selection.toCol;\r\n const fromCol = isBlank ? 1 : selection.fromCol;\r\n const toLine = isBlank ? selection.fromLine : selection.toLine;\r\n const lastLine = toLine - selection.fromLine;\r\n const firstLineLength = linePrefixFn(0).length;\r\n const lastLineLength = linePrefixFn(lastLine).length;\r\n selection = {\r\n ...selection,\r\n toLine: isBlank ? selection.fromLine : selection.toLine,\r\n toCol: remove ? toCol - firstLineLength : toCol + firstLineLength,\r\n fromCol: remove ? fromCol - lastLineLength : fromCol + lastLineLength,\r\n };\r\n return { output, selection };\r\n}\r\n","export type Sortable = boolean | string | number;\r\n\r\nexport interface InsertIntoSorted {\r\n <\r\n T extends {},\r\n K extends keyof T,\r\n V extends Sortable & T[K] = T[K] & Sortable\r\n >(\r\n docs: T[],\r\n doc: T,\r\n key: K\r\n ): void;\r\n (\r\n docs: T[],\r\n doc: T,\r\n keyFunc: (v: T) => V\r\n ): void;\r\n (docs: T[], doc: T, keyFunc: (a: T, b: T) => number): void;\r\n}\r\n\r\nfunction getGreatestPowerOfTwoLessThanOrEqualTo(n: number) {\r\n n |= n >> 1;\r\n n |= n >> 2;\r\n n |= n >> 4;\r\n n |= n >> 8;\r\n n |= n >> 16;\r\n n = n + 1;\r\n return n >> 1;\r\n}\r\n\r\nexport function compareSortables(a: V, b: V) {\r\n if (typeof a === 'boolean' && typeof b !== 'boolean') {\r\n return -1;\r\n }\r\n if (typeof b === 'boolean' && typeof a !== 'boolean') {\r\n return 1;\r\n }\r\n if (typeof a === 'boolean') {\r\n return a < b ? -1 : a > b ? 1 : 0;\r\n }\r\n if (typeof a === 'number' && typeof b === 'string') {\r\n return -1;\r\n }\r\n if (typeof a === 'string' && typeof b === 'number') {\r\n return 1;\r\n }\r\n if (typeof a === 'string' && typeof b === 'string') {\r\n return a < b ? -1 : a > b ? 1 : 0;\r\n }\r\n return a < b ? -1 : a > b ? 1 : 0;\r\n}\r\n\r\nexport function compareArrays(a: V[], b: V[]) {\r\n const minLength = a.length < b.length ? a.length : b.length;\r\n for (let i = 0; i < minLength; i++) {\r\n let r;\r\n if ((r = compareSortables(a[i], b[i])) != 0) {\r\n return r;\r\n }\r\n }\r\n return a.length < b.length ? -1 : a.length > b.length ? 1 : 0;\r\n}\r\n\r\nfunction rawBinarySearch(\r\n docs: S[],\r\n insertion: D,\r\n convert: (i: S) => D,\r\n comparison: (a: D, b: D) => number,\r\n mode: 'before' | 'after'\r\n): { index: number; match: 'exact' | 'before' | 'after' | 'never' } {\r\n if (docs.length == 0) {\r\n return { index: -1, match: 'never' };\r\n }\r\n let lockedDigit = 0;\r\n let smallestIndexGreaterThan = -1;\r\n let largestIndexLessThan = -1;\r\n let currentSearch = getGreatestPowerOfTwoLessThanOrEqualTo(docs.length - 1);\r\n let raggedEnd = true;\r\n while (currentSearch > 0) {\r\n const sampleToTest = lockedDigit + currentSearch;\r\n const testedKey = convert(docs[sampleToTest]);\r\n const comparisonResult = comparison(testedKey, insertion);\r\n if (comparisonResult == 0) {\r\n return {\r\n index: sampleToTest,\r\n match: 'exact',\r\n };\r\n }\r\n if (comparisonResult < 0) {\r\n largestIndexLessThan = sampleToTest;\r\n lockedDigit = sampleToTest;\r\n if (raggedEnd) {\r\n currentSearch = getGreatestPowerOfTwoLessThanOrEqualTo(\r\n docs.length - lockedDigit - 1\r\n );\r\n } else {\r\n currentSearch = currentSearch >> 1;\r\n }\r\n } else {\r\n smallestIndexGreaterThan = sampleToTest;\r\n currentSearch = currentSearch >> 1;\r\n raggedEnd = false;\r\n }\r\n }\r\n\r\n if (smallestIndexGreaterThan != largestIndexLessThan + 1) {\r\n const testedKey = convert(docs[lockedDigit]);\r\n const comparisonResult = comparison(testedKey, insertion);\r\n if (comparisonResult == 0) {\r\n return {\r\n index: lockedDigit,\r\n match: 'exact',\r\n };\r\n }\r\n if (comparisonResult < 0) {\r\n largestIndexLessThan = lockedDigit;\r\n } else {\r\n smallestIndexGreaterThan = lockedDigit;\r\n }\r\n }\r\n if (mode == 'before' && largestIndexLessThan == -1) {\r\n return { index: -1, match: 'never' };\r\n }\r\n if (mode == 'before') {\r\n return { index: largestIndexLessThan, match: 'before' };\r\n }\r\n if (smallestIndexGreaterThan == -1) {\r\n return { index: -1, match: 'never' };\r\n }\r\n return { index: smallestIndexGreaterThan, match: 'after' };\r\n}\r\n\r\nexport interface BinarySearch {\r\n <\r\n T extends {},\r\n K extends keyof T,\r\n V extends Sortable & T[K] = T[K] & Sortable\r\n >(\r\n docs: T[],\r\n doc: V,\r\n key: K,\r\n mode: 'before' | 'after'\r\n ): { index: number; match: 'exact' | 'before' | 'after' | 'never' };\r\n (\r\n docs: T[],\r\n doc: V,\r\n keyFunc: (v: T) => V,\r\n mode: 'before' | 'after'\r\n ): { index: number; match: 'exact' | 'before' | 'after' | 'never' };\r\n (\r\n docs: T[],\r\n doc: T,\r\n keyFunc: (a: T, b: T) => number,\r\n mode: 'before' | 'after'\r\n ): { index: number; match: 'exact' | 'before' | 'after' | 'never' };\r\n (\r\n docs: T[],\r\n doc: D,\r\n extractFunction: (i: T) => D,\r\n keyFunc: (a: D, b: D) => number,\r\n mode: 'before' | 'after'\r\n ): { index: number; match: 'exact' | 'before' | 'after' | 'never' };\r\n}\r\n\r\nexport const binarySearch: BinarySearch = (<\r\n T,\r\n D,\r\n K extends keyof T,\r\n V extends Sortable & T[K] = T[K] & Sortable\r\n>(\r\n docs: T[],\r\n doc: D | T | V,\r\n extractKeyOrFunc:\r\n | string\r\n | ((v: T) => Sortable)\r\n | ((a: T, b: T) => number)\r\n | ((v: T) => D),\r\n keyFuncOrMode: ((a: D, b: D) => number) | 'before' | 'after',\r\n modeOpt: 'before' | 'after' | undefined\r\n): { index: number; match: 'exact' | 'before' | 'after' | 'never' } => {\r\n const mode: 'before' | 'after' = modeOpt || (keyFuncOrMode as any);\r\n let extractFn: (i: T) => D =\r\n modeOpt === undefined ? v => v : (extractKeyOrFunc as any);\r\n let keyOrFunc = modeOpt === undefined ? extractKeyOrFunc : keyFuncOrMode;\r\n if (typeof keyOrFunc === 'string') {\r\n const key = keyOrFunc;\r\n keyOrFunc = (a: D, b: D) => {\r\n return compareSortables((a as any) as Sortable, (b as any) as Sortable);\r\n };\r\n extractFn = (doc: T) => {\r\n return (doc[key as keyof T] as any) as D;\r\n };\r\n } else if (keyOrFunc.length == 1) {\r\n const keyFunc = keyOrFunc as (v: T) => Sortable;\r\n keyOrFunc = (a: T, b: T) => {\r\n const sortA = keyFunc(a);\r\n const sortB = keyFunc(b);\r\n return compareSortables(sortA, sortB);\r\n };\r\n }\r\n const comparison: (a: D, b: D) => number = keyOrFunc as any;\r\n return rawBinarySearch(docs, doc as D, extractFn, comparison, mode);\r\n}) as BinarySearch;\r\n\r\nconst insertIntoSorted: InsertIntoSorted = (\r\n docs: T[],\r\n doc: T,\r\n keyOrFunc: string | ((v: T) => Sortable) | ((a: T, b: T) => number)\r\n) => {\r\n if (typeof keyOrFunc === 'string') {\r\n const key = keyOrFunc;\r\n keyOrFunc = (doc: T) => {\r\n return (doc[key as keyof T] as any) as Sortable;\r\n };\r\n }\r\n if (keyOrFunc.length == 1) {\r\n const keyFunc = keyOrFunc as (v: T) => Sortable;\r\n keyOrFunc = (a: T, b: T) => {\r\n const sortA = keyFunc(a);\r\n const sortB = keyFunc(b);\r\n return compareSortables(sortA, sortB);\r\n };\r\n }\r\n const keyFunc = keyOrFunc as (a: T, b: T) => number;\r\n const { index, match } = rawBinarySearch(docs, doc, v => v, keyFunc, 'after');\r\n if (match == 'exact') {\r\n docs.splice(index, 1, doc);\r\n return;\r\n }\r\n if (match == 'never') {\r\n docs.push(doc);\r\n } else {\r\n docs.splice(index, 0, doc);\r\n }\r\n};\r\n\r\nexport default insertIntoSorted;\r\n","import { defaults, Options } from './defaults';\r\nimport { cleanUrl, escape } from './helpers';\r\nimport { ISlugger } from './Slugger';\r\nimport { ITextRenderer } from './TextRenderer';\r\n\r\nexport interface BlockRenderer extends ITextRenderer {\r\n setOptions(options: Options): void;\r\n code(code: string, infostring?: string, escaped?: boolean): Out;\r\n blockquote(quote: Out): Out;\r\n html(html: string, long: boolean): Out;\r\n heading(text: Out, level: number, raw: string, slugger: ISlugger): Out;\r\n list(\r\n body: Out,\r\n ordered: boolean,\r\n start: number | null,\r\n orderstyle: 'numeric' | 'roman' | 'lowercase' | 'uppercase' | undefined\r\n ): Out;\r\n listitem(text: Out, taskitem: boolean, checked?: boolean): Out;\r\n paragraph(text: Out): Out;\r\n tablecell(\r\n text: Out,\r\n flags: { header: boolean; align: 'left' | 'right' | 'center' | null }\r\n ): Out;\r\n tablerow(text: Out): Out;\r\n table(header: Out, body?: Out): Out;\r\n hr(): Out;\r\n checkbox(checked: boolean): Out;\r\n styleNextElement(\r\n classes?: string[],\r\n attributes?: [string, string][],\r\n id?: string\r\n ): void;\r\n}\r\n\r\n/**\r\n * Renderer\r\n */\r\nexport default class Renderer\r\n implements BlockRenderer, ITextRenderer {\r\n classes: string[] = [];\r\n attributes: [string, string][] = [];\r\n id: string | undefined;\r\n\r\n ofText(text: string, encode?: boolean | undefined): string {\r\n return escape(text, encode);\r\n }\r\n start(): string {\r\n return '';\r\n }\r\n cat(a: string, b: string): string {\r\n return a + b;\r\n }\r\n\r\n private options: Options;\r\n constructor(options?: Partial>) {\r\n this.options = {\r\n ...defaults,\r\n ...(options || {}),\r\n };\r\n }\r\n\r\n setOptions(options: Options) {\r\n this.options = options;\r\n }\r\n\r\n code(code: string, infostring?: string, escaped?: boolean) {\r\n const lang = (infostring || '').match(/\\S*/)![0];\r\n if (this.options.highlight) {\r\n const out = this.options.highlight(code, lang);\r\n if (out != null && out !== code) {\r\n escaped = true;\r\n code = out;\r\n }\r\n }\r\n\r\n if (lang) {\r\n this.classes.push(this.options.langPrefix + lang);\r\n }\r\n return (\r\n '
' +\r\n      (escaped ? code : escape(code, true)) +\r\n      '
'\r\n );\r\n }\r\n\r\n blockquote(quote: string) {\r\n return (\r\n '
' + quote + '
'\r\n );\r\n }\r\n\r\n html(html: string) {\r\n return html;\r\n }\r\n\r\n heading(text: string, level: number, raw: string, slugger: ISlugger) {\r\n if (this.options.headerIds) {\r\n if (!this.id) {\r\n this.id = this.options.headerPrefix + slugger.slug(raw);\r\n }\r\n }\r\n // ignore IDs\r\n return (\r\n '' +\r\n text +\r\n ''\r\n );\r\n }\r\n\r\n hr() {\r\n return this.options.xhtml\r\n ? '
'\r\n : '
';\r\n }\r\n\r\n list(\r\n body: string,\r\n ordered: boolean,\r\n start: number | null,\r\n orderstyle: 'numeric' | 'roman' | 'lowercase' | 'uppercase' | undefined\r\n ) {\r\n const type = ordered ? 'ol' : 'ul',\r\n startatt = ordered && Number(start) !== 1 ? ' start=\"' + start + '\"' : '';\r\n return (\r\n '<' +\r\n type +\r\n startatt +\r\n ' ' +\r\n this.renderAttributes() +\r\n (orderstyle ? ' olstyle=\"' + orderstyle + '\" ' : '') +\r\n '>' +\r\n body +\r\n ''\r\n );\r\n }\r\n\r\n listitem(text: string) {\r\n return '
  • ' + text + '
  • ';\r\n }\r\n\r\n checkbox(checked: boolean) {\r\n return (\r\n ' '\r\n );\r\n }\r\n\r\n paragraph(text: string) {\r\n return '

    ' + text + '

    ';\r\n }\r\n\r\n table(header: string, body?: string) {\r\n if (body) body = '' + body + '';\r\n\r\n return (\r\n '' +\r\n '' +\r\n header +\r\n '' +\r\n body +\r\n '
    '\r\n );\r\n }\r\n\r\n tablerow(content: string) {\r\n return '' + content + '';\r\n }\r\n\r\n tablecell(\r\n content: string,\r\n flags: { header: boolean; align: 'left' | 'right' | 'center' | null }\r\n ) {\r\n const type = flags.header ? 'th' : 'td';\r\n const tag = flags.align\r\n ? '<' + type + ' align=\"' + flags.align + '\">'\r\n : '<' + type + '>';\r\n return tag + content + '';\r\n }\r\n\r\n // span level renderer\r\n strong(text: string) {\r\n return '' + text + '';\r\n }\r\n\r\n em(text: string) {\r\n return '' + text + '';\r\n }\r\n sub(text: string) {\r\n return '' + text + '';\r\n }\r\n sup(text: string) {\r\n return '' + text + '';\r\n }\r\n marked(text: string) {\r\n return '' + text + '';\r\n }\r\n\r\n codespan(text: string) {\r\n return '' + text + '';\r\n }\r\n\r\n br() {\r\n return this.options.xhtml ? '
    ' : '
    ';\r\n }\r\n\r\n del(text: string) {\r\n return '' + text + '';\r\n }\r\n\r\n link(href: string, title: string | null, text: string) {\r\n const href2 = cleanUrl(\r\n !!this.options.sanitizer,\r\n this.options.baseUrl || '',\r\n href\r\n );\r\n if (href2 === null) {\r\n return text;\r\n }\r\n let out = '';\r\n return out;\r\n }\r\n\r\n image(\r\n href: string,\r\n title: string | null,\r\n text: string,\r\n width: number | undefined,\r\n height: number | undefined\r\n ) {\r\n const href2 = cleanUrl(\r\n !!this.options.sanitizer,\r\n this.options.baseUrl || '',\r\n href\r\n );\r\n if (href2 === null) {\r\n return text;\r\n }\r\n\r\n let out = '\"'' : '>';\r\n return out;\r\n }\r\n\r\n text(text: string) {\r\n return text;\r\n }\r\n styleNextElement(\r\n classes?: string[],\r\n attributes?: [string, string][],\r\n id?: string\r\n ) {\r\n this.classes = classes || [];\r\n this.attributes = attributes || [];\r\n this.id = id;\r\n }\r\n renderAttributes() {\r\n if (this.classes.length) {\r\n this.attributes.unshift(['class', this.classes.join(' ')]);\r\n }\r\n if (this.id) {\r\n this.attributes.push(['id', this.id]);\r\n }\r\n const foundSoFar = new Set();\r\n for (let i = this.attributes.length - 1; i >= 0; i--) {\r\n if (foundSoFar.has(this.attributes[i][0])) {\r\n this.attributes.splice(i, 1);\r\n } else {\r\n foundSoFar.add(this.attributes[i][0]);\r\n }\r\n }\r\n const result = this.attributes\r\n .map(v => `${v[0]}=\"${escape(v[1])}\"`)\r\n .join(' ');\r\n this.attributes = [];\r\n this.classes = [];\r\n this.id = undefined;\r\n return result;\r\n }\r\n}\r\n\r\nexport class NullRenderer implements BlockRenderer {\r\n setOptions(): void {\r\n //\r\n }\r\n code(): null {\r\n return null;\r\n }\r\n blockquote(): null {\r\n return null;\r\n }\r\n html(): null {\r\n return null;\r\n }\r\n heading(): null {\r\n return null;\r\n }\r\n list(): null {\r\n return null;\r\n }\r\n listitem(): null {\r\n return null;\r\n }\r\n paragraph(): null {\r\n return null;\r\n }\r\n tablecell(): null {\r\n return null;\r\n }\r\n tablerow(): null {\r\n return null;\r\n }\r\n table(): null {\r\n return null;\r\n }\r\n hr(): null {\r\n return null;\r\n }\r\n checkbox(): null {\r\n return null;\r\n }\r\n strong(): null {\r\n return null;\r\n }\r\n em(): null {\r\n return null;\r\n }\r\n codespan(): null {\r\n return null;\r\n }\r\n del(): null {\r\n return null;\r\n }\r\n text(): null {\r\n return null;\r\n }\r\n link(): null {\r\n return null;\r\n }\r\n image(): null {\r\n return null;\r\n }\r\n br(): null {\r\n return null;\r\n }\r\n ofText(): null {\r\n return null;\r\n }\r\n start(): null {\r\n return null;\r\n }\r\n cat(): null {\r\n return null;\r\n }\r\n sub() {\r\n return null;\r\n }\r\n sup() {\r\n return null;\r\n }\r\n marked() {\r\n return null;\r\n }\r\n styleNextElement() {}\r\n}\r\n","import { BlockRenderer } from './Renderer';\r\n\r\nexport interface HighlightFunction {\r\n (code: string, lang: string): Out;\r\n (\r\n code: string,\r\n lang: string | undefined,\r\n cb: (err: any, result: Out) => void\r\n ): void;\r\n}\r\n\r\nexport interface Options {\r\n type: 'gfm' | 'pedantic' | 'normal' | 'breaks';\r\n baseUrl: string | null;\r\n headerIds: boolean;\r\n headerPrefix: string;\r\n highlight?: HighlightFunction;\r\n langPrefix: string;\r\n mangle: boolean;\r\n sanitizer?: (input: string) => string;\r\n silent: boolean;\r\n smartLists: boolean;\r\n smartypants: boolean;\r\n xhtml: boolean;\r\n renderer?: BlockRenderer;\r\n}\r\n\r\nexport function getDefaults(): Options {\r\n return {\r\n type: 'gfm',\r\n baseUrl: null,\r\n headerIds: true,\r\n headerPrefix: '',\r\n langPrefix: 'language-',\r\n mangle: true,\r\n silent: false,\r\n smartLists: true,\r\n smartypants: true,\r\n xhtml: false,\r\n };\r\n}\r\n\r\nexport const defaults = getDefaults();\r\n","import { Options } from './defaults';\r\n\r\nexport interface Ctor {\r\n new (): T;\r\n}\r\n\r\n/**\r\n * Helpers\r\n */\r\nconst escapeTest = /[&<>\"']/;\r\nconst escapeReplace = /[&<>\"']/g;\r\nconst escapeTestNoEncode = /[<>\"']|&(?!#?\\w+;)/;\r\nconst escapeReplaceNoEncode = /[<>\"']|&(?!#?\\w+;)/g;\r\nconst escapeReplacements: { [entity: string]: string } = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n \"'\": ''',\r\n};\r\nconst getEscapeReplacement = (ch: string) => escapeReplacements[ch];\r\nexport function escape(html: string, encode?: boolean) {\r\n if (encode) {\r\n if (escapeTest.test(html)) {\r\n return html.replace(escapeReplace, getEscapeReplacement);\r\n }\r\n } else {\r\n if (escapeTestNoEncode.test(html)) {\r\n return html.replace(escapeReplaceNoEncode, getEscapeReplacement);\r\n }\r\n }\r\n\r\n return html;\r\n}\r\n\r\nconst unescapeTest = /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/gi;\r\n\r\nexport function unescape(html: string) {\r\n // explicitly match decimal, hex, and named HTML entities\r\n return html.replace(unescapeTest, (_, n) => {\r\n n = n.toLowerCase();\r\n if (n === 'colon') return ':';\r\n if (n.charAt(0) === '#') {\r\n return n.charAt(1) === 'x'\r\n ? String.fromCharCode(parseInt(n.substring(2), 16))\r\n : String.fromCharCode(+n.substring(1));\r\n }\r\n return '';\r\n });\r\n}\r\n\r\nconst caret = /(^|[^\\[])\\^/g;\r\nexport function edit(regexOuter: RegExp | string, opt?: string) {\r\n let regex = typeof regexOuter == 'string' ? regexOuter : regexOuter.source;\r\n opt = opt || '';\r\n const obj = {\r\n replace: (name: RegExp | string, valOuter: RegExp | string) => {\r\n let val = typeof valOuter == 'string' ? valOuter : valOuter.source;\r\n val = val.replace(caret, '$1');\r\n regex = regex.replace(name, val);\r\n return obj;\r\n },\r\n getRegex: () => {\r\n return new RegExp(regex, opt);\r\n },\r\n };\r\n return obj;\r\n}\r\n\r\nconst nonWordAndColonTest = /[^\\w:]/g;\r\nconst originIndependentUrl = /^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;\r\nexport function cleanUrl(sanitize: boolean, base: string, href: string) {\r\n if (sanitize) {\r\n let prot;\r\n try {\r\n prot = decodeURIComponent(unescape(href))\r\n .replace(nonWordAndColonTest, '')\r\n .toLowerCase();\r\n } catch (e) {\r\n return null;\r\n }\r\n if (\r\n prot.indexOf('javascript:') === 0 ||\r\n prot.indexOf('vbscript:') === 0 ||\r\n prot.indexOf('data:') === 0\r\n ) {\r\n return null;\r\n }\r\n }\r\n if (base && !originIndependentUrl.test(href)) {\r\n href = resolveUrl(base, href);\r\n }\r\n try {\r\n href = encodeURI(href).replace(/%25/g, '%');\r\n } catch (e) {\r\n return null;\r\n }\r\n return href;\r\n}\r\n\r\nconst baseUrls: { [url: string]: string } = {};\r\nconst justDomain = /^[^:]+:\\/*[^/]*$/;\r\nconst protocol = /^([^:]+:)[\\s\\S]*$/;\r\nconst domain = /^([^:]+:\\/*[^/]*)[\\s\\S]*$/;\r\n\r\nexport function resolveUrl(base: string, href: string) {\r\n if (!baseUrls[' ' + base]) {\r\n // we can ignore everything in base after the last slash of its path component,\r\n // but we might need to add _that_\r\n // https://tools.ietf.org/html/rfc3986#section-3\r\n if (justDomain.test(base)) {\r\n baseUrls[' ' + base] = base + '/';\r\n } else {\r\n baseUrls[' ' + base] = rtrim(base, '/', true);\r\n }\r\n }\r\n base = baseUrls[' ' + base];\r\n const relativeBase = base.indexOf(':') === -1;\r\n\r\n if (href.substring(0, 2) === '//') {\r\n if (relativeBase) {\r\n return href;\r\n }\r\n return base.replace(protocol, '$1') + href;\r\n } else if (href.charAt(0) === '/') {\r\n if (relativeBase) {\r\n return href;\r\n }\r\n return base.replace(domain, '$1') + href;\r\n } else {\r\n return base + href;\r\n }\r\n}\r\n\r\nexport const noopTest = {\r\n exec: function noopTest() {\r\n return null;\r\n },\r\n};\r\n\r\nexport interface Merge {\r\n (a: T, b: U): T & U;\r\n (a: T, b: U, c: V): T & U & V;\r\n}\r\n\r\nexport function splitCells(\r\n tableRow: string,\r\n count?: number\r\n): {\r\n cells: {\r\n raw: string;\r\n parsed: string;\r\n index: number | undefined;\r\n escapes: number[];\r\n }[];\r\n endindex: number;\r\n} {\r\n // ensure that every cell-delimiting pipe has a space\r\n // before it to distinguish it from an escaped pipe\r\n\r\n const row = tableRow.replace(/\\|/g, (_match, offset, str) => {\r\n let escaped = false,\r\n curr = offset;\r\n while (--curr >= 0 && str[curr] === '\\\\') escaped = !escaped;\r\n if (escaped) {\r\n // odd number of slashes means | is escaped\r\n // so we leave it alone\r\n return '|';\r\n } else {\r\n // add space before unescaped |\r\n return ' |';\r\n }\r\n });\r\n const rawcells = row.split(/ \\|/);\r\n let i = 0;\r\n\r\n if (typeof count !== 'undefined' && rawcells.length > count) {\r\n rawcells.splice(count);\r\n }\r\n\r\n let index = 0;\r\n const cells: {\r\n raw: string;\r\n parsed: string;\r\n index: number | undefined;\r\n escapes: number[];\r\n }[] = [];\r\n for (const raw of rawcells) {\r\n cells.push({\r\n raw,\r\n parsed: '',\r\n index,\r\n escapes: [],\r\n });\r\n index += raw.length + 1;\r\n }\r\n if (typeof count !== 'undefined') {\r\n while (cells.length < count) {\r\n cells.push({\r\n raw: '',\r\n parsed: '',\r\n index: undefined,\r\n escapes: [],\r\n });\r\n }\r\n }\r\n\r\n for (; i < cells.length; i++) {\r\n // leading or trailing whitespace is ignored per the gfm spec\r\n const escapesequence = /\\\\\\|/gy;\r\n const lengthwas = cells[i].raw.length;\r\n cells[i].raw = cells[i].raw.trimLeft();\r\n cells[i].index =\r\n typeof cells[i].index === 'undefined'\r\n ? undefined\r\n : cells[i].index! + lengthwas - cells[i].raw.length;\r\n cells[i].raw = cells[i].raw.trimRight();\r\n let cap;\r\n while ((cap = escapesequence.exec(cells[i].raw))) {\r\n cells[i].escapes.push(cap.index);\r\n }\r\n\r\n cells[i].parsed = cells[i].raw.replace(/\\\\\\|/g, '|');\r\n }\r\n\r\n return { cells, endindex: index - 1 };\r\n}\r\n\r\n// Remove trailing 'c's. Equivalent to str.replace(/c*$/, '').\r\n// /c*$/ is vulnerable to REDOS.\r\n// invert: Remove suffix of non-c chars instead. Default falsey.\r\nexport function rtrim(str: string, c: string, invert?: boolean) {\r\n const l = str.length;\r\n if (l === 0) {\r\n return '';\r\n }\r\n\r\n // Length of suffix matching the invert condition.\r\n let suffLen = 0;\r\n\r\n // Step left until we fail to match the invert condition.\r\n while (suffLen < l) {\r\n const currChar = str.charAt(l - suffLen - 1);\r\n if (currChar === c && !invert) {\r\n suffLen++;\r\n } else if (currChar !== c && invert) {\r\n suffLen++;\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n return str.substr(0, l - suffLen);\r\n}\r\n\r\nexport function findClosingBracket(str: string, b: [string, string]) {\r\n if (str.indexOf(b[1]) === -1) {\r\n return -1;\r\n }\r\n const l = str.length;\r\n let level = 0,\r\n i = 0;\r\n for (; i < l; i++) {\r\n if (str[i] === '\\\\') {\r\n i++;\r\n } else if (str[i] === b[0]) {\r\n level++;\r\n } else if (str[i] === b[1]) {\r\n level--;\r\n if (level < 0) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n}\r\n\r\nexport function checkSanitizeDeprecation(opt: Options) {\r\n if (opt && opt.sanitizer && !opt.silent) {\r\n console.warn(\r\n 'marked(): sanitize and sanitizer parameters are deprecated since version 0.7.0, should not be used and will be removed in the future. Read more here: https://marked.js.org/#/USING_ADVANCED.md#options'\r\n );\r\n }\r\n}\r\n","import { defaults, Options } from './defaults';\r\nimport { checkSanitizeDeprecation, Ctor } from './helpers';\r\nimport InlineLexer from './InlineLexer';\r\nimport Lexer from './Lexer';\r\nimport Parser from './Parser';\r\nimport Renderer, { BlockRenderer } from './Renderer';\r\nimport Slugger from './Slugger';\r\nimport TextRenderer from './TextRenderer';\r\n\r\nexport interface MarkedCallback {\r\n (error: any): string;\r\n (error: null, output: string): string;\r\n}\r\n\r\nexport interface Marked {}\r\n\r\n/**\r\n * Marked\r\n */\r\nfunction marked(\r\n src: string,\r\n optOrCallback?: Partial | MarkedCallback,\r\n callback?: MarkedCallback\r\n) {\r\n // throw error in case of non string input\r\n if (typeof src === 'undefined' || src === null) {\r\n throw new Error('marked(): input parameter is undefined or null');\r\n }\r\n if (typeof src !== 'string') {\r\n throw new Error(\r\n 'marked(): input parameter is of type ' +\r\n Object.prototype.toString.call(src) +\r\n ', string expected'\r\n );\r\n }\r\n\r\n let opt: Partial;\r\n\r\n if (!callback && typeof optOrCallback === 'function') {\r\n callback = optOrCallback;\r\n opt = {};\r\n } else if (typeof optOrCallback === 'object') {\r\n opt = optOrCallback;\r\n } else {\r\n opt = {};\r\n }\r\n\r\n if (callback) {\r\n const options = {\r\n ...localDefaults,\r\n ...opt,\r\n };\r\n\r\n checkSanitizeDeprecation(options);\r\n const highlight = opt.highlight;\r\n let results;\r\n\r\n try {\r\n results = Lexer.lex(src, options);\r\n } catch (e) {\r\n return callback(e);\r\n }\r\n const { tokens, links } = results;\r\n\r\n let pending = tokens.length;\r\n\r\n const done = (err?: any) => {\r\n if (err) {\r\n opt.highlight = highlight;\r\n return callback!(err);\r\n }\r\n\r\n let out: string;\r\n\r\n try {\r\n out = Parser.parse(tokens, links, options);\r\n } catch (e) {\r\n err = e;\r\n }\r\n\r\n options.highlight = highlight;\r\n\r\n return err ? callback!(err) : callback!(null, out!);\r\n };\r\n\r\n if (!highlight || highlight.length < 3) {\r\n return done();\r\n }\r\n\r\n delete opt.highlight;\r\n\r\n if (!pending) return done();\r\n\r\n for (let i = 0; i < tokens.length; i++) {\r\n const token = tokens[i];\r\n\r\n if (token.type !== 'code') {\r\n return --pending || done();\r\n }\r\n highlight(token.text, token.lang, (err, code) => {\r\n if (err) {\r\n return done(err);\r\n }\r\n if (code == null || code === token.text) {\r\n return --pending || done();\r\n }\r\n token.text = code;\r\n token.escaped = true;\r\n return --pending || done();\r\n });\r\n }\r\n\r\n return;\r\n }\r\n\r\n const options = {\r\n ...localDefaults,\r\n ...opt,\r\n };\r\n checkSanitizeDeprecation(options);\r\n const { tokens, links } = Lexer.lex(src, options);\r\n const results = Parser.parse(tokens, links, options);\r\n return results;\r\n}\r\n\r\nexport function markedFull(\r\n src: string,\r\n renderer: Ctor>,\r\n options: Partial> = {}\r\n) {\r\n const opts: Options = {\r\n ...localDefaults,\r\n ...options,\r\n };\r\n const { tokens, links } = Lexer.lex(src, opts);\r\n const parser = new Parser(renderer, opts);\r\n const results = parser.parse(tokens, links);\r\n return { results, tokens };\r\n}\r\n\r\n/**\r\n * Options\r\n */\r\n\r\nlet localDefaults = defaults;\r\n\r\nexport function setOptions(opt: Partial) {\r\n localDefaults = {\r\n ...localDefaults,\r\n ...opt,\r\n };\r\n}\r\n\r\nexport interface SimpleVNodeList extends Array {}\r\nexport type SimpleVNode = string | SimpleVElement;\r\nexport type SimpleVElement = {\r\n tag: string;\r\n slot?: string;\r\n attributes: {\r\n [attribute: string]: string;\r\n };\r\n props?: {\r\n [key: string]: unknown;\r\n };\r\n children: SimpleVNodeList;\r\n};\r\n\r\nexport function extractChildren(element: HTMLElement): SimpleVNodeList {\r\n const result = [];\r\n for (const child of Array.prototype.slice.apply(element.childNodes) as Array<\r\n ChildNode\r\n >) {\r\n if (child.nodeType == Node.TEXT_NODE) {\r\n result.push((child as Text).textContent!);\r\n } else if (child.nodeType == Node.ELEMENT_NODE) {\r\n const tag = (child as HTMLElement).tagName;\r\n const attributes: {\r\n [attribute: string]: string;\r\n } = {};\r\n for (const attribute of Array.prototype.slice.apply(\r\n (child as HTMLElement).attributes\r\n ) as Array) {\r\n attributes[attribute.name] = attribute.value;\r\n }\r\n result.push({\r\n tag,\r\n attributes,\r\n children: extractChildren(child as HTMLElement),\r\n });\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nexport function parseHTML(html: string): SimpleVNodeList {\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(html, 'text/html');\r\n return extractChildren(doc.body);\r\n}\r\n\r\nexport {\r\n Parser,\r\n defaults,\r\n Renderer,\r\n TextRenderer,\r\n Lexer,\r\n InlineLexer,\r\n Slugger,\r\n marked,\r\n};\r\n","import { edit, noopTest } from './helpers';\r\n// import { noop } from 'vue-class-component/lib/util';\r\n\r\nexport interface FragmentMatcher {\r\n exec: (src: string) => RegExpExecArray | null;\r\n}\r\n\r\ntype BlockRule = keyof typeof blockBase | 'nptable' | 'table' | 'attrs';\r\n\r\nexport type BlockGrammar = {\r\n [K in BlockRule]: FragmentMatcher;\r\n} & { item: RegExp; bullet: RegExp };\r\n\r\n/**\r\n * Block-Level Grammar\r\n */\r\nconst _def = /^ {0,3}\\[(label)\\]: *\\n? *]+)>?(?:(?: +\\n? *| *\\n *)(title))? *(?:\\n+|$)/;\r\nconst _label = /(?!\\s*\\])(?:\\\\[\\[\\]]|[^\\[\\]])+/;\r\nconst _title = /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/;\r\nconst def = edit(_def)\r\n .replace('label', _label)\r\n .replace('title', _title)\r\n .getRegex();\r\nconst _list = /^( {0,3})(bull) [\\s\\S]+?(?:hr|def|\\n{2,}(?! )(?!\\1bull )\\n*|\\s*$)/;\r\nconst bullet = /(?:[*+-]|\\d{1,9}\\.)/;\r\nconst list = edit(_list)\r\n .replace(/bull/g, bullet)\r\n .replace(\r\n 'hr',\r\n '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))'\r\n )\r\n .replace('def', '\\\\n+(?=' + def.source + ')')\r\n .getRegex();\r\nconst _tag = edit(\r\n 'address|article|aside|base|basefont|blockquote|body|caption' +\r\n '|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption' +\r\n '|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe' +\r\n '|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option' +\r\n '|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr' +\r\n '|track|ul'\r\n).getRegex();\r\n\r\nconst _html = edit(\r\n '^ {0,3}(?:' + // optional indentation\r\n '<(script|pre|style)[\\\\s>][\\\\s\\\\S]*?(?:[^\\\\n]*\\\\n+|$)' + // (1)\r\n '|comment[^\\\\n]*(\\\\n+|$)' + // (2)\r\n '|<\\\\?[\\\\s\\\\S]*?\\\\?>\\\\n*' + // (3)\r\n '|\\\\n*' + // (4)\r\n '|\\\\n*' + // (5)\r\n '|)[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' + // (6)\r\n '|<(?!script|pre|style)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' + // (7) open tag\r\n '|(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:\\\\n{2,}|$)' + // (7) closing tag\r\n ')'\r\n).getRegex();\r\n\r\nconst _comment = //;\r\nconst html = edit(_html, 'i')\r\n .replace('comment', _comment)\r\n .replace('tag', _tag)\r\n .replace(\r\n 'attribute',\r\n / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/\r\n )\r\n .getRegex();\r\nconst _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\\n]+)*)/;\r\nconst hr = /^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)/;\r\nconst paragraph = edit(_paragraph)\r\n .replace('hr', hr)\r\n .replace('heading', ' {0,3}#{1,6} +')\r\n .replace('|lheading', '') // setex headings don't interrupt commonmark paragraphs\r\n .replace('blockquote', ' {0,3}>')\r\n .replace('fences', ' {0,3}(?:`{3,}|~{3,})[^`\\\\n]*\\\\n')\r\n .replace('list', ' {0,3}(?:[*+-]|1[.)]) ') // only lists starting from 1 can interrupt\r\n .replace('html', ')|<(?:script|pre|style|!--)')\r\n .replace('tag', _tag) // pars can be interrupted by type (6) html blocks\r\n .getRegex();\r\nconst _blockQuote = /^( {0,3}> ?([^\\n]*)(?:\\n|$))+/;\r\nconst blockquote = edit(_blockQuote).replace('paragraph', paragraph).getRegex();\r\nexport const blockBase = {\r\n newline: /^\\n+/,\r\n code: /^( {4}[^\\n]+\\n*)+/,\r\n fences: /^ {0,3}(`{3,}|~{3,})([^`~\\n]*)\\n(?:|([\\s\\S]*?)\\n)(?: {0,3}\\1[~`]* *(?:\\n+|$)|$)/,\r\n hr: hr,\r\n heading: /^ {0,3}(#{1,6}) +([^\\n]*?)(?: +#+)? *(?:\\n+|$)/,\r\n blockquote,\r\n list: list,\r\n html,\r\n def,\r\n //nptable: noopTest,\r\n //table: noopTest,\r\n lheading: /^([^\\n]+)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\r\n // regex template, placeholders will be replaced according to different paragraph\r\n // interruption rules of commonmark and the original markdown spec:\r\n _paragraph: _paragraph,\r\n text: /^[^\\n]+/,\r\n _label,\r\n _title,\r\n bullet,\r\n item: edit(/^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?)[^\\n]*)*/, 'gm')\r\n .replace(/bull/g, /(?:[*+-]|\\d{1,9}\\.)/)\r\n .getRegex(),\r\n _comment: _comment,\r\n paragraph,\r\n};\r\n\r\n/**\r\n * Normal Block Grammar\r\n */\r\nconst blockNormal: BlockGrammar = {\r\n ...blockBase,\r\n nptable: noopTest,\r\n table: noopTest,\r\n attrs: noopTest,\r\n};\r\n\r\n/**\r\n * GFM Block Grammar\r\n */\r\n\r\nconst expandedBullet = /(?:[*+-]|\\d{1,9}\\.|[a-z]\\.|[A-Z]\\.|[lxiv]{1,8}\\.)/;\r\n\r\nconst blockGfm: BlockGrammar = {\r\n ...blockNormal,\r\n nptable: /^ *([^|\\n ].*\\|.*)\\n *([-:]+ *\\|[-| :]*)(?:\\n((?:.*[^>\\n ].*(?:\\n|$))*)\\n*|$)/,\r\n table: /^ *\\|(.+)\\n *\\|?( *[-:]+[-| :]*)(?:\\n((?: *[^>\\n ].*(?:\\n|$))*)\\n*|$)/,\r\n\r\n bullet: expandedBullet,\r\n list: edit(_list)\r\n .replace(/bull/g, expandedBullet)\r\n .replace(\r\n 'hr',\r\n '\\\\n+(?=\\\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$))'\r\n )\r\n .replace('def', '\\\\n+(?=' + def.source + ')')\r\n .getRegex(),\r\n item: edit(/^( *)(bull) ?[^\\n]*(?:\\n(?!\\1bull ?) *[^\\n ][^\\n]*)*/, 'gm')\r\n .replace(/bull/g, expandedBullet)\r\n .getRegex(),\r\n attrs: /^([^\\n]*)( *\\{([^}]+)\\} *)((?=\\n)|$)/,\r\n};\r\n\r\n/**\r\n * Pedantic grammar (original John Gruber's loose markdown specification)\r\n */\r\n\r\nconst blockPedantic: BlockGrammar = {\r\n ...blockNormal,\r\n html: edit(\r\n '^ *(?:comment *(?:\\\\n|\\\\s*$)' +\r\n '|<(tag)[\\\\s\\\\S]+? *(?:\\\\n{2,}|\\\\s*$)' + // closed tag\r\n '|\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))'\r\n )\r\n .replace('comment', blockBase._comment)\r\n .replace(\r\n /tag/g,\r\n '(?!(?:' +\r\n 'a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub' +\r\n '|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)' +\r\n '\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b'\r\n )\r\n .getRegex(),\r\n def: /^ *\\[([^\\]]+)\\]: *]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\r\n heading: /^ *(#{1,6}) *([^\\n]+?) *(?:#+ *)?(?:\\n+|$)/,\r\n fences: noopTest, // fences not supported\r\n paragraph: edit(blockBase._paragraph)\r\n .replace('hr', blockBase.hr)\r\n .replace('heading', ' *#{1,6} *[^\\n]')\r\n .replace('lheading', blockBase.lheading)\r\n .replace('blockquote', ' {0,3}>')\r\n .replace('|fences', '')\r\n .replace('|list', '')\r\n .replace('|html', '')\r\n .getRegex(),\r\n};\r\n\r\nexport const block = {\r\n normal: blockNormal,\r\n gfm: blockGfm,\r\n pedantic: blockPedantic,\r\n};\r\n\r\nconst _em = /^_([^\\s_])_(?!_)|^\\*([^\\s*<\\[])\\*(?!\\*)|^_([^\\s<][\\s\\S]*?[^\\s_])_(?!_|[^\\spunctuation])|^_([^\\s_<][\\s\\S]*?[^\\s])_(?!_|[^\\spunctuation])|^\\*([^\\s<\"][\\s\\S]*?[^\\s\\*])\\*(?!\\*|[^\\spunctuation])|^\\*([^\\s*\"<\\[][\\s\\S]*?[^\\s])\\*(?!\\*)/;\r\nconst _autolink = /^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/;\r\nconst _taginline = edit(\r\n '^comment' +\r\n '|^' + // self-closing tag\r\n '|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>' + // open tag\r\n '|^<\\\\?[\\\\s\\\\S]*?\\\\?>' + // processing instruction, e.g. \r\n '|^' + // declaration, e.g. \r\n '|^'\r\n).getRegex(); // CDATA section\r\n\r\n// list of punctuation marks from common mark spec\r\n// without ` and ] to workaround Rule 17 (inline code blocks/links)\r\nconst _punctuation = '!\"#$%&\\'()*+,\\\\-./:;<=>?@\\\\[^_{|}~';\r\nconst em = edit(_em)\r\n .replace(/punctuation/g, _punctuation)\r\n .getRegex();\r\nconst _scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;\r\nconst _escapes = /\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/g;\r\nconst _email = /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;\r\nconst autolink = edit(_autolink)\r\n .replace('scheme', _scheme)\r\n .replace('email', _email)\r\n .getRegex();\r\nconst _attribute = /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/;\r\nconst taginline = edit(_taginline)\r\n .replace('comment', blockBase._comment)\r\n .replace('attribute', _attribute)\r\n .getRegex();\r\n\r\nconst _link = /^\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/;\r\nconst _imglink = /^!\\[(label)\\]\\(\\s*(href)(?:\\s+(title))?\\s*\\)/;\r\nconst _labelinline = /(?:\\[[^\\[\\]]*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\r\nconst _href = /<(?:\\\\[<>]?|[^\\s<>\\\\])*>|[^\\s\\x00-\\x1f]*/;\r\nconst _titleinline = /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/;\r\nconst reflink = /^!?\\[(label)\\]\\[(?!\\s*\\])((?:\\\\[\\[\\]]?|[^\\[\\]\\\\])+)\\]/;\r\n/**\r\n * Inline-Level Grammar\r\n */\r\nconst inlineBase = {\r\n escape: /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\r\n //url: noopTest,\r\n tag: taginline,\r\n link: edit(_link)\r\n .replace('label', _labelinline)\r\n .replace('href', _href)\r\n .replace('title', _titleinline)\r\n .getRegex(),\r\n imglink: edit(_imglink)\r\n .replace('label', _labelinline)\r\n .replace('href', _href)\r\n .replace('title', _titleinline)\r\n .getRegex(),\r\n reflink: edit(reflink).replace('label', _labelinline).getRegex(),\r\n nolink: /^!?\\[(?!\\s*\\])((?:\\[[^\\[\\]]*\\]|\\\\[\\[\\]]|[^\\[\\]])*)\\](?:\\[\\])?/,\r\n strong: /^__([^\\s_])__(?!_)|^\\*\\*([^\\s*])\\*\\*(?!\\*)|^__([^\\s][\\s\\S]*?[^\\s])__(?!_)|^\\*\\*([^\\s][\\s\\S]*?[^\\s])\\*\\*(?!\\*)/,\r\n em,\r\n code: /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\r\n br: /^( {2,}|\\\\)\\n(?!\\s*$)/,\r\n //del: noopTest,\r\n text: /^(`+|[^`])(?:[\\s\\S]*?(?:(?=[\\\\ {\r\n options: Options;\r\n links: { [key: string]: { href: string; title?: string | undefined } };\r\n rules: InlineGrammar;\r\n renderer: ITextRenderer;\r\n inLink: boolean = false;\r\n inRawBlock: boolean = false;\r\n\r\n constructor(\r\n links: { [key: string]: { href: string; title?: string } },\r\n options: Partial>,\r\n renderer: ITextRenderer\r\n ) {\r\n this.options = {\r\n ...defaults,\r\n ...options,\r\n };\r\n this.links = links;\r\n this.rules = inline.normal;\r\n\r\n this.renderer = renderer;\r\n this.renderer.setOptions(this.options);\r\n\r\n if (!this.links) {\r\n throw new Error('Tokens array requires a `links` property.');\r\n }\r\n\r\n if (this.options.type == 'pedantic') {\r\n this.rules = inline.pedantic;\r\n } else if (this.options.type == 'breaks') {\r\n this.rules = inline.breaks;\r\n } else if (this.options.type == 'gfm') {\r\n this.rules = inline.gfm;\r\n }\r\n }\r\n\r\n reset(links: { [key: string]: { href: string; title?: string } }) {\r\n this.inLink = false;\r\n this.inRawBlock = false;\r\n this.links = links;\r\n }\r\n\r\n /**\r\n * Static Lexing/Compiling Method\r\n */\r\n static output(\r\n src: string,\r\n fragments: Fragment[],\r\n links: { [key: string]: { href: string; title?: string } },\r\n options: Partial>,\r\n renderer: ITextRenderer\r\n ) {\r\n const inline = new InlineLexer(links, options, renderer);\r\n return inline.output(src, fragments);\r\n }\r\n\r\n sliceFragments(\r\n fragments: Fragment[],\r\n offset: number,\r\n length: number,\r\n role?: Fragment['role'],\r\n styles?: string[]\r\n ) {\r\n if (length < 0) {\r\n offset -= length;\r\n length = length * -1;\r\n }\r\n\r\n for (let i = 0; i < fragments.length; i++) {\r\n let fragment = fragments[i];\r\n if (\r\n typeof fragment.contentOffset === 'undefined' ||\r\n typeof fragment.contentLength === 'undefined'\r\n ) {\r\n continue;\r\n }\r\n if (fragment.contentOffset + fragment.contentLength <= offset) {\r\n continue;\r\n }\r\n if (fragment.contentOffset >= offset + length) {\r\n break;\r\n }\r\n let lengthpreceding = offset - fragment.contentOffset;\r\n if (lengthpreceding < 0) {\r\n lengthpreceding = 0;\r\n }\r\n let lengthsucceeding =\r\n fragment.contentLength + fragment.contentOffset - (offset + length);\r\n if (lengthsucceeding < 0) {\r\n lengthsucceeding = 0;\r\n }\r\n if (lengthpreceding > 0) {\r\n fragments.splice(i, 0, {\r\n ...fragment,\r\n contentLength: lengthpreceding,\r\n end: {\r\n column: (fragment.start.column as number) + lengthpreceding,\r\n row: fragment.start.row,\r\n },\r\n });\r\n i++;\r\n }\r\n const trueLength =\r\n fragment.contentLength - lengthpreceding - lengthsucceeding;\r\n fragments.splice(i, 1, {\r\n ...fragment,\r\n role: role === undefined ? fragment.role : role,\r\n contentOffset: fragment.contentOffset + lengthpreceding,\r\n contentLength: trueLength,\r\n inlineStyles:\r\n fragment.inlineStyles && styles\r\n ? [...fragment.inlineStyles, ...styles]\r\n : styles\r\n ? styles\r\n : fragment.inlineStyles,\r\n start: {\r\n column: (fragment.start.column as number) + lengthpreceding,\r\n row: fragment.start.row,\r\n },\r\n end: {\r\n column: (fragment.end.column as number) - lengthsucceeding,\r\n row: fragment.start.row,\r\n },\r\n });\r\n if (lengthsucceeding > 0) {\r\n fragments.splice(i + 1, 0, {\r\n ...fragment,\r\n contentLength: lengthsucceeding,\r\n contentOffset: fragment.contentOffset + lengthpreceding + trueLength,\r\n start: {\r\n column: (fragment.end.column as number) - lengthsucceeding,\r\n row: fragment.start.row,\r\n },\r\n });\r\n i++;\r\n }\r\n }\r\n\r\n // if (process.env.NODE_ENV !== 'production') {\r\n // let lastContentIndex = 0;\r\n // let lastColumn : number|undefined;\r\n // let lastRow : number|undefined;\r\n // for (const fragment of fragments) {\r\n // if (fragment.start.row != fragment.end.row) {\r\n // if (typeof fragment.contentLength != 'undefined' && fragment.contentLength != 1) {\r\n // console.error('fragment was bad', fragment);\r\n // }\r\n // } else {\r\n // if (typeof fragment.contentLength != 'undefined' && fragment.contentLength != (fragment.end.column as number) - (fragment.start.column as number)) {\r\n // console.error('fragment was bad', fragment);\r\n // }\r\n // }\r\n // if (typeof lastColumn !== 'undefined' && typeof lastRow !== 'undefined') {\r\n // if (fragment.start.row == fragment.start.row + 1 && fragment.start.column == 0) {\r\n // } else if (fragment.start.row == lastRow && fragment.start.column == lastColumn) {\r\n // } else {\r\n // console.error('fragment was non contiguous', fragment);\r\n // }\r\n // }\r\n // if (typeof fragment.contentOffset != 'undefined') {\r\n // if (fragment.contentOffset != lastContentIndex) {\r\n // console.error('fragment was non contiguous');\r\n // }\r\n // lastContentIndex = fragment.contentOffset + fragment.contentLength!;\r\n // }\r\n // lastColumn = fragment.end.column as any;\r\n // lastRow = fragment.end.row;\r\n // }\r\n // }\r\n }\r\n /**\r\n * Lexing/Compiling\r\n */\r\n output(src: string, fragments: Fragment[], outerPosition = 0) {\r\n let out = this.renderer.start(),\r\n text: Out,\r\n href: string,\r\n title: string,\r\n cap: RegExpExecArray | null,\r\n prevCapZero: string;\r\n const initialLength = src.length;\r\n const currentPosition = () => {\r\n return initialLength - src.length + outerPosition;\r\n };\r\n\r\n while (src) {\r\n // escape\r\n if ((cap = this.rules.escape.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n this.sliceFragments(fragments, currentPosition() - 2, 2, 'escape');\r\n out = this.renderer.cat(out, this.renderer.ofText(cap[1]));\r\n continue;\r\n }\r\n\r\n // tag\r\n if ((cap = this.rules.tag.exec(src))) {\r\n if (!this.inLink && /^/i.test(cap[0])) {\r\n this.inLink = false;\r\n }\r\n if (!this.inRawBlock && /^<(pre|code|kbd|script)(\\s|>)/i.test(cap[0])) {\r\n this.inRawBlock = true;\r\n } else if (\r\n this.inRawBlock &&\r\n /^<\\/(pre|code|kbd|script)(\\s|>)/i.test(cap[0])\r\n ) {\r\n this.inRawBlock = false;\r\n }\r\n\r\n src = src.substring(cap[0].length);\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n 'passthrough'\r\n );\r\n out = this.renderer.cat(\r\n out,\r\n this.renderer.html(\r\n this.options.sanitizer ? this.options.sanitizer(cap[0]) : cap[0],\r\n false\r\n )\r\n );\r\n continue;\r\n }\r\n\r\n // link\r\n if (\r\n (cap = this.rules.link.exec(src)) ||\r\n (cap = this.rules.imglink.exec(src))\r\n ) {\r\n const lastParenIndex = findClosingBracket(cap[2], ['(', ')']);\r\n if (lastParenIndex > -1) {\r\n const start = cap[0].indexOf('!') === 0 ? 5 : 4;\r\n const linkLen = start + cap[1].length + lastParenIndex;\r\n cap[2] = cap[2].substring(0, lastParenIndex);\r\n cap[0] = cap[0].substring(0, linkLen).trim();\r\n cap[3] = '';\r\n }\r\n src = src.substring(cap[0].length);\r\n\r\n this.inLink = true;\r\n href = cap[2];\r\n if (this.options.type == 'pedantic') {\r\n const link = /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/.exec(href);\r\n\r\n if (link) {\r\n href = link[1];\r\n title = link[3];\r\n } else {\r\n title = '';\r\n }\r\n } else {\r\n title = cap[3] ? cap[3].slice(1, -1) : '';\r\n }\r\n\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n 'markup',\r\n ['aref']\r\n );\r\n const size = cap[4];\r\n let width: number | undefined;\r\n let height: number | undefined;\r\n if (size) {\r\n const [rawWidth, rawHeight] = size.substring(1).split(/[xX]/);\r\n if (rawWidth) {\r\n width = Number(rawWidth);\r\n }\r\n if (rawHeight) {\r\n height = Number(rawHeight);\r\n }\r\n }\r\n const startIndex = currentPosition() - cap[0].length;\r\n out = this.renderer.cat(\r\n out,\r\n this.outputLink(cap, fragments, startIndex, {\r\n href: InlineLexer.escapes(href),\r\n title: InlineLexer.escapes(title),\r\n width,\r\n height,\r\n })\r\n );\r\n\r\n href = href.trim().replace(/^<([\\s\\S]*)>$/, '$1');\r\n this.inLink = false;\r\n continue;\r\n }\r\n\r\n // reflink, nolink\r\n if (\r\n (cap = this.rules.reflink.exec(src)) ||\r\n (cap = this.rules.nolink.exec(src))\r\n ) {\r\n src = src.substring(cap[0].length);\r\n const linkKey = (cap[2] || cap[1]).replace(/\\s+/g, ' ');\r\n const link = this.links[linkKey.toLowerCase()];\r\n if (!link || !link.href) {\r\n src = cap[0].substring(1) + src;\r\n out = this.renderer.cat(out, this.renderer.ofText(cap[0].charAt(0)));\r\n continue;\r\n }\r\n this.inLink = true;\r\n\r\n const startIndex = currentPosition() - cap[0].length;\r\n\r\n out = this.renderer.cat(\r\n out,\r\n this.outputLink(cap, fragments, startIndex, link)\r\n );\r\n this.inLink = false;\r\n continue;\r\n }\r\n\r\n // strong\r\n if ((cap = this.rules.strong.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const innerresult = cap[4] || cap[3] || cap[2] || cap[1];\r\n const marklength = (cap[0].length - innerresult.length) / 2;\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n undefined,\r\n ['strong']\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n marklength,\r\n 'markup'\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - marklength,\r\n marklength,\r\n 'markup'\r\n );\r\n const output = this.renderer.strong(\r\n this.output(\r\n innerresult,\r\n fragments,\r\n currentPosition() - innerresult.length - marklength\r\n )\r\n );\r\n\r\n out = this.renderer.cat(out, output);\r\n continue;\r\n }\r\n\r\n // em\r\n if ((cap = this.rules.em.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const innerresult =\r\n cap[6] || cap[5] || cap[4] || cap[3] || cap[2] || cap[1];\r\n const marklength = (cap[0].length - innerresult.length) / 2;\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n undefined,\r\n ['em']\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n marklength,\r\n 'markup'\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - marklength,\r\n marklength,\r\n 'markup'\r\n );\r\n const output = this.renderer.em(\r\n this.output(\r\n innerresult,\r\n fragments,\r\n currentPosition() - innerresult.length - marklength\r\n )\r\n );\r\n out = this.renderer.cat(out, output);\r\n continue;\r\n }\r\n\r\n // code\r\n if ((cap = this.rules.code.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const innerresult = cap[2];\r\n const marklength = (cap[0].length - innerresult.length) / 2;\r\n const leadingwslength = cap[2].length - cap[2].trimLeft().length;\r\n const trailingwslength = cap[2].length - cap[2].trimRight().length;\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n undefined,\r\n ['code']\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n marklength + leadingwslength,\r\n 'markup'\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - marklength - trailingwslength,\r\n marklength + trailingwslength,\r\n 'markup'\r\n );\r\n const output = this.renderer.codespan(\r\n this.renderer.ofText(cap[2].trim(), true)\r\n );\r\n\r\n out = this.renderer.cat(out, output);\r\n continue;\r\n }\r\n\r\n // br\r\n if ((cap = this.rules.br.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n 'markup',\r\n ['br']\r\n );\r\n const tag = this.renderer.br();\r\n out = this.renderer.cat(out, tag);\r\n continue;\r\n }\r\n\r\n // del (gfm)\r\n if ((cap = this.rules.del.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const marklength = (cap[0].length - cap[1].length) / 2;\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n undefined,\r\n ['del']\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n marklength,\r\n 'markup'\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - marklength,\r\n marklength,\r\n 'markup'\r\n );\r\n out = this.renderer.cat(\r\n out,\r\n this.renderer.del(\r\n this.output(\r\n cap[1],\r\n fragments,\r\n currentPosition() - cap[1].length - marklength\r\n )\r\n )\r\n );\r\n continue;\r\n }\r\n\r\n // sub\r\n if ((cap = this.rules.sub.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const innerresult = cap[4] || cap[3] || cap[2] || cap[1];\r\n const marklength = (cap[0].length - innerresult.length) / 2;\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n undefined,\r\n ['sub']\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n marklength,\r\n 'markup'\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - marklength,\r\n marklength,\r\n 'markup'\r\n );\r\n const output = this.renderer.sub(\r\n this.output(\r\n innerresult,\r\n fragments,\r\n currentPosition() - innerresult.length - marklength\r\n )\r\n );\r\n\r\n out = this.renderer.cat(out, output);\r\n continue;\r\n }\r\n // sup\r\n if ((cap = this.rules.sup.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const innerresult = cap[4] || cap[3] || cap[2] || cap[1];\r\n const marklength = (cap[0].length - innerresult.length) / 2;\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n undefined,\r\n ['sup']\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n marklength,\r\n 'markup'\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - marklength,\r\n marklength,\r\n 'markup'\r\n );\r\n const output = this.renderer.sup(\r\n this.output(\r\n innerresult,\r\n fragments,\r\n currentPosition() - innerresult.length - marklength\r\n )\r\n );\r\n\r\n out = this.renderer.cat(out, output);\r\n continue;\r\n }\r\n\r\n // mark\r\n if ((cap = this.rules.marked.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const innerresult = cap[4] || cap[3] || cap[2] || cap[1];\r\n const marklength = (cap[0].length - innerresult.length) / 2;\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n undefined,\r\n ['mark']\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n marklength,\r\n 'markup'\r\n );\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - marklength,\r\n marklength,\r\n 'markup'\r\n );\r\n const output = this.renderer.marked(\r\n this.output(\r\n innerresult,\r\n fragments,\r\n currentPosition() - innerresult.length - marklength\r\n )\r\n );\r\n\r\n out = this.renderer.cat(out, output);\r\n continue;\r\n }\r\n\r\n // autolink\r\n if ((cap = this.rules.autolink.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n if (cap[2] === '@') {\r\n text = this.renderer.ofText(cap[1]);\r\n href = 'mailto:' + text;\r\n } else {\r\n text = this.renderer.ofText(cap[1]);\r\n href = cap[1];\r\n }\r\n\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n undefined,\r\n ['a']\r\n );\r\n out = this.renderer.cat(out, this.renderer.link(href, null, text));\r\n continue;\r\n }\r\n\r\n // url (gfm)\r\n if (!this.inLink && (cap = this.rules.url.exec(src))) {\r\n if (cap[2] === '@') {\r\n text = this.renderer.ofText(cap[0]);\r\n href = 'mailto:' + text;\r\n } else {\r\n // do extended autolink path validation\r\n do {\r\n prevCapZero = cap[0];\r\n cap[0] = this.rules._backpedal.exec(cap[0])![0];\r\n } while (prevCapZero !== cap[0]);\r\n text = this.renderer.ofText(cap[0]);\r\n if (cap[1] === 'www.') {\r\n href = 'http://' + text;\r\n } else {\r\n href = cap[0];\r\n }\r\n }\r\n src = src.substring(cap[0].length);\r\n this.sliceFragments(\r\n fragments,\r\n currentPosition() - cap[0].length,\r\n cap[0].length,\r\n undefined,\r\n ['a']\r\n );\r\n out = this.renderer.cat(out, this.renderer.link(href, null, text));\r\n continue;\r\n }\r\n\r\n // text\r\n if ((cap = this.rules.text.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n if (this.inRawBlock) {\r\n out = this.renderer.cat(\r\n out,\r\n this.renderer.text(\r\n this.renderer.ofText(\r\n this.options.sanitizer ? this.options.sanitizer(cap[0]) : cap[0]\r\n )\r\n )\r\n );\r\n } else {\r\n out = this.renderer.cat(\r\n out,\r\n this.renderer.text(this.renderer.ofText(this.smartypants(cap[0])))\r\n );\r\n }\r\n continue;\r\n }\r\n\r\n if (src) {\r\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\r\n }\r\n }\r\n\r\n return out;\r\n }\r\n\r\n static escapes(text: string) {\r\n return text ? text.replace(inline.normal._escapes, '$1') : text;\r\n }\r\n\r\n /**\r\n * Compile Link\r\n */\r\n outputLink(\r\n cap: RegExpExecArray,\r\n fragments: Fragment[],\r\n startIndex: number,\r\n link: { href: string; title?: string; width?: number; height?: number }\r\n ) {\r\n const href = link.href,\r\n title = link.title ? escape(link.title) : null;\r\n\r\n this.sliceFragments(fragments, startIndex, cap[0].length, 'markup', [\r\n cap[0].charAt(0) === '!' ? 'img' : 'a',\r\n ]);\r\n\r\n if (cap[0].charAt(0) !== '!') {\r\n const capoffset = cap[0].indexOf(cap[1]);\r\n this.sliceFragments(\r\n fragments,\r\n startIndex + capoffset,\r\n cap[1].length,\r\n 'display'\r\n );\r\n }\r\n\r\n return cap[0].charAt(0) !== '!'\r\n ? this.renderer.link(href, title, this.output(cap[1], fragments))\r\n : this.renderer.image(\r\n href,\r\n title,\r\n escape(cap[1]),\r\n link.width,\r\n link.height\r\n );\r\n }\r\n\r\n /**\r\n * Smartypants Transformations\r\n */\r\n smartypants(text: string) {\r\n if (!this.options.smartypants) text;\r\n\r\n return (\r\n text\r\n // em-dashes\r\n .replace(/---/g, '\\u2014')\r\n // en-dashes\r\n .replace(/--/g, '\\u2013')\r\n // opening singles\r\n .replace(/(^|[-\\u2014/(\\[{\"\\s])'/g, '$1\\u2018')\r\n // closing singles & apostrophes\r\n .replace(/'/g, '\\u2019')\r\n // opening doubles\r\n .replace(/(^|[-\\u2014/(\\[{\\u2018\\s])\"/g, '$1\\u201c')\r\n // closing doubles\r\n .replace(/\"/g, '\\u201d')\r\n // ellipses\r\n .replace(/\\.{3}/g, '\\u2026')\r\n );\r\n }\r\n\r\n /**\r\n * Mangle Links\r\n */\r\n mangle(text: string) {\r\n return text;\r\n }\r\n}\r\n","import { defaults, Options } from './defaults';\r\nimport { rtrim, splitCells } from './helpers';\r\nimport { block, BlockGrammar } from './rules';\r\n\r\nexport interface Fragment {\r\n role:\r\n | 'display' // the character is displayed\r\n | 'escape' // the character is an escape character (\\)\r\n | 'passthrough' // the character is part of raw html\r\n | 'markup' // the character is markup\r\n | 'indent'\r\n | 'info'\r\n | 'blank'; // the character is a meaningless blank.\r\n infoRole?: string;\r\n tokenLocalIndex?: number;\r\n start: {\r\n column: number | 'end';\r\n row: number;\r\n };\r\n end: {\r\n column: number | 'end';\r\n row: number;\r\n };\r\n rawContent?: string;\r\n contentOffset?: number;\r\n contentLength?: number;\r\n inlineStyles?: string[];\r\n blockStyles?: string[];\r\n}\r\n\r\ninterface LexerTokenBase {\r\n type: T;\r\n fragments: Fragment[];\r\n}\r\ninterface ParagraphLexerToken extends LexerTokenBase<'paragraph'> {\r\n text: string;\r\n}\r\ninterface SpaceLexerToken extends LexerTokenBase<'space'> {}\r\ninterface CodeLexerToken extends LexerTokenBase<'code'> {\r\n escaped?: boolean;\r\n codeBlockStyle?: 'indented';\r\n lang?: string;\r\n text: string;\r\n}\r\ninterface HeadingLexerToken extends LexerTokenBase<'heading'> {\r\n depth: number;\r\n text: string;\r\n}\r\n\r\nexport interface ContentWithFragments {\r\n content: string;\r\n fragmentIndexes: {\r\n from: number;\r\n to?: number;\r\n fragments?: Fragment[];\r\n };\r\n}\r\n\r\ninterface TableLexerToken extends LexerTokenBase<'table'> {\r\n header: ContentWithFragments[];\r\n align: ('left' | 'right' | 'center' | null)[];\r\n cells: ContentWithFragments[][];\r\n}\r\ninterface ThematicBreakLexerToken extends LexerTokenBase<'hr'> {}\r\ninterface BlockquoteStartLexerToken\r\n extends LexerTokenBase<'blockquote_start'> {}\r\ninterface BlockquoteEndLexerToken extends LexerTokenBase<'blockquote_end'> {}\r\ninterface ListStartLexerToken extends LexerTokenBase<'list_start'> {\r\n ordered: boolean;\r\n start: number | null;\r\n loose: boolean;\r\n orderstyle: 'numeric' | 'roman' | 'lowercase' | 'uppercase' | undefined;\r\n}\r\ninterface ListItemStartLexerToken extends LexerTokenBase<'list_item_start'> {\r\n task: boolean;\r\n checked?: boolean;\r\n loose: boolean;\r\n}\r\ninterface ListItemEndLexerToken extends LexerTokenBase<'list_item_end'> {}\r\ninterface ListEndLexerToken extends LexerTokenBase<'list_end'> {}\r\ninterface HtmlLexerToken extends LexerTokenBase<'html'> {\r\n text: string;\r\n pre: boolean;\r\n}\r\nexport interface TextLexerToken extends LexerTokenBase<'text'> {\r\n text: string;\r\n}\r\nexport interface AttributeLexerToken extends LexerTokenBase<'attr_start'> {\r\n classes: string[];\r\n id: string;\r\n attributes: [string, string][];\r\n}\r\nexport interface AttributeEndToken extends LexerTokenBase<'attr_end'> {}\r\n\r\nexport type LexerToken =\r\n | ParagraphLexerToken\r\n | SpaceLexerToken\r\n | CodeLexerToken\r\n | HeadingLexerToken\r\n | TableLexerToken\r\n | ThematicBreakLexerToken\r\n | BlockquoteStartLexerToken\r\n | BlockquoteEndLexerToken\r\n | ListStartLexerToken\r\n | ListItemStartLexerToken\r\n | ListItemEndLexerToken\r\n | ListEndLexerToken\r\n | HtmlLexerToken\r\n | TextLexerToken\r\n | AttributeLexerToken\r\n | AttributeEndToken;\r\n\r\n/**\r\n * Block Lexer\r\n */\r\nexport default class Lexer {\r\n options: Options;\r\n tokens: LexerToken[];\r\n tokenLinks: {\r\n [key: string]: {\r\n href: string;\r\n title?: string;\r\n };\r\n } = {};\r\n rules: BlockGrammar;\r\n\r\n constructor(options?: Partial>) {\r\n this.tokens = [];\r\n this.options = {\r\n ...defaults,\r\n ...(options || {}),\r\n };\r\n this.rules = block.normal;\r\n\r\n if (this.options.type == 'pedantic') {\r\n this.rules = block.pedantic;\r\n } else if (this.options.type == 'gfm' || this.options.type == 'breaks') {\r\n this.rules = block.gfm;\r\n }\r\n }\r\n\r\n /**\r\n * Expose Block Rules\r\n */\r\n static get rules() {\r\n return block;\r\n }\r\n\r\n /**\r\n * Static Lex Method\r\n */\r\n static lex(src: string, options: Options) {\r\n const lexer = new Lexer(options);\r\n const result = lexer.lex(src);\r\n return result;\r\n }\r\n\r\n /**\r\n * Preprocessing\r\n */\r\n lex(src: string) {\r\n src = src.replace(/\\r\\n|\\r/g, '\\n').replace(/\\t/g, ' ');\r\n\r\n return this.token(src, true, true);\r\n }\r\n\r\n /**\r\n * Lexing\r\n */\r\n token(src: string, top: boolean, final?: boolean) {\r\n let lines = src.split('\\n');\r\n // const blankLines = lines\r\n // .map((text, index) => ({ text, index }))\r\n // .filter(({ text }) => !text.trim())\r\n // .map(({ index }) => index);\r\n\r\n src = src.replace(/^ +$/gm, '');\r\n\r\n lines = src.split('\\n');\r\n const lineOffsets: number[] = [];\r\n let srcOffset = 0;\r\n for (const line of lines) {\r\n lineOffsets.push(srcOffset);\r\n srcOffset += line.length + 1;\r\n }\r\n\r\n const srcLength = src.length;\r\n const getSrcOffset = () => {\r\n return srcLength - src.length;\r\n };\r\n const posOfOffset = (offset: number) => {\r\n for (let i = 0; i < lineOffsets.length - 1; i++) {\r\n if (lineOffsets[i] <= offset && offset < lineOffsets[i + 1]) {\r\n return {\r\n column: offset - lineOffsets[i],\r\n row: i,\r\n };\r\n }\r\n }\r\n return {\r\n column: offset - lineOffsets[lineOffsets.length - 1],\r\n row: lineOffsets.length - 1,\r\n };\r\n };\r\n\r\n let cap: RegExpExecArray | null,\r\n bull: string,\r\n b: string,\r\n listStart: ListStartLexerToken,\r\n t: LexerToken,\r\n // space: number,\r\n i: number,\r\n tag: string,\r\n l: number,\r\n istask: boolean;\r\n\r\n while (src) {\r\n // newline\r\n if ((cap = this.rules.newline.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n if (cap[0].length > 1) {\r\n const srcOffset = getSrcOffset();\r\n this.tokens.push({\r\n type: 'space',\r\n fragments: [\r\n {\r\n role: 'blank',\r\n start: posOfOffset(srcOffset - cap[0].length),\r\n end: posOfOffset(srcOffset),\r\n },\r\n ],\r\n });\r\n }\r\n }\r\n\r\n if ((cap = this.rules.attrs.exec(src))) {\r\n const contents = cap[3];\r\n const offsetfromend = cap[4].length;\r\n const offsetfrombeginning =\r\n cap[0].length - (offsetfromend + cap[2].length);\r\n let srcleft = src.substring(0, offsetfrombeginning);\r\n srcleft = srcleft.trimLeft();\r\n let finalmarkupstart = srcleft.length;\r\n const markuplength = cap[0].length - (cap[0].endsWith('\\n') ? 1 : 0);\r\n\r\n let srcright = src.substring(\r\n cap[0].length - (cap[0].endsWith('\\n') ? 1 : 0)\r\n );\r\n let innercontent = contents;\r\n const nexttoken = /(\\.|#|\\[)/;\r\n let innercap = nexttoken.exec(innercontent);\r\n const classes: string[] = [];\r\n let id: string | undefined;\r\n const attributes: [string, string][] = [];\r\n\r\n while (innercap) {\r\n innercontent = innercontent.substring(innercap.index);\r\n let nextcap = /(\\.|#|\\[| |$)/.exec(innercontent.substring(1))!;\r\n if (innercontent[0] == '[') {\r\n const close = innercontent.indexOf(']');\r\n if (close > 0) {\r\n const attributeName = innercontent.substring(1, close);\r\n if (innercontent[close + 1] == '=') {\r\n let quoteEndFinder =\r\n innercontent[close + 2] == '\"' ? /\"|$/ : / |$/;\r\n let remainder =\r\n innercontent[close + 2] == '\"'\r\n ? innercontent.substring(close + 3)\r\n : innercontent.substring(close + 2);\r\n let endIndex = quoteEndFinder.exec(remainder)!;\r\n const value = remainder.substring(0, endIndex.index);\r\n attributes.push([attributeName, unescape(value)]);\r\n innercontent = remainder.substring(endIndex.index + 1);\r\n } else {\r\n attributes.push([attributeName, '']);\r\n innercontent = innercontent.substring(close + 1);\r\n }\r\n } else {\r\n innercontent = '';\r\n }\r\n } else if (innercontent[0] == '.') {\r\n const classname = innercontent.substring(1, nextcap.index + 1);\r\n innercontent = innercontent.substring(nextcap.index + 1);\r\n classes.push(classname);\r\n } else if (innercontent[0] == '#') {\r\n const classname = innercontent.substring(1, nextcap.index + 1);\r\n innercontent = innercontent.substring(nextcap.index + 1);\r\n id = classname;\r\n }\r\n innercontent = innercontent.trimLeft();\r\n innercap = nexttoken.exec(innercontent);\r\n }\r\n\r\n this.tokens.push({\r\n type: 'attr_start',\r\n classes,\r\n id: id as string,\r\n attributes,\r\n fragments: [\r\n {\r\n role: 'markup',\r\n\r\n start: posOfOffset(getSrcOffset() + finalmarkupstart),\r\n end: posOfOffset(\r\n getSrcOffset() + finalmarkupstart + markuplength\r\n ),\r\n },\r\n ],\r\n });\r\n src = srcleft + srcright;\r\n // this is kind of bad. everything will end up in the wrong order...\r\n continue;\r\n }\r\n\r\n // code\r\n if ((cap = this.rules.code.exec(src))) {\r\n const lastToken = this.tokens[this.tokens.length - 1];\r\n src = src.substring(cap[0].length);\r\n const srcEnd = getSrcOffset();\r\n // An indented code block cannot interrupt a paragraph.\r\n if (lastToken && lastToken.type === 'paragraph') {\r\n lastToken.text += '\\n' + cap[0].trimRight();\r\n lastToken.fragments.push({\r\n role: 'display',\r\n start: posOfOffset(srcEnd - cap[0].length - 1),\r\n end: posOfOffset(srcEnd),\r\n });\r\n } else {\r\n const srcStart = srcEnd - cap[0].length;\r\n const fragments: Fragment[] = [];\r\n\r\n let rawCap = cap[0];\r\n let lastIndex = 0;\r\n let index = rawCap.search(/^ {4}/m);\r\n let delta = 0;\r\n let sourceIndex = 0;\r\n while (index >= 0) {\r\n if (lastIndex < index) {\r\n fragments.push({\r\n role: 'display',\r\n start: posOfOffset(srcStart + lastIndex + delta),\r\n end: posOfOffset(srcStart + index + delta),\r\n contentOffset: sourceIndex,\r\n contentLength: index - lastIndex,\r\n });\r\n sourceIndex += index - lastIndex;\r\n }\r\n fragments.push({\r\n role: 'indent',\r\n start: posOfOffset(srcStart + index + delta),\r\n end: posOfOffset(srcStart + index + 4 + delta),\r\n });\r\n delta += 4;\r\n rawCap = rawCap.substring(0, index) + rawCap.substring(index + 4);\r\n lastIndex = index;\r\n index = rawCap.search(/^ {4}/m);\r\n }\r\n const text =\r\n this.options.type !== 'pedantic' ? rtrim(rawCap, '\\n') : rawCap;\r\n if (lastIndex < rawCap.length) {\r\n fragments.push({\r\n role: 'display',\r\n start: posOfOffset(srcStart + lastIndex + delta),\r\n end: posOfOffset(srcStart + rawCap.length + delta),\r\n contentOffset: sourceIndex,\r\n contentLength: text.length - sourceIndex,\r\n });\r\n }\r\n this.tokens.push({\r\n type: 'code',\r\n codeBlockStyle: 'indented',\r\n text,\r\n fragments,\r\n });\r\n }\r\n continue;\r\n }\r\n\r\n // fences\r\n if ((cap = this.rules.fences.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const srcEnd = getSrcOffset();\r\n const srcStart = srcEnd - cap[0].length;\r\n const languageTagStart =\r\n cap[0].indexOf(cap[1]) +\r\n cap[1].length +\r\n (cap[2].length - cap[2].trimLeft().length);\r\n const textStart = languageTagStart + cap[2].trimLeft().length + 1;\r\n const endTagStart = textStart + cap[3].length;\r\n\r\n this.tokens.push({\r\n type: 'code',\r\n lang: cap[2] ? cap[2].trim() : cap[2],\r\n text: cap[3] || '',\r\n fragments: [\r\n {\r\n role: 'markup',\r\n start: posOfOffset(srcStart),\r\n end: posOfOffset(languageTagStart + srcStart),\r\n },\r\n {\r\n role: 'info',\r\n infoRole: 'language',\r\n start: posOfOffset(languageTagStart + srcStart),\r\n end: posOfOffset(textStart + srcStart),\r\n },\r\n {\r\n role: 'display',\r\n start: posOfOffset(textStart + srcStart),\r\n end: posOfOffset(endTagStart + srcStart),\r\n },\r\n {\r\n role: 'markup',\r\n start: posOfOffset(endTagStart + srcStart),\r\n end: posOfOffset(srcEnd),\r\n },\r\n ],\r\n });\r\n continue;\r\n }\r\n\r\n // heading\r\n if ((cap = this.rules.heading.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const srcEnd = getSrcOffset();\r\n const srcStart = srcEnd - cap[0].length;\r\n const softTextStart = cap[0].indexOf(cap[1]) + cap[1].length;\r\n const suffix = cap[0].substring(softTextStart);\r\n const textStart =\r\n softTextStart + suffix.length - suffix.trimLeft().length;\r\n const textEnd = textStart + cap[2].length;\r\n\r\n this.tokens.push({\r\n type: 'heading',\r\n depth: cap[1].length,\r\n text: cap[2],\r\n fragments: [\r\n {\r\n role: 'markup',\r\n start: posOfOffset(srcStart),\r\n end: posOfOffset(textStart + srcStart),\r\n },\r\n {\r\n role: 'display',\r\n start: posOfOffset(textStart + srcStart),\r\n end: posOfOffset(textEnd + srcStart),\r\n contentLength: cap[2].length,\r\n contentOffset: 0,\r\n },\r\n {\r\n role: 'markup',\r\n start: posOfOffset(textEnd + srcStart),\r\n end: posOfOffset(srcEnd),\r\n },\r\n ],\r\n });\r\n continue;\r\n }\r\n\r\n // table no leading pipe (gfm)\r\n if ((cap = this.rules.nptable.exec(src))) {\r\n const srcStart = getSrcOffset();\r\n const rawalignment = cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */);\r\n let headeroffset = /^ */.exec(cap[0])![0].length;\r\n const initialheaderlength = cap[1].length;\r\n let rawheaderstring = cap[1].replace(/^ */, '');\r\n headeroffset += initialheaderlength - rawheaderstring.length;\r\n\r\n const headerParseData = splitCells(cap[1].replace(/^ *| *\\| *$/g, ''));\r\n const align: ('left' | 'right' | 'center' | null)[] = [];\r\n const rawCells = cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : [];\r\n\r\n const fragments: Fragment[] = [];\r\n const header: ContentWithFragments[] = [];\r\n\r\n let startindex = headeroffset * -1;\r\n for (const cell of headerParseData.cells) {\r\n if (typeof cell.index === 'undefined') {\r\n break;\r\n }\r\n let markupend = cell.index;\r\n if (markupend > startindex) {\r\n fragments.push({\r\n role: 'markup',\r\n tokenLocalIndex: headeroffset + startindex,\r\n start: posOfOffset(srcStart + headeroffset + startindex),\r\n end: posOfOffset(srcStart + headeroffset + markupend),\r\n });\r\n startindex = markupend;\r\n }\r\n const firstIndex = headeroffset + startindex;\r\n let contentindex = 0;\r\n for (const escape of cell.escapes) {\r\n fragments.push({\r\n role: 'display',\r\n tokenLocalIndex: headeroffset + startindex,\r\n start: posOfOffset(srcStart + headeroffset + startindex),\r\n end: posOfOffset(srcStart + headeroffset + cell.index + escape),\r\n contentOffset: contentindex,\r\n contentLength: cell.index + escape - startindex,\r\n });\r\n fragments.push({\r\n role: 'escape',\r\n tokenLocalIndex:\r\n headeroffset + headeroffset + cell.index + escape,\r\n start: posOfOffset(srcStart + headeroffset + cell.index + escape),\r\n end: posOfOffset(\r\n srcStart + headeroffset + cell.index + escape + 2\r\n ),\r\n contentOffset: contentindex + cell.index + escape - startindex,\r\n contentLength: 1,\r\n });\r\n (contentindex += cell.index + escape - startindex + 1),\r\n (startindex = cell.index + escape + 2);\r\n }\r\n const end = cell.index + cell.raw.length;\r\n fragments.push({\r\n role: 'display',\r\n tokenLocalIndex: headeroffset + startindex,\r\n start: posOfOffset(srcStart + headeroffset + startindex),\r\n end: posOfOffset(srcStart + headeroffset + end),\r\n contentOffset: contentindex,\r\n contentLength: end - startindex,\r\n });\r\n startindex = end;\r\n header.push({\r\n content: cell.parsed,\r\n fragmentIndexes: {\r\n from: firstIndex,\r\n to: headeroffset + end,\r\n },\r\n });\r\n }\r\n if (startindex < cap[1].length) {\r\n fragments.push({\r\n role: 'markup',\r\n tokenLocalIndex: headeroffset + startindex,\r\n start: posOfOffset(srcStart + headeroffset + startindex),\r\n end: posOfOffset(srcStart + headeroffset + rawheaderstring.length),\r\n });\r\n }\r\n\r\n const alignmentstart = rawheaderstring.length + headeroffset + 1;\r\n const rawalignmentindex = cap[0].indexOf(cap[2]);\r\n\r\n fragments.push({\r\n role: 'markup',\r\n tokenLocalIndex: alignmentstart,\r\n start: posOfOffset(srcStart + alignmentstart),\r\n end: posOfOffset(srcStart + rawalignmentindex + cap[2].length),\r\n });\r\n\r\n if (headerParseData.cells.length === rawalignment.length) {\r\n src = src.substring(cap[0].length);\r\n\r\n for (i = 0; i < rawalignment.length; i++) {\r\n if (/^ *-+: *$/.test(rawalignment[i])) {\r\n align.push('right');\r\n } else if (/^ *:-+: *$/.test(rawalignment[i])) {\r\n align.push('center');\r\n } else if (/^ *:-+ *$/.test(rawalignment[i])) {\r\n align.push('left');\r\n } else {\r\n align.push(null);\r\n }\r\n }\r\n\r\n const cells: ContentWithFragments[][] = [];\r\n let rowindex = rawalignmentindex + cap[2].length + 1;\r\n\r\n for (i = 0; i < rawCells.length; i++) {\r\n const row: ContentWithFragments[] = [];\r\n const rowdata = splitCells(\r\n rawCells[i],\r\n headerParseData.cells.length\r\n );\r\n let startindex = 0;\r\n\r\n for (const cell of rowdata.cells) {\r\n let contentindex = 0;\r\n if (typeof cell.index === 'undefined') {\r\n break;\r\n }\r\n let markupend = cell.index;\r\n if (markupend > startindex) {\r\n fragments.push({\r\n role: 'markup',\r\n tokenLocalIndex: rowindex + startindex,\r\n start: posOfOffset(srcStart + rowindex + startindex),\r\n end: posOfOffset(srcStart + rowindex + markupend),\r\n });\r\n startindex = markupend;\r\n }\r\n const firstIndex = rowindex + startindex;\r\n for (const escape of cell.escapes) {\r\n fragments.push({\r\n role: 'display',\r\n tokenLocalIndex: rowindex + startindex,\r\n start: posOfOffset(srcStart + rowindex + startindex),\r\n end: posOfOffset(srcStart + rowindex + cell.index + escape),\r\n contentOffset: contentindex,\r\n contentLength: cell.index + escape - startindex,\r\n });\r\n fragments.push({\r\n role: 'escape',\r\n tokenLocalIndex: rowindex + cell.index + escape,\r\n start: posOfOffset(srcStart + rowindex + cell.index + escape),\r\n end: posOfOffset(\r\n srcStart + rowindex + cell.index + escape + 2\r\n ),\r\n contentOffset:\r\n contentindex + cell.index + escape - startindex,\r\n contentLength: 1,\r\n });\r\n contentindex += cell.index + escape - startindex + 1;\r\n startindex = cell.index + escape + 2;\r\n }\r\n const end = cell.index + cell.raw.length;\r\n fragments.push({\r\n role: 'display',\r\n tokenLocalIndex: rowindex + startindex,\r\n start: posOfOffset(srcStart + rowindex + startindex),\r\n end: posOfOffset(srcStart + rowindex + end),\r\n contentOffset: contentindex,\r\n contentLength: end - startindex,\r\n });\r\n startindex = end;\r\n row.push({\r\n content: cell.parsed,\r\n fragmentIndexes: {\r\n from: firstIndex,\r\n to: rowindex + end,\r\n },\r\n });\r\n }\r\n\r\n if (startindex < rawCells[i].length) {\r\n fragments.push({\r\n role: 'markup',\r\n tokenLocalIndex: rowindex + startindex,\r\n start: posOfOffset(srcStart + rowindex + startindex),\r\n end: posOfOffset(srcStart + rowindex + rawCells[i].length),\r\n });\r\n }\r\n\r\n cells.push(row);\r\n rowindex += rawCells[i].length + 1;\r\n }\r\n\r\n this.tokens.push({\r\n type: 'table',\r\n header,\r\n align,\r\n cells,\r\n fragments,\r\n });\r\n\r\n continue;\r\n }\r\n }\r\n\r\n // hr\r\n if ((cap = this.rules.hr.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const srcEnd = getSrcOffset();\r\n const srcStart = srcEnd - cap[0].length;\r\n\r\n this.tokens.push({\r\n type: 'hr',\r\n fragments: [\r\n {\r\n role: 'markup',\r\n start: posOfOffset(srcStart),\r\n end: posOfOffset(srcEnd),\r\n },\r\n ],\r\n });\r\n continue;\r\n }\r\n\r\n // blockquote\r\n if ((cap = this.rules.blockquote.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const srcEnd = getSrcOffset();\r\n const srcStart = srcEnd - cap[0].length;\r\n\r\n const start = posOfOffset(srcStart);\r\n this.tokens.push({\r\n type: 'blockquote_start',\r\n fragments: [],\r\n });\r\n\r\n const replacementstart = this.tokens.length;\r\n const startLine = start.row;\r\n const lineprefixes: number[] = [];\r\n const innerLines = cap[0].split('\\n');\r\n for (let i = 0; i < innerLines.length; i++) {\r\n const lengthprefix = /^ *> ?/.exec(innerLines[i]);\r\n if (lengthprefix) {\r\n lineprefixes.push(lengthprefix[0].length);\r\n } else {\r\n lineprefixes.push(0);\r\n }\r\n innerLines[i] = innerLines[i].substring(lineprefixes[i]);\r\n }\r\n\r\n const rawcap = innerLines.join('\\n');\r\n\r\n // Pass `top` to keep the current\r\n // \"toplevel\" state. This is exactly\r\n // how markdown.pl works.\r\n this.token(rawcap, false);\r\n\r\n const replacementend = this.tokens.length;\r\n for (let i = replacementstart; i < replacementend; i++) {\r\n const token = this.tokens[i];\r\n const fragments: Fragment[] = [];\r\n for (let j = 0; j < token.fragments.length; j++) {\r\n let fragment = token.fragments[j];\r\n // let k = fragment.start.row + (fragment.start.column == 0 ? 0 : 1);\r\n // let fragmentendline =\r\n // fragment.end.row + (fragment.end.column == 0 ? 0 : 1);\r\n while (fragment.start.row < fragment.end.row) {\r\n const lineoffset = lineprefixes[fragment.start.row];\r\n if (fragment.start.column == 0 && lineoffset > 0) {\r\n fragments.push({\r\n role: 'indent',\r\n start: {\r\n row: fragment.start.row + startLine,\r\n column: 0,\r\n },\r\n end: {\r\n row: fragment.start.row + startLine,\r\n column: lineoffset,\r\n },\r\n });\r\n }\r\n fragments.push({\r\n ...fragment,\r\n start: {\r\n row: fragment.start.row + startLine,\r\n column:\r\n fragment.start.column == 'end'\r\n ? 'end'\r\n : lineoffset + fragment.start.column,\r\n },\r\n end: {\r\n row: fragment.start.row + startLine,\r\n column: 'end',\r\n },\r\n });\r\n\r\n fragment = {\r\n ...fragment,\r\n start: {\r\n row: fragment.start.row + 1,\r\n column: 0,\r\n },\r\n };\r\n }\r\n if (\r\n fragment.start.column == 0 &&\r\n lineprefixes[fragment.start.row] > 0\r\n ) {\r\n fragments.push({\r\n role: 'indent',\r\n start: {\r\n row: fragment.start.row + startLine,\r\n column: 0,\r\n },\r\n end: {\r\n row: fragment.start.row + startLine,\r\n column: lineprefixes[fragment.start.row],\r\n },\r\n });\r\n }\r\n if (\r\n (fragment.end.column == 'end' &&\r\n fragment.start.column != 'end') ||\r\n fragment.end.column > fragment.start.column\r\n ) {\r\n const lineoffset = lineprefixes[fragment.start.row];\r\n fragments.push({\r\n ...fragment,\r\n start: {\r\n row: fragment.start.row + startLine,\r\n column:\r\n fragment.start.column == 'end'\r\n ? 'end'\r\n : lineoffset + fragment.start.column,\r\n },\r\n end: {\r\n row: fragment.start.row + startLine,\r\n column:\r\n fragment.end.column == 'end'\r\n ? 'end'\r\n : lineoffset + fragment.end.column,\r\n },\r\n });\r\n }\r\n }\r\n token.fragments = fragments;\r\n }\r\n\r\n this.tokens.push({\r\n type: 'blockquote_end',\r\n fragments: [],\r\n });\r\n\r\n continue;\r\n }\r\n\r\n // list\r\n if ((cap = this.rules.list.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n bull = cap[2];\r\n const isordered = bull.length > 1;\r\n const srcEnd = getSrcOffset();\r\n const srcStart = srcEnd - cap[0].length;\r\n // const startline = posOfOffset(srcStart).row;\r\n const orderstyle:\r\n | 'numeric'\r\n | 'roman'\r\n | 'uppercase'\r\n | 'lowercase'\r\n | undefined = !isordered\r\n ? undefined\r\n : !Number.isNaN(Number(bull.substring(0, bull.length - 1)))\r\n ? 'numeric'\r\n : /^[xiv]+$/.test(bull.substring(0, bull.length - 1))\r\n ? 'roman'\r\n : bull.toLowerCase() == bull\r\n ? 'lowercase'\r\n : 'uppercase';\r\n const bulletMatcher =\r\n orderstyle === undefined\r\n ? new RegExp('(?:[' + bull + '])')\r\n : orderstyle == 'numeric'\r\n ? /(?:\\d{1,9}\\.)/\r\n : orderstyle == 'lowercase'\r\n ? /(?:[a-z]\\.)/\r\n : orderstyle == 'uppercase'\r\n ? /(?:[A-Z]\\.)/\r\n : /(?:[lxiv]{1,}\\.)/;\r\n\r\n function miniParseRomanNumerals(v: string) {\r\n let sum = 0;\r\n let maybeMinus = 0;\r\n let smallestDigit = 10000;\r\n\r\n v = v.toLowerCase().trim();\r\n for (let i = 0; i < v.length; i++) {\r\n let digit = v[i];\r\n let numeric: number;\r\n let fives: boolean = false;\r\n\r\n switch (digit) {\r\n case 'i':\r\n numeric = 1;\r\n break;\r\n case 'v':\r\n numeric = 5;\r\n fives = true;\r\n break;\r\n case 'x':\r\n numeric = 10;\r\n break;\r\n case 'l':\r\n numeric = 50;\r\n fives = true;\r\n break;\r\n case 'c':\r\n numeric = 100;\r\n break;\r\n case 'd':\r\n numeric = 500;\r\n fives = true;\r\n break;\r\n case 'm':\r\n numeric = 1000;\r\n break;\r\n default:\r\n return Number.NaN;\r\n }\r\n if (fives && maybeMinus == numeric / 5) {\r\n sum += numeric - maybeMinus;\r\n smallestDigit = maybeMinus - 1; // we can't have\r\n maybeMinus = 0;\r\n continue;\r\n } else if (!fives && maybeMinus == numeric / 10) {\r\n sum += numeric - maybeMinus;\r\n smallestDigit = maybeMinus - 1;\r\n maybeMinus = 0;\r\n continue;\r\n } else if (maybeMinus == numeric) {\r\n sum += numeric + maybeMinus;\r\n smallestDigit = maybeMinus;\r\n maybeMinus = 0;\r\n continue;\r\n } else if (maybeMinus > 0) {\r\n sum += maybeMinus;\r\n smallestDigit = maybeMinus;\r\n }\r\n if (numeric > smallestDigit) {\r\n return Number.NaN;\r\n }\r\n if (numeric < smallestDigit && !fives && numeric != 1000) {\r\n maybeMinus = numeric;\r\n continue;\r\n }\r\n sum += numeric;\r\n smallestDigit = numeric;\r\n }\r\n if (maybeMinus) {\r\n sum += maybeMinus;\r\n }\r\n return sum;\r\n }\r\n\r\n const start =\r\n orderstyle == undefined\r\n ? null\r\n : orderstyle == 'numeric'\r\n ? Number(bull.substring(0, bull.length - 1))\r\n : orderstyle == 'uppercase'\r\n ? bull.charCodeAt(0) - 'A'.charCodeAt(0) + 1\r\n : orderstyle == 'lowercase'\r\n ? bull.charCodeAt(0) - 'a'.charCodeAt(0) + 1\r\n : miniParseRomanNumerals(bull.substring(0, bull.length - 1));\r\n listStart = {\r\n type: 'list_start',\r\n ordered: isordered,\r\n start,\r\n loose: false,\r\n fragments: [],\r\n orderstyle,\r\n };\r\n\r\n this.tokens.push(listStart);\r\n\r\n // Get each top-level item.\r\n\r\n const itemmatcher = new RegExp(this.rules.item.source + '\\n*', 'gym');\r\n\r\n let currentmatch = itemmatcher.exec(cap[0]);\r\n let nextmatch = itemmatcher.exec(cap[0]);\r\n\r\n const listItems: ListItemStartLexerToken[] = [];\r\n let next = false;\r\n\r\n for (\r\n ;\r\n currentmatch != null;\r\n currentmatch = nextmatch, nextmatch = itemmatcher.exec(cap[0])\r\n ) {\r\n let startLine = posOfOffset(currentmatch.index + srcStart).row;\r\n\r\n let item = currentmatch[0].replace(/(\\n)*$/, '');\r\n\r\n // Remove the list item's bullet\r\n // so it is seen as the next token.\r\n const originalLength = item.length;\r\n item = item.replace(\r\n new RegExp('^ *' + this.rules.bullet.source + ' *'),\r\n ''\r\n );\r\n const space = originalLength - item.length;\r\n const firstlineprefixlength = space;\r\n\r\n const lineprefixes: number[] = [];\r\n const innerLines = item.split('\\n');\r\n for (let i = 0; i < innerLines.length; i++) {\r\n const matcher =\r\n this.options.type !== 'pedantic'\r\n ? new RegExp('^ {1,' + space + '}')\r\n : /^ {1,4}/;\r\n const lengthprefix = matcher.exec(innerLines[i]);\r\n if (lengthprefix) {\r\n lineprefixes.push(lengthprefix[0].length);\r\n } else {\r\n lineprefixes.push(0);\r\n }\r\n innerLines[i] = innerLines[i].substring(lineprefixes[i]);\r\n }\r\n lineprefixes[0] += firstlineprefixlength;\r\n item = innerLines.join('\\n');\r\n\r\n // Determine whether the next list item belongs here.\r\n // Backpedal if it does not belong in this list.\r\n if (nextmatch) {\r\n b = this.rules.bullet.exec(nextmatch[0])![0];\r\n if (!bulletMatcher.test(b)) {\r\n src = cap[0].slice(nextmatch.index) + src;\r\n nextmatch = null;\r\n } else if (/\\n\\n$/.test(currentmatch[0])) {\r\n src = cap[0].slice(nextmatch!.index) + src;\r\n nextmatch = null;\r\n }\r\n }\r\n\r\n // Determine whether item is loose or not.\r\n // Use: /(^|\\n)(?! )[^\\n]+\\n\\n(?!\\s*$)/\r\n // for discount behavior.\r\n let loose = next || /\\n\\n(?!\\s*$)/.test(item);\r\n if (nextmatch) {\r\n next = item.charAt(item.length - 1) === '\\n';\r\n if (!loose) loose = next;\r\n }\r\n\r\n if (loose) {\r\n listStart.loose = true;\r\n }\r\n\r\n // Check for task list items\r\n istask = /^\\[[ xX]\\] /.test(item);\r\n let ischecked: boolean | undefined = undefined;\r\n\r\n let originallength = 0;\r\n if (istask) {\r\n ischecked = item[1] !== ' ';\r\n originallength = item.length;\r\n item = item.replace(/^\\[[ xX]\\] +/, '');\r\n lineprefixes[0] += originallength - item.length;\r\n }\r\n\r\n t = {\r\n type: 'list_item_start',\r\n task: istask,\r\n checked: ischecked,\r\n loose: loose,\r\n fragments: istask\r\n ? [\r\n {\r\n role: 'info',\r\n infoRole: 'checkbox',\r\n start: {\r\n row: startLine,\r\n column: 0,\r\n },\r\n end: {\r\n row: startLine,\r\n column: originallength,\r\n },\r\n },\r\n ]\r\n : [],\r\n };\r\n\r\n listItems.push(t);\r\n this.tokens.push(t);\r\n const replacementstart = this.tokens.length;\r\n // Recurse.\r\n this.token(item, false);\r\n const replacementend = this.tokens.length;\r\n for (let i = replacementstart; i < replacementend; i++) {\r\n const token = this.tokens[i];\r\n const fragments: Fragment[] = [];\r\n for (let j = 0; j < token.fragments.length; j++) {\r\n let fragment = token.fragments[j];\r\n while (fragment.start.row < fragment.end.row) {\r\n const lineoffset = lineprefixes[fragment.start.row];\r\n if (fragment.start.column == 0 && lineoffset > 0) {\r\n fragments.push({\r\n role: 'indent',\r\n infoRole: fragment.start.row == 0 ? undefined : 'blank',\r\n start: {\r\n row: fragment.start.row + startLine,\r\n column: 0,\r\n },\r\n end: {\r\n row: fragment.start.row + startLine,\r\n column: lineoffset,\r\n },\r\n });\r\n }\r\n fragments.push({\r\n ...fragment,\r\n start: {\r\n row: fragment.start.row + startLine,\r\n column:\r\n fragment.start.column == 'end'\r\n ? 'end'\r\n : lineoffset + fragment.start.column,\r\n },\r\n end: {\r\n row: fragment.start.row + startLine,\r\n column: 'end',\r\n },\r\n });\r\n\r\n fragment = {\r\n ...fragment,\r\n start: {\r\n row: fragment.start.row + 1,\r\n column: 0,\r\n },\r\n };\r\n }\r\n const lineoffset = lineprefixes[fragment.start.row];\r\n if (fragment.start.column == 0 && lineoffset > 0) {\r\n fragments.push({\r\n role: 'indent',\r\n infoRole: fragment.start.row == 0 ? undefined : 'blank',\r\n start: {\r\n row: fragment.start.row + startLine,\r\n column: 0,\r\n },\r\n end: {\r\n row: fragment.start.row + startLine,\r\n column: lineoffset,\r\n },\r\n });\r\n }\r\n if (\r\n (fragment.end.column == 'end' &&\r\n fragment.start.column != 'end') ||\r\n fragment.end.column > fragment.start.column\r\n ) {\r\n const lineoffset = lineprefixes[fragment.start.row];\r\n fragments.push({\r\n ...fragment,\r\n start: {\r\n row: fragment.start.row + startLine,\r\n column:\r\n fragment.start.column == 'end'\r\n ? 'end'\r\n : lineoffset + fragment.start.column,\r\n },\r\n end: {\r\n row: fragment.start.row + startLine,\r\n column:\r\n fragment.end.column == 'end'\r\n ? 'end'\r\n : lineoffset + fragment.end.column,\r\n },\r\n });\r\n }\r\n }\r\n token.fragments = fragments;\r\n }\r\n\r\n this.tokens.push({\r\n type: 'list_item_end',\r\n fragments: [],\r\n });\r\n }\r\n\r\n if (listStart.loose) {\r\n l = listItems.length;\r\n i = 0;\r\n for (; i < l; i++) {\r\n listItems[i].loose = true;\r\n }\r\n }\r\n\r\n this.tokens.push({\r\n type: 'list_end',\r\n fragments: [],\r\n });\r\n\r\n continue;\r\n }\r\n\r\n // html\r\n if ((cap = this.rules.html.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const srcEnd = getSrcOffset();\r\n const srcStart = srcEnd - cap[0].length;\r\n if (this.options.sanitizer) {\r\n this.tokens.push({\r\n type: 'paragraph',\r\n text: this.options.sanitizer(cap[0]),\r\n fragments: [\r\n {\r\n role: 'display',\r\n start: posOfOffset(srcStart),\r\n end: posOfOffset(srcEnd),\r\n contentOffset: 0,\r\n contentLength: cap[0].length,\r\n },\r\n ],\r\n });\r\n } else {\r\n this.tokens.push({\r\n type: 'html',\r\n pre: cap[1] === 'pre' || cap[1] === 'script' || cap[1] === 'style',\r\n text: cap[0],\r\n fragments: [\r\n {\r\n role: 'passthrough',\r\n start: posOfOffset(srcStart),\r\n end: posOfOffset(srcEnd),\r\n contentOffset: 0,\r\n contentLength: cap[0].length,\r\n },\r\n ],\r\n });\r\n }\r\n continue;\r\n }\r\n\r\n // def\r\n if (top && (cap = this.rules.def.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n if (cap[3]) cap[3] = cap[3].substring(1, cap[3].length - 1);\r\n tag = cap[1].toLowerCase().replace(/\\s+/g, ' ');\r\n if (!this.tokenLinks[tag]) {\r\n this.tokenLinks[tag] = {\r\n href: cap[2],\r\n title: cap[3],\r\n };\r\n }\r\n continue;\r\n }\r\n\r\n // table (gfm)\r\n if ((cap = this.rules.table.exec(src))) {\r\n const srcStart = getSrcOffset();\r\n const rawalignment = cap[2].replace(/^ *|\\| *$/g, '').split(/ *\\| */);\r\n let headeroffset = /^ *\\|/.exec(cap[0])![0].length;\r\n const initialheaderlength = cap[1].length;\r\n let rawheaderstring = cap[1].replace(/^ */, '');\r\n headeroffset += initialheaderlength - rawheaderstring.length;\r\n\r\n const rawHeader = splitCells(cap[1].replace(/^ *| *\\| *$/g, ''));\r\n const align: ('left' | 'right' | 'center' | null)[] = [];\r\n const rawCells = cap[3] ? cap[3].replace(/\\n$/, '').split('\\n') : [];\r\n\r\n const fragments: Fragment[] = [];\r\n const header: ContentWithFragments[] = [];\r\n\r\n let startindex = headeroffset * -1;\r\n for (const cell of rawHeader.cells) {\r\n let contentindex = 0;\r\n if (typeof cell.index === 'undefined') {\r\n break;\r\n }\r\n let markupend = cell.index;\r\n if (markupend > startindex) {\r\n fragments.push({\r\n role: 'markup',\r\n tokenLocalIndex: headeroffset + startindex,\r\n start: posOfOffset(srcStart + headeroffset + startindex),\r\n end: posOfOffset(srcStart + headeroffset + markupend),\r\n });\r\n startindex = markupend;\r\n }\r\n const headerstartindex = headeroffset + startindex;\r\n for (const escape of cell.escapes) {\r\n fragments.push({\r\n role: 'display',\r\n tokenLocalIndex: headeroffset + startindex,\r\n start: posOfOffset(srcStart + headeroffset + startindex),\r\n end: posOfOffset(srcStart + headeroffset + cell.index + escape),\r\n contentOffset: contentindex,\r\n contentLength: cell.index + escape - startindex,\r\n });\r\n fragments.push({\r\n role: 'escape',\r\n tokenLocalIndex: headeroffset + cell.index + escape,\r\n start: posOfOffset(srcStart + headeroffset + cell.index + escape),\r\n end: posOfOffset(\r\n srcStart + headeroffset + cell.index + escape + 2\r\n ),\r\n contentOffset: contentindex + cell.index + escape - startindex,\r\n contentLength: 1,\r\n });\r\n contentindex += cell.index + escape - startindex + 1;\r\n startindex = cell.index + escape + 2;\r\n }\r\n const end = cell.index + cell.raw.length;\r\n fragments.push({\r\n role: 'display',\r\n tokenLocalIndex: headeroffset + startindex,\r\n start: posOfOffset(srcStart + headeroffset + startindex),\r\n end: posOfOffset(srcStart + headeroffset + end),\r\n contentOffset: contentindex,\r\n contentLength: end - startindex,\r\n });\r\n startindex = end;\r\n header.push({\r\n content: cell.parsed,\r\n fragmentIndexes: {\r\n from: headerstartindex,\r\n to: headeroffset + end,\r\n },\r\n });\r\n }\r\n if (startindex < cap[1].length) {\r\n fragments.push({\r\n role: 'markup',\r\n tokenLocalIndex: headeroffset + startindex,\r\n start: posOfOffset(srcStart + headeroffset + startindex),\r\n end: posOfOffset(srcStart + headeroffset + rawheaderstring.length),\r\n });\r\n }\r\n\r\n const alignmentstart = rawheaderstring.length + headeroffset + 1;\r\n const rawalignmentindex = cap[0].indexOf(cap[2]);\r\n\r\n fragments.push({\r\n role: 'markup',\r\n tokenLocalIndex: alignmentstart,\r\n start: posOfOffset(srcStart + alignmentstart),\r\n end: posOfOffset(srcStart + rawalignmentindex + cap[2].length),\r\n });\r\n\r\n if (rawHeader.cells.length === rawalignment.length) {\r\n src = src.substring(cap[0].length);\r\n\r\n for (i = 0; i < rawalignment.length; i++) {\r\n if (/^ *-+: *$/.test(rawalignment[i])) {\r\n align.push('right');\r\n } else if (/^ *:-+: *$/.test(rawalignment[i])) {\r\n align.push('center');\r\n } else if (/^ *:-+ *$/.test(rawalignment[i])) {\r\n align.push('left');\r\n } else {\r\n align.push(null);\r\n }\r\n }\r\n\r\n const cells: ContentWithFragments[][] = [];\r\n let rowindex = rawalignmentindex + cap[2].length + 1;\r\n\r\n for (i = 0; i < rawCells.length; i++) {\r\n const row: ContentWithFragments[] = [];\r\n const rowdata = splitCells(\r\n rawCells[i].replace(/^ *\\| *| *\\| *$/g, ''),\r\n rawHeader.cells.length\r\n );\r\n let startindex = 0;\r\n const firstmeaningfulindex = /^ *\\| *|/.exec(rawCells[i])![0]\r\n .length;\r\n if (firstmeaningfulindex > startindex) {\r\n fragments.push({\r\n role: 'markup',\r\n tokenLocalIndex: rowindex + startindex,\r\n start: posOfOffset(srcStart + rowindex + startindex),\r\n end: posOfOffset(srcStart + rowindex + firstmeaningfulindex),\r\n });\r\n rowindex += firstmeaningfulindex - startindex;\r\n }\r\n\r\n for (const cell of rowdata.cells) {\r\n let contentindex = 0;\r\n if (typeof cell.index === 'undefined') {\r\n break;\r\n }\r\n let markupend = cell.index;\r\n if (markupend > startindex) {\r\n fragments.push({\r\n role: 'markup',\r\n tokenLocalIndex: rowindex + startindex,\r\n start: posOfOffset(srcStart + rowindex + startindex),\r\n end: posOfOffset(srcStart + rowindex + markupend),\r\n });\r\n startindex = markupend;\r\n }\r\n const cellstart = rowindex + startindex;\r\n for (const escape of cell.escapes) {\r\n fragments.push({\r\n role: 'display',\r\n tokenLocalIndex: rowindex + startindex,\r\n start: posOfOffset(srcStart + rowindex + startindex),\r\n end: posOfOffset(srcStart + rowindex + cell.index + escape),\r\n contentOffset: contentindex,\r\n contentLength: cell.index + escape - startindex,\r\n });\r\n fragments.push({\r\n role: 'escape',\r\n tokenLocalIndex: rowindex + cell.index + escape,\r\n start: posOfOffset(srcStart + rowindex + cell.index + escape),\r\n end: posOfOffset(\r\n srcStart + rowindex + cell.index + escape + 2\r\n ),\r\n contentOffset:\r\n contentindex + cell.index + escape - startindex,\r\n contentLength: 1,\r\n });\r\n contentindex += cell.index + escape - startindex + 1;\r\n startindex = cell.index + escape + 2;\r\n }\r\n const end = cell.index + cell.raw.length;\r\n fragments.push({\r\n role: 'display',\r\n tokenLocalIndex: rowindex + startindex,\r\n start: posOfOffset(srcStart + rowindex + startindex),\r\n end: posOfOffset(srcStart + rowindex + end),\r\n contentOffset: contentindex,\r\n contentLength: end - startindex,\r\n });\r\n startindex = end;\r\n const to = rowindex + end;\r\n row.push({\r\n content: cell.parsed,\r\n fragmentIndexes: {\r\n from: cellstart,\r\n to,\r\n },\r\n });\r\n }\r\n if (startindex < rawCells[i].length + 1 - firstmeaningfulindex) {\r\n fragments.push({\r\n role: 'markup',\r\n tokenLocalIndex: rowindex + startindex,\r\n start: posOfOffset(srcStart + rowindex + startindex),\r\n end: posOfOffset(\r\n srcStart +\r\n rowindex +\r\n rawCells[i].length +\r\n 1 -\r\n firstmeaningfulindex\r\n ),\r\n });\r\n }\r\n rowindex += rawCells[i].length + 1 - firstmeaningfulindex;\r\n\r\n cells.push(row);\r\n }\r\n\r\n this.tokens.push({\r\n type: 'table',\r\n header,\r\n align,\r\n cells,\r\n fragments,\r\n });\r\n\r\n continue;\r\n }\r\n }\r\n\r\n // lheading\r\n if ((cap = this.rules.lheading.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const srcEnd = getSrcOffset();\r\n const srcStart = srcEnd - cap[0].length;\r\n const textend = cap[1].length;\r\n this.tokens.push({\r\n type: 'heading',\r\n depth: cap[2].charAt(0) === '=' ? 1 : 2,\r\n text: cap[1],\r\n fragments: [\r\n {\r\n role: 'display',\r\n start: posOfOffset(srcStart),\r\n end: posOfOffset(srcStart + textend),\r\n contentOffset: 0,\r\n contentLength: cap[1].length,\r\n },\r\n {\r\n role: 'markup',\r\n start: posOfOffset(textend + srcStart),\r\n end: posOfOffset(srcEnd),\r\n },\r\n ],\r\n });\r\n continue;\r\n }\r\n\r\n // top-level paragraph\r\n if (top && (cap = this.rules.paragraph.exec(src))) {\r\n src = src.substring(cap[0].length);\r\n const srcEnd = getSrcOffset();\r\n const srcStart = srcEnd - cap[0].length;\r\n this.tokens.push({\r\n type: 'paragraph',\r\n text:\r\n cap[1].charAt(cap[1].length - 1) === '\\n'\r\n ? cap[1].slice(0, -1)\r\n : cap[1],\r\n fragments: [\r\n {\r\n role: 'display',\r\n start: posOfOffset(srcStart),\r\n end: posOfOffset(srcEnd),\r\n contentOffset: 0,\r\n contentLength: cap[0].length,\r\n },\r\n ],\r\n });\r\n continue;\r\n }\r\n\r\n // text\r\n if ((cap = this.rules.text.exec(src))) {\r\n // Top-level should never reach here.\r\n src = src.substring(cap[0].length);\r\n const srcEnd = getSrcOffset();\r\n const srcStart = srcEnd - cap[0].length;\r\n this.tokens.push({\r\n type: 'text',\r\n text: cap[0],\r\n fragments: [\r\n {\r\n role: 'display',\r\n start: posOfOffset(srcStart),\r\n end: posOfOffset(srcEnd),\r\n contentOffset: 0,\r\n contentLength: cap[0].length,\r\n },\r\n ],\r\n });\r\n continue;\r\n }\r\n\r\n if (src) {\r\n throw new Error('Infinite loop on byte: ' + src.charCodeAt(0));\r\n }\r\n }\r\n\r\n if (final) {\r\n this.finalizeTokens(lines);\r\n }\r\n\r\n return { tokens: this.tokens, links: this.tokenLinks };\r\n }\r\n\r\n finalizeTokens(lines: string[]) {\r\n for (const token of this.tokens) {\r\n const fragmentswere = token.fragments;\r\n token.fragments = [];\r\n for (\r\n let fragment = fragmentswere.shift();\r\n !!fragment;\r\n fragment = fragmentswere.shift()\r\n ) {\r\n // let internaloffset = 0;\r\n while (fragment.end.row > fragment.start.row) {\r\n token.fragments.push({\r\n ...fragment,\r\n start: fragment.start,\r\n end: {\r\n row: fragment.start.row,\r\n column: 'end',\r\n },\r\n contentOffset:\r\n typeof fragment.contentOffset === 'undefined'\r\n ? undefined\r\n : fragment.contentOffset,\r\n contentLength:\r\n typeof fragment.contentOffset === 'undefined'\r\n ? undefined\r\n : lines[fragment.start.row].length,\r\n });\r\n token.fragments.push({\r\n ...fragment,\r\n start: {\r\n row: fragment.start.row,\r\n column: 'end',\r\n },\r\n end: {\r\n row: fragment.start.row + 1,\r\n column: 0,\r\n },\r\n contentOffset:\r\n typeof fragment.contentOffset === 'undefined'\r\n ? undefined\r\n : fragment.contentOffset + lines[fragment.start.row].length,\r\n contentLength:\r\n typeof fragment.contentOffset === 'undefined' ? undefined : 1,\r\n });\r\n fragment = {\r\n ...fragment,\r\n start: {\r\n row: fragment.start.row + 1,\r\n column: 0,\r\n },\r\n contentOffset:\r\n typeof fragment.contentOffset === 'undefined'\r\n ? undefined\r\n : fragment.contentOffset + lines[fragment.start.row].length + 1,\r\n contentLength:\r\n typeof fragment.contentLength === 'undefined'\r\n ? undefined\r\n : fragment.contentLength - lines[fragment.start.row].length - 1,\r\n };\r\n }\r\n token.fragments.push(fragment);\r\n }\r\n for (const fragment of token.fragments) {\r\n if (fragment.start.column == 'end') {\r\n fragment.start.column = lines[fragment.start.row].length;\r\n }\r\n if (fragment.end.column == 'end') {\r\n fragment.end.column = lines[fragment.end.row].length;\r\n }\r\n if (fragment.end.row == fragment.start.row) {\r\n fragment.rawContent = lines[fragment.end.row].substring(\r\n fragment.start.column,\r\n fragment.end.column\r\n );\r\n } else if (fragment.end.row == fragment.start.row + 1) {\r\n const firstline = lines[fragment.start.row].substring(\r\n fragment.start.column\r\n );\r\n const lastline = lines[fragment.start.row].substring(\r\n 0,\r\n fragment.end.column\r\n );\r\n fragment.rawContent = firstline + '\\n' + lastline;\r\n } else {\r\n const fulllines = lines.slice(\r\n fragment.start.row + 1,\r\n fragment.end.row\r\n );\r\n const firstline = lines[fragment.start.row].substring(\r\n fragment.start.column\r\n );\r\n const lastline = lines[fragment.start.row].substring(\r\n 0,\r\n fragment.end.column\r\n );\r\n fragment.rawContent =\r\n firstline + '\\n' + fulllines.join('\\n') + '\\n' + lastline;\r\n }\r\n }\r\n token.fragments = token.fragments.filter(\r\n v => v.start.row != v.end.row || v.start.column != v.end.column\r\n );\r\n }\r\n const lineadjustments = new Array(lines.length).fill(-1);\r\n for (let j = 0; j < this.tokens.length; j++) {\r\n const token = this.tokens[j];\r\n if (token.type == 'attr_start') {\r\n lineadjustments[token.fragments[0].start.row] = j;\r\n } else {\r\n for (let i = 0; i < token.fragments.length; i++) {\r\n const fragment = token.fragments[i];\r\n const relevantattr = lineadjustments[fragment.start.row];\r\n if (fragment.start.row == fragment.end.row && relevantattr >= 0) {\r\n const attrelement = this.tokens[relevantattr];\r\n const lineadjustment =\r\n (attrelement.fragments[0].end.column as number) -\r\n (attrelement.fragments[0].start.column as number);\r\n (fragment.end.column as number) -= lineadjustment;\r\n (fragment.start.column as number) -= lineadjustment;\r\n if (\r\n fragment.end.column ==\r\n lines[fragment.end.row].length - lineadjustment\r\n ) {\r\n token.fragments.splice(i + 1, 0, {\r\n role: 'markup',\r\n start: fragment.end,\r\n end: {\r\n row: fragment.start.row,\r\n column: lines[fragment.end.row].length,\r\n },\r\n });\r\n attrelement.fragments = [];\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * Slugger generates header id\r\n */\r\nexport type ISlugger = Slugger;\r\n\r\nexport default class Slugger {\r\n private seen: { [key: string]: number };\r\n constructor() {\r\n this.seen = {};\r\n }\r\n\r\n /**\r\n * Convert string to unique id\r\n */\r\n slug(value: string) {\r\n let slug = value\r\n .toLowerCase()\r\n .trim()\r\n .replace(\r\n /[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&()*+,./:;<=>?@[\\]^`{|}~]/g,\r\n ''\r\n )\r\n .replace(/\\s/g, '-');\r\n\r\n if (typeof this.seen[slug] != 'undefined') {\r\n const originalSlug = slug;\r\n do {\r\n this.seen[originalSlug]++;\r\n slug = originalSlug + '-' + this.seen[originalSlug];\r\n } while (typeof this.seen[slug] != 'undefined');\r\n }\r\n this.seen[slug] = 0;\r\n\r\n return slug;\r\n }\r\n}\r\n","import { Options } from './defaults';\r\nimport { escape } from './helpers';\r\n\r\n/**\r\n * TextRenderer\r\n * returns only the textual part of the token\r\n */\r\nexport interface ITextRenderer {\r\n setOptions(options: Options): void;\r\n strong(text: Out): Out;\r\n sub(text: Out): Out;\r\n sup(text: Out): Out;\r\n marked(text: Out): Out;\r\n em(text: Out): Out;\r\n codespan(text: Out): Out;\r\n del(text: Out): Out;\r\n text(text: Out): Out;\r\n link(href: string, title: string | null, text: Out): Out;\r\n image(\r\n href: string,\r\n title: string | null,\r\n text: string,\r\n width: number | undefined,\r\n height: number | undefined\r\n ): Out;\r\n br(): Out;\r\n html(html: string, long: boolean): Out;\r\n\r\n ofText(text: string, encode?: boolean): Out;\r\n\r\n start(): Out;\r\n cat(a: Out, b: Out): Out;\r\n}\r\n\r\nexport default class TextRenderer implements ITextRenderer {\r\n start(): string {\r\n return '';\r\n }\r\n cat(a: string, b: string): string {\r\n return a + ' ' + b;\r\n }\r\n ofText(text: string, encodeIt?: boolean): string {\r\n return escape(text, encodeIt);\r\n }\r\n\r\n setOptions(_options: Options) {\r\n // noop\r\n }\r\n\r\n // no need for block level renderers\r\n strong(text: string) {\r\n return text;\r\n }\r\n\r\n em(text: string) {\r\n return text;\r\n }\r\n\r\n codespan(text: string) {\r\n return text;\r\n }\r\n\r\n del(text: string) {\r\n return text;\r\n }\r\n\r\n text(text: string) {\r\n return text;\r\n }\r\n\r\n link(_href: string, _title: string | null, text: string) {\r\n return '' + text;\r\n }\r\n\r\n image(_href: string, _title: string | null, text: string) {\r\n return '' + text;\r\n }\r\n\r\n br() {\r\n return '';\r\n }\r\n sub(text: string) {\r\n return text;\r\n }\r\n sup(text: string) {\r\n return text;\r\n }\r\n\r\n marked(text: string) {\r\n return text;\r\n }\r\n\r\n html(): string {\r\n return '';\r\n }\r\n}\r\n","import { defaults, Options } from './defaults';\r\nimport Renderer, { BlockRenderer } from './Renderer';\r\nimport Slugger, { ISlugger } from './Slugger';\r\nimport {\r\n LexerToken,\r\n TextLexerToken,\r\n Fragment,\r\n ContentWithFragments,\r\n} from './Lexer';\r\nimport InlineLexer from './InlineLexer';\r\nimport TextRenderer from './TextRenderer';\r\n\r\nimport { unescape, Ctor } from './helpers';\r\n\r\n/**\r\n * Parsing & Compiling\r\n */\r\nexport default class Parser {\r\n options: Options;\r\n renderer: BlockRenderer;\r\n slugger: ISlugger = new Slugger();\r\n inline: InlineLexer;\r\n inlineText: InlineLexer;\r\n tokens: LexerToken[] = [];\r\n\r\n constructor(\r\n renderFactory: Ctor>,\r\n options?: Partial>\r\n ) {\r\n this.options = {\r\n ...defaults,\r\n ...(options || {}),\r\n };\r\n this.renderer = this.options.renderer =\r\n this.options.renderer || new renderFactory();\r\n this.renderer.setOptions(this.options);\r\n this.inline = new InlineLexer({}, this.options, this.renderer);\r\n this.inlineText = new InlineLexer({}, this.options, new TextRenderer());\r\n }\r\n\r\n /**\r\n * Static Parse Method\r\n */\r\n static parse(\r\n tokens: LexerToken[],\r\n links: { [key: string]: { href: string; title?: string } },\r\n options?: Partial\r\n ) {\r\n const parser = new Parser(Renderer, options);\r\n return parser.parse(tokens, links);\r\n }\r\n\r\n /**\r\n * Parse Loop\r\n */\r\n parse(\r\n tokens: LexerToken[],\r\n links: { [key: string]: { href: string; title?: string } }\r\n ) {\r\n this.inline.reset(links);\r\n this.inlineText.reset(links);\r\n tokens = [...tokens];\r\n\r\n this.tokens = tokens.reverse();\r\n\r\n let out = this.renderer.start();\r\n let token: LexerToken | undefined;\r\n while ((token = this.next())) {\r\n out = this.renderer.cat(out, this.tok(token));\r\n }\r\n\r\n return out;\r\n }\r\n\r\n /**\r\n * Next Token\r\n */\r\n next() {\r\n return this.tokens.pop();\r\n }\r\n\r\n /**\r\n * Preview Next Token\r\n */\r\n peek(): LexerToken | undefined {\r\n return this.tokens[this.tokens.length - 1];\r\n }\r\n\r\n /**\r\n * Parse Text Tokens\r\n */\r\n parseText(token: TextLexerToken) {\r\n let body = token.text;\r\n let fragments = token.fragments;\r\n\r\n let nextToken: LexerToken | undefined;\r\n while ((nextToken = this.peek())) {\r\n if (nextToken.type !== 'text') {\r\n break;\r\n }\r\n this.next();\r\n fragments.push(\r\n {\r\n role: 'display',\r\n rawContent: '\\n',\r\n start: fragments[fragments.length - 1].end,\r\n end: nextToken.fragments[0].start,\r\n contentLength: 1,\r\n contentOffset: body.length,\r\n },\r\n ...nextToken.fragments.map(fr => {\r\n if (typeof fr.contentOffset === 'undefined') {\r\n return fr;\r\n }\r\n return {\r\n ...fr,\r\n contentOffset: fr.contentOffset + body.length + 1,\r\n };\r\n })\r\n );\r\n nextToken.fragments = [];\r\n\r\n body += '\\n' + nextToken.text;\r\n }\r\n\r\n return this.inline.output(body, fragments);\r\n }\r\n\r\n spliceCellFragments(fragments: Fragment[], cell: ContentWithFragments) {\r\n const results: Fragment[] = [];\r\n let insertPoint: undefined | number;\r\n let active = false;\r\n for (let i = 0; i < fragments.length; ) {\r\n const fragment = fragments[i];\r\n if (typeof fragment.tokenLocalIndex === 'undefined' && active) {\r\n fragments.splice(i, 1);\r\n continue;\r\n } else if (typeof fragment.tokenLocalIndex === 'undefined') {\r\n i++;\r\n continue;\r\n }\r\n if (\r\n cell.fragmentIndexes.to &&\r\n fragment.tokenLocalIndex! >= cell.fragmentIndexes.to\r\n ) {\r\n break;\r\n }\r\n if (fragment.tokenLocalIndex! >= cell.fragmentIndexes.from) {\r\n fragments.splice(i, 1);\r\n active = true;\r\n if (typeof insertPoint == 'undefined') {\r\n insertPoint = i;\r\n }\r\n } else {\r\n i++;\r\n continue;\r\n }\r\n }\r\n if (typeof insertPoint == 'undefined') {\r\n insertPoint = fragments.length;\r\n }\r\n fragments.splice(insertPoint, 0, ...cell.fragmentIndexes.fragments!);\r\n return results;\r\n }\r\n\r\n collectCellFragments(fragments: Fragment[], cell: ContentWithFragments) {\r\n const results: Fragment[] = [];\r\n let active = false;\r\n for (const fragment of fragments) {\r\n if (typeof fragment.tokenLocalIndex === 'undefined' && active) {\r\n results.push(fragment);\r\n } else if (typeof fragment.tokenLocalIndex === 'undefined') {\r\n continue;\r\n }\r\n if (\r\n cell.fragmentIndexes.to &&\r\n fragment.tokenLocalIndex! >= cell.fragmentIndexes.to\r\n ) {\r\n break;\r\n }\r\n if (fragment.tokenLocalIndex! >= cell.fragmentIndexes.from) {\r\n results.push(fragment);\r\n active = true;\r\n }\r\n }\r\n cell.fragmentIndexes.fragments = results;\r\n return results;\r\n }\r\n\r\n /**\r\n * Parse Current Token\r\n */\r\n tok(token: LexerToken): Out {\r\n let body: Out = this.renderer.start();\r\n switch (token.type) {\r\n case 'space': {\r\n return this.renderer.ofText('');\r\n }\r\n case 'hr': {\r\n return this.renderer.hr();\r\n }\r\n case 'heading': {\r\n const style = `h${token.depth}`;\r\n for (const fragment of token.fragments) {\r\n fragment.blockStyles = fragment.blockStyles || [];\r\n fragment.blockStyles.push(style);\r\n }\r\n return this.renderer.heading(\r\n this.inline.output(token.text, token.fragments),\r\n token.depth,\r\n unescape(this.inlineText.output(token.text, token.fragments)),\r\n this.slugger\r\n );\r\n }\r\n case 'code': {\r\n const style = `code`;\r\n for (const fragment of token.fragments) {\r\n fragment.blockStyles = fragment.blockStyles || [];\r\n fragment.blockStyles.push(style);\r\n }\r\n return this.renderer.code(token.text, token.lang, token.escaped);\r\n }\r\n case 'table': {\r\n const style = `table`;\r\n for (const fragment of token.fragments) {\r\n fragment.blockStyles = fragment.blockStyles || [];\r\n fragment.blockStyles.push(style);\r\n }\r\n let header = this.renderer.start(),\r\n i,\r\n row,\r\n cell,\r\n j;\r\n\r\n // header\r\n cell = this.renderer.start();\r\n for (i = 0; i < token.header.length; i++) {\r\n const fragments = this.collectCellFragments(\r\n token.fragments,\r\n token.header[i]\r\n );\r\n cell = this.renderer.cat(\r\n cell,\r\n this.renderer.tablecell(\r\n this.inline.output(token.header[i].content, fragments),\r\n { header: true, align: token.align[i] }\r\n )\r\n );\r\n this.spliceCellFragments(token.fragments, token.header[i]);\r\n }\r\n header = this.renderer.cat(header, this.renderer.tablerow(cell));\r\n\r\n for (i = 0; i < token.cells.length; i++) {\r\n row = token.cells[i];\r\n\r\n cell = this.renderer.start();\r\n for (j = 0; j < row.length; j++) {\r\n const fragments = this.collectCellFragments(\r\n token.fragments,\r\n row[j]\r\n );\r\n cell = this.renderer.cat(\r\n cell,\r\n this.renderer.tablecell(\r\n this.inline.output(row[j].content, fragments),\r\n { header: false, align: token.align[j] }\r\n )\r\n );\r\n this.spliceCellFragments(token.fragments, row[j]);\r\n }\r\n\r\n body = this.renderer.cat(body, this.renderer.tablerow(cell));\r\n }\r\n return this.renderer.table(header, body);\r\n }\r\n case 'blockquote_start': {\r\n body = this.renderer.start();\r\n\r\n let innertoken;\r\n while (\r\n (innertoken = this.next()) &&\r\n innertoken.type !== 'blockquote_end'\r\n ) {\r\n body = this.renderer.cat(body, this.tok(innertoken));\r\n }\r\n\r\n return this.renderer.blockquote(body);\r\n }\r\n case 'list_start': {\r\n body = this.renderer.start();\r\n const ordered = token.ordered,\r\n start = token.start;\r\n\r\n let innertoken;\r\n while ((innertoken = this.next()) && innertoken.type !== 'list_end') {\r\n body = this.renderer.cat(body, this.tok(innertoken));\r\n }\r\n\r\n return this.renderer.list(body, ordered, start, token.orderstyle);\r\n }\r\n case 'list_item_start': {\r\n body = this.renderer.start();\r\n const loose = token.loose;\r\n const checked = token.checked || false;\r\n const task = token.task;\r\n\r\n if (token.task) {\r\n body = this.renderer.cat(body, this.renderer.checkbox(checked));\r\n }\r\n\r\n let nextToken: LexerToken | undefined;\r\n while (\r\n (nextToken = this.next()) &&\r\n nextToken.type !== 'list_item_end'\r\n ) {\r\n body = this.renderer.cat(\r\n body,\r\n !loose && nextToken.type === 'text'\r\n ? this.parseText(nextToken)\r\n : this.tok(nextToken)\r\n );\r\n }\r\n return this.renderer.listitem(body, task, checked);\r\n }\r\n case 'html': {\r\n // TODO parse inline content if parameter markdown=1\r\n return this.renderer.html(token.text, true);\r\n }\r\n case 'paragraph': {\r\n return this.renderer.paragraph(\r\n this.inline.output(token.text, token.fragments)\r\n );\r\n }\r\n case 'text': {\r\n return this.renderer.paragraph(this.parseText(token));\r\n }\r\n case 'attr_start': {\r\n this.renderer.styleNextElement(\r\n token.classes,\r\n token.attributes,\r\n token.id\r\n );\r\n return body;\r\n }\r\n default: {\r\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\r\n if (this.options.silent) {\r\n console.log(errMsg);\r\n } else {\r\n throw new Error(errMsg);\r\n }\r\n }\r\n }\r\n return body;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/consistent-type-imports */\r\nimport { APP_CONSTS } from '../init';\r\nimport { abp, Abp } from './abp';\r\nclass Util {\r\n abp: Abp = abp;\r\n loadScript(url: string) {\r\n const script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n script.src = url;\r\n document.body.appendChild(script);\r\n }\r\n\r\n title(title: string) {\r\n const appname = this.abp.localization.localize(\r\n 'AppName',\r\n APP_CONSTS.localization.defaultLocalizationSourceName\r\n );\r\n const page = this.abp.localization.localize(\r\n title,\r\n APP_CONSTS.localization.defaultLocalizationSourceName\r\n );\r\n window.document.title = appname + ' – ' + page;\r\n }\r\n\r\n showThisRoute(itAccess: any, currentAccess: any) {\r\n if (typeof itAccess === 'object' && Array.isArray(itAccess)) {\r\n return itAccess.includes(currentAccess);\r\n } else {\r\n return itAccess === currentAccess;\r\n }\r\n }\r\n\r\n getRouterObjByName(routers: Array, name?: string): any {\r\n if (!name || !routers || !routers.length) {\r\n return null;\r\n }\r\n // debugger;\r\n let routerObj = null;\r\n for (const item of routers) {\r\n if (item.name === name) {\r\n return item;\r\n }\r\n routerObj = this.getRouterObjByName(item.children, name);\r\n if (routerObj) {\r\n return routerObj;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n toDefaultPage(\r\n routers: Array,\r\n name: string | undefined,\r\n route: any,\r\n next: any\r\n ) {\r\n const len = routers.length;\r\n let i = 0;\r\n let notHandle = true;\r\n while (i < len) {\r\n if (\r\n routers[i].name === name &&\r\n routers[i].children &&\r\n routers[i].redirect === undefined\r\n ) {\r\n route.replace({\r\n name: routers[i].children[0].name,\r\n });\r\n notHandle = false;\r\n next();\r\n break;\r\n }\r\n i++;\r\n }\r\n if (notHandle) {\r\n next();\r\n }\r\n }\r\n}\r\nconst util = new Util();\r\nexport default util;\r\n\r\nconst urlValidator = /^(?:(?:https?):\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!10(?:\\.\\d{1,3}){3})(?!127(?:\\.\\d{1,3}){3})(?!169\\.254(?:\\.\\d{1,3}){2})(?!192\\.168(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}0-9]+-?)*[a-z\\u{00a1}-\\u{ffff}0-9]+)*(?:\\.(?:[a-z\\u{00a1}-\\u{ffff}]{2,})))(?::\\d{2,5})?(?:\\/[^\\s]*)?$/iu;\r\nexport function testURL(url: string): boolean {\r\n return urlValidator.test(url);\r\n}\r\n","\r\nimport { Component, Prop } from 'vue-property-decorator';\r\n\r\nimport AbpBase from '../lib/abpbase';\r\nimport type { IndexSection } from '../store/modules/index-configuration';\r\nimport type { ArticleSummary, Notice } from '../store/modules/article-list';\r\nimport {\r\n compareSortables,\r\n compareArrays,\r\n binarySearch,\r\n} from '../lib/insert-sorted';\r\nimport type { CreateElement, VNode } from 'vue';\r\n\r\nimport {\r\n VList,\r\n VListGroup,\r\n VListItemTitle,\r\n VListItemContent,\r\n VListItemIcon,\r\n VListItem,\r\n VBadge,\r\n VIcon,\r\n VImg,\r\n VSkeletonLoader,\r\n} from 'vuetify/lib';\r\n\r\ninterface PartialArticleSummary extends Partial {\r\n isPublic: boolean;\r\n hierarchyParent: string[] | null;\r\n hierarchyWeight: string | null;\r\n documentName: string;\r\n}\r\n\r\ninterface SectionDefinitionList extends Array {}\r\n\r\ninterface SectionDefinition {\r\n icon?: string;\r\n name: string;\r\n children: SectionDefinitionList;\r\n articles: { documentName: string; hierarchyWeight: string }[];\r\n}\r\n\r\nexport function renderSections(\r\n sections: IndexSection[] | undefined,\r\n level: number,\r\n articles: ArticleSummary[],\r\n searchPath: string[],\r\n _prefix = ''\r\n): SectionDefinitionList {\r\n sections = sections || [];\r\n const results: SectionDefinitionList = [];\r\n for (let i = 0; i < sections.length; i++) {\r\n const section = sections[i];\r\n // const tag = level == 0 ? 'H1' : level == 1 ? 'H2' : 'H3';\r\n // const classes = level == 1 ? 'collapsible' : '';\r\n // const sectionName = prefix + section.name;\r\n\r\n const innerPath = [...searchPath, section.name];\r\n const searchKey: PartialArticleSummary = {\r\n isPublic: true,\r\n hierarchyParent: innerPath,\r\n hierarchyWeight: '',\r\n documentName: '',\r\n };\r\n const search = binarySearch(\r\n articles,\r\n searchKey,\r\n (v: ArticleSummary) => v as PartialArticleSummary,\r\n compareArticlesByPosition,\r\n 'after'\r\n );\r\n const relevantArticles: {\r\n documentName: string;\r\n hierarchyWeight: string;\r\n }[] = [];\r\n let j = search.match == 'never' ? articles.length : search.index;\r\n for (; j < articles.length; j++) {\r\n const relevantDocument = articles[j];\r\n if (!relevantDocument.isPublic) {\r\n break;\r\n }\r\n if (\r\n compareArrays(\r\n searchKey.hierarchyParent!,\r\n relevantDocument.hierarchyParent!\r\n ) != 0\r\n ) {\r\n break;\r\n }\r\n relevantArticles.push({\r\n documentName: relevantDocument.documentName,\r\n hierarchyWeight: relevantDocument.hierarchyWeight!,\r\n });\r\n }\r\n\r\n results.push({\r\n name: section.name,\r\n icon: section.icon || undefined,\r\n children: renderSections(\r\n section.children,\r\n level + 1,\r\n articles,\r\n innerPath\r\n ),\r\n articles: relevantArticles,\r\n });\r\n }\r\n return results;\r\n}\r\n\r\nfunction compareArticlesByPosition(\r\n a: PartialArticleSummary,\r\n b: PartialArticleSummary\r\n) {\r\n let r;\r\n if ((r = compareSortables(a.isPublic, b.isPublic)) != 0) {\r\n return r;\r\n }\r\n if (a.isPublic) {\r\n if ((r = compareArrays(a.hierarchyParent!, b.hierarchyParent!)) != 0) {\r\n return r;\r\n }\r\n if ((r = compareSortables(a.hierarchyWeight!, b.hierarchyWeight!)) != 0) {\r\n return r;\r\n }\r\n }\r\n return compareSortables(a.documentName, b.documentName);\r\n}\r\n\r\n@Component({\r\n components: {\r\n VList,\r\n VListGroup,\r\n VListItemTitle,\r\n VListItemContent,\r\n VListItemIcon,\r\n VListItem,\r\n VBadge,\r\n VIcon,\r\n VImg,\r\n VSkeletonLoader,\r\n },\r\n})\r\nexport default class HomePageIndex extends AbpBase {\r\n @Prop(String)\r\n section!: 'ALS' | 'BLS';\r\n\r\n get content(): SectionDefinitionList {\r\n return [\r\n {\r\n name: 'ALS',\r\n articles: [],\r\n icon: 'mdi-needle',\r\n children: renderSections(\r\n this.$store.state.articleList.indexConfiguration.alsSections,\r\n 1,\r\n this.sortedArticles.filter(v => v.protocolSection !== 'BLS'),\r\n []\r\n ),\r\n },\r\n {\r\n name: 'BLS',\r\n articles: [],\r\n icon: 'mdi-stethoscope',\r\n children: renderSections(\r\n this.$store.state.articleList.indexConfiguration.blsSections,\r\n 1,\r\n this.sortedArticles.filter(v => v.protocolSection === 'BLS'),\r\n []\r\n ),\r\n },\r\n ];\r\n }\r\n\r\n get sortedArticles(): ArticleSummary[] {\r\n const tempList: ArticleSummary[] = [];\r\n for (let i = 0; i < this.$store.state.articleList.documents.length; i++) {\r\n tempList.push(this.$store.state.articleList.documents[i]);\r\n }\r\n tempList.sort(compareArticlesByPosition);\r\n return tempList;\r\n }\r\n\r\n created() {\r\n this.$store.dispatch('articleList/initDatastore');\r\n }\r\n\r\n render(h: CreateElement) {\r\n var _h = this.$createElement;\r\n const _c = _h;\r\n return _c(\r\n 'div',\r\n {\r\n staticClass: 'small-index-host',\r\n },\r\n [\r\n _c('v-list', { attrs: { nav: '', dense: '', role: 'navigation' } }, [\r\n _c(\r\n 'v-list-item',\r\n {\r\n attrs: {\r\n to: {\r\n name: 'display-notices',\r\n },\r\n },\r\n },\r\n [\r\n h('v-icon', ['mdi-alert']),\r\n h(\r\n 'v-list-item-title',\r\n {\r\n attrs: {},\r\n staticClass: 'notice-zone',\r\n },\r\n [\r\n this.notices > 0\r\n ? h(\r\n 'v-badge',\r\n {\r\n attrs: {\r\n content: this.notices > 0 ? this.notices : '',\r\n color: 'warning',\r\n inline: true,\r\n },\r\n },\r\n [this.L('Home')]\r\n )\r\n : this.L('Home'),\r\n ]\r\n ),\r\n ]\r\n ),\r\n ...this.renderSection(this.content),\r\n ...this.renderAdminLink(),\r\n ]),\r\n ]\r\n );\r\n }\r\n\r\n renderAdminLink() {\r\n if (this.$store.state.app.fromApp) {\r\n return [];\r\n }\r\n const h = this.$createElement;\r\n return [\r\n h(\r\n 'v-list-item',\r\n {\r\n on: {\r\n click: () => {\r\n this.$emit('togglelayout');\r\n },\r\n },\r\n },\r\n [\r\n h('v-icon', ['mdi-cog']),\r\n h(\r\n 'v-list-item-title',\r\n {\r\n staticClass: 'notice-zone',\r\n },\r\n [this.L('SwitchToAdminView')]\r\n ),\r\n ]\r\n ),\r\n ];\r\n }\r\n\r\n renderSection(content: SectionDefinitionList) {\r\n if (!content) {\r\n return [];\r\n }\r\n const h = this.$createElement;\r\n const results: VNode[] = [];\r\n for (let i = 0; i < content.length; i++) {\r\n const section = content[i];\r\n const children = this.renderSection(section.children);\r\n for (let j = 0; j < section.articles.length; j++) {\r\n const article = section.articles[j];\r\n children.push(\r\n h(\r\n 'v-list-item',\r\n {\r\n key: article.documentName,\r\n attrs: {\r\n to: {\r\n name: 'article',\r\n params: {\r\n id: article.documentName,\r\n },\r\n },\r\n },\r\n },\r\n [\r\n h('v-list-item-content', [\r\n h('v-list-item-title', [article.documentName]),\r\n ]),\r\n ]\r\n )\r\n );\r\n }\r\n results.push(\r\n h(\r\n 'v-list-group',\r\n {\r\n key: section.name,\r\n attrs: section.icon\r\n ? {\r\n 'prepend-icon': section.icon,\r\n 'sub-group': true,\r\n }\r\n : {\r\n 'sub-group': true,\r\n },\r\n },\r\n [\r\n h(\r\n 'v-list-item-content',\r\n {\r\n slot: 'activator',\r\n },\r\n [h('v-list-item-title', [section.name])]\r\n ),\r\n ...children,\r\n ]\r\n )\r\n );\r\n }\r\n return results;\r\n }\r\n\r\n get notices() {\r\n const visibleNotices: Notice[] = [];\r\n const currentDate = this.$store.state.articleList.currentDate;\r\n const currentNotices =\r\n this.$store.state.articleList.noticesByDailyBucket[currentDate] || {};\r\n for (let i = 0; i < this.$store.state.articleList.notices.length; i++) {\r\n if (currentNotices[this.$store.state.articleList.notices[i].id]) {\r\n visibleNotices.push({\r\n ...this.$store.state.articleList.notices[i],\r\n });\r\n }\r\n }\r\n visibleNotices.sort(\r\n (a, b) =>\r\n compareSortables(\r\n a.fromDate == null || a.fromDate > a.modificationTime\r\n ? a.modificationTime\r\n : a.fromDate,\r\n b.fromDate == null || b.fromDate > b.modificationTime\r\n ? b.modificationTime\r\n : b.fromDate\r\n ) * -1\r\n );\r\n return visibleNotices.length;\r\n }\r\n}\r\n","import { VNode } from 'vue';\r\nimport { VTabs } from 'vuetify/lib/components/VTabs/index';\r\nimport VTabsBar from 'vuetify/lib/components/VTabs/VTabsBar';\r\nimport VTabsItems from 'vuetify/lib/components/VTabs/VTabsItems';\r\nimport { convertToUnit } from 'vuetify/lib/util/helpers';\r\n\r\nconst VTabsBarEx = VTabsBar.extend({\r\n props: {\r\n marginLeft: {\r\n type: Number,\r\n default: 0,\r\n },\r\n marginRight: {\r\n type: Number,\r\n default: 0,\r\n },\r\n },\r\n methods: {\r\n genContent(this: any) {\r\n const render = VTabsBar.options.methods.genContent.call(this);\r\n render.data = render.data || {};\r\n render.data.style = render.data.style || {};\r\n render.data.style['marginLeft'] = '' + this.marginLeft + 'px';\r\n render.data.style['marginRight'] = '' + this.marginRight + 'px';\r\n return render;\r\n },\r\n onTouchEnd(this: any) {\r\n const { content, wrapper } = this.$refs;\r\n const maxScrollOffset =\r\n content.clientWidth +\r\n this.marginLeft +\r\n this.marginRight -\r\n wrapper.clientWidth;\r\n content.style.setProperty('transition', null);\r\n content.style.setProperty('willChange', null);\r\n\r\n if (this.$vuetify.rtl) {\r\n /* istanbul ignore else */\r\n if (this.scrollOffset > 0 || !this.isOverflowing) {\r\n this.scrollOffset = 0;\r\n } else if (this.scrollOffset <= -maxScrollOffset) {\r\n this.scrollOffset = -maxScrollOffset;\r\n }\r\n } else {\r\n /* istanbul ignore else */\r\n if (this.scrollOffset < 0 || !this.isOverflowing) {\r\n this.scrollOffset = 0;\r\n } else if (this.scrollOffset >= maxScrollOffset) {\r\n this.scrollOffset = maxScrollOffset;\r\n }\r\n }\r\n },\r\n setWidths(this: any) {\r\n window.requestAnimationFrame(() => {\r\n const { content, wrapper } = this.$refs;\r\n this.widths = {\r\n content: content\r\n ? content.clientWidth + this.marginLeft + this.marginRight\r\n : 0,\r\n wrapper: wrapper ? wrapper.clientWidth : 0,\r\n };\r\n this.isOverflowing = this.widths.wrapper < this.widths.content;\r\n this.scrollIntoView();\r\n });\r\n },\r\n },\r\n});\r\n\r\nexport default VTabs.extend({\r\n props: {\r\n marginLeft: {\r\n type: Number,\r\n default: 0,\r\n },\r\n marginRight: {\r\n type: Number,\r\n default: 0,\r\n },\r\n },\r\n methods: {\r\n genItems(items: VNode | null, item: VNode[]) {\r\n // If user provides items\r\n // opt to use theirs\r\n if (items) return items;\r\n\r\n // If no tabs are provided\r\n // render nothing\r\n if (!item.length) return null;\r\n\r\n return this.$createElement(\r\n VTabsItems,\r\n {\r\n props: {\r\n value: this.internalValue,\r\n touchless: true,\r\n },\r\n on: {\r\n change: (val: any) => {\r\n this.internalValue = val;\r\n },\r\n },\r\n },\r\n item\r\n );\r\n },\r\n genBar(this: any, items: any, slider: any) {\r\n const data = {\r\n style: {\r\n height: convertToUnit(this.height),\r\n },\r\n props: {\r\n activeClass: this.activeClass,\r\n centerActive: this.centerActive,\r\n dark: this.dark,\r\n light: this.light,\r\n mandatory: !this.optional,\r\n mobileBreakPoint: this.mobileBreakPoint,\r\n nextIcon: this.nextIcon,\r\n prevIcon: this.prevIcon,\r\n showArrows: this.showArrows,\r\n value: this.internalValue,\r\n marginLeft: this.marginLeft,\r\n marginRight: this.marginRight,\r\n },\r\n on: {\r\n 'call:slider': this.callSlider,\r\n change: (val: any) => {\r\n this.internalValue = val;\r\n },\r\n },\r\n ref: 'items',\r\n };\r\n this.setTextColor(this.computedColor, data);\r\n this.setBackgroundColor(this.backgroundColor, data);\r\n return this.$createElement(VTabsBarEx, data, [\r\n this.genSlider(slider),\r\n items,\r\n ]);\r\n },\r\n },\r\n});\r\n","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\n \"div\",\n {\n ref: \"layout\",\n staticClass: \"mobile-layout\",\n attrs: { zoom: _vm.zoomfactor },\n },\n [\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"touch\",\n rawName: \"v-touch\",\n value: {\n left: () => _vm.$router.forward(),\n right: () => _vm.$router.back(),\n },\n expression:\n \"{ left: () => $router.forward(), right: () => $router.back() }\",\n },\n ],\n staticClass: \"content-frame\",\n class: { mobile: _vm.mobile },\n },\n [\n _c(\"app-system-bar\", {\n attrs: { zoom: _vm.zoom, showall: _vm.showall },\n on: {\n zoomchanged: function ($event) {\n return _vm.zoomChanged($event)\n },\n \"update:showall\": function ($event) {\n _vm.showall = $event\n },\n },\n }),\n _c(\n \"v-content\",\n { staticClass: \"sized\" },\n [\n _c(\n \"v-container\",\n { staticClass: \"padx\", attrs: { fluid: \"\" } },\n [_c(\"router-view\", { attrs: { name: \"default\" } })],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\"notification-host\"),\n _c(\"modal-host\", { attrs: { mobile: _vm.mobile } }),\n _c(\"search-bar\", {\n attrs: { mobile: _vm.mobile },\n on: { togglelayout: _vm.toggleLayout },\n }),\n _c(\"transition\", { attrs: { name: \"fade\" } }, [\n _c(\n \"div\",\n { staticClass: \"loading-indicator\" },\n [\n !_vm.documentsAreReady\n ? _c(\"v-progress-circular\", {\n attrs: { color: \"primary\", indeterminate: \"\" },\n })\n : _vm._e(),\n ],\n 1\n ),\n ]),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\"header\", [\n _c(\"div\", { staticClass: \"true-header\" }, [\n _c(\n \"div\",\n { staticClass: \"toolbar__tools\" },\n [\n _c(\"div\", { staticClass: \"category\" }, [\n _vm._v(_vm._s(_vm.longCategory)),\n ]),\n _c(\"v-spacer\"),\n _c(\"div\", { staticClass: \"category\" }, [\n _vm._v(_vm._s(_vm.shortCategory)),\n ]),\n ],\n 1\n ),\n _vm.showLogo\n ? _c(\n \"div\",\n { staticClass: \"toolbar__logo\" },\n [\n _c(\"v-img\", {\n attrs: {\n src: \"/img/icons/apple-touch-icon-120x120.png\",\n height: \"56\",\n width: \"56\",\n contain: \"\",\n },\n }),\n ],\n 1\n )\n : _vm._e(),\n _c(\n \"div\",\n { staticClass: \"toolbar__content\" },\n [\n _c(\n \"v-btn\",\n {\n staticClass: \"ios\",\n attrs: { icon: \"\", \"aria-label\": \"go back\" },\n on: { click: _vm.goBack },\n },\n [\n _c(\"v-icon\", { attrs: { \"x-large\": \"\" } }, [\n _vm._v(\"mdi-arrow-left\"),\n ]),\n ],\n 1\n ),\n _c(\"v-spacer\"),\n _c(\"div\", { staticClass: \"title\" }, [\n _vm._v(\" \" + _vm._s(_vm.pageTitle) + \" \"),\n ]),\n _c(\"v-spacer\"),\n _c(\n \"v-menu\",\n {\n attrs: { \"offset-y\": \"\", \"content-class\": \"caret-menu-content\" },\n scopedSlots: _vm._u([\n {\n key: \"activator\",\n fn: function ({ on }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n { attrs: { icon: \"\", \"aria-label\": \"adjust zoom\" } },\n on\n ),\n [_c(\"v-icon\", [_vm._v(\"mdi-cog\")])],\n 1\n ),\n ]\n },\n },\n ]),\n },\n [\n _c(\n \"v-menu-caret\",\n { attrs: { right: \"\" } },\n [\n _c(\n \"v-list\",\n [\n _c(\n \"v-list-item\",\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\n \"v-flex\",\n { staticClass: \"hover\" },\n [\n _c(\"v-slider\", {\n attrs: {\n value: _vm.zoom,\n step: \"25\",\n ticks: \"always\",\n \"tick-size\": \"4\",\n \"hide-details\": \"\",\n },\n on: {\n input: function ($event) {\n return _vm.zoomChanged($event)\n },\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\"v-list-item-action\"),\n _c(\"v-icon\", [_vm._v(\"mdi-magnify-plus-outline\")]),\n ],\n 1\n ),\n _c(\n \"v-list-item-group\",\n { attrs: { multiple: \"\" } },\n [\n _c(\n \"v-list-item\",\n {\n attrs: { active: _vm.showall },\n on: {\n change: function ($event) {\n return _vm.$emit(\n \"update:showall\",\n !_vm.showall\n )\n },\n },\n },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\"v-list-item-title\", [\n _vm._v(_vm._s(_vm.L(\"ShowAllSections\"))),\n ]),\n ],\n 1\n ),\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n attrs: { \"input-value\": _vm.showall },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ]),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\"div\", { staticClass: \"v-menu-caret\" }, [\n _c(\n \"div\",\n {\n staticClass: \"v-menu-caret__caret\",\n class: { right: _vm.right, left: !_vm.right },\n },\n [_vm._m(0)]\n ),\n _c(\"div\", { staticClass: \"v-menu-caret__content\" }, [_vm._t(\"default\")], 2),\n ])\n}\nvar staticRenderFns = [\n function () {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\"div\", { staticClass: \"v-menu-caret__caretbox\" }, [\n _c(\"div\", { staticClass: \"v-menu-caret__caretunderlay\" }),\n _c(\"div\", { staticClass: \"v-menu-caret__caretborder\" }),\n ])\n },\n]\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\nimport { Component, Prop, Vue } from 'vue-property-decorator';\r\n\r\n@Component({\r\n components: {},\r\n})\r\nexport default class VMenuCaret extends Vue {\r\n @Prop(Boolean)\r\n right!: boolean;\r\n}\r\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vMenuCaret.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./vMenuCaret.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./vMenuCaret.vue?vue&type=template&id=55992c06&scoped=true&\"\nimport script from \"./vMenuCaret.vue?vue&type=script&lang=ts&\"\nexport * from \"./vMenuCaret.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./vMenuCaret.vue?vue&type=style&index=0&id=55992c06&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"55992c06\",\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Prop, Emit } from 'vue-property-decorator';\r\nimport { articlesAreSame } from '../store/modules/article';\r\n\r\nimport {\r\n VSpacer,\r\n VImg,\r\n VMenu,\r\n VBtn,\r\n VFlex,\r\n VSlider,\r\n VIcon,\r\n VList,\r\n VListItemContent,\r\n VListItem,\r\n VListItemAction,\r\n VListGroup,\r\n VCheckbox,\r\n VListItemGroup,\r\n VListItemTitle,\r\n} from 'vuetify/lib';\r\nimport AbpBase from '../lib/abpbase';\r\nimport VMenuCaret from '../components/vMenuCaret.vue';\r\n\r\n@Component({\r\n components: {\r\n VSpacer,\r\n VImg,\r\n VMenu,\r\n VBtn,\r\n VFlex,\r\n VSlider,\r\n VIcon,\r\n VMenuCaret,\r\n VList,\r\n VListItemContent,\r\n VListItem,\r\n VListItemAction,\r\n VListGroup,\r\n VListItemTitle,\r\n VCheckbox,\r\n VListItemGroup,\r\n },\r\n})\r\nexport default class AppSystemBar extends AbpBase {\r\n @Prop(Boolean)\r\n showall!: boolean;\r\n\r\n get showLogo() {\r\n return this.$store.state.route.name == 'display-notices';\r\n }\r\n\r\n get id() {\r\n return this.$store.state.route.params.id;\r\n }\r\n\r\n get showTabs() {\r\n return [\r\n 'article',\r\n 'not-found',\r\n 'edit-article',\r\n 'preview-article',\r\n 'article-revisions',\r\n ].includes(this.$store.state.route.name!);\r\n }\r\n\r\n get pageTitle() {\r\n if (\r\n [\r\n 'article',\r\n 'not-found',\r\n 'edit-article',\r\n 'preview-article',\r\n 'article-revisions',\r\n ].includes(this.$store.state.route.name!)\r\n ) {\r\n return this.$store.state.route.params.id;\r\n }\r\n if (this.$store.state.route.meta && this.$store.state.route.meta.title) {\r\n return this.L(this.$store.state.route.meta.title);\r\n } else {\r\n return this.L(this.$store.state.route.name || '');\r\n }\r\n }\r\n\r\n get longCategory() {\r\n if (\r\n [\r\n 'article',\r\n 'not-found',\r\n 'edit-article',\r\n 'preview-article',\r\n 'article-revisions',\r\n ].includes(this.$store.state.route.name!)\r\n ) {\r\n const path = this.$store.state.article.currentRemote?.hierarchyParent || [\r\n '',\r\n ];\r\n return path.length ? path[path.length - 1] : '';\r\n }\r\n return '';\r\n }\r\n\r\n get shortCategory() {\r\n if (\r\n [\r\n 'article',\r\n 'not-found',\r\n 'edit-article',\r\n 'preview-article',\r\n 'article-revisions',\r\n ].includes(this.$store.state.route.name!)\r\n ) {\r\n return this.$store.state.article.currentRemote?.hierarchyWeight || '';\r\n }\r\n return '';\r\n }\r\n\r\n get notificationCount() {\r\n return 0;\r\n }\r\n\r\n get avatarImg() {\r\n return null;\r\n }\r\n\r\n get avatarInitials() {\r\n if (this.$store.state.session && this.$store.state.session.user) {\r\n const currentUser = this.$store.state.session.user;\r\n return (\r\n (currentUser.name || '').substring(0, 1) +\r\n (currentUser.surname || '').substring(0, 1)\r\n );\r\n }\r\n return '';\r\n }\r\n\r\n get hasEdits() {\r\n const state = this.$store.state.article;\r\n return (\r\n !articlesAreSame(state.currentEditing, state.currentEditingSrc) ||\r\n this.$store.state.route.name == 'preview-article'\r\n );\r\n }\r\n\r\n get loggedIn() {\r\n return !!(this.$store.state.session && this.$store.state.session.user);\r\n }\r\n\r\n readonly colorArray: Array = [\r\n 'pink',\r\n 'purple',\r\n 'deep-purple',\r\n 'indigo',\r\n 'teal',\r\n 'amber',\r\n 'blue-grey',\r\n ];\r\n\r\n get avatarColor() {\r\n try {\r\n if (this.$store.state.session && this.$store.state.session.user) {\r\n let colorIndex =\r\n this.$store.state.session.user.id % this.colorArray.length;\r\n return this.colorArray[colorIndex];\r\n } else {\r\n return 'grey darken-1';\r\n }\r\n } catch (e) {\r\n return 'red';\r\n }\r\n }\r\n\r\n get avatarTextColor() {\r\n return 'white--text';\r\n }\r\n\r\n goBack() {\r\n this.$router.back();\r\n }\r\n\r\n toggleDrawer() {\r\n this.$store.commit('app/toggleDrawer');\r\n }\r\n async logout() {\r\n await this.$store.dispatch('app/logout');\r\n }\r\n\r\n login() {\r\n this.$router.push({\r\n name: 'login',\r\n });\r\n }\r\n\r\n get docExists(): boolean {\r\n const state = this.$store.state.articleList;\r\n return this.id in state.documentIndices;\r\n }\r\n\r\n @Prop(Number)\r\n zoom: number = 50;\r\n\r\n @Emit('zoomchanged')\r\n zoomChanged() {}\r\n}\r\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mobileSystemBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mobileSystemBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./mobileSystemBar.vue?vue&type=template&id=efb7e734&scoped=true&\"\nimport script from \"./mobileSystemBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./mobileSystemBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./mobileSystemBar.vue?vue&type=style&index=0&id=efb7e734&prod&lang=scss&\"\nimport style1 from \"./mobileSystemBar.vue?vue&type=style&index=1&id=efb7e734&prod&lang=scss&scoped=true&\"\nimport style2 from \"./mobileSystemBar.vue?vue&type=style&index=2&id=efb7e734&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"efb7e734\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\n \"div\",\n { staticClass: \"search-bar-host\", class: { mobile: _vm.mobile } },\n [\n _c(\"transition\", { attrs: { name: \"fly-up\" } }, [\n _vm.mobile && _vm.toc\n ? _c(\n \"div\",\n { staticClass: \"cover elevation-3\" },\n [\n _c(\n \"div\",\n { staticClass: \"d-flex\" },\n [\n _c(\"v-spacer\"),\n _c(\n \"v-btn\",\n {\n staticClass: \"close\",\n attrs: {\n \"aria-label\": _vm.L(\"Close\"),\n large: \"\",\n icon: \"\",\n color: \"black\",\n },\n on: {\n click: function ($event) {\n return _vm.toggleToc()\n },\n },\n },\n [_c(\"v-icon\", [_vm._v(\"mdi-close\")])],\n 1\n ),\n ],\n 1\n ),\n _c(\"mini-index\", {\n on: {\n togglelayout: function ($event) {\n return _vm.toggleLayout()\n },\n },\n }),\n ],\n 1\n )\n : _vm._e(),\n ]),\n _vm.mobile\n ? _c(\n \"div\",\n {\n staticClass: \"bottom-bar elevation-3\",\n attrs: { role: \"toolbar\" },\n },\n [\n _c(\n \"div\",\n { staticClass: \"d-flex flexroot\" },\n [\n _c(\n \"v-btn\",\n {\n staticClass: \"expansion\",\n attrs: {\n text: \"\",\n color: \"primary\",\n \"aria-label\": _vm.L(\"TableOfContents\"),\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": _vm.toc ? \"true\" : \"false\",\n },\n on: { click: _vm.toggleToc },\n },\n [\n _c(\"v-icon\", [_vm._v(\"mdi-menu\")]),\n _vm._v(\" \" + _vm._s(_vm.L(\"Menu\")) + \" \"),\n ],\n 1\n ),\n _c(\n \"v-btn\",\n {\n attrs: {\n \"aria-label\": _vm.L(\"Search\"),\n icon: \"\",\n \"aria-haspopup\": \"true\",\n \"aria-expanded\": _vm.searching ? \"true\" : \"false\",\n },\n on: {\n click: function ($event) {\n _vm.searching = true\n },\n },\n },\n [_c(\"v-icon\", [_vm._v(\"mdi-magnify\")])],\n 1\n ),\n _vm.currentItemSection\n ? _c(\n \"div\",\n { staticClass: \"category\" },\n [\n _c(\n \"v-chip\",\n {\n attrs: {\n dark: \"\",\n color: _vm.currentItemSectionColor,\n },\n },\n [_vm._v(_vm._s(_vm.currentItemSection))]\n ),\n ],\n 1\n )\n : _vm._e(),\n ],\n 1\n ),\n ]\n )\n : _vm._e(),\n _c(\"transition\", { attrs: { name: \"fly-up\", role: \"dialog\" } }, [\n _vm.mobile && _vm.searching\n ? _c(\n \"div\",\n {\n staticClass: \"cover elevation-3\",\n attrs: { role: \"search\", \"aria-label\": _vm.L(\"AllProtocols\") },\n },\n [\n _c(\n \"v-text-field\",\n {\n ref: \"searchbox\",\n staticClass: \"searchbox\",\n attrs: {\n rounded: \"\",\n outlined: \"\",\n light: \"\",\n dense: \"\",\n \"hide-details\": \"\",\n \"aria-label\": _vm.L(\"Search\"),\n },\n model: {\n value: _vm.search,\n callback: function ($$v) {\n _vm.search = $$v\n },\n expression: \"search\",\n },\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"v-input__icon v-input__icon--prepend-inner\",\n attrs: { slot: \"prepend-inner\" },\n slot: \"prepend-inner\",\n },\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n transition: \"slide-y-transition\",\n \"content-class\": \"caret-menu-content\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"noink caret\",\n attrs: {\n ripple: false,\n icon: \"\",\n \"aria-label\":\n _vm.L(\"Select Section\"),\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [_c(\"v-icon\", [_vm._v(\"mdi-magnify\")])],\n 1\n ),\n ]\n },\n },\n ],\n null,\n false,\n 2864535145\n ),\n model: {\n value: _vm.sectionsOpen,\n callback: function ($$v) {\n _vm.sectionsOpen = $$v\n },\n expression: \"sectionsOpen\",\n },\n },\n [\n _c(\n \"v-menu-caret\",\n [\n _c(\n \"v-list\",\n { staticClass: \"dropdown\" },\n [\n _c(\n \"v-list-item-group\",\n { attrs: { multiple: \"\" } },\n [\n _c(\n \"v-list-item\",\n {\n attrs: {\n active:\n _vm.searchSection == \"ALS\" ||\n _vm.searchSection == null,\n },\n on: {\n change: function ($event) {\n _vm.searchSection =\n _vm.searchSection == \"BLS\"\n ? null\n : _vm.searchSection == \"ALS\"\n ? \"BLS\"\n : \"BLS\"\n },\n },\n },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\"v-list-item-title\", [\n _vm._v(_vm._s(_vm.L(\"ALS\"))),\n ]),\n ],\n 1\n ),\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n attrs: {\n \"input-value\":\n _vm.searchSection ==\n \"ALS\" ||\n _vm.searchSection == null,\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"v-list-item\",\n {\n attrs: {\n active:\n _vm.searchSection == \"BLS\" ||\n _vm.searchSection == null,\n },\n on: {\n change: function ($event) {\n _vm.searchSection =\n _vm.searchSection == \"ALS\"\n ? null\n : _vm.searchSection == \"BLS\"\n ? \"ALS\"\n : \"ALS\"\n },\n },\n },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\"v-list-item-title\", [\n _vm._v(_vm._s(_vm.L(\"BLS\"))),\n ]),\n ],\n 1\n ),\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n attrs: {\n \"input-value\":\n _vm.searchSection ==\n \"BLS\" ||\n _vm.searchSection == null,\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"v-input__icon v-input__icon--append\",\n attrs: { slot: \"append\" },\n slot: \"append\",\n },\n [\n _c(\n \"div\",\n { staticClass: \"searchhint\" },\n [\n _c(\n \"v-chip\",\n {\n attrs: {\n dark: \"\",\n color: _vm.currentSearchSectionColor,\n },\n on: {\n click: function ($event) {\n _vm.sectionsOpen = !_vm.sectionsOpen\n },\n },\n },\n [\n _vm._v(\n \" \" + _vm._s(_vm.currentSearchSection) + \" \"\n ),\n ]\n ),\n ],\n 1\n ),\n _c(\n \"v-btn\",\n {\n staticClass: \"noink\",\n attrs: {\n ripple: false,\n icon: \"\",\n \"aria-label\": _vm.L(\"Clear\"),\n },\n on: {\n click: function ($event) {\n return _vm.clearSearch()\n },\n },\n },\n [_c(\"v-icon\", [_vm._v(\"mdi-close\")])],\n 1\n ),\n ],\n 1\n ),\n ]\n ),\n _c(\n \"transition\",\n { attrs: { name: \"fade\" } },\n [\n _vm.search\n ? _c(\"search-results\", {\n on: {\n selected: function ($event) {\n _vm.searching = false\n },\n },\n })\n : _vm._e(),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n ]),\n _c(\"transition\", { attrs: { name: \"fly-in\" } }, [\n !_vm.mobile\n ? _c(\n \"div\",\n {\n staticClass: \"sidebar elevation-3\",\n attrs: { role: \"search\", \"aria-label\": _vm.L(\"AllProtocols\") },\n },\n [\n _c(\n \"v-text-field\",\n {\n staticClass: \"search\",\n attrs: {\n rounded: \"\",\n outlined: \"\",\n light: \"\",\n dense: \"\",\n \"hide-details\": \"\",\n \"aria-label\": _vm.L(\"Search\"),\n },\n model: {\n value: _vm.search,\n callback: function ($$v) {\n _vm.search = $$v\n },\n expression: \"search\",\n },\n },\n [\n _c(\n \"div\",\n {\n staticClass:\n \"v-input__icon v-input__icon--prepend-inner\",\n attrs: { slot: \"prepend-inner\" },\n slot: \"prepend-inner\",\n },\n [\n _c(\n \"v-menu\",\n {\n attrs: {\n \"offset-y\": \"\",\n transition: \"slide-y-transition\",\n \"content-class\": \"caret-menu-content\",\n },\n scopedSlots: _vm._u(\n [\n {\n key: \"activator\",\n fn: function ({ on, attrs }) {\n return [\n _c(\n \"v-btn\",\n _vm._g(\n _vm._b(\n {\n staticClass: \"noink caret\",\n attrs: {\n ripple: false,\n icon: \"\",\n \"aria-label\":\n _vm.L(\"Select Section\"),\n },\n },\n \"v-btn\",\n attrs,\n false\n ),\n on\n ),\n [_c(\"v-icon\", [_vm._v(\"mdi-magnify\")])],\n 1\n ),\n ]\n },\n },\n ],\n null,\n false,\n 2864535145\n ),\n model: {\n value: _vm.sectionsOpen,\n callback: function ($$v) {\n _vm.sectionsOpen = $$v\n },\n expression: \"sectionsOpen\",\n },\n },\n [\n _c(\n \"v-menu-caret\",\n [\n _c(\n \"v-list\",\n { staticClass: \"dropdown\" },\n [\n _c(\n \"v-list-item-group\",\n { attrs: { multiple: \"\" } },\n [\n _c(\n \"v-list-item\",\n {\n attrs: {\n active:\n _vm.searchSection == \"ALS\" ||\n _vm.searchSection == null,\n },\n on: {\n change: function ($event) {\n _vm.searchSection =\n _vm.searchSection == \"BLS\"\n ? null\n : _vm.searchSection == \"ALS\"\n ? \"BLS\"\n : \"BLS\"\n },\n },\n },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\"v-list-item-title\", [\n _vm._v(_vm._s(_vm.L(\"ALS\"))),\n ]),\n ],\n 1\n ),\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n attrs: {\n \"input-value\":\n _vm.searchSection ==\n \"ALS\" ||\n _vm.searchSection == null,\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"v-list-item\",\n {\n attrs: {\n active:\n _vm.searchSection == \"BLS\" ||\n _vm.searchSection == null,\n },\n on: {\n change: function ($event) {\n _vm.searchSection =\n _vm.searchSection == \"ALS\"\n ? null\n : _vm.searchSection == \"BLS\"\n ? \"ALS\"\n : \"ALS\"\n },\n },\n },\n [\n _c(\n \"v-list-item-content\",\n [\n _c(\"v-list-item-title\", [\n _vm._v(_vm._s(_vm.L(\"BLS\"))),\n ]),\n ],\n 1\n ),\n _c(\n \"v-list-item-action\",\n [\n _c(\"v-checkbox\", {\n attrs: {\n \"input-value\":\n _vm.searchSection ==\n \"BLS\" ||\n _vm.searchSection == null,\n },\n }),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n ],\n 1\n ),\n _c(\n \"div\",\n {\n staticClass: \"v-input__icon v-input__icon--append\",\n attrs: { slot: \"append\" },\n slot: \"append\",\n },\n [\n _c(\n \"div\",\n { staticClass: \"searchhint\" },\n [\n _c(\n \"v-chip\",\n {\n attrs: {\n dark: \"\",\n color: _vm.currentSearchSectionColor,\n },\n on: {\n click: function ($event) {\n _vm.sectionsOpen = !_vm.sectionsOpen\n },\n },\n },\n [_vm._v(_vm._s(_vm.currentSearchSection))]\n ),\n ],\n 1\n ),\n _c(\n \"v-btn\",\n {\n staticClass: \"noink\",\n attrs: {\n ripple: false,\n icon: \"\",\n \"aria-label\": _vm.L(\"Clear\"),\n },\n on: {\n click: function ($event) {\n _vm.search = \"\"\n },\n },\n },\n [_c(\"v-icon\", [_vm._v(\"mdi-close\")])],\n 1\n ),\n ],\n 1\n ),\n ]\n ),\n _c(\n \"div\",\n { staticClass: \"scroller\" },\n [\n _c(\"mini-index\", {\n attrs: { section: _vm.section },\n on: {\n togglelayout: function ($event) {\n return _vm.toggleLayout()\n },\n },\n }),\n ],\n 1\n ),\n _c(\n \"transition\",\n { attrs: { name: \"fade\" } },\n [\n _vm.search\n ? _c(\"search-results\", {\n on: {\n underflow: function ($event) {\n _vm.count += 10\n },\n },\n })\n : _vm._e(),\n ],\n 1\n ),\n ],\n 1\n )\n : _vm._e(),\n ]),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./smallIndex.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./smallIndex.vue?vue&type=script&lang=ts&\"","var render, staticRenderFns\nimport script from \"./smallIndex.vue?vue&type=script&lang=ts&\"\nexport * from \"./smallIndex.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./smallIndex.vue?vue&type=style&index=0&id=6cabce3a&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\n \"div\",\n {\n staticClass: \"search-results-host\",\n attrs: { \"aria-busy\": _vm.isSearching, \"aria-relevant\": \"additions\" },\n },\n [\n _c(\"v-progress-linear\", {\n attrs: {\n active: _vm.isSearching,\n indeterminate: _vm.isSearching,\n absolute: \"\",\n top: \"\",\n color: \"secondary\",\n },\n }),\n _vm.noResults\n ? _c(\n \"v-list-item\",\n {\n staticClass: \"noresults\",\n attrs: { disabled: \"\", role: \"alert\" },\n },\n [_vm._v(\" \" + _vm._s(_vm.L(\"NoResults\")) + \" \")]\n )\n : _vm._e(),\n _vm._l(_vm.searchResults, function (item) {\n return _c(\n \"v-list-item\",\n {\n key: item.documentName,\n attrs: {\n \"three-line\": \"\",\n to: { name: \"article\", params: { id: item.documentName } },\n },\n on: {\n click: function ($event) {\n return _vm.itemSelected()\n },\n },\n },\n [\n _c(\n \"v-list-item-content\",\n { attrs: { role: \"\" } },\n [\n _c(\n \"v-list-item-title\",\n _vm._l(item.documentNameFragments, function (fragment) {\n return _c(\n \"span\",\n {\n key: fragment.content,\n class: { mark: fragment.highlighted },\n },\n [_vm._v(_vm._s(fragment.contents))]\n )\n }),\n 0\n ),\n _c(\n \"v-list-item-subtitle\",\n _vm._l(item.excerpts, function (excerpt) {\n return _c(\n \"div\",\n { key: excerpt.ix, staticClass: \"excerpt\" },\n _vm._l(excerpt.fragments, function (fragment) {\n return _c(\n \"span\",\n {\n key: fragment.content,\n class: { mark: fragment.highlighted },\n },\n [_vm._v(_vm._s(fragment.contents))]\n )\n }),\n 0\n )\n }),\n 0\n ),\n ],\n 1\n ),\n ],\n 1\n )\n }),\n _c(\"div\", {\n directives: [\n {\n name: \"intersect\",\n rawName: \"v-intersect\",\n value: _vm.testIntersection,\n expression: \"testIntersection\",\n },\n ],\n staticClass: \"intersection\",\n }),\n ],\n 2\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\nimport { Component, Watch, Emit } from 'vue-property-decorator';\r\nimport AbpBase from '../lib/abpbase';\r\n\r\nimport {\r\n VListItem,\r\n VListItemContent,\r\n VListItemTitle,\r\n VListItemSubtitle,\r\n VProgressLinear,\r\n} from 'vuetify/lib';\r\nimport { Intersect } from 'vuetify/lib/directives';\r\n\r\n@Component({\r\n components: {\r\n VListItem,\r\n VListItemContent,\r\n VListItemTitle,\r\n VListItemSubtitle,\r\n VProgressLinear,\r\n },\r\n directives: {\r\n Intersect,\r\n },\r\n})\r\nexport default class SearchResults extends AbpBase {\r\n reachedEnd = false;\r\n nextEmit = false;\r\n emit = false;\r\n\r\n get isSearching() {\r\n return this.$store.state.search.isSearching;\r\n }\r\n\r\n get expectedResults() {\r\n return this.$store.state.search.count;\r\n }\r\n\r\n get searchResults() {\r\n return this.$store.state.search.results?.documents || [];\r\n }\r\n\r\n get noResults() {\r\n return this.$store.state.search.results && this.searchResults.length == 0;\r\n }\r\n\r\n testIntersection(entries: IntersectionObserverEntry[]): void {\r\n this.reachedEnd = entries[0].intersectionRatio > 0;\r\n }\r\n\r\n @Emit('selected')\r\n itemSelected() {}\r\n\r\n @Watch('isSearching')\r\n @Watch('reachedEnd')\r\n checkUnderflow() {\r\n this.nextEmit =\r\n !this.isSearching &&\r\n this.reachedEnd &&\r\n this.searchResults.length == this.expectedResults;\r\n }\r\n\r\n @Watch('nextEmit')\r\n propagateEmit() {\r\n if (!this.nextEmit) {\r\n this.emit = false;\r\n } else if (!this.emit) {\r\n window.setTimeout(() => {\r\n if (!this.emit && this.nextEmit) {\r\n this.emit = true;\r\n this.$emit('underflow');\r\n }\r\n }, 200);\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./searchResults.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./searchResults.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./searchResults.vue?vue&type=template&id=16194d1f&\"\nimport script from \"./searchResults.vue?vue&type=script&lang=ts&\"\nexport * from \"./searchResults.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./searchResults.vue?vue&type=style&index=0&id=16194d1f&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Prop, Watch, Emit } from 'vue-property-decorator';\r\nimport AbpBase from '../lib/abpbase';\r\nimport VMenuCaret from '../components/vMenuCaret.vue';\r\n\r\nimport {\r\n VTextField,\r\n VBtn,\r\n VIcon,\r\n VFlex,\r\n VSpacer,\r\n VChip,\r\n VMenu,\r\n VList,\r\n VListItemTitle,\r\n VListItemAction,\r\n VListItemContent,\r\n VCheckbox,\r\n VListItem,\r\n VListItemGroup,\r\n} from 'vuetify/lib';\r\nimport MiniIndex from './smallIndex.vue';\r\nimport SearchResults from './searchResults.vue';\r\nimport type { ArticleSummary } from '../store/modules/article-list';\r\nimport type { Route } from 'vue-router';\r\n\r\n@Component({\r\n components: {\r\n VTextField,\r\n VBtn,\r\n VIcon,\r\n VFlex,\r\n VSpacer,\r\n VChip,\r\n MiniIndex,\r\n SearchResults,\r\n VMenu,\r\n VList,\r\n VListItemTitle,\r\n VListItemAction,\r\n VListItemContent,\r\n VCheckbox,\r\n VListItem,\r\n VListItemGroup,\r\n VMenuCaret,\r\n },\r\n})\r\nexport default class SearchBar extends AbpBase {\r\n searchSection: 'ALS' | 'BLS' | null = null;\r\n search = '';\r\n count = 10;\r\n searching = false;\r\n toc = false;\r\n sectionsOpen = false;\r\n\r\n @Prop(Boolean)\r\n mobile!: boolean;\r\n\r\n @Prop(String)\r\n section!: 'ALS' | 'BLS';\r\n\r\n @Watch('search')\r\n @Watch('searchSection')\r\n @Watch('count')\r\n onSearchParamsChange(): void {\r\n const rawTerm = this.$store.state.search.rawSearch;\r\n const section = this.$store.state.search.section;\r\n let doSearch = false;\r\n\r\n if (this.search != rawTerm || section != this.searchSection) {\r\n this.count = 10;\r\n doSearch = true;\r\n }\r\n if (this.count != this.$store.state.search.count) {\r\n doSearch = true;\r\n }\r\n if (!doSearch) {\r\n return;\r\n }\r\n\r\n void this.$store.dispatch({\r\n type: 'search/setSearch',\r\n payload: {\r\n term: this.search,\r\n section: this.searchSection,\r\n count: this.count,\r\n },\r\n });\r\n const query = {\r\n ...this.route.query,\r\n };\r\n\r\n delete query['toc'];\r\n delete query['q'];\r\n delete query['qs'];\r\n\r\n const routeIsSearching = 'q' in this.route.query;\r\n const route = {\r\n name: this.route.name!,\r\n params: this.route.params,\r\n query,\r\n };\r\n if (this.searching) {\r\n query['q'] = this.search;\r\n query['qs'] = this.searchSection || 'ALL';\r\n }\r\n if (routeIsSearching) {\r\n void this.$router.replace(route);\r\n } else if (this.searching) {\r\n void this.$router.push(route);\r\n }\r\n }\r\n\r\n clearSearch(): void {\r\n const routeIsSearching = 'q' in this.route.query;\r\n if (routeIsSearching) {\r\n void this.$router.back();\r\n this.searching = false;\r\n return;\r\n }\r\n\r\n this.searching = false;\r\n this.toc = 'toc' in this.route.query && this.route.query['toc'] == 'true';\r\n }\r\n\r\n toggleToc(): void {\r\n // okay so first of all, if we were not TOC and we now ARE TOC, we need to\r\n // add this to the nav stack\r\n if (!this.toc) {\r\n const query = {\r\n ...this.route.query,\r\n };\r\n delete query['q'];\r\n delete query['qs'];\r\n query['toc'] = 'true';\r\n const route = {\r\n name: this.route.name!,\r\n params: this.route.params,\r\n query,\r\n };\r\n void this.$router.push(route);\r\n return;\r\n // this will cause the ROUTE to be updated, and then the TOC value will be set to match the route\r\n }\r\n\r\n // if we were TOC and now we are not, we need to remove it from the nav stack\r\n void this.$router.back();\r\n }\r\n\r\n @Watch('toc')\r\n onToc(toc: boolean): void {\r\n if (toc) {\r\n this.searching = false;\r\n }\r\n }\r\n\r\n @Watch('searching')\r\n onSearch(searching: boolean): void {\r\n if (searching) {\r\n this.toc = false;\r\n }\r\n if (searching && this.mobile) {\r\n window.setTimeout(() => {\r\n const node = this.$refs['searchbox'] as HTMLElement;\r\n if (this.searching && this.mobile) {\r\n node.focus();\r\n }\r\n }, 400);\r\n }\r\n }\r\n\r\n @Watch('mobile')\r\n onMobile(mobile: boolean): void {\r\n if (!mobile) {\r\n this.searching = false;\r\n this.toc = false;\r\n\r\n const query = {\r\n ...this.route.query,\r\n };\r\n if ('toc' in query) {\r\n delete query['toc'];\r\n const route = {\r\n name: this.route.name!,\r\n params: this.route.params,\r\n query,\r\n };\r\n void this.$router.replace(route);\r\n }\r\n }\r\n }\r\n\r\n get currentItem(): ArticleSummary | null {\r\n if (this.$route.name === 'article') {\r\n return this.$store.state.article.currentRemote;\r\n }\r\n return null;\r\n }\r\n\r\n get currentItemSection(): string {\r\n if (!this.currentItem) {\r\n return '';\r\n }\r\n return this.currentItem.isPublic ? this.currentItem.protocolSection : '';\r\n }\r\n\r\n get currentSearchSection(): string {\r\n return this.searchSection || 'All';\r\n }\r\n\r\n get currentItemSectionColor(): string {\r\n switch (this.currentItemSection) {\r\n case 'ALS':\r\n return 'red';\r\n case 'BLS':\r\n return 'blue';\r\n }\r\n return '';\r\n }\r\n\r\n get currentSearchSectionColor(): string {\r\n switch (this.currentSearchSection) {\r\n case 'ALS':\r\n return 'red';\r\n case 'BLS':\r\n return 'blue';\r\n }\r\n return 'gray';\r\n }\r\n\r\n // get currentIcon(): string | null {\r\n // if (!this.currentItem) {\r\n // return 'mdi-home';\r\n // }\r\n // if (\r\n // !this.currentItem.hierarchyParent ||\r\n // this.currentItem.hierarchyParent.length == 0\r\n // ) {\r\n // return '';\r\n // }\r\n // let relevantSection: IndexSection | undefined;\r\n // const sections =\r\n // this.section == 'BLS'\r\n // ? this.$store.state.articleList.indexConfiguration.blsSections\r\n // : this.$store.state.articleList.indexConfiguration.alsSections;\r\n // let searchpath = sections;\r\n // for (let i = 0; i < this.currentItem.hierarchyParent.length; i++) {\r\n // const hierarchyPath = this.currentItem.hierarchyParent[i];\r\n // const relevantSections = searchpath.filter(s => s.name == hierarchyPath);\r\n // if (relevantSections.length > 0) {\r\n // relevantSection = relevantSections[0];\r\n // searchpath = relevantSection.children;\r\n // } else {\r\n // return '';\r\n // }\r\n // }\r\n // if (!relevantSection) {\r\n // return '';\r\n // }\r\n // return relevantSection.icon;\r\n // }\r\n\r\n get route(): Route {\r\n return this.$route;\r\n }\r\n\r\n @Watch('route')\r\n onRouteChanged(): void {\r\n this.toc = this.route.query['toc'] == 'true';\r\n if (this.toc) {\r\n this.searching = false;\r\n return;\r\n }\r\n const query = this.route.query['q'];\r\n const section = this.route.query['qs'];\r\n if (query || section) {\r\n this.searching = true;\r\n this.search = query as string;\r\n if (section) {\r\n const searchSection = section as 'ALS' | 'BLS' | 'ALL';\r\n this.searchSection = searchSection == 'ALL' ? null : searchSection;\r\n } else {\r\n this.searchSection = null;\r\n }\r\n } else {\r\n this.searching = false;\r\n }\r\n }\r\n\r\n @Emit('togglelayout')\r\n toggleLayout(): void {\r\n console.log('togglinglayout');\r\n }\r\n}\r\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./searchBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./searchBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./searchBar.vue?vue&type=template&id=a4c2c346&\"\nimport script from \"./searchBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./searchBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./searchBar.vue?vue&type=style&index=0&id=a4c2c346&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { Component, Vue, Watch, Emit } from 'vue-property-decorator';\r\nimport { mapState } from 'vuex';\r\nimport AppSystemBar from '../../components/mobileSystemBar.vue';\r\nimport NotificationHost from '../../components/notificationHost.vue';\r\nimport ModalHost from '../../components/modalHost.vue';\r\nimport SearchBar from '../../components/searchBar.vue';\r\nimport { VContent, VContainer, VProgressCircular } from 'vuetify/lib';\r\nimport { Touch } from 'vuetify/lib/directives';\r\nimport { abp } from '../../lib/abp';\r\n\r\n@Component({\r\n components: {\r\n 'app-system-bar': AppSystemBar,\r\n 'notification-host': NotificationHost,\r\n 'modal-host': ModalHost,\r\n 'search-bar': SearchBar,\r\n VContent,\r\n VContainer,\r\n VProgressCircular,\r\n },\r\n directives: {\r\n Touch,\r\n },\r\n computed: {\r\n ...mapState('app', ['footerComponent']),\r\n },\r\n})\r\nexport default class AppLayout extends Vue {\r\n get zoomfactor() {\r\n return this.zoom / 25;\r\n }\r\n\r\n _onResizedBound!: () => void;\r\n firstUpdate = false;\r\n mobile = true;\r\n\r\n //components = {\"app-side-nav\": AppSideNav}\r\n hideFooter() {\r\n this.$store.commit('app/hideFooterComponent');\r\n }\r\n\r\n _onResized() {\r\n const host = this.$refs['layout'] as HTMLDivElement;\r\n if (!host) {\r\n return;\r\n }\r\n this.firstUpdate = true;\r\n const rect = host.getBoundingClientRect();\r\n if (rect.width == 0) {\r\n window.setTimeout(() => {\r\n this._onResized();\r\n }, 500);\r\n } else {\r\n this.mobile = rect.width < 768;\r\n }\r\n }\r\n\r\n _changeLayout() {}\r\n\r\n mounted() {\r\n const rawZoom = abp.utils.getCookieValue('zoom');\r\n const rawShowall = abp.utils.getCookieValue('showall');\r\n this.zoom = rawZoom ? Number(rawZoom) : 50;\r\n this.showall = rawShowall == 'true';\r\n if (Number.isNaN(this.zoom)) {\r\n this.zoom = 50;\r\n }\r\n this._onResizedBound = this._onResized.bind(this);\r\n window.addEventListener('resize', this._onResizedBound, { passive: true });\r\n if (this.firstUpdate) {\r\n return;\r\n }\r\n window.setTimeout(() => {\r\n this._onResized();\r\n }, 500);\r\n }\r\n\r\n unmounted() {\r\n window.removeEventListener('resize', this._onResizedBound);\r\n }\r\n\r\n get documentsAreReady(): boolean {\r\n const state = this.$store.state.articleList;\r\n return state.completedInitialLoad;\r\n }\r\n\r\n updated() {}\r\n\r\n zoom = 50;\r\n showall = false;\r\n\r\n zoomChanged(e: number) {\r\n this.zoom = e;\r\n }\r\n\r\n @Watch('zoom')\r\n afterZoomChanged(zoom: number) {\r\n abp.utils.setCookieValue('zoom', `${zoom}`);\r\n }\r\n\r\n @Watch('showall')\r\n afterShowallChanged(showall: boolean) {\r\n abp.utils.setCookieValue('showall', `${showall}`);\r\n this.$store.commit({\r\n type: 'app/setShowAll',\r\n payload: showall,\r\n });\r\n }\r\n\r\n @Emit('togglelayout')\r\n toggleLayout() {}\r\n}\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./appLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./appLayout.vue?vue&type=template&id=522ea9ec&scoped=true&\"\nimport script from \"./appLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./appLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./appLayout.vue?vue&type=style&index=0&id=522ea9ec&prod&lang=scss&scoped=true&\"\nimport style1 from \"./appLayout.vue?vue&type=style&index=1&id=522ea9ec&prod&lang=scss&\"\nimport style2 from \"./appLayout.vue?vue&type=style&index=2&id=522ea9ec&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"522ea9ec\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\n \"div\",\n { staticClass: \"layout-container\" },\n [_c(\"router-view\"), _c(\"notification-host\"), _c(\"modal-host\")],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\nimport { Component, Vue } from 'vue-property-decorator';\r\nimport NotificationHost from '../components/notificationHost.vue';\r\nimport ModalHost from '../components/modalHost.vue';\r\n\r\n@Component({\r\n components: {\r\n 'notification-host': NotificationHost,\r\n 'modal-host': ModalHost,\r\n },\r\n})\r\nexport default class SimpleLayout extends Vue {}\r\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./simpleLayout.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./simpleLayout.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./simpleLayout.vue?vue&type=template&id=1370c7e2&scoped=true&\"\nimport script from \"./simpleLayout.vue?vue&type=script&lang=ts&\"\nexport * from \"./simpleLayout.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./simpleLayout.vue?vue&type=style&index=0&id=1370c7e2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1370c7e2\",\n null\n \n)\n\nexport default component.exports","import { VueConstructor } from 'vue';\r\nimport { Vue } from 'vue/types/vue';\r\n\r\nexport default {\r\n /*\r\n\t\tadapter for the original iview\r\n\t*/\r\n install(Vue: VueConstructor) {\r\n Vue.prototype.$Modal = {\r\n error() {\r\n console.warn('todo: modal');\r\n },\r\n confirm() {\r\n console.warn('todo: modal');\r\n },\r\n };\r\n\r\n Vue.prototype.$Message = {\r\n destroy() {\r\n console.warn('todo: destroy the message');\r\n },\r\n error() {\r\n console.warn('todo: display the error message');\r\n },\r\n };\r\n },\r\n};\r\n","// src/plugins/vuetify.js\r\n\r\nimport Vue from 'vue';\r\nimport type { UserVuetifyPreset } from 'vuetify';\r\nimport Vuetify, {\r\n VImg,\r\n VTab,\r\n VTabItem,\r\n VTabsItems,\r\n VTabTransition,\r\n} from 'vuetify/lib'; // should be vuetify/lib. This issue breaks it https://github.com/vuetifyjs/vue-cli-plugin-vuetify/issues/43\r\nimport { Ripple } from 'vuetify/lib/directives';\r\nimport Framework from './framework';\r\n\r\nVue.use(Vuetify, {\r\n components: {\r\n VTab,\r\n VTabItem,\r\n VTabsItems,\r\n VTabTransition,\r\n VImg,\r\n },\r\n directives: { Ripple },\r\n});\r\nVue.use(Framework);\r\n\r\nconst opts: Partial = {\r\n icons: {\r\n iconfont: 'mdi',\r\n values: {},\r\n },\r\n theme: {\r\n options: {\r\n customProperties: true,\r\n },\r\n themes: {\r\n light: {\r\n primary: {\r\n base: '#359cb6',\r\n },\r\n secondary: {\r\n base: '#5854a3',\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nexport default new Vuetify(opts);\r\n","import '@mdi/font/scss/materialdesignicons.scss';\r\nimport merge from 'lodash/merge';\r\nimport Vue from 'vue';\r\nimport { sync } from 'vuex-router-sync';\r\nimport App from './app.vue';\r\nimport VTabs from './components/vTabs';\r\nimport abpUserConfiguration from './config/abp-user-configuration.json';\r\nimport { nullToEmpty } from './filters/nullToEmpty';\r\nimport init from './init';\r\nimport AppLayout from './layouts/mobile/appLayout.vue';\r\nimport SimpleLayout from './layouts/simpleLayout.vue';\r\nimport type { Abp } from './lib/abp';\r\nimport { abp } from './lib/abp';\r\nimport Util from './lib/util';\r\nimport './local-roboto.css';\r\nimport vuetify from './plugins/vuetify'; // path to vuetify export\r\nimport { router } from './router/index';\r\nimport store from './store/index';\r\nimport './theme.less';\r\n\r\ninit();\r\n\r\nwindow.Vue = window.Vue || Vue;\r\n\r\nVue.component('SimpleLayout', SimpleLayout);\r\nVue.component('AppLayout', AppLayout);\r\n\r\nVue.component('VTabsEx', VTabs);\r\n\r\ntype DeepPartialObject = {\r\n [K in keyof S]?: DeepPartial;\r\n};\r\n\r\ntype DeepPartial = S extends {} ? DeepPartialObject : S;\r\n\r\nVue.config.productionTip = false;\r\nsync(store, router, { moduleName: 'route' });\r\n\r\nVue.filter('nullToEmpty', nullToEmpty);\r\n\r\nif (!abp.utils.getCookieValue('Abp.Localization.CultureName')) {\r\n const language = navigator.language;\r\n abp.utils.setCookieValue(\r\n 'Abp.Localization.CultureName',\r\n language,\r\n new Date(new Date().getTime() + 5 * 365 * 86400000),\r\n abp.appPath\r\n );\r\n}\r\n\r\nPromise.resolve(abpUserConfiguration)\r\n .then(data => {\r\n data.result.localization.values.SJEM = {\r\n ...data.result.localization.values.Abp,\r\n ...data.result.localization.values.AbpWeb,\r\n ...data.result.localization.values.AbpZero,\r\n // include this last.\r\n ...data.result.localization.values.SJEM,\r\n };\r\n Util.abp = merge(Util.abp, data.result as DeepPartial);\r\n new Vue({\r\n data: {},\r\n async mounted(this: App) {\r\n await this.$store.dispatch({\r\n type: 'session/init',\r\n payload: false,\r\n });\r\n },\r\n created() {},\r\n render: h => h(App),\r\n router: router,\r\n store: store,\r\n vuetify: vuetify,\r\n }).$mount('#app');\r\n })\r\n .catch(() => {\r\n alert('Error loading configuration');\r\n });\r\n","export const nullToEmpty = function (value: any) {\r\n return value == null ? '' : value;\r\n};\r\n","import type { AppRouteConfig } from './routes';\r\n\r\nlet isLoaded = false;\r\nconst collectedImports: (() => Promise)[] = [];\r\n\r\nexport function registerLoadableRoutes(...routes: AppRouteConfig[]): void {\r\n collectImports(collectedImports, routes);\r\n}\r\n\r\nexport function registerLoaderModule(map: {\r\n [key: string]: () => Promise;\r\n}): void {\r\n for (const [, value] of Object.entries(map)) {\r\n if (isLoaded) {\r\n void value();\r\n } else {\r\n collectedImports.push(value);\r\n }\r\n }\r\n}\r\n\r\nexport async function forceLoadAllChunks(): Promise {\r\n isLoaded = true;\r\n const copy = [...collectedImports];\r\n collectedImports.splice(0, collectedImports.length);\r\n return Promise.all(copy.map(f => f()));\r\n}\r\n\r\n// Force the application to load all chunks, so we can prepare to\r\n// switch over service workers.\r\n\r\nfunction collectImports(\r\n collectedImports: (() => Promise)[],\r\n routes: AppRouteConfig[]\r\n) {\r\n for (const route of routes) {\r\n if (typeof route.component !== 'function') {\r\n continue;\r\n }\r\n if ('prototype' in route.component) {\r\n continue;\r\n }\r\n collectedImports.push(route.component as () => Promise);\r\n if (route.children) {\r\n collectImports(collectedImports, route.children);\r\n }\r\n }\r\n}\r\n","import Vue from 'vue';\r\nimport type { RawLocation, RouterOptions } from 'vue-router';\r\nimport VueRouter from 'vue-router';\r\nimport { appInsights } from '../init';\r\nimport { abp } from '../lib/abp';\r\n//import iView from 'iview';\r\nimport Util from '../lib/util';\r\nimport store from '../store';\r\nimport type { Notification } from '../store/modules/app';\r\nimport type { AppRouteMeta } from './routes';\r\nimport { appRoutes, otherRoutes, routers } from './routes';\r\n\r\nVue.use(VueRouter);\r\n\r\nexport const defaultLocation: RawLocation = {\r\n name: 'home',\r\n};\r\n\r\nconst ROUTER_CONFIG: RouterOptions = {\r\n mode: 'history',\r\n routes: routers,\r\n};\r\n\r\nexport const router = new VueRouter(ROUTER_CONFIG);\r\n\r\nrouter.beforeEach((to, _from, next) => {\r\n //iView.LoadingBar.start();\r\n Util.title((to.meta as AppRouteMeta).title!);\r\n if (\r\n to.name == 'article' ||\r\n to.name == 'not-found' ||\r\n to.name == 'home' ||\r\n to.name == 'display-notices'\r\n ) {\r\n appInsights.startTrackPage(to.fullPath);\r\n Util.toDefaultPage([...otherRoutes, ...appRoutes], to.name, router, next);\r\n return;\r\n }\r\n if (!Util.abp.session.userId && to.name !== 'login') {\r\n next({\r\n name: 'login',\r\n query: {\r\n return: to.fullPath,\r\n },\r\n replace: true,\r\n });\r\n return;\r\n }\r\n if (Util.abp.session.userId && to.name === 'login') {\r\n if (\r\n to.query &&\r\n to.query['return'] &&\r\n typeof to.query['return'] === 'string'\r\n ) {\r\n next({\r\n path: to.query['return'],\r\n replace: true,\r\n });\r\n } else {\r\n Util.title(to.meta?.title || '');\r\n next({\r\n ...defaultLocation,\r\n replace: true,\r\n });\r\n }\r\n return;\r\n }\r\n const curRouterObj = Util.getRouterObjByName(\r\n [...otherRoutes, ...appRoutes],\r\n to.name || undefined\r\n );\r\n if (curRouterObj && curRouterObj.permission) {\r\n if (abp.auth.isGranted(curRouterObj.permission)) {\r\n Util.toDefaultPage(\r\n [...otherRoutes, ...appRoutes],\r\n to.name || undefined,\r\n router,\r\n next\r\n );\r\n } else {\r\n const payload: Notification = {\r\n message: 'DefaultError403',\r\n severity: 'warning',\r\n duration: 15_000,\r\n tag: 'DefaultError403',\r\n };\r\n void store.dispatch({\r\n type: 'app/notify',\r\n payload,\r\n });\r\n next({\r\n ...defaultLocation,\r\n replace: true,\r\n });\r\n }\r\n return;\r\n }\r\n Util.toDefaultPage([...routers], to.name || undefined, router, next);\r\n});\r\nrouter.afterEach(to => {\r\n appInsights.stopTrackPage(to.fullPath);\r\n window.scrollTo(0, 0);\r\n});\r\n","\r\nimport { Component, Prop } from 'vue-property-decorator';\r\nimport AbpBase from '../../lib/abpbase';\r\nimport type { IndexSection } from '../../store/modules/index-configuration';\r\nimport type { ArticleSummary } from '../../store/modules/article-list';\r\nimport {\r\n compareSortables,\r\n compareArrays,\r\n binarySearch,\r\n} from '../../lib/insert-sorted';\r\nimport type { SimpleVNodeList } from '../../lib/marked/marked';\r\nimport RawContentViewer from '../../components/contentViewer';\r\nimport { VImg, VSkeletonLoader } from 'vuetify/lib';\r\n\r\nexport function renderSections(\r\n result: SimpleVNodeList,\r\n sections: IndexSection[],\r\n level: number,\r\n articles: ArticleSummary[],\r\n searchPath: string[],\r\n prefix = ''\r\n) {\r\n if (level < 2) {\r\n const newresults: SimpleVNodeList = [];\r\n result.push({\r\n tag: 'v-expansion-panels',\r\n attributes: { flat: '', focusable: '', multiple: '', accordion: '' },\r\n children: newresults,\r\n });\r\n result = newresults;\r\n }\r\n for (let i = 0; i < sections.length; i++) {\r\n const section = sections[i];\r\n const tag = level == 0 ? 'H1' : level == 1 ? 'H2' : 'H3';\r\n const classes =\r\n level == 0 ? 'h1-accordion' : level == 1 ? 'h2-accordion' : '';\r\n const sectionName = prefix + section.name;\r\n const children: SimpleVNodeList = [sectionName];\r\n if (section.icon) {\r\n children.unshift({\r\n tag: 'v-icon',\r\n attributes: {},\r\n children: [section.icon],\r\n });\r\n }\r\n\r\n let childResults = result;\r\n if (level < 2) {\r\n childResults = [];\r\n result.push({\r\n tag: 'v-expansion-panel',\r\n attributes: {},\r\n children: [\r\n {\r\n tag: 'v-expansion-panel-header',\r\n attributes: { class: classes },\r\n children: [\r\n {\r\n tag,\r\n attributes: {},\r\n children,\r\n },\r\n ],\r\n },\r\n {\r\n tag: 'v-expansion-panel-content',\r\n attributes: {},\r\n children: childResults,\r\n },\r\n ],\r\n });\r\n } else {\r\n result.push({\r\n tag,\r\n attributes: {},\r\n children,\r\n });\r\n }\r\n\r\n const innerPath = [...searchPath, section.name];\r\n if (section.children.length) {\r\n const innerPrefix = level >= 1 ? prefix + section.name + ': ' : '';\r\n renderSections(\r\n childResults,\r\n section.children,\r\n level + 1,\r\n articles,\r\n innerPath,\r\n innerPrefix\r\n );\r\n }\r\n const searchKey: PartialArticleSummary = {\r\n isPublic: true,\r\n hierarchyParent: innerPath,\r\n hierarchyWeight: '',\r\n documentName: '',\r\n };\r\n const search = binarySearch(\r\n articles,\r\n searchKey,\r\n (v: ArticleSummary) => v as PartialArticleSummary,\r\n compareArticlesByPosition,\r\n 'after'\r\n );\r\n const relevantArticles: {\r\n documentName: string;\r\n hierarchyWeight: string;\r\n }[] = [];\r\n let j = search.match == 'never' ? articles.length : search.index;\r\n for (; j < articles.length; j++) {\r\n const relevantDocument = articles[j];\r\n if (!relevantDocument.isPublic) {\r\n break;\r\n }\r\n if (\r\n compareArrays(\r\n searchKey.hierarchyParent!,\r\n relevantDocument.hierarchyParent!\r\n ) != 0\r\n ) {\r\n break;\r\n }\r\n relevantArticles.push({\r\n documentName: relevantDocument.documentName,\r\n hierarchyWeight: relevantDocument.hierarchyWeight!,\r\n });\r\n }\r\n if (relevantArticles.length) {\r\n const innerResults: SimpleVNodeList = [];\r\n for (const article of relevantArticles) {\r\n innerResults.push({\r\n tag: 'LI',\r\n attributes: {},\r\n children: [\r\n {\r\n tag: 'A',\r\n attributes: {\r\n href: `/article/${encodeURIComponent(article.documentName)}`,\r\n },\r\n children: [article.documentName],\r\n },\r\n ],\r\n });\r\n }\r\n childResults.push({\r\n tag: 'UL',\r\n attributes: {\r\n class: 'toc',\r\n },\r\n children: innerResults,\r\n });\r\n }\r\n }\r\n}\r\n\r\ninterface PartialArticleSummary extends Partial {\r\n isPublic: boolean;\r\n hierarchyParent: string[] | null;\r\n hierarchyWeight: string | null;\r\n documentName: string;\r\n}\r\n\r\nfunction compareArticlesByPosition(\r\n a: PartialArticleSummary,\r\n b: PartialArticleSummary\r\n) {\r\n let r;\r\n if ((r = compareSortables(a.isPublic, b.isPublic)) != 0) {\r\n return r;\r\n }\r\n if (a.isPublic) {\r\n if ((r = compareArrays(a.hierarchyParent!, b.hierarchyParent!)) != 0) {\r\n return r;\r\n }\r\n if ((r = compareSortables(a.hierarchyWeight!, b.hierarchyWeight!)) != 0) {\r\n return r;\r\n }\r\n }\r\n return compareSortables(a.documentName, b.documentName);\r\n}\r\n\r\n@Component({\r\n components: {\r\n 'content-viewer': RawContentViewer,\r\n VImg,\r\n VSkeletonLoader,\r\n },\r\n})\r\nexport default class Home extends AbpBase {\r\n @Prop(String)\r\n section!: 'ALS' | 'BLS';\r\n\r\n get content(): SimpleVNodeList {\r\n const children: SimpleVNodeList = [];\r\n renderSections(\r\n children,\r\n this.section == 'BLS'\r\n ? this.$store.state.articleList.indexConfiguration.blsSections\r\n : this.$store.state.articleList.indexConfiguration.alsSections,\r\n 0,\r\n this.sortedArticles,\r\n []\r\n );\r\n return children;\r\n }\r\n\r\n get sortedArticles(): ArticleSummary[] {\r\n const tempList: ArticleSummary[] = [];\r\n for (let i = 0; i < this.$store.state.articleList.documents.length; i++) {\r\n tempList.push(this.$store.state.articleList.documents[i]);\r\n }\r\n tempList.sort(compareArticlesByPosition);\r\n return tempList;\r\n }\r\n\r\n created() {\r\n void this.$store.dispatch('articleList/initDatastore');\r\n }\r\n}\r\n","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\n \"div\",\n { staticClass: \"article-host\" },\n [\n _c(\"markdown-viewer\", {\n attrs: {\n docid: _vm.id,\n expandall: _vm.showAll,\n viewstate: _vm.viewstate,\n },\n on: { viewstatechanged: _vm.onViewStateChanged },\n model: {\n value: _vm.content,\n callback: function ($$v) {\n _vm.content = $$v\n },\n expression: \"content\",\n },\n }),\n _vm.showWatermark\n ? _c(\"div\", { class: \"watermark \" + _vm.watermarkColor }, [\n _c(\"svg\", { attrs: { viewBox: \"0 0 24 24\" } }, [\n _c(\"path\", { attrs: { d: _vm.watermark } }),\n ]),\n ])\n : _vm._e(),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\nimport { Component, Watch } from 'vue-property-decorator';\r\nimport AbpBase from '../../lib/abpbase';\r\nimport type { DocViewState } from '../../components/markdownViewer.vue';\r\nimport MarkdownViewer from '../../components/markdownViewer.vue';\r\nimport { VIcon } from 'vuetify/lib';\r\n\r\nfunction randomId(length = 10) {\r\n const randoms = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';\r\n let result = '';\r\n while (result.length < length) {\r\n result += randoms[(Math.random() * randoms.length) | 0];\r\n }\r\n return result;\r\n}\r\n\r\nconst mdiStethoscope =\r\n 'M19,8C19.56,8 20,8.43 20,9A1,1 0 0,1 19,10C18.43,10 18,9.55 18,9C18,8.43 18.43,8 19,8M2,2V11C2,13.96 4.19,16.5 7.14,16.91C7.76,19.92 10.42,22 13.5,22A6.5,6.5 0 0,0 20,15.5V11.81C21.16,11.39 22,10.29 22,9A3,3 0 0,0 19,6A3,3 0 0,0 16,9C16,10.29 16.84,11.4 18,11.81V15.41C18,17.91 16,19.91 13.5,19.91C11.5,19.91 9.82,18.7 9.22,16.9C12,16.3 14,13.8 14,11V2H10V5H12V11A4,4 0 0,1 8,15A4,4 0 0,1 4,11V5H6V2H2Z';\r\nconst mdiNeedle =\r\n 'M5.421 3.226a.725.725 0 01.605-.222.723.723 0 01.644.5c.108.298.035.567-.186.79l-.053.053c-.18.158-.35.327-.492.462l1.586 1.59c.034-.04.08-.102.132-.156l2.238-2.24c.332-.333.803-.346 1.11-.033.302.31.285.77-.043 1.099-.274.272-.55.542-.86.847.073.054.135.09.185.138 2.524 2.524 5.05 5.05 7.577 7.573.09.09.13.176.13.306-.008.932-.002 1.864-.006 2.797a.44.44 0 00.142.354c.826.815 1.647 1.635 2.462 2.462.149.153.325.38.393.507.059.137.059.234 0 .423-.274.658-.975.665-1.417.194-.813-.869-1.677-1.69-2.514-2.536a.411.411 0 00-.323-.13c-.932.005-1.865 0-2.797.006a.432.432 0 01-.336-.14c-2.519-2.524-5.04-5.043-7.56-7.566-.05-.049-.079-.115-.13-.19-.316.322-.59.602-.869.878-.251.25-.574.314-.87.18-.492-.222-.593-.848-.197-1.247.666-.67 1.335-1.335 2.005-2.002.14-.14.285-.273.417-.398L4.824 5.95l-.555.557a.72.72 0 01-.605.223.717.717 0 01-.643-.498c-.109-.299-.037-.568.185-.792.683-.686 1.363-1.374 2.055-2.05zm1.544 5.879l1.159 1.157c.293.294.584.591.884.88a.342.342 0 00.208.096c1.335.006 2.671.004 4.007.004a.147.147 0 00.043-.007L9.05 7.023 6.965 9.105z';\r\n\r\n@Component({\r\n components: {\r\n 'markdown-viewer': MarkdownViewer,\r\n VIcon,\r\n },\r\n})\r\nexport default class ArticleView extends AbpBase {\r\n get id(): string {\r\n return this.$route.params['id'];\r\n }\r\n\r\n get stateKey(): string | never[] {\r\n const result = this.$route.query['s'];\r\n return Array.isArray(result) ? [] : result;\r\n }\r\n\r\n set stateKey(v: string | never[]) {\r\n void this.$router.replace({\r\n name: 'article',\r\n params: { id: this.id },\r\n query: { s: v },\r\n });\r\n }\r\n\r\n get documentsAreReady(): boolean {\r\n const state = this.$store.state.articleList;\r\n return state.completedInitialLoad;\r\n }\r\n\r\n viewstate: DocViewState = {\r\n id: '',\r\n };\r\n\r\n created(): void {\r\n void this.$store.dispatch('articleList/initDatastore');\r\n }\r\n\r\n @Watch('stateKey')\r\n @Watch('id')\r\n onIdChanged(): void {\r\n if (this.viewstate && this.viewstate.id != this.id) {\r\n this.viewstate = {\r\n id: this.id,\r\n };\r\n }\r\n if (this.documentsAreReady) {\r\n void this.checkDocument();\r\n }\r\n }\r\n\r\n onViewStateChanged(docViewState: DocViewState): void {\r\n if (!this.stateKey || Array.isArray(this.stateKey)) {\r\n this.stateKey = randomId();\r\n }\r\n this.$store.commit({\r\n type: 'app/setViewState',\r\n payload: {\r\n key: `${this.id}\\uffef${this.stateKey}`,\r\n docViewState: {\r\n ...docViewState,\r\n id: this.id,\r\n },\r\n },\r\n });\r\n }\r\n\r\n @Watch('documentsAreReady')\r\n onReadyStateChange(val: boolean, was: boolean) {\r\n if (!val || was) {\r\n return;\r\n }\r\n void this.checkDocument();\r\n }\r\n\r\n mounted() {\r\n if (this.documentsAreReady) {\r\n void this.checkDocument();\r\n }\r\n }\r\n\r\n get showWatermark(): boolean {\r\n const state = this.$store.state.article;\r\n if (!state.currentRemote) {\r\n return false;\r\n }\r\n if (!state.currentRemote.isPublic) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n get watermark(): string {\r\n const state = this.$store.state.article;\r\n if (!state.currentRemote) {\r\n return '';\r\n }\r\n if (!state.currentRemote.isPublic) {\r\n return '';\r\n }\r\n if (state.currentRemote.protocolSection == 'BLS') {\r\n return mdiStethoscope;\r\n }\r\n return mdiNeedle;\r\n }\r\n\r\n get watermarkColor(): string {\r\n const state = this.$store.state.article;\r\n if (!state.currentRemote) {\r\n return '';\r\n }\r\n if (!state.currentRemote.isPublic) {\r\n return '';\r\n }\r\n if (state.currentRemote.protocolSection == 'BLS') {\r\n return 'blue--text';\r\n }\r\n return 'red--text';\r\n }\r\n\r\n get content(): string {\r\n const state = this.$store.state.article;\r\n if (state.currentRemote) {\r\n return state.currentRemote.documentBody || '';\r\n }\r\n return '';\r\n }\r\n\r\n get showAll(): boolean {\r\n return this.$store.state.app.showAll;\r\n }\r\n\r\n async checkDocument(): Promise {\r\n const state = this.$store.state.articleList;\r\n if (this.stateKey && !Array.isArray(this.stateKey)) {\r\n if (\r\n this.$store.state.app.docViewStates[`${this.id}\\uffef${this.stateKey}`]\r\n ) {\r\n this.viewstate = this.$store.state.app.docViewStates[\r\n `${this.id}\\uffef${this.stateKey}`\r\n ];\r\n if (this.viewstate.id != this.id) {\r\n this.viewstate = {\r\n id: this.id,\r\n };\r\n }\r\n }\r\n } else {\r\n this.viewstate = {\r\n id: this.id,\r\n };\r\n }\r\n if (!(this.id in state.documentIndices)) {\r\n void this.$router.replace({ name: 'not-found', params: { id: this.id } });\r\n return;\r\n }\r\n const idWas = this.$store.state.article.currentRemote?.documentName;\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n const success: boolean = await this.$store.dispatch({\r\n type: 'articleList/pickDocument',\r\n payload: { id: this.id, warnOnContextSwitch: typeof idWas === 'string' },\r\n });\r\n if (!success) {\r\n void this.$router.replace({ name: 'article', params: { id: idWas! } });\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./article.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./article.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./article.vue?vue&type=template&id=101b9f60&scoped=true&\"\nimport script from \"./article.vue?vue&type=script&lang=ts&\"\nexport * from \"./article.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./article.vue?vue&type=style&index=0&id=101b9f60&prod&lang=scss&scoped=true&\"\nimport style1 from \"./article.vue?vue&type=style&index=1&id=101b9f60&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"101b9f60\",\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\"div\", [\n _c(\"div\", { staticClass: \"article-content\" }, [\n _c(\n \"p\",\n [\n _vm._v(\" There is currently no text in this page. \"),\n [\n _vm._v(\" You can \"),\n _c(\"router-link\", { attrs: { to: \"/edit/\" + _vm.id } }, [\n _vm._v(\"create\"),\n ]),\n _vm._v(\" this page. \"),\n ],\n ],\n 2\n ),\n ]),\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","\r\nimport { Component, Watch } from 'vue-property-decorator';\r\nimport AbpBase from '../../lib/abpbase';\r\n@Component({})\r\nexport default class NotFoundView extends AbpBase {\r\n get id(): string {\r\n return this.$route.params['id'];\r\n }\r\n\r\n created() {\r\n this.$store.dispatch('articleList/initDatastore');\r\n }\r\n get documentsAreReady(): boolean {\r\n const state = this.$store.state.articleList;\r\n return state.completedInitialLoad;\r\n }\r\n\r\n mounted() {\r\n if (this.exists) {\r\n this.onExists(true);\r\n }\r\n }\r\n\r\n get exists() {\r\n const state = this.$store.state.articleList;\r\n const exists = state.documentIndices[this.id] !== undefined;\r\n return exists;\r\n }\r\n\r\n @Watch('exists')\r\n onExists(exists: boolean) {\r\n if (exists) {\r\n this.$router.replace({ name: 'article', params: { id: this.id } });\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./not-found.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./not-found.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./not-found.vue?vue&type=template&id=b93a7aa0&\"\nimport script from \"./not-found.vue?vue&type=script&lang=ts&\"\nexport * from \"./not-found.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy\n return _c(\n \"div\",\n [\n _c(\"content-viewer\", {\n staticClass: \"markdown-viewer-content full-bleed\",\n attrs: { content: _vm.content, docid: \"__home__\" },\n }),\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-36.use[0]!../../../node_modules/ts-loader/index.js??clonedRuleSet-36.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./home.vue?vue&type=template&id=949fac7e&\"\nimport script from \"./home.vue?vue&type=script&lang=ts&\"\nexport * from \"./home.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import type { Route } from 'vue-router';\r\nimport type { RouteConfigSingleView } from 'vue-router/types/router';\r\nimport { COLLECTIBLE_LAYOUT_IMPORTS } from '../app.vue';\r\nimport { COLLECTIBLE_MODAL_IMPORTS } from '../components/modalHost.vue';\r\nimport Article from '../views/article/article.vue';\r\nimport NotFound from '../views/article/not-found.vue';\r\nimport Home from '../views/home/home.vue';\r\nimport { registerLoadableRoutes, registerLoaderModule } from './force-load';\r\n\r\ntype LoadableComponent = typeof import('*.vue');\r\n\r\nexport interface AppRouteMeta {\r\n permission?: string;\r\n title?: string;\r\n icon?: string;\r\n layout?: string;\r\n}\r\nexport interface AppRouteConfig extends RouteConfigSingleView {\r\n meta?: AppRouteMeta;\r\n children?: AppRouteConfig[];\r\n}\r\nexport interface AppRoute extends Route {\r\n meta?: AppRouteMeta;\r\n}\r\n\r\nexport const loginRoutes: AppRouteConfig[] = [\r\n {\r\n path: '/login',\r\n name: 'login',\r\n meta: {\r\n title: 'LogIn',\r\n layout: 'simple',\r\n },\r\n component: (): Promise => import('@/views/login.vue'),\r\n },\r\n];\r\nexport const otherRoutes: AppRouteConfig[] = [\r\n {\r\n path: '/toc',\r\n name: 'home',\r\n meta: { permission: '', title: 'Contents' },\r\n component: Home,\r\n },\r\n {\r\n path: '/article/:id',\r\n name: 'article',\r\n\r\n meta: { permission: '', title: 'Article' },\r\n component: Article,\r\n props: true,\r\n },\r\n {\r\n path: '/edit/:id',\r\n name: 'edit-article',\r\n\r\n meta: { permission: '', title: 'EditArticle' },\r\n component: (): Promise =>\r\n import('@/views/article/edit-article.vue'),\r\n props: true,\r\n },\r\n {\r\n path: '/revisions/:id',\r\n name: 'article-revisions',\r\n meta: { permission: '', title: 'Revisions' },\r\n component: (): Promise =>\r\n import('@/views/article/article-revisions.vue'),\r\n props: true,\r\n },\r\n {\r\n path: '/notice/:id',\r\n name: 'edit-notice',\r\n\r\n meta: { permission: '', title: 'EditNotice' },\r\n component: (): Promise =>\r\n import('@/views/notice/edit-notice.vue'),\r\n props: true,\r\n },\r\n {\r\n path: '/',\r\n name: 'display-notices',\r\n\r\n meta: { permission: '', title: 'Home' },\r\n component: (): Promise =>\r\n import('@/views/notice/display-notices.vue'),\r\n },\r\n {\r\n path: '/preview/:id',\r\n name: 'preview-article',\r\n\r\n meta: { permission: '', title: 'Preview' },\r\n component: (): Promise =>\r\n import('@/views/article/preview-article.vue'),\r\n props: true,\r\n },\r\n {\r\n path: '/not-found/:id',\r\n name: 'not-found',\r\n\r\n meta: { permission: '', title: 'NotFound' },\r\n component: NotFound,\r\n props: true,\r\n },\r\n];\r\n/**\r\n * Routes available within the application.\r\n * Issues:\r\n * 1. assumes nested views, which we may not want. Requires parent components to have tags.\r\n * 2. Navigation menu doesn't expand to show nav element currently selected.\r\n * 3. Not filtered by permissions.\r\n */\r\nexport const appRoutes: AppRouteConfig[] = [\r\n {\r\n path: '/setting',\r\n name: 'setting',\r\n\r\n meta: { icon: 'mdi-cog', permission: '', title: 'ManageSystem' },\r\n\r\n component: (): Promise =>\r\n import('@/views/setting/setting.vue'),\r\n children: [\r\n {\r\n path: 'user',\r\n\r\n meta: {\r\n icon: 'mdi-account',\r\n permission: 'Pages.Users',\r\n title: 'ManageUsers',\r\n },\r\n\r\n name: 'user',\r\n component: (): Promise =>\r\n import('@/views/setting/user/user.vue'),\r\n },\r\n /*\r\n {\r\n path: \"role\",\r\n \r\n meta: { icon: \"mdi-account-group\", permission: \"Pages.Roles\",title: \"ManageRoles\" },\r\n \r\n name: \"role\",\r\n component: () => import(\"@/views/setting/role/role.vue\")\r\n },\r\n */\r\n {\r\n path: 'toc/edit',\r\n component: (): Promise =>\r\n import('@/views/index-configuration/index-configuration.vue'),\r\n name: 'edit-toc',\r\n meta: { icon: 'mdi-cog', permission: '', title: 'ManageIndex' },\r\n },\r\n {\r\n path: 'articles',\r\n component: (): Promise =>\r\n import('@/views/article/list-articles.vue'),\r\n name: 'articles',\r\n meta: {\r\n icon: 'mdi-newspaper-variant-multiple',\r\n permission: '',\r\n title: 'ManageArticles',\r\n },\r\n },\r\n {\r\n path: 'notices',\r\n component: (): Promise =>\r\n import('@/views/notice/list-notices.vue'),\r\n name: 'notices',\r\n meta: {\r\n icon: 'mdi-newspaper-variant-multiple',\r\n permission: '',\r\n title: 'ManageNotices',\r\n },\r\n },\r\n {\r\n path: 'attachments',\r\n component: (): Promise =>\r\n import('@/views/attachments/list-attachments.vue'),\r\n name: 'attachments',\r\n meta: {\r\n icon: 'mdi-folder-multiple-image',\r\n permission: '',\r\n title: 'ManageImages',\r\n },\r\n },\r\n ],\r\n },\r\n];\r\n\r\nregisterLoadableRoutes(...loginRoutes, ...appRoutes, ...otherRoutes);\r\nregisterLoaderModule(COLLECTIBLE_LAYOUT_IMPORTS);\r\nregisterLoaderModule(COLLECTIBLE_MODAL_IMPORTS);\r\n\r\nexport const routers = [...loginRoutes, ...appRoutes, ...otherRoutes];\r\n","import Vue from 'vue';\r\nimport type { Route } from 'vue-router';\r\nimport type { ActionContext, Module } from 'vuex';\r\nimport Vuex from 'vuex';\r\nimport type { ActionPayload } from '..';\r\nimport { APP_CONSTS } from '../../init';\r\nimport { abp } from '../../lib/abp';\r\nimport ajax from '../../lib/ajax';\r\nimport Util from '../../lib/util';\r\nimport type { AppRouteConfig } from '../../router/routes';\r\nimport { appRoutes, otherRoutes } from '../../router/routes';\r\nVue.use(Vuex);\r\n\r\nexport interface Notification {\r\n message: string | string[];\r\n details?: string | string[];\r\n severity: 'info' | 'error' | 'warning';\r\n duration: number | 'infinite';\r\n tag?: string;\r\n index?: number;\r\n timeout?: string;\r\n}\r\n\r\nexport interface DocViewState {\r\n id: string;\r\n tab?: string;\r\n expanders?: string[];\r\n expandall?: boolean;\r\n}\r\n\r\nexport interface AppState {\r\n footerComponent: string | null;\r\n pageOpenedList: Partial[];\r\n currentPageName: string;\r\n menuList: AppRouteConfig[];\r\n drawer: boolean;\r\n notifications: Notification[];\r\n notificationIndex: number;\r\n modal:\r\n | 'link'\r\n | 'image'\r\n | 'article-info'\r\n | 'notice-info'\r\n | 'self-settings'\r\n | 'accept-tos'\r\n | null;\r\n loginTwoFactor: boolean;\r\n currentLayout: string;\r\n fromApp: boolean;\r\n showAll: boolean;\r\n docViewStates: {\r\n [statekey: string]: DocViewState;\r\n };\r\n}\r\n\r\nlet notificationTimeout: number | undefined;\r\nlet currentTimeout: string | undefined;\r\nconst DEFAULT_LAYOUT = 'app';\r\n\r\nfunction processExpirations(context: ActionContext) {\r\n return (notifications: Notification[]) => {\r\n let earliest: string | undefined;\r\n for (const notification of notifications) {\r\n if (\r\n typeof notification.timeout != 'undefined' &&\r\n (typeof earliest === 'undefined' || earliest > notification.timeout)\r\n ) {\r\n earliest = notification.timeout;\r\n }\r\n }\r\n if (\r\n typeof earliest === 'undefined' ||\r\n typeof currentTimeout === 'undefined' ||\r\n earliest < currentTimeout\r\n ) {\r\n if (typeof notificationTimeout != 'undefined') {\r\n window.clearTimeout(notificationTimeout);\r\n notificationTimeout = undefined;\r\n }\r\n currentTimeout = earliest;\r\n }\r\n if (typeof currentTimeout !== 'undefined') {\r\n const nextTimeout = new Date(currentTimeout);\r\n const currentTime = new Date();\r\n let duration = nextTimeout.getTime() - currentTime.getTime();\r\n if (duration < 0) {\r\n duration = 0;\r\n }\r\n notificationTimeout = window.setTimeout(() => {\r\n notificationTimeout = undefined;\r\n currentTimeout = undefined;\r\n const currentTime = new Date().toISOString();\r\n context.commit({\r\n type: 'removeExpiredNotifications',\r\n payload: currentTime,\r\n });\r\n processExpirations(context)(context.state.notifications);\r\n }, duration);\r\n }\r\n };\r\n}\r\n\r\nclass AppModule implements Module {\r\n namespaced = true;\r\n state: AppState = {\r\n footerComponent: null,\r\n pageOpenedList: [\r\n {\r\n meta: { title: 'HomePage' },\r\n path: '',\r\n name: 'home',\r\n },\r\n ],\r\n currentPageName: '',\r\n menuList: [],\r\n drawer: false,\r\n notifications: [],\r\n notificationIndex: 0,\r\n modal: null,\r\n loginTwoFactor: false,\r\n currentLayout: DEFAULT_LAYOUT,\r\n fromApp: false,\r\n showAll: false,\r\n docViewStates: {},\r\n };\r\n\r\n mutations = {\r\n openModal(\r\n state: AppState,\r\n arg: ActionPayload<\r\n | 'link'\r\n | 'image'\r\n | 'article-info'\r\n | 'notice-info'\r\n | 'self-settings'\r\n | 'accept-tos'\r\n | null\r\n >\r\n ) {\r\n state.modal = arg.payload;\r\n },\r\n closeModal(state: AppState) {\r\n state.modal = null;\r\n },\r\n setShowAll(state: AppState, payload: ActionPayload) {\r\n state.showAll = payload.payload;\r\n },\r\n setViewState(\r\n state: AppState,\r\n payload: ActionPayload<{ key: string; docViewState: DocViewState }>\r\n ) {\r\n state.docViewStates[payload.payload.key] = payload.payload.docViewState;\r\n },\r\n logout() {},\r\n setOpenedList(state: AppState) {\r\n state.pageOpenedList = localStorage.pageOpenedList\r\n ? JSON.parse(localStorage.pageOpenedList)\r\n : [(otherRoutes[0].children || [])[0]];\r\n },\r\n hideFooterComponent(state: AppState) {\r\n state.footerComponent = null;\r\n },\r\n toggleDrawer(state: AppState) {\r\n state.drawer = !state.drawer;\r\n },\r\n updateMenuList(state: AppState, arg: ActionPayload) {\r\n state.menuList = arg.payload;\r\n },\r\n insertNotification(state: AppState, arg: ActionPayload) {\r\n state.notifications = [\r\n ...state.notifications.filter(\r\n n => !arg.payload.tag || n.tag != arg.payload.tag\r\n ),\r\n { ...arg.payload, index: state.notificationIndex },\r\n ];\r\n state.notificationIndex += 1;\r\n },\r\n removeNotification(state: AppState, arg: ActionPayload) {\r\n state.notifications = state.notifications.filter(\r\n f => f.index != arg.payload\r\n );\r\n },\r\n removeExpiredNotifications(state: AppState, arg: ActionPayload) {\r\n state.notifications = state.notifications.filter(\r\n f => typeof f.timeout === 'undefined' || f.timeout > arg.payload\r\n );\r\n },\r\n setTwoFactorSetupState(state: AppState, arg: ActionPayload) {\r\n state.loginTwoFactor = arg.payload;\r\n },\r\n setLayout(state: AppState, arg: ActionPayload) {\r\n state.currentLayout = arg.payload;\r\n },\r\n setFromApp(state: AppState) {\r\n state.fromApp = true;\r\n },\r\n };\r\n\r\n actions = {\r\n setFromApp(context: ActionContext) {\r\n abp.utils.setCookieValue('fromapp', '1', undefined, abp.appPath);\r\n context.commit({\r\n type: 'setFromApp',\r\n });\r\n },\r\n toggleLayout(context: ActionContext) {\r\n const newLayout =\r\n context.state.currentLayout == 'app' ? 'web-app' : 'app';\r\n abp.utils.setCookieValue('layout', newLayout, undefined, abp.appPath);\r\n\r\n context.commit({\r\n type: 'setLayout',\r\n payload: newLayout,\r\n });\r\n },\r\n init(context: ActionContext) {\r\n const acceptedtos = abp.utils.getCookieValue('acceptedtos');\r\n const layout = abp.utils.getCookieValue('layout') || DEFAULT_LAYOUT;\r\n const fromApp = abp.utils.getCookieValue('fromapp');\r\n if (fromApp) {\r\n context.commit({\r\n type: 'setFromApp',\r\n });\r\n }\r\n context.commit({\r\n type: 'setLayout',\r\n payload: layout,\r\n });\r\n\r\n if (!acceptedtos) {\r\n context.commit({\r\n type: 'openModal',\r\n payload: 'accept-tos',\r\n });\r\n }\r\n },\r\n acceptTOS(context: ActionContext) {\r\n abp.utils.setCookieValue(\r\n 'acceptedtos',\r\n '1',\r\n new Date('2999-01-01T00:00:00Z'),\r\n abp.appPath\r\n );\r\n context.commit({\r\n type: 'openModal',\r\n payload: null,\r\n });\r\n },\r\n updateMenuList(context: ActionContext) {\r\n const menuList = appRoutes\r\n .map(route => {\r\n return {\r\n ...route,\r\n children: (route.children || []).filter(item =>\r\n item.meta && item.meta.permission\r\n ? Util.abp.auth.isGranted(item.meta.permission)\r\n : true\r\n ),\r\n };\r\n })\r\n .filter(route => route.children && route.children.length);\r\n context.commit({\r\n type: 'updateMenuList',\r\n payload: menuList,\r\n });\r\n },\r\n\r\n loginClearTwoFactor(context: ActionContext) {\r\n if (!context.state.loginTwoFactor) {\r\n return;\r\n }\r\n abp.auth.clearToken();\r\n abp.utils.deleteCookie(\r\n APP_CONSTS.authorization.encrptedAuthTokenName,\r\n abp.appPath\r\n );\r\n context.commit({\r\n type: 'setTwoFactorSetupState',\r\n payload: false,\r\n });\r\n },\r\n async completeTwoFactorChallenge(\r\n context: ActionContext,\r\n arg: ActionPayload<{\r\n challengeMethod: string;\r\n code: string;\r\n rememberMe: boolean;\r\n }>\r\n ): Promise {\r\n if (!abp.auth.getToken()) {\r\n context.dispatch('loginClearTwoFactor');\r\n return false;\r\n }\r\n const resp = await ajax.post(\r\n '/api/TokenAuth/CompleteTwoFactorChallenge',\r\n arg.payload\r\n );\r\n if (resp.status == 200) {\r\n const tokenExpireDate = arg.payload.rememberMe\r\n ? new Date(\r\n new Date().getTime() + 1000 * resp.data.result.expireInSeconds\r\n )\r\n : undefined;\r\n abp.auth.setToken(resp.data.result.accessToken, tokenExpireDate);\r\n abp.utils.setCookieValue(\r\n APP_CONSTS.authorization.encrptedAuthTokenName,\r\n resp.data.result.encryptedAccessToken,\r\n tokenExpireDate,\r\n abp.appPath\r\n );\r\n context.dispatch(\r\n {\r\n type: 'session/init',\r\n payload: true,\r\n },\r\n { root: true }\r\n );\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n async loginViaForgotPasswordCode(\r\n context: ActionContext,\r\n payload: ActionPayload<{ code: string; emailAddress: string }>\r\n ) {\r\n const rep = await ajax.post(\r\n '/api/TokenAuth/AuthenticateViaCode',\r\n payload.payload\r\n );\r\n\r\n if (rep.status == 200) {\r\n abp.auth.setToken(rep.data.result.accessToken);\r\n abp.utils.setCookieValue(\r\n APP_CONSTS.authorization.encrptedAuthTokenName,\r\n rep.data.result.encryptedAccessToken,\r\n undefined,\r\n abp.appPath\r\n );\r\n abp.utils.setCookieValue(\r\n 'passwordauthenticated',\r\n 'false',\r\n undefined,\r\n abp.appPath\r\n );\r\n if (rep.data.result.requiresTwoFactor) {\r\n context.commit({\r\n type: 'setTwoFactorSetupState',\r\n payload: true,\r\n });\r\n return false;\r\n }\r\n\r\n context.dispatch(\r\n {\r\n type: 'session/init',\r\n payload: true,\r\n },\r\n { root: true }\r\n );\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n async login(\r\n content: ActionContext,\r\n payload: any\r\n ): Promise {\r\n const rep = await ajax.post('/api/TokenAuth/Authenticate', payload.data);\r\n\r\n if (rep.status == 200) {\r\n const tokenExpireDate = payload.data.rememberMe\r\n ? new Date(\r\n new Date().getTime() + 1000 * rep.data.result.expireInSeconds\r\n )\r\n : undefined;\r\n abp.auth.setToken(rep.data.result.accessToken, tokenExpireDate);\r\n abp.utils.setCookieValue(\r\n APP_CONSTS.authorization.encrptedAuthTokenName,\r\n rep.data.result.encryptedAccessToken,\r\n tokenExpireDate,\r\n abp.appPath\r\n );\r\n abp.utils.setCookieValue(\r\n 'passwordauthenticated',\r\n 'true',\r\n undefined,\r\n abp.appPath\r\n );\r\n if (rep.data.result.requiresTwoFactor) {\r\n content.commit({\r\n type: 'setTwoFactorSetupState',\r\n payload: true,\r\n });\r\n return false;\r\n }\r\n\r\n content.dispatch(\r\n {\r\n type: 'session/init',\r\n payload: true,\r\n },\r\n { root: true }\r\n );\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n async forgotPassword(\r\n _context: ActionContext,\r\n arg: ActionPayload<{ emailAddress: string }>\r\n ) {\r\n const rep = await ajax.post(\r\n '/api/services/app/User/ForgotPassword',\r\n arg.payload\r\n );\r\n\r\n if (rep.status == 200) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n logout(context: ActionContext) {\r\n abp.auth.clearToken();\r\n abp.utils.deleteCookie(\r\n APP_CONSTS.authorization.encrptedAuthTokenName,\r\n abp.appPath\r\n );\r\n localStorage.clear();\r\n sessionStorage.clear();\r\n context.dispatch({ type: 'session/clear' }, { root: true });\r\n },\r\n notify(\r\n context: ActionContext,\r\n arg: ActionPayload\r\n ) {\r\n let notification = arg.payload;\r\n if (typeof notification.duration == 'number') {\r\n const newTimeout = new Date();\r\n newTimeout.setMilliseconds(\r\n newTimeout.getMilliseconds() + notification.duration\r\n );\r\n const timestamp = newTimeout.toISOString();\r\n notification = {\r\n ...notification,\r\n timeout: timestamp,\r\n };\r\n }\r\n context.commit({\r\n type: 'insertNotification',\r\n payload: notification,\r\n });\r\n processExpirations(context)(context.state.notifications);\r\n },\r\n removeNotification(\r\n context: ActionContext,\r\n arg: ActionPayload\r\n ) {\r\n context.commit({\r\n type: 'removeNotification',\r\n payload: arg.payload,\r\n });\r\n processExpirations(context)(context.state.notifications);\r\n },\r\n };\r\n}\r\nconst appModule = new AppModule();\r\nexport default appModule;\r\n","'use strict';\r\nvar Mutation = window.MutationObserver || window.WebKitMutationObserver;\r\n\r\nvar scheduleDrain;\r\n\r\n{\r\n if (Mutation) {\r\n var called = 0;\r\n var observer = new Mutation(nextTick);\r\n var element = window.document.createTextNode('');\r\n observer.observe(element, {\r\n characterData: true,\r\n });\r\n scheduleDrain = function () {\r\n element.data = called = ++called % 2;\r\n };\r\n } else if (\r\n !window.setImmediate &&\r\n typeof window.MessageChannel !== 'undefined'\r\n ) {\r\n var channel = new window.MessageChannel();\r\n channel.port1.onmessage = nextTick;\r\n scheduleDrain = function () {\r\n channel.port2.postMessage(0);\r\n };\r\n } else if (\r\n 'document' in window &&\r\n 'onreadystatechange' in window.document.createElement('script')\r\n ) {\r\n scheduleDrain = function () {\r\n // Create a