PageSourceSearch

https://www.unsw.edu.au/etc.clientlibs/unsw-common/clientlibs/clie…cmp-expandable-grid-9459ed3a27427e4fac8f.js

js unsw.edu.au collected 2026-10-01 07:22:24 UTC 2,840 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkunsw_common_ui_frontend=self.webpackChunkunsw_common_ui_frontend||[]).push([[6895],{4449:(function(d,n,i){var l=i(2138);class a extends l.A{constructor(e){super(),this.isCollapsed=!0,this.$el=e,this.init(),this.onAemUpdate=()=>this.init()}focusNextItem(){setTimeout(()=>{this.$items[window.innerWidth<960?this.initialItemsMobile:this.initialItems].focus()},100)}applyHiddenStyles(){for(let e=0;e<this.$items.length;e++)e>=this.initialItems?this.$items[e].classList.add(this.hiddenItemClass):this.$items[e].classList.remove(this.hiddenItemClass),this.initialItemsMobile&&this.hiddenItemClassMobile&&(e>=this.initialItemsMobile?this.$items[e].classList.add(this.hiddenItemClassMobile):this.$items[e].classList.remove(this.hiddenItemClassMobile))}bindShowHideButton(){this.$showMoreButton.addEventListener("click",()=>{this.isCollapsed?(this.$items.forEach(e=>{e.classList.remove(this.hiddenItemClass),e.classList.remove(this.hiddenItemClassMobile)}),this.$showMoreButton.innerText="See less",this.focusNextItem()):(this.applyHiddenStyles(),this.$showMoreButton.innerText=`See all (${this.$items.length})`),this.isCollapsed=!this.isCollapsed})}init(){this.initialItems=parseInt(this.$el.getAttribute("data-expandable-grid-initial-items-shown")),this.initialItemsMobile=parseInt(this.$el.getAttribute("data-expandable-grid-initial-items-shown-mobile"));const e=this.$el.getAttribute("data-expandable-grid-showmore-button-selector");this.$showMoreButton=this.$el.querySelector(e);const o=this.$el.getAttribute("data-expandable-grid-item-selector");this.$items=this.$el.querySelectorAll(o),this.hiddenItemClass=this.$el.getAttribute("data-expandable-grid-hidden-class"),this.hiddenItemClassMobile=this.$el.getAttribute("data-expandable-grid-hidden-class-mobile"),this.$items.length<=this.initialItems&&this.$showMoreButton.classList.add("data-expandable-grid-showmore-button--hidden-desktop"),this.$items.length<=this.initialItemsMobile&&this.$showMoreButton.classList.add("data-expandable-grid-showmore-button--hidden-mobile"),this.applyHiddenStyles(),this.$showMoreButton.innerText=`See all (${this.$items.length})`,this.bindShowHideButton()}}document.querySelectorAll('[data-expandable-grid="true"]').forEach(s=>{new a(s)})}),2138:(function(d,n,i){i.d(n,{A:function(){return l}});class l{constructor(){this.selector="",this.onAemUpdate=()=>{}}observe(){if(!this.selector)throw new Error("A selector needs to be assigned");const h=window.MutationObserver,s=document.querySelector("body");new h(o=>{o.forEach(c=>{const r=[].slice.call(c.addedNodes);r.length>0&&r.forEach(t=>{t instanceof Element&&t.matches(this.selector)&&this.onAemUpdate(t),t.querySelectorAll&&[].slice.call(t.querySelectorAll(this.selector)).forEach(m=>{this.onAemUpdate(m)})})})}).observe(s,{subtree:!0,childList:!0,characterData:!0})}}})}]);

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.