1var __defProp = Object.defineProperty; 2var __name = (target, value) => __defProp(target, "name", { value, configurable: !0 }); 3import { u as uuidv4 } from "./chunk.dcf-utility.js?v=6.1.6"; 4import { D as DCFButtonToggles } from "./chunk.dcf-button-toggle.js?v=6.1.6"; 5class DCFCollapsibleFieldsets { 6 static { 7 __name(this, "DCFCollapsibleFieldsets"); 8 } 9 uuid = uuidv4(); 10 fieldsetElement = null; 11 legendElement = null; 12 legendButtonElement = null; 13 innerDivElement = null; 14 legendButtonClassList = [ 15 "dcf-btn", 16 "dcf-btn-tertiary", 17 "dcf-d-inline-block", 18 "dcf-pt-0", 19 "dcf-pb-0", 20 "dcf-pl-1", 21 "dcf-pr-1", 22 "dcf-mr-2" 23 ]; 24 legendButtonInnerHTMLOn = "-"; 25 legendButtonInnerHTMLOff = "+"; 26 fieldsetContentsClassList = []; 27 fieldsetContentsClassListOn = [ 28 "dcf-h-auto" 29 ]; 30 fieldsetContentsClassListOff = [ 31 "dcf-h-0", 32 "dcf-overflow-y-hidden", 33 "dcf-overflow-x-hidden" 34 ]; 35 fieldsetClassList = []; 36 fieldsetClassListOn = []; 37 fieldsetClassListOff = [ 38 "dcf-pt-0", 39 "dcf-pb-0" 40 ]; 41 animationBlockClassList = [ 42 "dcf-motion-none" 43 ]; 44 toggleButtonInstance = null; 45 commandToggle = new Event(DCFButtonToggles.events("commandToggle")); 46 toggleKeys = []; 47 onKeys = []; 48 offKeys = []; 49 // Set up the button 50 constructor(fieldset, options = {}) { 51 Array.isArray(options.toggleKeys) ? this.toggleKeys = [...options.toggleKeys] : options.toggleKeys !== null && options.toggleKeys !== void 0 && options.toggleKeys !== "" && this.toggleKeys.push(options.toggleKeys), Array.isArray(options.onKeys) ? this.onKeys = [...options.onKeys] : options.onKeys !== null && options.onKeys !== void 0 && options.onKeys !== "" && this.onKeys.push(options.onKeys), Array.isArray(options.offKeys) ? this.offKeys = [...options.offKeys] : options.offKeys !== null && options.offKeys !== void 0 && options.offKeys !== "" && this.offKeys.push(options.offKeys), "legendButtonClassList" in options && Array.isArray(options.legendButtonClassList) && (this.legendButtonClassList = options.legendButtonClassList), "legendButtonInnerHTMLOn" in options && typeof options.legendButtonInnerHTMLOn == "string" && (this.legendButtonInnerHTMLOn = options.legendButtonInnerHTMLOn), "legendButtonInnerHTMLOff" in options && typeof options.legendButtonInnerHTMLOff == "string" && (this.legendButtonInnerHTMLOff = options.legendButtonInnerHTMLOff), "fieldsetContentsClassList" in options && Array.isArray(options.fieldsetContentsClassList) && (this.fieldsetContentsClassList = options.fieldsetContentsClassList), "fieldsetContentsClassListOn" in o
51ptions && Array.isArray(options.fieldsetContentsClassListOn) && (this.fieldsetContentsClassListOn = options.fieldsetContentsClassListOn), "fieldsetContentsClassListOff" in options && Array.isArray(options.fieldsetContentsClassListOff) && (this.fieldsetContentsClassListOff = options.fieldsetContentsClassListOff), "fieldsetClassList" in options && Array.isArray(options.fieldsetClassList) && (this.fieldsetClassList = options.fieldsetClassList), "fieldsetClassListOn" in options && Array.isArray(options.fieldsetClassListOn) && (this.fieldsetClassListOn = options.fieldsetClassListOn), "fieldsetClassListOff" in options && Array.isArray(options.fieldsetClassListOff) && (this.fieldsetClassListOff = options.fieldsetClassListOff), "animationBlockClassList" in options && Array.isArray(options.animationBlockClassList) && (this.animationBlockClassList = options.animationBlockClassList), this.fieldsetElement = fieldset, (this.fieldsetElement.getAttribute("id") === "" || this.fieldsetElement.getAttribute("id") === null) && this.fieldsetElement.setAttribute("id", this.uuid.concat("-collapsible-fieldset")); 52 let fieldsetStartExpanded = this.fieldsetElement.dataset.startExpanded; 53 fieldsetStartExpanded === void 0 && (fieldsetStartExpanded = "true"); 54 const legend = this.fieldsetElement.querySelector("legend"); 55 if (legend === null) 56 throw new Error("Missing Legend In Fieldset"); 57 this.legendElement = legend.cloneNode(!0), legend.remove(), this.legendElement.style.cursor = "pointer", this.innerDivElement = document.createElement("div"), this.innerDivElement.setAttribute("id", this.uuid.concat("-collapsible-fieldset-contents")), this.fieldsetContentsClassList.forEach((divClass) => { 58 this.innerDivElement.classList.add(divClass); 59 }), fieldsetStartExpanded === "true" ? this.fieldsetContentsClassListOn.forEach((divClass) => { 60 this.innerDivElement.classList.add(divClass); 61 }) : this.fieldsetContentsClassListOff.forEach((divClass) => { 62 this.innerDivElement.classList.add(divClass); 63 }), Array.from(fieldset.childNodes).forEach((node) => { 64 this.innerDivElement.appendChild(node); 65 }), this.fieldsetElement.append(this.legendElement), this.fieldsetElement.append(this.innerDivElement), this.animationBlockClassList.forEach((fieldsetClass) => { 66 this.fieldsetElement.classList.add(fieldsetClass); 67 }), this.fieldsetClassList.forEach((fieldsetClass) => { 68 this.fieldsetElement.classList.add(fieldsetClass); 69 }), fieldsetStartExpanded === "true" ? this.fieldsetClassListOn.forEach((fieldsetClass) => { 70 this.fieldsetElement.classList.add(fieldsetClass); 71 }) : this.fieldsetClassListOff.forEach((fieldsetClass) => { 72 this.fieldsetElement.classList.add(fieldsetClass); 73 }), this.legendButtonElement = document.createElement("button"), this.legendButtonClassList.forEach((btnClass) => { 74 this.legendButtonElement.classList.add(btnClass); 75 }), this.legendButtonElement.innerHTML = this.legendButtonInnerHTMLOn, this.legendButtonElement.setAttribute("type", "button"), this.legendButtonElement.dataset.controls = this.innerDivElement.getAttribute("id"), this.legendButtonElement.dataset.labelOn = "Expand Fieldset", this.legendButtonElement.dataset.labelOff = "Collapse Fieldset", this.legendButtonElement.dataset.startExpanded = fieldsetStartExpanded, this.legendElement.prepend(this.legendButtonElement), this.#setEventListeners(), this.toggleButtonInstance = new DCFButtonToggles(this.legendButtonElement, { 76 toggleKeys: this.toggleKeys, 77 onKeys: this.onKeys, 78 offKeys: this.offKeys 79 }), this.fieldsetElement.classList.add("dcf-collapsible-fieldset-initialized"), this.fieldsetElement.dispatchEvent(new CustomEvent(DCFCollapsibleFieldsets.events("collapsibleFieldsetReady"), { 80 detail: { 81 classInstance: this 82 } 83 })), this.fieldsetElement.getAttribute("hidden") !== null && this.fieldsetElement.removeAttribute("hidden"); 84 const removeAnimationBlock = /* @__PURE__ */ __name(() => { 85 this.animationBlockClassList.forEach((fieldsetClass) => { 86 this.fieldsetElement.classList.remove(fieldsetClass); 87 }), this.fieldsetElement.removeEventListener("transitionend", removeAnimationBlock); 88 }, "removeAnimationBlock"); 89 this.fieldsetElement.addEventListener("transitionend", removeAnimationBlock); 90 } 91 // The names of the events to be used easily 92 static events(name) { 93 const events = { 94 collapsibleFieldsetReady: "collapsibleFieldsetReady" 95 }; 96 return Object.freeze(events), DCFButtonToggles.events(name) !== void 0 ? DCFButtonToggles.events(name) : name in events ? events[name] : void 0; 97 } 98 // /** 99 // * This function will update the styles and HTML for the fieldset, fieldset contents, and the button 100 // * These events we are listening for come from the DCFButtonToggles 101 // */ 102 #setEventListeners() { 103 this.legendElement.addEventListener("click", (event) => { 104 this.legendElement.contains(event.target) && !this.legendButtonElement.isEqualNode(event.target) && !this.legendButtonElement.contains(event.target) && this.legendButtonElement.dispatchEvent(this.commandToggle); 105 }
105), this.innerDivElement.addEventListener(DCFCollapsibleFieldsets.events("toggleElementOn"), () => { 106 this.fieldsetContentsClassListOff.forEach((toggleElementClass) => { 107 this.innerDivElement.classList.remove(toggleElementClass); 108 }), this.fieldsetContentsClassListOn.forEach((toggleElementClass) => { 109 this.innerDivElement.classList.add(toggleElementClass); 110 }), this.fieldsetClassListOff.forEach((fieldsetClass) => { 111 this.fieldsetElement.classList.remove(fieldsetClass); 112 }), this.fieldsetClassListOn.forEach((fieldsetClass) => { 113 this.fieldsetElement.classList.add(fieldsetClass); 114 }); 115 }), this.innerDivElement.addEventListener(DCFCollapsibleFieldsets.events("toggleElementOff"), () => { 116 this.fieldsetContentsClassListOn.forEach((toggleElementClass) => { 117 this.innerDivElement.classList.remove(toggleElementClass); 118 }), this.fieldsetContentsClassListOff.forEach((toggleElementClass) => { 119 this.innerDivElement.classList.add(toggleElementClass); 120 }), this.fieldsetClassListOn.forEach((fieldsetClass) => { 121 this.fieldsetElement.classList.remove(fieldsetClass); 122 }), this.fieldsetClassListOff.forEach((fieldsetClass) => { 123 this.fieldsetElement.classList.add(fieldsetClass); 124 }); 125 }), this.legendButtonElement.addEventListener(DCFCollapsibleFieldsets.events("toggleButtonOn"), () => { 126 this.legendButtonElement.innerHTML = this.legendButtonInnerHTMLOn; 127 }), this.legendButtonElement.addEventListener(DCFCollapsibleFieldsets.events("toggleButtonOff"), () => { 128 this.legendButtonElement.innerHTML = this.legendButtonInnerHTMLOff; 129 }); 130 } 131} 132class UNLCollapsibleFieldset extends DCFCollapsibleFieldsets { 133 static { 134 __name(this, "UNLCollapsibleFieldset"); 135 } 136 constructor(fieldset, options = {}) { 137 "legendButtonInnerHTMLOn" in options || (options.legendButtonInnerHTMLOn = `<svg xmlns='http://www.w3.org/2000/svg' class='dcf-h-4 dcf-w-4 dcf-fill-current' viewBox='0 0 24 24'> 138 <path d='M21.3,9.4l-18.7,0C1.2,9.4,0,10.6,0,12c0,0.7,0.3,1.4,0.8,1.9c0.5,0.5,1.2,0.8,1.9,0.8h18.7 139 c1.4,0,2.6-1.2,2.6-2.6C24,10.6,22.8,9.4,21.3,9.4z'/> 140 <g> 141 <path fill='none' d='M0,0h24v24H0V0z'/> 142 </g> 143</svg>`), "legendButtonInnerHTMLOff" in options || (options.legendButtonInnerHTMLOff = `<svg xmlns='http://www.w3.org/2000/svg' class='dcf-h-4 dcf-w-4 dcf-fill-current' viewBox='0 0 24 24'> 144 <path d='M21.4,9.4h-6.7V2.6C14.6,1.2,13.5,0,12,0c-1.4,0-2.6,1.2-2.6,2.6l0,6.7H2.6C1.2,9.4,0,10.6,0,12 145 c0,1.4,1.2,2.6,2.6,2.6h6.8l0,6.7c0,0.7,0.3,1.4,0.8,1.9c0.5,0.5,1.2,0.8,1.9,0.8 146 c1.4,0,2.6-1.2,2.6-2.6v-6.7h6.7c1.4,0,2.6-1.2,2.6-2.6C24,10.6,22.8,9.4,21.4,9.4z'/> 147 <g> 148 <path fill='none' d='M0,0h24v24H0V0z'/> 149 </g> 150</svg>`), "fieldsetClassListOff" in options || (options.fieldsetClassListOff = [ 151 "dcf-pt-0", 152 "dcf-pb-0", 153 "unl-collapsible-fieldset-close"
154 ]), "fieldsetClassListOn" in options || (options.fieldsetClassListOn = [ 155 "unl-collapsible-fieldset-open" 156 ]), "fieldsetContentsClassListOn" in options || (options.fieldsetContentsClassListOn = [ 157 "dcf-max-h-inf", 158 "unl-collapsible-fieldset-contents-open" 159 ]), "fieldsetContentsClassListOff" in options || (options.fieldsetContentsClassListOff = [ 160 "dcf-max-h-0", 161 "dcf-overflow-y-hidden", 162 "dcf-overflow-x-hidden", 163 "unl-collapsible-fieldset-contents-close" 164 ]), super(fieldset, options), window.UNL = window.UNL || {}, window.UNL.classes = window.UNL.classes || {}, window.UNL.classes[this.fieldsetElement.getAttribute("id")] = this, this.fieldsetElement.dispatchEvent(new Event("UNLClassReady")); 165 } 166} 167export { 168 DCFCollapsibleFieldsets as D, 169 UNLCollapsibleFieldset as U 170}; 171//# sourceMappingURL=chunk.unl-collapsible-fieldset.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.