webdav.client 5.21.6001 → 5.21.6101

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/ITHitWebDAVClient.js +2 -2
  2. package/index.d.ts +1 -1
  3. package/index.js +1 -1
  4. package/package.json +1 -1
  5. package/Help/ClassReference/Create.html +0 -1809
  6. package/Help/ClassReference/ITHit.Environment.html +0 -1739
  7. package/Help/ClassReference/ITHit.LogLevel.html +0 -1985
  8. package/Help/ClassReference/ITHit.Logger.html +0 -2170
  9. package/Help/ClassReference/ITHit.WebDAV.Client.AsyncResult.html +0 -1877
  10. package/Help/ClassReference/ITHit.WebDAV.Client.BrowserExtension.html +0 -2282
  11. package/Help/ClassReference/ITHit.WebDAV.Client.CancellableResult.html +0 -2049
  12. package/Help/ClassReference/ITHit.WebDAV.Client.DavConstants.html +0 -3181
  13. package/Help/ClassReference/ITHit.WebDAV.Client.Depth.html +0 -1815
  14. package/Help/ClassReference/ITHit.WebDAV.Client.DocManager.html +0 -3600
  15. package/Help/ClassReference/ITHit.WebDAV.Client.Encoder.html +0 -1785
  16. package/Help/ClassReference/ITHit.WebDAV.Client.Error.html +0 -1785
  17. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.BadRequestException.html +0 -1883
  18. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.ConflictException.html +0 -1883
  19. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.DependencyFailedException.html +0 -1883
  20. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.ForbiddenException.html +0 -1883
  21. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.Info.Error.html +0 -1753
  22. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.Info.Multistatus.html +0 -1703
  23. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.Info.MultistatusResponse.html +0 -1703
  24. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.Info.PropertyMultistatus.html +0 -1755
  25. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.Info.PropertyMultistatusResponse.html +0 -1703
  26. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.InsufficientStorageException.html +0 -1883
  27. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.IntegrationException.html +0 -1689
  28. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.LockedException.html +0 -1883
  29. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.MethodNotAllowedException.html +0 -1883
  30. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.NotFoundException.html +0 -1883
  31. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.NotImplementedException.html +0 -1883
  32. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.Parsers.InsufficientStorage.html +0 -1805
  33. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.PreconditionFailedException.html +0 -1883
  34. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.PropertyConflictException.html +0 -1929
  35. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.PropertyException.html +0 -1929
  36. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.PropertyForbiddenException.html +0 -1929
  37. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.PropertyNotFoundException.html +0 -1929
  38. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.QuotaNotExceededException.html +0 -1883
  39. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.SufficientDiskSpaceException.html +0 -1883
  40. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.UnauthorizedException.html +0 -1883
  41. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.WebDavException.html +0 -1695
  42. package/Help/ClassReference/ITHit.WebDAV.Client.Exceptions.WebDavHttpException.html +0 -1883
  43. package/Help/ClassReference/ITHit.WebDAV.Client.Features.html +0 -2215
  44. package/Help/ClassReference/ITHit.WebDAV.Client.File.html +0 -9490
  45. package/Help/ClassReference/ITHit.WebDAV.Client.Folder.html +0 -11459
  46. package/Help/ClassReference/ITHit.WebDAV.Client.GEditInfo.html +0 -1785
  47. package/Help/ClassReference/ITHit.WebDAV.Client.HierarchyItem.html +0 -8324
  48. package/Help/ClassReference/ITHit.WebDAV.Client.HttpStatus.html +0 -3861
  49. package/Help/ClassReference/ITHit.WebDAV.Client.LockInfo.html +0 -1923
  50. package/Help/ClassReference/ITHit.WebDAV.Client.LockScope.html +0 -1755
  51. package/Help/ClassReference/ITHit.WebDAV.Client.LockUriTokenPair.html +0 -1785
  52. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.CancelUpload.html +0 -1691
  53. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.CopyMove.html +0 -1745
  54. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Delete.html +0 -1691
  55. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.ErrorResponse.html +0 -1751
  56. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Get.GoAsync.html +0 -1830
  57. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Get.html +0 -1698
  58. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Head.html +0 -1691
  59. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.HttpMethod.html +0 -1765
  60. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Lock.Go.html +0 -1866
  61. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Lock.GoAsync.html +0 -1884
  62. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Lock.html +0 -1701
  63. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.LockRefresh.Go.html +0 -1866
  64. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.LockRefresh.GoAsync.html +0 -1884
  65. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.LockRefresh.html +0 -1701
  66. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Mkcol.html +0 -1691
  67. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.MultiResponse.html +0 -1751
  68. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Options.html +0 -1748
  69. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Propfind.html +0 -1745
  70. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Proppatch.html +0 -1691
  71. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Propstat.html +0 -1733
  72. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Put.html +0 -1691
  73. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Report.html +0 -1761
  74. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Response.html +0 -1751
  75. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.ResponseFactory.html +0 -1689
  76. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Search.html +0 -1691
  77. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.SingleResponse.html +0 -1742
  78. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Undelete.html +0 -1685
  79. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.Unlock.html +0 -1691
  80. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.UpdateToVersion.html +0 -1691
  81. package/Help/ClassReference/ITHit.WebDAV.Client.Methods.VersionControl.html +0 -1691
  82. package/Help/ClassReference/ITHit.WebDAV.Client.MsOfficeEditExtensions.html +0 -2103
  83. package/Help/ClassReference/ITHit.WebDAV.Client.Multistatus.html +0 -1785
  84. package/Help/ClassReference/ITHit.WebDAV.Client.MultistatusResponse.html +0 -1831
  85. package/Help/ClassReference/ITHit.WebDAV.Client.OptionsInfo.html +0 -1739
  86. package/Help/ClassReference/ITHit.WebDAV.Client.OrderProperty.html +0 -1960
  87. package/Help/ClassReference/ITHit.WebDAV.Client.PageResults.html +0 -1785
  88. package/Help/ClassReference/ITHit.WebDAV.Client.Property.html +0 -2017
  89. package/Help/ClassReference/ITHit.WebDAV.Client.PropertyList.html +0 -2048
  90. package/Help/ClassReference/ITHit.WebDAV.Client.PropertyMultistatusResponse.html +0 -1883
  91. package/Help/ClassReference/ITHit.WebDAV.Client.PropertyName.html +0 -1972
  92. package/Help/ClassReference/ITHit.WebDAV.Client.Request.html +0 -2673
  93. package/Help/ClassReference/ITHit.WebDAV.Client.RequestProgress.html +0 -1969
  94. package/Help/ClassReference/ITHit.WebDAV.Client.ResourceType.html +0 -1755
  95. package/Help/ClassReference/ITHit.WebDAV.Client.ResumableUpload.html +0 -2271
  96. package/Help/ClassReference/ITHit.WebDAV.Client.SPSManager.html +0 -1951
  97. package/Help/ClassReference/ITHit.WebDAV.Client.SearchQuery.html +0 -1974
  98. package/Help/ClassReference/ITHit.WebDAV.Client.Source.html +0 -1785
  99. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.DocManager.MsOfficeEditExtensions.html +0 -1685
  100. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.CopyMove.html +0 -1685
  101. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.CreateFile.html +0 -1685
  102. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.CreateFolder.html +0 -1685
  103. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.Delete.html +0 -1685
  104. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.GetFolderItems.html +0 -1685
  105. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.GetHeadRequests.html +0 -1685
  106. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.GetItemByFolder.html +0 -1685
  107. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.GetItemBySession.html +0 -1685
  108. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.GetParent.html +0 -1685
  109. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.ItemExists.html +0 -1685
  110. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.MicrosoftOfficeDiscovery.html +0 -1685
  111. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.NameCheck.html +0 -1685
  112. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.Progress.html +0 -1685
  113. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.Refresh.html +0 -1685
  114. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.Search.html +0 -1685
  115. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyItems.SupportedFeatures.html +0 -1685
  116. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyProperties.GetProperties.html +0 -1685
  117. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.HierarchyProperties.UpdateProperties.html +0 -1685
  118. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.Locks.CheckSupport.html +0 -1685
  119. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.Locks.Etag.html +0 -1685
  120. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.Locks.GetLocks.html +0 -1685
  121. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.Locks.Lock.html +0 -1685
  122. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.Locks.RefreshLock.html +0 -1685
  123. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.Versions.GetVersions.html +0 -1685
  124. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.Versions.ManageVersions.html +0 -1685
  125. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.Versions.PutUnderVersion.html +0 -1685
  126. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.Versions.ReadContent.html +0 -1685
  127. package/Help/ClassReference/ITHit.WebDAV.Client.Tests.WebDavSession.Events.html +0 -1685
  128. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.AutoUploader.html +0 -1753
  129. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Collections.Map.html +0 -1916
  130. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Collections.Pair.html +0 -1787
  131. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.ContentWriter.html +0 -1945
  132. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Controls.DropZone.html +0 -1791
  133. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Controls.FSEntryFactory.html +0 -1689
  134. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Controls.HtmlControl.html +0 -1781
  135. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Controls.Input.html +0 -1791
  136. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.DropZoneCollection.html +0 -2140
  137. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Events.AsyncEvent.html +0 -1884
  138. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Events.BaseEvent.html +0 -1685
  139. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Events.BeforeUploadStarted.html +0 -2030
  140. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Events.Error.html +0 -1695
  141. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Events.EventName.html +0 -1843
  142. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Events.ProgressChanged.html +0 -1791
  143. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Events.QueueChanged.html +0 -1787
  144. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Events.StateChanged.html +0 -1791
  145. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Events.UploadError.html +0 -2174
  146. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Events.UploadItemsCreated.html +0 -2150
  147. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.FSEntry.html +0 -1823
  148. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.FileSpan.html +0 -1806
  149. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Groups.Group.html +0 -1761
  150. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Groups.GroupManager.html +0 -1803
  151. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.InputCollection.html +0 -2140
  152. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.ItemSettings.html +0 -1685
  153. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Path.Generator.html +0 -1888
  154. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Path.PathCache.html +0 -1693
  155. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Progress.html +0 -1969
  156. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Providers.ProgressTracker.html +0 -1744
  157. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Providers.UploadDiff.html +0 -1786
  158. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Providers.UploadProvider.html +0 -1832
  159. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Queue.html +0 -2618
  160. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.ServerItem.html +0 -1761
  161. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Settings.html +0 -1840
  162. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.State.html +0 -2031
  163. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.States.BaseState.html +0 -1685
  164. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.States.CanceledState.html +0 -1691
  165. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.States.CompletedState.html +0 -1691
  166. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.States.Factory.html +0 -1689
  167. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.States.PausedState.html +0 -1691
  168. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.States.QueuedState.html +0 -1691
  169. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.States.ResumeState.html +0 -1691
  170. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.States.SkippedState.html +0 -1691
  171. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.States.UploadingState.html +0 -1691
  172. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.UploadItem.html +0 -5087
  173. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.UploadLocation.html +0 -1761
  174. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Uploader.html +0 -2106
  175. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.UploaderSession.html +0 -3304
  176. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Utils.DavUrl.html +0 -1779
  177. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Utils.DavUrlBuilder.html +0 -1744
  178. package/Help/ClassReference/ITHit.WebDAV.Client.Upload.Utils.RepeatableAction.html +0 -1863
  179. package/Help/ClassReference/ITHit.WebDAV.Client.UploadProgressInfo.html +0 -1877
  180. package/Help/ClassReference/ITHit.WebDAV.Client.Version.html +0 -3357
  181. package/Help/ClassReference/ITHit.WebDAV.Client.WebDavRequest.html +0 -1689
  182. package/Help/ClassReference/ITHit.WebDAV.Client.WebDavResponse.html +0 -1689
  183. package/Help/ClassReference/ITHit.WebDAV.Client.WebDavSession.html +0 -4046
  184. package/Help/ClassReference/ITHit.WebDAV.Client.WebDavUtil.html +0 -1689
  185. package/Help/ClassReference/data/search.json +0 -1
  186. package/Help/ClassReference/fonts/Inconsolata-Regular.ttf +0 -0
  187. package/Help/ClassReference/fonts/OpenSans-Regular.ttf +0 -0
  188. package/Help/ClassReference/fonts/WorkSans-Bold.ttf +0 -0
  189. package/Help/ClassReference/global.html +0 -7914
  190. package/Help/ClassReference/index.html +0 -2408
  191. package/Help/ClassReference/scripts/core.js +0 -710
  192. package/Help/ClassReference/scripts/core.min.js +0 -23
  193. package/Help/ClassReference/scripts/resize.js +0 -90
  194. package/Help/ClassReference/scripts/search.js +0 -265
  195. package/Help/ClassReference/scripts/search.min.js +0 -6
  196. package/Help/ClassReference/scripts/third-party/Apache-License-2.0.txt +0 -202
  197. package/Help/ClassReference/scripts/third-party/fuse.js +0 -9
  198. package/Help/ClassReference/scripts/third-party/hljs-line-num-original.js +0 -369
  199. package/Help/ClassReference/scripts/third-party/hljs-line-num.js +0 -1
  200. package/Help/ClassReference/scripts/third-party/hljs-original.js +0 -5171
  201. package/Help/ClassReference/scripts/third-party/hljs.js +0 -1
  202. package/Help/ClassReference/scripts/third-party/jquery.min.js +0 -6
  203. package/Help/ClassReference/scripts/third-party/popper.js +0 -5
  204. package/Help/ClassReference/scripts/third-party/tippy.js +0 -1
  205. package/Help/ClassReference/scripts/third-party/tocbot.js +0 -683
  206. package/Help/ClassReference/scripts/third-party/tocbot.min.js +0 -1
  207. package/Help/ClassReference/styles/clean-jsdoc-theme-base.css +0 -1053
  208. package/Help/ClassReference/styles/clean-jsdoc-theme-dark.css +0 -418
  209. package/Help/ClassReference/styles/clean-jsdoc-theme-light.css +0 -399
  210. package/Help/ClassReference/styles/clean-jsdoc-theme.min.css +0 -1
@@ -1,683 +0,0 @@
1
- /* eslint no-var: off */
2
- var defaultOptions = {
3
- ignoreSelector: '.js-toc-ignore',
4
- linkClass: 'toc-link',
5
- extraLinkClasses: '',
6
- activeLinkClass: 'is-active-link',
7
- listClass: 'toc-list',
8
- extraListClasses: '',
9
- isCollapsedClass: 'is-collapsed',
10
- collapsibleClass: 'is-collapsible',
11
- listItemClass: 'toc-list-item',
12
- activeListItemClass: 'is-active-li',
13
- collapseDepth: 0,
14
- scrollSmooth: true,
15
- scrollSmoothDuration: 420,
16
- scrollSmoothOffset: 0,
17
- scrollEndCallback: function (e) { },
18
- throttleTimeout: 50,
19
- positionFixedSelector: null,
20
- positionFixedClass: 'is-position-fixed',
21
- fixedSidebarOffset: 'auto',
22
- includeHtml: false,
23
- includeTitleTags: false,
24
- orderedList: true,
25
- scrollContainer: null,
26
- skipRendering: false,
27
- headingLabelCallback: false,
28
- ignoreHiddenElements: false,
29
- headingObjectCallback: function(obj) {
30
- if(obj.headingLevel === 4){
31
- let newNameObj = document.querySelector('#' + obj.id.replaceAll(":", "\\:")).nextSibling;
32
-
33
- while(newNameObj && newNameObj.nodeType !== 1) {
34
- newNameObj = newNameObj.nextSibling
35
- }
36
- if(newNameObj && newNameObj.classList.contains('toc-nav-name')) obj.textContent = newNameObj.textContent;
37
- }
38
-
39
- return obj;
40
- },
41
- basePath: '',
42
- disableTocScrollSync: false
43
- }
44
-
45
- function ParseContent(options) {
46
- var reduce = [].reduce
47
-
48
- /**
49
- * Get the last item in an array and return a reference to it.
50
- * @param {Array} array
51
- * @return {Object}
52
- */
53
- function getLastItem(array) {
54
- return array[array.length - 1]
55
- }
56
-
57
- /**
58
- * Get heading level for a heading dom node.
59
- * @param {HTMLElement} heading
60
- * @return {Number}
61
- */
62
- function getHeadingLevel(heading) {
63
- return +heading.nodeName.toUpperCase().replace('H', '')
64
- }
65
-
66
- /**
67
- * Get important properties from a heading element and store in a plain object.
68
- * @param {HTMLElement} heading
69
- * @return {Object}
70
- */
71
- function getHeadingObject(heading) {
72
- // each node is processed twice by this method because nestHeadingsArray() and addNode() calls it
73
- // first time heading is real DOM node element, second time it is obj
74
- // that is causing problem so I am processing only original DOM node
75
- if (!(heading instanceof window.HTMLElement)) return heading
76
-
77
- if (options.ignoreHiddenElements && (!heading.offsetHeight || !heading.offsetParent)) {
78
- return null
79
- }
80
-
81
- const headingLabel = heading.getAttribute('data-heading-label') ||
82
- (options.headingLabelCallback ? String(options.headingLabelCallback(heading.textContent)) : heading.textContent.trim())
83
- var obj = {
84
- id: heading.id,
85
- children: [],
86
- nodeName: heading.nodeName,
87
- headingLevel: getHeadingLevel(heading),
88
- textContent: headingLabel
89
- }
90
-
91
- if (options.includeHtml) {
92
- obj.childNodes = heading.childNodes
93
- }
94
-
95
- if (options.headingObjectCallback) {
96
- return options.headingObjectCallback(obj, heading)
97
- }
98
-
99
- return obj
100
- }
101
-
102
- /**
103
- * Add a node to the nested array.
104
- * @param {Object} node
105
- * @param {Array} nest
106
- * @return {Array}
107
- */
108
- function addNode(node, nest) {
109
- var obj = getHeadingObject(node)
110
- var level = obj.headingLevel
111
- var array = nest
112
- var lastItem = getLastItem(array)
113
- var lastItemLevel = lastItem
114
- ? lastItem.headingLevel
115
- : 0
116
- var counter = level - lastItemLevel
117
-
118
- while (counter > 0) {
119
- lastItem = getLastItem(array)
120
- // Handle case where there are multiple h5+ in a row.
121
- if (lastItem && level === lastItem.headingLevel) {
122
- break
123
- } else if (lastItem && lastItem.children !== undefined) {
124
- array = lastItem.children
125
- }
126
- counter--
127
- }
128
-
129
- if (level >= options.collapseDepth) {
130
- obj.isCollapsed = true
131
- }
132
-
133
- array.push(obj)
134
- return array
135
- }
136
-
137
- /**
138
- * Select headings in content area, exclude any selector in options.ignoreSelector
139
- * @param {HTMLElement} contentElement
140
- * @param {Array} headingSelector
141
- * @return {Array}
142
- */
143
- function selectHeadings(contentElement, headingSelector) {
144
- var selectors = headingSelector
145
- if (options.ignoreSelector) {
146
- selectors = headingSelector.split(',')
147
- .map(function mapSelectors(selector) {
148
- return selector.trim() + ':not(' + options.ignoreSelector + ')'
149
- })
150
- }
151
- try {
152
- return contentElement.querySelectorAll(selectors)
153
- } catch (e) {
154
- console.warn('Headers not found with selector: ' + selectors); // eslint-disable-line
155
- return null
156
- }
157
- }
158
-
159
- /**
160
- * Nest headings array into nested arrays with 'children' property.
161
- * @param {Array} headingsArray
162
- * @return {Object}
163
- */
164
- function nestHeadingsArray(headingsArray) {
165
- return reduce.call(headingsArray, function reducer(prev, curr) {
166
- var currentHeading = getHeadingObject(curr)
167
- if (currentHeading) {
168
- addNode(currentHeading, prev.nest)
169
- }
170
- return prev
171
- }, {
172
- nest: []
173
- })
174
- }
175
-
176
- return {
177
- nestHeadingsArray: nestHeadingsArray,
178
- selectHeadings: selectHeadings
179
- }
180
- }
181
-
182
- function BuildHtml(options) {
183
- var forEach = [].forEach
184
- var some = [].some
185
- var body = document.body
186
- var tocElement
187
- var mainContainer = document.querySelector(options.contentSelector)
188
- var currentlyHighlighting = true
189
- var SPACE_CHAR = ' '
190
-
191
- /**
192
- * Create link and list elements.
193
- * @param {Object} d
194
- * @param {HTMLElement} container
195
- * @return {HTMLElement}
196
- */
197
- function createEl(d, container) {
198
- var link = container.appendChild(createLink(d))
199
- if (d.children.length) {
200
- var list = createList(d.isCollapsed)
201
- d.children.forEach(function (child) {
202
- createEl(child, list)
203
- })
204
- link.appendChild(list)
205
- }
206
- }
207
-
208
- /**
209
- * Render nested heading array data into a given element.
210
- * @param {HTMLElement} parent Optional. If provided updates the {@see tocElement} to match.
211
- * @param {Array} data
212
- * @return {HTMLElement}
213
- */
214
- function render(parent, data) {
215
- var collapsed = false
216
- var container = createList(collapsed)
217
-
218
- data.forEach(function (d) {
219
- createEl(d, container)
220
- })
221
-
222
- // Return if no TOC element is provided or known.
223
- tocElement = parent || tocElement
224
- if (tocElement === null) {
225
- return
226
- }
227
-
228
- // Remove existing child if it exists.
229
- if (tocElement.firstChild) {
230
- tocElement.removeChild(tocElement.firstChild)
231
- }
232
-
233
- // Just return the parent and don't append the list if no links are found.
234
- if (data.length === 0) {
235
- return tocElement
236
- }
237
-
238
- // Append the Elements that have been created
239
- return tocElement.appendChild(container)
240
- }
241
-
242
- /**
243
- * Create link element.
244
- * @param {Object} data
245
- * @return {HTMLElement}
246
- */
247
- function createLink(data) {
248
- var item = document.createElement('li')
249
- var a = document.createElement('a')
250
- if (options.listItemClass) {
251
- item.setAttribute('class', options.listItemClass)
252
- }
253
-
254
- if (options.onClick) {
255
- a.onclick = options.onClick
256
- }
257
-
258
- if (options.includeTitleTags) {
259
- a.setAttribute('title', data.textContent)
260
- }
261
-
262
- if (options.includeHtml && data.childNodes.length) {
263
- forEach.call(data.childNodes, function (node) {
264
- a.appendChild(node.cloneNode(true))
265
- })
266
- } else {
267
- // Default behavior.
268
- a.textContent = data.textContent
269
- }
270
- a.setAttribute('href', options.basePath + '#' + data.id)
271
- a.setAttribute('class', options.linkClass +
272
- SPACE_CHAR + 'node-name--' + data.nodeName +
273
- SPACE_CHAR + options.extraLinkClasses)
274
- item.appendChild(a)
275
- return item
276
- }
277
-
278
- /**
279
- * Create list element.
280
- * @param {Boolean} isCollapsed
281
- * @return {HTMLElement}
282
- */
283
- function createList(isCollapsed) {
284
- var listElement = (options.orderedList) ? 'ol' : 'ul'
285
- var list = document.createElement(listElement)
286
- var classes = options.listClass +
287
- SPACE_CHAR + options.extraListClasses
288
- if (isCollapsed) {
289
- classes += SPACE_CHAR + options.collapsibleClass
290
- classes += SPACE_CHAR + options.isCollapsedClass
291
- }
292
- list.setAttribute('class', classes)
293
- return list
294
- }
295
-
296
- /**
297
- * Update fixed sidebar class.
298
- * @return {HTMLElement}
299
- */
300
- function updateFixedSidebarClass() {
301
- if (options.scrollContainer && document.querySelector(options.scrollContainer)) {
302
- var top
303
- top = document.querySelector(options.scrollContainer).scrollTop
304
- } else {
305
- top = document.documentElement.scrollTop || body.scrollTop
306
- }
307
- var posFixedEl = document.querySelector(options.positionFixedSelector)
308
-
309
- if (options.fixedSidebarOffset === 'auto') {
310
- options.fixedSidebarOffset = tocElement.offsetTop
311
- }
312
-
313
- if (top > options.fixedSidebarOffset) {
314
- if (posFixedEl.className.indexOf(options.positionFixedClass) === -1) {
315
- posFixedEl.className += SPACE_CHAR + options.positionFixedClass
316
- }
317
- } else {
318
- posFixedEl.className = posFixedEl.className.split(SPACE_CHAR + options.positionFixedClass).join('')
319
- }
320
- }
321
-
322
- /**
323
- * Get top position of heading
324
- * @param {HTMLElement} obj
325
- * @return {int} position
326
- */
327
- function getHeadingTopPos(obj) {
328
- var position = 0
329
- if (obj !== null) {
330
- position = obj.offsetTop
331
- if (options.hasInnerContainers) { position += getHeadingTopPos(obj.offsetParent) }
332
- }
333
- return position
334
- }
335
-
336
-
337
- function updateListActiveElement(topHeader) {
338
- var forEach = [].forEach
339
-
340
- var tocLinks = tocElement
341
- .querySelectorAll('.' + options.linkClass)
342
- forEach.call(tocLinks, function (tocLink) {
343
- tocLink.className = tocLink.className.split(SPACE_CHAR + options.activeLinkClass).join('')
344
- })
345
- var tocLis = tocElement
346
- .querySelectorAll('.' + options.listItemClass)
347
- forEach.call(tocLis, function (tocLi) {
348
- tocLi.className = tocLi.className.split(SPACE_CHAR + options.activeListItemClass).join('')
349
- })
350
-
351
- // Add the active class to the active tocLink.
352
- var activeTocLink = tocElement
353
- .querySelector('.' + options.linkClass +
354
- '.node-name--' + topHeader.nodeName +
355
- '[href="' + options.basePath + '#' + topHeader.id.replace(/([ #;&,.+*~':"!^$[\]()=>|/@])/g, '\\$1') + '"]')
356
- if (activeTocLink && activeTocLink.className.indexOf(options.activeLinkClass) === -1) {
357
- activeTocLink.className += SPACE_CHAR + options.activeLinkClass
358
- }
359
- var li = activeTocLink && activeTocLink.parentNode
360
- if (li && li.className.indexOf(options.activeListItemClass) === -1) {
361
- li.className += SPACE_CHAR + options.activeListItemClass
362
- }
363
-
364
- var tocLists = tocElement
365
- .querySelectorAll('.' + options.listClass + '.' + options.collapsibleClass)
366
-
367
- // Collapse the other collapsible lists.
368
- forEach.call(tocLists, function (list) {
369
- if (list.className.indexOf(options.isCollapsedClass) === -1) {
370
- list.className += SPACE_CHAR + options.isCollapsedClass
371
- }
372
- })
373
-
374
- // Expand the active link's collapsible list and its sibling if applicable.
375
- if (activeTocLink && activeTocLink.nextSibling && activeTocLink.nextSibling.className.indexOf(options.isCollapsedClass) !== -1) {
376
- activeTocLink.nextSibling.className = activeTocLink.nextSibling.className.split(SPACE_CHAR + options.isCollapsedClass).join('')
377
- }
378
- removeCollapsedFromParents(activeTocLink && activeTocLink.parentNode.parentNode)
379
- }
380
-
381
- /**
382
- * Update TOC highlighting and collpased groupings.
383
- */
384
- function updateToc(headingsArray) {
385
- // If a fixed content container was set
386
- if (options.scrollContainer && document.querySelector(options.scrollContainer)) {
387
- var top
388
- top = document.querySelector(options.scrollContainer).scrollTop
389
- } else {
390
- top = document.documentElement.scrollTop || body.scrollTop
391
- }
392
-
393
- // Add fixed class at offset
394
- if (options.positionFixedSelector) {
395
- updateFixedSidebarClass()
396
- }
397
-
398
- // Get the top most heading currently visible on the page so we know what to highlight.
399
- var headings = headingsArray
400
- var topHeader
401
- // Using some instead of each so that we can escape early.
402
- if (currentlyHighlighting &&
403
- tocElement !== null &&
404
- headings.length > 0) {
405
- some.call(headings, function (heading, i) {
406
- var modifiedTopOffset = top + 10
407
- if (mainContainer) {
408
- modifiedTopOffset += mainContainer.clientHeight * (mainContainer.scrollTop) / (mainContainer.scrollHeight - mainContainer.clientHeight)
409
- }
410
- if (getHeadingTopPos(heading) > modifiedTopOffset) {
411
- // Don't allow negative index value.
412
- var index = (i === 0) ? i : i - 1
413
- topHeader = headings[index]
414
- return true
415
- } else if (i === headings.length - 1) {
416
- // This allows scrolling for the last heading on the page.
417
- topHeader = headings[headings.length - 1]
418
- return true
419
- }
420
- })
421
-
422
- // Remove the active class from the other tocLinks.
423
- updateListActiveElement(topHeader)
424
- }
425
- }
426
-
427
- /**
428
- * Remove collpased class from parent elements.
429
- * @param {HTMLElement} element
430
- * @return {HTMLElement}
431
- */
432
- function removeCollapsedFromParents(element) {
433
- if (element && element.className.indexOf(options.collapsibleClass) !== -1 && element.className.indexOf(options.isCollapsedClass) !== -1) {
434
- element.className = element.className.split(SPACE_CHAR + options.isCollapsedClass).join('')
435
- return removeCollapsedFromParents(element.parentNode.parentNode)
436
- }
437
- return element
438
- }
439
-
440
- /**
441
- * Disable TOC Animation when a link is clicked.
442
- * @param {Event} event
443
- */
444
- function disableTocAnimation(event) {
445
- var target = event.target || event.srcElement
446
- if (typeof target.className !== 'string' || target.className.indexOf(options.linkClass) === -1) {
447
- return
448
- }
449
- // Bind to tocLink clicks to temporarily disable highlighting
450
- // while smoothScroll is animating.
451
- currentlyHighlighting = false
452
- }
453
-
454
- /**
455
- * Enable TOC Animation.
456
- */
457
- function enableTocAnimation() {
458
- currentlyHighlighting = true
459
- }
460
-
461
- return {
462
- enableTocAnimation: enableTocAnimation,
463
- disableTocAnimation: disableTocAnimation,
464
- render: render,
465
- updateToc: updateToc,
466
- updateListActiveElement: updateListActiveElement
467
- }
468
- }
469
-
470
- function updateTocScroll(options) {
471
- var toc = options.tocElement || document.querySelector(options.tocSelector)
472
- if (toc && toc.scrollHeight > toc.clientHeight) {
473
- var activeItem = toc.querySelector('.' + options.activeListItemClass)
474
- if (activeItem) {
475
- var topOffset = toc.getBoundingClientRect().top
476
- toc.scrollTop = activeItem.offsetTop - topOffset
477
- }
478
- }
479
- }
480
-
481
- (function (root, factory) {
482
- if (typeof define === 'function' && define.amd) {
483
- define([], factory(root))
484
- } else if (typeof exports === 'object') {
485
- module.exports = factory(root)
486
- } else {
487
- root.tocbot = factory(root)
488
- }
489
- })(typeof global !== 'undefined' ? global : this.window || this.global, function (root) {
490
- 'use strict'
491
-
492
- var options = {}
493
- var tocbot = {}
494
- var buildHtml
495
- var parseContent
496
-
497
- // Just return if its not a browser.
498
- var supports = !!root && !!root.document && !!root.document.querySelector && !!root.addEventListener // Feature test
499
- if (typeof window === 'undefined' && !supports) {
500
- return
501
- }
502
- var headingsArray
503
-
504
- // From: https://github.com/Raynos/xtend
505
- var hasOwnProperty = Object.prototype.hasOwnProperty
506
- function extend() {
507
- var target = {}
508
- for (var i = 0; i < arguments.length; i++) {
509
- var source = arguments[i]
510
- for (var key in source) {
511
- if (hasOwnProperty.call(source, key)) {
512
- target[key] = source[key]
513
- }
514
- }
515
- }
516
- return target
517
- }
518
-
519
- // From: https://remysharp.com/2010/07/21/throttling-function-calls
520
- function throttle(fn, threshhold, scope) {
521
- threshhold || (threshhold = 250)
522
- var last
523
- var deferTimer
524
- return function () {
525
- var context = scope || this
526
- var now = +new Date()
527
- var args = arguments
528
- if (last && now < last + threshhold) {
529
- // hold on to it
530
- clearTimeout(deferTimer)
531
- deferTimer = setTimeout(function () {
532
- last = now
533
- fn.apply(context, args)
534
- }, threshhold)
535
- } else {
536
- last = now
537
- fn.apply(context, args)
538
- }
539
- }
540
- }
541
-
542
- function getContentElement(options) {
543
- try {
544
- return options.contentElement || document.querySelector(options.contentSelector)
545
- } catch (e) {
546
- console.warn('Contents element not found: ' + options.contentSelector) // eslint-disable-line
547
- return null
548
- }
549
- }
550
-
551
- function getTocElement(options) {
552
- try {
553
- return options.tocElement || document.querySelector(options.tocSelector)
554
- } catch (e) {
555
- console.warn('TOC element not found: ' + options.tocSelector) // eslint-disable-line
556
- return null
557
- }
558
- }
559
-
560
- /**
561
- * Destroy tocbot.
562
- */
563
- tocbot.destroy = function () {
564
- var tocElement = getTocElement(options)
565
- if (tocElement === null) {
566
- return
567
- }
568
-
569
- if (!options.skipRendering) {
570
- // Clear HTML.
571
- if (tocElement) {
572
- tocElement.innerHTML = ''
573
- }
574
- }
575
-
576
- // Remove event listeners.
577
- if (options.scrollContainer && document.querySelector(options.scrollContainer)) {
578
- document.querySelector(options.scrollContainer).removeEventListener('scroll', this._scrollListener, false)
579
- document.querySelector(options.scrollContainer).removeEventListener('resize', this._scrollListener, false)
580
- } else {
581
- document.removeEventListener('scroll', this._scrollListener, false)
582
- document.removeEventListener('resize', this._scrollListener, false)
583
- }
584
- }
585
-
586
- /**
587
- * Initialize tocbot.
588
- * @param {object} customOptions
589
- */
590
- tocbot.init = function (customOptions) {
591
- // feature test
592
- if (!supports) {
593
- return
594
- }
595
-
596
- // Merge defaults with user options.
597
- // Set to options variable at the top.
598
- options = extend(defaultOptions, customOptions || {})
599
- this.options = options
600
- this.state = {}
601
-
602
- // Init smooth scroll if enabled (default).
603
- if (options.scrollSmooth) {
604
- options.duration = options.scrollSmoothDuration
605
- options.offset = options.scrollSmoothOffset
606
- }
607
-
608
- // Pass options to these modules.
609
- buildHtml = BuildHtml(options)
610
- parseContent = ParseContent(options)
611
-
612
- // For testing purposes.
613
- this._buildHtml = buildHtml
614
- this._parseContent = parseContent
615
- this._headingsArray = headingsArray
616
- this.updateTocListActiveElement = buildHtml.updateListActiveElement
617
-
618
- // Destroy it if it exists first.
619
- tocbot.destroy()
620
-
621
- var contentElement = getContentElement(options)
622
- if (contentElement === null) {
623
- return
624
- }
625
-
626
- var tocElement = getTocElement(options)
627
- if (tocElement === null) {
628
- return
629
- }
630
-
631
- // Get headings array.
632
- headingsArray = parseContent.selectHeadings(contentElement, options.headingSelector)
633
- // Return if no headings are found.
634
- if (headingsArray === null) {
635
- return
636
- }
637
-
638
- // Build nested headings array.
639
- var nestedHeadingsObj = parseContent.nestHeadingsArray(headingsArray)
640
- var nestedHeadings = nestedHeadingsObj.nest
641
-
642
- // Render.
643
- if (!options.skipRendering) {
644
- buildHtml.render(tocElement, nestedHeadings)
645
- }
646
-
647
- // Update Sidebar and bind listeners.
648
- this._scrollListener = throttle(function (e) {
649
- buildHtml.updateToc(headingsArray)
650
- !options.disableTocScrollSync && updateTocScroll(options)
651
- var isTop = e && e.target && e.target.scrollingElement && e.target.scrollingElement.scrollTop === 0
652
- if ((e && (e.eventPhase === 0 || e.currentTarget === null)) || isTop) {
653
- buildHtml.updateToc(headingsArray)
654
- if (options.scrollEndCallback) {
655
- options.scrollEndCallback(e)
656
- }
657
- }
658
- }, options.throttleTimeout)
659
- this._scrollListener()
660
- if (options.scrollContainer && document.querySelector(options.scrollContainer)) {
661
- document.querySelector(options.scrollContainer).addEventListener('scroll', this._scrollListener, false)
662
- document.querySelector(options.scrollContainer).addEventListener('resize', this._scrollListener, false)
663
- } else {
664
- document.addEventListener('scroll', this._scrollListener, false)
665
- document.addEventListener('resize', this._scrollListener, false)
666
- }
667
-
668
- return this
669
- }
670
-
671
- /**
672
- * Refresh tocbot.
673
- */
674
- tocbot.refresh = function (customOptions) {
675
- tocbot.destroy()
676
- tocbot.init(customOptions || this.options)
677
- }
678
-
679
- // Make tocbot available globally.
680
- root.tocbot = tocbot
681
-
682
- return tocbot
683
- })
@@ -1 +0,0 @@
1
- var defaultOptions={ignoreSelector:".js-toc-ignore",linkClass:"toc-link",extraLinkClasses:"",activeLinkClass:"is-active-link",listClass:"toc-list",extraListClasses:"",isCollapsedClass:"is-collapsed",collapsibleClass:"is-collapsible",listItemClass:"toc-list-item",activeListItemClass:"is-active-li",collapseDepth:0,scrollSmooth:!0,scrollSmoothDuration:420,scrollSmoothOffset:0,scrollEndCallback:function(e){},throttleTimeout:50,positionFixedSelector:null,positionFixedClass:"is-position-fixed",fixedSidebarOffset:"auto",includeHtml:!1,includeTitleTags:!1,orderedList:!0,scrollContainer:null,skipRendering:!1,headingLabelCallback:!1,ignoreHiddenElements:!1,headingObjectCallback:function(t){if(4===t.headingLevel){let e=document.querySelector("#"+t.id.replaceAll(":","\\:")).nextSibling;for(;e&&1!==e.nodeType;)e=e.nextSibling;e&&e.classList.contains("toc-nav-name")&&(t.textContent=e.textContent)}return t},basePath:"",disableTocScrollSync:!1};function ParseContent(r){var t=[].reduce;function a(e){return e[e.length-1]}function c(e){if(!(e instanceof window.HTMLElement))return e;if(r.ignoreHiddenElements&&(!e.offsetHeight||!e.offsetParent))return null;var t=e.getAttribute("data-heading-label")||(r.headingLabelCallback?String(r.headingLabelCallback(e.textContent)):e.textContent.trim()),t={id:e.id,children:[],nodeName:e.nodeName,headingLevel:+e.nodeName.toUpperCase().replace("H",""),textContent:t};return r.includeHtml&&(t.childNodes=e.childNodes),r.headingObjectCallback?r.headingObjectCallback(t,e):t}return{nestHeadingsArray:function(e){return t.call(e,function(e,t){t=c(t);if(t){for(var l=e.nest,n=(t=c(t)).headingLevel,o=l,s=a(o),i=n-(s?s.headingLevel:0);0<i&&(!(s=a(o))||n!==s.headingLevel);)s&&void 0!==s.children&&(o=s.children),i--;n>=r.collapseDepth&&(t.isCollapsed=!0),o.push(t)}return e},{nest:[]})},selectHeadings:function(e,t){var l=t;r.ignoreSelector&&(l=t.split(",").map(function(e){return e.trim()+":not("+r.ignoreSelector+")"}));try{return e.querySelectorAll(l)}catch(e){return console.warn("Headers not found with selector: "+l),null}}}}function BuildHtml(i){var r,n=[].forEach,a=[].some,c=document.body,d=document.querySelector(i.contentSelector),u=!0,f=" ";function o(e,t){var l,t=t.appendChild(function(e){var t=document.createElement("li"),l=document.createElement("a");i.listItemClass&&t.setAttribute("class",i.listItemClass);i.onClick&&(l.onclick=i.onClick);i.includeTitleTags&&l.setAttribute("title",e.textContent);i.includeHtml&&e.childNodes.length?n.call(e.childNodes,function(e){l.appendChild(e.cloneNode(!0))}):l.textContent=e.textContent;return l.setAttribute("href",i.basePath+"#"+e.id),l.setAttribute("class",i.linkClass+f+"node-name--"+e.nodeName+f+i.extraLinkClasses),t.appendChild(l),t}(e));e.children.length&&(l=s(e.isCollapsed),e.children.forEach(function(e){o(e,l)}),t.appendChild(l))}function s(e){var t=i.orderedList?"ol":"ul",t=document.createElement(t),l=i.listClass+f+i.extraListClasses;return e&&(l=(l+=f+i.collapsibleClass)+(f+i.isCollapsedClass)),t.setAttribute("class",l),t}function m(e){var t=[].forEach,l=r.querySelectorAll("."+i.linkClass),l=(t.call(l,function(e){e.className=e.className.split(f+i.activeLinkClass).join("")}),r.querySelectorAll("."+i.listItemClass)),l=(t.call(l,function(e){e.className=e.className.split(f+i.activeListItemClass).join("")}),r.querySelector("."+i.linkClass+".node-name--"+e.nodeName+'[href="'+i.basePath+"#"+e.id.replace(/([ #;&,.+*~':"!^$[\]()=>|/@])/g,"\\$1")+'"]')),e=(l&&-1===l.className.indexOf(i.activeLinkClass)&&(l.className+=f+i.activeLinkClass),l&&l.parentNode),e=(e&&-1===e.className.indexOf(i.activeListItemClass)&&(e.className+=f+i.activeListItemClass),r.querySelectorAll("."+i.listClass+"."+i.collapsibleClass));t.call(e,function(e){-1===e.className.indexOf(i.isCollapsedClass)&&(e.className+=f+i.isCollapsedClass)}),l&&l.nextSibling&&-1!==l.nextSibling.className.indexOf(i.isCollapsedClass)&&(l.nextSibling.className=l.nextSibling.className.split(f+i.isCollapsedClass).join("")),function e(t){if(t&&-1!==t.className.indexOf(i.collapsibleClass)&&-1!==t.className.indexOf(i.isCollapsedClass))return t.className=t.className.split(f+i.isCollapsedClass).join(""),e(t.parentNode.parentNode);return t}(l&&l.parentNode.parentNode)}return{enableTocAnimation:function(){u=!0},disableTocAnimation:function(e){"string"==typeof(e=e.target||e.srcElement).className&&-1!==e.className.indexOf(i.linkClass)&&(u=!1)},render:function(e,t){var l=s(!1);if(t.forEach(function(e){o(e,l)}),null!==(r=e||r))return r.firstChild&&r.removeChild(r.firstChild),0===t.length?r:r.appendChild(l)},updateToc:function(e){n=i.scrollContainer&&document.querySelector(i.scrollContainer)?document.querySelector(i.scrollContainer).scrollTop:document.documentElement.scrollTop||c.scrollTop,i.positionFixedSelector&&(t=i.scrollContainer&&document.querySelector(i.scrollContainer)?document.querySelector(i.scrollContainer).scrollTop:document.documentElement.scrollTop||c.scrollTop,l=document.querySelector(i.positionFixedSelector),"auto"===i.fixedSidebarOffset&&(i.fixedSidebarOffset=r.offsetTop),t>i.fixedSidebarOffset?-1===l.className.indexOf(i.positionFixedClass)&&(l.className+=f+i.positionFixedClass):l.className=l.className.split(f+i.positionFixedClass).join(""));var n,t,l,o,s=e;u&&null!==r&&0<s.length&&(a.call(s,function(e,t){var l=n+10;return d&&(l+=d.clientHeight*d.scrollTop/(d.scrollHeight-d.clientHeight)),function e(t){var l=0;return null!==t&&(l=t.offsetTop,i.hasInnerContainers&&(l+=e(t.offsetParent))),l}(e)>l?(o=s[0===t?t:t-1],!0):t===s.length-1?(o=s[s.length-1],!0):void 0}),m(o))},updateListActiveElement:m}}function updateTocScroll(e){var t,l=e.tocElement||document.querySelector(e.tocSelector);l&&l.scrollHeight>l.clientHeight&&((e=l.querySelector("."+e.activeListItemClass))&&(t=l.getBoundingClientRect().top,l.scrollTop=e.offsetTop-t))}!function(e,t){"function"==typeof define&&define.amd?define([],t(e)):"object"==typeof exports?module.exports=t(e):e.tocbot=t(e)}("undefined"!=typeof global?global:this.window||this.global,function(e){"use strict";var l,a,c,d,u={},f={},m=!!(e&&e.document&&e.document.querySelector&&e.addEventListener);if("undefined"!=typeof window||m)return d=Object.prototype.hasOwnProperty,f.destroy=function(){var e=C(u);null!==e&&(u.skipRendering||e&&(e.innerHTML=""),u.scrollContainer&&document.querySelector(u.scrollContainer)?(document.querySelector(u.scrollContainer).removeEventListener("scroll",this._scrollListener,!1),document.querySelector(u.scrollContainer).removeEventListener("resize",this._scrollListener,!1)):(document.removeEventListener("scroll",this._scrollListener,!1),document.removeEventListener("resize",this._scrollListener,!1)))},f.init=function(e){if(m){u=function(){for(var e={},t=0;t<arguments.length;t++){var l,n=arguments[t];for(l in n)d.call(n,l)&&(e[l]=n[l])}return e}(defaultOptions,e||{}),this.options=u,this.state={},u.scrollSmooth&&(u.duration=u.scrollSmoothDuration,u.offset=u.scrollSmoothOffset),l=BuildHtml(u),a=ParseContent(u),this._buildHtml=l,this._parseContent=a,this._headingsArray=c,this.updateTocListActiveElement=l.updateListActiveElement,f.destroy();e=function(t){try{return t.contentElement||document.querySelector(t.contentSelector)}catch(e){return console.warn("Contents element not found: "+t.contentSelector),null}}(u);if(null!==e){var n,o,s,i,r,t=C(u);if(null!==t)if(null!==(c=a.selectHeadings(e,u.headingSelector)))return e=a.nestHeadingsArray(c).nest,u.skipRendering||l.render(t,e),this._scrollListener=(n=function(e){l.updateToc(c),u.disableTocScrollSync||updateTocScroll(u);var t=e&&e.target&&e.target.scrollingElement&&0===e.target.scrollingElement.scrollTop;(e&&(0===e.eventPhase||null===e.currentTarget)||t)&&(l.updateToc(c),u.scrollEndCallback&&u.scrollEndCallback(e))},o=(o=u.throttleTimeout)||250,function(){var e=s||this,t=+new Date,l=arguments;i&&t<i+o?(clearTimeout(r),r=setTimeout(function(){i=t,n.apply(e,l)},o)):(i=t,n.apply(e,l))}),this._scrollListener(),u.scrollContainer&&document.querySelector(u.scrollContainer)?(document.querySelector(u.scrollContainer).addEventListener("scroll",this._scrollListener,!1),document.querySelector(u.scrollContainer).addEventListener("resize",this._scrollListener,!1)):(document.addEventListener("scroll",this._scrollListener,!1),document.addEventListener("resize",this._scrollListener,!1)),this}}},f.refresh=function(e){f.destroy(),f.init(e||this.options)},e.tocbot=f;function C(t){try{return t.tocElement||document.querySelector(t.tocSelector)}catch(e){return console.warn("TOC element not found: "+t.tocSelector),null}}});