{"version":3,"names":["window","require","registerSettings","minimum_trust_level_to_create_TOC","composer_toc_text","auto_TOC_categories","auto_TOC_tags","TOC_min_heading","theme_uploads","define","_exports","_component","_tracking","_object","_didInsert","_service","_offsetCalculator","_utilities","_decorators","_tocHeading","_tocLargeButtons","_tocMiniButtons","_templateFactory","_component2","_dec","_dec2","_class","_descriptor","_descriptor2","_descriptor3","_descriptor4","_TocContents","_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","default","getObjectForTheme","debounce","constructor","super","arguments","this","flattenedToc","flattenTocStructure","args","tocStructure","setup","listenForScroll","listenForResize","updateHeadingPositions","updateActiveHeadingOnScroll","willDestroy","removeEventListener","calculateHeadingPositions","addEventListener","postElement1","document","querySelector","postID","headings1","querySelectorAll","length","headingPositions","Array","from","map","heading1","id","getIdFromHeading","position","getBoundingClientRect","top","scrollY","headerOffset","scrollPosition1","pageYOffset","activeIndex1","low1","high1","mid1","Math","floor","activeHeading1","find","h1","activeHeadingId","activeAncestorIds","ancestor1","parent","push","tagName1","tagName","toLowerCase","text1","textContent","trim","anchor1","name","slugify","tocStructure1","flatMap","item1","subItems","setComponentTemplate","createTemplateFactory","block","moduleName","scope","isStrictMode","prototype","service","tracked","action","getOwnPropertyDescriptor","_helper","_modifier","_TocHeading","TocHeading","isActive","item","isAncestorActive","includes","classNames","typeClass1","activeClass1","handleTocLinkClick","event1","preventDefault","targetId1","href","split","pop","targetElement1","headerOffsetValue1","offsetPosition1","scrollTo","behavior","tocProcessor","setOverlayVisible","concat","on","_dButton","_i18n","_TocLargeButtons","themePrefix","key1","callJumpToEnd","jumpToEnd","renderTimeline","_TocMiniButtons","callCloseOverlay","_TocMini","clickOutside","removeClickOutsideListener","addClickOutsideListener","toggleTOCOverlay","toggleOverlay","isOverlayVisible","_didUpdate","_bodyClass","_tocContents","_tocToggle","_TocTimeline","shouldRenderToc","hasTOC","isDocs","topic","posts_count","isTocVisible","isTopicProgress","topicProgressExpanded","callCheckPostforTOC","checkPostforTOC","handleTimelineUpdate","localStorage","getItem","_TocToggle","shouldShow","toggleLabel","toggleIcon","_pluginApi","_I18n","settings","initialize","withPluginApi","api","currentUser","getCurrentUser","minimumTL","trust_level","staff","translations","currentLocale","js","composer","contains_dtoc","addComposerToolbarPopupMenuOption","toolbarEvent","applySurround","icon","label","condition","model","topicFirstPost","_api","_tocMini","apiInitializer","renderInOutlet","_descriptor5","_descriptor6","_descriptor7","_descriptor8","toggleTocVisibility","setItem","visible","tocWrapper","classList","toggle","isValidTopic","shouldDisplayToc","getCurrentPost","content","cooked","containsTocMarkup","autoTOC","processPostContent","docs","router","currentRouteName","post_stream","posts","postStream","post","post_number","currentPost","postId","containsHeadings","headings","DOMParser","parseFromString","populateTocData","some","tag","postContent","generateTocStructure","autoCategories","parseInt","autoTags","topicCategory","category_id","topicTags","tags","hasMatchingTags","hasMatchingCategory","root","level","ancestors","heading","index","text","lowerTagName","anchor","headingData","postContainer","topicMapHeight","offsetHeight","offsetPosition","bottom","inject"],"sourceRoot":"theme-7/","sources":["settings.js","discourse/components/toc-contents.gjs","discourse/components/toc-heading.gjs","discourse/components/toc-large-buttons.gjs","discourse/components/toc-mini-buttons.gjs","discourse/components/toc-mini.gjs","discourse/components/toc-timeline.gjs","discourse/components/toc-toggle.gjs","discourse/templates/connectors/below-docs-topic/d-toc-wrapper.js","discourse/templates/connectors/topic-navigation/d-toc-wrapper.js","discourse/initializers/disco-toc-composer.js","discourse/initializers/init-toc-mini.js","discourse/initializers/init-toc-toggle.js","discourse/services/toc-processor.js"],"sourcesContent":["(function() {\n  if ('require' in window) {\n    require(\"discourse/lib/theme-settings-store\").registerSettings(7, {\"minimum_trust_level_to_create_TOC\":2,\"composer_toc_text\":\"This topic will contain a table of contents\",\"auto_TOC_categories\":\"\",\"auto_TOC_tags\":\"\",\"TOC_min_heading\":3,\"theme_uploads\":{\"icons-sprite\":\"/uploads/default/original/1X/292be3c6fe014e7eb9620ab5cfe253f811c12214.svg\"}});\n  }\n})();\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/components/toc-contents\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"@ember/service\", \"discourse/lib/offset-calculator\", \"discourse/lib/utilities\", \"discourse-common/utils/decorators\", \"../components/toc-heading\", \"../components/toc-large-buttons\", \"../components/toc-mini-buttons\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _tracking, _object, _didInsert, _service, _offsetCalculator, _utilities, _decorators, _tocHeading, _tocLargeButtons, _tocMiniButtons, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _dec, _dec2, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _TocContents;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(7);\n  const themePrefix = key1 => `theme_translations.7.${key1}`;\n  const POSITION_BUFFER = 150;\n  const SCROLL_DEBOUNCE = 50;\n  const RESIZE_DEBOUNCE = 200;\n  let TocContents = _exports.default = (_dec = (0, _decorators.debounce)(RESIZE_DEBOUNCE), _dec2 = (0, _decorators.debounce)(SCROLL_DEBOUNCE), (_class = (_TocContents = class TocContents extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"tocProcessor\", _descriptor, this);\n      _initializerDefineProperty(this, \"activeHeadingId\", _descriptor2, this);\n      _initializerDefineProperty(this, \"headingPositions\", _descriptor3, this);\n      _initializerDefineProperty(this, \"activeAncestorIds\", _descriptor4, this);\n    }\n    get flattenedToc() {\n      return this.flattenTocStructure(this.args.tocStructure);\n    }\n    setup() {\n      this.listenForScroll();\n      this.listenForResize();\n      this.updateHeadingPositions();\n      this.updateActiveHeadingOnScroll(); // manual on setup so active class is added\n    }\n    willDestroy() {\n      super.willDestroy(...arguments);\n      window.removeEventListener(\"scroll\", this.updateActiveHeadingOnScroll);\n      window.removeEventListener(\"resize\", this.calculateHeadingPositions);\n    }\n    listenForScroll() {\n      window.addEventListener(\"scroll\", this.updateActiveHeadingOnScroll);\n    }\n    listenForResize() {\n      //  due to text reflow positions will change after significant resize\n      window.addEventListener(\"resize\", this.calculateHeadingPositions);\n    }\n    calculateHeadingPositions() {\n      this.updateHeadingPositions();\n    }\n    updateHeadingPositions() {\n      // get the heading positions, so we know when to activate the TOC item on scroll\n      const postElement1 = document.querySelector(`[data-post-id=\"${this.args.postID}\"]`);\n      if (!postElement1) {\n        return;\n      }\n      const headings1 = postElement1.querySelectorAll(\"h1, h2, h3, h4, h5\");\n      if (!headings1.length) {\n        return;\n      }\n      this.headingPositions = Array.from(headings1).map(heading1 => {\n        const id1 = this.getIdFromHeading(heading1);\n        return {\n          id: id1,\n          position: heading1.getBoundingClientRect().top + window.scrollY - (0, _offsetCalculator.headerOffset)() - POSITION_BUFFER\n        };\n      });\n    }\n    updateActiveHeadingOnScroll() {\n      const scrollPosition1 = window.pageYOffset - (0, _offsetCalculator.headerOffset)();\n      // binary search to find the active item\n      let activeIndex1 = 0;\n      let low1 = 0;\n      let high1 = this.headingPositions.length - 1;\n      while (low1 <= high1) {\n        let mid1 = Math.floor((low1 + high1) / 2);\n        let heading1 = this.headingPositions[mid1];\n        if (scrollPosition1 >= heading1.position) {\n          low1 = mid1 + 1;\n          activeIndex1 = mid1;\n        } else {\n          high1 = mid1 - 1;\n        }\n      }\n      const activeHeading1 = this.flattenedToc.find(h1 => h1.id === this.headingPositions[activeIndex1]?.id);\n      this.activeHeadingId = activeHeading1?.id;\n      this.activeAncestorIds = [];\n      let ancestor1 = activeHeading1;\n      while (ancestor1 && ancestor1.parent) {\n        this.activeAncestorIds.push(ancestor1.parent.id);\n        ancestor1 = ancestor1.parent;\n      }\n    }\n    getIdFromHeading(heading1) {\n      // reuse content from autolinked headings\n      const tagName1 = heading1.tagName.toLowerCase();\n      const text1 = heading1.textContent.trim();\n      const anchor1 = heading1.querySelector(\"a.anchor\");\n      return anchor1 ? anchor1.name : `toc-${tagName1}-${(0, _utilities.slugify)(text1)}`;\n    }\n    flattenTocStructure(tocStructure1) {\n      // the post content is flat, but we want to keep the relationships added in tocStructure\n      return tocStructure1.flatMap(item1 => [item1, ...(item1.subItems ? this.flattenTocStructure(item1.subItems) : [])]);\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#unless @renderTimeline}}\n        <TocMiniButtons @renderTimeline={{@renderTimeline}} @postID={{@postID}} />\n      {{/unless}}\n      <div id=\"d-toc\" {{didInsert this.setup}}>\n  \n        {{#each @tocStructure as |heading|}}\n          <ul class=\"d-toc-heading\">\n            <TocHeading\n              @item={{heading}}\n              @activeHeadingId={{this.activeHeadingId}}\n              @activeAncestorIds={{this.activeAncestorIds}}\n              @renderTimeline={{@renderTimeline}}\n            />\n          </ul>\n        {{/each}}\n  \n        {{#if @renderTimeline}}\n          <TocLargeButtons\n            @postID={{@postID}}\n            @renderTimeline={{@renderTimeline}}\n          />\n        {{/if}}\n      </div>\n    \n  */\n  {\n    \"id\": null,\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[51,[30,1]],[[[1,\\\"      \\\"],[8,[32,0],null,[[\\\"@renderTimeline\\\",\\\"@postID\\\"],[[30,1],[30,2]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"    \\\"],[11,0],[24,1,\\\"d-toc\\\"],[4,[32,1],[[30,0,[\\\"setup\\\"]]],null],[12],[1,\\\"\\\\n\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,3]],null]],null],null,[[[1,\\\"        \\\"],[10,\\\"ul\\\"],[14,0,\\\"d-toc-heading\\\"],[12],[1,\\\"\\\\n          \\\"],[8,[32,2],null,[[\\\"@item\\\",\\\"@activeHeadingId\\\",\\\"@activeAncestorIds\\\",\\\"@renderTimeline\\\"],[[30,4],[30,0,[\\\"activeHeadingId\\\"]],[30,0,[\\\"activeAncestorIds\\\"]],[30,1]]],null],[1,\\\"\\\\n        \\\"],[13],[1,\\\"\\\\n\\\"]],[4]],null],[1,\\\"\\\\n\\\"],[41,[30,1],[[[1,\\\"        \\\"],[8,[32,3],null,[[\\\"@postID\\\",\\\"@renderTimeline\\\"],[[30,2],[30,1]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@renderTimeline\\\",\\\"@postID\\\",\\\"@tocStructure\\\",\\\"heading\\\"],false,[\\\"unless\\\",\\\"each\\\",\\\"-track-array\\\",\\\"if\\\"]]\",\n    \"moduleName\": \"/discourse/theme-7/discourse/components/toc-contents\",\n    \"scope\": () => [_tocMiniButtons.default, _didInsert.default, _tocHeading.default, _tocLargeButtons.default],\n    \"isStrictMode\": true\n  }), _TocContents), _TocContents), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"tocProcessor\", [_service.service], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"activeHeadingId\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"headingPositions\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return [];\n    }\n  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"activeAncestorIds\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return [];\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"setup\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"setup\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"listenForScroll\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"listenForScroll\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"listenForResize\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"listenForResize\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"calculateHeadingPositions\", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, \"calculateHeadingPositions\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"updateHeadingPositions\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"updateHeadingPositions\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"updateActiveHeadingOnScroll\", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, \"updateActiveHeadingOnScroll\"), _class.prototype)), _class));\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/components/toc-heading\", [\"exports\", \"@glimmer/component\", \"@ember/helper\", \"@ember/modifier\", \"@ember/object\", \"@ember/service\", \"discourse/lib/offset-calculator\", \"discourse/lib/utilities\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _helper, _modifier, _object, _service, _offsetCalculator, _utilities, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _TocHeading;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(7);\n  const themePrefix = key1 => `theme_translations.7.${key1}`;\n  const SCROLL_BUFFER = 25;\n  let TocHeading = _exports.default = (_class = (_TocHeading = class TocHeading extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"tocProcessor\", _descriptor, this);\n    }\n    get isActive() {\n      return this.args.activeHeadingId === this.args.item.id;\n    }\n    get isAncestorActive() {\n      return this.args.activeAncestorIds?.includes(this.args.item.id);\n    }\n    get classNames() {\n      const baseClass1 = \"d-toc-item\";\n      const typeClass1 = this.args.item.tagName ? ` d-toc-${this.args.item.tagName}` : \"\";\n      let activeClass1 = \"\";\n      if (this.isActive) {\n        activeClass1 = \" direct-active active\";\n      } else if (this.isAncestorActive) {\n        activeClass1 = \" active\";\n      }\n      return `${baseClass1}${typeClass1}${activeClass1}`;\n    }\n    handleTocLinkClick(event1) {\n      event1.preventDefault();\n      const targetId1 = event1.target.href?.split(\"#\").pop();\n      if (!targetId1) {\n        return;\n      }\n      const targetElement1 = document.querySelector(`a[name=\"${targetId1}\"]`);\n      if (targetElement1) {\n        const headerOffsetValue1 = (0, _offsetCalculator.headerOffset)();\n        const elementPosition1 = targetElement1.getBoundingClientRect().top + window.pageYOffset;\n        const offsetPosition1 = elementPosition1 - headerOffsetValue1 - SCROLL_BUFFER;\n        window.scrollTo({\n          top: offsetPosition1,\n          behavior: \"smooth\"\n        });\n        // hide TOC overlay when navigating to link\n        this.tocProcessor.setOverlayVisible(false);\n      }\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <li class={{this.classNames}}>\n        <a\n          href=\"#{{@item.id}}\"\n          {{on \"click\" this.handleTocLinkClick}}\n          data-d-toc={{concat \"toc-\" @item.tagName \"-\" (slugify @item.text)}}\n        >\n          {{@item.text}}\n        </a>\n        {{#if @item.subItems}}\n          <ul class=\"d-toc-sublevel\">\n            {{#each @item.subItems as |subItem|}}\n              <TocHeading\n                @item={{subItem}}\n                @activeHeadingId={{@activeHeadingId}}\n                @activeAncestorIds={{@activeAncestorIds}}\n              />\n            {{/each}}\n          </ul>\n        {{/if}}\n      </li>\n    \n  */\n  {\n    \"id\": null,\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,\\\"li\\\"],[15,0,[30,0,[\\\"classNames\\\"]]],[12],[1,\\\"\\\\n      \\\"],[11,3],[16,6,[29,[\\\"#\\\",[30,1,[\\\"id\\\"]]]]],[16,\\\"data-d-toc\\\",[28,[32,0],[\\\"toc-\\\",[30,1,[\\\"tagName\\\"]],\\\"-\\\",[28,[32,1],[[30,1,[\\\"text\\\"]]],null]],null]],[4,[32,2],[\\\"click\\\",[30,0,[\\\"handleTocLinkClick\\\"]]],null],[12],[1,\\\"\\\\n        \\\"],[1,[30,1,[\\\"text\\\"]]],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"],[41,[30,1,[\\\"subItems\\\"]],[[[1,\\\"        \\\"],[10,\\\"ul\\\"],[14,0,\\\"d-toc-sublevel\\\"],[12],[1,\\\"\\\\n\\\"],[42,[28,[31,2],[[28,[31,2],[[30,1,[\\\"subItems\\\"]]],null]],null],null,[[[1,\\\"            \\\"],[8,[32,3],null,[[\\\"@item\\\",\\\"@activeHeadingId\\\",\\\"@activeAncestorIds\\\"],[[30,2],[30,3],[30,4]]],null],[1,\\\"\\\\n\\\"]],[2]],null],[1,\\\"        \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@item\\\",\\\"subItem\\\",\\\"@activeHeadingId\\\",\\\"@activeAncestorIds\\\"],false,[\\\"if\\\",\\\"each\\\",\\\"-track-array\\\"]]\",\n    \"moduleName\": \"/discourse/theme-7/discourse/components/toc-heading\",\n    \"scope\": () => [_helper.concat, _utilities.slugify, _modifier.on, TocHeading],\n    \"isStrictMode\": true\n  }), _TocHeading), _TocHeading), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"tocProcessor\", [_service.service], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _applyDecoratedDescriptor(_class.prototype, \"handleTocLinkClick\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"handleTocLinkClick\"), _class.prototype)), _class);\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/components/toc-large-buttons\", [\"exports\", \"@glimmer/component\", \"@ember/object\", \"@ember/service\", \"discourse/components/d-button\", \"discourse-common/helpers/i18n\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _object, _service, _dButton, _i18n, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _TocLargeButtons;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(7);\n  const themePrefix = key1 => `theme_translations.7.${key1}`;\n  let TocLargeButtons = _exports.default = (_class = (_TocLargeButtons = class TocLargeButtons extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"tocProcessor\", _descriptor, this);\n    }\n    callJumpToEnd() {\n      this.tocProcessor.jumpToEnd(this.args.renderTimeline, this.args.postID);\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <div class=\"d-toc-footer-icons\">\n        <DButton\n          @action={{this.callJumpToEnd}}\n          @icon=\"downward\"\n          @translatedLabel={{i18n (themePrefix \"jump_bottom\")}}\n          class=\"btn btn-transparent scroll-to-bottom\"\n        />\n      </div>\n    \n  */\n  {\n    \"id\": null,\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"d-toc-footer-icons\\\"],[12],[1,\\\"\\\\n      \\\"],[8,[32,0],[[24,0,\\\"btn btn-transparent scroll-to-bottom\\\"]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@translatedLabel\\\"],[[30,0,[\\\"callJumpToEnd\\\"]],\\\"downward\\\",[28,[32,1],[[28,[32,2],[\\\"jump_bottom\\\"],null]],null]]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[],false,[]]\",\n    \"moduleName\": \"/discourse/theme-7/discourse/components/toc-large-buttons\",\n    \"scope\": () => [_dButton.default, _i18n.default, themePrefix],\n    \"isStrictMode\": true\n  }), _TocLargeButtons), _TocLargeButtons), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"tocProcessor\", [_service.service], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _applyDecoratedDescriptor(_class.prototype, \"callJumpToEnd\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"callJumpToEnd\"), _class.prototype)), _class);\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/components/toc-mini-buttons\", [\"exports\", \"@glimmer/component\", \"@ember/object\", \"@ember/service\", \"discourse/components/d-button\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _object, _service, _dButton, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _TocMiniButtons;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(7);\n  const themePrefix = key1 => `theme_translations.7.${key1}`;\n  let TocMiniButtons = _exports.default = (_class = (_TocMiniButtons = class TocMiniButtons extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"tocProcessor\", _descriptor, this);\n    }\n    callCloseOverlay() {\n      this.tocProcessor.setOverlayVisible(false);\n    }\n    callJumpToEnd() {\n      this.tocProcessor.jumpToEnd(this.args.renderTimeline, this.args.postID);\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <div class=\"d-toc-icons\">\n        <DButton\n          @action={{this.callJumpToEnd}}\n          @icon=\"downward\"\n          class=\"btn btn-transparent scroll-to-bottom\"\n        />\n        <DButton\n          @action={{this.closeOverlay}}\n          @icon=\"times\"\n          class=\"btn btn-transparent d-toc-close\"\n        />\n      </div>\n    \n  */\n  {\n    \"id\": null,\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[10,0],[14,0,\\\"d-toc-icons\\\"],[12],[1,\\\"\\\\n      \\\"],[8,[32,0],[[24,0,\\\"btn btn-transparent scroll-to-bottom\\\"]],[[\\\"@action\\\",\\\"@icon\\\"],[[30,0,[\\\"callJumpToEnd\\\"]],\\\"downward\\\"]],null],[1,\\\"\\\\n      \\\"],[8,[32,0],[[24,0,\\\"btn btn-transparent d-toc-close\\\"]],[[\\\"@action\\\",\\\"@icon\\\"],[[30,0,[\\\"closeOverlay\\\"]],\\\"times\\\"]],null],[1,\\\"\\\\n    \\\"],[13],[1,\\\"\\\\n  \\\"]],[],false,[]]\",\n    \"moduleName\": \"/discourse/theme-7/discourse/components/toc-mini-buttons\",\n    \"scope\": () => [_dButton.default],\n    \"isStrictMode\": true\n  }), _TocMiniButtons), _TocMiniButtons), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"tocProcessor\", [_service.service], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _applyDecoratedDescriptor(_class.prototype, \"callCloseOverlay\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"callCloseOverlay\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"callJumpToEnd\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"callJumpToEnd\"), _class.prototype)), _class);\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/components/toc-mini\", [\"exports\", \"@glimmer/component\", \"@ember/object\", \"@ember/service\", \"discourse/components/d-button\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _object, _service, _dButton, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _TocMini;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(7);\n  const themePrefix = key1 => `theme_translations.7.${key1}`;\n  let TocMini = _exports.default = (_class = (_TocMini = class TocMini extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"tocProcessor\", _descriptor, this);\n    }\n    clickOutside() {\n      this.tocProcessor.setOverlayVisible(false);\n      this.removeClickOutsideListener();\n    }\n    addClickOutsideListener() {\n      document.addEventListener(\"click\", this.clickOutside);\n    }\n    toggleTOCOverlay() {\n      this.tocProcessor.toggleOverlay();\n      if (this.tocProcessor.isOverlayVisible) {\n        this.addClickOutsideListener();\n      } else {\n        this.removeClickOutsideListener();\n      }\n    }\n    removeClickOutsideListener() {\n      document.removeEventListener(\"click\", this.clickOutside);\n    }\n    willDestroy() {\n      super.willDestroy(...arguments);\n      this.removeClickOutsideListener();\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#if this.tocProcessor.hasTOC}}\n        <div class=\"d-toc-mini\">\n          <DButton\n            class=\"btn-primary\"\n            @icon=\"stream\"\n            @action={{this.toggleTOCOverlay}}\n          />\n        </div>\n      {{/if}}\n    \n  */\n  {\n    \"id\": null,\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"tocProcessor\\\",\\\"hasTOC\\\"]],[[[1,\\\"      \\\"],[10,0],[14,0,\\\"d-toc-mini\\\"],[12],[1,\\\"\\\\n        \\\"],[8,[32,0],[[24,0,\\\"btn-primary\\\"]],[[\\\"@icon\\\",\\\"@action\\\"],[\\\"stream\\\",[30,0,[\\\"toggleTOCOverlay\\\"]]]],null],[1,\\\"\\\\n      \\\"],[13],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[],false,[\\\"if\\\"]]\",\n    \"moduleName\": \"/discourse/theme-7/discourse/components/toc-mini\",\n    \"scope\": () => [_dButton.default],\n    \"isStrictMode\": true\n  }), _TocMini), _TocMini), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"tocProcessor\", [_service.service], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _applyDecoratedDescriptor(_class.prototype, \"clickOutside\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"clickOutside\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"addClickOutsideListener\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"addClickOutsideListener\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"toggleTOCOverlay\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"toggleTOCOverlay\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"removeClickOutsideListener\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"removeClickOutsideListener\"), _class.prototype)), _class);\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/components/toc-timeline\", [\"exports\", \"@glimmer/component\", \"@glimmer/tracking\", \"@ember/object\", \"@ember/render-modifiers/modifiers/did-insert\", \"@ember/render-modifiers/modifiers/did-update\", \"@ember/service\", \"discourse/helpers/body-class\", \"../components/toc-contents\", \"../components/toc-toggle\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _tracking, _object, _didInsert, _didUpdate, _service, _bodyClass, _tocContents, _tocToggle, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _descriptor2, _TocTimeline;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(7);\n  const themePrefix = key1 => `theme_translations.7.${key1}`;\n  let TocTimeline = _exports.default = (_class = (_TocTimeline = class TocTimeline extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"tocProcessor\", _descriptor, this);\n      _initializerDefineProperty(this, \"isTocVisible\", _descriptor2, this);\n    }\n    get shouldRenderToc() {\n      if (!this.tocProcessor.hasTOC) {\n        return false;\n      }\n      // should always show on docs routes\n      if (this.tocProcessor.isDocs) {\n        return true;\n      }\n      if (this.args.renderTimeline) {\n        // single post topics might not have a timeline\n        // so we should ignore state\n        if (this.args.topic?.posts_count === 1) {\n          return true;\n        }\n        // timeline state controlled by localStorage\n        return this.tocProcessor.isTocVisible;\n      } else {\n        // progress state controlled by overlay state\n        return this.tocProcessor.isOverlayVisible;\n      }\n    }\n    get isTopicProgress() {\n      return !this.args.renderTimeline || this.args.renderTimeline && this.args.topicProgressExpanded;\n    }\n    callCheckPostforTOC() {\n      this.tocProcessor.checkPostforTOC(this.args.topic);\n    }\n    handleTimelineUpdate() {\n      if (this.args.renderTimeline) {\n        this.tocProcessor.setOverlayVisible(false);\n      }\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      <div\n        {{didInsert this.callCheckPostforTOC}}\n        {{didUpdate this.callCheckPostforTOC @topic.currentPost}}\n        {{didUpdate this.handleTimelineUpdate @renderTimeline}}\n        class=\"d-toc-main\"\n      >\n        {{bodyClass \"d-toc-installed\"}}\n        {{#if this.shouldRenderToc}}\n          {{#unless this.isTopicProgress}}\n            {{bodyClass \"d-toc-active\"}}\n          {{/unless}}\n          <TocContents\n            @postContent={{this.tocProcessor.postContent}}\n            @postID={{this.tocProcessor.postID}}\n            @tocStructure={{this.tocProcessor.tocStructure}}\n            @renderTimeline={{@renderTimeline}}\n          />\n          {{#if @renderTimeline}}\n            <TocToggle @topic={{@topic}} />\n          {{/if}}\n        {{/if}}\n      </div>\n    \n  */\n  {\n    \"id\": null,\n    \"block\": \"[[[1,\\\"\\\\n    \\\"],[11,0],[24,0,\\\"d-toc-main\\\"],[4,[32,0],[[30,0,[\\\"callCheckPostforTOC\\\"]]],null],[4,[32,1],[[30,0,[\\\"callCheckPostforTOC\\\"]],[30,1,[\\\"currentPost\\\"]]],null],[4,[32,1],[[30,0,[\\\"handleTimelineUpdate\\\"]],[30,2]],null],[12],[1,\\\"\\\\n      \\\"],[1,[28,[32,2],[\\\"d-toc-installed\\\"],null]],[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"shouldRenderToc\\\"]],[[[41,[51,[30,0,[\\\"isTopicProgress\\\"]]],[[[1,\\\"          \\\"],[1,[28,[32,2],[\\\"d-toc-active\\\"],null]],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"        \\\"],[8,[32,3],null,[[\\\"@postContent\\\",\\\"@postID\\\",\\\"@tocStructure\\\",\\\"@renderTimeline\\\"],[[30,0,[\\\"tocProcessor\\\",\\\"postContent\\\"]],[30,0,[\\\"tocProcessor\\\",\\\"postID\\\"]],[30,0,[\\\"tocProcessor\\\",\\\"tocStructure\\\"]],[30,2]]],null],[1,\\\"\\\\n\\\"],[41,[30,2],[[[1,\\\"          \\\"],[8,[32,4],null,[[\\\"@topic\\\"],[[30,1]]],null],[1,\\\"\\\\n\\\"]],[]],null]],[]],null],[1,\\\"    \\\"],[13],[1,\\\"\\\\n  \\\"]],[\\\"@topic\\\",\\\"@renderTimeline\\\"],false,[\\\"if\\\",\\\"unless\\\"]]\",\n    \"moduleName\": \"/discourse/theme-7/discourse/components/toc-timeline\",\n    \"scope\": () => [_didInsert.default, _didUpdate.default, _bodyClass.default, _tocContents.default, _tocToggle.default],\n    \"isStrictMode\": true\n  }), _TocTimeline), _TocTimeline), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"tocProcessor\", [_service.service], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"isTocVisible\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return localStorage.getItem(\"tocVisibility\") === \"true\" || true;\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"callCheckPostforTOC\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"callCheckPostforTOC\"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, \"handleTimelineUpdate\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"handleTimelineUpdate\"), _class.prototype)), _class);\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/components/toc-toggle\", [\"exports\", \"@glimmer/component\", \"@ember/service\", \"discourse/components/d-button\", \"discourse-common/helpers/i18n\", \"@ember/template-factory\", \"@ember/component\"], function (_exports, _component, _service, _dButton, _i18n, _templateFactory, _component2) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _TocToggle;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(7);\n  const themePrefix = key1 => `theme_translations.7.${key1}`;\n  let TocToggle = _exports.default = (_class = (_TocToggle = class TocToggle extends _component.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"tocProcessor\", _descriptor, this);\n    }\n    get shouldShow() {\n      // docs and topics with 1 post don't need a toggle\n      if (this.tocProcessor.isDocs || this.args.topic?.posts_count === 1) {\n        return false;\n      }\n      return this.tocProcessor.hasTOC;\n    }\n    get toggleLabel() {\n      return this.tocProcessor.isTocVisible ? \"toggle_toc.show_timeline\" : \"toggle_toc.show_toc\";\n    }\n    get toggleIcon() {\n      return this.tocProcessor.isTocVisible ? \"timeline\" : \"stream\";\n    }\n  }, (0, _component2.setComponentTemplate)((0, _templateFactory.createTemplateFactory)(\n  /*\n    \n      {{#if this.shouldShow}}\n        <DButton\n          @action={{this.tocProcessor.toggleTocVisibility}}\n          @icon={{this.toggleIcon}}\n          @translatedLabel={{i18n (themePrefix this.toggleLabel)}}\n          class=\"btn btn-default timeline-toggle\"\n        />\n      {{/if}}\n    \n  */\n  {\n    \"id\": null,\n    \"block\": \"[[[1,\\\"\\\\n\\\"],[41,[30,0,[\\\"shouldShow\\\"]],[[[1,\\\"      \\\"],[8,[32,0],[[24,0,\\\"btn btn-default timeline-toggle\\\"]],[[\\\"@action\\\",\\\"@icon\\\",\\\"@translatedLabel\\\"],[[30,0,[\\\"tocProcessor\\\",\\\"toggleTocVisibility\\\"]],[30,0,[\\\"toggleIcon\\\"]],[28,[32,1],[[28,[32,2],[[30,0,[\\\"toggleLabel\\\"]]],null]],null]]],null],[1,\\\"\\\\n\\\"]],[]],null],[1,\\\"  \\\"]],[],false,[\\\"if\\\"]]\",\n    \"moduleName\": \"/discourse/theme-7/discourse/components/toc-toggle\",\n    \"scope\": () => [_dButton.default, _i18n.default, themePrefix],\n    \"isStrictMode\": true\n  }), _TocToggle), _TocToggle), (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"tocProcessor\", [_service.service], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  })), _class);\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/templates/connectors/below-docs-topic/d-toc-wrapper\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <TocTimeline @topic={{@outletArgs.topic}} @renderTimeline={{true}} />\n  */\n  {\n    \"id\": null,\n    \"block\": \"[[[8,[39,0],null,[[\\\"@topic\\\",\\\"@renderTimeline\\\"],[[30,1,[\\\"topic\\\"]],true]],null]],[\\\"@outletArgs\\\"],false,[\\\"toc-timeline\\\"]]\",\n    \"moduleName\": \"discourse/theme-7/discourse/templates/connectors/below-docs-topic/d-toc-wrapper\",\n    \"isStrictMode\": false\n  });\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/templates/connectors/topic-navigation/d-toc-wrapper\", [\"exports\", \"@ember/template-factory\"], function (_exports, _templateFactory) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _default = _exports.default = (0, _templateFactory.createTemplateFactory)(\n  /*\n    <TocTimeline\n    @topic={{@outletArgs.topic}}\n    @renderTimeline={{@outletArgs.renderTimeline}}\n    @topicProgressExpanded={{@outletArgs.topicProgressExpanded}}\n  />\n  */\n  {\n    \"id\": null,\n    \"block\": \"[[[8,[39,0],null,[[\\\"@topic\\\",\\\"@renderTimeline\\\",\\\"@topicProgressExpanded\\\"],[[30,1,[\\\"topic\\\"]],[30,1,[\\\"renderTimeline\\\"]],[30,1,[\\\"topicProgressExpanded\\\"]]]],null]],[\\\"@outletArgs\\\"],false,[\\\"toc-timeline\\\"]]\",\n    \"moduleName\": \"discourse/theme-7/discourse/templates/connectors/topic-navigation/d-toc-wrapper\",\n    \"isStrictMode\": false\n  });\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/initializers/disco-toc-composer\", [\"exports\", \"discourse/lib/plugin-api\", \"I18n\"], function (_exports, _pluginApi, _I18n) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(7);\n  const themePrefix = key => `theme_translations.7.${key}`;\n  var _default = _exports.default = {\n    name: \"disco-toc-composer\",\n    initialize() {\n      (0, _pluginApi.withPluginApi)(\"1.0.0\", api => {\n        const currentUser = api.getCurrentUser();\n        if (!currentUser) {\n          return;\n        }\n        const minimumTL = settings.minimum_trust_level_to_create_TOC;\n        if (currentUser.trust_level >= minimumTL || currentUser.staff) {\n          if (!_I18n.default.translations[_I18n.default.currentLocale()].js.composer) {\n            _I18n.default.translations[_I18n.default.currentLocale()].js.composer = {};\n          }\n          _I18n.default.translations[_I18n.default.currentLocale()].js.composer.contains_dtoc = \" \";\n          api.addComposerToolbarPopupMenuOption({\n            action: toolbarEvent => {\n              toolbarEvent.applySurround(`<div data-theme-toc=\"true\">`, `</div>`, \"contains_dtoc\");\n            },\n            icon: \"align-left\",\n            label: themePrefix(\"insert_table_of_contents\"),\n            condition: composer => {\n              return composer.model.topicFirstPost;\n            }\n          });\n        }\n      });\n    }\n  };\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/initializers/init-toc-mini\", [\"exports\", \"discourse/lib/api\", \"../components/toc-mini\"], function (_exports, _api, _tocMini) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(7);\n  const themePrefix = key => `theme_translations.7.${key}`;\n  var _default = _exports.default = (0, _api.apiInitializer)(\"1.14.0\", api => {\n    api.renderInOutlet(\"before-topic-progress\", _tocMini.default);\n  });\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/initializers/init-toc-toggle\", [\"exports\", \"discourse/lib/api\", \"../components/toc-toggle\"], function (_exports, _api, _tocToggle) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(7);\n  const themePrefix = key => `theme_translations.7.${key}`;\n  var _default = _exports.default = (0, _api.apiInitializer)(\"1.14.0\", api => {\n    api.renderInOutlet(\"timeline-footer-controls-after\", _tocToggle.default);\n  });\n});\n}\n","if ('define' in window) {\ndefine(\"discourse/theme-7/discourse/services/toc-processor\", [\"exports\", \"@glimmer/tracking\", \"@ember/object\", \"@ember/service\", \"discourse/lib/utilities\"], function (_exports, _tracking, _object, _service, _utilities) {\n  \"use strict\";\n\n  Object.defineProperty(_exports, \"__esModule\", {\n    value: true\n  });\n  _exports.default = void 0;\n  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8;\n  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }\n  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n  function _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\n  function _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }\n  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }\n  const settings = require(\"discourse/lib/theme-settings-store\").getObjectForTheme(7);\n  const themePrefix = key => `theme_translations.7.${key}`;\n  let TocProcessor = _exports.default = (_class = class TocProcessor extends _service.default {\n    constructor() {\n      super(...arguments);\n      _initializerDefineProperty(this, \"router\", _descriptor, this);\n      _initializerDefineProperty(this, \"hasTOC\", _descriptor2, this);\n      _initializerDefineProperty(this, \"postContent\", _descriptor3, this);\n      _initializerDefineProperty(this, \"postID\", _descriptor4, this);\n      _initializerDefineProperty(this, \"tocStructure\", _descriptor5, this);\n      _initializerDefineProperty(this, \"isTocVisible\", _descriptor6, this);\n      _initializerDefineProperty(this, \"isOverlayVisible\", _descriptor7, this);\n      _initializerDefineProperty(this, \"isDocs\", _descriptor8, this);\n    }\n    toggleTocVisibility() {\n      this.isTocVisible = !this.isTocVisible;\n      localStorage.setItem(\"tocVisibility\", this.isTocVisible);\n    }\n    setOverlayVisible(visible) {\n      this.isOverlayVisible = visible;\n      const tocWrapper = document.querySelector(\".d-toc-wrapper\");\n      if (tocWrapper) {\n        tocWrapper.classList.toggle(\"overlay\", visible);\n      }\n    }\n    toggleOverlay() {\n      this.setOverlayVisible(!this.isOverlayVisible);\n    }\n    checkPostforTOC(topic) {\n      this.hasTOC = false;\n      if (this.isValidTopic(topic) && this.shouldDisplayToc(this.getCurrentPost(topic))) {\n        const content = this.getCurrentPost(topic).cooked;\n        if (this.containsTocMarkup(content) || this.autoTOC(topic)) {\n          this.processPostContent(content, this.getCurrentPost(topic).id);\n        }\n      }\n      this.setOverlayVisible(false);\n    }\n    isValidTopic(topic) {\n      return !!topic;\n    }\n    getCurrentPost(topic) {\n      const docs = this.router?.currentRouteName?.includes(\"docs\");\n      if (docs) {\n        this.isDocs = true;\n        return topic.post_stream.posts[0];\n      }\n      this.isDocs = false;\n      return topic.postStream?.posts?.find(post => post.post_number === topic.currentPost);\n    }\n    shouldDisplayToc(post) {\n      return post.post_number === 1;\n    }\n    containsTocMarkup(content) {\n      return content.includes(`<div data-theme-toc=\"true\">`);\n    }\n    processPostContent(content, postId) {\n      // no headings, no parsing\n      if (this.containsHeadings(content)) {\n        const parsedPost = new DOMParser().parseFromString(content, \"text/html\");\n\n        // direct descendants to avoid picking up headings in quotes\n        const headings = parsedPost.querySelectorAll(\"body > h1,body > h2,body > h3,body > h4,body > h5\");\n        if (headings.length < settings.TOC_min_heading) {\n          this.setOverlayVisible(false);\n          return;\n        }\n        this.populateTocData(postId, content, headings);\n      } else {\n        this.setOverlayVisible(false);\n      }\n    }\n    containsHeadings(content) {\n      return [\"<h1\", \"<h2\", \"<h3\", \"<h4\", \"<h5\"].some(tag => content.includes(tag));\n    }\n    populateTocData(postId, content, headings) {\n      this.hasTOC = true;\n      this.postID = postId;\n      this.postContent = content;\n      this.tocStructure = this.generateTocStructure(headings);\n    }\n    autoTOC(topic) {\n      // check topic for categories or tags from settings\n      const autoCategories = settings.auto_TOC_categories ? settings.auto_TOC_categories.split(\"|\").map(id => parseInt(id, 10)) : [];\n      const autoTags = settings.auto_TOC_tags ? settings.auto_TOC_tags.split(\"|\") : [];\n      if (!autoCategories.length && !autoTags.length || !topic) {\n        return false;\n      }\n      const topicCategory = topic.category_id;\n      const topicTags = topic.tags || [];\n      const hasMatchingTags = autoTags.some(tag => topicTags.includes(tag));\n      const hasMatchingCategory = autoCategories.includes(topicCategory);\n\n      // only apply autoTOC on first post\n      // the docs plugin only shows the first post, and does not have topic.currentPost defined\n      return (hasMatchingTags || hasMatchingCategory) && (topic.currentPost === 1 || topic.currentPost === undefined);\n    }\n    generateTocStructure(headings) {\n      let root = {\n        subItems: [],\n        level: 0\n      };\n      let ancestors = [root];\n      headings.forEach((heading, index) => {\n        const level = parseInt(heading.tagName[1], 10);\n        const text = heading.textContent.trim();\n        const lowerTagName = heading.tagName.toLowerCase();\n        const anchor = heading.querySelector(\"a.anchor\");\n        let id;\n        if (anchor) {\n          id = anchor.name;\n        } else {\n          id = `toc-${lowerTagName}-${(0, _utilities.slugify)(text) || index}`;\n        }\n\n        // Remove irrelevant ancestors\n        while (ancestors[ancestors.length - 1].level >= level) {\n          ancestors.pop();\n        }\n        let headingData = {\n          id,\n          tagName: lowerTagName,\n          text,\n          subItems: [],\n          level,\n          parent: ancestors.length > 1 ? ancestors[ancestors.length - 1] : null\n        };\n        ancestors[ancestors.length - 1].subItems.push(headingData);\n        ancestors.push(headingData);\n      });\n      return root.subItems;\n    }\n    jumpToEnd(renderTimeline, postID) {\n      const buffer = 150;\n      const postContainer = document.querySelector(`[data-post-id=\"${postID}\"]`);\n      if (!renderTimeline) {\n        this.setOverlayVisible(false);\n      }\n      if (postContainer) {\n        // if the topic map is present, we don't want to scroll past it\n        // so the post controls are still visible\n        const topicMapHeight = postContainer.querySelector(`.topic-map`)?.offsetHeight || 0;\n        const offsetPosition = postContainer.getBoundingClientRect().bottom + window.scrollY - buffer - topicMapHeight;\n        window.scrollTo({\n          top: offsetPosition,\n          behavior: \"smooth\"\n        });\n      }\n    }\n  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, \"router\", [_service.inject], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: null\n  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, \"hasTOC\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, \"postContent\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, \"postID\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, \"tocStructure\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return null;\n    }\n  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, \"isTocVisible\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return localStorage.getItem(\"tocVisibility\") !== \"false\";\n    }\n  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, \"isOverlayVisible\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, \"isDocs\", [_tracking.tracked], {\n    configurable: true,\n    enumerable: true,\n    writable: true,\n    initializer: function () {\n      return false;\n    }\n  }), _applyDecoratedDescriptor(_class.prototype, \"toggleTocVisibility\", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, \"toggleTocVisibility\"), _class.prototype)), _class);\n});\n}\n"],"mappings":"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"}