@codegouvfr/react-dsfr
Version:
French State Design System React integration library
4 lines (3 loc) • 1.96 kB
JavaScript
/*! DSFR v1.8.5 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
!function(){"use strict";var t=window.dsfr,e=function(e){function s(){e.call(this),this.count=0,this.focusing=this.focus.bind(this)}e&&(s.__proto__=e),s.prototype=Object.create(e&&e.prototype),s.prototype.constructor=s;var o={proxy:{configurable:!0},links:{configurable:!0},collapse:{configurable:!0}},i={instanceClassName:{configurable:!0}};return i.instanceClassName.get=function(){return"Breadcrumb"},s.prototype.init=function(){this.getCollapse(),this.isResizing=!0},o.proxy.get=function(){var t=this;return Object.assign.call(this,e.prototype.proxy,{focus:t.focus.bind(t),disclose:t.collapse.disclose.bind(t.collapse)})},s.prototype.getCollapse=function(){var e=this.collapse;e?e.listen(t.core.DisclosureEvent.DISCLOSE,this.focusing):this.addAscent(t.core.DisclosureEmission.ADDED,this.getCollapse.bind(this))},s.prototype.resize=function(){var e=this.collapse,s=this.links;e&&s.length&&(this.isBreakpoint(t.core.Breakpoints.MD)?e.buttonHasFocus&&s[0].focus():s.indexOf(document.activeElement)>-1&&e.focus())},o.links.get=function(){return[].concat(this.querySelectorAll("a[href]"))},o.collapse.get=function(){return this.element.getDescendantInstances(t.core.Collapse.instanceClassName,null,!0)[0]},s.prototype.focus=function(){this.count=0,this._focus()},s.prototype._focus=function(){var t=this.links[0];t&&(t.focus(),this.request(this.verify.bind(this)))},s.prototype.verify=function(){if(this.count++,!(this.count>100)){var t=this.links[0];t&&document.activeElement!==t&&this._focus()}},Object.defineProperties(s.prototype,o),Object.defineProperties(s,i),s}(t.core.Instance),s={BREADCRUMB:t.internals.ns.selector("breadcrumb")};t.breadcrumb={BreadcrumbSelector:s,Breadcrumb:e},t.internals.register(t.breadcrumb.BreadcrumbSelector.BREADCRUMB,t.breadcrumb.Breadcrumb)}();
//# sourceMappingURL=breadcrumb.nomodule.min.js.map