PageSourceSearch

https://wdn-cdn.unl.edu/wdn/templates_6.1/js/chunks/chunk.unl-collapsible-fieldset.js?v=6.1.6

js unl.edu collected 2026-09-24 06:52:23 UTC 11,579 bytes, 171 lines download raw bytes

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.