{"version":3,"sources":["webpack:///./widgets/woolLabInteractiveMoodboardBlock.js","webpack:///./widgets/woolLabMyMoodboardsBlock.js","webpack:///./widgets/woolLabMySwatchesBlock.js","webpack:///./widgets/woolLabOnboardingBlock.js","webpack:///./widgets/woolLabPersistentSwatchDrawer.js","webpack:///./widgets/woolLabSwatchLibrarySearchBlock.js","webpack:///./widgets/woolLabThemesBlock.js","webpack:///./widgets/woolLabShareSwatchModalBlock.js","webpack:///./widgets/woolLabRenameMoodboardModalBlock.js","webpack:///../partials/widgets/woolLabShareSwatchModalBlock.hbs","webpack:///../partials/widgets/woolLabSwatchBlock.hbs","webpack:///./widgets/woolLabSwatchLibraryHelpModalBlock.js","webpack:///../partials/widgets/woolLabRenameMoodboardModalBlock.hbs","webpack:///../partials/widgets/woolLabSwatchLibraryHelpModalBlock.hbs"],"names":["CLS","WoolLabInteractiveMoodboardBlock","el","_this","_classCallCheck","this","$el","$","autoSaveTimeout","activeSwatchId","activeImageCanvasId","activeNoteId","isAddNoteActive","zoomIncriment","scale","newItemGridSpacing","$persistentDrawAddMoodboardBtn","$persistentDrawSwatches","moodboardName","searchParams","URLSearchParams","window","location","search","moodboardId","get","swatchIds","$canvasContainer","find","concat","$notepad","$resetCanvasBtn","$addNoteBtn","$notepadCloseBtn","$notepadDeleteBtn","$notepadPostBtn","$zoomInBtn","$zoomOutBtn","getMoodboardApi","data","updateMoodboardApi","deleteMoodboardApi","shareSwatchesApi","addToMySwatchesApi","myMoodboardsUrl","moodboardNoteImg","noteCursorImg","notesHoverText","centreHoverText","$loadingScreen","$optionsBtn","$optionsDropdown","$optionsRenameBtn","$optionsShareBtn","$optionsDeleteBtn","$deleteMoodboardPanel","$deleteMoodboardPanelDeleteBtn","$deleteMoodboardPanelCancelBtn","$contextMenu","$contextMenuUpButton","$contextMenuDownButton","$selectOptionsPanel","$selectOptionsAddMySwatchedBtn","$selectOptionsRemoveBtn","$selectOptionsCloseBtn","initNotepad","handleOptionBtns","handleDeleteMoodboardBtns","handleSelectOptionsButtons","handleNotepadButtons","handleCanvasButtons","getItems","initCanvas","setInterval","checkIfMoodboardChanged","key","value","tinymce","_typeof","init","selector","plugins","content_style","menubar","statusbar","paste_as_text","height","toolbar","selectedItem","_this2","This","sceneWidth","width","sceneHeight","fitStageIntoParentContainer","stage","Konva","Stage","container","draggable","layer","Layer","add","on","pos","getRelativePointerPosition","x","y","deactivateAddNote","generateNote","style","cursor","e","target","transformer","nodes","closeSelectOptions","evt","preventDefault","css","containerRect","getBoundingClientRect","top","getPointerPosition","left","moveUp","moveDown","Transformer","keepRatio","enabledAnchors","anchorStroke","anchorFill","anchorSize","borderStroke","rotateAnchorOffset","padding","addEventListener","_this3","url","JSON","stringify","getMoodboardJSON","fetch","method","dataType","body","then","response","removeClass","json","_json","_error","_this4","moodboardJSON","salesforce","previousMoodboardJSON","_","isEqual","saveItems","items","getChildren","node","itemType","attrs","item","type","transformation","toJSON","swatch","swatchId","swatchImgSrc","imageUrl","imgSrc","push","id","title","_this5","addClass","ajax","success","length","newItemInt","forEach","i","transformationAttrs","parse","generateImage","error","complete","html","imageObj","Image","onload","scaleCenterView","img","image","scaleX","scaleY","cornerRadius","setAttrs","fullImageSrc","rotateEnabled","_id","openSelectOptions","src","openNotepad","fromURL","imageNode","dataNote","getAttr","moveToTop","_this6","attr","hasClass","activateAddNote","zoom","selectedSwatches","each","selectedSwatch","addSwatchesToMoodboard","_this7","closeNotepad","removeItemFromMoodboard","itemCanvasId","destroy","yMin","xMin","xMax","nodeWidth","getClassName","xDif","xPos","yPos","position","zoomBefore","inc","oldScale","zoomPoint","zoomAfter","newPos","_ref","saveNotepadText","activeEditor","setContent","notepadContent","getContent","setAttr","_this8","toggleClass","displayRenameMoodboardModal","generatePdf","_this9","addSwatchToMySwatches","_this10","_this11","href","modalWidget","require","Handlebars","registerPartial","precompiled","Function","precompile","template","stageCopy","clone","posX","posY","pdf","jsPDF","background","Rect","fill","moveToBottom","addImage","toDataURL","mimeType","pixelRatio","quality","notes","nodeIndex","pageCount","dataPageHeight","addNote","n","nWidth","noteTitle","dataPageTitle","windowWidth","html2canvas","backgroundColor","callback","ceil","addPage","setPage","colIndex","dataPageWidth","columnWidth","save","document","append","getShareSwatchModalTemplate","$modal","modalData","selectedSwatchIds","WoolLabShareSwatchModalBlock","modal","remove","_this12","getRenameMoodboardModalTemplate","WoolLabRenameMoodboardModalBlock","input","val","trim","_this13","swatchItem","saveSwatchesFromPD","WoolLabMyMoodboardsBlock","$moodboardContainer","$searchResultsEmpty","$myMoodboardsEmpty","moodboardContainer","$searchInp","$loadMore","loadingMoodboards","allMoodboardsLoaded","getMoodboardsApi","moodboardBaseUrl","$moodboards","pageSize","pageNumber","params","count","offset","handleSearchInput","handleScrollLoading","loadMoreMoodboards","setPageNumber","isEmpty","param","updateUrl","hide","empty","moodboard","imgMarkup","images","newContent","name","swatchCount","moodboardMarkup","ele","currentTarget","show","uri","pathname","Object","keys","index","utils","updateQueryStringParameter","history","pushState","event","filter","toUpperCase","map","obj","indexOf","display","totalMoodboard","displayNone","scrollTop","scroll","newPageNumber","WoolLabMySwatchesBlock","$filterKeys","$filterDropdown","$filterDropdownBtn","$fabricSwatches","$loadMoreSpinner","fabricSwatches","$refineFilterBtn","$clearFilterBtn","$selectFilterBtn","$filterRefined","$selectBtns","$season","$theme","$certified","$supplier","$country","$benefits","$archived","$displayGridBtn","$displayListViewBtn","getAllThemes","removeSwatchesApi","getSupplierInfoApi","getSwatchDetailApi","getSupplierDetailApi","isInMySwatchesApi","getSwatchesApi","getFiltersApi","createMoodboardApi","addToMoodboardApi","isStudent","loadingSwatches","allSwatchesLoaded","$swatchBlock","$removePanel","$removePanelRemoveBtn","$removePanelCancelBtn","$swatchSelectPanel","$swatchSelectCount","$swatchSelectClearBtn","$swatchSelectGetSupplierBtn","$swatchSelectShareBtn","$swatchSelectRemoveBtn","$swatchSelectSaveBtn","url_string","URL","$urlkeyword","$urltheme","$urlseason","$urlcertified","$urlcountry","$urlsupplier","$urlbenefits","$urlarchived","initParams","selectpicker","handleDisplayToggleButtons","handleFilterToggleBtn","handleSavePanelBtns","handleRemovePanelBtns","handlePanelBtnsVisibility","getFilters","initFilterKeys","initFeatureFlags","keyword","theme","season","certified","country","supplier","benefits","archived","woolLabSwatchBlock","options","seasonOptions","includes","selectpickerRefresh","loadMoreSwatches","encodeURIComponent","isStudentValue","markup","$column","getWoolLabSwatchBlockTemplate","WoolLabSwatchBlock","last","handleSwatchBtn","Promise","resolve","scrollTo","updateSelectedSwatchCount","_step","_iterator","_createForOfIteratorHelper","s","done","err","f","$woolLabSwatchBlock","$element","filterKey","isNil","join","keyCode","off","$target","$swatch","filteredItems","toArray","every","resetSavePanel","open","focus","displayShareSwatchModal","WoolLabOnboardingBlock","$questionsCarousel","$questionContainer","$nextBtn","$prevBtn","$progressBarInner","$sliderPrevBtn","$sliderNextBtn","$questionCount","$startScreen","$startBtn","$endScreen","onLastSlide","currentSlide","$form","$formAction","slick","nextSlide","slideCount","percentage","infinite","dots","arrows","checkboxes","radios","nextBtn","is","handleButtons","elem","hideScreen","showScreen","handleFormSubmission","serialize","WoolLabPersistentSwatchDrawer","getMySwatchesApi","addToMySwatches","useDetailsModal","isstudentApi","$addToMoodboardBtn","$openBtn","$panel","$closeBtn","$background","imageSrc","getSwatches","displaySwatchDetailModal","getModalTemplate","WoolLabSwatchDetailModalBlock","WoolLabSwatchLibrarySearchBlock","username","$themesCarousel","featureMoodboardsEnabled","myMoodboardsData","$saveSwatchPanel","$saveSwatchCount","$saveSwatchHelpBtn","$saveSwatchClearBtn","$saveSwatchSaveBtn","$saveSwatchLocationBtn","initThemesCarousel","awiGlobalHelper","_objectSpread","reloadSwatchLibraryMySwatches","getMySwatches","clear","slidesToShow","slidesToScroll","variableWidth","swipeToSlide","themes","userName","filterThemeBySeason","themesArr","split","setTimeout","selectedVal","stringThemes","$themes","element","flat","Boolean","sort","handleFilterClick","$urlseasonArr","$urlthemeArr","$urlcountryArr","$urlcertifiedArr","$urlbenefitsArr","displayHelpModal","$locationBtn","$selectedSwatch","displaySaveToMoodboardModal","getHelpModalTemplate","WoolLabSwatchLibraryHelpModalBlock","_this14","getSaveToMoodboardModalTemplate","selectedItems","WoolLabSaveToMoodboardModalBlock","WoolLabThemesBlock","prevArrow","nextArrow","responsive","breakpoint","settings","shareEmail","$btnDone","$sendBtn","$emailInput","newMoodboardText","postShareSwatchesApi","newName","$updateBtn","$input","getMyMoodboardsApi","$inputContainer","arrMyMoodboardsNames","getMyMoodboards","toLowerCase","names","parseJSON","async","responseText","module","exports","depth0","helpers","partials","helper","alias1","nullContext","alias2","hooks","helperMissing","alias3","alias4","escapeExpression","lookupProperty","parent","propertyName","prototype","hasOwnProperty","call","stack1","program","noop","_createClass"],"mappings":"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","file":"29.js","sourcesContent":["const NS = 'WoolLabInteractiveMoodboardBlock';\nconst CLS = 'woolLabInteractiveMoodboardBlock';\n\nimport Handlebars from 'handlebars';\nimport {WoolLabShareSwatchModalBlock} from './woolLabShareSwatchModalBlock';\nimport {WoolLabRenameMoodboardModalBlock} from './woolLabRenameMoodboardModalBlock';\nimport _, { ceil } from 'lodash';\n\nimport Konva from 'konva';\nimport jsPDF from '@mathiasosterkamp/customjspdf';\n\nexport class WoolLabInteractiveMoodboardBlock {\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.autoSaveTimeout = 5000;\n\n\t\tthis.activeSwatchId = 99999;\n\t\tthis.activeImageCanvasId = 99999;\n\t\tthis.activeNoteId = 99999;\n\t\tthis.isAddNoteActive = false;\n\n\t\tthis.zoomIncriment = 0.1;\n\t\tthis.scale = 1;\n\t\tthis.newItemGridSpacing = 500;\n\n\t\tthis.$persistentDrawAddMoodboardBtn = $('.woolLabPersistentSwatchDrawer-addToMoodboardBtn');\n\t\tthis.$persistentDrawSwatches = $('.woolLabPersistentSwatchDrawer-swatches');\n\n\t\tthis.moodboardName = '';\n\t\tvar searchParams = new URLSearchParams(window.location.search)\n\t\tthis.moodboardId = searchParams.get('id');\n\n\t\tthis.swatchIds = [];\n\n\t\tthis.$canvasContainer = this.$el.find(`.${CLS}-canvasContainer`);\n\n\t\tthis.$notepad = this.$el.find(`.${CLS}-notepad`);\n\n\t\tthis.$resetCanvasBtn = this.$el.find(`.${CLS}-resetCanvasBtn`);\n\t\tthis.$addNoteBtn = this.$el.find(`.${CLS}-addNoteBtn`);\n\n\t\tthis.$notepadCloseBtn = this.$el.find(`.${CLS}-notepad-closeBtn`);\n\t\tthis.$notepadDeleteBtn = this.$el.find(`.${CLS}-notepad-deleteBtn`);\n\t\tthis.$notepadPostBtn = this.$el.find(`.${CLS}-notepad-postBtn`);\n\n\t\tthis.$zoomInBtn = this.$el.find(`.${CLS}-zoomInBtn`);\n\t\tthis.$zoomOutBtn = this.$el.find(`.${CLS}-zoomOutBtn`);\n\n\t\tthis.getMoodboardApi = this.$el.data('getMoodboardApi');\n\t\tthis.updateMoodboardApi = this.$el.data('updateMoodboardApi');\n\t\tthis.deleteMoodboardApi = this.$el.data('deleteMoodboardApi');\n\t\tthis.shareSwatchesApi = this.$el.data('shareSwatchesApi');\n\t\tthis.addToMySwatchesApi = this.$el.data('addToMyswatchesApi');\n\t\tthis.myMoodboardsUrl = this.$el.data('myMoodboardsUrl');\n\t\tthis.moodboardNoteImg = this.$el.data('moodboardNoteImg');\n\t\tthis.noteCursorImg = this.$el.data('noteCursorImg');\n\t\tthis.notesHoverText=this.$el.data('notesHoverText');\n\t\tthis.centreHoverText=this.$el.data('centreHoverText');\n\t\t\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\n\t\tthis.$optionsBtn = this.$el.find(`.${CLS}-optionsBtn`);\n\t\tthis.$optionsDropdown = this.$el.find(`.${CLS}-options-dropdown`);\n\n\t\tthis.$optionsRenameBtn = this.$el.find(`.${CLS}-options-rename`);\n\t\tthis.$optionsShareBtn = this.$el.find(`.${CLS}-options-share`);\n\t\tthis.$optionsDeleteBtn = this.$el.find(`.${CLS}-options-remove`);\n\n\t\tthis.$deleteMoodboardPanel = this.$el.find(`.${CLS}-mooboardDelete-panel`);\n\t\tthis.$deleteMoodboardPanelDeleteBtn = this.$el.find(`.${CLS}-mooboardDelete-removePanel-remove`);\n\t\tthis.$deleteMoodboardPanelCancelBtn = this.$el.find(`.${CLS}-mooboardDelete-removePanel-cancel`);\n\n\t\tthis.$contextMenu = this.$el.find('#moodboardContextMenu');\n\t\tthis.$contextMenuUpButton = this.$el.find('#moodboardContextUpButton');\n\t\tthis.$contextMenuDownButton = this.$el.find('#moodboardContextDownButton');\n\n\t\tthis.$selectOptionsPanel = this.$el.find(`.${CLS}-selectOptions-panel`);\n\t\tthis.$selectOptionsAddMySwatchedBtn = this.$el.find(`.${CLS}-selectOptions-addMySwatches`);\n\t\tthis.$selectOptionsRemoveBtn = this.$el.find(`.${CLS}-selectOptions-remove`);\n\t\tthis.$selectOptionsCloseBtn = this.$el.find(`.${CLS}-selectOptions-close`);\n\n\n\t\tthis.initNotepad();\n\t\tthis.handleOptionBtns();\n\t\tthis.handleDeleteMoodboardBtns();\n\t\tthis.handleSelectOptionsButtons();\n\t\tthis.handleNotepadButtons();\n\t\tthis.handleCanvasButtons();\n\t\tthis.getItems();\n\t\tthis.initCanvas();\n\n\t\tsetInterval(() => {\n\t\t\tthis.checkIfMoodboardChanged();\n\t\t}, this.autoSaveTimeout);\n\t}\n\n\tinitNotepad() {\n\t\t// TinyMCE\n\t\tif (typeof tinymce === 'object') {\n\t\t\t// eslint-disable-next-line no-undef\n\t\t\ttinymce.init({\n\t\t\t\tselector: `#notepadEditor`,\n\t\t\t\tplugins: 'lists',\n\t\t\t\tcontent_style: 'body { margin: 0;}' + 'p {margin: 0; font-weight: 20px; line-height: 30px; padding-right: 40px;}' + 'body::before {font-weight: 20px; line-height: 30px; color: #000000 !important; opacity: 0.3;}',\n\t\t\t\tmenubar: false,\n\t\t\t\tstatusbar: false,\n\t\t\t\tpaste_as_text: true,\n\t\t\t\theight: '100%',\n\t\t\t\ttoolbar: 'bold italic bullist | customDownloadButton customSaveButton',\n\t\t\t});\n\t\t}\n\t}\n\n\tinitCanvas() {\n\t\tconst This = this;\n\n\t\tlet sceneWidth = this.$canvasContainer.width();\n\t\tlet sceneHeight = this.$canvasContainer.height();\n\n\t\tthis.stage = new Konva.Stage({\n\t\t\tcontainer: 'canvasContainer',\n\t\t\twidth: sceneWidth,\n\t\t\theight: sceneHeight,\n\t\t\tdraggable: true,\n\t\t});\n\n\t\tthis.layer = new Konva.Layer();\n\t\tthis.stage.add(this.layer);\n\n\t\tthis.stage.on('click', function() {\n\t\t\tif (This.isAddNoteActive) {\n\t\t\t\tlet pos = This.layer.getRelativePointerPosition();\n\n\t\t\t\tpos.x -= 40;\n\t\t\t\tpos.y -= 40;\n\n\t\t\t\tThis.deactivateAddNote();\n\t\t\t\tThis.generateNote(pos, true);\n\t\t\t}\n\t\t});\n\n\t\tthis.stage.on('mouseenter mouseup', () => {\n\t\t\tif (!this.isAddNoteActive) {\n\t\t\t\tthis.stage.container().style.cursor = 'grab';\n\t\t\t}\n\t\t});\n\t\tthis.stage.on('mousedown', (e) => {\n\t\t\tif (e.target === this.stage) {\n\t\t\t\tthis.transformer.nodes([]);\n\t\t\t\tthis.closeSelectOptions();\n\t\t\t}\n\t\t\tif (!this.isAddNoteActive) {\n\t\t\t\tthis.stage.container().style.cursor = 'grabbing';\n\t\t\t}\n\t\t});\n\n\t\t// variable to temporarily hold swatch that is being \"right-click\"ed\n\t\tlet selectedItem;\n\n\t\t// Context menu set up\n\t\tthis.stage.on('contextmenu', function (e) {\n\t\t\t// prevent default behavior\n\t\t\te.evt.preventDefault();\n\t\t\tif (e.target === This.stage) {\n\t\t\t // if we are on empty place of the stage we will do nothing\n\t\t\t return;\n\t\t\t}\n\n\t\t\tselectedItem = e.target;\n\n\t\t\t// show menu\n\t\t\tThis.$contextMenu.css('display', 'initial');\n\t\t\tvar containerRect = This.stage.container().getBoundingClientRect();\n\t\t\tThis.$contextMenu.css('top', containerRect.top + This.stage.getPointerPosition().y + 4 + 'px');\n\t\t\tThis.$contextMenu.css('left', containerRect.left + This.stage.getPointerPosition().x + 4 + 'px');\n\t\t});\n\n\t\tthis.$contextMenuUpButton.on('click', () => {\n\t\t\tselectedItem && selectedItem.moveUp();\n\t\t});\n\n\t\tthis.$contextMenuDownButton.on('click', () => {\n\t\t\tselectedItem && selectedItem.moveDown();\n\t\t});\n\n\t\t// hide context menu\n\t\t$(window).on('click', () => {\n\t\t\tThis.$contextMenu.css('display', 'none');\n\t\t});\n\n\t\tthis.transformer = new Konva.Transformer({\n\t\t\tkeepRatio: true,\n\t\t\tenabledAnchors: [\n\t\t\t'top-left',\n\t\t\t'top-right',\n\t\t\t'bottom-left',\n\t\t\t'bottom-right',\n\t\t\t],\n\t\t\tanchorStroke: 'black',\n\t\t\tanchorFill: 'white',\n\t\t\tanchorSize: 12,\n\t\t\tborderStroke: 'black',\n\t\t\trotateAnchorOffset: 50,\n\t\t\tpadding: 10,\n\t\t});\n\n\t\tfunction fitStageIntoParentContainer() {\n\t\t\tThis.stage.width(This.$canvasContainer.width());\n\t\t\tThis.stage.height(This.$canvasContainer.height());\n\t\t}\n\t\tfitStageIntoParentContainer();\n\n\t\twindow.addEventListener('resize', fitStageIntoParentContainer);\n\t}\n\n\tsaveItems() {\n\t\tlet url = `${this.updateMoodboardApi}`;\n\t\tlet data = JSON.stringify(this.getMoodboardJSON());\n\n\t\tfetch(url, {\n\t\t\tmethod: 'POST',\n\t\t\tdataType: 'json',\n\t\t\tbody: data\n\t\t}).then((response) => {\n\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\treturn response.json();\n\t\t}).then((_json) => {\n\t\t}).catch((_error) => {\n\t\t});\n\t}\n\n\tsaveSwatchesFromPD() {\n\t\tlet url = `${this.updateMoodboardApi}`;\n\t\tconst moodboardJSON=this.getMoodboardJSON();\n\t\tmoodboardJSON.salesforce=\"true\";\n\t\tlet data = JSON.stringify(moodboardJSON);\n\n\t\tfetch(url, {\n\t\t\tmethod: 'POST',\n\t\t\tdataType: 'json',\n\t\t\tbody: data\n\t\t}).then((response) => {\n\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\treturn response.json();\n\t\t}).then((_json) => {\n\t\t}).catch((_error) => {\n\t\t});\n\t}\n\n\tcheckIfMoodboardChanged() {\n\t\tif (!this.previousMoodboardJSON) {\n\t\t\tthis.previousMoodboardJSON = this.getMoodboardJSON();\n\t\t} else if ( !_.isEqual(this.previousMoodboardJSON, this.getMoodboardJSON())) {\n\t\t\t// moodboard has changed since last check\n\t\t\tthis.previousMoodboardJSON = this.getMoodboardJSON();\n\t\t\tthis.saveItems();\n\t\t}\n\t}\n\n\tgetMoodboardJSON() {\n\t\tlet data = {};\n\t\tlet items = [];\n\t\t\n\n\t\tthis.layer.getChildren((node) => {\n\t\t\tlet itemType = node.attrs.itemType;\n\n\t\t\tif (itemType === 'swatch' || itemType === 'image' || itemType === 'notes') {\n\t\t\t\tlet item = {};\n\t\t\t\titem.type = itemType;\n\t\t\t\titem.transformation = node.toJSON();\n\n\t\t\t\tif (itemType === 'swatch') {\n\t\t\t\t\titem.swatch = {\n\t\t\t\t\t\t'id': node.attrs.swatchId,\n\t\t\t\t\t\t'fullImageSrc': node.attrs.swatchImgSrc,\n\t\t\t\t\t};\n\t\t\t\t} else if (itemType === 'image') {\n\t\t\t\t\titem.imageUrl = node.attrs.imgSrc;\n\t\t\t\t}\n\n\t\t\t\titems.push(item);\n\t\t\t}\n\t\t});\n\n\t\tdata.id = this.moodboardId;\n\t\tdata.title = this.moodboardName;\n\t\tdata.items = items;\n\n\t\treturn data;\n\t}\n\n\t\n\n\tgetItems() {\n\t\tlet url = `${this.getMoodboardApi}?moodboardId=${this.moodboardId}`;\n\n\t\tthis.$loadingScreen.addClass('active');\n\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: url,\n\t\t\tsuccess: (data) => {\n\n\t\t\t\tthis.moodboardName = data.title;\n\t\t\t\tthis.moodboardId = data.id;\n\n\t\t\t\tif (data.items.length > 0) {\n\t\t\t\t\tlet newItemInt = 0;\n\n\t\t\t\t\tdata.items.forEach((item, i) => {\n\t\t\t\t\t\tlet transformationAttrs;\n\n\t\t\t\t\t\tif (item.transformation) {\n\t\t\t\t\t\t\tlet transformation = JSON.parse(item.transformation);\n\t\t\t\t\t\t\tif (transformation.attrs) {\n\t\t\t\t\t\t\t\ttransformationAttrs = transformation.attrs;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet offsetX = 100 + (this.newItemGridSpacing * newItemInt);\n\t\t\t\t\t\tlet offsetY = 100;\n\n\t\t\t\t\t\tlet pos = {x: offsetX, y: offsetY};\n\n\t\t\t\t\t\tif (!transformationAttrs) {\n\t\t\t\t\t\t\tnewItemInt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (item.type === 'image' || item.type === 'swatch') {\n\t\t\t\t\t\t\tthis.generateImage(pos, item, transformationAttrs);\n\t\t\t\t\t\t} else if (item.type === 'notes') {\n\t\t\t\t\t\t\tthis.generateNote(pos, false, transformationAttrs);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t},\n\t\t\terror: (error) => {\n\t\t\t},\n\t\t\tcomplete: () => {\n\t\t\t\t$('#InteractiveMoodboardName').html(this.moodboardName);\n\t\t\t},\n\t\t});\n\t}\n\n\tgenerateImage(pos, item, transformationAttrs) {\n\t\tconst This = this;\n\n\t\tlet imageObj = new Image();\n\n\t\timageObj.onload = function() {\n\t\t\tThis.scaleCenterView();\n\t\t}\n\n\t\tlet img = new Konva.Image({\n\t\t\tx: pos.x,\n\t\t\ty: pos.y,\n\t\t\timage: imageObj,\n\t\t\tdraggable: true,\n\t\t\tscaleX: 0.5,\n\t\t\tscaleY: 0.5,\n\t\t\tcornerRadius: 10,\n\t\t});\n\n\t\tif (transformationAttrs) {\n\t\t\timg.setAttrs(transformationAttrs);\n\t\t}\n\n\t\tif (item.type === 'image') {\n\t\t\timg.setAttrs({'itemType': 'image', 'imgSrc': item.imageUrl});\n\t\t} else {\n\t\t\timg.setAttrs({'itemType': 'swatch', 'swatchId': item.swatch.id, 'swatchImgSrc': item.swatch.fullImageSrc});\n\t\t\tThis.swatchIds.push(item.swatch.id);\n\t\t}\n\n\t\timg.on('mousedown touchstart', (e) => {\n\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\tThis.transformer.nodes([img]);\n\t\t\t\tThis.transformer.rotateEnabled(true);\n\t\t\t\tThis.layer.add(This.transformer);\n\n\t\t\t\tThis.activeImageCanvasId = img._id;\n\n\t\t\t\tif (item.type === 'image') {\n\t\t\t\t\tThis.openSelectOptions();\n\t\t\t\t} else {\n\t\t\t\t\tThis.openSelectOptions(item.swatch.id);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\timg.on('mouseenter', (e) => {\n\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\tThis.stage.container().style.cursor = 'pointer';\n\t\t\t}\n\t\t});\n\n\t\timg.on('mouseleave', (e) => {\n\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\tThis.stage.container().style.cursor = 'grab';\n\t\t\t}\n\t\t});\n\n\t\tThis.layer.add(img);\n\t\t\n\t\tif (item.type === 'image') {\n\t\t\timageObj.src = item.imageUrl;\n\t\t} else {\n\t\t\timageObj.src = item.swatch.fullImageSrc;\n\t\t}\n\t}\n\n\tgenerateNote(pos, openNotepad, transformationAttrs) {\n\t\tconst This = this;\n\t\tlet svgUrl = '../assets/images/singles/moodboard-note.svg';\n\n\t\tKonva.Image.fromURL(this.moodboardNoteImg, (imageNode) => {\n\t\t\tThis.layer.add(imageNode);\n\n\t\t\timageNode.setAttrs({\n\t\t\t\tx: pos.x,\n\t\t\t\ty: pos.y,\n\t\t\t\twidth: 80,\n\t\t\t\theight: 80,\n\t\t\t\tdraggable: true,\n\t\t\t\tdataNote: ' ',\n\t\t\t\titemType: 'notes',\n\t\t\t});\n\n\t\t\tif (transformationAttrs) {\n\t\t\t\timageNode.setAttrs(transformationAttrs);\n\t\t\t}\n\n\t\t\t// on note clicked add to transform node\n\t\t\timageNode.on('mousedown touchstart', (e) => {\n\t\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\t\tThis.transformer.nodes([imageNode]);\n\t\t\t\t\tThis.transformer.rotateEnabled(false);\n\t\t\t\t\tThis.layer.add(This.transformer);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// on note clicked open up notepad\n\t\t\timageNode.on('mouseup touchend', (e) => {\n\t\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\t\tif (imageNode.getAttr('dataNote')) {\n\t\t\t\t\t\tThis.openNotepad({\n\t\t\t\t\t\t\tdataNote: imageNode.getAttr('dataNote'),\n\t\t\t\t\t\t\tid: imageNode._id,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tThis.openNotepad();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\timageNode.on('mouseenter', (e) => {\n\t\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\t\tThis.stage.container().style.cursor = 'pointer';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\timageNode.on('mouseleave', (e) => {\n\t\t\t\tif (!This.isAddNoteActive) {\n\t\t\t\t\tThis.stage.container().style.cursor = 'grab';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (openNotepad) {\n\t\t\t\tThis.transformer.nodes([imageNode]);\n\t\t\t\tThis.transformer.moveToTop();\n\t\t\t\tThis.transformer.rotateEnabled(false);\n\t\t\t\tThis.layer.add(This.transformer);\n\t\t\t\tThis.openNotepad({\n\t\t\t\t\tdataNote: imageNode.getAttr('dataNote'),\n\t\t\t\t\tid: imageNode._id,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tactivateAddNote() {\n\t\tthis.stage.container().style.cursor = `url(${this.noteCursorImg}), auto`;\n\t\tthis.$addNoteBtn.addClass('active');\n\t\tthis.isAddNoteActive = true;\n\t}\n\tdeactivateAddNote() {\n\t\tthis.stage.container().style.cursor = 'auto';\n\t\tthis.$addNoteBtn.removeClass('active');\n\t\tthis.isAddNoteActive = false;\n\t}\n\n\thandleCanvasButtons() {\n\t\tthis.$resetCanvasBtn.on('click', (e) => {\n\t\t\tthis.scaleCenterView();\n\t\t});\n\n\t\tthis.$resetCanvasBtn.on('mouseover', (e) => {\n\t\t\tthis.$resetCanvasBtn.css('cursor','pointer').attr('title',this.centreHoverText);\n\t\t\t\n\t\t});\n\n\t\tthis.$addNoteBtn.on('click', (e) => {\n\t\t\t// this.openNotepad();\n\t\t\tif (this.$addNoteBtn.hasClass('active')) {\n\t\t\t\tthis.deactivateAddNote();\n\t\t\t} else {\n\t\t\t\tthis.activateAddNote();\n\t\t\t}\n\t\t});\n\t\tthis.$addNoteBtn.on('mouseover', (e) => {\n\t\t\tthis.$addNoteBtn.css('cursor','pointer').attr('title',this.notesHoverText);\n\t\t});\n\t\tthis.$zoomInBtn.on('click', (e) => {\n\t\t\tthis.scale = this.zoom(this.stage, this.scale, this.zoomIncriment);\n\t\t});\n\t\tthis.$zoomOutBtn.on('click', (e) => {\n\t\t\tthis.scale = this.zoom(this.stage, this.scale, -this.zoomIncriment);\n\t\t});\n\n\t\tthis.$persistentDrawAddMoodboardBtn.on('click', () => {\n\t\t\tlet selectedSwatches = [];\n\t\t\tthis.$persistentDrawSwatches.find('.woolLabPersistentSwatchDrawer-swatch.selected').each(function(i, item) {\n\t\t\t\tlet selectedSwatch = {'id': $(item).attr('data-id'), 'fullImageSrc': $(item).attr('data-img-src') };\n\t\t\t\tselectedSwatches.push(selectedSwatch);\n\t\t\t});\n\t\t\tthis.addSwatchesToMoodboard(selectedSwatches);\n\t\t});\n\t}\n\n\thandleNotepadButtons() {\n\t\tthis.$notepadCloseBtn.on('click', (e) => {\n\t\t\tthis.closeNotepad();\n\t\t});\n\t\tthis.$notepadPostBtn.on('click', (e) => {\n\t\t\tthis.closeNotepad();\n\t\t\tthis.saveItems();\n\t\t});\n\t\tthis.$notepadDeleteBtn.on('click', (e) => {\n\t\t\tthis.closeNotepad();\n\t\t\tthis.removeItemFromMoodboard(this.activeNoteId);\n\t\t});\n\t}\n\n\tremoveItemFromMoodboard(itemCanvasId) {\n\t\tconst This = this;\n\t\tthis.layer.getChildren(function(node) {\n\t\t\tif (node._id === itemCanvasId) {\n\t\t\t\tnode.destroy();\n\t\t\t\tThis.transformer.nodes([]);\n\t\t\t}\n\t\t});\n\t\tthis.saveItems();\n\t}\n\n\tscaleCenterView() {\n\t\tlet padding = 50;\n\n\t\tlet yMin = 0;\n\n\t\tlet xMin = 0;\n\t\tlet xMax = 1000;\n\t\tthis.layer.getChildren(function (node) {\n\t\t\tif (node.attrs.x < xMin) {\n\t\t\t\txMin = node.attrs.x;\n\t\t\t}\n\n\t\t\tlet nodeWidth = 0;\n\n\t\t\tif (node.getClassName() === 'Image') {\n\t\t\t\tif (node.attrs.width) {\n\t\t\t\t\tnodeWidth = node.attrs.width;\n\t\t\t\t} else if (node.attrs.image.width) {\n\t\t\t\t\tnodeWidth = node.attrs.image.width;\n\t\t\t\t\tlet scaleX = node.attrs.scaleX ? node.attrs.scaleX : 1;\n\t\t\t\t\tnodeWidth = scaleX * nodeWidth;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (node.attrs.x + nodeWidth > xMax) {\n\t\t\t\txMax = node.attrs.x + nodeWidth;\n\t\t\t}\n\n\t\t\tif (node.attrs.y < yMin) {\n\t\t\t\tyMin = node.attrs.y;\n\t\t\t}\n\t\t});\n\n\t\tlet xDif = xMax - xMin + (2 * padding);\n\t\tthis.scale = this.stage.width() / xDif;\n\n\t\tlet xPos = (xMin - padding) * -this.scale;\n\t\tlet yPos = (yMin - padding) * -this.scale;\n\n\t\tthis.stage.scale({x: this.scale, y: this.scale});\n\t\tthis.stage.position({x: xPos, y: yPos});\n\t}\n\n\n\tzoom(stage, zoomBefore, inc) {\n\t\tlet oldScale = stage.scaleX();\n\n\t\tlet zoomPoint = {\n\t\t\tx: ((stage.width() / 2) - stage.x()) / oldScale,\n\t\t\ty: ((stage.height() / 2) - stage.y()) / oldScale,\n\t\t};\n\n\t\tlet zoomAfter = zoomBefore + (zoomBefore * inc);\n\n\t\tstage.scale({x: zoomAfter, y: zoomAfter});\n\n\t\tlet newPos = {\n\t\t\tx: (stage.width() / 2) - zoomPoint.x * zoomAfter,\n\t\t\ty: (stage.height() / 2) - zoomPoint.y * zoomAfter,\n\t\t};\n\n\t\tstage.position(newPos);\n\n\t\treturn zoomAfter;\n\t}\n\n\topenSelectOptions(swatchId) {\n\t\tif (swatchId) {\n\t\t\tthis.activeSwatchId = swatchId;\n\t\t\tthis.$selectOptionsAddMySwatchedBtn.addClass('active');\n\t\t} else {\n\t\t\tthis.$selectOptionsAddMySwatchedBtn.removeClass('active');\n\t\t}\n\t\tthis.$selectOptionsPanel.addClass('active');\n\t\tthis.closeNotepad();\n\t}\n\tcloseSelectOptions() {\n\t\tthis.$selectOptionsAddMySwatchedBtn.removeClass('active');\n\t\tthis.$selectOptionsPanel.removeClass('active');\n\t}\n\n\topenNotepad({dataNote, id}) {\n\t\tthis.closeSelectOptions();\n\t\tif ( this.$notepad.hasClass('active')) {\n\t\t\tthis.saveNotepadText();\n\t\t}\n\n\t\tif (id) {\n\t\t\tthis.activeNoteId = id;\n\t\t}\n\n\t\tif (dataNote && typeof tinymce === 'object') {\n\t\t\t// eslint-disable-next-line no-undef\n\t\t\ttinymce.activeEditor.setContent(dataNote);\n\t\t}\n\n\t\tthis.$notepad.addClass('active');\n\t}\n\n\tcloseNotepad() {\n\t\tif (this.$notepad.hasClass('active')) {\n\t\t\tthis.saveNotepadText();\n\t\t\tthis.$notepad.removeClass('active');\n\t\t}\n\t}\n\n\tsaveNotepadText() {\n\t\tconst This = this;\n\n\t\tif (typeof tinymce === 'object') {\n\t\t\t// eslint-disable-next-line no-undef\n\t\t\tlet notepadContent = tinymce.activeEditor.getContent();\n\n\t\t\t// find active note and update text\n\t\t\tthis.layer.getChildren(function(node) {\n\t\t\t\tif (node._id === This.activeNoteId && notepadContent !== '') {\n\t\t\t\t\tnode.setAttr('dataNote', notepadContent);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\n\thandleOptionBtns() {\n\t\tthis.$optionsBtn.on('click', (e) => {\n\t\t\tthis.$optionsDropdown.toggleClass('active');\n\t\t});\n\n\n\t\tthis.$optionsRenameBtn.on('click', (e) => {\n\t\t\tthis.displayRenameMoodboardModal();\n\t\t});\n\n\t\tthis.$optionsShareBtn.on('click', (e) => {\n\t\t\tthis.generatePdf();\n\t\t});\n\n\t\tthis.$optionsDeleteBtn.on('click', (e) => {\n\t\t\tthis.$deleteMoodboardPanel.addClass('active');\n });\n\t}\n\n\thandleSelectOptionsButtons() {\n\t\tthis.$selectOptionsAddMySwatchedBtn.on('click', (e) => {\n\t\t\tthis.addSwatchToMySwatches();\n\t\t\tthis.closeSelectOptions();\n });\n\t\tthis.$selectOptionsRemoveBtn.on('click', (e) => {\n\t\t\tthis.removeItemFromMoodboard(this.activeImageCanvasId);\n\t\t\tthis.closeSelectOptions();\n });\n\t\tthis.$selectOptionsCloseBtn.on('click', (e) => {\n\t\t\tthis.closeSelectOptions();\n });\n\t}\n\n\taddSwatchToMySwatches() {\n\t\tlet url = `${this.addToMySwatchesApi}`;\n\n\t\tthis.$loadingScreen.addClass('active');\n\t\t$.ajax({\n\t\t\tdata: JSON.stringify([this.activeSwatchId]),\n\t\t\tdataType: 'json',\n\t\t\ttype: 'POST',\n\t\t\turl: url,\n\t\t\tsuccess: (data) => {\n\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t},\n\t\t});\n\t}\n\n\thandleDeleteMoodboardBtns() {\n\t\tthis.$deleteMoodboardPanelDeleteBtn.on('click', (e) => {\n\t\t\tlet url = `${this.deleteMoodboardApi}`;\n\t\t\tlet data = JSON.stringify({id: this.moodboardId});\n\n\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\tthis.$deleteMoodboardPanel.removeClass('active');\n\n\n\t\t\tfetch(url, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdataType: 'json',\n\t\t\t\tbody: data\n\t\t\t}).then((response) => {\n\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\twindow.location.href = this.myMoodboardsUrl;\n\t\t\t}).catch((_error) => {\n\t\t\t});\n\t\t});\n\n\t\tthis.$deleteMoodboardPanelCancelBtn.on('click', (e) => {\n\t\t\tthis.$deleteMoodboardPanel.removeClass('active');\n });\n\t\tthis.$deleteMoodboardPanel.on('click', (e) => {\n\t\t\tif ($(e.target).hasClass(`${CLS}-mooboardDelete-background`)) {\n\t\t\t\tthis.$deleteMoodboardPanel.removeClass('active');\n\t\t\t}\n });\n\t}\n\n\tgetShareSwatchModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabShareSwatchModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabShareSwatchModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabShareSwatchModalBlock\n\t\t\t\twg=\"woolLabShareSwatchModalBlock\"\n\t\t\t\tns=\"WoolLabShareSwatchModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tgeneratePdf(){\n\t\tlet stageCopy = this.stage.clone();\n\t\tvar width = this.stage.width() / this.scale;\n\t\tvar height = this.stage.height() / this.scale;\n\t\tvar posX = -this.stage.x() / this.scale;\n\t\tvar posY = -this.stage.y() / this.scale;\n\n\n var pdf = new jsPDF('l', \"pt\", [width, height]);\n\n\t\tvar layer = new Konva.Layer();\n\t\tstageCopy.add(layer);\n\n\t\tvar background = new Konva.Rect({\n\t\t\tx: posX,\n\t\t\ty: posY,\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tfill: '#F9F9F9'\n\t\t});\n\n\t\tlayer.add(background);\n\t\tlayer.moveToBottom();\n\n\t\tpdf.addImage(\n\t\t\tstageCopy.toDataURL({ mimeType: 'image/jpeg', pixelRatio: 3, quality: 1 }),\n\t\t\t'jpeg',\n\t\t\t0,\n\t\t\t0,\n\t\t\twidth,\n\t\t\theight\n\t\t);\n\n\t\tvar notes = stageCopy.find(node => {\n\t\t\treturn node.attrs.itemType == 'notes';\n\t\t});\n\n\t\tif (notes.length > 0){\n\t\t\tlet nodeIndex = 0;\n\t\t\tlet pageCount = 1;\n\t\t\tlet columnSplit = 4;\n\t\t\tlet dataPageWidth = 1500;\n\t\t\tlet dataPageHeight = dataPageWidth * (height / width);\n\t\t\tlet margin = dataPageWidth / 20;\n\t\t\tlet columnWidth = dataPageWidth / columnSplit - margin;\n\n\t\t\t//We use this recursive function due to an issue with jsPDF.html() - it can't render multiple html elements concurrently\n\t\t\t//Using this recursive function allows us to add one element at a time\n\t\t\tlet addNote = () => {\n\t\t\t\tif (nodeIndex < notes.length) {\n\t\t\t\t\tlet n = notes[nodeIndex];\n\t\t\t\t\tlet nWidth = n.getAttr('width') * n.getAttr('scaleX');\n\t\t\t\t\tlet noteTitle = `

Note ${nodeIndex+1}

`;\n\t\t\t\t\tlet dataPageTitle = `

Note ${nodeIndex+1}

`;\n\t\t\t\t\t\n\t\t\t\t\t// First add the 'Note x' on the note image on canvas\n\t\t\t\t\tpdf.html(noteTitle,{\n\t\t\t\t\t\tx: n.getAttr('x') - posX + 2,\n\t\t\t\t\t\ty: n.getAttr('y') - posY,\n\t\t\t\t\t\twidth: nWidth,\n\t\t\t\t\t\twindowWidth: nWidth,\n\t\t\t\t\t\thtml2canvas: {\n\t\t\t\t\t\t\tbackgroundColor: \"rgba(0, 0, 0, 0)\",\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tcallback: () =>{\n\t\t\t\t\t\t\tif (ceil((nodeIndex+1) / columnSplit) >= pageCount){\n\t\t\t\t\t\t\t\tpdf.addPage([dataPageHeight, dataPageWidth]);\n\t\t\t\t\t\t\t\tpageCount++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tpdf.setPage(pageCount);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t//Then add the actual contents of the note on a new page\n\t\t\t\t\t\t\tlet colIndex = (nodeIndex % columnSplit);\n\t\t\t\t\t\t\tpdf.html(dataPageTitle + n.getAttr('dataNote'),{\n\t\t\t\t\t\t\t\tx: ((columnWidth + margin * ((columnSplit-1) / columnSplit)) * colIndex) + margin,\n\t\t\t\t\t\t\t\ty: (dataPageHeight * (pageCount - 1)) + margin,\n\t\t\t\t\t\t\t\twidth: columnWidth - (margin / (columnSplit + 1)),\n\t\t\t\t\t\t\t\twindowWidth: columnWidth,\n\t\t\t\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\t\t\t\tnodeIndex++;\n\t\t\t\t\t\t\t\t\tpdf.setPage(1);\n\t\t\t\t\t\t\t\t\taddNote();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tpdf.save();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\taddNote();\n\t\t}\n\t}\n\n\tdisplayShareSwatchModal() {\n\t\t$(document.body).append(this.getShareSwatchModalTemplate()(this.data));\n\t\tlet $modal = $('#woolLabShareSwatchModalBlock');\n\n\t\tlet modalData = {};\n\t\tmodalData.shareSwatchesApi = this.shareSwatchesApi;\n\t\tmodalData.selectedSwatchIds = this.swatchIds;\n\n\t\tnew WoolLabShareSwatchModalBlock($modal[0], modalData);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t\t$('body').css('padding-right', '');\n\t\t});\n\t}\n\n\tgetRenameMoodboardModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabRenameMoodboardModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabRenameMoodboardModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabRenameMoodboardModalBlock\n\t\t\t\twg=\"woolLabRenameMoodboardModalBlock\"\n\t\t\t\tns=\"WoolLabRenameMoodboardModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tdisplayRenameMoodboardModal() {\n\t\t$(document.body).append(this.getRenameMoodboardModalTemplate()(this.data));\n\t\tlet $modal = $('#woolLabRenameMoodboardModalBlock');\n\n\t\tnew WoolLabRenameMoodboardModalBlock($modal[0]);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\tlet input = $('.woolLabRenameMoodboardModalBlock-shareSwatch-textInput').val().trim();\n\t\t\tif (input.length > 0) {\n\t\t\t\tthis.moodboardName = input;\n\t\t\t\tthis.saveItems();\n\t\t\t}\n\t\t$modal.remove();\n\t\t$('body').css('padding-right', '');\n\t\t\t\n\t\t});\n\n\t\t\n\t}\n\n\n\taddSwatchesToMoodboard(items) {\n\t\tconst This = this;\n\t\tif (items.length > 0) {\n\t\t\titems.forEach((item, i) => {\n\t\t\t\tlet pos = {x: 100 + (i * this.newItemGridSpacing), y: 100 };\n\t\t\t\tlet swatchItem = {'type': 'swatch', 'swatch': item};\n\t\t\t\tThis.generateImage(pos, swatchItem);\n\t\t\t});\n\t\t}\n\t\tthis.saveSwatchesFromPD();\n\t}\n}\n","const NS = 'WoolLabMyMoodboardsBlock';\nconst CLS = 'woolLabMyMoodboardsBlock';\n\nimport Handlebars from 'handlebars';\nimport { param } from 'jquery';\nimport utils from '../utils';\n\n\nexport class WoolLabMyMoodboardsBlock {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.$moodboardContainer = this.$el.find(`.${CLS}-moodboards`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.$myMoodboardsEmpty = this.$el.find(`.${CLS}-myMoodboards-empty`);\n\n\t\tthis.moodboardContainer = [];\n\t\tthis.$searchInp = this.$el.find(`.${CLS}-searchInput`);\n\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.$loadMore = this.$el.find(`.${CLS}-searchResults-loadMore`);\n\t\tthis.loadingMoodboards = false;\n\t\tthis.allMoodboardsLoaded = false;\n\n\t\tthis.getMoodboardsApi = this.$el.data('getMoodboardsApi');\n\t\tthis.moodboardBaseUrl = this.$el.data('moodboardBaseUrl');\n\t\tthis.$moodboards = this.$el.find(`.${CLS}-moodboard`);\n\n\t\tthis.pageSize = 30;\n\t\tthis.pageNumber = 1;\n\n\t\tthis.params = {\n\t\t\t// siteId: this.siteId,\n\t\t\tcount: this.pageSize,\n\t\t\toffset: 0,\n\t\t\t// pageSize: this.pageSize,\n\t\t\t// keyword: this.$searchInp.val() || ''\n\t\t};\n\n\t\tthis.handleSearchInput();\n\t\tthis.handleScrollLoading();\n\t\tthis.getItems(false);\n\t}\n\n\n\t// Get items (reload content)\n\tgetItems(loadMoreMoodboards) {\n\n\t\tif (!this.loadingMoodboards && !this.allMoodboardsLoaded) {\n\t\t\tthis.loadingMoodboards = true;\n\n\t\t\tlet url = this.getMoodboardsApi;\n\n\t\t\tif (loadMoreMoodboards) {\n\t\t\t\tthis.setPageNumber(this.pageNumber + 1);\n\t\t\t\tthis.$loadMore.addClass('active');\n\t\t\t} else {\n\t\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\t}\n\n\t\t\tif (!_.isEmpty(this.params)) {\n\t\t\t\turl += `?${$.param(this.params)}`;\n\t\t\t}\n\n\t\t\tthis.updateUrl();\n\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\n\t\t\t\t\tthis.$myMoodboardsEmpty.hide();\n\n\t\t\t\t\tif (!loadMoreMoodboards) {\n\t\t\t\t\t\tthis.$moodboardContainer.empty();\n\t\t\t\t\t}\n\n\t\t\t\t\tlet moodboardMarkup = (moodboard) => {\n\t\t\t\t\t\tlet imgMarkup = '';\n\t\t\t\t\t\tif (moodboard.images.length > 0) {\n\t\t\t\t\t\t\tfor (let i = 0; i < 4; i++) {\n\t\t\t\t\t\t\t\timgMarkup += (``)\n \t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet markup = `\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
`\n\t\t\t\t\t\t\t\t\t\t+ imgMarkup +\n\t\t\t\t\t\t\t\t\t`
\n\t\t\t\t\t\t\t\t\t

${moodboard.name}

\n\t\t\t\t\t\t\t\t\t

${moodboard.swatchCount} ${moodboard.swatchCount === 1 ? 'swatch' : 'swatches'}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
`;\n\n\t\t\t\t\t\treturn markup;\n\t\t\t\t\t};\n\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\tthis.$moodboardContainer.append(moodboardMarkup(item));\n\t\t\t\t\t\t});\n\t\t\t\t\t\tthis.$moodboards = this.$el.find(`.${CLS}-moodboard`);\n\t\t\t\t\t\tthis.$moodboards.on('click', (ele) => {\n\t\t\t\t\t\t\tvar moodboard = $(ele.currentTarget);\n\t\t\t\t\t\t\twindow.location.href = `${this.moodboardBaseUrl}?id=${moodboard.data('id')}`\n\t\t\t\t\t\t});\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (loadMoreMoodboards) {\n\t\t\t\t\t\t\tthis.allMoodboardsLoaded = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$myMoodboardsEmpty.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t\tthis.$loadMore.removeClass('active');\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t\tconsole.log(error);\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingMoodboards = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t// Update url after filters change\n\tupdateUrl() {\n\t\tlet uri = document.location.pathname;\n\n\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\turi = utils.updateQueryStringParameter(uri, key, this.params[key]);\n\t\t});\n\n\t\t// update url without reload\n\t\twindow.history.pushState('', '', uri);\n\t}\n\n\t// Search text input - on type\n\thandleSearchInput() {\n\t\tthis.$searchInp.on('keyup', (event) => {\n\t\t\tlet input = $(event.currentTarget).val().trim();\n\t\t\tlet filter = input.toUpperCase();\n\n\t\t\tif (this.$moodboards.length > 0) {\n\t\t\t\tthis.$moodboards.map((i, obj) => {\n\t\t\t\t\tlet txtValue = $(obj).attr('data-name');\n\t\t\t\t\tif (txtValue.toUpperCase().indexOf(filter) > -1) {\n\t\t\t\t\t\tobj.style.display = '';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tobj.style.display = 'none';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tvar totalMoodboard = 0;\n var displayNone = 0;\n $(\".woolLabMyMoodboardsBlock-moodboard\").each(function() {\n totalMoodboard++;\n });\n $(\".woolLabMyMoodboardsBlock-moodboard\").each(function() {\n if($( this ).css(\"display\") == \"none\"){\n displayNone ++;\n }\n });\n if (displayNone == totalMoodboard) {\n\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\n\thandleScrollLoading() {\n\n\t\tlet offsetFromBottom = 200;\n\n\t\tconst This = this;\n\n\t\t$(document).on('touchmove', onScroll); // for mobile\n\t\tfunction onScroll() {\n\t\t\tif ($(window).scrollTop() + offsetFromBottom > $(document).height() - $(window).height()-100) {\n\t\t\t\tThis.getItems(true);\n\t\t\t}\n\t\t}\n\n\t\t$(window).scroll(function() {\n\t\t\tlet position = $(window).scrollTop() + offsetFromBottom;\n\t\t\tlet bottom = $(document).height() - $(window).height();\n\n\t\t\tif ( position >= bottom ) {\n\t\t\t This.getItems(true);\n\t\t\t}\n\t\t });\n\t}\n\n\tsetPageNumber(newPageNumber) {\n\t\tthis.pageNumber = newPageNumber;\n\t\tthis.params.offset = (this.pageNumber - 1) * this.pageSize;\n\t}\n}\n","const NS = 'WoolLabMySwatchesBlock';\nconst CLS = 'woolLabMySwatchesBlock';\nconst CLS_MB_ACTIVE = 'is-active';\n\nimport Handlebars from 'handlebars';\nimport { param } from 'jquery';\nimport { WoolLabSwatchBlock } from './woolLabSwatchBlock';\nimport {WoolLabShareSwatchModalBlock} from './woolLabShareSwatchModalBlock';\nimport utils from '../utils';\nimport { forEach, identity } from 'lodash';\n\n\nexport class WoolLabMySwatchesBlock {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.$filterKeys = this.$el.find(`[data-filter-key]`);\n\t\tthis.$filterDropdown = this.$el.find(`.${CLS}-filters-dropdown`);\n\t\tthis.$filterDropdownBtn = this.$el.find(`.${CLS}-filters-dropdown-btn`);\n\t\tthis.$fabricSwatches = this.$el.find(`.${CLS}-swatches`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.$loadMoreSpinner = this.$el.find(`.${CLS}-loadMore-spinner`);\n\t\tthis.fabricSwatches = [];\n\t\tthis.$searchInp = this.$el.find(`.${CLS}-searchInput`);\n\t\tthis.$refineFilterBtn = this.$el.find(`.${CLS}-filterToggle.btnRefine`);\n\t\tthis.$clearFilterBtn = this.$el.find(`.${CLS}-filterToggle.btnClear`);\n\t\tthis.$selectFilterBtn = this.$el.find(`.${CLS}-filterToggle.btnSelect`);\n\t\tthis.$filterRefined = this.$el.find(`.${CLS}-searchBar-refined`);\n\t\tthis.$selectBtns = this.$el.find(`.${CLS}-swatchSelect-buttons`);\n\t\tthis.$season = this.$el.find(`#season`);\n\t\tthis.$theme = this.$el.find(`#theme`);\n\t\tthis.$certified = this.$el.find(`#certified`);\n\t\tthis.$supplier = this.$el.find(`#supplier`);\n\t\tthis.$country = this.$el.find(`#country`);\n\t\tthis.$benefits = this.$el.find(`#benefits`);\n\t\tthis.$archived = this.$el.find(`#archived`);\n\n\t\tthis.$displayGridBtn = this.$el.find(`.${CLS}-displayTglBtn.gridBtn`);\n\t\tthis.$displayListViewBtn = this.$el.find(`.${CLS}-displayTglBtn.listViewBtn`);\n\t\tthis.getAllThemes = this.$el.find(`#theme`).data('allThemes');\n\n\t\tthis.shareSwatchesApi = this.$el.data('shareSwatchesApi');\n\t\tthis.removeSwatchesApi = this.$el.data('removeSwatchesApi');\n\t\tthis.getSupplierInfoApi = this.$el.data('supplierInfoApi');\n\n\t\tthis.getSwatchDetailApi = this.$el.data('swatchDetailApi');\n\t\tthis.getSupplierDetailApi = this.$el.data('getSupplierDetailApi');\n\t\tthis.isInMySwatchesApi = this.$el.data('isInMySwatchesApi');\n\t\tthis.getSwatchesApi = this.$el.data('swatchesApi');\n\t\tthis.getFiltersApi = this.$el.data('filtersApi');\n\t\tthis.getMoodboardsApi = this.$el.data('getMoodboardsApi');\n\t\tthis.createMoodboardApi = this.$el.data('createMoodboardApi');\n\t\tthis.addToMoodboardApi = this.$el.data('addToMoodboardApi');\n\t\tthis.isStudent= this.$el.data('isstudent');\n\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.$loadMore = this.$el.find(`.${CLS}-searchResults-loadMore`);\n\t\tthis.loadingSwatches = false;\n\t\tthis.allSwatchesLoaded = false;\n\n\t\tthis.$swatchBlock = [];\n\n\t\tthis.$removePanel = this.$el.find(`.${CLS}-swatchSelect-removePanel`);\n\t\tthis.$removePanelRemoveBtn = this.$el.find(`.${CLS}-swatchSelect-removePanel-remove`);\n\t\tthis.$removePanelCancelBtn = this.$el.find(`.${CLS}-swatchSelect-removePanel-cancel`);\n\n\t\tthis.selectedSwatchIds = [];\n\t\tthis.$swatchSelectPanel = this.$el.find(`.${CLS}-swatchSelect-panel`);\n\t\tthis.$swatchSelectCount = this.$el.find(`.${CLS}-swatchSelect-text-count`);\n\t\tthis.$swatchSelectClearBtn = this.$el.find(`.${CLS}-swatchSelect-clear-btn`);\n\n\t\tthis.$swatchSelectGetSupplierBtn = this.$el.find(`.${CLS}-swatchSelect-getSupplier`);\n\t\tthis.$swatchSelectShareBtn = this.$el.find(`.${CLS}-swatchSelect-share`);\n\t\tthis.$swatchSelectRemoveBtn = this.$el.find(`.${CLS}-swatchSelect-remove`);\n\n\t\tthis.$swatchSelectSaveBtn = this.$el.find(`.${CLS}-swatchSelect-save-btn`);\n\n\t\tthis.pageSize = 30;\n\t\tthis.pageNumber = 1;\n\n\t\tvar url_string = window.location.href; \n\t\tvar url = new URL(url_string);\n\t\tthis.$urlkeyword = url.searchParams.get(\"keyword\");\n\t\tthis.$urltheme = url.searchParams.get(\"theme\");\n\t\tthis.$urlseason = url.searchParams.get(\"season\");\n\t\tthis.$urlcertified = url.searchParams.get(\"certified\");\n\t\tthis.$urlcountry = url.searchParams.get(\"country\");\n\t\tthis.$urlsupplier = url.searchParams.get(\"supplier\");\n\t\tthis.$urlbenefits = url.searchParams.get(\"benefits\");\n\t\tthis.$urlarchived = url.searchParams.get(\"archived\");\n\t\t//this.$urlcolour = url.searchParams.get(\"colour\");\n\t\t//this.$urlweight = url.searchParams.get(\"weight\");\n\t\t//this.$urlcharacteristic = url.searchParams.get(\"characteristic\");\n\n\t\tthis.initParams();\n\t\t$('.selectpicker').selectpicker('destroy').selectpicker();\n\t\tthis.handleDisplayToggleButtons();\n\t\tthis.handleSearchInput();\n\t\tthis.handleFilterToggleBtn(this.getAllThemes);\n\t\tthis.handleSavePanelBtns();\n\t\tthis.handleRemovePanelBtns();\n\t\tthis.handlePanelBtnsVisibility();\n\t\tthis.handleScrollLoading();\n\t\tthis.getFilters(false);\n\t\tthis.getItems(false);\n\t\tthis.initFilterKeys();\n\n\t\tthis.initFeatureFlags();\n\n\t}\n\n\tinitParams(){\n\t\tthis.params = {\n\t\t\t// siteId: this.siteId,\n\t\t\tcount: this.pageSize,\n\t\t\toffset: 0,\n\t\t\t// pageSize: this.pageSize,\n\t\t\t// keyword: this.$searchInp.val() || ''\n\t\t\tkeyword: this.$urlkeyword || '',\n\t\t\ttheme: this.$urltheme || '',\n\t\t\tseason: this.$urlseason || '',\n\t\t\tcertified: this.$urlcertified || '',\n\t\t\tcountry: this.$urlcountry || '',\n\t\t\tsupplier: this.$urlsupplier || '',\n\t\t\tbenefits: this.$urlbenefits || '',\n\t\t\tarchived: this.$urlarchived || 'false'\n\t\t\t//colour: this.$urlcolour || '',\n\t\t\t//weight: this.$urlweight || '',\n\t\t\t//characteristic: this.$urlcharacteristic || ''\n\t\t};\n\t}\n\n\n\tgetWoolLabSwatchBlockTemplate() {\n\t\tlet woolLabSwatchBlock = require('../../partials/widgets/woolLabSwatchBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSwatchBlock', woolLabSwatchBlock);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSwatchBlock\n\t\t\t\twg=\"woolLabSwatchBlock\"\n\t\t\t\tns=\"WoolLabSwatchBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tgetFilters(archived){\n\t\tlet url = this.getFiltersApi;\n\t\tif (!_.isEmpty(this.params)) {\n\t\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\t\tif(key === \"archived\"){\n\t\t\t\t\turl = utils.updateQueryStringParameter(url, key, this.params[key]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.updateUrl();\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\t\t\t\t\tif(archived != false){\n\t\t\t\t\t\tthis.$season.empty();\n\t\t\t\t\t\tthis.$theme.empty();\n\t\t\t\t\t\tthis.$certified.empty();\n\t\t\t\t\t\tthis.$supplier.empty();\n\t\t\t\t\t\tthis.$country.empty();\n\t\t\t\t\t\tthis.$benefits.empty();\n\t\t\t\t\t}\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\tif(item.name == \"season\" && item.options){\n\t\t\t\t\t\t\t\titem.seasonOptions.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlseason !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlseason.includes(options.name)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$season.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$season.append(``);\n\t\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$season.append(``);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"theme\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urltheme !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urltheme.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$theme.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$theme.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$theme.append(``);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"certified\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlcertified !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlcertified.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$certified.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$certified.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$certified.append(``);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"country\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlcountry !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlcountry.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$country.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$country.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$country.append(``);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"benefits\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlbenefits !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlbenefits.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(``);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"supplier\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlsupplier !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlsupplier.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$supplier.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$supplier.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$supplier.append(``);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(archived != false){\n\t\t\t\t\t\tthis.params.season = '';\n\t\t\t\t\t\tthis.params.theme = '';\n\t\t\t\t\t\tthis.params.certified = '';\n\t\t\t\t\t\tthis.params.country = '';\n\t\t\t\t\t\tthis.params.benefits = '';\n\t\t\t\t\t\tthis.params.supplier = '';\n\t\t\t\t\t}\n\t\t\t\t\tthis.selectpickerRefresh();\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t\tconsole.log(error);\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tconsole.log(\"complete\");\n\t\t\t\t\tthis.loadingSwatches = false;\n\t\t\t\t},\n\t\t\t});\n\t}\n\n\tselectpickerRefresh(){\n\t\tthis.$theme.selectpicker('refresh');\n\t\tthis.$season.selectpicker('refresh');\n\t\tthis.$certified.selectpicker('refresh');\n\t\tthis.$country.selectpicker('refresh');\n\t\tthis.$benefits.selectpicker('refresh');\n\t\tthis.$supplier.selectpicker('refresh');\n\t}\n\t// Get items (reload content)\n\tgetItems(loadMoreSwatches) {\n\t\tif($(this.$searchResultsEmpty).hasClass(\"active\")){\n loadMoreSwatches = false;\n\t\t\t$(this.$loadingScreen).hide();\n }\n\t\tif (!this.loadingSwatches && (!this.allSwatchesLoaded || !loadMoreSwatches)) {\n\t\t\tthis.loadingSwatches = true;\n\n\t\t\tlet url = this.getSwatchesApi;\n\n\t\t\tif (loadMoreSwatches) {\n\t\t\t\tthis.setPageNumber(this.pageNumber + 1);\n\t\t\t\tthis.$loadMore.addClass('active');\n\t\t\t} else {\n\t\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\t}\n\t\t\tif (!_.isEmpty(this.params)) {\n\t\t\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\t\t\turl = utils.updateQueryStringParameter(url, key, encodeURIComponent(this.params[key]));\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.updateUrl();\n\n\t\t\tfetch(`${this.isStudent}`, {\n\t\t\t\tmethod: 'GET',\n\t\t\t}).then((response) => {\n\t\t\t\treturn response.json();\n\t\t\t}).then((_json) => {\n\t\t\t\tthis.isStudentValue = _json;\n\t\t\t}).catch((_error) => { });\n\n\t\t\treturn $.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\n\t\t\t\t\tif (!loadMoreSwatches) {\n\t\t\t\t\t\tthis.$fabricSwatches.empty();\n\t\t\t\t\t}\n\n\t\t\t\t\tlet fabricSwatchMarkup = (markup) => {\n\t\t\t\t\t\treturn `\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t${(markup)}\n\t\t\t\t\t\t\t
`;\n\t\t\t\t\t};\n\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\t// item.userName = this.username;\n\t\t\t\t\t\t\titem.getSwatchDetailApi = this.getSwatchDetailApi;\n\t\t\t\t\t\t\titem.getSupplierDetailApi = this.getSupplierDetailApi;\n\t\t\t\t\t\t\titem.isInMySwatchesApi = this.isInMySwatchesApi;\n\t\t\t\t\t\t\titem.getMoodboardsApi = this.getMoodboardsApi;\n\t\t\t\t\t\t\titem.addToMoodboardApi = this.addToMoodboardApi;\n\t\t\t\t\t\t\titem.createMoodboardApi = this.createMoodboardApi;\n\t\t\t\t\t\t\titem.isStudent = this.isStudent;\n\t\t\t\t\t\t\tlet $column = this.$fabricSwatches.append(fabricSwatchMarkup(this.getWoolLabSwatchBlockTemplate()(item)));\n\t\t\t\t\t\t\tnew WoolLabSwatchBlock($column.find(`[data-wg=\"WoolLabSwatchBlock\"]`).last()[0], item);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.$swatchBlock = this.$el.find('.woolLabSwatchBlock');\n\t\t\t\t\t\tthis.handleSwatchBtn();\n\t\t\t\t\t\t// this.getMySwatches();\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (loadMoreSwatches) {\n\t\t\t\t\t\t\tthis.allSwatchesLoaded = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t\t\t\tthis.$searchResultsEmpty.addClass(\"active\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t\tthis.$loadMore.removeClass('active');\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingSwatches = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\n\t// Update url after filters change\n\tupdateUrl() {\n\t\tlet uri = document.location.pathname;\n\n\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\turi = utils.updateQueryStringParameter(uri, key, encodeURIComponent(this.params[key]));\n\t\t});\n\n\t\t// update url without reload\n\t\twindow.history.pushState('', '', uri);\n\t}\n\n\n\t// Refined Filters toggle button\n\thandleDisplayToggleButtons() {\n\t\tthis.$displayGridBtn.on('click', () => {\n\t\t\tif (!this.$displayGridBtn.hasClass('selected')) {\n\t\t\t\tthis.$displayGridBtn.addClass('selected');\n\t\t\t\tthis.$el.addClass('displayGrid');\n\n\t\t\t\tthis.$displayListViewBtn.removeClass('selected');\n\t\t\t\tthis.$el.removeClass('displayListView');\n\t\t\t}\n\t\t});\n\t\tthis.$displayListViewBtn.on('click', () => {\n\t\t\tif (!this.$displayListViewBtn.hasClass('selected')) {\n\t\t\t\tthis.$displayListViewBtn.addClass('selected');\n\t\t\t\tthis.$el.addClass('displayListView');\n\n\t\t\t\tthis.$displayGridBtn.removeClass('selected');\n\t\t\t\tthis.$el.removeClass('displayGrid');\n\t\t\t}\n\t\t});\n\t}\n\n\thandleFilterToggleBtn(getAllThemes) {\n\t\tthis.$refineFilterBtn.on('click', () => {\n\t\t\tif(this.$refineFilterBtn.hasClass(CLS_MB_ACTIVE)) {\n\t\t\t\tthis.$refineFilterBtn.removeClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$filterRefined.removeClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$el.removeClass('refined-open');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$refineFilterBtn.addClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$filterRefined.addClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$el.addClass('refined-open');\n\t\t\t}\n\t\t});\n\n\t\tthis.$clearFilterBtn.on('click', () => {\n\t\t\tthis.initParams();\n\t\t\tthis.setPageNumber(1);\n\t\t\tthis.allSwatchesLoaded = false;\n\t\t\twindow.scrollTo(0, 0);\n\t\t\tthis.selectedSwatchIds = [];\n\t\t\tthis.updateSelectedSwatchCount();\n\t\t\tthis.selectpickerRefresh();\n\t\t\tthis.getItems(false);\n\t\t\tthis.$searchInp.val('');\n\t\t\t$(\".selectpicker\").selectpicker('deselectAll');\n\t\t\t$('#supplier').selectpicker('val', '');\n\t\t\t$('#certified').selectpicker('val', '');\n\t\t\t$('#archived').selectpicker('val', 'false');\n\t\t\tthis.$theme.selectpicker('val', '');\n\t\t\tthis.$season.selectpicker('val', '');\n\t\t\tthis.$certified.selectpicker('val', '');\n\t\t\tthis.$country.selectpicker('val', '');\n\t\t\tthis.$benefits.selectpicker('val', '');\n\t\t});\n\t\tthis.$selectFilterBtn.on('click', () => {\n\t\t\tif(this.$selectFilterBtn.hasClass(CLS_MB_ACTIVE)) {\n\t\t\t\tthis.$selectFilterBtn.removeClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.selectedSwatchIds = [];\n\t\t\t\tthis.$swatchBlock.removeClass('selected')\n\t\t\t\tthis.updateSelectedSwatchCount();\n\t\t\t\tthis.$swatchSelectRemoveBtn.css('display', 'none');\n\t\t\t\tthis.$swatchSelectGetSupplierBtn.css('display', 'none');\n\t\t\t\tthis.$selectBtns.append('');\n\t\t\t\tthis.$selectBtns.append('');\t\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$selectFilterBtn.addClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.params.count = 1000;\n\t\t\t\tthis.getItems(true)\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.selectedSwatchIds = [];\n\t\t\t\t\tthis.$swatchBlock.addClass('selected');\n\t\t\t\t\tfor (let swatch of this.$swatchBlock){\n\t\t\t\t\t\t\tthis.selectedSwatchIds.push($(swatch).attr('data-id'));\n\t\t\t\t\t}\n\t\t\t\t\tthis.updateSelectedSwatchCount();\n\n\t\t\t\t\t// Now reset params to normal page size\n\t\t\t\t\tthis.params.count = this.pageSize;\n\t\t\t\t});\n\t\t\t\tthis.$swatchSelectRemoveBtn.css('display', 'block');\n\t\t\t\tthis.$swatchSelectGetSupplierBtn.css('display', 'block');\n\t\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-remove-btn').remove();\n\t\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-getSupplier-btn').remove();\n\t\t\t}\n\t\t});\n\t}\n\n\tinitFilterKeys() {\n\n\t\tthis.$woolLabSwatchBlock = this.$fabricSwatches.find(`[data-wg=\"WoolLabSwatchBlock\"]`);\n\t\tthis.$filterKeys.on('change', (event) => {\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tlet filterKey = $element.data('filterKey') || '';\n\t\t//let value = $element.attr('value') || '';\n\t\tlet value = [];\n\t\tvalue.push($element.val());\n\t\tthis.$el.find(`[data-filter-key=\"${filterKey}\"]`).removeClass('active');\n\t\t$element.addClass('active');\n\n\t\tif(!(_.isNil(this.params[filterKey]) && value === '')) {\n\t\t\t// Ensure that the filterKey does not match the current select value\n\t\t\tif(this.params[filterKey] !== value) {\n\t\t\t\tif(_.isNil(value) || value === '') {\n\t\t\t\t\tdelete this.params[filterKey];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(filterKey === \"benefits\"){\n\t\t\t\t\t\tvalue = value[0].join(\";\");\n\t\t\t\t\t}\n\t\t\t\t\tthis.params[filterKey] = value;\n\t\t\t\t}\n\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSwatchesLoaded = false;\n\t\t\t\tif(filterKey === \"archived\"){\n\t\t\t\t\tthis.getFilters(true);\n\t\t\t\t}\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\n\t// Search text input - on type\n\thandleSearchInput() {\n\t\tthis.$searchInp.on('keyup', (event) => {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.params['keyword'] = $(event.currentTarget).val().trim();\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSwatchesLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t});\n\t}\n\n\n\t// Swatch button\n\thandleSwatchBtn() {\n\t\tthis.$swatchBlock.off('click.addSave');\n\t\tthis.$swatchBlock.on('click.addSave', (e) => {\n\t\t\tlet $target = $(e.target);\n\t\t\tlet $swatch = $(e.currentTarget);\n\t\t\t\n\t\t\tif ($target.hasClass('woolLabSwatchBlock-btnAddSave')) {\n\t\t\t\t// add to saved button clicked\n\n\t\t\t\tif ($swatch.hasClass('selected')) {\n\t\t\t\t\t$swatch.removeClass('selected');\n\t\t\t\t\tthis.$selectFilterBtn.removeClass(CLS_MB_ACTIVE);\n\n\t\t\t\t\tlet filteredItems = this.selectedSwatchIds.filter((item) => item !== $swatch.attr('data-id'));\n\t\t\t\t\tthis.selectedSwatchIds = filteredItems;\n\t\t\t\t\tthis.handlePanelBtnsVisibility();\n\t\t\t\t} else {\n\t\t\t\t\t// if first swatch is already saved to my swatches\n\t\t\t\t\tif (this.selectedSwatchIds == 0 && $swatch.attr('data-saved-myswatches') == 'true') {\n\t\t\t\t\t\tthis.$swatchSelectPanel.find('[data-location=\"mySwatches\"]').addClass('selected');\n\t\t\t\t\t}\n\n\t\t\t\t\t$swatch.addClass('selected');\n\t\t\t\t\tthis.selectedSwatchIds.push($swatch.attr('data-id'));\n\n\t\t\t\t\tif (this.$swatchBlock.toArray().every((swatch) => $(swatch).hasClass('selected'))){\n\t\t\t\t\t\tthis.$selectFilterBtn.addClass(CLS_MB_ACTIVE);\n\t\t\t\t\t}\n\t\t\t\t\tthis.handlePanelBtnsVisibility();\n\t\t\t\t}\n\t\t\t\tthis.updateSelectedSwatchCount();\n\t\t\t}\n\t\t});\n\t}\n\n\thandleScrollLoading() {\n\n\t\tlet offsetFromBottom = 200;\n\n\t\tconst This = this;\n\n\t\t$(document).on('touchmove', onScroll); // for mobile\n\t\tfunction onScroll() {\n\t\t\tif ($(window).scrollTop() + offsetFromBottom > $(document).height() - $(window).height()-400) {\n\t\t\t\tThis.getItems(true);\n\t\t\t}\n\t\t}\n\n\t\t$(window).scroll(function() {\n\t\t\tlet position = $(window).scrollTop() + offsetFromBottom;\n\t\t\tlet bottom = $(document).height() - $(window).height();\n\n\t\t\tif ( position >= bottom ) {\n\t\t\t This.getItems(true);\n\t\t\t}\n\t\t });\n\t}\n\n\n\thandleSavePanelBtns() {\n\t\tthis.$swatchSelectClearBtn.on('click', (e) => {\n this.resetSavePanel();\n });\n\n\t\tthis.$swatchSelectGetSupplierBtn.on('click', (e) => {\n\t\t\tlet url = `${this.getSupplierInfoApi}?swatchIds=${encodeURIComponent(this.selectedSwatchIds)}`;\n\n\t\t\twindow.open(url, '_blank').focus();\n\t\t\tthis.resetSavePanel();\n\t\t\tthis.handlePanelBtnsVisibility();\n\t\t});\n\n\t\tthis.$swatchSelectShareBtn.on('click', (e) => {\n\t\t\tthis.displayShareSwatchModal();\n\t\t});\n\n\t\tthis.$swatchSelectRemoveBtn.on('click', (e) => {\n\t\t\tthis.$removePanel.addClass('active');\n });\n\t}\n\n\thandleRemovePanelBtns() {\n\t\tthis.$removePanelRemoveBtn.on('click', (e) => {\n\t\t\tlet url = `${this.removeSwatchesApi}`;\n\t\t\tlet data = JSON.stringify(this.selectedSwatchIds);\n\n\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\tthis.$removePanel.removeClass('active');\n\t\t\tthis.resetSavePanel();\n\n\n\t\t\tfetch(url, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tdataType: 'json',\n\t\t\t\tbody: data\n\t\t\t}).then((response) => {\n\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.getItems(false);\n\t\t\t\treturn response.json();\n\t\t\t}).then((_json) => {\n\t\t\t}).catch((_error) => {\n\t\t\t});\n\t\t});\n\n\t\tthis.$removePanelCancelBtn.on('click', (e) => {\n\t\t\tthis.$removePanel.removeClass('active');\n });\n\t}\n\n\thandlePanelBtnsVisibility() {\n\t\tif (this.selectedSwatchIds.length == 0){\n\t\t\tthis.$swatchSelectRemoveBtn.css('display', 'none');\n\t\t\tthis.$swatchSelectGetSupplierBtn.css('display', 'none');\n\t\t\tthis.$selectBtns.append('');\n\t\t\tthis.$selectBtns.append('');\n\t\t}\n\t\telse{\n\t\t\tif(this.isStudentValue === true)\n\t\t\t{\n\t\t\tthis.$swatchSelectRemoveBtn.css('display', 'block');\n\t\t\tthis.$swatchSelectGetSupplierBtn.css('display', 'none');\n\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-remove-btn').remove();\n\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-getSupplier-btn').remove();\n\t\t\t$('#supplier').css('display', 'none');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tthis.$swatchSelectRemoveBtn.css('display', 'block');\n\t\t\tthis.$swatchSelectGetSupplierBtn.css('display', 'block');\n\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-remove-btn').remove();\n\t\t\t$('button.woolLabMySwatchesBlock-swatchSelect-getSupplier-btn').remove();\n\t\t\t}\n\t\t\t\n\t\t}\n\t\tif (!this.shareSwatchesApi){\n\t\t\tthis.$swatchSelectShareBtn.remove();\n\t\t}\t\t\n\t}\n\n\tresetSavePanel() {\n\t\tthis.selectedSwatchIds = [];\n\t\tthis.$swatchBlock.removeClass('selected');\n\t\tthis.$selectFilterBtn.removeClass(CLS_MB_ACTIVE);\n\t\tthis.updateSelectedSwatchCount();\n\t}\n\n\n updateSelectedSwatchCount() {\n\t\tthis.$swatchSelectCount.html(this.selectedSwatchIds.length + (this.selectedSwatchIds.length == 1 ? ' swatch' : ' swatches'));\n\t\t// for hide and show the supplier bar, hide the function for now.\n /*if (this.selectedSwatchIds.length > 0 ) {\n\t\t\tthis.$swatchSelectPanel.addClass('active');\n } else {\n\t\t\tthis.$swatchSelectPanel.removeClass('active');\n }*/\n }\n\n\n\tgetShareSwatchModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabShareSwatchModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabShareSwatchModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabShareSwatchModalBlock\n\t\t\t\twg=\"woolLabShareSwatchModalBlock\"\n\t\t\t\tns=\"WoolLabShareSwatchModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tdisplayShareSwatchModal() {\n\t\t$(document.body).append(this.getShareSwatchModalTemplate()(this.data));\n\t\tlet $modal = $('#woolLabShareSwatchModalBlock');\n\n\t\tlet modalData = {};\n\t\tmodalData.shareSwatchesApi = this.shareSwatchesApi;\n\t\tmodalData.selectedSwatchIds = this.selectedSwatchIds;\n\n\t\tnew WoolLabShareSwatchModalBlock($modal[0], modalData);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t\t$('body').css('padding-right', '');\n\t\t});\n\t}\n\n\tsetPageNumber(newPageNumber) {\n\t\tthis.pageNumber = newPageNumber;\n\t\tthis.params.offset = (this.pageNumber - 1) * this.params.count;\n\t}\n}\n","const NS = 'WoolLabOnboardingBlock';\nconst CLS = 'woolLabOnboardingBlock';\n\nimport Handlebars from 'handlebars';\nimport slick from 'slick-carousel';\n\nexport class WoolLabOnboardingBlock {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.$questionsCarousel = this.$el.find(`.${CLS}-questionsCarousel`);\n\t\tthis.$questionContainer = this.$el.find(`.${CLS}-questionContainer`);\n\t\tthis.$nextBtn = this.$el.find(`.${CLS}-nextBtn`);\n\t\tthis.$prevBtn = this.$el.find(`.${CLS}-prevBtn`);\n\n\t\tthis.$progressBarInner = this.$el.find(`.${CLS}-progressBar-inner`);\n\n\t\tthis.$sliderPrevBtn = this.$el.find(`.${CLS}-slider-nextBtn`);\n\t\tthis.$sliderNextBtn = this.$el.find(`.${CLS}-slider-nextBtn`);\n\t\tthis.$questionCount = this.$el.find(`.${CLS}-questionCount`);\n\n\t\tthis.$startScreen = this.$el.find(`.${CLS}-startScreen`);\n\t\tthis.$startBtn = this.$el.find(`.${CLS}-startScreen-startBtn`);\n\t\tthis.$endScreen = this.$el.find(`.${CLS}-endScreen`);\n\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-loadingScreen`);\n\n\t\tthis.onLastSlide = false;\n\t\tthis.currentSlide = 1;\n\n\t\tthis.$form = this.$el.find(`.${CLS}-form`);\n\t\tthis.$formAction = this.$form.attr('action');\n\n\t\tthis.$questionsCarousel.on('init reInit afterChange', (event, slick, currentSlide, nextSlide) => {\n\t\t\tlet i = (currentSlide ? currentSlide : 0) + 1;\n\n\t\t\tthis.currentSlide = i;\n\n\t\t\tif (i / slick.slideCount >= 1) {\n\t\t\t\tthis.onLastSlide = true;\n\t\t\t} else {\n\t\t\t\tthis.onLastSlide = false;\n\t\t\t}\n\n\t\t\tthis.$questionCount.html('question ' + i + '/' + slick.slideCount);\n\t\t\tlet percentage = i/slick.slideCount;\n\t\t\tthis.$progressBarInner.css('transform', `scaleX(${percentage})`);\n\t\t});\n\n\t\tconst options = {\n\t\t\tinfinite: false,\n\t\t\tdraggable: false,\n\t\t\tdots: true,\n\t\t\tarrows: false,\n\t\t};\n\n\t\tthis.$questionsCarousel.slick(options);\n\n\t\t// Init\n\t\t$.each(this.$questionContainer, function() {\n\t\t\tconst checkboxes = $(this).find(`input[type=\"checkbox\"]`);\n\t\t\tconst radios = $(this).find(`input[type=\"radio\"]`);\n\t\t\tconst nextBtn = $(this).find('[data-next-btn]');\n\n\t\t\t// Field validation - radio\n\t\t\tradios.on('change', (event) => {\n\t\t\t\tnextBtn.removeClass('disabled');\n\t\t\t});\n\t\t\t\n\t\t\t// Field validation - checkboxes\n\t\t\tcheckboxes.on('change', (event) => {\n\t\t\t\tif($(checkboxes).is(':checked') ) {\n\t\t\t\t\tnextBtn.removeClass('disabled');\n\t\t\t\t} else {\n\t\t\t\t\tnextBtn.addClass('disabled');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// check if already ticked\n\t\t\tif ($(radios).is(':checked') ) {\n\t\t\t\tnextBtn.removeClass('disabled');\n\t\t\t}\n\t\t\tif ($(checkboxes).is(':checked') ) {\n\t\t\t\tnextBtn.removeClass('disabled');\n\t\t\t}\n\t\t});\n\n\t\tthis.handleButtons();\n\t}\n\n\thideScreen(elem) {\n\t\telem.css('opacity', '0');\n\t\telem.css('pointer-events', 'none');\n\t}\n\n\tshowScreen(elem) {\n\t\telem.css('opacity', '1');\n\t\telem.css('pointer-events', 'auto');\n\t}\n\n\thandleButtons() {\n\t\tthis.$startBtn.on('click', (event) => {\n\t\t\tthis.hideScreen(this.$startScreen);\n\t\t});\n\n\t\tthis.$prevBtn.on('click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.$questionsCarousel.slick('slickPrev');\n\t\t\tif (this.currentSlide === 1) {\n\t\t\t\tthis.showScreen(this.$startScreen);\n\t\t\t} else {\n\t\t\t\tthis.$questionsCarousel.slick('slickPrev');\n\t\t\t}\n\t\t});\n\n\t\tthis.$nextBtn.on('click', (event) => {\n\t\t\tevent.preventDefault();\n\t\t\tif (this.onLastSlide) {\n\t\t\t\tthis.handleFormSubmission();\n\t\t\t} else {\n\t\t\t\tthis.$questionsCarousel.slick('slickNext');\n\t\t\t}\n\t\t});\n\n\t\tthis.$sliderNextBtn.on('click', (event) => {\n\t\t\tevent.preventDefault();\n\n\t\t\tif (!$(event.target).hasClass('disabled')) {\n\t\t\t\tif (this.onLastSlide) {\n\t\t\t\t\tthis.handleFormSubmission();\n\t\t\t\t} else {\n\t\t\t\t\tthis.$questionsCarousel.slick('slickNext');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\thandleFormSubmission() {\n\t\tthis.$loadingScreen.addClass('active');\n\n\t\t$.ajax({\n\t\t\ttype: 'POST',\n\t\t\turl: this.$formAction,\n\t\t\tdata: this.$form.serialize(),\n\t\t\tsuccess: (data) => {\n\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\tthis.showScreen(this.$endScreen);\n\t\t\t},\n\t\t});\n\t}\n}\n","const NS = 'WoolLabPersistentSwatchDrawer';\nconst CLS = 'woolLabPersistentSwatchDrawer';\n\nimport Handlebars from 'handlebars';\nimport {WoolLabSwatchDetailModalBlock} from './woolLabSwatchDetailModalBlock';\n\n\nexport class WoolLabPersistentSwatchDrawer {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.addToMoodboardApi = this.$el.data('addToMoodboardApi');\n\t\tthis.getSwatchDetailApi = this.$el.data('swatchDetailApi');\n\t\tthis.getSupplierDetailApi = this.$el.data('getSupplierDetailApi');\n\t\tthis.isInMySwatchesApi = this.$el.data('isInMySwatchesApi');\n\t\tthis.getMySwatchesApi = this.$el.data('mySwatchesApi');\n\t\tthis.addToMySwatches = this.$el.data('addToMySwatchesApi');\n\t\tthis.useDetailsModal = this.$el.data('useDetailsModal');\n\t\tthis.getMoodboardsApi = this.$el.data('getMoodboardsApi');\n\t\tthis.createMoodboardApi = this.$el.data('createMoodboardApi');\n\t\tthis.isstudentApi = this.$el.data('isstudent');\n\n\t\tthis.$addToMoodboardBtn = this.$el.find(`.${CLS}-addToMoodboardBtn`);\n\t\tthis.$openBtn = this.$el.find(`.${CLS}-openBtn`);\n\t\tthis.$panel = this.$el.find(`.${CLS}-panel`);\n\t\tthis.$closeBtn = this.$el.find(`.${CLS}-closeBtn`);\n\t\tthis.$background = this.$el.find(`.${CLS}-background`);\n\n\t\tthis.$fabricSwatches = this.$el.find(`.${CLS}-swatches`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.fabricSwatches = [];\n\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.loadingSwatches = false;\n\n\t\tthis.$swatchBlock = [];\n\n\t\tthis.selectedSwatchIds = [];\n\t\tthis.$swatchSelectPanel = this.$el.find(`.${CLS}-swatchSelect-panel`);\n\n\t\tthis.handleButtons();\n\t}\n\n\tgetSwatches() {\n\n\t\tif (!this.loadingSwatches) {\n\n\t\t\tthis.selectedSwatchIds = [];\n\t\t\tthis.loadingSwatches = true;\n\t\t\tlet url = this.getMySwatchesApi;\n\t\t\tthis.$loadingScreen.addClass('active');\n\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\n\t\t\t\t\tthis.$fabricSwatches.empty();\n\n\t\t\t\t\tlet fabricSwatchMarkup = (swatch) => {\n\t\t\t\t\t\treturn `\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
`;\n\t\t\t\t\t};\n\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\titem.getSwatchDetailApi = this.getSwatchDetailApi;\n\t\t\t\t\t\t\titem.getSupplierDetailApi = this.getSupplierDetailApi;\n\t\t\t\t\t\t\titem.isInMySwatchesApi = this.isInMySwatchesApi;\n\t\t\t\t\t\t\tthis.$fabricSwatches.append(fabricSwatchMarkup(item));\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.$swatchBlock = this.$el.find(`.${CLS}-swatch`);\n\t\t\t\t\t\tthis.handleSwatchBtn();\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingSwatches = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\n\thandleButtons() {\n\t\tthis.$openBtn.on('click', () => {\n\t\t\tthis.getSwatches();\n\t\t\tthis.$el.addClass('active');\n\t\t});\n\t\tthis.$closeBtn.on('click', () => {\n\t\t\tthis.$el.removeClass('active');\n\t\t});\n\t\tthis.$background.on('click', () => {\n\t\t\tthis.$el.removeClass('active');\n\t\t});\n\n\t\tthis.$addToMoodboardBtn.on('click', () => {\n\t\t\tthis.$el.removeClass('active');\n\t\t});\n\t}\n\n\n\thandleSwatchBtn() {\n\t\tthis.$swatchBlock.on('click', (e) => {\n\t\t\tlet $swatch = $(e.currentTarget);\n\n\t\t\tif (this.useDetailsModal) {\n\t\t\t\tthis.displaySwatchDetailModal($swatch.attr('data-id'));\n\t\t\t} else {\n\t\t\t\tif ($swatch.hasClass('selected')) {\n\t\t\t\t\t\t$swatch.removeClass('selected');\n\n\t\t\t\t\t\tlet filteredItems = this.selectedSwatchIds.filter((item) => item !== $swatch.attr('data-id'));\n\t\t\t\t\t\tthis.selectedSwatchIds = filteredItems;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$swatch.addClass('selected');\n\t\t\t\t\t\t\tthis.selectedSwatchIds.push($swatch.attr('data-id'));\n\t\t\t\t\t}\n\t\t\t\tthis.updateSelectedSwatchCount();\n\t\t\t}\n\t\t});\n\t}\n\n\n updateSelectedSwatchCount() {\n if (this.selectedSwatchIds.length > 0 ) {\n\t\t\tthis.$swatchSelectPanel.addClass('active');\n } else {\n\t\t\tthis.$swatchSelectPanel.removeClass('active');\n }\n }\n\n\n\tdisplaySwatchDetailModal(id) {\n\t\tlet modalData = {};\n\t\tmodalData.id = id;\n\t\tmodalData.getSwatchDetailApi = this.getSwatchDetailApi;\n\t\tmodalData.getSupplierDetailApi = this.getSupplierDetailApi;\n\t\tmodalData.isInMySwatchesApi = this.isInMySwatchesApi;\n\t\tmodalData.addToMoodboardApi = this.addToMoodboardApi;\n\t\tmodalData.addToMySwatches = this.addToMySwatches;\n\t\tmodalData.addToMoodboardApi = this.addToMoodboardApi;\n\t\tmodalData.getMoodboardsApi = this.getMoodboardsApi;\n\t\tmodalData.createMoodboardApi = this.createMoodboardApi;\n\t\tmodalData.isStudent = this.isstudentApi;\n\n\n\t\t$(document.body).append(this.getModalTemplate()(modalData));\n\t\tlet $modal = $(`#woolLabSwatchDetailModalBlock--${id}`);\n\t\tnew WoolLabSwatchDetailModalBlock($modal[0], modalData);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t});\n\t}\n\n\tgetModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabSwatchDetailModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSwatchDetailModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSwatchDetailModalBlock\n\t\t\t\twg=\"woolLabSwatchDetailModalBlock\"\n\t\t\t\tns=\"WoolLabSwatchDetailModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n}\n","const NS = 'WoolLabSwatchLibrarySearchBlock';\nconst CLS = 'woolLabSwatchLibrarySearchBlock';\nconst CLS_MB_ACTIVE = 'is-active';\n\nimport Handlebars from 'handlebars';\nimport { param } from 'jquery';\nimport { WoolLabSwatchBlock } from './woolLabSwatchBlock';\nimport {WoolLabSwatchLibraryHelpModalBlock} from './woolLabSwatchLibraryHelpModalBlock';\nimport {WoolLabSaveToMoodboardModalBlock} from './woolLabSaveToMoodboardModalBlock';\nimport utils from '../utils';\n\nexport class WoolLabSwatchLibrarySearchBlock {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.$filterKeys = this.$el.find(`[data-filter-key]`);\n\t\tthis.$filterDropdown = this.$el.find(`.${CLS}-filters-dropdown`);\n\t\tthis.$filterDropdownBtn = this.$el.find(`.${CLS}-filters-dropdown-btn`);\n\t\tthis.$fabricSwatches = this.$el.find(`.${CLS}-swatches`);\n\t\tthis.$searchResultsEmpty = this.$el.find(`.${CLS}-searchResults-empty`);\n\t\tthis.username = this.$el.data('username');\n\t\tthis.fabricSwatches = [];\n\t\tthis.$searchInp = this.$el.find(`.${CLS}-searchInput`);\n\t\tthis.$refineFilterBtn = this.$el.find(`.${CLS}-filterToggle.btnRefine`);\n\t\tthis.$clearFilterBtn = this.$el.find(`.${CLS}-filterToggle.btnClear`);\n\t\tthis.$filterRefined = this.$el.find(`.${CLS}-searchBar-refined`);\n\t\tthis.$themesCarousel = this.$el.find(`.${CLS}-themesCarousel`);\n\t\tthis.$season = this.$el.find(`#season`);\n\t\tthis.$theme = this.$el.find(`#theme`);\n\t\tthis.$certified = this.$el.find(`#certified`);\n\t\tthis.$country = this.$el.find(`#country`);\n\t\tthis.$benefits = this.$el.find(`#benefits`);\n\t\tthis.$archived = this.$el.find(`#archived`);\n\n\t\tthis.getSwatchDetailApi = this.$el.data('swatchDetailApi');\n\t\tthis.getSupplierDetailApi = this.$el.data('getSupplierDetailApi');\n\t\tthis.isInMySwatchesApi = this.$el.data('isInMySwatchesApi');\n\t\tthis.getSwatchesApi = this.$el.data('swatchesApi');\n\t\tthis.getFiltersApi = this.$el.data('filtersApi');\n\t\tthis.addToMySwatchesApi = this.$el.data('addToMyswatchesApi');\n\t\tthis.addToMoodboardApi = this.$el.data('addToMoodboardApi');\n\t\tthis.createMoodboardApi = this.$el.data('createMoodboardApi');\n\t\tthis.isStudent = this.$el.data('isstudent');\n\n\t\tthis.getMySwatchesApi = this.$el.data('myswatchesApi');\n\t\tthis.getMoodboardsApi = this.$el.data('getMoodboardsApi');\n\t\tthis.getAllThemes = this.$el.find(`#theme`).data('allThemes');\n\n\t\t// Feature flag\n\t\tthis.featureMoodboardsEnabled = this.$el.data('featureMoodboardsEnabled');\n\n\t\tthis.$loadingScreen = this.$el.find(`.${CLS}-searchResults-loadingScreen`);\n\t\tthis.$loadMore = this.$el.find(`.${CLS}-searchResults-loadMore`);\n\t\tthis.loadingSwatches = false;\n\t\tthis.allSwatchesLoaded = false;\n\n\t\tthis.$swatchBlock = [];\n\n\t\tthis.myMoodboardsData = {};\n\n\t\tthis.selectedSwatchIds = [];\n\t\tthis.$saveSwatchPanel = this.$el.find(`.${CLS}-saveSwatch-panel`);\n\t\tthis.$saveSwatchCount = this.$el.find(`.${CLS}-saveSwatch-text-count`);\n\t\tthis.$saveSwatchHelpBtn = this.$el.find(`.${CLS}-saveSwatch-help`);\n\t\tthis.$saveSwatchClearBtn = this.$el.find(`.${CLS}-saveSwatch-clear-btn`);\n\t\tthis.$saveSwatchSaveBtn = this.$el.find(`.${CLS}-saveSwatch-save-btn`);\n\t\tthis.$saveSwatchLocationBtn = this.$el.find(`.${CLS}-saveSwatch-toggle-btn`);\n\n\t\tthis.pageSize = 30;\n\t\tthis.pageNumber = 1;\n\n\t\tvar url_string = window.location.href; \n\t\tvar url = new URL(url_string);\n\t\tthis.$urlkeyword = url.searchParams.get(\"keyword\");\n\t\tif(this.$urlkeyword != null && this.$urlkeyword.length > 0){\n\t\t\tthis.$searchInp.val(this.$urlkeyword);\n\t\t}\n\t\tthis.$urltheme = url.searchParams.get(\"theme\");\n\t\tthis.$urlseason = url.searchParams.get(\"season\");\n\t\tthis.$urlcertified = url.searchParams.get(\"certified\");\n\t\tthis.$urlcountry = url.searchParams.get(\"country\");\n\t\tthis.$urlbenefits = url.searchParams.get(\"benefits\");\n\t\tthis.$urlarchived = url.searchParams.get(\"archived\");\n\n\t\t//this.$urlcolour = url.searchParams.get(\"colour\");\n\t\t//this.$urlweight = url.searchParams.get(\"weight\");\n\t\t//this.$urlcharacteristic = url.searchParams.get(\"characteristic\");\n\n\t\tthis.initParams();\n\t\t$('.selectpicker').selectpicker('destroy').selectpicker();\n\t\tthis.handleSearchInput();\n\t\tthis.handleFilterToggleBtn(this.getAllThemes);\n\t\tthis.handleSavePanelBtns();\n\t\tthis.handleScrollLoading();\n\t\tthis.getFilters(false);\n\t\tthis.getItems(false);\n\t\tthis.initFilterKeys();\n\t\tthis.initThemesCarousel();\n\t\tthis.initFeatureFlags();\n\t\t// Global function so that it can be triggered from anyway. In particular this allows swatch modal to refresh SwatchLibrary when a swatch is added to MySwatches\n\t\twindow.awiGlobalHelper = {\n\t\t\t...window.awiGlobalHelper,\n\t\t\treloadSwatchLibraryMySwatches: () => this.getMySwatches(),\n\t\t}\t\n\t}\n\n\tinitParams(clear){\n\t\tif(clear){\n\t\t\tthis.params = {\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\tkeyword: '',\n\t\t\t\ttheme: '',\n\t\t\t\tseason: '',\n\t\t\t\tcertified: '',\n\t\t\t\tcountry: '',\n\t\t\t\tbenefits: '',\n\t\t\t\tarchived: 'false'\n\t\t\t};\n\t\t}\n\t\telse{\n\t\t\tthis.params = {\n\t\t\t\t// siteId: this.siteId,\n\t\t\t\tcount: this.pageSize,\n\t\t\t\toffset: 0,\n\t\t\t\t// pageSize: this.pageSize,\n\t\t\t\t// keyword: this.$searchInp.val() || ''\n\t\t\t\tkeyword: this.$urlkeyword || '',\n\t\t\t\ttheme: this.$urltheme || '',\n\t\t\t\tseason: this.$urlseason || '',\n\t\t\t\tcertified: this.$urlcertified || '',\n\t\t\t\tcountry: this.$urlcountry || '',\n\t\t\t\tbenefits: this.$urlbenefits || '',\n\t\t\t\tarchived: this.$urlarchived || 'false'\n\t\t\t\t//colour: this.$urlcolour || '',\n\t\t\t\t//weight: this.$urlweight || '',\n\t\t\t\t//characteristic: this.$urlcharacteristic || ''\n\t\t\t};\n\t\t}\n\t}\n\n\tinitFeatureFlags() {\n\t\tif (!this.featureMoodboardsEnabled) {\n\t\t\t// Hide moodboard button\n\t\t\tthis.$saveSwatchPanel.find(`[data-location='myMoodboards']`).hide();\n\t\t}\n\t}\n\n\tinitThemesCarousel() {\n\t\tconst options = {\n\t\t\tslidesToShow: 2,\n\t\t\tslidesToScroll: 1,\n\t\t\tinfinite: false,\n\t\t\tdots: false,\n\t\t\tvariableWidth: true,\n\t\t\tswipeToSlide: true,\n\t\t};\n\n\t\tthis.$themesCarousel.slick(options);\n\t}\n\n\tgetWoolLabSwatchBlockTemplate() {\n\t\tlet woolLabSwatchBlock = require('../../partials/widgets/woolLabSwatchBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSwatchBlock', woolLabSwatchBlock);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSwatchBlock\n\t\t\t\twg=\"woolLabSwatchBlock\"\n\t\t\t\tns=\"WoolLabSwatchBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tgetFilters(archived){\n\t\tlet url = this.getFiltersApi;\n\t\tif (!_.isEmpty(this.params)) {\n\t\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\t\tif(key === \"archived\"){\n\t\t\t\t\turl = utils.updateQueryStringParameter(url, key, this.params[key]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tthis.updateUrl();\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\t\t\t\t\tif(archived != false){\n\t\t\t\t\t\tthis.$season.empty();\n\t\t\t\t\t\tthis.$theme.empty();\n\t\t\t\t\t\tthis.$certified.empty();\n\t\t\t\t\t\tthis.$country.empty();\n\t\t\t\t\t\tthis.$benefits.empty();\n\t\t\t\t\t}\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\tif(item.name == \"season\" && item.options){\n\t\t\t\t\t\t\t\titem.seasonOptions.forEach((options) => {\n\t\t\t\t\t\t\t\t\tlet themes = [];\n\t\t\t\t\t\t\t\t\toptions.themes.forEach((theme) => {\n\t\t\t\t\t\t\t\t\t\tthemes.push(theme);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\tif(this.$urlseason !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlseason.includes(options.name)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$season.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$season.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\t\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$season.append(``);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"theme\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urltheme !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urltheme.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$theme.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$theme.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$theme.append(``);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"certified\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlcertified !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlcertified.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$certified.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$certified.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$certified.append(``);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"country\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlcountry !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlcountry.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$country.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$country.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$country.append(``);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(item.name == \"benefits\" && item.options){\n\t\t\t\t\t\t\t\titem.options.forEach((options) => {\n\t\t\t\t\t\t\t\t\tif(this.$urlbenefits !== null){\n\t\t\t\t\t\t\t\t\t\tif(this.$urlbenefits.includes(options)){\n\t\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(``);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse{\n\t\t\t\t\t\t\t\t\t\tthis.$benefits.append(``);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif(archived != false){\n\t\t\t\t\t\tthis.params.season = '';\n\t\t\t\t\t\tthis.params.theme = '';\n\t\t\t\t\t\tthis.params.certified = '';\n\t\t\t\t\t\tthis.params.country = '';\n\t\t\t\t\t\tthis.params.benefits = '';\n\t\t\t\t\t}\n\t\t\t\t\tthis.selectpickerRefresh();\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t\tconsole.log(error);\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tconsole.log(\"complete\");\n\t\t\t\t\tthis.loadingSwatches = false;\n\t\t\t\t},\n\t\t\t});\n\t}\n\n\tselectpickerRefresh(){\n\t\tthis.$theme.selectpicker('refresh');\n\t\tthis.$season.selectpicker('refresh');\n\t\tthis.$certified.selectpicker('refresh');\n\t\tthis.$country.selectpicker('refresh');\n\t\tthis.$benefits.selectpicker('refresh');\n\t}\n\n\t// Get items (reload content)\n\tgetItems(loadMoreSwatches) {\n\n\t\tif (!this.loadingSwatches && !this.allSwatchesLoaded) {\n\t\t\tthis.loadingSwatches = true;\n\n\t\t\tlet url = this.getSwatchesApi;\n\n\t\t\tif (loadMoreSwatches) {\n\t\t\t\tthis.setPageNumber(this.pageNumber + 1);\n\t\t\t\tthis.$loadMore.addClass('active');\n\t\t\t} else {\n\t\t\t\tthis.$loadingScreen.addClass('active');\n\t\t\t}\n\t\t\tif (!_.isEmpty(this.params)) {\n\t\t\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\t\t\turl = utils.updateQueryStringParameter(url, key, encodeURIComponent(this.params[key]));\n\t\t\t\t});\n\t\t\t}\n\t\t\tthis.updateUrl();\n\t\t\t\n\t\t\t$.ajax({\n\t\t\t\ttype: 'GET',\n\t\t\t\turl: url,\n\t\t\t\tsuccess: (data) => {\n\n\t\t\t\t\tthis.$searchResultsEmpty.hide();\n\n\t\t\t\t\tif (!loadMoreSwatches) {\n\t\t\t\t\t\tthis.$fabricSwatches.empty();\n\t\t\t\t\t}\n\n\t\t\t\t\tlet fabricSwatchMarkup = (markup) => {\n\t\t\t\t\t\treturn `\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t${(markup)}\n\t\t\t\t\t\t\t
`;\n\t\t\t\t\t};\n\n\t\t\t\t\tif (data.length > 0) {\n\t\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\t\titem.userName = this.username;\n\t\t\t\t\t\t\titem.getSwatchDetailApi = this.getSwatchDetailApi;\n\t\t\t\t\t\t\titem.getSupplierDetailApi = this.getSupplierDetailApi;\n\t\t\t\t\t\t\titem.isInMySwatchesApi = this.isInMySwatchesApi;\n\t\t\t\t\t\t\titem.addToMySwatchesApi = this.addToMySwatchesApi;\n\t\t\t\t\t\t\titem.getMoodboardsApi = this.getMoodboardsApi;\n\t\t\t\t\t\t\titem.addToMoodboardApi = this.addToMoodboardApi;\n\t\t\t\t\t\t\titem.createMoodboardApi = this.createMoodboardApi;\n\t\t\t\t\t\t\titem.isStudent = this.isStudent;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlet $column = this.$fabricSwatches.append(fabricSwatchMarkup(this.getWoolLabSwatchBlockTemplate()(item)));\n\t\t\t\t\t\t\tnew WoolLabSwatchBlock($column.find(`[data-wg=\"WoolLabSwatchBlock\"]`).last()[0], item);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.$swatchBlock = this.$el.find('.woolLabSwatchBlock');\n\t\t\t\t\t\tthis.handleSwatchBtn();\n\t\t\t\t\t\tthis.getMySwatches();\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (loadMoreSwatches) {\n\t\t\t\t\t\t\tthis.allSwatchesLoaded = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.$searchResultsEmpty.show();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$loadingScreen.removeClass('active');\n\t\t\t\t\tthis.$loadMore.removeClass('active');\n\t\t\t\t},\n\t\t\t\terror: (error) => {\n\t\t\t\t},\n\t\t\t\tcomplete: () => {\n\t\t\t\t\tthis.loadingSwatches = false;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tgetMySwatches() {\n\t\tlet url = `${this.getMySwatchesApi}`;\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: url,\n\t\t\tsuccess: (data) => {\n\t\t\t\tif(data.length > 0) {\n\t\t\t\t\tdata.forEach((item) => {\n\t\t\t\t\t\tthis.$fabricSwatches.find(`[data-id=\"${item.id}\"]`).attr('data-saved-myswatches', 'true');\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t});\n\t}\n\n\tgetMoodboards() {\n\t\tlet url = `${this.getMoodboardsApi}`;\n\n\t\t$.ajax({\n\t\t\ttype: 'GET',\n\t\t\turl: url,\n\t\t\tsuccess: (data) => {\n\t\t\t\tthis.myMoodboardsData = data;\n\t\t\t},\n\t\t});\n\t}\n\n\t// Update url after filters change\n\tupdateUrl() {\n\t\tlet uri = document.location.pathname;\n\n\t\tObject.keys(this.params).forEach((key, index) => {\n\t\t\turi = utils.updateQueryStringParameter(uri, key, this.params[key]);\n\t\t});\n\t\t// update url without reload\n\t\twindow.history.pushState('', '', uri);\n\t}\n\n\thandleFilterToggleBtn(getAllThemes) {\n\t\tthis.$refineFilterBtn.on('click', () => {\n\t\t\tif(this.$refineFilterBtn.hasClass(CLS_MB_ACTIVE)) {\n\t\t\t\tthis.$refineFilterBtn.removeClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$filterRefined.removeClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$el.removeClass('refined-open');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.$refineFilterBtn.addClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$filterRefined.addClass(CLS_MB_ACTIVE);\n\t\t\t\tthis.$el.addClass('refined-open');\n\t\t\t}\n\t\t});\n\t\tthis.$clearFilterBtn.on('click', () => {\n\n\t\t\tthis.filterThemeBySeason(getAllThemes);\n\t\t\tthis.initParams(1);\n\t\t\tthis.setPageNumber(1);\n\t\t\tthis.allSwatchesLoaded = false;\n\t\t\twindow.scrollTo(0, 0);\n\t\t\tthis.selectedSwatchIds = [];\n\t\t\tthis.updateSelectedSwatchCount();\n\t\t\tthis.$searchInp.val('');\n\n\t\t\t$(\".selectpicker\").selectpicker('deselectAll');\n\t\t\t$('#certified').selectpicker('val', '');\n\t\t\t$('#archived').selectpicker('val', 'false');\n\t\t\tthis.$theme.selectpicker('val', '');\n\t\t\tthis.$season.selectpicker('val', '');\n\t\t\tthis.$certified.selectpicker('val', '');\n\t\t\tthis.$country.selectpicker('val', '');\n\t\t\tthis.$benefits.selectpicker('val', '');\n\t\t\tthis.getItems(false);\n\t\t\t\n\t\t});\n\t}\n\n\tfilterThemeBySeason(themes) {\n\t\tif (!themes) {\n\t\t\treturn;\n\t\t}\n\t\tconst themesArr = themes.split(\",\");\n\t\t$( \"#theme .dropdown-item\" ).remove();\n\t\tfor(var i = 0; i < themesArr.length; i++){\n\t\t\tthis.$theme.append( '' );\n\t\t}\n\t\tsetTimeout(() => {\n\t\t\tthis.$theme.selectpicker('refresh');\n\t\t\t}, 800);\n\t}\n\n\thandleFilterClick($element) {\n\t\tlet filterKey = $element.data('filterKey') || '';\n\t\t//let value = $element.attr('value') || '';\n\t\tlet value = [];\n\t\tlet selectedVal = $element.val();\n\t\tvalue.push(selectedVal);\n\t\t\n\t\tthis.$el.find(`[data-filter-key=\"${filterKey}\"]`).removeClass('active');\n\t\t$element.addClass('active');\n\n\t\tif(!(_.isNil(this.params[filterKey]) && value === '')) {\n\t\t\t// Ensure that the filterKey does not match the current select value\n\t\t\tif(this.params[filterKey] !== value) {\n\t\t\t\tif(_.isNil(value) || value === '') {\n\t\t\t\t\tdelete this.params[filterKey];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif(filterKey === \"benefits\"){\n\t\t\t\t\t\tvalue = value[0].join(\";\");\n\t\t\t\t\t}\n\t\t\t\t\tthis.params[filterKey] = value;\n\t\t\t\t}\n\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSwatchesLoaded = false;\n\t\t\t\tif(filterKey === \"archived\"){\n\t\t\t\t\tthis.getFilters(true);\n\t\t\t\t}\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t}\n\t}\n\n\tinitFilterKeys() {\n\t\tthis.$filterKeys.on('change', (event) => {\n\t\t\tthis.stringThemes = [];\n\t\t\tlet $element = $(event.currentTarget);\n\t\t\tlet filterKey = $element.data('filterKey') || '';\n\n\t\t\tif (filterKey === \"season\") {\n\t\t\t\tthis.$themes = $(\"select :selected\").map((i, $element) => $($element).attr(\"data-themes\")).toArray();\n\t\t\t\tthis.$themes.forEach((element) => this.stringThemes.push(element.split(\";\")));\n\t\t\t\tthis.stringThemes = this.stringThemes.flat();\n\t\t\t\tthis.stringThemes = this.stringThemes.filter((item,\n\t\t\t\t\tindex) => this.stringThemes.indexOf(item) === index);\n\t\t\t\t\tthis.stringThemes = this.stringThemes.filter(Boolean).sort().join(',');\n\t\t\t\t\tif(this.stringThemes.length > 0){\n\t\t\t\t\t\tthis.filterThemeBySeason(this.stringThemes);\n\t\t\t\t\t}\n\t\t\t\t\telse{\n\t\t\t\t\t\tthis.filterThemeBySeason(this.getAllThemes);\n\t\t\t\t\t}\n\t\t\t}\n\t\t\tthis.handleFilterClick($element);\n\t\t});\n\n\t\tif(this.$urlseason && this.$urlseason.length){\n\t\t\tthis.$urlseasonArr = this.$urlseason.split(\",\");\n\t\t\t$('#season').selectpicker('val', this.$urlseasonArr);\n\t\t}\n\n\t\tif(this.$urltheme && this.$urltheme.length){\n\t\t\tthis.$urlthemeArr = this.$urltheme.split(\",\");\n\t\t\t$('#theme').selectpicker('val', this.$urlthemeArr);\n\t\t}\n\t\tif(this.$urlcountry && this.$urlcountry.length){\n\t\t\tthis.$urlcountryArr = this.$urlcountry.split(\",\");\n\t\t\t$('#country').selectpicker('val', this.$urlcountryArr);\n\t\t}\n\t\tif(this.$urlcertified && this.$urlcertified.length){\n\t\t\tthis.$urlcertifiedArr = this.$urlcertified.split(\",\");\n\t\t\t$('#certified').selectpicker('val', this.$urlcertifiedArr);\n\t\t}\n\t\tif(this.$urlbenefits && this.$urlbenefits.length){\n\t\t\tthis.$urlbenefitsArr = this.$urlbenefits.split(\";\");\n\t\t\t$('#benefits').selectpicker('val', this.$urlbenefitsArr);\n\t\t}\n\t}\n\n\n\t// Search text input - on type\n\thandleSearchInput() {\n\t\tthis.$searchInp.on('keyup', (event) => {\n\t\t\tif(event.keyCode === 13) {\n\t\t\t\tthis.params['keyword'] = $(event.currentTarget).val().trim();\n\t\t\t\tthis.setPageNumber(1);\n\t\t\t\tthis.allSwatchesLoaded = false;\n\t\t\t\tthis.getItems(false);\n\t\t\t}\n\t\t});\n\t}\n\n\n\t// Swatch button\n\thandleSwatchBtn() {\n\t\tthis.$swatchBlock.on('click', (e) => {\n\t\t\tlet $target = $(e.target);\n\t\t\tlet $swatch = $(e.currentTarget);\n\n\t\t\tif ($target.hasClass('woolLabSwatchBlock-btnAddSave')) {\n\t\t\t\t// add to saved button clicked\n\n\t\t\t\tif ($swatch.hasClass('selected')) {\n\t\t\t\t\t$swatch.removeClass('selected');\n\n\t\t\t\t\tlet filteredItems = this.selectedSwatchIds.filter((item) => item !== $swatch.attr('data-id'));\n\t\t\t\t\tthis.selectedSwatchIds = filteredItems;\n\t\t\t\t} else {\n\t\t\t\t\t// if first swatch is already saved to my swatches\n\t\t\t\t\tif (this.selectedSwatchIds == 0 && $swatch.attr('data-saved-myswatches') == 'true') {\n\t\t\t\t\t\tthis.$saveSwatchPanel.find('[data-location=\"mySwatches\"]').addClass('selected');\n\t\t\t\t\t}\n\n\t\t\t\t\t$swatch.addClass('selected');\n\t\t\t\t\tthis.selectedSwatchIds.push($swatch.attr('data-id'));\n\t\t\t\t}\n\t\t\t\tthis.updateSelectedSwatchCount();\n\t\t\t}\n\t\t});\n\t}\n\n\thandleScrollLoading() {\n\n\t\tlet offsetFromBottom = 200;\n\n\t\tconst This = this;\n\n\t\t$(document).on('touchmove', onScroll); // for mobile\n\t\tfunction onScroll() {\n\t\t\tif ($(window).scrollTop() + offsetFromBottom > $(document).height() - $(window).height()-400) {\n\t\t\t\tThis.getItems(true);\n\t\t\t}\n\t\t}\n\n\t\t$(window).scroll(function() {\n\t\t\tlet position = $(window).scrollTop() + offsetFromBottom;\n\t\t\tlet bottom = $(document).height() - $(window).height();\n\n\t\t\tif ( position >= bottom ) {\n\t\t\t This.getItems(true);\n\t\t\t}\n\t\t });\n\t}\n\n\n\thandleSavePanelBtns() {\n\t\tthis.$saveSwatchClearBtn.on('click', (e) => {\n this.resetSavePanel();\n });\n\n\t\tthis.$saveSwatchHelpBtn.on('click', (e) => {\n\t\t\tthis.displayHelpModal();\n });\n\n\t\tthis.$saveSwatchLocationBtn.on('click', (e) => {\n\t\t\tlet $locationBtn = $(e.currentTarget);\n\n\t\t\t// check if save location being unselected will prompt unsaving the swatch\n\t\t\tif ($locationBtn.hasClass('selected') && this.selectedSwatchIds.length == 1) {\n\t\t\t\tlet $selectedSwatch = this.$fabricSwatches.find(`[data-id=\"${this.selectedSwatchIds[0]}\"]`);\n\t\t\t\tif ($locationBtn.attr('data-location') == 'mySwatches' && $selectedSwatch.attr('data-saved-myswatches') == 'true') {\n\t\t\t\t\t// prompt removing swatch from My Swatches\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$locationBtn.toggleClass('selected');\n\n\t\t\tif (this.$saveSwatchLocationBtn.hasClass('selected')) {\n\t\t\t\tthis.$saveSwatchSaveBtn.removeClass('disabled');\n\t\t\t} else {\n\t\t\t\tthis.$saveSwatchSaveBtn.addClass('disabled');\n\t\t\t}\n });\n\n\t\tthis.$saveSwatchSaveBtn.on('click', () => {\n\t\t\tthis.$saveSwatchLocationBtn.map((i, item) => {\n\t\t\t\tif ($(item).hasClass('selected')) {\n\t\t\t\t\tif ($(item).attr('data-location') == 'mySwatches') {\n\t\t\t\t\t\tthis.addSwatchToMySwatches();\n\t\t\t\t\t\t// We dont want to reset the save panel if we're adding to moodboards too - the moodboard modal will handle that\n\t\t\t\t\t\tif (this.$saveSwatchLocationBtn.filter('.selected').length < 2){\n\t\t\t\t\t\t\tthis.resetSavePanel();\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t$(item).removeClass('selected');\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if ($(item).attr('data-location') == 'myMoodboards') {\n\t\t\t\t\t\t// this.addItemToMoodboard();\n\t\t\t\t\t\tthis.displaySaveToMoodboardModal();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n });\n\t}\n\n\taddSwatchToMySwatches() {\n\t\tlet url = `${this.addToMySwatchesApi}`;\n\n\t\t$.ajax({\n\t\t\tdata: JSON.stringify(this.selectedSwatchIds),\n\t\t\tdataType: 'json',\n\t\t\ttype: 'POST',\n\t\t\turl: url,\n\t\t\tsuccess: (data) => {\n\t\t\t\tthis.getMySwatches();\n\t\t\t},\n\t\t});\n\t}\n\n\tresetSavePanel() {\n\t\tthis.selectedSwatchIds = [];\n\t\tthis.$swatchBlock.removeClass('selected');\n\t\tthis.updateSelectedSwatchCount();\n\t\tthis.$saveSwatchLocationBtn.removeClass('selected');\n\t}\n\n updateSelectedSwatchCount() {\n\t\tthis.$saveSwatchCount.html(this.selectedSwatchIds.length + (this.selectedSwatchIds.length == 1 ? ' swatch' : ' swatches'));\n\n if (this.selectedSwatchIds.length > 0 ) {\n\t\t\tthis.$saveSwatchPanel.addClass('active');\n } else {\n\t\t\tthis.$saveSwatchPanel.removeClass('active');\n\t\t\tthis.$saveSwatchLocationBtn.removeClass('selected');\n }\n }\n\n\tgetHelpModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabSwatchLibraryHelpModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSwatchLibraryHelpModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSwatchLibraryHelpModalBlock\n\t\t\t\twg=\"woolLabSwatchLibraryHelpModalBlock\"\n\t\t\t\tns=\"WoolLabSwatchLibraryHelpModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tdisplayHelpModal() {\n\t\t$(document.body).append(this.getHelpModalTemplate()(this.data));\n\t\tlet $modal = $('#woolLabSwatchLibraryHelpModalBlock');\n\t\tnew WoolLabSwatchLibraryHelpModalBlock($modal[0]);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t\t$('body').css('padding-right', '');\n\t\t});\n\t}\n\n\tgetSaveToMoodboardModalTemplate() {\n let modalWidget = require('../../partials/widgets/woolLabSaveToMoodboardModalBlock.hbs');\n\n\t\tHandlebars.registerPartial('woolLabSaveToMoodboardModalBlock', modalWidget);\n\n\t\tlet template = `\n\t\t\t{{> woolLabSaveToMoodboardModalBlock\n\t\t\t\twg=\"woolLabSaveToMoodboardModalBlock\"\n\t\t\t\tns=\"WoolLabSaveToMoodboardModalBlock\"\n\t\t\t}}\n\t\t`;\n\n\t\tlet precompiled = new Function('return ' + Handlebars.precompile(template))();\n\t\treturn Handlebars.template(precompiled);\n\t}\n\n\tdisplaySaveToMoodboardModal() {\n\t\t$(document.body).append(this.getSaveToMoodboardModalTemplate()(this.data));\n\t\tlet $modal = $('#woolLabSaveToMoodboardModalBlock');\n\n\t\tlet modalData = {};\n\t\tmodalData.getMoodboardsApi = this.getMoodboardsApi;\n\t\tmodalData.addToMoodboardApi = this.addToMoodboardApi;\n\t\tmodalData.createMoodboardApi = this.createMoodboardApi;\n\t\tmodalData.selectedItems = this.selectedSwatchIds;\n\t\tmodalData.itemType ='swatch';\n\n\t\tnew WoolLabSaveToMoodboardModalBlock($modal[0], modalData);\n\n\t\t$modal.modal('show');\n\t\t$('body').css('padding-right', '0');\n\t\t$modal.css('padding', '0');\n\n\t\t$modal.on('shown.bs.modal', () => {\n\t\t\t// need to manually add \"in\" class so backdrop can display properly due to IDS override\n\t\t\t$('.modal-backdrop').addClass('in');\n\t\t});\n\n\t\t$modal.on('hidden.bs.modal', () => {\n\t\t\t$modal.remove();\n\t\t\t$('body').css('padding-right', '');\n\t\t});\n\n\t\t$modal.on('resetSavePanel', () => {\n\t\t\tthis.resetSavePanel();\n\t\t});\n\t}\n\n\tsetPageNumber(newPageNumber) {\n\t\tthis.pageNumber = newPageNumber;\n\t\tthis.params.offset = (this.pageNumber - 1) * this.pageSize;\n\t}\n}\n","const NS = 'WoolLabThemesBlock';\nconst CLS = 'woolLabThemesBlock';\n\nimport slick from 'slick-carousel';\n\n\nexport class WoolLabThemesBlock {\n\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\t\tthis.$themesCarousel = this.$el.find(`.${CLS}-carousel`);\n\n\t\tthis.initThemesCarousel();\n\t}\n\n\tinitThemesCarousel() {\n\t\tconst options = {\n\t\t\tarrows: true,\n\t\t\tinfinite: false,\n\t\t\tdots: false,\n\t\t\tvariableWidth: true,\n\t\t\tslidesToScroll: 3,\n\t\t\tprevArrow: \"\",\n \t\tnextArrow: \"\",\n\t\t\t responsive: [\n\t\t\t\t{\n\t\t\t\t breakpoint: 1024,\n\t\t\t\t settings: {\n\t\t\t\t\tslidesToScroll: 2,\n\t\t\t\t }\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t breakpoint: 600,\n\t\t\t\t settings: {\n\t\t\t\t\tslidesToScroll: 1\n\t\t\t\t }\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t breakpoint: 480,\n\t\t\t\t settings: {\n\t\t\t\t\tslidesToShow: 1,\n\t\t\t\t\tslidesToScroll: 1\n\t\t\t\t }\n\t\t\t\t}\n\t\t\t ]\n\t\t};\n\n\t\tthis.$themesCarousel.slick(options);\n\t}\n}","const NS = 'WoolLabShareSwatchModalBlock';\nconst CLS = 'woolLabShareSwatchModalBlock';\n\nexport class WoolLabShareSwatchModalBlock {\n\tconstructor(el, data) {\n\t\tthis.$el = $(el);\n\t\tthis.shareSwatchesApi = data.shareSwatchesApi;\n\t\tthis.selectedSwatchIds = data.selectedSwatchIds;\n\n\t\tthis.shareEmail = '';\n\n\t\tthis.$btnDone = this.$el.find(`.${CLS}-doneBtn`);\n\t\tthis.$sendBtn = this.$el.find(`.${CLS}-sendBtn`);\n\t\tthis.$emailInput = this.$el.find(`.${CLS}-shareSwatch-textInput`);\n\n\n\t\tthis.$sendBtn.on('click', () => {\n\t\t\tif (this.newMoodboardText !== '') {\n\t\t\t\tthis.postShareSwatchesApi();\n\t\t\t}\n\t\t});\n\n\n\t\tthis.$emailInput.on('keyup', (event) => {\n\t\t\tlet input = $(event.currentTarget).val().trim();\n\t\t\tif (input.length > 0) {\n\t\t\t\tthis.$sendBtn.removeClass('disabled');\n\t\t\t} else {\n\t\t\t\tthis.$sendBtn.addClass('disabled');\n\t\t\t}\n\n\t\t\tthis.shareEmail = input;\n\t\t});\n\t}\n\n\n\tpostShareSwatchesApi() {\n\t\tlet url = `${this.shareSwatchesApi}?swatches=${encodeURIComponent(this.selectedSwatchIds)}?shareEmail=${encodeURIComponent(this.shareEmail)}`;\n\n\t\tfetch(url, {\n\t\t\tmethod: 'POST',\n\t\t}).then((response) => {\n\t\t\treturn response.json();\n\t\t}).then((_json) => {\n\t\t}).catch((_error) => {\n\t\t});\n\t}\n}\n\n","const NS = 'WoolLabRenameMoodboardModalBlock';\nconst CLS = 'woolLabRenameMoodboardModalBlock';\n\nexport class WoolLabRenameMoodboardModalBlock {\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\n\t\tthis.newName = '';\n\n\t\tthis.$btnDone = this.$el.find(`.${CLS}-doneBtn`);\n\t\tthis.$updateBtn = this.$el.find(`.${CLS}-updateBtn`);\n\t\tthis.$input = this.$el.find(`.${CLS}-shareSwatch-textInput`);\n\t\tthis.getMyMoodboardsApi = $('.woolLabInteractiveMoodboardBlock').data('getMyMoodboardsApi');\n\t\tthis.$inputContainer = this.$el.find(`.${CLS}-shareSwatch-textInput-container`);\n\n\t\tthis.arrMyMoodboardsNames = this.getMyMoodboards();\n\n\t\tthis.$input.on('keyup', (event) => {\n\t\t\t$('#dulicateWarningText').remove();\n\t\t\tlet input = $(event.currentTarget).val().trim().toLowerCase();\n\t\t\tif (input.length > 0) {\n\t\t\t\tif(this.arrMyMoodboardsNames.includes(input)){\n\t\t\t\t\t$(this.$inputContainer).append(\"

This moodboard name already exists.

\");\n\t\t\t\t\tthis.$updateBtn.addClass('disabled');\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t$('#dulicateWarningText').remove();\n\t\t\t\tthis.$updateBtn.removeClass('disabled');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.$updateBtn.addClass('disabled');\n\t\t\t}\n\n\t\t\tthis.newName = input;\n\t\t});\n\t}\n\n\tgetMyMoodboards(){\n\t\tlet names=[];\n\t\tlet url = this.getMyMoodboardsApi;\n\t\tvar data=$.parseJSON($.ajax({\n url: url,\n type:'get',\n dataType:'json',\n\t\t\tasync: false\n }).responseText);\n\n\n\t\t$.each( data, function( i, val ) {\n\t\t\tnames.push(val.name.toLowerCase());\n\t\t});\n\t\t\n\t\treturn names;\n\t}\n}\n\n","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\n\t\\n\t
\\n\t\t
\\n\t\t\t
\\n\t\t\t\t
\\n\t\t\t\t\t

Share your swatches

\\n\t\t\t\t\t
\\n\t\t\t\t\t\t\\n\t\t\t\t\t
\\n\t\t\t\t\t
\\n\t\t\t\t\t\t\\n\t\t\t\t\t\t\\n\t\t\t\t\t
\\n\t\t\t\t
\\n\t\t\t
\\n\t\t
\\n\t
\\n
\";\n},\"useData\":true});","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"1\":function(container,depth0,helpers,partials,data) {\n return \"themeAspectRatio\";\n},\"3\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-get-swatch-detail-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"getSwatchDetailApi\") || (depth0 != null ? lookupProperty(depth0,\"getSwatchDetailApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"getSwatchDetailApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":169},\"end\":{\"line\":1,\"column\":191}}}) : helper)))\n + \"\\\"\";\n},\"5\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-get-supplier-detail-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"getSupplierDetailApi\") || (depth0 != null ? lookupProperty(depth0,\"getSupplierDetailApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"getSupplierDetailApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":261},\"end\":{\"line\":1,\"column\":285}}}) : helper)))\n + \"\\\"\";\n},\"7\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-is-in-my-swatches-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"isInMySwatchesApi\") || (depth0 != null ? lookupProperty(depth0,\"isInMySwatchesApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"isInMySwatchesApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":348},\"end\":{\"line\":1,\"column\":369}}}) : helper)))\n + \"\\\"\";\n},\"9\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-add-to-my-swatches-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"addToMySwatchesApi\") || (depth0 != null ? lookupProperty(depth0,\"addToMySwatchesApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"addToMySwatchesApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":434},\"end\":{\"line\":1,\"column\":456}}}) : helper)))\n + \"\\\"\";\n},\"11\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-get-moodboards-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"getMoodboardsApi\") || (depth0 != null ? lookupProperty(depth0,\"getMoodboardsApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"getMoodboardsApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":514},\"end\":{\"line\":1,\"column\":534}}}) : helper)))\n + \"\\\"\";\n},\"13\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-add-to-moodboard-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"addToMoodboardApi\") || (depth0 != null ? lookupProperty(depth0,\"addToMoodboardApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"addToMoodboardApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":595},\"end\":{\"line\":1,\"column\":616}}}) : helper)))\n + \"\\\"\";\n},\"15\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-create-moodboard-api=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"createMoodboardApi\") || (depth0 != null ? lookupProperty(depth0,\"createMoodboardApi\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"createMoodboardApi\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":678},\"end\":{\"line\":1,\"column\":700}}}) : helper)))\n + \"\\\"\";\n},\"17\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"data-is-logged-in=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"isLoggedIn\") || (depth0 != null ? lookupProperty(depth0,\"isLoggedIn\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"isLoggedIn\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":1,\"column\":776},\"end\":{\"line\":1,\"column\":790}}}) : helper)))\n + \"\\\"\";\n},\"19\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"src=\\\"\"\n + container.escapeExpression(((helper = (helper = lookupProperty(helpers,\"imageSrc\") || (depth0 != null ? lookupProperty(depth0,\"imageSrc\") : depth0)) != null ? helper : container.hooks.helperMissing),(typeof helper === \"function\" ? helper.call(depth0 != null ? depth0 : (container.nullContext || {}),{\"name\":\"imageSrc\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":3,\"column\":49},\"end\":{\"line\":3,\"column\":61}}}) : helper)))\n + \"\\\"\";\n},\"21\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\\n\";\n},\"23\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t\t\t\\n\t\t\t\t\\n\";\n},\"25\":function(container,depth0,helpers,partials,data) {\n var helper, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"\t\t
ARCHIVED
\\n\";\n},\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var stack1, helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\n\t
\\n\t\t\\n\t\t
\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"archived\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(21, data, 0),\"inverse\":container.program(23, data, 0),\"data\":data,\"loc\":{\"start\":{\"line\":5,\"column\":3},\"end\":{\"line\":10,\"column\":10}}})) != null ? stack1 : \"\")\n + \"\t\t
\\n\t
\\n\t
\\n\t\t

\"\n + ((stack1 = ((helper = (helper = lookupProperty(helpers,\"name\") || (depth0 != null ? lookupProperty(depth0,\"name\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"name\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":14,\"column\":35},\"end\":{\"line\":14,\"column\":45}}}) : helper))) != null ? stack1 : \"\")\n + \"

\\n\t\t
\"\n + alias4(((helper = (helper = lookupProperty(helpers,\"id\") || (depth0 != null ? lookupProperty(depth0,\"id\") : depth0)) != null ? helper : alias2),(typeof helper === alias3 ? helper.call(alias1,{\"name\":\"id\",\"hash\":{},\"data\":data,\"loc\":{\"start\":{\"line\":15,\"column\":33},\"end\":{\"line\":15,\"column\":39}}}) : helper)))\n + \"
\\n\"\n + ((stack1 = lookupProperty(helpers,\"if\").call(alias1,(depth0 != null ? lookupProperty(depth0,\"archived\") : depth0),{\"name\":\"if\",\"hash\":{},\"fn\":container.program(25, data, 0),\"inverse\":container.noop,\"data\":data,\"loc\":{\"start\":{\"line\":16,\"column\":2},\"end\":{\"line\":18,\"column\":9}}})) != null ? stack1 : \"\")\n + \"\t
\\n
\";\n},\"useData\":true});","const NS = 'WoolLabSwatchLibraryHelpModalBlock';\nconst CLS = 'woolLabSwatchLibraryHelpModalBlock';\n\nexport class WoolLabSwatchLibraryHelpModalBlock {\n\tconstructor(el) {\n\t\tthis.$el = $(el);\n\t}\n}\n","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\n\t\\n\t
\\n\t\t
\\n\t\t\t
\\n\t\t\t\t
\\n\t\t\t\t\t

Change Moodboard Title

\\n\t\t\t\t\t
\\n\t\t\t\t\t\t\\n\t\t\t\t\t
\\n\t\t\t\t\t
\\n\t\t\t\t\t\t\\n\t\t\t\t\t\t\\n\t\t\t\t\t
\\n\t\t\t\t
\\n\t\t\t
\\n\t\t
\\n\t
\\n
\";\n},\"useData\":true});","var Handlebars = require('/Users/owenli/Documents/workspace/awi-woolmark-fe/node_modules/handlebars/runtime.js');\nmodule.exports = (Handlebars['default'] || Handlebars).template({\"compiler\":[8,\">= 4.3.0\"],\"main\":function(container,depth0,helpers,partials,data) {\n var helper, alias1=depth0 != null ? depth0 : (container.nullContext || {}), alias2=container.hooks.helperMissing, alias3=\"function\", alias4=container.escapeExpression, lookupProperty = container.lookupProperty || function(parent, propertyName) {\n if (Object.prototype.hasOwnProperty.call(parent, propertyName)) {\n return parent[propertyName];\n }\n return undefined\n };\n\n return \"
\\n\t\\n\t
\\n\t\t
\\n\t\t\t
\\n\t\t\t\t
\\n\t\t\t\t\t
\\n\t\t\t\t\t\t
\\n\t\t\t\t\t\t

My Swatches

\\n\t\t\t\t\t\t

Collect inspiring swatches and get in-touch with
their suppliers.

\\n\t\t\t\t\t
\\n\t\t\t\t\t
\\n\t\t\t\t\t\t
\\n\t\t\t\t\t\t

My Moodboard

\\n\t\t\t\t\t\t

Visualise your creative ideas by making your
own moodboard.

\\n\t\t\t\t\t
\\n\t\t\t\t\t
\\n\t\t\t\t\t\t
\\n\t\t\t\t\t\t

Add to both

\\n\t\t\t\t\t\t

Select both 'My Swatches' and 'My Moodboard',
then hit 'Save'.

\\n\t\t\t\t\t
\\n\t\t\t\t
\\n\t\t\t\t\\n\t\t\t
\\n\t\t
\\n\t
\\n
\";\n},\"useData\":true});"],"sourceRoot":""}