@biggive/components 202412101647.0.0 → 202412181555.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -170,9 +170,7 @@ export class BiggiveCampaignCardFilterGrid {
170
170
  unfocusTextInput() {
171
171
  var _a;
172
172
  const input = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.input-text');
173
- if (input) {
174
- input.blur();
175
- }
173
+ input === null || input === void 0 ? void 0 : input.blur();
176
174
  }
177
175
  componentWillRender() {
178
176
  this.filtersApplied = this.selectedFilterCategory !== null || this.selectedFilterBeneficiary !== null || this.selectedFilterLocation !== null;
@@ -181,13 +179,13 @@ export class BiggiveCampaignCardFilterGrid {
181
179
  render() {
182
180
  var _a;
183
181
  const sortOptions = this.getSortOptions();
184
- return (h("div", { key: '350ca7a53b2ac209f1c7b9a33547fbf49e5f6bd9', class: 'container space-below-' + this.spaceBelow }, h("div", { key: '35c935000429e8f0f61dd165894bc7d0e09b1f42', class: "sleeve" }, h("div", { key: 'ffebd4338e3fdc2d597717cb2aa95a0133f13230', class: "search-wrap" }, h("h4", { key: 'c2a492242225626044d99c7f920daa6b8bb876a6' }, this.intro), h("div", { key: '9e93de90f71ae0442c469f1d20488ba61d4f7fe0', class: "field-wrap" }, h("div", { key: '5ef3080881c90acc489024edbd5abd895c421b1b', class: "input-wrap" }, h("svg", { key: '7e83a5944498228d509af902fb5bcc2c987c3d40', xmlns: "http://www.w3.org/2000/svg", class: "icon", viewBox: "0 0 512 512" }, h("path", { key: '3e409b71f409edd3071497e29f194fd368356104', d: faMagnifyingGlass.icon[4].toString() })), h("input", { key: '8ac1c3b87397e79a8a558aa32ec4255ba458aa18', type: "text", value: (_a = this.searchText) !== null && _a !== void 0 ? _a : '', class: "input-text", placeholder: this.placeholderText, onInput: this.handleSearchTextChanged, onKeyDown: this.handleEnterPressed })), h("biggive-button", { key: 'c77434697cf22a5578922b3dbc02085bbc454bbe', onClick: this.handleSearchButtonPressed, label: this.buttonText }))), h("div", { key: '77981ed93383dcdbc4940bb8d8d3e7a7288c1a90', class: "sort-filter-wrap" }, h("div", { key: 'ee2175a8a1131c45240232370cbed40cce46b5a1', class: "filter-wrap" }, h("biggive-button", { key: 'b1ff852f325f4867407df5a6d665ec51cf5fea42', class: "filter", colourScheme: "primary", onClick: this.handleFilterButtonClick, label: "Filter", fullWidth: true, "space-below": "0" }), h("biggive-popup", { key: '7f975c2677c076c28283147f85563348dbf0d7ee', id: "filter-popup" }, h("h4", { key: '79aa15e26258ff8d89626dc200491804a7bfc34f', class: "space-above-0 space-below-3 text-colour-primary" }, "Filters"), h("div", { key: 'e5181557d8f56e918a47945ac99322f8394d8d5b', class: "select-wrapper-1" }, h("biggive-form-field-select", { key: 'ba70e30f6f30df792e8fe3f677b8ac853b1653f0', backgroundColour: "white", prompt: "Category", placeholder: this.categoriesPlaceHolderText, selectedLabel: this.selectedFilterCategory, selectedValue: this.selectedFilterCategory, options: this.optionsToArray(this.categoryOptions || []), selectionChanged: this.categoryFilterSelectionChanged, id: "categories", "space-below": "2" })), h("div", { key: '0846c8706f9235fb85e62c995879fc8c25eb8be5', class: "select-wrapper-2" }, h("biggive-form-field-select", { key: '3d59d635c005fdd3816f2e82080a99808c0e47dd', backgroundColour: "white", prompt: "Beneficiary", placeholder: this.beneficiariesPlaceHolderText, selectedLabel: this.selectedFilterBeneficiary, selectedValue: this.selectedFilterBeneficiary, options: this.optionsToArray(this.beneficiaryOptions || []), selectionChanged: this.beneficiarySelectionChanged, id: "beneficiaries", "space-below": "2" })), h("div", { key: '9511cb1e8f38b37b24fd2dd775fb29d5e07f404b', class: "select-wrapper-3" }, h("biggive-form-field-select", { key: '28300a78c5594beb46918f42d5e1658a4aca5cfc', backgroundColour: "white", prompt: "Location", placeholder: this.locationsPlaceHolderText, selectedLabel: this.selectedFilterLocation, selectedValue: this.selectedFilterLocation, options: this.optionsToArray(this.locationOptions || []), selectionChanged: this.locationSelectionChanged, id: "locations", "space-below": "2" })), h("div", { key: 'c1fc949429333b59fc876f8742845fe5833e0803', class: "align-right" }, h("biggive-button", { key: '357dfc95fd403c0bb58c176a153209293730c74f', label: "Apply filters", onClick: this.handleApplyFilterButtonClick })))), h("div", { key: 'f82300a195e787a8ccbdc7ebfdd679c2373cdffb', class: "sort-wrap" }, h("biggive-form-field-select", { key: '64dfd793a2857c1ee7904d730d2a5720848e7557', options: sortOptions, prompt: null, "select-style": "underlined", placeholder: this.sortByPlaceholderText, selectedLabel: this.selectedSortByOption, selectedValue: this.getSelectedValue(), selectionChanged: this.sortBySelectionChanged, id: "sort-by" }, h("biggive-form-field-select-option", { key: '1e6c6a22af8b02b555b02892b3fae21a1eb0ccaf', value: "amountRaised", label: "Most raised" }), h("biggive-form-field-select-option", { key: '131e892e28b4c447b8684c9369626ff335361836', value: "leastRaised", label: "Least raised" }), h("biggive-form-field-select-option", { key: '04470084eb7836d8334a24700985d79b0872e318', value: "matchFundsRemaining", label: "Match funds remaining" }), (this.searchText || '').length > 0 ? h("biggive-form-field-select-option", { value: "Relevance", label: "Relevance" }) : null))), h("div", { key: '36c823c122473095486ffb4c8d9e3182993f3f0c', class: "selected-filter-wrap" }, h("div", { key: '3637e83340e1b44e07a356b7c123be9e5214635b', class: "selected-filters" }, this.selectedFilterCategory && (h("span", { key: 'b397270103fe3e5692d9567e46c249481f8f960b', class: "button", onClick: () => {
182
+ return (h("div", { key: '041272afb70682bca5c93c2558304f7a7231b182', class: 'container space-below-' + this.spaceBelow }, h("div", { key: '5e34bea196be51d2abe45324e1ce5e22a4d3b0df', class: "sleeve" }, h("div", { key: 'd8595d6eeb9a490dc4fecf7f6d461b4f913b594c', class: "search-wrap" }, h("h4", { key: '3910d0c07ee6e0879b1cfba801ef9196c8a38cac' }, this.intro), h("div", { key: 'e6e44e19200f9a73fa1bbea6867080a361218cce', class: "field-wrap" }, h("div", { key: '13e67bcd01999acba604e93b9e30a2e3b8498c35', class: "input-wrap" }, h("svg", { key: 'feead67a8782d9713cd531acb7db88a8095adb25', xmlns: "http://www.w3.org/2000/svg", class: "icon", viewBox: "0 0 512 512" }, h("path", { key: '9c38b07ae9d072059d8a01a53a49599243d36af4', d: faMagnifyingGlass.icon[4].toString() })), h("input", { key: '6d83c21a0cf8c9ace5682eb44d573b10d68c24fa', type: "text", value: (_a = this.searchText) !== null && _a !== void 0 ? _a : '', class: "input-text", placeholder: this.placeholderText, onInput: this.handleSearchTextChanged, onKeyDown: this.handleEnterPressed })), h("biggive-button", { key: 'b4a9b84643accdf3a7bd08fb2145e225340513ed', onClick: this.handleSearchButtonPressed, label: this.buttonText }))), h("div", { key: '2f6a2624ab721147d2ac027a1e12d978969a47b6', class: "sort-filter-wrap" }, h("div", { key: '024eda15d930b25508ea13b0a2335a8442f1003a', class: "filter-wrap" }, h("biggive-button", { key: '83ffd28fd191adcc66d8952722145ec1fa22d510', class: "filter", colourScheme: "primary", onClick: this.handleFilterButtonClick, label: "Filter", fullWidth: true, "space-below": "0" }), h("biggive-popup", { key: '31e964c840f917b3c909447dde3695306b7c0ed8', id: "filter-popup" }, h("h4", { key: '3018bbf7e15f0db33ad4d57dcac1dd69eff868f9', class: "space-above-0 space-below-3 text-colour-primary" }, "Filters"), h("div", { key: '3bc5234fcdba58a35e1cdb44805450e009aba004', class: "select-wrapper-1" }, h("biggive-form-field-select", { key: 'f74334f6fcdf1054443e1d9d616f3037cf397871', backgroundColour: "white", prompt: "Category", placeholder: this.categoriesPlaceHolderText, selectedLabel: this.selectedFilterCategory, selectedValue: this.selectedFilterCategory, options: this.optionsToArray(this.categoryOptions || []), selectionChanged: this.categoryFilterSelectionChanged, id: "categories", "space-below": "2" })), h("div", { key: 'febf3c66ee354435d8b427fa622fbf4780b583c6', class: "select-wrapper-2" }, h("biggive-form-field-select", { key: '2817be005248199073713b1fe73a6d589c766b9a', backgroundColour: "white", prompt: "Beneficiary", placeholder: this.beneficiariesPlaceHolderText, selectedLabel: this.selectedFilterBeneficiary, selectedValue: this.selectedFilterBeneficiary, options: this.optionsToArray(this.beneficiaryOptions || []), selectionChanged: this.beneficiarySelectionChanged, id: "beneficiaries", "space-below": "2" })), h("div", { key: '02ed6ea360eea8e81dc870e2d80cd741e35e9165', class: "select-wrapper-3" }, h("biggive-form-field-select", { key: 'afa5a90f7d3a43a74a88d4f3a088b8198c5bbe71', backgroundColour: "white", prompt: "Location", placeholder: this.locationsPlaceHolderText, selectedLabel: this.selectedFilterLocation, selectedValue: this.selectedFilterLocation, options: this.optionsToArray(this.locationOptions || []), selectionChanged: this.locationSelectionChanged, id: "locations", "space-below": "2" })), h("div", { key: '6a69bb701fd3a4ab7f9cd73d36f7ba4fc844f6c5', class: "align-right" }, h("biggive-button", { key: 'b71c6f09c03f4ecfd998d096d381b90f23f59589', label: "Apply filters", onClick: this.handleApplyFilterButtonClick })))), h("div", { key: '44670c3a6138ff65a2332bc0314f1efd252f3108', class: "sort-wrap" }, h("biggive-form-field-select", { key: 'a85801f1d9e1a754ea417301872cdbaf180bb461', options: sortOptions, prompt: null, "select-style": "underlined", placeholder: this.sortByPlaceholderText, selectedLabel: this.selectedSortByOption, selectedValue: this.getSelectedValue(), selectionChanged: this.sortBySelectionChanged, id: "sort-by" }, h("biggive-form-field-select-option", { key: 'bd7fc9b68e3a300957c0a17c285b614383af4c47', value: "amountRaised", label: "Most raised" }), h("biggive-form-field-select-option", { key: 'f25c05c0fdef66ef0fdce79b6a2cb2d835209312', value: "leastRaised", label: "Least raised" }), h("biggive-form-field-select-option", { key: '9bdf1b76bf3d849fecd950a0bbf401f0028c5945', value: "matchFundsRemaining", label: "Match funds remaining" }), (this.searchText || '').length > 0 ? h("biggive-form-field-select-option", { value: "Relevance", label: "Relevance" }) : null))), h("div", { key: '83528d1515a1b9d8d13373c2017055bfec5c82bc', class: "selected-filter-wrap" }, h("div", { key: 'c0a968235c5cd75c03e5e8cfdbdaa2e44b91fbd7', class: "selected-filters" }, this.selectedFilterCategory && (h("span", { key: 'e436a0364751d0dd5afff4aa511e68d2b6c1ef95', class: "button", onClick: () => {
185
183
  this.removeFilter('categories');
186
- } }, this.selectedFilterCategory)), this.selectedFilterBeneficiary && (h("span", { key: 'ea6c19bb7c2da3bc69f3b3f38316a8e164b2409a', class: "button", onClick: () => {
184
+ } }, this.selectedFilterCategory)), this.selectedFilterBeneficiary && (h("span", { key: 'd0fbb418f3acd32b334becbb39d798327e3fe570', class: "button", onClick: () => {
187
185
  this.removeFilter('beneficiaries');
188
- } }, this.selectedFilterBeneficiary)), this.selectedFilterLocation && (h("span", { key: '3563e169d4915742c57e878f1ec556a7b5487a92', class: "button", onClick: () => {
186
+ } }, this.selectedFilterBeneficiary)), this.selectedFilterLocation && (h("span", { key: '0d80f1ba88a9f3431fc971fe300607d76051a7e6', class: "button", onClick: () => {
189
187
  this.removeFilter('locations');
190
- } }, this.selectedFilterLocation))), h("div", { key: '0244d89915e0b78b375af26fdd4eb89a9b32809e', class: "clear-all" }, h("a", { key: '68dce13c2a9e52f41221da664ea69b715d94d953', onClick: this.handleClearAll }, "Clear all"))), h("div", { key: 'd63bd479c0787cd14380c5add4ad02fd77e46e4c', class: "campaign-grid" }, h("slot", { key: 'af9ed50d7a458e7ec88d9815299592415ebcfff3', name: "campaign-grid" })))));
188
+ } }, this.selectedFilterLocation))), h("div", { key: 'f3df8fa434e8ce934c68e51929040cc321194c0f', class: "clear-all" }, h("a", { key: 'e62ee36ed35f2b26305b3f8d404ea994230db08b', onClick: this.handleClearAll }, "Clear all"))), h("div", { key: '363d36521727deda89d834aa86ab41c484732872', class: "campaign-grid" }, h("slot", { key: '9103b7a8ef63e3a202b0e8bef5e55deb84073f73', name: "campaign-grid" })))));
191
189
  }
192
190
  // I'm not sure if I understand the reasoning for own-methods-must-be-private. I made the method below public to unit
193
191
  // test it. Maybe the idea is that we should move anything with enough logic to test outside the component class? I
@@ -1 +1 @@
1
- {"version":3,"file":"biggive-campaign-card-filter-grid.js","sourceRoot":"","sources":["../../../src/components/biggive-campaign-card-filter-grid/biggive-campaign-card-filter-grid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,MAAM,gBAAgB,GAAG;IACvB,SAAS,EAAE,WAAW;IACtB,YAAY,EAAE,aAAa;IAC3B,WAAW,EAAE,cAAc;IAC3B,aAAa,EAAE,0BAA0B;IACzC,mBAAmB,EAAE,uBAAuB;CACpC,CAAC;AAUX,MAAM,OAAO,6BAA6B;;QAChC,0BAAqB,GAAG,SAAS,CAAC;QAClC,iCAA4B,GAAG,oBAAoB,CAAC;QACpD,8BAAyB,GAAG,iBAAiB,CAAC;QAC9C,6BAAwB,GAAG,iBAAiB,CAAC;QAGrD;;WAEG;QACK,8BAAyB,GAAkB,IAAI,CAAC;QAChD,iCAA4B,GAAkB,IAAI,CAAC;QACnD,8BAAyB,GAAkB,IAAI,CAAC;QAyGhD,mCAA8B,GAAG,CAAC,KAAa,EAAE,EAAE;YACzD,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACzC,CAAC,CAAC;QAEM,gCAA2B,GAAG,CAAC,KAAa,EAAE,EAAE;YACtD,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;QAC5C,CAAC,CAAC;QAEM,6BAAwB,GAAG,CAAC,KAAa,EAAE,EAAE;YACnD,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;QACzC,CAAC,CAAC;QAEM,2BAAsB,GAAG,CAAC,KAAsB,EAAE,EAAE;YAC1D,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;QACrE,CAAC,CAAC;QAYM,iCAA4B,GAAG,GAAG,EAAE;;YAC1C,IAAI,CAAC,sBAAsB,GAAG,MAAA,IAAI,CAAC,yBAAyB,mCAAI,IAAI,CAAC,sBAAsB,CAAC;YAC5F,IAAI,CAAC,yBAAyB,GAAG,MAAA,IAAI,CAAC,4BAA4B,mCAAI,IAAI,CAAC,yBAAyB,CAAC;YACrG,IAAI,CAAC,sBAAsB,GAAG,MAAA,IAAI,CAAC,yBAAyB,mCAAI,IAAI,CAAC,sBAAsB,CAAC;YAE5F,MAAM,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC3D,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEtD,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,cAAc,CAAC,cAAc,CAAwC,CAAC;YAC9G,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACjC,CAAC;YAED,IAAI,CAAC,cAAc;gBACjB,OAAO,kBAAkB,CAAC,iBAAiB,KAAK,QAAQ,IAAI,OAAO,kBAAkB,CAAC,cAAc,KAAK,QAAQ,IAAI,OAAO,kBAAkB,CAAC,cAAc,KAAK,QAAQ,CAAC;QAC/K,CAAC,CAAC;QA8BM,8BAAyB,GAAG,GAAG,EAAE;YACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;YAEnE,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC;QAEM,4BAAuB,GAAG,CAAC,KAAU,EAAE,EAAE;YAC/C,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACvC,CAAC,CAAC;QAEM,uBAAkB,GAAG,CAAC,EAAiB,EAAE,EAAE;YACjD,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC;QAEM,4BAAuB,GAAG,GAAG,EAAE;;YACrC,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,yBAAyB,CAAC;YACnE,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC;YAC7D,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC;YAE7D,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,cAAc,CAAC,cAAc,CAAwC,CAAC;YAC9G,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,eAAe,EAAE,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;QAEM,mBAAc,GAAG,GAAG,EAAE;;YAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,iEAAiE;YACjE,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAE5B,YAAY;YACZ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC;YACrD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACtC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;YAEnC,mGAAmG;YACnG,CAAC,SAAS,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;;gBAC9E,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,cAAc,CAAC,EAAE,CAAkD,CAAC;gBACtG,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO;gBACT,CAAC;gBAED,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC3B,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAC7B,CAAC,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;YAC/E,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAC3D,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;YACL,CAAC;YAED,mEAAmE;YACnE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;gBAChC,UAAU,EAAE,IAAI;gBAChB,MAAM,EAAE,IAAI;gBACZ,cAAc,EAAE,IAAI;gBACpB,iBAAiB,EAAE,IAAI;gBACvB,cAAc,EAAE,IAAI;aACrB,CAAC,CAAC;QACL,CAAC,CAAC;0BAvN2B,CAAC;qBAKN,2BAA2B;0BAUf,IAAI;+BAMN,QAAQ;0BAKb,QAAQ;;;;;sCA8B4B,IAAI;yCAKD,IAAI;sCAKP,IAAI;;;IA5ErE;;OAEG;IACO,KAAK,CAAC,aAAa;QAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IA+FO,wBAAwB;QAC9B,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,oBAAoB;YACjC,cAAc,EAAE,IAAI,CAAC,sBAAsB;YAC3C,iBAAiB,EAAE,IAAI,CAAC,yBAAyB;YACjD,cAAc,EAAE,IAAI,CAAC,sBAAsB;SAC5C,CAAC;IACJ,CAAC;IAmBO,YAAY,CAAC,SAAuD;;QAC1E,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,eAAe;gBAClB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;gBACtC,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACnC,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;gBACnC,MAAM;YACR;gBACE,yGAAyG;gBACzG,6FAA6F;gBAC7F,MAAM,gBAAgB,GAAU,SAAS,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,cAAc,CAAC,SAAS,CAAkD,CAAC;QAChH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;QAC9B,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACrE,CAAC;IA0ED;;;OAGG;IACK,gBAAgB;;QACtB,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAiC,CAAC;QAC/F,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,mBAAmB;QACjB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,KAAK,IAAI,IAAI,IAAI,CAAC,yBAAyB,KAAK,IAAI,IAAI,IAAI,CAAC,sBAAsB,KAAK,IAAI,CAAC;QAC9I,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC;IACvD,CAAC;IAED,MAAM;;QACJ,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAE1C,OAAO,CACL,4DAAK,KAAK,EAAE,wBAAwB,GAAG,IAAI,CAAC,UAAU;YACpD,4DAAK,KAAK,EAAC,QAAQ;gBACjB,4DAAK,KAAK,EAAC,aAAa;oBACtB,6DAAK,IAAI,CAAC,KAAK,CAAM;oBACrB,4DAAK,KAAK,EAAC,YAAY;wBACrB,4DAAK,KAAK,EAAC,YAAY;4BACrB,4DAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa;gCACxE,6DAAM,CAAC,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAI,CAC7C;4BACN,8DACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,MAAA,IAAI,CAAC,UAAU,mCAAI,EAAE,EAC5B,KAAK,EAAC,YAAY,EAClB,WAAW,EAAE,IAAI,CAAC,eAAe,EACjC,OAAO,EAAE,IAAI,CAAC,uBAAuB,EACrC,SAAS,EAAE,IAAI,CAAC,kBAAkB,GAClC,CACE;wBACN,uEAAgB,OAAO,EAAE,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,GAAI,CAC/E,CACF;gBACN,4DAAK,KAAK,EAAC,kBAAkB;oBAC3B,4DAAK,KAAK,EAAC,aAAa;wBACtB,uEAAgB,KAAK,EAAC,QAAQ,EAAC,YAAY,EAAC,SAAS,EAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAE,IAAI,iBAAc,GAAG,GAAkB;wBAC9J,sEAAe,EAAE,EAAC,cAAc;4BAC9B,2DAAI,KAAK,EAAC,iDAAiD,cAAa;4BACxE,4DAAK,KAAK,EAAC,kBAAkB;gCAC3B,kFACE,gBAAgB,EAAC,OAAO,EACxB,MAAM,EAAC,UAAU,EACjB,WAAW,EAAE,IAAI,CAAC,yBAAyB,EAC3C,aAAa,EAAE,IAAI,CAAC,sBAAsB,EAC1C,aAAa,EAAE,IAAI,CAAC,sBAAsB,EAC1C,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,EACxD,gBAAgB,EAAE,IAAI,CAAC,8BAA8B,EACrD,EAAE,EAAC,YAAY,iBACH,GAAG,GACY,CACzB;4BAEN,4DAAK,KAAK,EAAC,kBAAkB;gCAC3B,kFACE,gBAAgB,EAAC,OAAO,EACxB,MAAM,EAAC,aAAa,EACpB,WAAW,EAAE,IAAI,CAAC,4BAA4B,EAC9C,aAAa,EAAE,IAAI,CAAC,yBAAyB,EAC7C,aAAa,EAAE,IAAI,CAAC,yBAAyB,EAC7C,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAC3D,gBAAgB,EAAE,IAAI,CAAC,2BAA2B,EAClD,EAAE,EAAC,eAAe,iBACN,GAAG,GACY,CACzB;4BAEN,4DAAK,KAAK,EAAC,kBAAkB;gCAC3B,kFACE,gBAAgB,EAAC,OAAO,EACxB,MAAM,EAAC,UAAU,EACjB,WAAW,EAAE,IAAI,CAAC,wBAAwB,EAC1C,aAAa,EAAE,IAAI,CAAC,sBAAsB,EAC1C,aAAa,EAAE,IAAI,CAAC,sBAAsB,EAC1C,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,EACxD,gBAAgB,EAAE,IAAI,CAAC,wBAAwB,EAC/C,EAAE,EAAC,WAAW,iBACF,GAAG,GACY,CACzB;4BAEN,4DAAK,KAAK,EAAC,aAAa;gCACtB,uEAAgB,KAAK,EAAC,eAAe,EAAC,OAAO,EAAE,IAAI,CAAC,4BAA4B,GAAI,CAChF,CACQ,CACZ;oBAEN,4DAAK,KAAK,EAAC,WAAW;wBACpB,kFACE,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,IAAI,kBACC,YAAY,EACzB,WAAW,EAAE,IAAI,CAAC,qBAAqB,EACvC,aAAa,EAAE,IAAI,CAAC,oBAAoB,EACxC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,EACtC,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,EAC7C,EAAE,EAAC,SAAS;4BAEZ,yFAAkC,KAAK,EAAC,cAAc,EAAC,KAAK,EAAC,aAAa,GAAoC;4BAC9G,yFAAkC,KAAK,EAAC,aAAa,EAAC,KAAK,EAAC,cAAc,GAAoC;4BAC9G,yFAAkC,KAAK,EAAC,qBAAqB,EAAC,KAAK,EAAC,uBAAuB,GAAoC;4BAC9H,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,wCAAkC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAC,WAAW,GAAoC,CAAC,CAAC,CAAC,IAAI,CAC5H,CACxB,CACF;gBACN,4DAAK,KAAK,EAAC,sBAAsB;oBAC/B,4DAAK,KAAK,EAAC,kBAAkB;wBAC1B,IAAI,CAAC,sBAAsB,IAAI,CAC9B,6DACE,KAAK,EAAC,QAAQ,EACd,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;4BAClC,CAAC,IAEA,IAAI,CAAC,sBAAsB,CACvB,CACR;wBACA,IAAI,CAAC,yBAAyB,IAAI,CACjC,6DACE,KAAK,EAAC,QAAQ,EACd,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;4BACrC,CAAC,IAEA,IAAI,CAAC,yBAAyB,CAC1B,CACR;wBACA,IAAI,CAAC,sBAAsB,IAAI,CAC9B,6DACE,KAAK,EAAC,QAAQ,EACd,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;4BACjC,CAAC,IAEA,IAAI,CAAC,sBAAsB,CACvB,CACR,CACG;oBACN,4DAAK,KAAK,EAAC,WAAW;wBACpB,0DAAG,OAAO,EAAE,IAAI,CAAC,cAAc,gBAAe,CAC1C,CACF;gBACN,4DAAK,KAAK,EAAC,eAAe;oBACxB,6DAAM,IAAI,EAAC,eAAe,GAAQ,CAC9B,CACF,CACF,CACP,CAAC;IACJ,CAAC;IAED,qHAAqH;IACrH,mHAAmH;IACnH,2CAA2C;IAC3C,EAAE;IACF,0EAA0E;IACnE,gBAAgB;QACrB,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;QAC/C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YAC3C,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;QACnE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEN,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAC;IACzB,CAAC;IAEO,cAAc;QAIpB,8FAA8F;QAC9F,MAAM,cAAc,GAAoB,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QACrF,MAAM,kBAAkB,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,WAAW,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAErG,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAkB,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxG,CAAC;IAEO,aAAa;QACnB,OAAO,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3E,CAAC;IAEO,cAAc,CAAC,OAAmD;QAIxE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State } from '@stencil/core';\nimport { faMagnifyingGlass } from '@fortawesome/pro-solid-svg-icons';\n\nconst sortOptionLabels = {\n relevance: 'Relevance',\n amountRaised: 'Most raised',\n leastRaised: 'Least raised',\n closeToTarget: 'Close to campaign target',\n matchFundsRemaining: 'Match funds remaining',\n} as const;\n\nexport type sortOptionKey = keyof typeof sortOptionLabels;\nexport type sortOptionLabel = (typeof sortOptionLabels)[sortOptionKey];\n\n@Component({\n tag: 'biggive-campaign-card-filter-grid',\n styleUrl: 'biggive-campaign-card-filter-grid.scss',\n shadow: true,\n})\nexport class BiggiveCampaignCardFilterGrid {\n private sortByPlaceholderText = 'Sort by';\n private beneficiariesPlaceHolderText = 'Select beneficiary';\n private categoriesPlaceHolderText = 'Select category';\n private locationsPlaceHolderText = 'Select location';\n private initialSortByOption: sortOptionLabel;\n\n /**\n * This and similar properties represent selections made in the popup but not yet applied.\n */\n private newSelectedFilterCategory: string | null = null;\n private newSelectedFilterBeneficiary: string | null = null;\n private newSelectedFilterLocation: string | null = null;\n\n @Element() el: HTMLBiggiveCampaignCardFilterGridElement;\n\n /**\n * This event `doSearchAndFilterUpdate` event is emitted and propogates to the parent\n * component which handles it\n */\n @Event({\n eventName: 'doSearchAndFilterUpdate',\n bubbles: true,\n cancelable: true,\n composed: true,\n })\n doSearchAndFilterUpdate: EventEmitter<{\n searchText: string | null;\n sortBy: string | null;\n filterCategory: string | null;\n filterBeneficiary: string | null;\n filterLocation: string | null;\n }>;\n\n /**\n * Typically on non-negligible scroll away from the search area.\n */\n @Method() async unfocusInputs() {\n this.unfocusTextInput();\n }\n\n /**\n * Space below component\n */\n @Prop() spaceBelow: number = 0;\n\n /**\n * Intro\n */\n @Prop() intro: string = 'Find a charity or project';\n\n /**\n * Optional search text prop. Useful for pre-populating the search field\n * when the page is loaded with a search term already existing in the URL.\n * This can happen when sharing links, or if a donor goes to a campaign page\n * after searching, and then returns to the search results. In such a case,\n * the search box text will clear, unless we use this prop to populate it on\n * rendering. DON-652.\n */\n @Prop() searchText: string | null = null;\n\n /**\n * Defines the text displayed as the placeholder in the input field\n * before the user types anything\n */\n @Prop() placeholderText: string = 'Search';\n\n /**\n * Defines the text on the search button\n */\n @Prop() buttonText: string = 'Search';\n\n /**\n * JSON array of category key/values, or takes a stringified equiavalent (for Storybook)\n */\n @Prop() categoryOptions: string | Record<string, string> | string[];\n\n /**\n * JSON array of beneficiary key/values, or takes a stringified equiavalent (for Storybook)\n */\n @Prop() beneficiaryOptions: string | Record<string, string> | string[];\n\n /**\n * JSON array of location key/values, or takes a stringified equiavalent (for Storybook)\n */\n @Prop() locationOptions: string | Record<string, string> | string[];\n\n /**\n * This helps us inject a pre-selected dropdown value from outside of this component.\n * This is especially helpful for the Meta campaign and Explore pages, where searching\n * by text wipes out previous sort options and re-uses Relevance, or where one of those\n * two pages is loaded directly with URL parameters - in such a scenario the dropdown\n * shows that it's pre-selected. DON-558.\n */\n @Prop({ mutable: true })\n selectedSortByOption: sortOptionLabel;\n\n /**\n * For injecting the chosen category to filter by, as per the comment above for `selectedSortByOption`.\n */\n @Prop({ mutable: true }) selectedFilterCategory: string | null = null;\n\n /**\n * For injecting the chosen beneficiary to filter by, as per the comment above for `selectedSortByOption`.\n */\n @Prop({ mutable: true }) selectedFilterBeneficiary: string | null = null;\n\n /**\n * For injecting the chosen location to filter by, as per the comment above for `selectedSortByOption`.\n */\n @Prop({ mutable: true }) selectedFilterLocation: string | null = null;\n\n /**\n * State variable - causes re-render on change\n */\n @State() filtersApplied: boolean;\n\n private categoryFilterSelectionChanged = (value: string) => {\n this.newSelectedFilterCategory = value;\n };\n\n private beneficiarySelectionChanged = (value: string) => {\n this.newSelectedFilterBeneficiary = value;\n };\n\n private locationSelectionChanged = (value: string) => {\n this.newSelectedFilterLocation = value;\n };\n\n private sortBySelectionChanged = (value: sortOptionLabel) => {\n this.selectedSortByOption = value;\n this.doSearchAndFilterUpdate.emit(this.getSearchAndFilterObject());\n };\n\n private getSearchAndFilterObject() {\n return {\n searchText: this.searchText,\n sortBy: this.selectedSortByOption,\n filterCategory: this.selectedFilterCategory,\n filterBeneficiary: this.selectedFilterBeneficiary,\n filterLocation: this.selectedFilterLocation,\n };\n }\n\n private handleApplyFilterButtonClick = () => {\n this.selectedFilterCategory = this.newSelectedFilterCategory ?? this.selectedFilterCategory;\n this.selectedFilterBeneficiary = this.newSelectedFilterBeneficiary ?? this.selectedFilterBeneficiary;\n this.selectedFilterLocation = this.newSelectedFilterLocation ?? this.selectedFilterLocation;\n\n const searchAndFilterObj = this.getSearchAndFilterObject();\n this.doSearchAndFilterUpdate.emit(searchAndFilterObj);\n\n const filterPopup = this.el.shadowRoot?.getElementById('filter-popup') as HTMLBiggivePopupElement | undefined;\n if (filterPopup) {\n filterPopup.closeFromOutside();\n }\n\n this.filtersApplied =\n typeof searchAndFilterObj.filterBeneficiary === 'string' || typeof searchAndFilterObj.filterCategory === 'string' || typeof searchAndFilterObj.filterLocation === 'string';\n };\n\n private removeFilter(filterKey: 'locations' | 'categories' | 'beneficiaries') {\n switch (filterKey) {\n case 'beneficiaries':\n this.selectedFilterBeneficiary = null;\n break;\n case 'categories':\n this.selectedFilterCategory = null;\n break;\n case 'locations':\n this.selectedFilterLocation = null;\n break;\n default:\n // This asks the compiler to check that we are in dead code, i.e. we covered all the possible filter keys\n // above. If we missed one we would get a compile error trying to assign a string to a never.\n const exhaustiveSwitch: never = filterKey;\n console.error(exhaustiveSwitch);\n }\n\n const selectEl = this.el.shadowRoot?.getElementById(filterKey) as HTMLBiggiveFormFieldSelectElement | undefined;\n if (!selectEl) {\n return;\n }\n\n selectEl.selectedLabel = null;\n selectEl.selectedValue = null;\n this.doSearchAndFilterUpdate.emit(this.getSearchAndFilterObject());\n }\n\n private handleSearchButtonPressed = () => {\n this.unfocusTextInput();\n this.doSearchAndFilterUpdate.emit(this.getSearchAndFilterObject());\n\n if (this.hasSearchTerm()) {\n this.selectedSortByOption = 'Relevance';\n }\n };\n\n private handleSearchTextChanged = (event: any) => {\n this.searchText = event.target.value;\n };\n\n private handleEnterPressed = (ev: KeyboardEvent) => {\n if (ev.key === 'Enter') {\n this.unfocusTextInput();\n this.doSearchAndFilterUpdate.emit(this.getSearchAndFilterObject());\n }\n };\n\n private handleFilterButtonClick = () => {\n this.newSelectedFilterBeneficiary = this.selectedFilterBeneficiary;\n this.newSelectedFilterCategory = this.selectedFilterCategory;\n this.newSelectedFilterLocation = this.selectedFilterLocation;\n\n const filterPopup = this.el.shadowRoot?.getElementById('filter-popup') as HTMLBiggivePopupElement | undefined;\n if (filterPopup) {\n filterPopup.openFromOutside();\n }\n };\n\n private handleClearAll = () => {\n this.unfocusTextInput();\n\n // Set the 'Filters' button back to the primary background colour\n this.filtersApplied = false;\n\n // Clear all\n this.searchText = null;\n this.selectedSortByOption = this.initialSortByOption;\n this.selectedFilterBeneficiary = null;\n this.selectedFilterCategory = null;\n this.selectedFilterLocation = null;\n\n // Clear <biggive-form-field-select> components' internal selectedValue and selectedLabel. DON-654.\n ['sort-by', 'categories', 'beneficiaries', 'locations', 'funding'].forEach(id => {\n const theEl = this.el.shadowRoot?.getElementById(id) as HTMLBiggiveFormFieldSelectElement | undefined;\n if (!theEl) {\n return;\n }\n\n theEl.selectedValue = null;\n theEl.selectedLabel = null;\n });\n\n const selectedFilters = this.el.shadowRoot?.querySelector('.selected-filters');\n if (selectedFilters) {\n selectedFilters.querySelectorAll('.button').forEach(button => {\n button.remove();\n });\n }\n\n // Emit the doSearchAndFilterUpdate event with null values. DON-654\n this.doSearchAndFilterUpdate.emit({\n searchText: null,\n sortBy: null,\n filterCategory: null,\n filterBeneficiary: null,\n filterLocation: null,\n });\n };\n\n /**\n * We've seen desktop Safari jump to this input when it's focused at times when that's\n * unhelpful, so on a few occasions we proactively blur it.\n */\n private unfocusTextInput() {\n const input = this.el.shadowRoot?.querySelector('.input-text') as HTMLInputElement | undefined;\n if (input) {\n input.blur();\n }\n }\n\n componentWillRender() {\n this.filtersApplied = this.selectedFilterCategory !== null || this.selectedFilterBeneficiary !== null || this.selectedFilterLocation !== null;\n this.initialSortByOption = this.selectedSortByOption;\n }\n\n render() {\n const sortOptions = this.getSortOptions();\n\n return (\n <div class={'container space-below-' + this.spaceBelow}>\n <div class=\"sleeve\">\n <div class=\"search-wrap\">\n <h4>{this.intro}</h4>\n <div class=\"field-wrap\">\n <div class=\"input-wrap\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon\" viewBox=\"0 0 512 512\">\n <path d={faMagnifyingGlass.icon[4].toString()} />\n </svg>\n <input\n type=\"text\"\n value={this.searchText ?? ''}\n class=\"input-text\"\n placeholder={this.placeholderText}\n onInput={this.handleSearchTextChanged}\n onKeyDown={this.handleEnterPressed}\n />\n </div>\n <biggive-button onClick={this.handleSearchButtonPressed} label={this.buttonText} />\n </div>\n </div>\n <div class=\"sort-filter-wrap\">\n <div class=\"filter-wrap\">\n <biggive-button class=\"filter\" colourScheme=\"primary\" onClick={this.handleFilterButtonClick} label=\"Filter\" fullWidth={true} space-below=\"0\"></biggive-button>\n <biggive-popup id=\"filter-popup\">\n <h4 class=\"space-above-0 space-below-3 text-colour-primary\">Filters</h4>\n <div class=\"select-wrapper-1\">\n <biggive-form-field-select\n backgroundColour=\"white\"\n prompt=\"Category\"\n placeholder={this.categoriesPlaceHolderText}\n selectedLabel={this.selectedFilterCategory}\n selectedValue={this.selectedFilterCategory}\n options={this.optionsToArray(this.categoryOptions || [])}\n selectionChanged={this.categoryFilterSelectionChanged}\n id=\"categories\"\n space-below=\"2\"\n ></biggive-form-field-select>\n </div>\n\n <div class=\"select-wrapper-2\">\n <biggive-form-field-select\n backgroundColour=\"white\"\n prompt=\"Beneficiary\"\n placeholder={this.beneficiariesPlaceHolderText}\n selectedLabel={this.selectedFilterBeneficiary}\n selectedValue={this.selectedFilterBeneficiary}\n options={this.optionsToArray(this.beneficiaryOptions || [])}\n selectionChanged={this.beneficiarySelectionChanged}\n id=\"beneficiaries\"\n space-below=\"2\"\n ></biggive-form-field-select>\n </div>\n\n <div class=\"select-wrapper-3\">\n <biggive-form-field-select\n backgroundColour=\"white\"\n prompt=\"Location\"\n placeholder={this.locationsPlaceHolderText}\n selectedLabel={this.selectedFilterLocation}\n selectedValue={this.selectedFilterLocation}\n options={this.optionsToArray(this.locationOptions || [])}\n selectionChanged={this.locationSelectionChanged}\n id=\"locations\"\n space-below=\"2\"\n ></biggive-form-field-select>\n </div>\n\n <div class=\"align-right\">\n <biggive-button label=\"Apply filters\" onClick={this.handleApplyFilterButtonClick} />\n </div>\n </biggive-popup>\n </div>\n\n <div class=\"sort-wrap\">\n <biggive-form-field-select\n options={sortOptions}\n prompt={null}\n select-style=\"underlined\"\n placeholder={this.sortByPlaceholderText}\n selectedLabel={this.selectedSortByOption}\n selectedValue={this.getSelectedValue()}\n selectionChanged={this.sortBySelectionChanged}\n id=\"sort-by\"\n >\n <biggive-form-field-select-option value=\"amountRaised\" label=\"Most raised\"></biggive-form-field-select-option>\n <biggive-form-field-select-option value=\"leastRaised\" label=\"Least raised\"></biggive-form-field-select-option>\n <biggive-form-field-select-option value=\"matchFundsRemaining\" label=\"Match funds remaining\"></biggive-form-field-select-option>\n {(this.searchText || '').length > 0 ? <biggive-form-field-select-option value=\"Relevance\" label=\"Relevance\"></biggive-form-field-select-option> : null}\n </biggive-form-field-select>\n </div>\n </div>\n <div class=\"selected-filter-wrap\">\n <div class=\"selected-filters\">\n {this.selectedFilterCategory && (\n <span\n class=\"button\"\n onClick={() => {\n this.removeFilter('categories');\n }}\n >\n {this.selectedFilterCategory}\n </span>\n )}\n {this.selectedFilterBeneficiary && (\n <span\n class=\"button\"\n onClick={() => {\n this.removeFilter('beneficiaries');\n }}\n >\n {this.selectedFilterBeneficiary}\n </span>\n )}\n {this.selectedFilterLocation && (\n <span\n class=\"button\"\n onClick={() => {\n this.removeFilter('locations');\n }}\n >\n {this.selectedFilterLocation}\n </span>\n )}\n </div>\n <div class=\"clear-all\">\n <a onClick={this.handleClearAll}>Clear all</a>\n </div>\n </div>\n <div class=\"campaign-grid\">\n <slot name=\"campaign-grid\"></slot>\n </div>\n </div>\n </div>\n );\n }\n\n // I'm not sure if I understand the reasoning for own-methods-must-be-private. I made the method below public to unit\n // test it. Maybe the idea is that we should move anything with enough logic to test outside the component class? I\n // can do that if people think it's better.\n //\n // eslint-disable-next-line @stencil-community/own-methods-must-be-private\n public getSelectedValue(): undefined | string {\n const sortByOption = this.selectedSortByOption;\n if (sortByOption === undefined) {\n return undefined;\n }\n const sortOptions = this.getSortOptions();\n const selected = sortOptions.filter(option => {\n return option.label.toLowerCase() === sortByOption.toLowerCase();\n })[0];\n\n return selected?.value;\n }\n\n private getSortOptions(): {\n label: sortOptionLabel;\n value: sortOptionKey;\n }[] {\n // @ts-ignore - see https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n const sortOptionKeys: sortOptionKey[] = Object.getOwnPropertyNames(sortOptionLabels);\n const relevantOptionKeys = sortOptionKeys.filter(key => key !== 'relevance' || this.hasSearchTerm());\n\n return relevantOptionKeys.map((key: sortOptionKey) => ({ value: key, label: sortOptionLabels[key] }));\n }\n\n private hasSearchTerm() {\n return typeof this.searchText === 'string' && this.searchText.length > 0;\n }\n\n private optionsToArray(options: string | Record<string, string> | string[]): {\n label: string;\n value: string;\n }[] {\n if (typeof options === 'string') {\n options = JSON.parse(options);\n }\n if (Array.isArray(options)) {\n return options.map((option: string) => ({ value: option, label: option }));\n }\n\n return Object.entries(options).map(entry => ({ value: entry[0], label: entry[1] }));\n }\n}\n"]}
1
+ {"version":3,"file":"biggive-campaign-card-filter-grid.js","sourceRoot":"","sources":["../../../src/components/biggive-campaign-card-filter-grid/biggive-campaign-card-filter-grid.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Method, Prop, State } from '@stencil/core';\nimport { faMagnifyingGlass } from '@fortawesome/pro-solid-svg-icons';\n\nconst sortOptionLabels = {\n relevance: 'Relevance',\n amountRaised: 'Most raised',\n leastRaised: 'Least raised',\n closeToTarget: 'Close to campaign target',\n matchFundsRemaining: 'Match funds remaining',\n} as const;\n\nexport type sortOptionKey = keyof typeof sortOptionLabels;\nexport type sortOptionLabel = (typeof sortOptionLabels)[sortOptionKey];\n\n@Component({\n tag: 'biggive-campaign-card-filter-grid',\n styleUrl: 'biggive-campaign-card-filter-grid.scss',\n shadow: true,\n})\nexport class BiggiveCampaignCardFilterGrid {\n private sortByPlaceholderText = 'Sort by';\n private beneficiariesPlaceHolderText = 'Select beneficiary';\n private categoriesPlaceHolderText = 'Select category';\n private locationsPlaceHolderText = 'Select location';\n private initialSortByOption: sortOptionLabel;\n\n /**\n * This and similar properties represent selections made in the popup but not yet applied.\n */\n private newSelectedFilterCategory: string | null = null;\n private newSelectedFilterBeneficiary: string | null = null;\n private newSelectedFilterLocation: string | null = null;\n\n @Element() el: HTMLBiggiveCampaignCardFilterGridElement;\n\n /**\n * This event `doSearchAndFilterUpdate` event is emitted and propogates to the parent\n * component which handles it\n */\n @Event({\n eventName: 'doSearchAndFilterUpdate',\n bubbles: true,\n cancelable: true,\n composed: true,\n })\n doSearchAndFilterUpdate: EventEmitter<{\n searchText: string | null;\n sortBy: string | null;\n filterCategory: string | null;\n filterBeneficiary: string | null;\n filterLocation: string | null;\n }>;\n\n /**\n * Typically on non-negligible scroll away from the search area.\n */\n @Method() async unfocusInputs() {\n this.unfocusTextInput();\n }\n\n /**\n * Space below component\n */\n @Prop() spaceBelow: number = 0;\n\n /**\n * Intro\n */\n @Prop() intro: string = 'Find a charity or project';\n\n /**\n * Optional search text prop. Useful for pre-populating the search field\n * when the page is loaded with a search term already existing in the URL.\n * This can happen when sharing links, or if a donor goes to a campaign page\n * after searching, and then returns to the search results. In such a case,\n * the search box text will clear, unless we use this prop to populate it on\n * rendering. DON-652.\n */\n @Prop() searchText: string | null = null;\n\n /**\n * Defines the text displayed as the placeholder in the input field\n * before the user types anything\n */\n @Prop() placeholderText: string = 'Search';\n\n /**\n * Defines the text on the search button\n */\n @Prop() buttonText: string = 'Search';\n\n /**\n * JSON array of category key/values, or takes a stringified equiavalent (for Storybook)\n */\n @Prop() categoryOptions: string | Record<string, string> | string[];\n\n /**\n * JSON array of beneficiary key/values, or takes a stringified equiavalent (for Storybook)\n */\n @Prop() beneficiaryOptions: string | Record<string, string> | string[];\n\n /**\n * JSON array of location key/values, or takes a stringified equiavalent (for Storybook)\n */\n @Prop() locationOptions: string | Record<string, string> | string[];\n\n /**\n * This helps us inject a pre-selected dropdown value from outside of this component.\n * This is especially helpful for the Meta campaign and Explore pages, where searching\n * by text wipes out previous sort options and re-uses Relevance, or where one of those\n * two pages is loaded directly with URL parameters - in such a scenario the dropdown\n * shows that it's pre-selected. DON-558.\n */\n @Prop({ mutable: true })\n selectedSortByOption: sortOptionLabel;\n\n /**\n * For injecting the chosen category to filter by, as per the comment above for `selectedSortByOption`.\n */\n @Prop({ mutable: true }) selectedFilterCategory: string | null = null;\n\n /**\n * For injecting the chosen beneficiary to filter by, as per the comment above for `selectedSortByOption`.\n */\n @Prop({ mutable: true }) selectedFilterBeneficiary: string | null = null;\n\n /**\n * For injecting the chosen location to filter by, as per the comment above for `selectedSortByOption`.\n */\n @Prop({ mutable: true }) selectedFilterLocation: string | null = null;\n\n /**\n * State variable - causes re-render on change\n */\n @State() filtersApplied: boolean;\n\n private categoryFilterSelectionChanged = (value: string) => {\n this.newSelectedFilterCategory = value;\n };\n\n private beneficiarySelectionChanged = (value: string) => {\n this.newSelectedFilterBeneficiary = value;\n };\n\n private locationSelectionChanged = (value: string) => {\n this.newSelectedFilterLocation = value;\n };\n\n private sortBySelectionChanged = (value: sortOptionLabel) => {\n this.selectedSortByOption = value;\n this.doSearchAndFilterUpdate.emit(this.getSearchAndFilterObject());\n };\n\n private getSearchAndFilterObject() {\n return {\n searchText: this.searchText,\n sortBy: this.selectedSortByOption,\n filterCategory: this.selectedFilterCategory,\n filterBeneficiary: this.selectedFilterBeneficiary,\n filterLocation: this.selectedFilterLocation,\n };\n }\n\n private handleApplyFilterButtonClick = () => {\n this.selectedFilterCategory = this.newSelectedFilterCategory ?? this.selectedFilterCategory;\n this.selectedFilterBeneficiary = this.newSelectedFilterBeneficiary ?? this.selectedFilterBeneficiary;\n this.selectedFilterLocation = this.newSelectedFilterLocation ?? this.selectedFilterLocation;\n\n const searchAndFilterObj = this.getSearchAndFilterObject();\n this.doSearchAndFilterUpdate.emit(searchAndFilterObj);\n\n const filterPopup = this.el.shadowRoot?.getElementById('filter-popup') as HTMLBiggivePopupElement | undefined;\n if (filterPopup) {\n filterPopup.closeFromOutside();\n }\n\n this.filtersApplied =\n typeof searchAndFilterObj.filterBeneficiary === 'string' || typeof searchAndFilterObj.filterCategory === 'string' || typeof searchAndFilterObj.filterLocation === 'string';\n };\n\n private removeFilter(filterKey: 'locations' | 'categories' | 'beneficiaries') {\n switch (filterKey) {\n case 'beneficiaries':\n this.selectedFilterBeneficiary = null;\n break;\n case 'categories':\n this.selectedFilterCategory = null;\n break;\n case 'locations':\n this.selectedFilterLocation = null;\n break;\n default:\n // This asks the compiler to check that we are in dead code, i.e. we covered all the possible filter keys\n // above. If we missed one we would get a compile error trying to assign a string to a never.\n const exhaustiveSwitch: never = filterKey;\n console.error(exhaustiveSwitch);\n }\n\n const selectEl = this.el.shadowRoot?.getElementById(filterKey) as HTMLBiggiveFormFieldSelectElement | undefined;\n if (!selectEl) {\n return;\n }\n\n selectEl.selectedLabel = null;\n selectEl.selectedValue = null;\n this.doSearchAndFilterUpdate.emit(this.getSearchAndFilterObject());\n }\n\n private handleSearchButtonPressed = () => {\n this.unfocusTextInput();\n this.doSearchAndFilterUpdate.emit(this.getSearchAndFilterObject());\n\n if (this.hasSearchTerm()) {\n this.selectedSortByOption = 'Relevance';\n }\n };\n\n private handleSearchTextChanged = (event: any) => {\n this.searchText = event.target.value;\n };\n\n private handleEnterPressed = (ev: KeyboardEvent) => {\n if (ev.key === 'Enter') {\n this.unfocusTextInput();\n this.doSearchAndFilterUpdate.emit(this.getSearchAndFilterObject());\n }\n };\n\n private handleFilterButtonClick = () => {\n this.newSelectedFilterBeneficiary = this.selectedFilterBeneficiary;\n this.newSelectedFilterCategory = this.selectedFilterCategory;\n this.newSelectedFilterLocation = this.selectedFilterLocation;\n\n const filterPopup = this.el.shadowRoot?.getElementById('filter-popup') as HTMLBiggivePopupElement | undefined;\n if (filterPopup) {\n filterPopup.openFromOutside();\n }\n };\n\n private handleClearAll = () => {\n this.unfocusTextInput();\n\n // Set the 'Filters' button back to the primary background colour\n this.filtersApplied = false;\n\n // Clear all\n this.searchText = null;\n this.selectedSortByOption = this.initialSortByOption;\n this.selectedFilterBeneficiary = null;\n this.selectedFilterCategory = null;\n this.selectedFilterLocation = null;\n\n // Clear <biggive-form-field-select> components' internal selectedValue and selectedLabel. DON-654.\n ['sort-by', 'categories', 'beneficiaries', 'locations', 'funding'].forEach(id => {\n const theEl = this.el.shadowRoot?.getElementById(id) as HTMLBiggiveFormFieldSelectElement | undefined;\n if (!theEl) {\n return;\n }\n\n theEl.selectedValue = null;\n theEl.selectedLabel = null;\n });\n\n const selectedFilters = this.el.shadowRoot?.querySelector('.selected-filters');\n if (selectedFilters) {\n selectedFilters.querySelectorAll('.button').forEach(button => {\n button.remove();\n });\n }\n\n // Emit the doSearchAndFilterUpdate event with null values. DON-654\n this.doSearchAndFilterUpdate.emit({\n searchText: null,\n sortBy: null,\n filterCategory: null,\n filterBeneficiary: null,\n filterLocation: null,\n });\n };\n\n /**\n * We've seen desktop Safari jump to this input when it's focused at times when that's\n * unhelpful, so on a few occasions we proactively blur it.\n */\n private unfocusTextInput() {\n const input = this.el.shadowRoot?.querySelector('.input-text') as HTMLInputElement | undefined;\n input?.blur();\n }\n\n componentWillRender() {\n this.filtersApplied = this.selectedFilterCategory !== null || this.selectedFilterBeneficiary !== null || this.selectedFilterLocation !== null;\n this.initialSortByOption = this.selectedSortByOption;\n }\n\n render() {\n const sortOptions = this.getSortOptions();\n\n return (\n <div class={'container space-below-' + this.spaceBelow}>\n <div class=\"sleeve\">\n <div class=\"search-wrap\">\n <h4>{this.intro}</h4>\n <div class=\"field-wrap\">\n <div class=\"input-wrap\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon\" viewBox=\"0 0 512 512\">\n <path d={faMagnifyingGlass.icon[4].toString()} />\n </svg>\n <input\n type=\"text\"\n value={this.searchText ?? ''}\n class=\"input-text\"\n placeholder={this.placeholderText}\n onInput={this.handleSearchTextChanged}\n onKeyDown={this.handleEnterPressed}\n />\n </div>\n <biggive-button onClick={this.handleSearchButtonPressed} label={this.buttonText} />\n </div>\n </div>\n <div class=\"sort-filter-wrap\">\n <div class=\"filter-wrap\">\n <biggive-button class=\"filter\" colourScheme=\"primary\" onClick={this.handleFilterButtonClick} label=\"Filter\" fullWidth={true} space-below=\"0\"></biggive-button>\n <biggive-popup id=\"filter-popup\">\n <h4 class=\"space-above-0 space-below-3 text-colour-primary\">Filters</h4>\n <div class=\"select-wrapper-1\">\n <biggive-form-field-select\n backgroundColour=\"white\"\n prompt=\"Category\"\n placeholder={this.categoriesPlaceHolderText}\n selectedLabel={this.selectedFilterCategory}\n selectedValue={this.selectedFilterCategory}\n options={this.optionsToArray(this.categoryOptions || [])}\n selectionChanged={this.categoryFilterSelectionChanged}\n id=\"categories\"\n space-below=\"2\"\n ></biggive-form-field-select>\n </div>\n\n <div class=\"select-wrapper-2\">\n <biggive-form-field-select\n backgroundColour=\"white\"\n prompt=\"Beneficiary\"\n placeholder={this.beneficiariesPlaceHolderText}\n selectedLabel={this.selectedFilterBeneficiary}\n selectedValue={this.selectedFilterBeneficiary}\n options={this.optionsToArray(this.beneficiaryOptions || [])}\n selectionChanged={this.beneficiarySelectionChanged}\n id=\"beneficiaries\"\n space-below=\"2\"\n ></biggive-form-field-select>\n </div>\n\n <div class=\"select-wrapper-3\">\n <biggive-form-field-select\n backgroundColour=\"white\"\n prompt=\"Location\"\n placeholder={this.locationsPlaceHolderText}\n selectedLabel={this.selectedFilterLocation}\n selectedValue={this.selectedFilterLocation}\n options={this.optionsToArray(this.locationOptions || [])}\n selectionChanged={this.locationSelectionChanged}\n id=\"locations\"\n space-below=\"2\"\n ></biggive-form-field-select>\n </div>\n\n <div class=\"align-right\">\n <biggive-button label=\"Apply filters\" onClick={this.handleApplyFilterButtonClick} />\n </div>\n </biggive-popup>\n </div>\n\n <div class=\"sort-wrap\">\n <biggive-form-field-select\n options={sortOptions}\n prompt={null}\n select-style=\"underlined\"\n placeholder={this.sortByPlaceholderText}\n selectedLabel={this.selectedSortByOption}\n selectedValue={this.getSelectedValue()}\n selectionChanged={this.sortBySelectionChanged}\n id=\"sort-by\"\n >\n <biggive-form-field-select-option value=\"amountRaised\" label=\"Most raised\"></biggive-form-field-select-option>\n <biggive-form-field-select-option value=\"leastRaised\" label=\"Least raised\"></biggive-form-field-select-option>\n <biggive-form-field-select-option value=\"matchFundsRemaining\" label=\"Match funds remaining\"></biggive-form-field-select-option>\n {(this.searchText || '').length > 0 ? <biggive-form-field-select-option value=\"Relevance\" label=\"Relevance\"></biggive-form-field-select-option> : null}\n </biggive-form-field-select>\n </div>\n </div>\n <div class=\"selected-filter-wrap\">\n <div class=\"selected-filters\">\n {this.selectedFilterCategory && (\n <span\n class=\"button\"\n onClick={() => {\n this.removeFilter('categories');\n }}\n >\n {this.selectedFilterCategory}\n </span>\n )}\n {this.selectedFilterBeneficiary && (\n <span\n class=\"button\"\n onClick={() => {\n this.removeFilter('beneficiaries');\n }}\n >\n {this.selectedFilterBeneficiary}\n </span>\n )}\n {this.selectedFilterLocation && (\n <span\n class=\"button\"\n onClick={() => {\n this.removeFilter('locations');\n }}\n >\n {this.selectedFilterLocation}\n </span>\n )}\n </div>\n <div class=\"clear-all\">\n <a onClick={this.handleClearAll}>Clear all</a>\n </div>\n </div>\n <div class=\"campaign-grid\">\n <slot name=\"campaign-grid\"></slot>\n </div>\n </div>\n </div>\n );\n }\n\n // I'm not sure if I understand the reasoning for own-methods-must-be-private. I made the method below public to unit\n // test it. Maybe the idea is that we should move anything with enough logic to test outside the component class? I\n // can do that if people think it's better.\n //\n // eslint-disable-next-line @stencil-community/own-methods-must-be-private\n public getSelectedValue(): undefined | string {\n const sortByOption = this.selectedSortByOption;\n if (sortByOption === undefined) {\n return undefined;\n }\n const sortOptions = this.getSortOptions();\n const selected = sortOptions.filter(option => {\n return option.label.toLowerCase() === sortByOption.toLowerCase();\n })[0];\n\n return selected?.value;\n }\n\n private getSortOptions(): {\n label: sortOptionLabel;\n value: sortOptionKey;\n }[] {\n // @ts-ignore - see https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n const sortOptionKeys: sortOptionKey[] = Object.getOwnPropertyNames(sortOptionLabels);\n const relevantOptionKeys = sortOptionKeys.filter(key => key !== 'relevance' || this.hasSearchTerm());\n\n return relevantOptionKeys.map((key: sortOptionKey) => ({ value: key, label: sortOptionLabels[key] }));\n }\n\n private hasSearchTerm() {\n return typeof this.searchText === 'string' && this.searchText.length > 0;\n }\n\n private optionsToArray(options: string | Record<string, string> | string[]): {\n label: string;\n value: string;\n }[] {\n if (typeof options === 'string') {\n options = JSON.parse(options);\n }\n if (Array.isArray(options)) {\n return options.map((option: string) => ({ value: option, label: option }));\n }\n\n return Object.entries(options).map(entry => ({ value: entry[0], label: entry[1] }));\n }\n}\n"]}
@@ -304,9 +304,6 @@ nav .navbar .bx-menu {
304
304
  width: 100%;
305
305
  display: block;
306
306
  }
307
- nav .navbar .nav-links .links li .display-sub-menu {
308
- display: block !important;
309
- }
310
307
  nav .navbar .nav-links .links li .sub-menu {
311
308
  position: relative;
312
309
  top: 0;
@@ -338,4 +335,57 @@ nav .navbar .bx-menu {
338
335
  nav .navbar .nav-links {
339
336
  max-width: 100%;
340
337
  }
338
+ }
339
+ .display-sub-menu, .display-sub-menu li {
340
+ display: block !important;
341
+ }
342
+
343
+ #nav-primary .display-sub-menu, #nav-primary .display-sub-menu li {
344
+ background-color: white;
345
+ }
346
+
347
+ .sub-menu-main {
348
+ position: absolute;
349
+ top: 20px;
350
+ left: 0;
351
+ line-height: 40px;
352
+ border-radius: 0 0 4px 4px;
353
+ display: none;
354
+ background-color: #2C089B;
355
+ z-index: 2;
356
+ }
357
+ .sub-menu-main li {
358
+ border-right: none !important;
359
+ padding: 0 22px;
360
+ display: none;
361
+ }
362
+ @media (max-width: 968px) {
363
+ .sub-menu-main {
364
+ position: static !important;
365
+ background: none;
366
+ }
367
+ }
368
+
369
+ .arrow {
370
+ margin-left: 5px;
371
+ text-align: center;
372
+ display: inline-block;
373
+ color: black;
374
+ transition: all 0.3s ease;
375
+ }
376
+ .arrow.transform-90 {
377
+ transform: rotate(90deg);
378
+ }
379
+
380
+ .nav-secondary li {
381
+ position: relative !important;
382
+ }
383
+ .nav-secondary li:hover .sub-menu-arrow {
384
+ transform: rotate(90deg);
385
+ }
386
+ .nav-secondary li:hover .sub-menu-main {
387
+ display: block;
388
+ }
389
+ .nav-secondary li:hover .sub-menu-main li {
390
+ display: block;
341
391
  }
@@ -7,6 +7,9 @@ export class BiggiveMainMenu {
7
7
  const mobileMenu = this.host.shadowRoot.querySelector('.nav-links');
8
8
  mobileMenu.style.left = '0';
9
9
  };
10
+ this.logOut = () => {
11
+ this.logoutClicked.emit();
12
+ };
10
13
  this.closeMobileMenu = () => {
11
14
  const mobileMenu = this.host.shadowRoot.querySelector('.nav-links');
12
15
  mobileMenu.style.left = '-100%';
@@ -51,12 +54,27 @@ export class BiggiveMainMenu {
51
54
  if (subMenuElements.length === 0) {
52
55
  throw new Error('Missing subMenuElements');
53
56
  }
57
+ /**
58
+ * Closes all the sub-menus except the one exception.
59
+ */
60
+ const closeAllSubMenus = ({ except }) => {
61
+ subMenuElements.forEach(subMenuElement => {
62
+ var _a;
63
+ const link = (_a = subMenuElement.parentElement) === null || _a === void 0 ? void 0 : _a.querySelector('a');
64
+ if (link === except) {
65
+ return;
66
+ }
67
+ link === null || link === void 0 ? void 0 : link.classList.remove('transform-90');
68
+ subMenuElement.classList.remove('display-sub-menu');
69
+ });
70
+ };
54
71
  subMenuElements.forEach(subMenuElement => {
55
72
  var _a;
56
73
  // the subMenuLink is a sibling element to the actual sub-menu
57
74
  const subMenuLink = (_a = subMenuElement.parentElement) === null || _a === void 0 ? void 0 : _a.querySelector('a');
58
75
  subMenuLink.onclick = () => {
59
76
  const subMenuArrow = subMenuLink.querySelector('.sub-menu-arrow');
77
+ closeAllSubMenus({ except: subMenuLink });
60
78
  subMenuArrow.classList.toggle('transform-90');
61
79
  subMenuElement.classList.toggle('display-sub-menu');
62
80
  };
@@ -75,8 +93,10 @@ export class BiggiveMainMenu {
75
93
  };
76
94
  });
77
95
  }
78
- getSecondaryNavLinks() {
79
- return (h("ul", null, this.myAccountFlagEnabled && !this.isLoggedIn && (h("li", null, h("a", { href: makeURL('Donate', this.donateUrlPrefix, 'login') }, "Donor Login"))), this.isLoggedIn && (h("li", null, h("a", { href: makeURL('Donate', this.donateUrlPrefix, 'my-account') }, "My Account"))), h("li", null, h("a", { href: makeURL('Experience', this.experienceUrlPrefix, 'charities/s/login') }, "Charity Login")), h("li", null, h("a", { href: makeURL('Blog', this.blogUrlPrefix, 'support') }, "Support"))));
96
+ getSecondaryNavLinks(layout) {
97
+ const chevronIconColour = layout === 'desktop' ? 'white' : 'black';
98
+ const chevronBackgroundColour = layout === 'desktop' ? 'blue' : 'white';
99
+ return (h("ul", null, this.myAccountFlagEnabled && !this.isLoggedIn && (h("li", null, h("a", { href: makeURL('Donate', this.donateUrlPrefix, 'login') }, "Donor Login"))), this.isLoggedIn && (h("li", null, h("a", { onClick: this.noNav }, "My Account", h("biggive-misc-icon", { class: "bx bxs-chevron-down sub-menu-arrow arrow", "background-colour": chevronBackgroundColour, "icon-colour": chevronIconColour, icon: "CaretRight" })), h("ul", { class: "sub-menu sub-menu-main", id: "my-account-sub-menu" }, h("li", null, h("a", { href: makeURL('Donate', this.donateUrlPrefix, 'my-account') }, "Your details")), h("li", null, h("a", { href: "javascript:void(0)", onClick: this.logOut }, "Log out"))))), h("li", null, h("a", { href: makeURL('Experience', this.experienceUrlPrefix, 'charities/s/login') }, "Charity Login")), h("li", null, h("a", { href: makeURL('Blog', this.blogUrlPrefix, 'support') }, "Support"))));
80
100
  }
81
101
  render() {
82
102
  /** ten minutes in advance to account for a *very* slow browser following the link and/or clock skew.
@@ -92,9 +112,9 @@ export class BiggiveMainMenu {
92
112
  const homePageLink = ccIsOpenNowIsh ? '/?noredirect' : '/';
93
113
  // calling same function twice because using same JSX node twice is not allowed
94
114
  // see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes
95
- const secondaryNavLinksA = this.getSecondaryNavLinks();
96
- const secondaryNavLinksB = this.getSecondaryNavLinks();
97
- return (h(Host, { key: '97ac21fcc3df3f5c0dbd686ae73aff26e06755ff' }, h("div", { key: '65432652066234c5ab162a28b0ef4a3be7b75054', class: "row row-top" }, h("div", { key: '4905493c5662f9996f4d07f6b5f6554371d45cd1', class: "social-icon-wrap" }, h("biggive-social-icon", { key: '20be159818ce8711be456316da1cbbdc769a8ab1', service: "Facebook", url: "https://www.facebook.com/BigGive.org", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: 'ba09ed03d53bf58409588ee1a17826b479ccc542', service: "Twitter", url: "https://x.com/BigGive", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '5053d2f66ca73275aac908b435b49eec3a6e2b5b', service: "LinkedIn", url: "https://uk.linkedin.com/company/big-give", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '13ca59e6f0496929b7767309584285d5439d37b5', service: "YouTube", url: "https://www.youtube.com/channel/UC9_wH1aaTuZurJ-F9R8GDcA", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '1b583d0741daffcf2ae7cc54df450db07b8282a6', service: "Instagram", url: "https://www.instagram.com/biggiveorg", "background-colour": "tertiary", "icon-colour": "black" })), h("div", { key: '3f262139b138e590d04949fb6dbdeb392a9828b4', class: "nav-secondary" }, secondaryNavLinksA)), h("nav", { key: 'a2fbcd042c20608e23ad8ff9f21aff08870d4ce5', role: "navigation", "aria-label": "Main Menu" }, h("div", { key: 'fde3cca40e76c864c8b4b44c1f01e9ff56f5dbad', class: "navbar" }, h("div", { key: '08b1968b838c62e42aa4d539b3555be98d0c2917', class: "logo" }, h("a", { key: 'be9113dcdc568bad3797976cea446aa75fa6827c', href: this.donateUrlPrefix + homePageLink, "aria-label": "Home" }, h("svg", { key: 'd638a2695676e06bb4ac8dbc2799dd2952e8db02', version: "1.1", x: "0px", y: "0px", viewBox: "0 0 140.9 30" }, h("path", { key: '69fd51a1d7885f9a8644ca88134a12a53dc79590', d: "M51.9,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3C53.6,0,55,1.4,55,3S53.6,6.1,51.9,6.1z M49.3,23.8h5V7.7h-5V23.8z M68.5,7.7v1 c-0.8-0.7-2.3-1.4-4.1-1.4c-4.5,0-8.2,3.2-8.2,7.9c0,4.7,3.7,7.9,8.2,7.9c1.8,0,3.4-0.5,4.1-1.4v0.9c0,2.1-1.9,3.1-4.4,3.1 c-2.2,0-4-0.5-5.8-1.4V29c2.1,0.7,4.4,1,6,1c5,0,9.2-2,9.2-7.3v-15L68.5,7.7L68.5,7.7z M68.5,17.2c-0.7,1-1.9,1.4-3.2,1.4 c-2.1,0-3.8-1.2-3.8-3.4c0-2.2,1.7-3.4,3.8-3.4c1.3,0,2.5,0.6,3.2,1.5V17.2z M88.1,24.2c4,0,6.4-0.7,8.5-2V10h-11v4.7h5.8v4.1 c-0.8,0.2-1.8,0.4-3.2,0.4c-4.9,0-7.3-3.2-7.3-6.8c0-3.7,2.8-6.8,8-6.8c2.2,0,4.3,0.6,5.8,1.4V1.7c-1.5-0.6-3.4-1.1-6.1-1.1 c-7.6,0-13,5.3-13,11.8C75.5,19.1,80.4,24.2,88.1,24.2z M101.4,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3c1.8,0,3.2,1.4,3.2,3 S103.1,6.1,101.4,6.1z M98.8,23.8h5V7.7h-5V23.8z M115.1,15l-4.3-7.2H105l10.1,16.4l10.1-16.4h-5.8L115.1,15z M129.3,16.9h11.6 c0.1-7-4.2-9.5-8.4-9.5c-4.5,0-8.5,2.6-8.6,8.4c0,5.6,4.1,8.4,9.1,8.4c2.2,0,4.4-0.3,6.4-1.3v-4.4c-2.5,1.4-4.1,1.4-5.6,1.4 C131.7,19.8,129.5,19.2,129.3,16.9z M132.5,11.1c1.5,0,2.8,0.7,3,2.7h-6.2C129.6,11.9,131,11.1,132.5,11.1z M43.5,11.4 c1.2-1,1.8-2.4,1.8-4c0-3.1-3-6.3-7.3-6.3h-8v22.8h10.4c4.1,0,7.2-3,7.2-6.8C47.5,14.8,46.5,12.3,43.5,11.4z M35.2,5.7h2.4 C39,5.7,40,6.8,40,8c0,1.2-1,2.2-2.5,2.2h-2.4V5.7z M39.9,19.2h-4.7v-4.6h4.7c1.4,0,2.5,1,2.5,2.3C42.4,18.1,41.3,19.2,39.9,19.2z" }), h("path", { key: 'adc99e502002dd7506cad81debd461607e1ac069', d: "M13.5,1l13.5,23H0L13.5,1z" })))), h("biggive-misc-icon", { key: 'e5a281eddbcb4f965773607699d58ea4719f26c8', class: "bx bx-menu", "background-colour": "white", "icon-colour": "black", icon: "MenuOpen", onClick: this.openMobileMenu }), h("div", { key: '1871639e69d2244a770790d8d3870adf84b69c1f', class: "nav-links" }, h("div", { key: '25cf617fe44e6a085bf2dfd3a333098650fff0f1', class: "sidebar-logo" }, h("a", { key: '9321740211c1166973d8da7e90bde99ff12d2a1a', href: this.donateUrlPrefix + homePageLink, "aria-label": "Home" }, h("svg", { key: 'e5eda1c87eb96c0700ad603d4cec0fa7a9683761', version: "1.1", x: "0px", y: "0px", viewBox: "0 0 140.9 30", id: "mobileLogo" }, h("path", { key: 'cf85f8b91835ff654aeae6fd6cc8faa6422d3fe5', d: "M51.9,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3C53.6,0,55,1.4,55,3S53.6,6.1,51.9,6.1z M49.3,23.8h5V7.7h-5V23.8z M68.5,7.7v1 c-0.8-0.7-2.3-1.4-4.1-1.4c-4.5,0-8.2,3.2-8.2,7.9c0,4.7,3.7,7.9,8.2,7.9c1.8,0,3.4-0.5,4.1-1.4v0.9c0,2.1-1.9,3.1-4.4,3.1 c-2.2,0-4-0.5-5.8-1.4V29c2.1,0.7,4.4,1,6,1c5,0,9.2-2,9.2-7.3v-15L68.5,7.7L68.5,7.7z M68.5,17.2c-0.7,1-1.9,1.4-3.2,1.4 c-2.1,0-3.8-1.2-3.8-3.4c0-2.2,1.7-3.4,3.8-3.4c1.3,0,2.5,0.6,3.2,1.5V17.2z M88.1,24.2c4,0,6.4-0.7,8.5-2V10h-11v4.7h5.8v4.1 c-0.8,0.2-1.8,0.4-3.2,0.4c-4.9,0-7.3-3.2-7.3-6.8c0-3.7,2.8-6.8,8-6.8c2.2,0,4.3,0.6,5.8,1.4V1.7c-1.5-0.6-3.4-1.1-6.1-1.1 c-7.6,0-13,5.3-13,11.8C75.5,19.1,80.4,24.2,88.1,24.2z M101.4,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3c1.8,0,3.2,1.4,3.2,3 S103.1,6.1,101.4,6.1z M98.8,23.8h5V7.7h-5V23.8z M115.1,15l-4.3-7.2H105l10.1,16.4l10.1-16.4h-5.8L115.1,15z M129.3,16.9h11.6 c0.1-7-4.2-9.5-8.4-9.5c-4.5,0-8.5,2.6-8.6,8.4c0,5.6,4.1,8.4,9.1,8.4c2.2,0,4.4-0.3,6.4-1.3v-4.4c-2.5,1.4-4.1,1.4-5.6,1.4 C131.7,19.8,129.5,19.2,129.3,16.9z M132.5,11.1c1.5,0,2.8,0.7,3,2.7h-6.2C129.6,11.9,131,11.1,132.5,11.1z M43.5,11.4 c1.2-1,1.8-2.4,1.8-4c0-3.1-3-6.3-7.3-6.3h-8v22.8h10.4c4.1,0,7.2-3,7.2-6.8C47.5,14.8,46.5,12.3,43.5,11.4z M35.2,5.7h2.4 C39,5.7,40,6.8,40,8c0,1.2-1,2.2-2.5,2.2h-2.4V5.7z M39.9,19.2h-4.7v-4.6h4.7c1.4,0,2.5,1,2.5,2.3C42.4,18.1,41.3,19.2,39.9,19.2z" }), h("path", { key: '5eafdce6e3df36f4ff0658bcdf1a0dd7896014c7', d: "M13.5,1l13.5,23H0L13.5,1z" }))), h("biggive-misc-icon", { key: '0f3f96d6e950627e6946a22ccda47c4d1cf0160b', class: "bx bx-x", "background-colour": "transparent", "icon-colour": "black", icon: "MenuClose", onClick: this.closeMobileMenu })), h("div", { key: '9e4ed5519e9dd8628414d4b74f41600e8f091c8a', id: "nav-primary" }, h("ul", { key: '8b15c56a009beb86a1c22dee0004b73d564ffbe6', class: "links", slot: "nav-primary" }, h("li", { key: 'fd4807dc040e13dfab37514b6d27bd646a4b91fb' }, h("a", { key: 'f5032471867e8df5dd598e9cadbb6fb0f020ca0c', href: makeURL('Donate', this.donateUrlPrefix, 'explore') }, "Explore Campaigns")), h("li", { key: '8a898247cb953353422adc0b4ac50cc5aba27028' }, h("a", { key: '4ced489490a59b9b7ea7fe03cfcd7872d7d7fb73', href: makeURL('Blog', this.blogUrlPrefix, 'charities') }, "For Charities")), h("li", { key: '51daab569d3d5f1b7a8f1b671cba37d35c76ce87' }, h("a", { key: 'fa7324ec513c299e0c814d3376c07cd64a183bb7', href: makeURL('Blog', this.blogUrlPrefix, 'funders') }, "For Funders")), h("li", { key: '708ad9f91b06ff3fa45ea7516bef37fc8c19feba' }, h("a", { key: 'd6fdd6528f65ac9d0855273da69b2915b0836eb0', onClick: this.noNav }, "Match Funding", h("biggive-misc-icon", { key: '79d6ac442b88d15a39224f7bf53d3dff9a293386', class: "bx bxs-chevron-down sub-menu-arrow arrow", "background-colour": "white", "icon-colour": "black", icon: "CaretRight" })), h("ul", { key: '0a4d3e369bba6f535001d7aa23e69efbe36649e9', class: "sub-menu" }, h("li", { key: '0ba75300ff4668d12490854ccd99ea348e402fba' }, h("a", { key: '52f0cb88422b41295c8c751f2f6e097e077e7e87', href: makeURL('Blog', this.blogUrlPrefix, 'match-funding-explained') }, "Match Funding Explained")), h("li", { key: '7af91804e464e5fcee70f3352005f0d7ec7a6be3' }, h("a", { key: 'e595f8670cabb6ca0ead99fb3bdbe77fbc2a6fe0', href: makeURL('Blog', this.blogUrlPrefix, 'impact') }, "Match Funding Impact")), h("li", { key: '8a0266ffea10dc8822df7a7534b3a89439f1599f', class: "more" }, h("a", { key: '2f8466bfc042c2387420a3ccaf9505e865fc2a13', onClick: this.noNav }, "Match Funding Opportunities", h("biggive-misc-icon", { key: '9d5d049e9989d97e2fcb87f728d03203ee1de28c', class: "bx bxs-chevron-down sub-sub-menu-arrow arrow", "background-colour": "white", "icon-colour": "black", icon: "CaretRight" })), h("ul", { key: '5556d60d0b23b76a8f78373aa08fe852ae14ac24', class: "sub-sub-menu" }, h("li", { key: 'c815d5dc8803372d3b5206348d4a0fb3c22b3170' }, h("a", { key: '3d9ac5a817b4ed5d259b678850033771e354bf4b', href: makeURL('Blog', this.blogUrlPrefix, 'christmas-challenge'), class: "icon-christmas" }, "Christmas Challenge")), h("li", { key: '1fd2ba71e396cf54aa5def7a7267fa22543a583a' }, h("a", { key: '3ba083e5538c9e4126df6e5e96223b5b1452d271', href: makeURL('Blog', this.blogUrlPrefix, 'champions-for-children'), class: "icon-children" }, "Champions for Children")), h("li", { key: '77ac78d1454f125f2b0007f0fc7615103444dfe1' }, h("a", { key: '73a0aa3a956d1a07de7a3f12190badd802b3bcd5', href: makeURL('Blog', this.blogUrlPrefix, 'green-match-fund'), class: "icon-green-match" }, "Green Match Fund")), h("li", { key: 'fd97f32610578ac18f9f045c9c6110345c2251fc' }, h("a", { key: '34f5d3648fe223d4c4b0d15f41cc9dcd64ad6c19', href: makeURL('Blog', this.blogUrlPrefix, 'women-girls-match-fund'), class: "icon-women-girls" }, "Women & Girls Match Fund")), h("li", { key: '74f9025678cd14b615d7d882312211060a683af4' }, h("a", { key: '684f326f8d1bbef280a5ee5568ec10f1138ef05f', href: makeURL('Blog', this.blogUrlPrefix, 'kind2mind/'), class: "icon-mental-health" }, "Kind\u00B2Mind")), h("li", { key: '33aee411c616d5d4b4cfd93fc1f0c57e287b26a1' }, h("a", { key: 'cb6d75ad743979137c1a7c19314d9455a6f443f8', href: makeURL('Blog', this.blogUrlPrefix, 'artsforimpact/'), class: "icon-arts-impact" }, "Arts for Impact")), h("li", { key: '765707d2ad1e1c354c020d65bda923b5944271d0' }, h("a", { key: 'b0d76f83b577b711003bc9e5c12c2de6ea3a1d16', href: makeURL('Blog', this.blogUrlPrefix, 'anchor-match-fund/'), class: "icon-anchor-match" }, "Anchor Match Fund")), h("li", { key: '8ba9089664d7bbc1a2890202b02efe98508f4177' }, h("a", { key: 'fa42f4dc7494c076bde3a25feb741374320970c3', href: makeURL('Blog', this.blogUrlPrefix, 'emergency-campaigns/'), class: "icon-emergency" }, "Emergency Match Fund")))), h("li", { key: '4b83d39f69ea5faa3328c6bb509f2d78bee0d354' }, h("a", { key: 'dbbdd4b6d0d002160c1ccf86ac26607eac8ff0eb', href: makeURL('Blog', this.blogUrlPrefix, 'run-your-own-campaign/)') }, "Run your match funding campaign")))), h("li", { key: '0c42e00944a44a4c06bbf72c347a249b59a4e96b' }, h("a", { key: '3a69959166c95687d0bdd973c84eeaeee85f3672', onClick: this.noNav }, "About Us", h("biggive-misc-icon", { key: '6593a0785da87e4a694145674637c931a9af0ef1', class: "bx bxs-chevron-down sub-menu-arrow arrow", "background-colour": "white", "icon-colour": "black", icon: "CaretRight" })), h("ul", { key: 'e6de97772b79b03fd296cafcfae91259a8ae234c', class: "sub-menu" }, h("li", { key: '66eb7601c50dfc77522117b580d1d19ed0883341' }, h("a", { key: '4f0d1808f9f3d347b0bd330c56d03d2bc63be8e8', href: makeURL('Blog', this.blogUrlPrefix, 'our-people') }, "Our People")), h("li", { key: '12fa94d5df3288587e0f46db38466582ac24175c' }, h("a", { key: '0cbb3cc07bf1e9d289857d7cf0c50e263f1269fd', href: makeURL('Blog', this.blogUrlPrefix, 'our-story') }, "Our Story")), h("li", { key: 'e957e179db076c742f07bd3595fcbb6dc5a34725' }, h("a", { key: '23a7397768439b99eaf3efd62d1afa12dec94eb9', href: makeURL('Blog', this.blogUrlPrefix, 'donation-funds') }, "Donate by Bank Transfer")), h("li", { key: 'c818d5e3e75d07c05274f0780611281b1f06ed1b' }, h("a", { key: '63c31ab749055ed0a3f41747a912c6210b98350c', href: makeURL('Blog', this.blogUrlPrefix, 'our-fees') }, "Our Fees")), h("li", { key: '459701e286d82f95a6f3bd7bcd5a09eb57174c61' }, h("a", { key: 'aee6be6cbac7d85c258aaaa4a498680cf0f26efd', href: makeURL('Blog', this.blogUrlPrefix, 'faqs') }, "FAQs")))), h("li", { key: '2f57bd003b53c234e90afd5df47bc69f902be413' }, h("a", { key: 'd8fcb913cc5ecd1368c79ad113cb3c43646d28b0', onClick: this.noNav }, "Resources", h("biggive-misc-icon", { key: '9ec79c9f296c66c3e3ad78754aaf9c7d46ca2074', class: "bx bxs-chevron-down sub-menu-arrow arrow", "background-colour": "white", "icon-colour": "black", icon: "CaretRight" })), h("ul", { key: '2ba67d0f687cf257577a29e008163d89bf29f40c', class: "sub-menu" }, h("li", { key: 'e9365b0f57d09890d8eaf338e94b72a7fd52257b' }, h("a", { key: 'ed62f2e5e6312d4a6d7f47b49957954ff25f53e7', href: makeURL('Blog', this.blogUrlPrefix, 'case-studies') }, "Case Studies")), h("li", { key: '01a44a62d27c6cb9ca457a95d5293c47c10b6e8c' }, h("a", { key: '143d38f2f4c99502e1f9778782971d5025f950fe', href: makeURL('Blog', this.blogUrlPrefix, 'blog') }, "Blog")), h("li", { key: '11c8bf0cefd0f4503370c8b130e6d783468798d2' }, h("a", { key: 'f4d19eecd0d66a14ec7d577466ebce15ec0cd607', href: makeURL('Blog', this.blogUrlPrefix, 'reports-insights') }, "Reports & Insights")), h("li", { key: 'bf4d7626dbcc65e9214dd4a2a9a6356bf7c4df0b' }, h("a", { key: '4f857f00e95f6de503faaa66f18d30833b0b86fc', href: makeURL('Blog', this.blogUrlPrefix, 'press') }, "Press"))))), h("div", { key: '1d8e8b778e7873adb8168a330d3f94795942aa37', class: "mobile-only" }, secondaryNavLinksB)), h("div", { key: '97f62ec98b90635de645a93164eb3084fb91b4d0', class: "mobile-social-icon-wrap mobile-only" }, h("biggive-social-icon", { key: '411bdc3bbe72d54c616cb4278fdec07a57d38d13', service: "Facebook", url: "https://www.facebook.com/BigGive.org", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '922342c088eebb06035ebabfafe0e1f98b367ab9', service: "Twitter", url: "https://x.com/BigGive", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: 'd7a784a98057c3a9c914cf8ef2acc7209f4722f3', service: "LinkedIn", url: "https://uk.linkedin.com/company/big-give", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '8214734705acc8cf687d39bfe37704bfeedf8040', service: "YouTube", url: "https://www.youtube.com/channel/UC9_wH1aaTuZurJ-F9R8GDcA", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '8921b7e31fcfa7ae1b5ac1be8c1d4aa3c7fc11b2', service: "Instagram", url: "https://www.instagram.com/biggiveorg", "background-colour": "tertiary", "icon-colour": "black" })))))));
115
+ const secondaryNavLinksForDesktop = this.getSecondaryNavLinks('desktop');
116
+ const secondaryNavLinksForMobile = this.getSecondaryNavLinks('mobile');
117
+ return (h(Host, { key: '5799990ab366e877d1cfd8ba28876b156b9c9d25' }, h("div", { key: '70b07e47876ff4c9fd6acf640a60537e04cccca7', class: "row row-top" }, h("div", { key: 'c10ba0aa6cee48cf4ef0bac93294cb8f442bdedf', class: "social-icon-wrap" }, h("biggive-social-icon", { key: '26d27c2833bba233b2310c9bb80e73a962241170', service: "Facebook", url: "https://www.facebook.com/BigGive.org", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '199152e500705fbd38183e7de7463a6a084fd972', service: "Twitter", url: "https://x.com/BigGive", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '5f7e882b9e70e3b0e883e433dbec65100982a5c1', service: "LinkedIn", url: "https://uk.linkedin.com/company/big-give", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '9ed77739a464ef741da900e605e9ce2a6d730339', service: "YouTube", url: "https://www.youtube.com/channel/UC9_wH1aaTuZurJ-F9R8GDcA", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '4c435606fc44cba5be8059f2b315334c398d2907', service: "Instagram", url: "https://www.instagram.com/biggiveorg", "background-colour": "tertiary", "icon-colour": "black" })), h("div", { key: '79981d9fa6255d9a2a92744438c2e1745d648e56', class: "nav-secondary" }, secondaryNavLinksForDesktop)), h("nav", { key: 'bd722927629e5ff41412b883580adb588405f794', role: "navigation", "aria-label": "Main Menu" }, h("div", { key: '0f06af9986e4d921a184af39dedf0eefca1f133c', class: "navbar" }, h("div", { key: '0d8b2553d91c469832e7e8336331461991ef0e24', class: "logo" }, h("a", { key: '61c32bb0cbf9e764b75b49684dd71f8ca28d93da', href: this.donateUrlPrefix + homePageLink, "aria-label": "Home" }, h("svg", { key: '4987f595f546ffdfd21236fb7410519800b5c1a6', version: "1.1", x: "0px", y: "0px", viewBox: "0 0 140.9 30" }, h("path", { key: '307b23850a343acdba92dfc35334a9b98dd03b02', d: "M51.9,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3C53.6,0,55,1.4,55,3S53.6,6.1,51.9,6.1z M49.3,23.8h5V7.7h-5V23.8z M68.5,7.7v1 c-0.8-0.7-2.3-1.4-4.1-1.4c-4.5,0-8.2,3.2-8.2,7.9c0,4.7,3.7,7.9,8.2,7.9c1.8,0,3.4-0.5,4.1-1.4v0.9c0,2.1-1.9,3.1-4.4,3.1 c-2.2,0-4-0.5-5.8-1.4V29c2.1,0.7,4.4,1,6,1c5,0,9.2-2,9.2-7.3v-15L68.5,7.7L68.5,7.7z M68.5,17.2c-0.7,1-1.9,1.4-3.2,1.4 c-2.1,0-3.8-1.2-3.8-3.4c0-2.2,1.7-3.4,3.8-3.4c1.3,0,2.5,0.6,3.2,1.5V17.2z M88.1,24.2c4,0,6.4-0.7,8.5-2V10h-11v4.7h5.8v4.1 c-0.8,0.2-1.8,0.4-3.2,0.4c-4.9,0-7.3-3.2-7.3-6.8c0-3.7,2.8-6.8,8-6.8c2.2,0,4.3,0.6,5.8,1.4V1.7c-1.5-0.6-3.4-1.1-6.1-1.1 c-7.6,0-13,5.3-13,11.8C75.5,19.1,80.4,24.2,88.1,24.2z M101.4,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3c1.8,0,3.2,1.4,3.2,3 S103.1,6.1,101.4,6.1z M98.8,23.8h5V7.7h-5V23.8z M115.1,15l-4.3-7.2H105l10.1,16.4l10.1-16.4h-5.8L115.1,15z M129.3,16.9h11.6 c0.1-7-4.2-9.5-8.4-9.5c-4.5,0-8.5,2.6-8.6,8.4c0,5.6,4.1,8.4,9.1,8.4c2.2,0,4.4-0.3,6.4-1.3v-4.4c-2.5,1.4-4.1,1.4-5.6,1.4 C131.7,19.8,129.5,19.2,129.3,16.9z M132.5,11.1c1.5,0,2.8,0.7,3,2.7h-6.2C129.6,11.9,131,11.1,132.5,11.1z M43.5,11.4 c1.2-1,1.8-2.4,1.8-4c0-3.1-3-6.3-7.3-6.3h-8v22.8h10.4c4.1,0,7.2-3,7.2-6.8C47.5,14.8,46.5,12.3,43.5,11.4z M35.2,5.7h2.4 C39,5.7,40,6.8,40,8c0,1.2-1,2.2-2.5,2.2h-2.4V5.7z M39.9,19.2h-4.7v-4.6h4.7c1.4,0,2.5,1,2.5,2.3C42.4,18.1,41.3,19.2,39.9,19.2z" }), h("path", { key: 'dda27a2b2e79a55c6533ddf57bd4c885f0380bc2', d: "M13.5,1l13.5,23H0L13.5,1z" })))), h("biggive-misc-icon", { key: '1d9780f877084fb28f435ad506b29426fa3f0a0d', class: "bx bx-menu", "background-colour": "white", "icon-colour": "black", icon: "MenuOpen", onClick: this.openMobileMenu }), h("div", { key: 'a776b674f9f453ba193a33b619cc9441c66c4af1', class: "nav-links" }, h("div", { key: '2a2df60dbd2f06d189dc144b7937b616dc58631d', class: "sidebar-logo" }, h("a", { key: '847172aabb0fa018dbfed38c499f3eb9581c5cc1', href: this.donateUrlPrefix + homePageLink, "aria-label": "Home" }, h("svg", { key: '36b877a2b9926a38f9982439da898eac680cee20', version: "1.1", x: "0px", y: "0px", viewBox: "0 0 140.9 30", id: "mobileLogo" }, h("path", { key: 'bd7bd8d2b485928d7d7fc0c9c54e78be954bc921', d: "M51.9,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3C53.6,0,55,1.4,55,3S53.6,6.1,51.9,6.1z M49.3,23.8h5V7.7h-5V23.8z M68.5,7.7v1 c-0.8-0.7-2.3-1.4-4.1-1.4c-4.5,0-8.2,3.2-8.2,7.9c0,4.7,3.7,7.9,8.2,7.9c1.8,0,3.4-0.5,4.1-1.4v0.9c0,2.1-1.9,3.1-4.4,3.1 c-2.2,0-4-0.5-5.8-1.4V29c2.1,0.7,4.4,1,6,1c5,0,9.2-2,9.2-7.3v-15L68.5,7.7L68.5,7.7z M68.5,17.2c-0.7,1-1.9,1.4-3.2,1.4 c-2.1,0-3.8-1.2-3.8-3.4c0-2.2,1.7-3.4,3.8-3.4c1.3,0,2.5,0.6,3.2,1.5V17.2z M88.1,24.2c4,0,6.4-0.7,8.5-2V10h-11v4.7h5.8v4.1 c-0.8,0.2-1.8,0.4-3.2,0.4c-4.9,0-7.3-3.2-7.3-6.8c0-3.7,2.8-6.8,8-6.8c2.2,0,4.3,0.6,5.8,1.4V1.7c-1.5-0.6-3.4-1.1-6.1-1.1 c-7.6,0-13,5.3-13,11.8C75.5,19.1,80.4,24.2,88.1,24.2z M101.4,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3c1.8,0,3.2,1.4,3.2,3 S103.1,6.1,101.4,6.1z M98.8,23.8h5V7.7h-5V23.8z M115.1,15l-4.3-7.2H105l10.1,16.4l10.1-16.4h-5.8L115.1,15z M129.3,16.9h11.6 c0.1-7-4.2-9.5-8.4-9.5c-4.5,0-8.5,2.6-8.6,8.4c0,5.6,4.1,8.4,9.1,8.4c2.2,0,4.4-0.3,6.4-1.3v-4.4c-2.5,1.4-4.1,1.4-5.6,1.4 C131.7,19.8,129.5,19.2,129.3,16.9z M132.5,11.1c1.5,0,2.8,0.7,3,2.7h-6.2C129.6,11.9,131,11.1,132.5,11.1z M43.5,11.4 c1.2-1,1.8-2.4,1.8-4c0-3.1-3-6.3-7.3-6.3h-8v22.8h10.4c4.1,0,7.2-3,7.2-6.8C47.5,14.8,46.5,12.3,43.5,11.4z M35.2,5.7h2.4 C39,5.7,40,6.8,40,8c0,1.2-1,2.2-2.5,2.2h-2.4V5.7z M39.9,19.2h-4.7v-4.6h4.7c1.4,0,2.5,1,2.5,2.3C42.4,18.1,41.3,19.2,39.9,19.2z" }), h("path", { key: '9fcf76895751b0928492b3e3e11c96989ebfd9ae', d: "M13.5,1l13.5,23H0L13.5,1z" }))), h("biggive-misc-icon", { key: 'b83efb884fbbc4899155184170fa6e24b16079a8', class: "bx bx-x", "background-colour": "transparent", "icon-colour": "black", icon: "MenuClose", onClick: this.closeMobileMenu })), h("div", { key: 'be7571e6a4382439c94ca6c42cc01d0060f5b41a', id: "nav-primary" }, h("ul", { key: '992e6e15ac026b3742baf5cfe10316b4d6c7d6d7', class: "links", slot: "nav-primary" }, h("li", { key: '60fe8649e6d97a5d2c3400b1f9f899fe4cc3fa6c' }, h("a", { key: '9ca085499f70ce4c8d4a3af51ee3425257aba432', href: makeURL('Donate', this.donateUrlPrefix, 'explore') }, "Explore Campaigns")), h("li", { key: '5c2e975c97c8dd3500d5c911ae14490d5b441007' }, h("a", { key: '645554e81c34fdb829a6eeb9820f4a55b4c51593', href: makeURL('Blog', this.blogUrlPrefix, 'charities') }, "For Charities")), h("li", { key: '1fa63d92d677e1c919945d14255a7fa61c5d6f84' }, h("a", { key: '060573ba979346d5fbe95594e76a2d467f9f83f7', href: makeURL('Blog', this.blogUrlPrefix, 'funders') }, "For Funders")), h("li", { key: 'f67efc059ae9309ca84ceee5ca77df073020698d' }, h("a", { key: '67f2e167ea18d03a409d390c77234f8352c8ba3d', onClick: this.noNav }, "Match Funding", h("biggive-misc-icon", { key: '6270cef2799a03ade4aeb7bc5b3bb64dc643b370', class: "bx bxs-chevron-down sub-menu-arrow arrow", "background-colour": "white", "icon-colour": "black", icon: "CaretRight" })), h("ul", { key: '3acc3c4ade7600df34f5fc5e1ebfa5058639bb5c', class: "sub-menu" }, h("li", { key: '59fc188916401c9202a575db5da6906037862557' }, h("a", { key: '86368e30ce6229f3ae3260f63459c36ddc52f385', href: makeURL('Blog', this.blogUrlPrefix, 'match-funding-explained') }, "Match Funding Explained")), h("li", { key: '41cfde5c5492626cc5873030fcb079930e49c859' }, h("a", { key: '085ededda262a28b704f18d27edbd24a4305d3df', href: makeURL('Blog', this.blogUrlPrefix, 'impact') }, "Match Funding Impact")), h("li", { key: 'fdb426f12d3c2096d885fde071276726e295ab21', class: "more" }, h("a", { key: 'f48bab54ac9c9b454dbb3dbbe6e887633425ca26', onClick: this.noNav }, "Match Funding Opportunities", h("biggive-misc-icon", { key: '87a98bcddc633461eed147a6dd2ba878155fa6a0', class: "bx bxs-chevron-down sub-sub-menu-arrow arrow", "background-colour": "white", "icon-colour": "black", icon: "CaretRight" })), h("ul", { key: '9089f65fd1b01d91ec30c86294aca5ccb0707b99', class: "sub-sub-menu" }, h("li", { key: 'bf0fe3566cb0a333de3b96727deae9ef139d7e83' }, h("a", { key: 'd0887a7cbc3b12a037523f863977419e96f275ff', href: makeURL('Blog', this.blogUrlPrefix, 'christmas-challenge'), class: "icon-christmas" }, "Christmas Challenge")), h("li", { key: '9cc047d13a94a49a20c2baa9ac12b73d110cfa0f' }, h("a", { key: '8e9c12e6f4ee011cf59db0ee81322c3787152534', href: makeURL('Blog', this.blogUrlPrefix, 'champions-for-children'), class: "icon-children" }, "Champions for Children")), h("li", { key: '3b4996f001bd8e85e95e08c0302f781fd16c0e7b' }, h("a", { key: '22cd4982254aa7c0c0f4a0b41ee79e7f45da56f2', href: makeURL('Blog', this.blogUrlPrefix, 'green-match-fund'), class: "icon-green-match" }, "Green Match Fund")), h("li", { key: '69b2906ec6365413caaee5c62af5789876408f9d' }, h("a", { key: 'fbc2f030eda023ecb5fe0cd30d4fd094e62a4efb', href: makeURL('Blog', this.blogUrlPrefix, 'women-girls-match-fund'), class: "icon-women-girls" }, "Women & Girls Match Fund")), h("li", { key: '0863ce6e2ff5da2d18692b1b73dc728ed33c5f2f' }, h("a", { key: '3837fd2e892d6beee3efa238c054854210c3c94d', href: makeURL('Blog', this.blogUrlPrefix, 'kind2mind/'), class: "icon-mental-health" }, "Kind\u00B2Mind")), h("li", { key: '3bdc0a9c7af74388018c3c77ddcab93030c8b13d' }, h("a", { key: '2dff967dffcfcd339a1b3dd47995b538e2757925', href: makeURL('Blog', this.blogUrlPrefix, 'artsforimpact/'), class: "icon-arts-impact" }, "Arts for Impact")), h("li", { key: 'bc817bd718d1853205108ea229c90cb39c172e29' }, h("a", { key: '8de5a2fa7ae7e770494d89538a3fb6adf6f39cbb', href: makeURL('Blog', this.blogUrlPrefix, 'anchor-match-fund/'), class: "icon-anchor-match" }, "Anchor Match Fund")), h("li", { key: 'd3a1e25ce4ad774dd93a48b5ae42f8efb67c855f' }, h("a", { key: 'f739a3d86912d0477370d4730741fcbf913c8656', href: makeURL('Blog', this.blogUrlPrefix, 'emergency-campaigns/'), class: "icon-emergency" }, "Emergency Match Fund")))), h("li", { key: '0bd0c557ea661e175ecd06a654426a4d9774d80b' }, h("a", { key: '207984a7b894cd83647e89bb10364e8bb7990532', href: makeURL('Blog', this.blogUrlPrefix, 'run-your-own-campaign/)') }, "Run your match funding campaign")))), h("li", { key: '0b422f0c0d5cd097cfed0564d7bd4f7a240fa77b' }, h("a", { key: '115734023289b3fc50f44fd04267013b465e87a8', onClick: this.noNav }, "About Us", h("biggive-misc-icon", { key: '18588157838a3a5b077bde2a3ba17086e5896220', class: "bx bxs-chevron-down sub-menu-arrow arrow", "background-colour": "white", "icon-colour": "black", icon: "CaretRight" })), h("ul", { key: '9066eec7f26bdb39436db9f6c5a800ab3dc457f2', class: "sub-menu" }, h("li", { key: '8066afb872f70326ecd3956d2c41b99995ae60ab' }, h("a", { key: '4fabf2e465032877abe7659eeeec22e0c189fd0e', href: makeURL('Blog', this.blogUrlPrefix, 'our-people') }, "Our People")), h("li", { key: '8f757a71ddef672117a93512e30e9611f857c12b' }, h("a", { key: '8713e50475bebed44b8ca7b3eb4aae00db2bb158', href: makeURL('Blog', this.blogUrlPrefix, 'our-story') }, "Our Story")), h("li", { key: '9832eb293493e779b35db688d0e6da8840f9f573' }, h("a", { key: 'd3ed08441cec5390cd699eb6428c7eb66286d58d', href: makeURL('Blog', this.blogUrlPrefix, 'donation-funds') }, "Donate by Bank Transfer")), h("li", { key: '7267779eb74ca8d933bedf9714e16b76d3716815' }, h("a", { key: 'd347419fe8a5515a957ef86b9494ee3424fdf5bd', href: makeURL('Blog', this.blogUrlPrefix, 'our-fees') }, "Our Fees")), h("li", { key: '40608c7a390a3465489eee2c73ad210712367902' }, h("a", { key: '7fb9bc2744a7d20e4e336a3804d1224e907d2a5c', href: makeURL('Blog', this.blogUrlPrefix, 'faqs') }, "FAQs")))), h("li", { key: 'd6ef26e5964eb8edc14b03f7ac8330de703d6b70' }, h("a", { key: '010eee1fb258229c06b970f1cfdd59e033bd9dd1', onClick: this.noNav }, "Resources", h("biggive-misc-icon", { key: 'e5f28fd856dbc46268acddc7198e3a53f72b8f5e', class: "bx bxs-chevron-down sub-menu-arrow arrow", "background-colour": "white", "icon-colour": "black", icon: "CaretRight" })), h("ul", { key: '8272b5f417b16128b089e219051d58a1e1a8db4d', class: "sub-menu" }, h("li", { key: '74483e9d4e7b9036ad3292a6637d781b52dc82c5' }, h("a", { key: '464879e99e865a91304552ab018be8406d095c86', href: makeURL('Blog', this.blogUrlPrefix, 'case-studies') }, "Case Studies")), h("li", { key: '1c5d3bf6ba61fd798e5175e5c57b06d5c15b3d48' }, h("a", { key: '8ca272fb2fd7403d4cfc5bd3a94b53d49deeebd5', href: makeURL('Blog', this.blogUrlPrefix, 'blog') }, "Blog")), h("li", { key: 'd2c0f9ec8f7ce327005d24a9a00aa92cb9c9e8dd' }, h("a", { key: '8b4f93b1f75228b3bc2350398d2e94e8917d2d41', href: makeURL('Blog', this.blogUrlPrefix, 'reports-insights') }, "Reports & Insights")), h("li", { key: '2bfadc47b5fb1365d97fe523b71d960722a48e87' }, h("a", { key: '95a8407c3ebb548be4f966cc36539ed85cfa2719', href: makeURL('Blog', this.blogUrlPrefix, 'press') }, "Press"))))), h("div", { key: '3e1df30d58a442adaf172af82073b59235198aba', class: "mobile-only" }, secondaryNavLinksForMobile)), h("div", { key: '48c3b119f7c25855b26ac2ad32d113b0134e1d05', class: "mobile-social-icon-wrap mobile-only" }, h("biggive-social-icon", { key: '4bbe4dc0e718e75a7ee2b50015981f3089aa7dc9', service: "Facebook", url: "https://www.facebook.com/BigGive.org", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '48f02dd12185b2b0ca36b8eb426773fe5a1e7512', service: "Twitter", url: "https://x.com/BigGive", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: '6b6cf016bcb16c79966cd9daa4be20c754ee8609', service: "LinkedIn", url: "https://uk.linkedin.com/company/big-give", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: 'b479bc806f56242a0e86c1b60c9caac2c1f86f44', service: "YouTube", url: "https://www.youtube.com/channel/UC9_wH1aaTuZurJ-F9R8GDcA", "background-colour": "tertiary", "icon-colour": "black" }), h("biggive-social-icon", { key: 'e25e83ce4661c2c5c821bb4eac10f30262b54522', service: "Instagram", url: "https://www.instagram.com/biggiveorg", "background-colour": "tertiary", "icon-colour": "black" })))))));
98
118
  }
99
119
  static get is() { return "biggive-main-menu"; }
100
120
  static get encapsulation() { return "shadow"; }
@@ -202,6 +222,24 @@ export class BiggiveMainMenu {
202
222
  }
203
223
  };
204
224
  }
225
+ static get events() {
226
+ return [{
227
+ "method": "logoutClicked",
228
+ "name": "logoutClicked",
229
+ "bubbles": true,
230
+ "cancelable": true,
231
+ "composed": true,
232
+ "docs": {
233
+ "tags": [],
234
+ "text": ""
235
+ },
236
+ "complexType": {
237
+ "original": "void",
238
+ "resolved": "void",
239
+ "references": {}
240
+ }
241
+ }];
242
+ }
205
243
  static get methods() {
206
244
  return {
207
245
  "closeMobileMenuFromOutside": {
@@ -1 +1 @@
1
- {"version":3,"file":"biggive-main-menu.js","sourceRoot":"","sources":["../../../src/components/biggive-main-menu/biggive-main-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Method, Prop } from '@stencil/core';\nimport { makeURL } from '../../util/helper-methods';\n\n@Component({\n tag: 'biggive-main-menu',\n styleUrl: 'biggive-main-menu.scss',\n shadow: true,\n})\nexport class BiggiveMainMenu {\n private lastScrollHeight = 0;\n\n @Element() host: HTMLBiggiveMainMenuElement;\n\n // URL prefixes vary by environment, and components library is not best placed to know what they are, so we\n // take them as props. But somehow on first render the prop passed in doesn't seem to be used, so the defaults\n // below are the values currently used in our prod site. They should be replaced by other values in other\n // environments.\n @Prop() blogUrlPrefix: string = 'https://biggive.org';\n\n @Prop() donateUrlPrefix: string = 'https://donate.biggive.org';\n\n @Prop() experienceUrlPrefix: string = 'https://community.biggive.org';\n\n @Prop() myAccountFlagEnabled = false;\n\n /**\n * Whether the current user is logged in (i.e. is assumed to have a valid JWT). They get links to some\n * extra content if they are.\n */\n @Prop() isLoggedIn = false;\n\n @Method()\n async closeMobileMenuFromOutside() {\n const mobileMenu = this.host.shadowRoot!.querySelector<HTMLElement>('.nav-links');\n mobileMenu!.style.left = '-100%';\n }\n\n private openMobileMenu = () => {\n const mobileMenu = this.host.shadowRoot!.querySelector<HTMLElement>('.nav-links');\n mobileMenu!.style.left = '0';\n };\n\n private closeMobileMenu = () => {\n const mobileMenu = this.host.shadowRoot!.querySelector<HTMLElement>('.nav-links');\n mobileMenu!.style.left = '-100%';\n };\n\n private noNav(event: Event) {\n event.preventDefault();\n }\n\n private setHeaderSize() {\n if (this.host.scrollHeight === this.lastScrollHeight) {\n // Some browsers fire 'resize' overzealously on scroll; we don't want to cause extra paints if nothing\n // relevant changed.\n return;\n }\n\n this.lastScrollHeight = this.host.scrollHeight;\n\n // Some resize edge cases lead Firefox, and maybe others, to go haywire and get a host offset\n // height of millions of pixels, presumably due to a layout logic loop. So for as long as we use\n // this body padding workaround, we need a safe maximum value, currently 130px, beyond which\n // we will never further displace the main content.\n // (Possibly scrollHeight could have the same issue, not tested.)\n // We have also seen intermittent scrolling scenarios where `scrollHeight` is spuriously less than 60px,\n // maybe related to browsers / OSes with \"overscroll\" features. So we also now set a fixed minimum of 60px.\n const scrollHeight = isNaN(this.host.scrollHeight) ? 60 : Math.max(60, this.host.scrollHeight);\n\n document.body.style.paddingTop = Math.min(130, scrollHeight).toString() + 'px';\n }\n\n componentDidLoad() {\n this.host.classList.add('fixed');\n window.addEventListener('resize', () => {\n this.setHeaderSize();\n });\n this.setHeaderSize();\n\n const subMenuElements = this.host.shadowRoot!.querySelectorAll<HTMLElement>('.sub-menu');\n if (subMenuElements.length === 0) {\n throw new Error('Missing subMenuElements');\n }\n\n subMenuElements.forEach(subMenuElement => {\n // the subMenuLink is a sibling element to the actual sub-menu\n const subMenuLink = subMenuElement.parentElement?.querySelector('a');\n\n subMenuLink!.onclick = () => {\n const subMenuArrow = subMenuLink!.querySelector('.sub-menu-arrow');\n subMenuArrow!.classList.toggle('transform-90');\n subMenuElement.classList.toggle('display-sub-menu');\n };\n });\n\n const subSubMenuElements = this.host.shadowRoot!.querySelectorAll<HTMLElement>('.sub-sub-menu');\n\n if (subSubMenuElements.length === 0) {\n throw new Error('Missing subSubMenuElements');\n }\n\n subSubMenuElements.forEach(subSubMenuElement => {\n // the subSubMenuLink is a sibling element to the actual sub-sub-menu\n const subSubMenuLink = subSubMenuElement!.parentElement!.querySelector('a');\n\n subSubMenuLink!.onclick = () => {\n const subMenuArrow = subSubMenuLink!.querySelector('.sub-sub-menu-arrow');\n subMenuArrow!.classList.toggle('transform-90');\n subSubMenuElement.classList.toggle('display-sub-menu');\n };\n });\n }\n\n private getSecondaryNavLinks() {\n return (\n <ul>\n {this.myAccountFlagEnabled && !this.isLoggedIn && (\n <li>\n <a href={makeURL('Donate', this.donateUrlPrefix, 'login')}>Donor Login</a>\n </li>\n )}\n {this.isLoggedIn && (\n <li>\n <a href={makeURL('Donate', this.donateUrlPrefix, 'my-account')}>My Account</a>\n </li>\n )}\n <li>\n <a href={makeURL('Experience', this.experienceUrlPrefix, 'charities/s/login')}>Charity Login</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'support')}>Support</a>\n </li>\n </ul>\n );\n }\n\n render() {\n /** ten minutes in advance to account for a *very* slow browser following the link and/or clock skew.\n * There's not really any harm in doing this early unless its soo early that people start sharing the noredirect link more than we'd like.\n */\n const CCOpenDate = new Date('2024-12-02T23:50:00+00:00');\n\n /**\n * Ten minutes late. Again doing this late doesn't hurt.\n */\n const CCCloseDate = new Date('2024-12-10T12:10:00+00:00');\n\n const now = new Date();\n\n const ccIsOpenNowIsh = now > CCOpenDate && now < CCCloseDate;\n\n const homePageLink = ccIsOpenNowIsh ? '/?noredirect' : '/';\n\n // calling same function twice because using same JSX node twice is not allowed\n // see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes\n const secondaryNavLinksA = this.getSecondaryNavLinks();\n const secondaryNavLinksB = this.getSecondaryNavLinks();\n\n return (\n <Host>\n <div class=\"row row-top\">\n <div class=\"social-icon-wrap\">\n <biggive-social-icon service=\"Facebook\" url=\"https://www.facebook.com/BigGive.org\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon service=\"Twitter\" url=\"https://x.com/BigGive\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon service=\"LinkedIn\" url=\"https://uk.linkedin.com/company/big-give\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon\n service=\"YouTube\"\n url=\"https://www.youtube.com/channel/UC9_wH1aaTuZurJ-F9R8GDcA\"\n background-colour=\"tertiary\"\n icon-colour=\"black\"\n ></biggive-social-icon>\n <biggive-social-icon service=\"Instagram\" url=\"https://www.instagram.com/biggiveorg\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n </div>\n <div class=\"nav-secondary\">{secondaryNavLinksA}</div>\n </div>\n <nav role=\"navigation\" aria-label=\"Main Menu\">\n <div class=\"navbar\">\n <div class=\"logo\">\n <a href={this.donateUrlPrefix + homePageLink} aria-label=\"Home\">\n <svg version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 140.9 30\">\n <path d=\"M51.9,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3C53.6,0,55,1.4,55,3S53.6,6.1,51.9,6.1z M49.3,23.8h5V7.7h-5V23.8z M68.5,7.7v1 c-0.8-0.7-2.3-1.4-4.1-1.4c-4.5,0-8.2,3.2-8.2,7.9c0,4.7,3.7,7.9,8.2,7.9c1.8,0,3.4-0.5,4.1-1.4v0.9c0,2.1-1.9,3.1-4.4,3.1 c-2.2,0-4-0.5-5.8-1.4V29c2.1,0.7,4.4,1,6,1c5,0,9.2-2,9.2-7.3v-15L68.5,7.7L68.5,7.7z M68.5,17.2c-0.7,1-1.9,1.4-3.2,1.4 c-2.1,0-3.8-1.2-3.8-3.4c0-2.2,1.7-3.4,3.8-3.4c1.3,0,2.5,0.6,3.2,1.5V17.2z M88.1,24.2c4,0,6.4-0.7,8.5-2V10h-11v4.7h5.8v4.1 c-0.8,0.2-1.8,0.4-3.2,0.4c-4.9,0-7.3-3.2-7.3-6.8c0-3.7,2.8-6.8,8-6.8c2.2,0,4.3,0.6,5.8,1.4V1.7c-1.5-0.6-3.4-1.1-6.1-1.1 c-7.6,0-13,5.3-13,11.8C75.5,19.1,80.4,24.2,88.1,24.2z M101.4,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3c1.8,0,3.2,1.4,3.2,3 S103.1,6.1,101.4,6.1z M98.8,23.8h5V7.7h-5V23.8z M115.1,15l-4.3-7.2H105l10.1,16.4l10.1-16.4h-5.8L115.1,15z M129.3,16.9h11.6 c0.1-7-4.2-9.5-8.4-9.5c-4.5,0-8.5,2.6-8.6,8.4c0,5.6,4.1,8.4,9.1,8.4c2.2,0,4.4-0.3,6.4-1.3v-4.4c-2.5,1.4-4.1,1.4-5.6,1.4 C131.7,19.8,129.5,19.2,129.3,16.9z M132.5,11.1c1.5,0,2.8,0.7,3,2.7h-6.2C129.6,11.9,131,11.1,132.5,11.1z M43.5,11.4 c1.2-1,1.8-2.4,1.8-4c0-3.1-3-6.3-7.3-6.3h-8v22.8h10.4c4.1,0,7.2-3,7.2-6.8C47.5,14.8,46.5,12.3,43.5,11.4z M35.2,5.7h2.4 C39,5.7,40,6.8,40,8c0,1.2-1,2.2-2.5,2.2h-2.4V5.7z M39.9,19.2h-4.7v-4.6h4.7c1.4,0,2.5,1,2.5,2.3C42.4,18.1,41.3,19.2,39.9,19.2z\" />\n <path d=\"M13.5,1l13.5,23H0L13.5,1z\" />\n </svg>\n </a>\n </div>\n <biggive-misc-icon class=\"bx bx-menu\" background-colour=\"white\" icon-colour=\"black\" icon=\"MenuOpen\" onClick={this.openMobileMenu}></biggive-misc-icon>\n <div class=\"nav-links\">\n <div class=\"sidebar-logo\">\n <a href={this.donateUrlPrefix + homePageLink} aria-label=\"Home\">\n <svg version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 140.9 30\" id=\"mobileLogo\">\n <path d=\"M51.9,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3C53.6,0,55,1.4,55,3S53.6,6.1,51.9,6.1z M49.3,23.8h5V7.7h-5V23.8z M68.5,7.7v1 c-0.8-0.7-2.3-1.4-4.1-1.4c-4.5,0-8.2,3.2-8.2,7.9c0,4.7,3.7,7.9,8.2,7.9c1.8,0,3.4-0.5,4.1-1.4v0.9c0,2.1-1.9,3.1-4.4,3.1 c-2.2,0-4-0.5-5.8-1.4V29c2.1,0.7,4.4,1,6,1c5,0,9.2-2,9.2-7.3v-15L68.5,7.7L68.5,7.7z M68.5,17.2c-0.7,1-1.9,1.4-3.2,1.4 c-2.1,0-3.8-1.2-3.8-3.4c0-2.2,1.7-3.4,3.8-3.4c1.3,0,2.5,0.6,3.2,1.5V17.2z M88.1,24.2c4,0,6.4-0.7,8.5-2V10h-11v4.7h5.8v4.1 c-0.8,0.2-1.8,0.4-3.2,0.4c-4.9,0-7.3-3.2-7.3-6.8c0-3.7,2.8-6.8,8-6.8c2.2,0,4.3,0.6,5.8,1.4V1.7c-1.5-0.6-3.4-1.1-6.1-1.1 c-7.6,0-13,5.3-13,11.8C75.5,19.1,80.4,24.2,88.1,24.2z M101.4,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3c1.8,0,3.2,1.4,3.2,3 S103.1,6.1,101.4,6.1z M98.8,23.8h5V7.7h-5V23.8z M115.1,15l-4.3-7.2H105l10.1,16.4l10.1-16.4h-5.8L115.1,15z M129.3,16.9h11.6 c0.1-7-4.2-9.5-8.4-9.5c-4.5,0-8.5,2.6-8.6,8.4c0,5.6,4.1,8.4,9.1,8.4c2.2,0,4.4-0.3,6.4-1.3v-4.4c-2.5,1.4-4.1,1.4-5.6,1.4 C131.7,19.8,129.5,19.2,129.3,16.9z M132.5,11.1c1.5,0,2.8,0.7,3,2.7h-6.2C129.6,11.9,131,11.1,132.5,11.1z M43.5,11.4 c1.2-1,1.8-2.4,1.8-4c0-3.1-3-6.3-7.3-6.3h-8v22.8h10.4c4.1,0,7.2-3,7.2-6.8C47.5,14.8,46.5,12.3,43.5,11.4z M35.2,5.7h2.4 C39,5.7,40,6.8,40,8c0,1.2-1,2.2-2.5,2.2h-2.4V5.7z M39.9,19.2h-4.7v-4.6h4.7c1.4,0,2.5,1,2.5,2.3C42.4,18.1,41.3,19.2,39.9,19.2z\" />\n <path d=\"M13.5,1l13.5,23H0L13.5,1z\" />\n </svg>\n </a>\n <biggive-misc-icon class=\"bx bx-x\" background-colour=\"transparent\" icon-colour=\"black\" icon=\"MenuClose\" onClick={this.closeMobileMenu}></biggive-misc-icon>\n </div>\n <div id=\"nav-primary\">\n <ul class=\"links\" slot=\"nav-primary\">\n <li>\n <a href={makeURL('Donate', this.donateUrlPrefix, 'explore')}>Explore Campaigns</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'charities')}>For Charities</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'funders')}>For Funders</a>\n </li>\n <li>\n <a onClick={this.noNav}>\n Match Funding\n <biggive-misc-icon class=\"bx bxs-chevron-down sub-menu-arrow arrow\" background-colour=\"white\" icon-colour=\"black\" icon=\"CaretRight\"></biggive-misc-icon>\n </a>\n <ul class=\"sub-menu\">\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'match-funding-explained')}>Match Funding Explained</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'impact')}>Match Funding Impact</a>\n </li>\n <li class=\"more\">\n <a onClick={this.noNav}>\n Match Funding Opportunities\n {/* IMPORTANT: notice this one has a class sub-sub-menu, not sub-menu */}\n <biggive-misc-icon\n class=\"bx bxs-chevron-down sub-sub-menu-arrow arrow\"\n background-colour=\"white\"\n icon-colour=\"black\"\n icon=\"CaretRight\"\n ></biggive-misc-icon>\n </a>\n <ul class=\"sub-sub-menu\">\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'christmas-challenge')} class=\"icon-christmas\">\n Christmas Challenge\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'champions-for-children')} class=\"icon-children\">\n Champions for Children\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'green-match-fund')} class=\"icon-green-match\">\n Green Match Fund\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'women-girls-match-fund')} class=\"icon-women-girls\">\n Women &amp; Girls Match Fund\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'kind2mind/')} class=\"icon-mental-health\">\n Kind²Mind\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'artsforimpact/')} class=\"icon-arts-impact\">\n Arts for Impact\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'anchor-match-fund/')} class=\"icon-anchor-match\">\n Anchor Match Fund\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'emergency-campaigns/')} class=\"icon-emergency\">\n Emergency Match Fund\n </a>\n </li>\n </ul>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'run-your-own-campaign/)')}>Run your match funding campaign</a>\n </li>\n </ul>\n </li>\n <li>\n <a onClick={this.noNav}>\n About Us\n <biggive-misc-icon class=\"bx bxs-chevron-down sub-menu-arrow arrow\" background-colour=\"white\" icon-colour=\"black\" icon=\"CaretRight\"></biggive-misc-icon>\n </a>\n <ul class=\"sub-menu\">\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'our-people')}>Our People</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'our-story')}>Our Story</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'donation-funds')}>Donate by Bank Transfer</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'our-fees')}>Our Fees</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'faqs')}>FAQs</a>\n </li>\n </ul>\n </li>\n <li>\n <a onClick={this.noNav}>\n Resources\n <biggive-misc-icon class=\"bx bxs-chevron-down sub-menu-arrow arrow\" background-colour=\"white\" icon-colour=\"black\" icon=\"CaretRight\"></biggive-misc-icon>\n </a>\n <ul class=\"sub-menu\">\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'case-studies')}>Case Studies</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'blog')}>Blog</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'reports-insights')}>Reports &amp; Insights</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'press')}>Press</a>\n </li>\n </ul>\n </li>\n </ul>\n <div class=\"mobile-only\">{secondaryNavLinksB}</div>\n </div>\n <div class=\"mobile-social-icon-wrap mobile-only\">\n <biggive-social-icon service=\"Facebook\" url=\"https://www.facebook.com/BigGive.org\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon service=\"Twitter\" url=\"https://x.com/BigGive\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon service=\"LinkedIn\" url=\"https://uk.linkedin.com/company/big-give\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon\n service=\"YouTube\"\n url=\"https://www.youtube.com/channel/UC9_wH1aaTuZurJ-F9R8GDcA\"\n background-colour=\"tertiary\"\n icon-colour=\"black\"\n ></biggive-social-icon>\n <biggive-social-icon service=\"Instagram\" url=\"https://www.instagram.com/biggiveorg\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n </div>\n </div>\n </div>\n </nav>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"biggive-main-menu.js","sourceRoot":"","sources":["../../../src/components/biggive-main-menu/biggive-main-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Event, EventEmitter, h, Host, Method, Prop } from '@stencil/core';\nimport { makeURL } from '../../util/helper-methods';\n\n@Component({\n tag: 'biggive-main-menu',\n styleUrl: 'biggive-main-menu.scss',\n shadow: true,\n})\nexport class BiggiveMainMenu {\n private lastScrollHeight = 0;\n\n @Element() host: HTMLBiggiveMainMenuElement;\n\n // URL prefixes vary by environment, and components library is not best placed to know what they are, so we\n // take them as props. But somehow on first render the prop passed in doesn't seem to be used, so the defaults\n // below are the values currently used in our prod site. They should be replaced by other values in other\n // environments.\n @Prop() blogUrlPrefix: string = 'https://biggive.org';\n\n @Prop() donateUrlPrefix: string = 'https://donate.biggive.org';\n\n @Prop() experienceUrlPrefix: string = 'https://community.biggive.org';\n\n @Prop() myAccountFlagEnabled = false;\n\n /**\n * Whether the current user is logged in (i.e. is assumed to have a valid JWT). They get links to some\n * extra content if they are.\n */\n @Prop() isLoggedIn = false;\n\n @Event({\n eventName: 'logoutClicked',\n bubbles: true,\n cancelable: true,\n composed: true,\n })\n logoutClicked: EventEmitter<void>;\n\n @Method()\n async closeMobileMenuFromOutside() {\n const mobileMenu = this.host.shadowRoot!.querySelector<HTMLElement>('.nav-links');\n mobileMenu!.style.left = '-100%';\n }\n\n private openMobileMenu = () => {\n const mobileMenu = this.host.shadowRoot!.querySelector<HTMLElement>('.nav-links');\n mobileMenu!.style.left = '0';\n };\n\n private logOut = () => {\n this.logoutClicked.emit();\n };\n\n private closeMobileMenu = () => {\n const mobileMenu = this.host.shadowRoot!.querySelector<HTMLElement>('.nav-links');\n mobileMenu!.style.left = '-100%';\n };\n\n private noNav(event: Event) {\n event.preventDefault();\n }\n\n private setHeaderSize() {\n if (this.host.scrollHeight === this.lastScrollHeight) {\n // Some browsers fire 'resize' overzealously on scroll; we don't want to cause extra paints if nothing\n // relevant changed.\n return;\n }\n\n this.lastScrollHeight = this.host.scrollHeight;\n\n // Some resize edge cases lead Firefox, and maybe others, to go haywire and get a host offset\n // height of millions of pixels, presumably due to a layout logic loop. So for as long as we use\n // this body padding workaround, we need a safe maximum value, currently 130px, beyond which\n // we will never further displace the main content.\n // (Possibly scrollHeight could have the same issue, not tested.)\n // We have also seen intermittent scrolling scenarios where `scrollHeight` is spuriously less than 60px,\n // maybe related to browsers / OSes with \"overscroll\" features. So we also now set a fixed minimum of 60px.\n const scrollHeight = isNaN(this.host.scrollHeight) ? 60 : Math.max(60, this.host.scrollHeight);\n\n document.body.style.paddingTop = Math.min(130, scrollHeight).toString() + 'px';\n }\n\n componentDidLoad() {\n this.host.classList.add('fixed');\n window.addEventListener('resize', () => {\n this.setHeaderSize();\n });\n this.setHeaderSize();\n\n const subMenuElements = this.host.shadowRoot!.querySelectorAll<HTMLElement>('.sub-menu');\n if (subMenuElements.length === 0) {\n throw new Error('Missing subMenuElements');\n }\n\n /**\n * Closes all the sub-menus except the one exception.\n */\n const closeAllSubMenus = ({ except }: { except: HTMLAnchorElement }) => {\n subMenuElements.forEach(subMenuElement => {\n const link = subMenuElement.parentElement?.querySelector('a');\n\n if (link === except) {\n return;\n }\n\n link?.classList.remove('transform-90');\n subMenuElement.classList.remove('display-sub-menu');\n });\n };\n\n subMenuElements.forEach(subMenuElement => {\n // the subMenuLink is a sibling element to the actual sub-menu\n const subMenuLink = subMenuElement.parentElement?.querySelector('a');\n\n subMenuLink!.onclick = () => {\n const subMenuArrow = subMenuLink!.querySelector('.sub-menu-arrow');\n closeAllSubMenus({ except: subMenuLink! });\n subMenuArrow!.classList.toggle('transform-90');\n subMenuElement.classList.toggle('display-sub-menu');\n };\n });\n\n const subSubMenuElements = this.host.shadowRoot!.querySelectorAll<HTMLElement>('.sub-sub-menu');\n\n if (subSubMenuElements.length === 0) {\n throw new Error('Missing subSubMenuElements');\n }\n\n subSubMenuElements.forEach(subSubMenuElement => {\n // the subSubMenuLink is a sibling element to the actual sub-sub-menu\n const subSubMenuLink = subSubMenuElement!.parentElement!.querySelector('a');\n\n subSubMenuLink!.onclick = () => {\n const subMenuArrow = subSubMenuLink!.querySelector('.sub-sub-menu-arrow');\n subMenuArrow!.classList.toggle('transform-90');\n subSubMenuElement.classList.toggle('display-sub-menu');\n };\n });\n }\n\n private getSecondaryNavLinks(layout: 'desktop' | 'mobile') {\n const chevronIconColour = layout === 'desktop' ? 'white' : 'black';\n const chevronBackgroundColour = layout === 'desktop' ? 'blue' : 'white';\n return (\n <ul>\n {this.myAccountFlagEnabled && !this.isLoggedIn && (\n <li>\n <a href={makeURL('Donate', this.donateUrlPrefix, 'login')}>Donor Login</a>\n </li>\n )}\n {this.isLoggedIn && (\n <li>\n <a onClick={this.noNav}>\n My Account\n <biggive-misc-icon\n class=\"bx bxs-chevron-down sub-menu-arrow arrow\"\n background-colour={chevronBackgroundColour}\n icon-colour={chevronIconColour}\n icon=\"CaretRight\"\n ></biggive-misc-icon>\n </a>\n <ul class=\"sub-menu sub-menu-main\" id=\"my-account-sub-menu\">\n <li>\n <a href={makeURL('Donate', this.donateUrlPrefix, 'my-account')}>Your details</a>\n </li>\n <li>\n <a href=\"javascript:void(0)\" onClick={this.logOut}>\n Log out\n </a>\n </li>\n </ul>\n </li>\n )}\n <li>\n <a href={makeURL('Experience', this.experienceUrlPrefix, 'charities/s/login')}>Charity Login</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'support')}>Support</a>\n </li>\n </ul>\n );\n }\n\n render() {\n /** ten minutes in advance to account for a *very* slow browser following the link and/or clock skew.\n * There's not really any harm in doing this early unless its soo early that people start sharing the noredirect link more than we'd like.\n */\n const CCOpenDate = new Date('2024-12-02T23:50:00+00:00');\n\n /**\n * Ten minutes late. Again doing this late doesn't hurt.\n */\n const CCCloseDate = new Date('2024-12-10T12:10:00+00:00');\n\n const now = new Date();\n\n const ccIsOpenNowIsh = now > CCOpenDate && now < CCCloseDate;\n\n const homePageLink = ccIsOpenNowIsh ? '/?noredirect' : '/';\n\n // calling same function twice because using same JSX node twice is not allowed\n // see https://stenciljs.com/docs/templating-jsx#avoid-shared-jsx-nodes\n const secondaryNavLinksForDesktop = this.getSecondaryNavLinks('desktop');\n const secondaryNavLinksForMobile = this.getSecondaryNavLinks('mobile');\n\n return (\n <Host>\n <div class=\"row row-top\">\n <div class=\"social-icon-wrap\">\n <biggive-social-icon service=\"Facebook\" url=\"https://www.facebook.com/BigGive.org\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon service=\"Twitter\" url=\"https://x.com/BigGive\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon service=\"LinkedIn\" url=\"https://uk.linkedin.com/company/big-give\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon\n service=\"YouTube\"\n url=\"https://www.youtube.com/channel/UC9_wH1aaTuZurJ-F9R8GDcA\"\n background-colour=\"tertiary\"\n icon-colour=\"black\"\n ></biggive-social-icon>\n <biggive-social-icon service=\"Instagram\" url=\"https://www.instagram.com/biggiveorg\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n </div>\n <div class=\"nav-secondary\">{secondaryNavLinksForDesktop}</div>\n </div>\n <nav role=\"navigation\" aria-label=\"Main Menu\">\n <div class=\"navbar\">\n <div class=\"logo\">\n <a href={this.donateUrlPrefix + homePageLink} aria-label=\"Home\">\n <svg version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 140.9 30\">\n <path d=\"M51.9,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3C53.6,0,55,1.4,55,3S53.6,6.1,51.9,6.1z M49.3,23.8h5V7.7h-5V23.8z M68.5,7.7v1 c-0.8-0.7-2.3-1.4-4.1-1.4c-4.5,0-8.2,3.2-8.2,7.9c0,4.7,3.7,7.9,8.2,7.9c1.8,0,3.4-0.5,4.1-1.4v0.9c0,2.1-1.9,3.1-4.4,3.1 c-2.2,0-4-0.5-5.8-1.4V29c2.1,0.7,4.4,1,6,1c5,0,9.2-2,9.2-7.3v-15L68.5,7.7L68.5,7.7z M68.5,17.2c-0.7,1-1.9,1.4-3.2,1.4 c-2.1,0-3.8-1.2-3.8-3.4c0-2.2,1.7-3.4,3.8-3.4c1.3,0,2.5,0.6,3.2,1.5V17.2z M88.1,24.2c4,0,6.4-0.7,8.5-2V10h-11v4.7h5.8v4.1 c-0.8,0.2-1.8,0.4-3.2,0.4c-4.9,0-7.3-3.2-7.3-6.8c0-3.7,2.8-6.8,8-6.8c2.2,0,4.3,0.6,5.8,1.4V1.7c-1.5-0.6-3.4-1.1-6.1-1.1 c-7.6,0-13,5.3-13,11.8C75.5,19.1,80.4,24.2,88.1,24.2z M101.4,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3c1.8,0,3.2,1.4,3.2,3 S103.1,6.1,101.4,6.1z M98.8,23.8h5V7.7h-5V23.8z M115.1,15l-4.3-7.2H105l10.1,16.4l10.1-16.4h-5.8L115.1,15z M129.3,16.9h11.6 c0.1-7-4.2-9.5-8.4-9.5c-4.5,0-8.5,2.6-8.6,8.4c0,5.6,4.1,8.4,9.1,8.4c2.2,0,4.4-0.3,6.4-1.3v-4.4c-2.5,1.4-4.1,1.4-5.6,1.4 C131.7,19.8,129.5,19.2,129.3,16.9z M132.5,11.1c1.5,0,2.8,0.7,3,2.7h-6.2C129.6,11.9,131,11.1,132.5,11.1z M43.5,11.4 c1.2-1,1.8-2.4,1.8-4c0-3.1-3-6.3-7.3-6.3h-8v22.8h10.4c4.1,0,7.2-3,7.2-6.8C47.5,14.8,46.5,12.3,43.5,11.4z M35.2,5.7h2.4 C39,5.7,40,6.8,40,8c0,1.2-1,2.2-2.5,2.2h-2.4V5.7z M39.9,19.2h-4.7v-4.6h4.7c1.4,0,2.5,1,2.5,2.3C42.4,18.1,41.3,19.2,39.9,19.2z\" />\n <path d=\"M13.5,1l13.5,23H0L13.5,1z\" />\n </svg>\n </a>\n </div>\n <biggive-misc-icon class=\"bx bx-menu\" background-colour=\"white\" icon-colour=\"black\" icon=\"MenuOpen\" onClick={this.openMobileMenu}></biggive-misc-icon>\n <div class=\"nav-links\">\n <div class=\"sidebar-logo\">\n <a href={this.donateUrlPrefix + homePageLink} aria-label=\"Home\">\n <svg version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 140.9 30\" id=\"mobileLogo\">\n <path d=\"M51.9,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3C53.6,0,55,1.4,55,3S53.6,6.1,51.9,6.1z M49.3,23.8h5V7.7h-5V23.8z M68.5,7.7v1 c-0.8-0.7-2.3-1.4-4.1-1.4c-4.5,0-8.2,3.2-8.2,7.9c0,4.7,3.7,7.9,8.2,7.9c1.8,0,3.4-0.5,4.1-1.4v0.9c0,2.1-1.9,3.1-4.4,3.1 c-2.2,0-4-0.5-5.8-1.4V29c2.1,0.7,4.4,1,6,1c5,0,9.2-2,9.2-7.3v-15L68.5,7.7L68.5,7.7z M68.5,17.2c-0.7,1-1.9,1.4-3.2,1.4 c-2.1,0-3.8-1.2-3.8-3.4c0-2.2,1.7-3.4,3.8-3.4c1.3,0,2.5,0.6,3.2,1.5V17.2z M88.1,24.2c4,0,6.4-0.7,8.5-2V10h-11v4.7h5.8v4.1 c-0.8,0.2-1.8,0.4-3.2,0.4c-4.9,0-7.3-3.2-7.3-6.8c0-3.7,2.8-6.8,8-6.8c2.2,0,4.3,0.6,5.8,1.4V1.7c-1.5-0.6-3.4-1.1-6.1-1.1 c-7.6,0-13,5.3-13,11.8C75.5,19.1,80.4,24.2,88.1,24.2z M101.4,6.1c-1.7,0-3.1-1.4-3.1-3s1.4-3,3.1-3c1.8,0,3.2,1.4,3.2,3 S103.1,6.1,101.4,6.1z M98.8,23.8h5V7.7h-5V23.8z M115.1,15l-4.3-7.2H105l10.1,16.4l10.1-16.4h-5.8L115.1,15z M129.3,16.9h11.6 c0.1-7-4.2-9.5-8.4-9.5c-4.5,0-8.5,2.6-8.6,8.4c0,5.6,4.1,8.4,9.1,8.4c2.2,0,4.4-0.3,6.4-1.3v-4.4c-2.5,1.4-4.1,1.4-5.6,1.4 C131.7,19.8,129.5,19.2,129.3,16.9z M132.5,11.1c1.5,0,2.8,0.7,3,2.7h-6.2C129.6,11.9,131,11.1,132.5,11.1z M43.5,11.4 c1.2-1,1.8-2.4,1.8-4c0-3.1-3-6.3-7.3-6.3h-8v22.8h10.4c4.1,0,7.2-3,7.2-6.8C47.5,14.8,46.5,12.3,43.5,11.4z M35.2,5.7h2.4 C39,5.7,40,6.8,40,8c0,1.2-1,2.2-2.5,2.2h-2.4V5.7z M39.9,19.2h-4.7v-4.6h4.7c1.4,0,2.5,1,2.5,2.3C42.4,18.1,41.3,19.2,39.9,19.2z\" />\n <path d=\"M13.5,1l13.5,23H0L13.5,1z\" />\n </svg>\n </a>\n <biggive-misc-icon class=\"bx bx-x\" background-colour=\"transparent\" icon-colour=\"black\" icon=\"MenuClose\" onClick={this.closeMobileMenu}></biggive-misc-icon>\n </div>\n <div id=\"nav-primary\">\n <ul class=\"links\" slot=\"nav-primary\">\n <li>\n <a href={makeURL('Donate', this.donateUrlPrefix, 'explore')}>Explore Campaigns</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'charities')}>For Charities</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'funders')}>For Funders</a>\n </li>\n <li>\n <a onClick={this.noNav}>\n Match Funding\n <biggive-misc-icon class=\"bx bxs-chevron-down sub-menu-arrow arrow\" background-colour=\"white\" icon-colour=\"black\" icon=\"CaretRight\"></biggive-misc-icon>\n </a>\n <ul class=\"sub-menu\">\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'match-funding-explained')}>Match Funding Explained</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'impact')}>Match Funding Impact</a>\n </li>\n <li class=\"more\">\n <a onClick={this.noNav}>\n Match Funding Opportunities\n {/* IMPORTANT: notice this one has a class sub-sub-menu, not sub-menu */}\n <biggive-misc-icon\n class=\"bx bxs-chevron-down sub-sub-menu-arrow arrow\"\n background-colour=\"white\"\n icon-colour=\"black\"\n icon=\"CaretRight\"\n ></biggive-misc-icon>\n </a>\n <ul class=\"sub-sub-menu\">\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'christmas-challenge')} class=\"icon-christmas\">\n Christmas Challenge\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'champions-for-children')} class=\"icon-children\">\n Champions for Children\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'green-match-fund')} class=\"icon-green-match\">\n Green Match Fund\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'women-girls-match-fund')} class=\"icon-women-girls\">\n Women &amp; Girls Match Fund\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'kind2mind/')} class=\"icon-mental-health\">\n Kind²Mind\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'artsforimpact/')} class=\"icon-arts-impact\">\n Arts for Impact\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'anchor-match-fund/')} class=\"icon-anchor-match\">\n Anchor Match Fund\n </a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'emergency-campaigns/')} class=\"icon-emergency\">\n Emergency Match Fund\n </a>\n </li>\n </ul>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'run-your-own-campaign/)')}>Run your match funding campaign</a>\n </li>\n </ul>\n </li>\n <li>\n <a onClick={this.noNav}>\n About Us\n <biggive-misc-icon class=\"bx bxs-chevron-down sub-menu-arrow arrow\" background-colour=\"white\" icon-colour=\"black\" icon=\"CaretRight\"></biggive-misc-icon>\n </a>\n <ul class=\"sub-menu\">\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'our-people')}>Our People</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'our-story')}>Our Story</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'donation-funds')}>Donate by Bank Transfer</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'our-fees')}>Our Fees</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'faqs')}>FAQs</a>\n </li>\n </ul>\n </li>\n <li>\n <a onClick={this.noNav}>\n Resources\n <biggive-misc-icon class=\"bx bxs-chevron-down sub-menu-arrow arrow\" background-colour=\"white\" icon-colour=\"black\" icon=\"CaretRight\"></biggive-misc-icon>\n </a>\n <ul class=\"sub-menu\">\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'case-studies')}>Case Studies</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'blog')}>Blog</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'reports-insights')}>Reports &amp; Insights</a>\n </li>\n <li>\n <a href={makeURL('Blog', this.blogUrlPrefix, 'press')}>Press</a>\n </li>\n </ul>\n </li>\n </ul>\n <div class=\"mobile-only\">{secondaryNavLinksForMobile}</div>\n </div>\n <div class=\"mobile-social-icon-wrap mobile-only\">\n <biggive-social-icon service=\"Facebook\" url=\"https://www.facebook.com/BigGive.org\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon service=\"Twitter\" url=\"https://x.com/BigGive\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon service=\"LinkedIn\" url=\"https://uk.linkedin.com/company/big-give\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n <biggive-social-icon\n service=\"YouTube\"\n url=\"https://www.youtube.com/channel/UC9_wH1aaTuZurJ-F9R8GDcA\"\n background-colour=\"tertiary\"\n icon-colour=\"black\"\n ></biggive-social-icon>\n <biggive-social-icon service=\"Instagram\" url=\"https://www.instagram.com/biggiveorg\" background-colour=\"tertiary\" icon-colour=\"black\"></biggive-social-icon>\n </div>\n </div>\n </div>\n </nav>\n </Host>\n );\n }\n}\n"]}