Proyectos de Subversion Moodle

Rev

Rev 1 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

define("core_courseformat/local/courseeditor/contenttree",["exports","theme_boost/bootstrap/collapse","jquery","core/tree","core/normalise"],(function(_exports,_collapse,_jquery,_tree,_normalise){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}
/**
   * Course index keyboard navigation and aria-tree compatibility.
   *
   * Node tree and bootstrap collapsibles don't use the same HTML structure. However,
   * all keybindings and logic is compatible. This class translate the primitive opetations
   * to a bootstrap collapsible structure.
   *
   * @module     core_courseformat/local/courseeditor/contenttree
   * @class      core_courseformat/local/courseeditor/contenttree
   * @copyright  2021 Ferran Recio <ferran@moodle.com>
   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
   */Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.default=void 0,_collapse=_interopRequireDefault(_collapse),_jquery=_interopRequireDefault(_jquery),_tree=_interopRequireDefault(_tree);class _default extends _tree.default{constructor(mainElement,selectors,preventcache){var _selectors$ENTER;super(mainElement),this.selectors={SECTION:selectors.SECTION,TOGGLER:selectors.TOGGLER,COLLAPSE:selectors.COLLAPSE,ENTER:null!==(_selectors$ENTER=selectors.ENTER)&&void 0!==_selectors$ENTER?_selectors$ENTER:selectors.TOGGLER},preventcache&&(this._getVisibleItems=this.getVisibleItems,this.getVisibleItems=()=>(this.refreshVisibleItemsCache(),this._getVisibleItems())),this.treeRoot[0].querySelectorAll(selectors.COLLAPSE).forEach((toggler=>{const collapsible=document.getElementById(toggler.getAttribute("href").replace("#",""));collapsible.addEventListener("hidden.bs.collapse",(()=>this.refreshVisibleItemsCache())),collapsible.addEventListener("shown.bs.collapse",(()=>this.refreshVisibleItemsCache()))})),this.registerEnterCallback(this.enterCallback.bind(this))}getActiveItem(){const activeItem=this.treeRoot.data("activeItem");if(activeItem)return(0,_normalise.getList)(activeItem)[0]}enterCallback(jQueryItem){const item=(0,_normalise.getList)(jQueryItem)[0];if(this.isGroupItem(jQueryItem)){const enter=item.querySelector(this.selectors.ENTER);"#"!==enter.getAttribute("href")&&(window.location.href=enter.getAttribute("href")),enter.click()}else{const link=item.querySelector("a");"#"!==link.getAttribute("href")?window.location.href=link.getAttribute("href"):link.click()}}handleItemClick(event,jQueryItem){event.target.closest(this.selectors.COLLAPSE)?super.handleItemClick(event,jQueryItem):(jQueryItem.focus(),this.isGroupItem(jQueryItem)&&this.expandGroup(jQueryItem))}isGroupCollapsed(jQueryItem){return"false"===(0,_normalise.getList)(jQueryItem)[0].querySelector("[aria-expanded]").getAttribute("aria-expanded")}toggleGroup(item){var _toggler$dataset$targ,_toggler$dataset;const toggler=(0,_normalise.getFirst)(item).querySelector(this.selectors.COLLAPSE);let collapsibleId=null!==(_toggler$dataset$targ=null===(_toggler$dataset=toggler.dataset)||void 0===_toggler$dataset?void 0:_toggler$dataset.target)&&void 0!==_toggler$dataset$targ?_toggler$dataset$targ:toggler.getAttribute("href");if(!collapsibleId)return;collapsibleId=collapsibleId.replace("#","");const collapsible=document.getElementById(collapsibleId);collapsible&&_collapse.default.getOrCreateInstance(collapsible).toggle()}expandGroup(item){this.isGroupCollapsed(item)&&this.toggleGroup(item)}collapseGroup(item){this.isGroupCollapsed(item)||this.toggleGroup(item)}expandAllGroups(){(0,_normalise.getList)(this.treeRoot)[0].querySelectorAll(this.selectors.SECTION).forEach((item=>{this.expandGroup((0,_jquery.default)(item))}))}}return _exports.default=_default,_exports.default}));

//# sourceMappingURL=contenttree.min.js.map