{"version":3,"sources":["webpack:///./src/components/swSkuEditor.vue?884a","webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-last-index.js","webpack:///./node_modules/core-js/modules/es.set.symmetric-difference.v2.js","webpack:///./node_modules/core-js/modules/es.set.difference.v2.js","webpack:///./node_modules/core-js/internals/array-buffer-not-detached.js","webpack:///./node_modules/core-js/modules/es.array-buffer.transfer.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-sorted.js","webpack:///./node_modules/core-js/internals/get-built-in-node-module.js","webpack:///../../../src/components/VCombobox/VCombobox.ts","webpack:///./node_modules/core-js/modules/es.array-buffer.detached.js","webpack:///./node_modules/core-js/internals/detach-transferable.js","webpack:///./node_modules/core-js/internals/set-iterate.js","webpack:///./node_modules/core-js/internals/set-is-superset-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.array-buffer.transfer-to-fixed-length.js","webpack:///./node_modules/core-js/internals/array-buffer-transfer.js","webpack:///./node_modules/core-js/internals/is-regexp.js","webpack:///./src/workers/worker.js","webpack:///./node_modules/comlink/dist/esm/comlink.mjs","webpack:///./src/workers/worker-api.js","webpack:///./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack:///./node_modules/core-js/modules/es.typed-array.with.js","webpack:///./node_modules/core-js/internals/iterate-simple.js","webpack:///./src/components/swSkuEditor.vue","webpack:///./src/functions/skuEditorFieldChoices.ts","webpack:///./src/components/swEditSku.vue","webpack:///src/components/swEditSku.vue","webpack:///./src/components/swEditSku.vue?c7c6","webpack:///./src/components/swEditSku.vue?cba3","webpack:///./src/components/swSpanCurrency.vue","webpack:///src/components/swSpanCurrency.vue","webpack:///./src/components/swSpanCurrency.vue?c67c","webpack:///./src/components/swSpanCurrency.vue?73f4","webpack:///src/components/swSkuEditor.vue","webpack:///./src/components/swSkuEditor.vue?c495","webpack:///./src/components/swSkuEditor.vue?cd47","webpack:///./node_modules/core-js/modules/es.string.replace-all.js","webpack:///./node_modules/core-js/internals/set-is-subset-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-reversed.js","webpack:///./node_modules/core-js/modules/es.set.union.v2.js","webpack:///./node_modules/core-js/internals/array-buffer-is-detached.js","webpack:///./node_modules/core-js/modules/es.set.intersection.v2.js","webpack:///../../../src/components/VSlideGroup/VSlideGroup.ts","webpack:///./node_modules/core-js/internals/get-set-record.js","webpack:///./node_modules/core-js/internals/set-clone.js","webpack:///./node_modules/core-js/modules/es.set.is-subset-of.v2.js","webpack:///../../../src/components/VSnackbar/VSnackbar.ts","webpack:///./src/views/SkuEditor.vue","webpack:///./src/functions/filtrexOptions.ts","webpack:///./src/components/swSkuEditorPrefilter.vue","webpack:///src/components/swSkuEditorPrefilter.vue","webpack:///./src/components/swSkuEditorPrefilter.vue?0189","webpack:///./src/components/swSkuEditorPrefilter.vue?7d55","webpack:///src/views/SkuEditor.vue","webpack:///./src/views/SkuEditor.vue?8a98","webpack:///./src/views/SkuEditor.vue?108b","webpack:///./node_modules/core-js/internals/set-size.js","webpack:///./src/assets/loading/succeed.gif","webpack:///./node_modules/core-js/modules/es.typed-array.at.js","webpack:///./node_modules/core-js/internals/regexp-get-flags.js","webpack:///./node_modules/core-js/internals/set-intersection.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-last.js","webpack:///./node_modules/core-js/internals/set-symmetric-difference.js","webpack:///./src/functions/skuEditorFunctions.ts","webpack:///../../../src/components/VItemGroup/VItem.ts","webpack:///../../../src/components/VSlideGroup/VSlideItem.ts","webpack:///./node_modules/core-js/internals/array-iteration-from-last.js","webpack:///./node_modules/core-js/modules/es.set.is-superset-of.v2.js","webpack:///./node_modules/core-js/internals/set-difference.js","webpack:///../../../src/components/VCheckbox/VCheckbox.ts","webpack:///./node_modules/core-js/internals/regexp-flags.js","webpack:///./node_modules/core-js/internals/set-is-disjoint-from.js","webpack:///./node_modules/core-js/internals/array-buffer-byte-length.js","webpack:///./node_modules/core-js/internals/is-big-int-array.js","webpack:///./node_modules/core-js/modules/es.set.is-disjoint-from.v2.js","webpack:///./src/components/swEditSku.vue?715c","webpack:///./node_modules/core-js/internals/set-helpers.js","webpack:///./node_modules/core-js/internals/array-with.js","webpack:///./node_modules/core-js/internals/set-method-accept-set-like.js","webpack:///./node_modules/core-js/internals/structured-clone-proper-transfer.js","webpack:///./node_modules/core-js/internals/a-set.js","webpack:///./node_modules/core-js/internals/array-to-reversed.js","webpack:///./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack:///./node_modules/core-js/internals/set-union.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/core-js/internals/to-big-int.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./src/components/swButton.vue","webpack:///src/components/swButton.vue","webpack:///./src/components/swButton.vue?96b0","webpack:///./src/components/swButton.vue?a05a","webpack:///../../src/util/colors.ts"],"names":["toIntegerOrInfinity","toLength","$RangeError","RangeError","module","exports","it","undefined","number","length","uncurryThis","toObject","floor","Math","charAt","replace","stringSlice","slice","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","str","position","captures","namedCaptures","replacement","tailPos","m","symbols","match","ch","capture","n","f","toPositiveInteger","BYTES","offset","ArrayBufferViewCore","$findLastIndex","findLastIndex","aTypedArray","exportTypedArrayMethod","predicate","this","arguments","$","symmetricDifference","setMethodAcceptSetLike","target","proto","real","forced","difference","isDetached","$TypeError","TypeError","$transfer","transfer","aCallable","arrayFromConstructorAndList","getTypedArrayConstructor","sort","TypedArrayPrototype","compareFn","O","A","globalThis","IS_NODE","name","process","getBuiltinModule","error","Function","VAutocomplete","extend","props","delimiters","type","Array","default","returnObject","Boolean","data","editingIndex","computed","computedCounterValue","multiple","selectedItems","internalSearch","toString","hasSlot","VSelect","options","call","isAnyValueAllowed","menuCanShow","isFocused","hasDisplayedItems","$slots","hideNoData","searchIsDirty","methods","onInternalSearchChanged","val","delimiter","find","d","endsWith","updateTags","updateMenuDimensions","genInput","input","attrs","on","paste","onPaste","genChipSelection","item","index","chip","componentOptions","listeners","dblclick","getText","selectedIndex","onChipInput","onEnterDown","e","preventDefault","getMenuIndex","$nextTick","updateSelf","onKeyDown","keyCode","ctrlKey","keyCodes","home","end","includes","left","$refs","selectionStart","enter","changeSelectedIndex","onTabDown","stopPropagation","selectItem","updateEditing","toLocaleLowerCase","setSelectedItems","internalValue","setValue","value","findIndex","Object","assign","splice","push","updateCombobox","isUsingSlot","$scopedSlots","selection","hasChips","menuIndex","itemToSelect","event","$emit","pastedItemText","_a","clipboardData","getData","findExistingIndex","clearableCallback","DESCRIPTORS","defineBuiltInAccessor","ArrayBufferPrototype","ArrayBuffer","prototype","configurable","get","WorkerThreads","channel","buffer","$detach","getBuiltInNodeModule","PROPER_STRUCTURED_CLONE_TRANSFER","structuredClone","$ArrayBuffer","$MessageChannel","MessageChannel","detach","transferable","port1","postMessage","byteLength","iterateSimple","SetHelpers","Set","SetPrototype","forEach","keys","next","set","fn","interruptible","iterator","aSet","has","size","getSetRecord","iteratorClose","other","otherRec","getIterator","lengthOfArrayLike","toOffset","toIndexedObject","fails","Int8Array","Int8ArrayPrototype","$set","WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS","array","Uint8ClampedArray","0","TO_OBJECT_BUG","NATIVE_ARRAY_BUFFER_VIEWS","arrayLike","src","len","transferToFixedLength","uncurryThisAccessor","toIndex","notDetached","arrayBufferByteLength","detachTransferable","DataView","min","DataViewPrototype","isResizable","maxByteLength","getInt8","setInt8","arrayBuffer","newLength","preserveResizability","newBuffer","newByteLength","fixedLength","a","b","copyLength","i","isObject","classof","wellKnownSymbol","MATCH","isRegExp","Worker_fn","Worker","proxyMarker","Symbol","createEndpoint","releaseProxy","finalizer","throwMarker","proxyTransferHandler","canHandle","obj","port2","expose","port","start","wrap","throwTransferHandler","serialized","Error","isError","message","stack","transferHandlers","Map","isAllowedOrigin","allowedOrigins","origin","allowedOrigin","RegExp","test","ep","addEventListener","callback","ev","console","warn","id","path","argumentList","map","fromWireValue","returnValue","parent","reduce","prop","rawValue","apply","proxy","Promise","resolve","catch","then","wireValue","transferables","toWireValue","removeEventListener","closeEndPoint","isMessagePort","endpoint","constructor","close","createProxy","throwIfProxyReleased","isReleased","releaseEndpoint","requestResponseMessage","proxyCounter","WeakMap","proxyFinalizers","FinalizationRegistry","newCount","registerProxy","register","unregisterProxy","unregister","isProxyReleased","Proxy","_target","r","p","bind","_thisArg","rawArgumentList","last","processArguments","myFlat","arr","concat","processed","v","transferCache","transfers","handler","serializedValue","serialize","deserialize","msg","generateUUID","l","fill","random","Number","MAX_SAFE_INTEGER","join","worker","Comlink","xlsxRead","xlsxWrite","xlsxBlob","xlsBlob","arrayWith","isBigIntArray","toBigInt","PROPER_ORDER","valueOf","relativeIndex","actualValue","record","ITERATOR_INSTEAD_OF_RECORD","step","result","done","$route","fullPath","staticClass","_vm","_c","key","$event","model","uiSelectedFields","expression","totalRowsOnPage","editField","directives","rawName","offsetY","fields","selectedField","readOnly","fieldLevelReplace","class","_e","staticStyle","showSalePricePopup","menuActivated","fieldLevelMinPercentReplace","fieldLevelPlusPercentReplace","replaceField","$vuetify","breakpoint","smAndUp","clearField","_v","selectedFields","fieldLevelFindDebounced","field","multiRowSelect","filterSelected","_l","setHeaderClass","scopedSlots","_g","isManualSelectionActive","selectAll","animationUrl","displayDifferences","_s","active","toggle","cellClass","countRows","sku","$$v","showEditSku","skuToEditProp","choices","text","formatter","filteringRule","required","recommended","items","masterdata","fieldFunctions","campaignIdsToNames","countImages","formatDate","updateItems","choice","choiceWithItems","getItems","ref","readonly","nativeOn","$store","addMasterData","swT","cancelForm","barcodeLoading","uiSku","barcode","images","slideGroupModel","skuImages","image","_u","isGeneratingBarcodes","computedMode","state","products","handleSizeRangeChange","selectedSizeRange","selected","colors","brand","defaultDiscount","enableDiscount","margin","calculation","defaultCalculation","attribute","disabledMasterdataFields","staticRenderFns","barcodeErrorMessage","localMode","animationSrc","require","noDocumentsAdded","isEditing","productFunctions","newSku","newValue","mode","fieldsToCheck","activeConfig","activeAttributes","keymap","validateBarcode","brandSettings","getBrandSettings","discountSetting","discount","parseInt","toFixed","watch","isArray","immediate","deep","_this$$store$state$br","propSku","deepCopy","brands","collection","sizeCopy","isNewDocument","form","resetValidation","updateSkuSize","elements","document","querySelectorAll","element","setAttribute","created","priceChange","$watch","animationElement","activeFormValid","style","display","activated","validate","_this$getBrandSetting","calculationSetting","price","buyPrice","calculateMargin","vatHi","$forceUpdate","convertMode","calculateBuyPriceDiscount","OLDBUYPRICE","doneAddingSkus","fieldToCheck","updatedSkus","globalStore","getLatestCollectionObject","res","webServices","getSku","colorFamily","colorSupplier","articleCode","focus","articleDescription","values","dispatch","header","timeout","getLatestCollectionArray","uuidv4","addSku","mainSize","sizesToCheck","articleCodeSupplier","colorDescription","rawSku","articleGroupSupplier","articleGroup","collectionSupplier","colorCode","colorCodeSupplier","eventBus","$el","querySelector","select","updateSku","updatedSku","_this$$refs$form","split","imageSrc","imageUrl","imageWidth","tools","imageUrlParse","updateFieldLevelFind","attributes","toLowerCase","some","component","render","_self","amount","deHttpUrl","url","stringToFloat","s","parseFloat","components","draggable","swCurrency","swEditSku","swSpanCurrency","XLSImportOperation","activeSort","addfieldLevelFindDebounced","cloudSyncing","contextMenuX","contextMenuY","dialogMode","fieldChoices","fieldLevelFind","fieldLevelMinValueReplace","fieldLevelPlusValueReplace","fieldsDisabled","loadingStatus","newSkuCount","page","salePriceRoundMethod","clickedSkuToDelete","unusedSkusToDelete","skuToCopy","skuToEdit","skusDiffs","tablePopupMenuItems","totalDisplayedRows","updatedSkusList","whitelabelFunctions","siteAnimation","window","location","href","filteredSkus","SELECTED","isAdmin","userFunctions","hasRole","getters","roles","isSWAdmin","sourceCollection","query","translateEnumItems","uiFieldChoices","filter","newVal","filteredResult","skus","fieldName","fieldType","regex","searchString","replaceAll","exactMatch","exactValue","substring","bounds","fieldValue","initReadonlyValues","newSkus","setPaginationTotalPages","method","clearFieldLevelFinds","triggerAddSkuMethod","showChooseNewSkuMethodPopup","initFields","skuPromise","initSelectedFields","debounceFn","debounce","paginationCurrentPage","_this$ensureFields","ensureFields","eventListeners","$on","getSkuImportHistory","skuImportHistroyDialog","operation","showDialog","setXLSImportOperation","downloadXLS","saveStringAsFile","JSON","stringify","strategy","bindImages","dataProvider","answer","yesKey","noKey","hashedBrand","cloudSync","fpSkus","getFpSkus","uploadDirectory","existingSkus","fpSku","fpSkusIndex","agg","deactivated","$off","paginationTotalPages","payload","filterManualSelection","input_xlsx","click","scope","brandSkus","brandSku","__modified","__created","logDataprovider","changes","api","getLatestCollectionAPI","bindStrategy","STRATEGIES","articleCode_colorCode","fName","_sku$articleCodeSuppl","_sku$colorCodeSupplie","_sku$articleCodeSuppl2","_sku$colorCodeSupplie2","articleCode_and_colorCode","_sku$articleCodeSuppl3","_sku$colorCodeSupplie3","_sku$articleCodeSuppl4","articleDescription_and_color","_sku$articleDescripti","_sku$colorFamily","articleCode_and_colorDescription","_sku$articleCodeSuppl5","_sku$colorFamily2","files","getImagesFromCdn","CDN_ROOT","fileName","lowerCaseFileName","fileNameWithoutExtention","editing","_sku$images","toggleAll","selectColumnByName","ind","indexOf","cellHeaderClick","calculateMarginField","calculateCalculationField","addFileToArchive","cb","srcElement","_value","_data$data","hashBrand","skuSource","color","lightThemeColors","theme","themes","light","usedByTenant","source","info","green","base","warning","selectSku","applyEditSkuoperation","sizeSupplier","_this$ensureFields2","preferedFields","favorites","skuEditorColumns","_this$ensureFields3","canBeRemoved","removeSelectedField","initColumnSelection","params","sortedSkus","skuOneColumnSorting","rowClass","rowIndex","columnHeaderClass","preferedAttributes","fc","fieldLevelPlusValue","fieldLevelMinValue","campaigns","calculateCampaignSalesPrice","selectedCampaigns","campaignSalesPrice","selectedCampaignsArray","campaign","_campaigns$campaign","_campaigns$campaign2","_campaigns$campaign3","_campaigns$campaign4","discountRule","parameter","save","cancel","originalSkuFormatter","originalSku","skuSyncDiff","_this$skusDiffs$sku$i","lastRow","_inactive","nrSelectedSkus","skuReplaceDiff","cellFormatter","exportBusy","forceDownload","file","reader","FileReader","brandId","importBusy","onload","Uint8Array","workbook","sheet","Sheets","range","re","upperLeftCoordinate","groups","topRow","row","sheetKeys","rows","coordinates","col","columns","skuIndex","excludeFields","imageFields","shortKey","longKey","importErrors","rowsMissingBarcode","rowsMissingBrand","rowsMissingArticleCode","salePrice","valuePrice","ean","missingProperties","existingSku","k","log","lowerKey","newField","readAsArrayBuffer","blob","response","importSkuFileToArchive","loading","status","group","replaceValue","replacePercentValue","roundSalePrice","replacePlusValue","replaceMinValue","_this$fields$this$sel","baseClass","setFilterClass","setChipColor","chipValue","validateSkus","mixedErrors","emptyFields","errorMessage","getUniqueValues","lenght","nrUniqueBarcodes","sellPrice","removeEarlierAddedSkus","errors","handleYesNoDialog","deActivateSku","activateSku","copySku","printBuffer","print","sku4BarcodeLabel","goToRoute","route","$router","acc","c","nrSelectedNonTmpSkus","activateMenu","multiRowSelectCount","multiRowNonTmpSelectCount","title","dataTest","icon","printSkuBarcode","pricat","openPricat","period","reportViz","showDownloadSkuMenuItem","saveProductToTenantDb","showDeleteConfirmationMessage","googleSearchSku","clientX","clientY","filtersList","regexCtx","isUISelectedFieldDisabled","open","onlyUnusedSkus","skusBatchesToDelete","skusToDelete","splitArrayIntoBatches","silent","auditHeaders","skusBatch","indexOfSkuToDelete","maxSelectionSize","headerTranslationPluralization","checkBeforeDelete","checkSelectedSkusBeforeDelete","deleteSkus","deleteSku","fromYear","currentYear","Date","getFullYear","tenantId","getSession","current_tenant","selectedSkus","mostRecentSkuUsage","unusedSkusObject","usedBarcodes","year","transactions","startupDB","immutable","read","eansSet","transaction","add","time","showNoButton","deleteSelectedSkusAfterCheckDialogMsg","format","deleteAllSkus","multiLineMessage","showNoKey","barcodesToSave","audit","isNotLocallyCreatedSku","isNotDownloadedSku","setSalePriceRoundMethod","roundMethod","intPart","trunc","decimalPortionString","String","decimalPortionNumber","round","ceil","dialogDisplayed","columnHeadName","substr","requireObjectCoercible","isCallable","isNullOrUndefined","getMethod","getRegExpFlags","getSubstitution","IS_PURE","REPLACE","max","searchValue","IS_REG_EXP","flags","replacer","string","functionalReplace","searchLength","advanceBy","endOfLastMatch","iterate","arrayToReversed","union","intersection","INCORRECT","from","bias","x","abs","sign","calculateUpdatedOffset","selectedElement","widths","rtl","currentScrollOffset","clientWidth","offsetLeft","content","totalWidth","wrapper","itemOffset","additionalOffset","calculateCenteredOffset","offsetCentered","BaseSlideGroup","mixins","BaseItemGroup","Mobile","Resize","Touch","activeClass","centerActive","nextIcon","prevIcon","showArrows","validator","isOverflowing","resizeTimeout","startX","isSwipingHorizontal","isSwiping","scrollOffset","canTouch","__cachedNext","genTransition","__cachedPrev","classes","hasAffixes","isMobile","hasNext","hasPrev","scroll","transform","mounted","ResizeObserver","obs","onResize","observe","disconnect","itemsLength","children","setWidths","onScroll","scrollLeft","onFocusin","el","composedPath","vm","genNext","slot","getSlot","$createElement","onAffixClick","genContent","focusin","genData","genIcon","upperLocation","toUpperCase","hasAffix","VIcon","disabled","genPrev","prev","VFadeTransition","genWrapper","overflowCheck","onTouchStart","move","onTouchMove","onTouchEnd","calculateNewOffset","direction","newAbosluteOffset","scrollTo","_isDestroyed","touchstartX","setProperty","diffX","touchmoveX","diffY","touchmoveY","touchstartY","documentElement","overflowY","maxScrollOffset","removeProperty","scrollIntoView","selectedItem","lastItemPosition","getBoundingClientRect","wrapperPosition","right","requestAnimationFrame","h","provide","slideGroup","anObject","getIteratorDirect","INVALID_SIZE","SetRecord","intSize","numSize","isSubsetOf","VSheet","Colorable","Toggleable","PositionableFactory","app","centered","contentClass","multiLine","transition","vertical","activeTimeout","absolute","isActive","bottom","top","hasBackground","outlined","isDark","Themeable","styles","bar","footer","insetFooter","application","paddingBottom","convertToUnit","paddingLeft","paddingRight","paddingTop","setTimeout","$attrs","hasOwnProperty","removed","deprecate","genActions","role","setColor","setBackgroundColor","setTextColor","pointerenter","clearTimeout","pointerleave","notPrefiltered","showImageSync","showFPSync","fpSync","openCloudSyncMenu","dataProviders","addNewSku","importXLSX","openExportMenu","exportMenu","exportOptions","exportOption","showImportHistory","prefilter","snackbar","errorMsg","lower","upper","empty","filtrexOptions","extraFunctions","filterTerms","negate","filterTermChoices","fieldTranslationKey","t","addFilter","beta","skuEditorFunctions","swBreadCrumbs","swButton","swSkuEditor","swSkuEditorPrefilter","bindImageMenu","y","cloudSyncMenu","activeFilter","localProductGroupFilterEquals","selectionHasBeenMade","filterExpressionFromProp","eventLog","breadcrumbs","crumb1Text","brandFromRoute","to","isMasterData","_this$$route","myCollections","myBrands","myProductGroups","availableDataProvideres","count","lasttime","hasDataProviderSubscription","function","exportXLSX","exportJSON","showCloudSync","_this$$route2","beforeMount","activate","reset","hideMainFilter","mainFilterPrompt","destroyed","date","openBindImageMenu","openSkuImportHistoryDialog","removeIrrelevantAttributes","collectionToSave","skusToUpdate","eventLogId","command","context","selectedGroups","g","buildActiveFilterExpression","brandHashes","aliases","list","filterExpression","operator","_this$$route$query","_computedWatchers","run","deriveSkusFromEvent","deriveSkusFromFilter","_this$$store$state$fi","fuzzySearchString","filtrexCallbackFunction","compileExpression","fuzzySearchFunction","markRaw","hasOwn","isPrototypeOf","regExpFlags","RegExpPrototype","R","iterateSet","$findLast","findLast","clone","remove","keysIter","store","campaignName","BaseItem","Vue","consoleWarn","tag","_b","tabindex","GroupableFactory","IndexedObject","createMethod","TYPE","IS_FIND_LAST_INDEX","$this","callbackfn","that","self","boundFunction","isSupersetOf","Selectable","indeterminate","indeterminateIcon","offIcon","onIcon","inputIndeterminate","VInput","computedIcon","validationState","isDisabled","hasError","shouldValidate","hasSuccess","hasColor","computedColor","genCheckbox","checkboxAttrs","attrs$","dense","dark","genRipple","rippleState","genDefaultSlot","genLabel","hasIndices","global","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","klass","isDisjointFrom","C","actualIndex","getBuiltIn","createSetLike","error2","V8","ENVIRONMENT","Constructor","$length","NAME","Prototype","NATIVE_ARRAY_BUFFER","tryToString","createNonEnumerableProperty","defineBuiltIn","getPrototypeOf","setPrototypeOf","uid","InternalStateModule","enforceInternalState","enforce","getInternalState","Uint8ClampedArrayPrototype","TypedArray","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","isTypedArray","aTypedArrayConstructor","KEY","property","ARRAY","TypedArrayConstructor","exportTypedArrayStaticMethod","toPrimitive","argument","prim","BigInt","show","inheritAttrs","iconcolor","tooltip","red","freeze","lighten5","lighten4","lighten3","lighten2","lighten1","darken1","darken2","darken3","darken4","accent1","accent2","accent3","accent4","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","grey","shades","black","white","transparent"],"mappings":"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","file":"js/chunk-233b7a2b.61e28764.js","sourcesContent":["export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swSkuEditor.vue?vue&type=style&index=0&id=b5283d74&prod&scoped=true&lang=css\"","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw new $RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n// eslint-disable-next-line redos/no-vulnerable -- safe\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","'use strict';\nvar toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw new $RangeError('Wrong offset');\n return offset;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlastindex\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://tc39.es/ecma262/#sec-set.prototype.symmetricdifference\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.difference` method\n// https://tc39.es/ecma262/#sec-set.prototype.difference\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, {\n difference: difference\n});\n","'use strict';\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isDetached(it)) throw new $TypeError('ArrayBuffer is detached');\n return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transfer` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfer\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transfer: function transfer() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, true);\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar sort = uncurryThis(ArrayBufferViewCore.TypedArrayPrototype.sort);\n\n// `%TypedArray%.prototype.toSorted` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tosorted\nexportTypedArrayMethod('toSorted', function toSorted(compareFn) {\n if (compareFn !== undefined) aCallable(compareFn);\n var O = aTypedArray(this);\n var A = arrayFromConstructorAndList(getTypedArrayConstructor(O), O);\n return sort(A, compareFn);\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar IS_NODE = require('../internals/environment-is-node');\n\nmodule.exports = function (name) {\n if (IS_NODE) {\n try {\n return globalThis.process.getBuiltinModule(name);\n } catch (error) { /* empty */ }\n try {\n // eslint-disable-next-line no-new-func -- safe\n return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n }\n};\n","// Styles\nimport '../VAutocomplete/VAutocomplete.sass'\n\n// Extensions\nimport VSelect from '../VSelect/VSelect'\nimport VAutocomplete from '../VAutocomplete/VAutocomplete'\n\n// Utils\nimport { keyCodes } from '../../util/helpers'\n\n// Types\nimport { PropValidator } from 'vue/types/options'\n\n/* @vue/component */\nexport default VAutocomplete.extend({\n name: 'v-combobox',\n\n props: {\n delimiters: {\n type: Array,\n default: () => ([]),\n } as PropValidator<string[]>,\n returnObject: {\n type: Boolean,\n default: true,\n },\n },\n\n data: () => ({\n editingIndex: -1,\n }),\n\n computed: {\n computedCounterValue (): number {\n return this.multiple\n ? this.selectedItems.length\n : (this.internalSearch || '').toString().length\n },\n hasSlot (): boolean {\n return VSelect.options.computed.hasSlot.call(this) || this.multiple\n },\n isAnyValueAllowed (): boolean {\n return true\n },\n menuCanShow (): boolean {\n if (!this.isFocused) return false\n\n return this.hasDisplayedItems ||\n (!!this.$slots['no-data'] && !this.hideNoData)\n },\n searchIsDirty (): boolean {\n return this.internalSearch != null\n },\n },\n\n methods: {\n onInternalSearchChanged (val: any) {\n if (\n val &&\n this.multiple &&\n this.delimiters.length\n ) {\n const delimiter = this.delimiters.find(d => val.endsWith(d))\n if (delimiter != null) {\n this.internalSearch = val.slice(0, val.length - delimiter.length)\n this.updateTags()\n }\n }\n\n this.updateMenuDimensions()\n },\n genInput () {\n const input = VAutocomplete.options.methods.genInput.call(this)\n\n delete input.data!.attrs!.name\n input.data!.on!.paste = this.onPaste\n\n return input\n },\n genChipSelection (item: object, index: number) {\n const chip = VSelect.options.methods.genChipSelection.call(this, item, index)\n\n // Allow user to update an existing value\n if (this.multiple) {\n chip.componentOptions!.listeners! = {\n ...chip.componentOptions!.listeners!,\n dblclick: () => {\n this.editingIndex = index\n this.internalSearch = this.getText(item)\n this.selectedIndex = -1\n },\n }\n }\n\n return chip\n },\n onChipInput (item: object) {\n VSelect.options.methods.onChipInput.call(this, item)\n\n this.editingIndex = -1\n },\n // Requires a manual definition\n // to overwrite removal in v-autocomplete\n onEnterDown (e: Event) {\n e.preventDefault()\n // If has menu index, let v-select-list handle\n if (this.getMenuIndex() > -1) return\n\n this.$nextTick(this.updateSelf)\n },\n onKeyDown (e: KeyboardEvent) {\n const keyCode = e.keyCode\n\n if (\n e.ctrlKey ||\n ![keyCodes.home, keyCodes.end].includes(keyCode)\n ) {\n VSelect.options.methods.onKeyDown.call(this, e)\n }\n\n // If user is at selection index of 0\n // create a new tag\n if (this.multiple &&\n keyCode === keyCodes.left &&\n this.$refs.input.selectionStart === 0\n ) {\n this.updateSelf()\n } else if (keyCode === keyCodes.enter) {\n this.onEnterDown(e)\n }\n\n // The ordering is important here\n // allows new value to be updated\n // and then moves the index to the\n // proper location\n this.changeSelectedIndex(keyCode)\n },\n onTabDown (e: KeyboardEvent) {\n // When adding tags, if searching and\n // there is not a filtered options,\n // add the value to the tags list\n if (this.multiple &&\n this.internalSearch &&\n this.getMenuIndex() === -1\n ) {\n e.preventDefault()\n e.stopPropagation()\n\n return this.updateTags()\n }\n\n VAutocomplete.options.methods.onTabDown.call(this, e)\n },\n selectItem (item: object) {\n // Currently only supports items:<string[]>\n if (this.editingIndex > -1) {\n this.updateEditing()\n } else {\n VAutocomplete.options.methods.selectItem.call(this, item)\n\n // if selected item contains search value,\n // remove the search string\n if (\n this.internalSearch &&\n this.multiple &&\n this.getText(item).toLocaleLowerCase().includes(this.internalSearch.toLocaleLowerCase())\n ) {\n this.internalSearch = null\n }\n }\n },\n setSelectedItems () {\n if (this.internalValue == null ||\n this.internalValue === ''\n ) {\n this.selectedItems = []\n } else {\n this.selectedItems = this.multiple ? this.internalValue : [this.internalValue]\n }\n },\n setValue (value?: any) {\n VSelect.options.methods.setValue.call(this, value === undefined ? this.internalSearch : value)\n },\n updateEditing () {\n const value = this.internalValue.slice()\n const index = this.selectedItems.findIndex(item =>\n this.getText(item) === this.internalSearch)\n\n // If user enters a duplicate text on chip edit,\n // don't add it, move it to the end of the list\n if (index > -1) {\n const item = typeof value[index] === 'object'\n ? Object.assign({}, value[index])\n : value[index]\n\n value.splice(index, 1)\n value.push(item)\n } else {\n value[this.editingIndex] = this.internalSearch\n }\n\n this.setValue(value)\n this.editingIndex = -1\n this.internalSearch = null\n },\n updateCombobox () {\n // If search is not dirty, do nothing\n if (!this.searchIsDirty) return\n\n // The internal search is not matching\n // the internal value, update the input\n if (this.internalSearch !== this.getText(this.internalValue)) this.setValue()\n\n // Reset search if using slot to avoid a double input\n const isUsingSlot = Boolean(this.$scopedSlots.selection) || this.hasChips\n if (isUsingSlot) this.internalSearch = null\n },\n updateSelf () {\n this.multiple ? this.updateTags() : this.updateCombobox()\n },\n updateTags () {\n const menuIndex = this.getMenuIndex()\n\n // If the user is not searching\n // and no menu item is selected\n // or if the search is empty\n // do nothing\n if ((menuIndex < 0 && !this.searchIsDirty) ||\n !this.internalSearch) return\n\n if (this.editingIndex > -1) {\n return this.updateEditing()\n }\n\n const index = this.selectedItems.findIndex(item =>\n this.internalSearch === this.getText(item))\n\n // If the duplicate item is an object,\n // copy it, so that it can be added again later\n const itemToSelect = index > -1 && typeof this.selectedItems[index] === 'object'\n ? Object.assign({}, this.selectedItems[index])\n : this.internalSearch\n\n // If it already exists, do nothing\n // this might need to change to bring\n // the duplicated item to the last entered\n if (index > -1) {\n const internalValue = this.internalValue.slice()\n internalValue.splice(index, 1)\n\n this.setValue(internalValue)\n }\n\n // If menu index is greater than 1\n // the selection is handled elsewhere\n // TODO: find out where\n if (menuIndex > -1) return (this.internalSearch = null)\n\n this.selectItem(itemToSelect)\n\n this.internalSearch = null\n },\n onPaste (event: ClipboardEvent) {\n this.$emit('paste', event)\n if (!this.multiple || this.searchIsDirty) return\n\n const pastedItemText = event.clipboardData?.getData('text/vnd.vuetify.autocomplete.item+plain')\n if (pastedItemText && this.findExistingIndex(pastedItemText as any) === -1) {\n event.preventDefault()\n VSelect.options.methods.selectItem.call(this, pastedItemText as any)\n }\n },\n clearableCallback () {\n this.editingIndex = -1\n\n VAutocomplete.options.methods.clearableCallback.call(this)\n },\n },\n})\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isDetached = require('../internals/array-buffer-is-detached');\n\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\n\n// `ArrayBuffer.prototype.detached` getter\n// https://tc39.es/ecma262/#sec-get-arraybuffer.prototype.detached\nif (DESCRIPTORS && !('detached' in ArrayBufferPrototype)) {\n defineBuiltInAccessor(ArrayBufferPrototype, 'detached', {\n configurable: true,\n get: function detached() {\n return isDetached(this);\n }\n });\n}\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar getBuiltInNodeModule = require('../internals/get-built-in-node-module');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar $ArrayBuffer = globalThis.ArrayBuffer;\nvar $MessageChannel = globalThis.MessageChannel;\nvar detach = false;\nvar WorkerThreads, channel, buffer, $detach;\n\nif (PROPER_STRUCTURED_CLONE_TRANSFER) {\n detach = function (transferable) {\n structuredClone(transferable, { transfer: [transferable] });\n };\n} else if ($ArrayBuffer) try {\n if (!$MessageChannel) {\n WorkerThreads = getBuiltInNodeModule('worker_threads');\n if (WorkerThreads) $MessageChannel = WorkerThreads.MessageChannel;\n }\n\n if ($MessageChannel) {\n channel = new $MessageChannel();\n buffer = new $ArrayBuffer(2);\n\n $detach = function (transferable) {\n channel.port1.postMessage(null, [transferable]);\n };\n\n if (buffer.byteLength === 2) {\n $detach(buffer);\n if (buffer.byteLength === 0) detach = $detach;\n }\n }\n} catch (error) { /* empty */ }\n\nmodule.exports = detach;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = globalThis.RangeError;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw new RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar $ = require('../internals/export');\nvar $transfer = require('../internals/array-buffer-transfer');\n\n// `ArrayBuffer.prototype.transferToFixedLength` method\n// https://tc39.es/proposal-arraybuffer-transfer/#sec-arraybuffer.prototype.transfertofixedlength\nif ($transfer) $({ target: 'ArrayBuffer', proto: true }, {\n transferToFixedLength: function transferToFixedLength() {\n return $transfer(this, arguments.length ? arguments[0] : undefined, false);\n }\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar toIndex = require('../internals/to-index');\nvar notDetached = require('../internals/array-buffer-not-detached');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\nvar detachTransferable = require('../internals/detach-transferable');\nvar PROPER_STRUCTURED_CLONE_TRANSFER = require('../internals/structured-clone-proper-transfer');\n\nvar structuredClone = globalThis.structuredClone;\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar DataView = globalThis.DataView;\nvar min = Math.min;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataViewPrototype = DataView.prototype;\nvar slice = uncurryThis(ArrayBufferPrototype.slice);\nvar isResizable = uncurryThisAccessor(ArrayBufferPrototype, 'resizable', 'get');\nvar maxByteLength = uncurryThisAccessor(ArrayBufferPrototype, 'maxByteLength', 'get');\nvar getInt8 = uncurryThis(DataViewPrototype.getInt8);\nvar setInt8 = uncurryThis(DataViewPrototype.setInt8);\n\nmodule.exports = (PROPER_STRUCTURED_CLONE_TRANSFER || detachTransferable) && function (arrayBuffer, newLength, preserveResizability) {\n var byteLength = arrayBufferByteLength(arrayBuffer);\n var newByteLength = newLength === undefined ? byteLength : toIndex(newLength);\n var fixedLength = !isResizable || !isResizable(arrayBuffer);\n var newBuffer;\n notDetached(arrayBuffer);\n if (PROPER_STRUCTURED_CLONE_TRANSFER) {\n arrayBuffer = structuredClone(arrayBuffer, { transfer: [arrayBuffer] });\n if (byteLength === newByteLength && (preserveResizability || fixedLength)) return arrayBuffer;\n }\n if (byteLength >= newByteLength && (!preserveResizability || fixedLength)) {\n newBuffer = slice(arrayBuffer, 0, newByteLength);\n } else {\n var options = preserveResizability && !fixedLength && maxByteLength ? { maxByteLength: maxByteLength(arrayBuffer) } : undefined;\n newBuffer = new ArrayBuffer(newByteLength, options);\n var a = new DataView(arrayBuffer);\n var b = new DataView(newBuffer);\n var copyLength = min(newByteLength, byteLength);\n for (var i = 0; i < copyLength; i++) setInt8(b, i, getInt8(a, i));\n }\n if (!PROPER_STRUCTURED_CLONE_TRANSFER) detachTransferable(arrayBuffer);\n return newBuffer;\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) === 'RegExp');\n};\n","export default function Worker_fn() {\n return new Worker(__webpack_public_path__ + \"js/worker.665b4296.worker.js\");\n}\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n return createProxy(ep, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n ep.addEventListener(\"message\", function l(ev) {\n if (!ev.data || !ev.data.id || ev.data.id !== id) {\n return;\n }\n ep.removeEventListener(\"message\", l);\n resolve(ev.data);\n });\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n","import Worker from 'worker-loader!./worker'\nimport * as Comlink from 'comlink'\n\nconst worker = Comlink.wrap(new Worker())\n\nconst xlsxRead = worker.xlsxRead\nconst xlsxWrite = worker.xlsxWrite\nconst xlsxBlob = worker.xlsBlob\nexport default {\n xlsxRead,\n xlsxWrite,\n xlsxBlob,\n}\n","'use strict';\n// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar arrayWith = require('../internals/array-with');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toBigInt = require('../internals/to-big-int');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar PROPER_ORDER = !!function () {\n try {\n // eslint-disable-next-line no-throw-literal, es/no-typed-arrays, es/no-array-prototype-with -- required for testing\n new Int8Array(1)['with'](2, { valueOf: function () { throw 8; } });\n } catch (error) {\n // some early implementations, like WebKit, does not follow the final semantic\n // https://github.com/tc39/proposal-change-array-by-copy/pull/86\n return error === 8;\n }\n}();\n\n// `%TypedArray%.prototype.with` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.with\nexportTypedArrayMethod('with', { 'with': function (index, value) {\n var O = aTypedArray(this);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualValue = isBigIntArray(O) ? toBigInt(value) : +value;\n return arrayWith(O, getTypedArrayConstructor(O), relativeIndex, actualValue);\n} }['with'], !PROPER_ORDER);\n","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"swskueditor\"},[_c('div',{staticClass:\"pa-0 ma-0\"},[_c('v-row',{staticClass:\"d-none\"},[_c('v-col',{staticClass:\"pt-6\"},[_c('input',{ref:\"input_xlsx\",attrs:{\"type\":\"file\",\"accept\":\".xls,.xlsx\"},on:{\"change\":_vm.uploadXLS}})])],1),_c('v-card',{class:_vm.$route.fullPath.includes('skueditor') ? 'sticky' : '',attrs:{\"flat\":\"\"}},[(_vm.$route.fullPath.includes('skueditor'))?_c('v-card-text',{staticClass:\"py-1 px-0\"},[_c('p',{staticClass:\"info white--text text-center my-0\",attrs:{\"data-test\":\"rowsPerPageInfo\"}},[_vm._v(_vm._s(_vm.totalDisplayedRows)+\" / \"+_vm._s(_vm.skus.length)+\" \"+_vm._s(_vm.swT('rowsselected')))])]):_vm._e(),_c('v-card-text',{staticClass:\"py-1 px-1\"},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"10\"}},[_c('v-combobox',{attrs:{\"items\":_vm.uiFieldChoices,\"multiple\":\"\",\"chips\":\"\",\"outlined\":\"\",\"dense\":\"\",\"hide-selected\":\"\",\"auto-select-first\":\"\",\"autofocus\":\"\",\"label\":_vm.swT('selectfields'),\"hide-details\":\"\",\"data-test\":\"select-fields\",\"disabled\":_vm.fieldsDisabled,\"item-disabled\":_vm.isUISelectedFieldDisabled},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-chip',_vm._b({key:data.item.value,staticClass:\"white--text mt-1\",attrs:{\"close\":_vm.canBeRemoved(data.item.value),\"small\":\"\",\"color\":_vm.setChipColor(data.item),\"input-value\":data.selected,\"disabled\":data.disabled,\"data-test\":`selected-chip-${data.item.value}`},on:{\"click:close\":function($event){return _vm.removeSelectedField(data.item)},\"click\":function($event){$event.stopPropagation();return _vm.selectColumnByName(data.item.value)}}},'v-chip',data.attrs,false),[_vm._v(\" \"+_vm._s(data.item.text)+\" \")])]}}]),model:{value:(_vm.uiSelectedFields),callback:function ($$v) {_vm.uiSelectedFields=$$v},expression:\"uiSelectedFields\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-text-field',{staticClass:\"ml-4\",attrs:{\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"value\":_vm.totalRowsOnPage,\"label\":_vm.swT('rowsperpage'),\"type\":\"number\",\"min\":\"1\",\"max\":\"1000\",\"data-test\":'rowsPerPage'},on:{\"input\":function($event){_vm.totalRowsOnPage = Math.max(1, parseInt($event, 10) || 1)}}})],1)],1)],1),_c('v-card-text',{staticClass:\"px-3 pb-3\"},[(_vm.editField && !_vm.masterdata)?_c('v-row',{staticClass:\"d-flex py-1\"},[(!_vm.readonly)?_c('v-col',{staticClass:\"py-0 px-1 flex-grow-1\"},[_c('v-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fields[_vm.selectedField].type === 'enum'),expression:\"fields[selectedField].type === 'enum'\"}],staticClass:\"py-0 my-0 green-border green lighten-5\",attrs:{\"items\":_vm.translateEnumItems,\"data-test\":`autocomplete-${_vm.selectedField}`,\"hide-details\":\"\",\"dense\":\"\",\"menu-props\":{ offsetY: true, class: 'px-5' },\"outlined\":\"\",\"persistent-placeholder\":\"\",\"disabled\":_vm.fields[_vm.selectedField].readOnly,\"label\":_vm.swT(_vm.fields[_vm.selectedField].value)},model:{value:(_vm.fieldLevelReplace[_vm.selectedField]),callback:function ($$v) {_vm.$set(_vm.fieldLevelReplace, _vm.selectedField, $$v)},expression:\"fieldLevelReplace[selectedField]\"}}),_c('v-combobox',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fields[_vm.selectedField].type === 'combobox'),expression:\"fields[selectedField].type === 'combobox'\"}],staticClass:\"py-0 my-0 green-border green lighten-5\",attrs:{\"items\":_vm.fields[_vm.selectedField].items,\"data-test\":`combobox-${_vm.selectedField}`,\"hide-details\":\"\",\"dense\":\"\",\"menu-props\":{ offsetY: true, class: 'px-5' },\"outlined\":\"\",\"persistent-placeholder\":\"\",\"disabled\":_vm.fields[_vm.selectedField].readOnly,\"label\":_vm.swT(_vm.fields[_vm.selectedField].value)},on:{\"blur\":function($event){return _vm.cb($event, _vm.selectedField)}},model:{value:(_vm.fieldLevelReplace[_vm.selectedField]),callback:function ($$v) {_vm.$set(_vm.fieldLevelReplace, _vm.selectedField, $$v)},expression:\"fieldLevelReplace[selectedField]\"}}),_c('v-switch',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fields[_vm.selectedField].type === 'boolean'),expression:\"fields[selectedField].type === 'boolean'\"}],staticClass:\"py-2 my-0 pl-2 green-border green lighten-5\",attrs:{\"data-test\":`switch-${_vm.selectedField}`,\"hide-details\":\"\",\"outlined\":\"\",\"persistent-placeholder\":\"\",\"disabled\":_vm.fields[_vm.selectedField].readOnly},model:{value:(_vm.fieldLevelReplace[_vm.selectedField]),callback:function ($$v) {_vm.$set(_vm.fieldLevelReplace, _vm.selectedField, $$v)},expression:\"fieldLevelReplace[selectedField]\"}}),_c('v-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fields[_vm.selectedField].type === 'multiselect'),expression:\"fields[selectedField].type === 'multiselect'\"}],staticClass:\"py-0 my-0 green-border green lighten-5\",attrs:{\"items\":_vm.fields[_vm.selectedField].items,\"data-test\":`multiselect-${_vm.selectedField}`,\"hide-details\":\"\",\"dense\":\"\",\"menu-props\":{ offsetY: true, class: 'px-5' },\"outlined\":\"\",\"persistent-placeholder\":\"\",\"disabled\":_vm.fields[_vm.selectedField].readOnly,\"label\":_vm.swT(_vm.fields[_vm.selectedField].value),\"multiple\":\"\"},model:{value:(_vm.fieldLevelReplace[_vm.selectedField]),callback:function ($$v) {_vm.$set(_vm.fieldLevelReplace, _vm.selectedField, $$v)},expression:\"fieldLevelReplace[selectedField]\"}}),_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fields[_vm.selectedField].type === 'text'),expression:\"fields[selectedField].type === 'text'\"}],class:!_vm.fields[_vm.selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5',attrs:{\"hide-details\":\"\",\"data-test\":`replace-${_vm.selectedField}`,\"outlined\":\"\",\"dense\":\"\",\"persistent-placeholder\":\"\",\"disabled\":_vm.fields[_vm.selectedField].readOnly,\"label\":_vm.swT(_vm.fields[_vm.selectedField].value)},model:{value:(_vm.fieldLevelReplace[_vm.selectedField]),callback:function ($$v) {_vm.$set(_vm.fieldLevelReplace, _vm.selectedField, $$v)},expression:\"fieldLevelReplace[selectedField]\"}}),_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fields[_vm.selectedField].type === 'number'),expression:\"fields[selectedField].type === 'number'\"}],class:!_vm.fields[_vm.selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5',attrs:{\"hide-details\":\"\",\"data-test\":`replace-${_vm.selectedField}`,\"outlined\":\"\",\"dense\":\"\",\"persistent-placeholder\":\"\",\"type\":\"number\",\"disabled\":_vm.fields[_vm.selectedField].readOnly,\"label\":_vm.swT(_vm.fields[_vm.selectedField].value)},model:{value:(_vm.fieldLevelReplace[_vm.selectedField]),callback:function ($$v) {_vm.$set(_vm.fieldLevelReplace, _vm.selectedField, $$v)},expression:\"fieldLevelReplace[selectedField]\"}}),_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fields[_vm.selectedField].type === 'currency'),expression:\"fields[selectedField].type === 'currency'\"}],class:!_vm.fields[_vm.selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5',attrs:{\"hide-details\":\"\",\"data-test\":`replace-${_vm.selectedField}`,\"outlined\":\"\",\"dense\":\"\",\"persistent-placeholder\":\"\",\"disabled\":_vm.fields[_vm.selectedField].readOnly,\"label\":_vm.swT(_vm.fields[_vm.selectedField].value)},model:{value:(_vm.fieldLevelReplace[_vm.selectedField]),callback:function ($$v) {_vm.$set(_vm.fieldLevelReplace, _vm.selectedField, $$v)},expression:\"fieldLevelReplace[selectedField]\"}})],1):_vm._e(),(!_vm.readonly && !_vm.fields[_vm.selectedField].readOnly && _vm.fields[_vm.selectedField].type === 'currency')?_c('v-col',{staticClass:\"pa-0 pl-2 flex-grow-0\",attrs:{\"align\":\"right\"}},[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fields[_vm.selectedField].type === 'currency'),expression:\"fields[selectedField].type === 'currency'\"}],class:!_vm.fields[_vm.selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5',staticStyle:{\"width\":\"120px\"},attrs:{\"hide-details\":\"\",\"data-test\":`percentminreplace-${_vm.selectedField}`,\"outlined\":\"\",\"dense\":\"\",\"persistent-placeholder\":\"\",\"disabled\":_vm.fields[_vm.selectedField].readOnly,\"label\":_vm.swT('markdown'),\"append-icon\":\"mdi-percent\"},on:{\"click\":function($event){return _vm.showSalePricePopup($event, _vm.selectedField)},\"input\":function($event){_vm.menuActivated = false}},model:{value:(_vm.fieldLevelMinPercentReplace[_vm.selectedField]),callback:function ($$v) {_vm.$set(_vm.fieldLevelMinPercentReplace, _vm.selectedField, $$v)},expression:\"fieldLevelMinPercentReplace[selectedField]\"}})],1):_vm._e(),(!_vm.readonly && !_vm.fields[_vm.selectedField].readOnly && _vm.fields[_vm.selectedField].type === 'currency')?_c('v-col',{staticClass:\"pa-0 pl-2 flex-grow-0\",attrs:{\"align\":\"right\"}},[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fields[_vm.selectedField].type === 'currency'),expression:\"fields[selectedField].type === 'currency'\"}],class:!_vm.fields[_vm.selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5',staticStyle:{\"width\":\"120px\"},attrs:{\"hide-details\":\"\",\"data-test\":`percentplusreplace-${_vm.selectedField}`,\"outlined\":\"\",\"dense\":\"\",\"persistent-placeholder\":\"\",\"disabled\":_vm.fields[_vm.selectedField].readOnly,\"label\":_vm.swT('markup'),\"append-icon\":\"mdi-percent\"},on:{\"click\":function($event){return _vm.showSalePricePopup($event, _vm.selectedField)},\"input\":function($event){_vm.menuActivated = false}},model:{value:(_vm.fieldLevelPlusPercentReplace[_vm.selectedField]),callback:function ($$v) {_vm.$set(_vm.fieldLevelPlusPercentReplace, _vm.selectedField, $$v)},expression:\"fieldLevelPlusPercentReplace[selectedField]\"}})],1):_vm._e(),(!_vm.readonly && !_vm.fields[_vm.selectedField].readOnly && _vm.fields[_vm.selectedField].type === 'currency')?_c('v-col',{staticClass:\"pa-0 pl-2 flex-grow-0\",attrs:{\"align\":\"right\"}},[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fields[_vm.selectedField].type === 'currency'),expression:\"fields[selectedField].type === 'currency'\"}],class:!_vm.fields[_vm.selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5',staticStyle:{\"width\":\"120px\"},attrs:{\"hide-details\":\"\",\"data-test\":`valueminreplace-${_vm.selectedField}`,\"outlined\":\"\",\"dense\":\"\",\"persistent-placeholder\":\"\",\"disabled\":_vm.fields[_vm.selectedField].readOnly,\"label\":_vm.swT('markdown'),\"append-icon\":\"mdi-minus\"},model:{value:(_vm.fieldLevelMinValueReplace[_vm.selectedField]),callback:function ($$v) {_vm.$set(_vm.fieldLevelMinValueReplace, _vm.selectedField, $$v)},expression:\"fieldLevelMinValueReplace[selectedField]\"}})],1):_vm._e(),(!_vm.readonly && !_vm.fields[_vm.selectedField].readOnly && _vm.fields[_vm.selectedField].type === 'currency')?_c('v-col',{staticClass:\"pa-0 pl-2 flex-grow-0\",attrs:{\"align\":\"right\"}},[_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.fields[_vm.selectedField].type === 'currency'),expression:\"fields[selectedField].type === 'currency'\"}],class:!_vm.fields[_vm.selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5',staticStyle:{\"width\":\"120px\"},attrs:{\"hide-details\":\"\",\"data-test\":`valueplusreplace-${_vm.selectedField}`,\"outlined\":\"\",\"dense\":\"\",\"persistent-placeholder\":\"\",\"disabled\":_vm.fields[_vm.selectedField].readOnly,\"label\":_vm.swT('markup'),\"append-icon\":\"mdi-plus\"},model:{value:(_vm.fieldLevelPlusValueReplace[_vm.selectedField]),callback:function ($$v) {_vm.$set(_vm.fieldLevelPlusValueReplace, _vm.selectedField, $$v)},expression:\"fieldLevelPlusValueReplace[selectedField]\"}})],1):_vm._e(),(!_vm.readonly && !_vm.fields[_vm.selectedField].readOnly)?_c('v-col',{staticClass:\"pa-0 pl-2 flex-grow-0\",attrs:{\"align\":\"right\"}},[(_vm.$vuetify.breakpoint.smAndUp)?_c('v-btn',{attrs:{\"color\":\"success\",\"height\":\"40px\",\"data-test\":\"replaceButton\"},on:{\"click\":function($event){return _vm.replaceField(_vm.selectedField)}}},[_c('v-icon',[_vm._v(\"mdi-find-replace\")]),_vm._v(\" \"+_vm._s(_vm.swT('replace'))+\" \")],1):_c('v-icon',{staticClass:\"pt-2\",on:{\"click\":function($event){return _vm.replaceField(_vm.selectedField)}}},[_vm._v(\"mdi-find-replace\")])],1):_vm._e(),(!_vm.readonly && !_vm.fields[_vm.selectedField].readOnly)?_c('v-col',{staticClass:\"pa-0 pl-2 flex-grow-0\",attrs:{\"align\":\"right\"}},[(_vm.$vuetify.breakpoint.smAndUp)?_c('v-btn',{attrs:{\"color\":\"info\",\"height\":\"40px\",\"data-test\":\"clearButton\"},on:{\"click\":function($event){return _vm.clearField(_vm.selectedField)}}},[_c('v-icon',[_vm._v(\"mdi-backspace-outline\")]),_vm._v(\" \"+_vm._s(_vm.swT('clear'))+\" \")],1):_c('v-icon',{staticClass:\"pt-2\",on:{\"click\":function($event){return _vm.clearField(_vm.selectedField)}}},[_vm._v(\"mdi-backspace-outline\")])],1):_vm._e(),(!_vm.readonly && _vm.fields[_vm.selectedField].readOnly)?_c('v-col',{staticClass:\"pa-0 pl-2 flex-grow-0\",attrs:{\"align\":\"right\"}},[(_vm.$vuetify.breakpoint.smAndUp)?_c('v-btn',{attrs:{\"color\":\"warning\",\"height\":\"40px\",\"disabled\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.swT('readonly'))+\" \")]):_vm._e()],1):_vm._e()],1):_vm._e(),_c('v-row',{staticClass:\"white--text\"},[_vm._l((_vm.selectedFields),function(field,index){return _c('v-col',{key:field,staticClass:\"py-1 px-1\"},[_c('v-text-field',{class:_vm.setFilterClass(index),attrs:{\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"clearable\":\"\",\"label\":\"filter\",\"data-test\":`find-${field}`,\"persistent-placeholder\":\"\"},on:{\"focus\":function($event){_vm.selectedField = _vm.selectedFields[index]}},model:{value:(_vm.fieldLevelFindDebounced[field]),callback:function ($$v) {_vm.$set(_vm.fieldLevelFindDebounced, field, $$v)},expression:\"fieldLevelFindDebounced[field]\"}})],1)}),(_vm.multiRowSelect)?_c('v-col',{staticClass:\"ma-0 pa-0 d-flex justify-center align-center flex-column\",staticStyle:{\"width\":\"24px\",\"max-width\":\"24px\"}},[_c('v-icon',{staticClass:\"mt-0 mb-0 pa-0\",attrs:{\"data-test\":\"filter-selected\",\"dense\":\"\",\"hide-details\":\"\",\"color\":_vm.filterSelected ? 'blue' : ''},on:{\"click\":_vm.filterManualSelection}},[_vm._v(\" \"+_vm._s(_vm.filterSelected ? 'mdi-filter-minus' : 'mdi-filter-plus-outline')+\" \")])],1):_vm._e()],2),_c('v-row',{staticClass:\"font-weight-bold white--text pt-1 d-flex mt-2\"},[_c('draggable',{staticClass:\"d-flex justify-space-between\",staticStyle:{\"width\":\"100%\"},model:{value:(_vm.selectedFields),callback:function ($$v) {_vm.selectedFields=$$v},expression:\"selectedFields\"}},[_vm._l((_vm.selectedFields),function(field,index){return _c('v-col',{key:field,class:_vm.setHeaderClass(index),on:{\"click\":function($event){return _vm.cellHeaderClick({ selectedFields: _vm.selectedFields, index, fields: _vm.fields })}}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({},'div',attrs,false),on),[(_vm.fields[field].sort === 'asc')?_c('v-icon',{staticClass:\"pa-0 ma-0\",attrs:{\"x-small\":\"\",\"right\":\"\"}},[_vm._v(\"mdi-sort-alphabetical-ascending-variant\")]):_vm._e(),(_vm.fields[field].sort === 'desc')?_c('v-icon',{staticClass:\"pa-0 ma-0\",attrs:{\"x-small\":\"\",\"right\":\"\"}},[_vm._v(\"mdi-sort-alphabetical-descending-variant\")]):_vm._e(),(_vm.fields[field].sort === undefined && _vm.selectedField === _vm.selectedFields[index])?_c('v-icon',{staticClass:\"pa-0 ma-0\",attrs:{\"x-small\":\"\",\"right\":\"\"}},[_vm._v(\" mdi-sort-alphabetical-variant \")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.columnHeadName(_vm.fields[field]))+\" \")],1)]}}],null,true)},[_c('span',[_vm._v(_vm._s(_vm.swT(_vm.fields[field].text)))])])],1)}),(_vm.multiRowSelect)?_c('v-col',{staticClass:\"ma-0 pa-0\",class:_vm.setHeaderClass(999),staticStyle:{\"max-width\":\"24px\",\"height\":\"30px\"}},[(!_vm.isManualSelectionActive)?_c('v-checkbox',{staticClass:\"pa-0\",staticStyle:{\"width\":\"24px\",\"max-width\":\"24px\",\"margin-top\":\"-2px\",\"margin-left\":\"-5px\"},attrs:{\"data-test\":\"select-all-rows\",\"dense\":\"\",\"hide-details\":\"\"},on:{\"click\":_vm.toggleAll},model:{value:(_vm.selectAll),callback:function ($$v) {_vm.selectAll=$$v},expression:\"selectAll\"}}):_vm._e()],1):_vm._e()],2)],1)],1)],1),(_vm.loadingStatus && !_vm.$store.state.editing)?_c('v-row',{staticClass:\"d-flex justify-center align-center\"},[_c('v-card',{staticClass:\"px-0\",attrs:{\"flat\":\"\"}},[_c('v-img',{attrs:{\"src\":_vm.animationUrl,\"cover\":\"\",\"height\":\"400\",\"width\":\"400\"}})],1)],1):_c('v-card',{staticStyle:{\"border-top\":\"1px solid #aaa\",\"border-radius\":\"inherit\"},attrs:{\"elevation\":\"0\"}},[_c('v-card-text',{staticClass:\"py-0 px-0\"},[_c('div',{staticStyle:{\"border-left\":\"1px solid #aaa\"}},_vm._l((_vm.filteredSkus.slice((_vm.page - 1) * _vm.totalRowsOnPage, _vm.page * _vm.totalRowsOnPage)),function(sku,index){return _c('div',{key:index},[(_vm.skuSyncDiff(sku, index))?_c('v-row',{staticClass:\"ma-0 pa-0\",class:_vm.rowClass(index, sku)},[_c('v-btn',{staticClass:\"pa-0\",staticStyle:{\"position\":\"absolute\",\"min-height\":\"12px\",\"height\":\"22px\",\"min-width\":\"16px\",\"filter\":\"opacity(0.35)\"},attrs:{\"tile\":\"\",\"color\":_vm.skuSource(sku)}},[_c('v-icon',{staticStyle:{\"position\":\"absolute\",\"padding\":\"3px 0px\",\"max-width\":\"16px\"},attrs:{\"small\":\"\",\"data-test\":`activate-menu-${sku.id}`},on:{\"click\":function($event){return _vm.activateMenu($event, sku)}}},[_vm._v(\" mdi-dots-vertical \")])],1),_vm._l((_vm.selectedFields),function(field){return _c('v-col',{key:field,staticClass:\"py-0 ellipsis\",class:_vm.cellClass(sku, field, index),on:{\"contextmenu\":function($event){return _vm.activateMenu($event, sku)}}},[(_vm.displayDifferences(sku, field))?_c('span',[_c('span',{staticClass:\"text-decoration-line-through red--text\"},[(_vm.fields[field].type == 'currency')?_c('swSpanCurrency',{attrs:{\"amount\":_vm.originalSkuFormatter(sku, field)}}):(_vm.fields[field].type == 'boolean')?_c('span',[_vm._v(_vm._s(_vm.originalSkuFormatter(sku, field) ? '✅' : 'âŒ'))]):_c('span',{staticClass:\"text-truncate\"},[_vm._v(_vm._s(_vm.originalSkuFormatter(sku, field)))])],1),_vm._v(\"  \"),_c('span',{staticClass:\"green--text font-weight-bold\"},[(_vm.fields[field].type == 'currency')?_c('swSpanCurrency',{attrs:{\"amount\":sku[_vm.fields[field].field]}}):(_vm.fields[field].type == 'boolean')?_c('span',[_vm._v(_vm._s(sku[_vm.fields[field].field] ? '✅' : 'âŒ'))]):_c('span',{staticClass:\"text-truncate\"},[_vm._v(_vm._s(_vm.cellFormatter(sku, field)))])],1)]):_c('span',[(_vm.fields[field].type == 'currency')?_c('swCurrency',{attrs:{\"amount\":sku[_vm.fields[field].field]}}):(_vm.fields[field].type == 'boolean')?_c('div',[_vm._v(_vm._s(sku[_vm.fields[field].field] ? '✅' : 'âŒ'))]):(_vm.fields[field].type == 'image')?_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('v-tooltip',{attrs:{\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [(_vm.cellFormatter(sku, field) > -1)?_c('v-icon',_vm._g(_vm._b({attrs:{\"dark\":\"\",\"color\":\"success\",\"dense\":\"\",\"small\":\"\"}},'v-icon',attrs,false),on),[_vm._v(\"mdi-eye\")]):_vm._e()]}}],null,true)},[_c('v-slide-group',{attrs:{\"center-active\":\"\",\"show-arrows\":\"\"},model:{value:(_vm.slideGroupModel),callback:function ($$v) {_vm.slideGroupModel=$$v},expression:\"slideGroupModel\"}},_vm._l((_vm.skuImages(sku)),function(image){return _c('v-slide-item',{key:image,scopedSlots:_vm._u([{key:\"default\",fn:function({ active, toggle }){return [_c('v-card',{staticClass:\"mx-1 d-flex align-center\",attrs:{\"text\":\"\",\"height\":\"200\",\"width\":\"100\",\"color\":\"transparent\"},on:{\"click\":toggle}},[_c('v-scale-transition',[_c('v-img',{attrs:{\"src\":_vm.imageSrc(image, 150),\"contain\":\"\"}})],1)],1)]}}],null,true)})}),1)],1),_vm._v(\" \"+_vm._s(_vm.cellFormatter(sku, field))+\" \")],1):_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('div',_vm._g(_vm._b({staticClass:\"text-truncate\",class:field === _vm.selectedFields[0] ? 'pl-2' : '',attrs:{\"color\":\"primary\",\"dark\":\"\"}},'div',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.cellFormatter(sku, field))+\" \")])]}}],null,true)},[_c('div',[_vm._v(_vm._s(_vm.cellFormatter(sku, field)))])])],1)],1)])}),(_vm.multiRowSelect)?_c('v-col',{staticClass:\"ma-0 pa-0\",staticStyle:{\"width\":\"24px\",\"max-width\":\"24px\"}},[_c('v-checkbox',{staticClass:\"ma-0 pa-0\",class:_vm.cellClass(sku, 'barcode', 0),attrs:{\"data-test\":`checkbox-${index}`,\"dense\":\"\",\"hide-details\":\"\"},on:{\"change\":function($event){return _vm.countRows()}},model:{value:(sku.SELECTED),callback:function ($$v) {_vm.$set(sku, \"SELECTED\", $$v)},expression:\"sku.SELECTED\"}})],1):_vm._e()],2):_vm._e()],1)}),0)])],1)],1),_c('v-menu',{attrs:{\"position-x\":_vm.contextMenuX,\"position-y\":_vm.contextMenuY,\"absolute\":\"\",\"offset-y\":\"\",\"transition\":\"scroll-y-transition\",\"rounded\":\"lg\"},model:{value:(_vm.menuActivated),callback:function ($$v) {_vm.menuActivated=$$v},expression:\"menuActivated\"}},[_c('v-list',_vm._l((_vm.tablePopupMenuItems),function(item,index){return _c('v-list-item',{key:index,attrs:{\"data-test\":`popup-menu-${item.dataTest}`},on:{\"click\":function($event){item.callback && item.callback(item.payload)}}},[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"small\":\"\"},domProps:{\"textContent\":_vm._s(item.icon)}})],1),_c('v-list-item-title',[_c('span',{class:item.class},[_vm._v(_vm._s(item.title))])])],1)}),1)],1),(_vm.showEditSku)?_c('swEditSku',{attrs:{\"show-edit-sku\":_vm.showEditSku,\"fields\":_vm.selectedFields,\"updated-skus\":_vm.updatedSkus,\"masterdata\":_vm.masterdata,\"sku\":_vm.skuToEditProp,\"mode\":_vm.dialogMode,\"readonly\":_vm.readonly,\"is-generating-barcodes\":_vm.isGeneratingBarcodes},on:{\"edit-sku-action\":_vm.applyEditSkuoperation}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { FieldWithItemsI, SkuFieldI } from '@/types/skuEditor'\nimport fieldFunctions from './skuEditorFunctions'\nconst choices: SkuFieldI[] = [\n { field: 'active', value: 'active', text: 'sku.active', type: 'boolean', formatter: null, filteringRule: null },\n { field: 'articleCode', value: 'articlecode', text: 'sku.articleCode', type: 'text', required: true, formatter: null, filteringRule: null },\n { field: 'articleCodeSupplier', value: 'articlecodesupplier', text: 'sku.articleCodeSupplier', type: 'text', formatter: null, filteringRule: null },\n { field: 'articleDescription', value: 'articledescription', text: 'sku.articleDescription', type: 'text', recommended: true, formatter: null, filteringRule: null },\n {\n field: 'articleGroup',\n value: 'articlegroup',\n text: 'sku.articleGroup',\n type: 'combobox',\n items: [],\n masterdata: true,\n formatter: null,\n filteringRule: null,\n },\n { field: 'articleGroupSupplier', value: 'articlegroupsupplier', text: 'sku.articleGroupSupplier', type: 'text', formatter: null, filteringRule: null },\n { field: 'barcode', value: 'barcode', text: 'sku.id', type: 'text', readOnly: true, required: true, formatter: null, filteringRule: null },\n { field: 'brand', value: 'brand', text: 'sku.brand', type: 'combobox', items: [], required: true, formatter: null, filteringRule: null },\n { field: 'buyPrice', value: 'buyprice', text: 'sku.buyPrice', type: 'currency', recommended: true, formatter: null, filteringRule: null },\n { field: 'calculation', value: 'calculation', text: 'sku.calculation', type: 'text', readOnly: true, formatter: null, filteringRule: null },\n {\n field: 'campaigns',\n value: 'campaigns',\n text: 'sku.campaigns',\n type: 'multiselect',\n items: [],\n formatter: fieldFunctions.campaignIdsToNames,\n filteringRule: null,\n },\n {\n field: 'collection',\n value: 'collection',\n text: 'sku.collection',\n type: 'combobox',\n items: [],\n recommended: true,\n masterdata: true,\n formatter: null,\n filteringRule: null,\n },\n { field: 'collectionSupplier', value: 'collectionsupplier', text: 'sku.collectionSupplier', type: 'text', formatter: null, filteringRule: null },\n { field: 'colorCode', value: 'colorcode', text: 'sku.colorCode', type: 'text', readOnly: true, formatter: null, filteringRule: null },\n { field: 'colorCodeSupplier', value: 'colorcodesupplier', text: 'sku.colorCodeSupplier', type: 'text', formatter: null, filteringRule: null },\n { field: 'colorDescription', value: 'colordescription', text: 'sku.colorDescription', type: 'text', readOnly: true, formatter: null, filteringRule: null },\n {\n field: 'colorFamily',\n value: 'colorfamily',\n text: 'sku.colorFamily',\n type: 'combobox',\n items: [],\n recommended: true,\n masterdata: true,\n formatter: null,\n filteringRule: null,\n },\n { field: 'colorSupplier', value: 'colorsupplier', text: 'sku.colorSupplier', type: 'text', formatter: null, filteringRule: null },\n { field: 'gln', value: 'gln', text: 'sku.gln', type: 'text', formatter: null, filteringRule: null },\n { field: 'images', value: 'imagename', text: 'sku.imageName', type: 'text', formatter: null, filteringRule: null },\n { field: 'images', value: 'images', text: 'sku.images', type: 'image', formatter: fieldFunctions.countImages, filteringRule: null },\n { field: 'margin', value: 'margin', text: 'sku.margin', type: 'text', readOnly: true, formatter: null, filteringRule: null },\n { field: 'mainSize', value: 'mainsize', text: 'sku.mainSize', type: 'text', readOnly: true, formatter: null, filteringRule: null },\n { field: 'pricat', value: 'pricat', text: 'sku.pricat', type: 'text', readOnly: true, formatter: null, filteringRule: null },\n { field: 'price', value: 'sellprice', text: 'sku.sellPrice', type: 'currency', recommended: true, formatter: null, filteringRule: null },\n {\n field: 'pricetagLayouts',\n value: 'pricetaglayouts',\n text: 'sku.pricetagLayouts',\n type: 'multiselect',\n items: [],\n formatter: null,\n filteringRule: null,\n },\n {\n field: 'size',\n value: 'size',\n text: 'sku.size',\n type: 'combobox',\n items: [],\n masterdata: true,\n formatter: null,\n filteringRule: null,\n },\n {\n field: 'genderSupplier',\n value: 'genderSupplier',\n text: 'sku.genderSupplier',\n type: 'combobox',\n items: [],\n masterdata: true,\n formatter: null,\n filteringRule: null,\n },\n { field: 'sizeSupplier', value: 'sizesupplier', text: 'sku.sizeSupplier', type: 'text', formatter: null, filteringRule: null },\n { field: 'source', value: 'source', text: 'sku.source', type: 'text', readOnly: true, formatter: null, filteringRule: null },\n { field: 'subColorCode', value: 'subcolor', text: 'sku.subColor', type: 'text', readOnly: true, formatter: null, filteringRule: null },\n { field: 'subSize', value: 'subsize', text: 'sku.subSize', type: 'text', readOnly: true, formatter: null, filteringRule: null },\n { field: 'salePrice', value: 'saleprice', text: 'sku.salePrice', type: 'currency', formatter: null, filteringRule: null },\n {\n field: 'campaignSalesPrice',\n value: 'campaignsalesprice',\n text: 'sku.campaignsalesprice',\n type: 'currency',\n readOnly: true,\n formatter: null,\n filteringRule: null,\n },\n { field: 'vatCategory', value: 'vat', text: 'sku.vat', type: 'enum', items: [], formatter: null, filteringRule: null },\n { field: 'quickPick', value: 'quickPick', text: 'sku.quickPick', type: 'number', formatter: null, filteringRule: null },\n {\n field: 'salesChannels',\n value: 'salesChannels',\n text: 'sku.salesChannels',\n type: 'multiselect',\n items: [],\n formatter: null,\n filteringRule: null,\n },\n {\n field: 'set',\n value: 'set',\n text: 'sku.set',\n type: 'combobox',\n items: [],\n masterdata: true,\n formatter: null,\n filteringRule: null,\n },\n { field: 'FEDASGROUP', value: 'fedasgroup', text: 'sku.FEDASGROUP', type: 'text', formatter: null, filteringRule: null },\n { field: 'BTEGROUP', value: 'btegroup', text: 'sku.BTEGROUP', type: 'text', formatter: null, filteringRule: null },\n { field: 'DTBGROUP', value: 'dtbgroup', text: 'sku.DTBGROUP', type: 'text', formatter: null, filteringRule: null },\n { field: '__modified', value: '__modified', text: 'sku.__modified', type: 'text', formatter: fieldFunctions.formatDate, filteringRule: null },\n { field: '__created', value: '__created', text: 'sku.__created', type: 'text', formatter: fieldFunctions.formatDate, filteringRule: null },\n { field: 'manufacturer', value: 'manufacturer', text: 'sku.manufacturer', type: 'text', formatter: null, filteringRule: null },\n]\n\nfunction updateItems() {\n choices.forEach((choice) => {\n const choiceWithItems = choice as FieldWithItemsI\n if (choiceWithItems.items) {\n choiceWithItems.items = fieldFunctions.getItems(choice.field)\n }\n })\n}\n\nexport { choices, updateItems }\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"persistent\":\"\",\"value\":_vm.showEditSku,\"max-width\":\"800\",\"width\":\"600px\"}},[_c('v-card',{staticClass:\"pb-2 white\"},[_c('v-card',{staticClass:\"sticky-element px-2 mb-2 mx-0\"},[_c('v-card-text',[_c('v-row',{attrs:{\"data-test\":\"brand-title mx-1 px-0\"}},[_c('v-col',{staticClass:\"d-flex align-center justify-start\",attrs:{\"cols\":\"12\",\"sm\":\"3\"}},[_c('div',{staticClass:\"text-h5\"},[_vm._v(_vm._s(_vm.swT(_vm.convertMode(_vm.mode))))])]),_c('v-col',{staticClass:\"d-flex align-center justify-end\",attrs:{\"cols\":\"12\",\"sm\":\"9\"}},[_c('v-card-actions',[(_vm.computedMode == 'add-sku')?_c('span',[_c('img',{ref:\"succeedAnimation\",staticClass:\"succeed-animation\",attrs:{\"src\":_vm.animationSrc,\"contain\":\"\"}}),(!_vm.readonly)?_c('v-btn',{staticClass:\"success\",attrs:{\"disabled\":!_vm.$store.state.activeFormValid,\"data-test\":\"addSkuButton\",\"large\":\"\"},nativeOn:{\"click\":function($event){return _vm.addSku.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.swT('add_sku'))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"ml-2 error\",attrs:{\"data-test\":\"doneButton\",\"large\":\"\"},nativeOn:{\"click\":function($event){return _vm.doneAddingSkus.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.swT('close'))+\" \")])],1):_vm._e(),(_vm.computedMode == 'edit-sku' || _vm.computedMode == 'edit-masterdata')?_c('span',[(!_vm.readonly)?_c('v-btn',{staticClass:\"mx-1 success\",attrs:{\"large\":\"\",\"disabled\":!_vm.$store.state.activeFormValid,\"data-test\":\"okEditButton\"},nativeOn:{\"click\":function($event){return _vm.updateSku.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.swT('ok'))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"mx-1 error\",attrs:{\"large\":\"\",\"data-test\":\"cancelEditButton\"},nativeOn:{\"click\":function($event){return _vm.cancelForm.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.swT('cancel'))+\" \")])],1):_vm._e(),(_vm.computedMode == 'add-masterdata')?_c('span',[(!_vm.readonly)?_c('v-btn',{staticClass:\"mx-1 success\",attrs:{\"large\":\"\",\"disabled\":!_vm.$store.state.activeFormValid,\"data-test\":\"addSkuButton\"},on:{\"click\":_vm.addMasterData}},[_vm._v(\" \"+_vm._s(_vm.swT('add'))+\" \")]):_vm._e(),_c('v-btn',{staticClass:\"mx-1 error\",attrs:{\"large\":\"\",\"data-test\":\"doneButton\"},nativeOn:{\"click\":function($event){return _vm.cancelForm.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.swT('done'))+\" \")])],1):_vm._e(),(_vm.computedMode == 'display-data')?_c('span',[_c('v-btn',{staticClass:\"mx-1 error\",attrs:{\"large\":\"\",\"data-test\":\"doneButton\"},nativeOn:{\"click\":function($event){return _vm.cancelForm.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.swT('done'))+\" \")])],1):_vm._e()])],1)],1)],1)],1),_c('v-card-text',{staticClass:\"mt-2\"},[_c('v-form',{ref:\"form\",staticClass:\"mx-0\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.$store.state.activeFormValid),callback:function ($$v) {_vm.$set(_vm.$store.state, \"activeFormValid\", $$v)},expression:\"$store.state.activeFormValid\"}},[(!_vm.masterdata)?_c('v-row',[_c('v-col',[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.barcodeLoading),expression:\"barcodeLoading\"}],staticClass:\"text-center\"},[_c('v-progress-circular',{attrs:{\"width\":3,\"size\":48,\"color\":\"black\",\"indeterminate\":\"\"}})],1),_c('v-img',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.barcodeLoading && _vm.uiSku.barcode),expression:\"!barcodeLoading && uiSku.barcode\"}],attrs:{\"src\":_vm.uiSku.barcode && _vm.uiSku.barcode.length >= 12 ? `http://bwipjs-api.metafloor.com/?bcid=code128&text=${_vm.uiSku.barcode}` : '',\"height\":\"48\"}}),(_vm.sku.images && _vm.skuImages(_vm.sku).length > 1)?_c('v-slide-group',{staticClass:\"py-1\",attrs:{\"center-active\":\"\",\"show-arrows\":\"\"},model:{value:(_vm.slideGroupModel),callback:function ($$v) {_vm.slideGroupModel=$$v},expression:\"slideGroupModel\"}},_vm._l((_vm.skuImages(_vm.sku)),function(image){return _c('v-slide-item',{key:image,scopedSlots:_vm._u([{key:\"default\",fn:function({ active, toggle }){return [_c('v-card',{staticClass:\"mx-1 d-flex align-center\",attrs:{\"flat\":\"\",\"height\":\"200\",\"width\":\"100\"},on:{\"click\":toggle}},[_c('v-img',{attrs:{\"src\":_vm.imageSrc(image, 150),\"contain\":\"\"}})],1)]}}],null,true)})}),1):_vm._e(),_c('v-text-field',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isGeneratingBarcodes),expression:\"!isGeneratingBarcodes\"},{name:\"hotkey\",rawName:\"v-hotkey\",value:(_vm.keymap),expression:\"keymap\"}],ref:\"barcodeField\",staticClass:\"mt-2\",attrs:{\"id\":\"barcodeField\",\"data-test\":\"barcodeField\",\"outlined\":\"\",\"dense\":\"\",\"autofocus\":\"\",\"type\":\"number\",\"disabled\":['edit-sku', 'display-data'].includes(_vm.computedMode),\"label\":_vm.swT('barcode'),\"rules\":[_vm.isGeneratingBarcodes ? true : _vm.required, _vm.isGeneratingBarcodes ? true : (v) => !v || v.length == 13 || v.length == 12 || _vm.swT('lengthshouldbe12or13')],\"error-messages\":_vm.barcodeErrorMessage},on:{\"blur\":_vm.validateBarcode,\"enter\":_vm.validateBarcode},model:{value:(_vm.uiSku.barcode),callback:function ($$v) {_vm.$set(_vm.uiSku, \"barcode\", $$v)},expression:\"uiSku.barcode\"}})],1)],1):_vm._e(),_c('v-row',{staticClass:\"flex-wrap\"},[(_vm.uiSku.images && _vm.skuImages(_vm.sku).length < 2)?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-img',{attrs:{\"src\":_vm.imageSrc(_vm.skuImages(_vm.sku)[0], 150),\"contain\":\"\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2\",attrs:{\"data-test\":\"articleCodeSupplier\",\"outlined\":\"\",\"disabled\":_vm.computedMode == 'display-data',\"hide-details\":\"\",\"dense\":\"\",\"label\":_vm.swT('articlecodesupplier'),\"rules\":[_vm.required]},on:{\"keyup\":_vm.updateFieldLevelFind,\"click\":function($event){return $event.target.select()}},model:{value:(_vm.uiSku.articleCodeSupplier),callback:function ($$v) {_vm.$set(_vm.uiSku, \"articleCodeSupplier\", $$v)},expression:\"uiSku.articleCodeSupplier\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2\",attrs:{\"disabled\":_vm.computedMode == 'display-data',\"data-test\":\"articleDescriptionField\",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"label\":_vm.swT('articledescription'),\"rules\":[_vm.required]},on:{\"click\":function($event){return $event.target.select()}},model:{value:(_vm.uiSku.articleDescription),callback:function ($$v) {_vm.$set(_vm.uiSku, \"articleDescription\", $$v)},expression:\"uiSku.articleDescription\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-autocomplete',{ref:\"sizeRange\",staticClass:\"mt-2\",attrs:{\"disabled\":_vm.computedMode == 'display-data',\"data-test\":\"sizeRange\",\"dense\":\"\",\"outlined\":\"\",\"clearable\":\"\",\"hide-details\":\"\",\"items\":_vm.$store.state.activeConfig.products.sizeranges.value.split('\\n'),\"label\":_vm.swT('size_range')},on:{\"change\":_vm.handleSizeRangeChange},model:{value:(_vm.selectedSizeRange),callback:function ($$v) {_vm.selectedSizeRange=$$v},expression:\"selectedSizeRange\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[(_vm.selectedSizeRange && _vm.isGeneratingBarcodes)?_c('v-combobox',{ref:\"sizeField\",staticClass:\"mt-2\",attrs:{\"data-test\":\"sizeField\",\"dense\":\"\",\"clearable\":\"\",\"disabled\":_vm.computedMode == 'display-data',\"outlined\":\"\",\"hide-details\":\"\",\"small-chips\":\"\",\"hide-selected\":\"\",\"multiple\":_vm.isGeneratingBarcodes,\"items\":_vm.selectedSizeRange.split(','),\"rules\":[_vm.required],\"label\":_vm.swT('size'),\"deletable-chips\":_vm.isGeneratingBarcodes},scopedSlots:_vm._u([{key:\"selection\",fn:function({ attrs, item, selected, index }){return [_c('v-chip',_vm._b({attrs:{\"input-value\":selected,\"label\":\"\",\"small\":\"\"}},'v-chip',attrs,false),[_c('span',{class:_vm.isGeneratingBarcodes ? 'pr-1' : '',attrs:{\"data-test\":`groupChip-${item.text}`}},[_vm._v(_vm._s(item))]),(_vm.isGeneratingBarcodes && Array.isArray(_vm.uiSku.size))?_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.uiSku.size.splice(index, 1)}}},[_vm._v(\"$delete\")]):_vm._e()],1)]}}],null,false,683771128),model:{value:(_vm.uiSku.size),callback:function ($$v) {_vm.$set(_vm.uiSku, \"size\", $$v)},expression:\"uiSku.size\"}}):(_vm.selectedSizeRange && !_vm.isGeneratingBarcodes)?_c('v-select',{ref:\"sizeField\",staticClass:\"mt-2\",attrs:{\"data-test\":\"sizeField\",\"dense\":\"\",\"clearable\":\"\",\"disabled\":_vm.computedMode == 'display-data',\"outlined\":\"\",\"hide-details\":\"\",\"small-chips\":\"\",\"items\":_vm.selectedSizeRange.split(','),\"hide-selected\":\"\",\"rules\":[_vm.required],\"label\":_vm.swT('size'),\"deletable-chips\":_vm.isGeneratingBarcodes},scopedSlots:_vm._u([{key:\"selection\",fn:function({ attrs, item, selected, index }){return [_c('v-chip',_vm._b({attrs:{\"input-value\":selected,\"label\":\"\",\"small\":\"\"}},'v-chip',attrs,false),[_c('span',{class:_vm.isGeneratingBarcodes ? 'pr-1' : '',attrs:{\"data-test\":`groupChip-${item.text}`}},[_vm._v(_vm._s(item))]),(_vm.isGeneratingBarcodes && Array.isArray(_vm.uiSku.size))?_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.uiSku.size.splice(index, 1)}}},[_vm._v(\"$delete\")]):_vm._e()],1)]}}],null,false,683771128),model:{value:(_vm.uiSku.size),callback:function ($$v) {_vm.$set(_vm.uiSku, \"size\", $$v)},expression:\"uiSku.size\"}}):_c('v-text-field',{ref:\"sizeField\",staticClass:\"mt-2\",attrs:{\"data-test\":\"sizeField\",\"dense\":\"\",\"clearable\":\"\",\"disabled\":_vm.computedMode == 'display-data',\"outlined\":\"\",\"hide-details\":\"\",\"small-chips\":\"\",\"items\":_vm.selectedSizeRange.split(','),\"hide-selected\":\"\",\"rules\":[_vm.required],\"label\":_vm.swT('size'),\"deletable-chips\":_vm.isGeneratingBarcodes},scopedSlots:_vm._u([{key:\"selection\",fn:function({ attrs, item, selected, index }){return [_c('v-chip',_vm._b({attrs:{\"input-value\":selected,\"label\":\"\",\"small\":\"\"}},'v-chip',attrs,false),[_c('span',{class:_vm.isGeneratingBarcodes ? 'pr-1' : '',attrs:{\"data-test\":`groupChip-${item.text}`}},[_vm._v(_vm._s(item))]),(_vm.isGeneratingBarcodes && Array.isArray(_vm.uiSku.size))?_c('v-icon',{attrs:{\"small\":\"\"},on:{\"click\":function($event){return _vm.uiSku.size.splice(index, 1)}}},[_vm._v(\"$delete\")]):_vm._e()],1)]}}],null,false,683771128),model:{value:(_vm.uiSku.size),callback:function ($$v) {_vm.$set(_vm.uiSku, \"size\", $$v)},expression:\"uiSku.size\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-combobox',{staticClass:\"mt-2\",attrs:{\"data-test\":\"colorField\",\"dense\":\"\",\"disabled\":_vm.computedMode == 'display-data',\"outlined\":\"\",\"hide-details\":\"\",\"items\":_vm.colors,\"label\":_vm.swT('color'),\"rules\":[_vm.required]},model:{value:(_vm.uiSku.colorFamily),callback:function ($$v) {_vm.$set(_vm.uiSku, \"colorFamily\", $$v)},expression:\"uiSku.colorFamily\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2\",attrs:{\"data-test\":\"colorCodeSupplierField\",\"dense\":\"\",\"outlined\":\"\",\"disabled\":_vm.computedMode == 'display-data',\"hide-details\":\"\",\"label\":_vm.swT('colorcodesupplier')},on:{\"click\":function($event){return $event.target.select()}},model:{value:(_vm.uiSku.colorCodeSupplier),callback:function ($$v) {_vm.$set(_vm.uiSku, \"colorCodeSupplier\", $$v)},expression:\"uiSku.colorCodeSupplier\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2\",attrs:{\"disabled\":_vm.computedMode == 'display-data',\"data-test\":\"colorSupplierField\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"label\":_vm.swT('colorsupplier')},model:{value:(_vm.uiSku.colorSupplier),callback:function ($$v) {_vm.$set(_vm.uiSku, \"colorSupplier\", $$v)},expression:\"uiSku.colorSupplier\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-combobox',{staticClass:\"mt-2\",attrs:{\"disabled\":_vm.computedMode == 'display-data',\"data-test\":\"articleGroupField\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"items\":_vm.$store.state.productGroups,\"label\":_vm.swT('productgroup'),\"rules\":[_vm.required]},model:{value:(_vm.uiSku.articleGroup),callback:function ($$v) {_vm.$set(_vm.uiSku, \"articleGroup\", $$v)},expression:\"uiSku.articleGroup\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-combobox',{ref:\"brandField\",staticClass:\"mt-2\",attrs:{\"disabled\":_vm.computedMode == 'display-data',\"data-test\":\"brandField\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"items\":_vm.$store.state.brands.map((b) => b.name).sort(),\"label\":_vm.swT('brand'),\"rules\":[_vm.required]},model:{value:(_vm.uiSku.brand),callback:function ($$v) {_vm.$set(_vm.uiSku, \"brand\", $$v)},expression:\"uiSku.brand\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-combobox',{staticClass:\"mt-2\",attrs:{\"disabled\":_vm.computedMode == 'display-data',\"data-test\":\"collectionField\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"items\":_vm.$store.state.collections,\"label\":_vm.swT('collection'),\"rules\":[_vm.required]},model:{value:(_vm.uiSku.collection),callback:function ($$v) {_vm.$set(_vm.uiSku, \"collection\", $$v)},expression:\"uiSku.collection\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":_vm.defaultDiscount != '0.0%' ? '3' : '6'}},[_c('v-currency-field',{staticClass:\"mt-2 right-input\",attrs:{\"data-test\":\"buyPriceField\",\"outlined\":\"\",\"disabled\":_vm.computedMode == 'display-data' || _vm.enableDiscount,\"hide-details\":\"\",\"dense\":\"\",\"prefix\":\"€\",\"label\":_vm.swT('buyprice')},on:{\"click\":function($event){return $event.target.select()},\"input\":_vm.priceChange},model:{value:(_vm.uiSku.buyPrice),callback:function ($$v) {_vm.$set(_vm.uiSku, \"buyPrice\", $$v)},expression:\"uiSku.buyPrice\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":_vm.defaultDiscount != '0.0%' ? '3' : '6'}},[_c('v-currency-field',{staticClass:\"mt-2 right-input\",attrs:{\"data-test\":\"priceField\",\"outlined\":\"\",\"hide-details\":\"\",\"disabled\":_vm.computedMode == 'display-data',\"dense\":\"\",\"prefix\":\"€\",\"label\":_vm.swT('sellprice')},on:{\"click\":function($event){return $event.target.select()},\"input\":_vm.priceChange},model:{value:(_vm.uiSku.price),callback:function ($$v) {_vm.$set(_vm.uiSku, \"price\", $$v)},expression:\"uiSku.price\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-combobox',{staticClass:\"mt-2\",attrs:{\"disabled\":_vm.computedMode == 'display-data',\"data-test\":\"setField\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"items\":_vm.getItems('set'),\"label\":_vm.swT('set')},model:{value:(_vm.uiSku.set),callback:function ($$v) {_vm.$set(_vm.uiSku, \"set\", $$v)},expression:\"uiSku.set\"}})],1):_vm._e(),(!_vm.masterdata && _vm.defaultDiscount != '0.0%')?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-btn',{staticClass:\"mr-2 discount_button\",attrs:{\"size\":\"x-large\",\"block\":\"\",\"elevation\":_vm.enableDiscount ? 0 : 4,\"data-test\":\"enableDiscountButton\",\"append-icon\":_vm.enableDiscount ? 'mdi-check-outline' : 'mdi-close-outline'},nativeOn:{\"click\":function($event){return _vm.calculateBuyPriceDiscount.apply(null, arguments)}}},[_vm._v(\" \"+_vm._s(_vm.defaultDiscount)+\" \"+_vm._s(_vm.swT('discount'))+\" \"),(_vm.enableDiscount)?_c('v-icon',{staticClass:\"green--text\",attrs:{\"right\":\"\"}},[_vm._v(\"mdi-check-outline\")]):_vm._e()],1)],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2 right-input\",attrs:{\"data-test\":\"marginField\",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"readonly\":\"\",\"filled\":\"\",\"label\":_vm.swT('margin')},model:{value:(_vm.margin),callback:function ($$v) {_vm.margin=$$v},expression:\"margin\"}})],1):_vm._e(),(!_vm.masterdata && _vm.uiSku.buyPrice && _vm.uiSku.price)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2 right-input\",attrs:{\"data-test\":\"calculationField\",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"readonly\":\"\",\"filled\":\"\",\"label\":_vm.swT('calculation')},model:{value:(_vm.calculation),callback:function ($$v) {_vm.calculation=$$v},expression:\"calculation\"}})],1):_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2 right-input\",attrs:{\"value\":\"0.0\",\"data-test\":\"calculationField\",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"readonly\":\"\",\"filled\":\"\",\"label\":_vm.swT('calculation')}})],1),(!_vm.masterdata && _vm.defaultCalculation > 0.0)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2 right-input\",attrs:{\"data-test\":\"defaultCalculationField\",\"outlined\":\"\",\"hide-details\":\"\",\"dense\":\"\",\"readonly\":\"\",\"filled\":\"\",\"label\":_vm.swT('default_calculation')},model:{value:(_vm.defaultCalculation),callback:function ($$v) {_vm.defaultCalculation=$$v},expression:\"defaultCalculation\"}})],1):_vm._e(),(!_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},_vm._l((_vm.$store.state.activeConfig.products.activeAttributes.value),function(attribute){return _c('div',{key:attribute},[_c('v-combobox',{staticClass:\"mt-2\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"disabled\":_vm.disabledMasterdataFields('_' + attribute) || _vm.computedMode == 'display-data',\"label\":_vm.swT(attribute),\"items\":_vm.getItems('_' + attribute)},model:{value:(_vm.uiSku['_' + attribute]),callback:function ($$v) {_vm.$set(_vm.uiSku, '_' + attribute, $$v)},expression:\"uiSku['_' + attribute]\"}})],1)}),0):_vm._e(),(_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2\",attrs:{\"data-test\":\"masterdataProductGroupField\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"disabled\":_vm.disabledMasterdataFields('articleGroup') || _vm.computedMode == 'display-data',\"items\":_vm.$store.state.productGroups,\"rules\":[_vm.required],\"label\":_vm.swT('productgroup')},model:{value:(_vm.uiSku.articleGroup),callback:function ($$v) {_vm.$set(_vm.uiSku, \"articleGroup\", $$v)},expression:\"uiSku.articleGroup\"}})],1):_vm._e(),(_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2\",attrs:{\"data-test\":\"masterdataSizeField\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"small-chips\":\"\",\"disabled\":_vm.disabledMasterdataFields('size') || _vm.computedMode == 'display-data',\"rules\":[_vm.required],\"label\":_vm.swT('size')},model:{value:(_vm.uiSku.size),callback:function ($$v) {_vm.$set(_vm.uiSku, \"size\", $$v)},expression:\"uiSku.size\"}})],1):_vm._e(),(_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2\",attrs:{\"data-test\":\"masterdataColorField\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"disabled\":_vm.disabledMasterdataFields('colorFamily') || _vm.computedMode == 'display-data',\"rules\":[_vm.required],\"label\":_vm.swT('color')},model:{value:(_vm.uiSku.colorFamily),callback:function ($$v) {_vm.$set(_vm.uiSku, \"colorFamily\", $$v)},expression:\"uiSku.colorFamily\"}})],1):_vm._e(),(_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2\",attrs:{\"data-test\":\"masterdataCollectionField\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"disabled\":_vm.disabledMasterdataFields('collection') || _vm.computedMode == 'display-data',\"items\":_vm.$store.state.collections,\"rules\":[_vm.required],\"label\":_vm.swT('collection')},model:{value:(_vm.uiSku.collection),callback:function ($$v) {_vm.$set(_vm.uiSku, \"collection\", $$v)},expression:\"uiSku.collection\"}})],1):_vm._e(),(_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2\",attrs:{\"data-test\":\"masterdataGenderSupplierField\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"disabled\":_vm.disabledMasterdataFields('genderSupplier') || _vm.computedMode == 'display-data',\"items\":_vm.$store.state.collections,\"rules\":[_vm.required],\"label\":_vm.swT('sku.genderSupplier')},model:{value:(_vm.uiSku.genderSupplier),callback:function ($$v) {_vm.$set(_vm.uiSku, \"genderSupplier\", $$v)},expression:\"uiSku.genderSupplier\"}})],1):_vm._e(),(_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-text-field',{staticClass:\"mt-2\",attrs:{\"data-test\":\"masterdataSetField\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"disabled\":_vm.disabledMasterdataFields('set') || _vm.computedMode == 'display-data',\"items\":_vm.$store.state.collections,\"rules\":[_vm.required],\"label\":_vm.swT('sku.set')},model:{value:(_vm.uiSku.set),callback:function ($$v) {_vm.$set(_vm.uiSku, \"set\", $$v)},expression:\"uiSku.set\"}})],1):_vm._e(),(_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},_vm._l((_vm.$store.state.activeConfig.products.activeAttributes.value),function(attribute){return _c('v-text-field',{key:attribute,staticClass:\"mt-2\",attrs:{\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"disabled\":_vm.disabledMasterdataFields('_' + attribute) || _vm.computedMode == 'display-data',\"label\":_vm.swT(attribute)},model:{value:(_vm.uiSku['_' + attribute]),callback:function ($$v) {_vm.$set(_vm.uiSku, '_' + attribute, $$v)},expression:\"uiSku['_' + attribute]\"}})}),1):_vm._e(),(_vm.masterdata)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('h2',{staticClass:\"red--text\"},[_vm._v(\" \"+_vm._s(_vm.barcodeErrorMessage)+\" \")])]):_vm._e()],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-dialog persistent :value=\"showEditSku\" max-width=\"800\" width=\"600px\">\n <v-card class=\"pb-2 white\">\n <v-card class=\"sticky-element px-2 mb-2 mx-0\">\n <v-card-text>\n <v-row data-test=\"brand-title mx-1 px-0\">\n <v-col cols=\"12\" sm=\"3\" class=\"d-flex align-center justify-start\">\n <div class=\"text-h5\">{{ swT(convertMode(mode)) }}</div>\n </v-col>\n <v-col cols=\"12\" sm=\"9\" class=\"d-flex align-center justify-end\">\n <v-card-actions>\n <span v-if=\"computedMode == 'add-sku'\">\n <img ref=\"succeedAnimation\" :src=\"animationSrc\" class=\"succeed-animation\" contain />\n <v-btn v-if=\"!readonly\" :disabled=\"!$store.state.activeFormValid\" data-test=\"addSkuButton\" large class=\"success\" @click.native=\"addSku\">\n {{ swT('add_sku') }}\n </v-btn>\n <v-btn class=\"ml-2 error\" data-test=\"doneButton\" large @click.native=\"doneAddingSkus\">\n {{ swT('close') }}\n </v-btn>\n </span>\n\n <span v-if=\"computedMode == 'edit-sku' || computedMode == 'edit-masterdata'\">\n <v-btn v-if=\"!readonly\" large class=\"mx-1 success\" :disabled=\"!$store.state.activeFormValid\" data-test=\"okEditButton\" @click.native=\"updateSku\">\n {{ swT('ok') }}\n </v-btn>\n <v-btn large class=\"mx-1 error\" data-test=\"cancelEditButton\" @click.native=\"cancelForm\">\n {{ swT('cancel') }}\n </v-btn>\n </span>\n\n <span v-if=\"computedMode == 'add-masterdata'\">\n <v-btn v-if=\"!readonly\" class=\"mx-1 success\" large :disabled=\"!$store.state.activeFormValid\" data-test=\"addSkuButton\" @click=\"addMasterData\">\n {{ swT('add') }}\n </v-btn>\n <v-btn class=\"mx-1 error\" large data-test=\"doneButton\" @click.native=\"cancelForm\">\n {{ swT('done') }}\n </v-btn>\n </span>\n\n <span v-if=\"computedMode == 'display-data'\">\n <v-btn class=\"mx-1 error\" large data-test=\"doneButton\" @click.native=\"cancelForm\">\n {{ swT('done') }}\n </v-btn>\n </span>\n </v-card-actions>\n </v-col>\n </v-row>\n </v-card-text>\n </v-card>\n <v-card-text class=\"mt-2\">\n <v-form ref=\"form\" v-model=\"$store.state.activeFormValid\" lazy-validation class=\"mx-0\">\n <v-row v-if=\"!masterdata\">\n <v-col>\n <div v-show=\"barcodeLoading\" class=\"text-center\">\n <v-progress-circular :width=\"3\" :size=\"48\" color=\"black\" indeterminate></v-progress-circular>\n </div>\n\n <v-img\n v-show=\"!barcodeLoading && uiSku.barcode\"\n :src=\"uiSku.barcode && uiSku.barcode.length >= 12 ? `http://bwipjs-api.metafloor.com/?bcid=code128&text=${uiSku.barcode}` : ''\"\n height=\"48\"\n ></v-img>\n\n <v-slide-group v-if=\"sku.images && skuImages(sku).length > 1\" v-model=\"slideGroupModel\" center-active show-arrows class=\"py-1\">\n <v-slide-item v-for=\"image in skuImages(sku)\" :key=\"image\" v-slot=\"{ active, toggle }\">\n <v-card flat class=\"mx-1 d-flex align-center\" height=\"200\" width=\"100\" @click=\"toggle\">\n <v-img :src=\"imageSrc(image, 150)\" contain></v-img>\n </v-card>\n </v-slide-item>\n </v-slide-group>\n\n <v-text-field\n v-show=\"!isGeneratingBarcodes\"\n id=\"barcodeField\"\n ref=\"barcodeField\"\n v-model=\"uiSku.barcode\"\n v-hotkey=\"keymap\"\n class=\"mt-2\"\n data-test=\"barcodeField\"\n outlined\n dense\n autofocus\n type=\"number\"\n :disabled=\"['edit-sku', 'display-data'].includes(computedMode)\"\n :label=\"swT('barcode')\"\n :rules=\"[isGeneratingBarcodes ? true : required, isGeneratingBarcodes ? true : (v) => !v || v.length == 13 || v.length == 12 || swT('lengthshouldbe12or13')]\"\n :error-messages=\"barcodeErrorMessage\"\n @blur=\"validateBarcode\"\n @enter=\"validateBarcode\"\n ></v-text-field>\n </v-col>\n </v-row>\n <v-row class=\"flex-wrap\">\n <v-col v-if=\"uiSku.images && skuImages(sku).length < 2\" cols=\"12\">\n <v-img :src=\"imageSrc(skuImages(sku)[0], 150)\" contain></v-img>\n </v-col>\n\n <!-- articleCodeSupplier -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"uiSku.articleCodeSupplier\"\n class=\"mt-2\"\n data-test=\"articleCodeSupplier\"\n outlined\n :disabled=\"computedMode == 'display-data'\"\n hide-details\n dense\n :label=\"swT('articlecodesupplier')\"\n :rules=\"[required]\"\n @keyup=\"updateFieldLevelFind\"\n @click=\"$event.target.select()\"\n ></v-text-field>\n </v-col>\n\n <!-- articleDescription -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"uiSku.articleDescription\"\n class=\"mt-2\"\n :disabled=\"computedMode == 'display-data'\"\n data-test=\"articleDescriptionField\"\n outlined\n hide-details\n dense\n :label=\"swT('articledescription')\"\n :rules=\"[required]\"\n @click=\"$event.target.select()\"\n ></v-text-field>\n </v-col>\n\n <!-- sizeRange -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-autocomplete\n ref=\"sizeRange\"\n v-model=\"selectedSizeRange\"\n class=\"mt-2\"\n :disabled=\"computedMode == 'display-data'\"\n data-test=\"sizeRange\"\n dense\n outlined\n clearable\n hide-details\n :items=\"$store.state.activeConfig.products.sizeranges.value.split('\\n')\"\n :label=\"swT('size_range')\"\n @change=\"handleSizeRangeChange\"\n ></v-autocomplete>\n </v-col>\n\n <!-- size -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-combobox\n v-if=\"selectedSizeRange && isGeneratingBarcodes\"\n ref=\"sizeField\"\n v-model=\"uiSku.size\"\n class=\"mt-2\"\n data-test=\"sizeField\"\n dense\n clearable\n :disabled=\"computedMode == 'display-data'\"\n outlined\n hide-details\n small-chips\n hide-selected\n :multiple=\"isGeneratingBarcodes\"\n :items=\"selectedSizeRange.split(',')\"\n :rules=\"[required]\"\n :label=\"swT('size')\"\n :deletable-chips=\"isGeneratingBarcodes\"\n >\n <template v-slot:selection=\"{ attrs, item, selected, index }\">\n <v-chip v-bind=\"attrs\" :input-value=\"selected\" label small>\n <span :class=\"isGeneratingBarcodes ? 'pr-1' : ''\" :data-test=\"`groupChip-${item.text}`\">{{ item }}</span>\n <v-icon v-if=\"isGeneratingBarcodes && Array.isArray(uiSku.size)\" small @click=\"uiSku.size.splice(index, 1)\">$delete</v-icon>\n </v-chip>\n </template>\n </v-combobox>\n\n <v-select\n v-else-if=\"selectedSizeRange && !isGeneratingBarcodes\"\n ref=\"sizeField\"\n v-model=\"uiSku.size\"\n class=\"mt-2\"\n data-test=\"sizeField\"\n dense\n clearable\n :disabled=\"computedMode == 'display-data'\"\n outlined\n hide-details\n small-chips\n :items=\"selectedSizeRange.split(',')\"\n hide-selected\n :rules=\"[required]\"\n :label=\"swT('size')\"\n :deletable-chips=\"isGeneratingBarcodes\"\n >\n <template v-slot:selection=\"{ attrs, item, selected, index }\">\n <v-chip v-bind=\"attrs\" :input-value=\"selected\" label small>\n <span :class=\"isGeneratingBarcodes ? 'pr-1' : ''\" :data-test=\"`groupChip-${item.text}`\">{{ item }}</span>\n <v-icon v-if=\"isGeneratingBarcodes && Array.isArray(uiSku.size)\" small @click=\"uiSku.size.splice(index, 1)\">$delete</v-icon>\n </v-chip>\n </template>\n </v-select>\n\n <v-text-field\n v-else\n ref=\"sizeField\"\n v-model=\"uiSku.size\"\n class=\"mt-2\"\n data-test=\"sizeField\"\n dense\n clearable\n :disabled=\"computedMode == 'display-data'\"\n outlined\n hide-details\n small-chips\n :items=\"selectedSizeRange.split(',')\"\n hide-selected\n :rules=\"[required]\"\n :label=\"swT('size')\"\n :deletable-chips=\"isGeneratingBarcodes\"\n >\n <template v-slot:selection=\"{ attrs, item, selected, index }\">\n <v-chip v-bind=\"attrs\" :input-value=\"selected\" label small>\n <span :class=\"isGeneratingBarcodes ? 'pr-1' : ''\" :data-test=\"`groupChip-${item.text}`\">{{ item }}</span>\n <v-icon v-if=\"isGeneratingBarcodes && Array.isArray(uiSku.size)\" small @click=\"uiSku.size.splice(index, 1)\">$delete</v-icon>\n </v-chip>\n </template>\n </v-text-field>\n </v-col>\n\n <!-- color -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-combobox\n v-model=\"uiSku.colorFamily\"\n class=\"mt-2\"\n data-test=\"colorField\"\n dense\n :disabled=\"computedMode == 'display-data'\"\n outlined\n hide-details\n :items=\"colors\"\n :label=\"swT('color')\"\n :rules=\"[required]\"\n ></v-combobox>\n </v-col>\n\n <!-- colorCodeSupplier -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"uiSku.colorCodeSupplier\"\n class=\"mt-2\"\n data-test=\"colorCodeSupplierField\"\n dense\n outlined\n :disabled=\"computedMode == 'display-data'\"\n hide-details\n :label=\"swT('colorcodesupplier')\"\n @click=\"$event.target.select()\"\n ></v-text-field>\n </v-col>\n\n <!-- colorSupplier -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"uiSku.colorSupplier\"\n :disabled=\"computedMode == 'display-data'\"\n class=\"mt-2\"\n data-test=\"colorSupplierField\"\n dense\n outlined\n hide-details\n :label=\"swT('colorsupplier')\"\n ></v-text-field>\n </v-col>\n\n <!-- articleGroup -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-combobox\n v-model=\"uiSku.articleGroup\"\n class=\"mt-2\"\n :disabled=\"computedMode == 'display-data'\"\n data-test=\"articleGroupField\"\n dense\n outlined\n hide-details\n :items=\"$store.state.productGroups\"\n :label=\"swT('productgroup')\"\n :rules=\"[required]\"\n ></v-combobox>\n </v-col>\n\n <!-- brand -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-combobox\n ref=\"brandField\"\n v-model=\"uiSku.brand\"\n :disabled=\"computedMode == 'display-data'\"\n class=\"mt-2\"\n data-test=\"brandField\"\n dense\n outlined\n hide-details\n :items=\"$store.state.brands.map((b) => b.name).sort()\"\n :label=\"swT('brand')\"\n :rules=\"[required]\"\n ></v-combobox>\n </v-col>\n\n <!-- collection -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-combobox\n v-model=\"uiSku.collection\"\n class=\"mt-2\"\n :disabled=\"computedMode == 'display-data'\"\n data-test=\"collectionField\"\n dense\n outlined\n hide-details\n :items=\"$store.state.collections\"\n :label=\"swT('collection')\"\n :rules=\"[required]\"\n ></v-combobox>\n </v-col>\n\n <!-- buyPrice -->\n <v-col v-if=\"!masterdata\" cols=\"12\" :sm=\"defaultDiscount != '0.0%' ? '3' : '6'\">\n <v-currency-field\n v-model=\"uiSku.buyPrice\"\n class=\"mt-2 right-input\"\n data-test=\"buyPriceField\"\n outlined\n :disabled=\"computedMode == 'display-data' || enableDiscount\"\n hide-details\n dense\n prefix=\"€\"\n :label=\"swT('buyprice')\"\n @click=\"$event.target.select()\"\n @input=\"priceChange\"\n ></v-currency-field>\n </v-col>\n\n <!-- price -->\n <v-col v-if=\"!masterdata\" cols=\"12\" :sm=\"defaultDiscount != '0.0%' ? '3' : '6'\">\n <v-currency-field\n v-model=\"uiSku.price\"\n class=\"mt-2 right-input\"\n data-test=\"priceField\"\n outlined\n hide-details\n :disabled=\"computedMode == 'display-data'\"\n dense\n prefix=\"€\"\n :label=\"swT('sellprice')\"\n @click=\"$event.target.select()\"\n @input=\"priceChange\"\n ></v-currency-field>\n </v-col>\n\n <!-- set of skus -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-combobox\n v-model=\"uiSku.set\"\n class=\"mt-2\"\n :disabled=\"computedMode == 'display-data'\"\n data-test=\"setField\"\n dense\n outlined\n hide-details\n :items=\"getItems('set')\"\n :label=\"swT('set')\"\n ></v-combobox>\n </v-col>\n\n <!-- default discount -->\n <v-col v-if=\"!masterdata && defaultDiscount != '0.0%'\" cols=\"12\" sm=\"6\">\n <v-btn\n size=\"x-large\"\n block\n :elevation=\"enableDiscount ? 0 : 4\"\n class=\"mr-2 discount_button\"\n data-test=\"enableDiscountButton\"\n :append-icon=\"enableDiscount ? 'mdi-check-outline' : 'mdi-close-outline'\"\n @click.native=\"calculateBuyPriceDiscount\"\n >\n {{ defaultDiscount }} {{ swT('discount') }}\n <v-icon v-if=\"enableDiscount\" right class=\"green--text\">mdi-check-outline</v-icon>\n </v-btn>\n </v-col>\n\n <!-- margin -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field v-model=\"margin\" class=\"mt-2 right-input\" data-test=\"marginField\" outlined hide-details dense readonly filled :label=\"swT('margin')\"></v-text-field>\n </v-col>\n\n <!-- calculation -->\n <v-col v-if=\"!masterdata && uiSku.buyPrice && uiSku.price\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"calculation\"\n class=\"mt-2 right-input\"\n data-test=\"calculationField\"\n outlined\n hide-details\n dense\n readonly\n filled\n :label=\"swT('calculation')\"\n ></v-text-field>\n </v-col>\n <v-col v-else cols=\"12\" sm=\"6\">\n <v-text-field\n value=\"0.0\"\n class=\"mt-2 right-input\"\n data-test=\"calculationField\"\n outlined\n hide-details\n dense\n readonly\n filled\n :label=\"swT('calculation')\"\n ></v-text-field>\n </v-col>\n\n <!-- default calculation -->\n <v-col v-if=\"!masterdata && defaultCalculation > 0.0\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"defaultCalculation\"\n class=\"mt-2 right-input\"\n data-test=\"defaultCalculationField\"\n outlined\n hide-details\n dense\n readonly\n filled\n :label=\"swT('default_calculation')\"\n ></v-text-field>\n </v-col>\n\n <!-- activeAttributes -->\n <v-col v-if=\"!masterdata\" cols=\"12\" sm=\"6\">\n <div v-for=\"attribute in $store.state.activeConfig.products.activeAttributes.value\" :key=\"attribute\">\n <v-combobox\n v-model=\"uiSku['_' + attribute]\"\n class=\"mt-2\"\n dense\n outlined\n hide-details\n :disabled=\"disabledMasterdataFields('_' + attribute) || computedMode == 'display-data'\"\n :label=\"swT(attribute)\"\n :items=\"getItems('_' + attribute)\"\n ></v-combobox>\n </div>\n </v-col>\n\n <!-- MASTERDATA -->\n\n <!-- articleGroup -->\n <v-col v-if=\"masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"uiSku.articleGroup\"\n data-test=\"masterdataProductGroupField\"\n class=\"mt-2\"\n dense\n outlined\n hide-details\n :disabled=\"disabledMasterdataFields('articleGroup') || computedMode == 'display-data'\"\n :items=\"$store.state.productGroups\"\n :rules=\"[required]\"\n :label=\"swT('productgroup')\"\n ></v-text-field>\n </v-col>\n\n <!-- masterdataSize -->\n <v-col v-if=\"masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"uiSku.size\"\n data-test=\"masterdataSizeField\"\n class=\"mt-2\"\n dense\n outlined\n hide-details\n small-chips\n :disabled=\"disabledMasterdataFields('size') || computedMode == 'display-data'\"\n :rules=\"[required]\"\n :label=\"swT('size')\"\n ></v-text-field>\n </v-col>\n\n <!-- colorFamily -->\n <v-col v-if=\"masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"uiSku.colorFamily\"\n data-test=\"masterdataColorField\"\n class=\"mt-2\"\n dense\n outlined\n hide-details\n :disabled=\"disabledMasterdataFields('colorFamily') || computedMode == 'display-data'\"\n :rules=\"[required]\"\n :label=\"swT('color')\"\n ></v-text-field>\n </v-col>\n\n <!-- collection -->\n <v-col v-if=\"masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"uiSku.collection\"\n data-test=\"masterdataCollectionField\"\n class=\"mt-2\"\n dense\n outlined\n hide-details\n :disabled=\"disabledMasterdataFields('collection') || computedMode == 'display-data'\"\n :items=\"$store.state.collections\"\n :rules=\"[required]\"\n :label=\"swT('collection')\"\n ></v-text-field>\n </v-col>\n\n <!-- collection -->\n <v-col v-if=\"masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"uiSku.genderSupplier\"\n data-test=\"masterdataGenderSupplierField\"\n class=\"mt-2\"\n dense\n outlined\n hide-details\n :disabled=\"disabledMasterdataFields('genderSupplier') || computedMode == 'display-data'\"\n :items=\"$store.state.collections\"\n :rules=\"[required]\"\n :label=\"swT('sku.genderSupplier')\"\n ></v-text-field>\n </v-col>\n\n <!-- collection -->\n <v-col v-if=\"masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-model=\"uiSku.set\"\n data-test=\"masterdataSetField\"\n class=\"mt-2\"\n dense\n outlined\n hide-details\n :disabled=\"disabledMasterdataFields('set') || computedMode == 'display-data'\"\n :items=\"$store.state.collections\"\n :rules=\"[required]\"\n :label=\"swT('sku.set')\"\n ></v-text-field>\n </v-col>\n\n <!-- masterdata activeAttributes -->\n <v-col v-if=\"masterdata\" cols=\"12\" sm=\"6\">\n <v-text-field\n v-for=\"attribute in $store.state.activeConfig.products.activeAttributes.value\"\n :key=\"attribute\"\n v-model=\"uiSku['_' + attribute]\"\n class=\"mt-2\"\n dense\n outlined\n hide-details\n :disabled=\"disabledMasterdataFields('_' + attribute) || computedMode == 'display-data'\"\n :label=\"swT(attribute)\"\n ></v-text-field>\n </v-col>\n\n <!-- TODO is this supposed to be here? -->\n <v-col v-if=\"masterdata\" cols=\"12\" sm=\"6\">\n <h2 class=\"red--text\">\n {{ barcodeErrorMessage }}\n </h2>\n </v-col>\n </v-row>\n </v-form>\n </v-card-text>\n </v-card>\n </v-dialog>\n</template>\n\n<script>\nimport { swT } from '@/functions/i18n'\nimport globalStore from '../store/globalStore'\nimport webServices from '../functions/webServicesFacade'\nimport tools from '../functions/tools'\nimport { eventBus } from '../main'\nimport { deepCopy } from '@softwear/latestcollectioncore'\nimport { v4 as uuidv4 } from 'uuid'\nimport productFunctions from '../functions/products'\nimport fieldFunctions from '../functions/skuEditorFunctions'\n\nexport default {\n props: ['showEditSku', 'fields', 'updatedSkus', 'masterdata', 'sku', 'mode', 'readonly', 'isGeneratingBarcodes'],\n data() {\n return {\n swT,\n selectedSizeRange: '',\n barcodeErrorMessage: '',\n barcodeLoading: false,\n localMode: null,\n slideGroupModel: null,\n enableDiscount: false,\n animationSrc: require('@/assets/loading/succeed.gif'),\n noDocumentsAdded: true,\n isEditing: true,\n calculation: 0.0,\n defaultCalculation: 0.0,\n margin: 0,\n }\n },\n computed: {\n uiSku: {\n get: function() {\n return this.sku || productFunctions.newSku()\n },\n set: function(newValue) {\n return newValue\n },\n },\n computedMode() {\n return this.localMode || this.mode\n },\n fieldsToCheck() {\n return ['collection', 'articleGroup', 'size', 'colorFamily', 'genderSupplier', 'set'].concat(\n this.$store.state.activeConfig.products.activeAttributes.value.map((f) => '_' + f)\n )\n },\n keymap() {\n return {\n enter: this.validateBarcode,\n }\n },\n colors() {\n return this.$store.state.colors\n },\n defaultDiscount() {\n const brandSettings = this.getBrandSettings()\n const discountSetting = brandSettings?.discount\n\n if (discountSetting || discountSetting > 0) {\n return parseInt(discountSetting).toFixed(1) + '%'\n } else {\n const discount = 0.0\n return discount.toFixed(1) + '%'\n }\n },\n },\n watch: {\n uiSku: {\n handler() {\n if (Array.isArray(this.uiSku.size) && this.uiSku.size.length == 0) this.uiSku.size = []\n if (this.uiSku.size == '') this.uiSku.size = null\n },\n immediate: true,\n deep: true,\n },\n sku: {\n handler() {\n if (this.sku) {\n const propSku = deepCopy(this.sku)\n\n let brand\n if (propSku.brand) brand = this.$store.state.brands.find((b) => propSku.brand == b.id || propSku.brand == b.collection)?.name\n this.uiSku.brand = brand || propSku.brand\n\n if (!this.masterdata) {\n if (this.uiSku.size == '' || (Array.isArray(this.uiSku.size) && this.uiSku.size.length == 0)) {\n propSku.size = Array.isArray(propSku.size) ? propSku.size : [propSku.size]\n this.uiSku = propSku\n } else {\n const sizeCopy = this.uiSku.size\n this.uiSku = propSku\n this.uiSku.size = sizeCopy\n }\n\n if (this.sku.barcode) this.uiSku.size = this.sku.size\n } else {\n this.uiSku = propSku\n }\n }\n },\n deep: true,\n immediate: true,\n },\n showEditSku: {\n handler() {\n // Prevent showing the succeed animation when copy sku\n this.noDocumentsAdded = this.showEditSku\n this.isEditing = true\n // Reset the validation everytime we open the addSku form for a new document\n if (this.showEditSku && this.isNewDocument()) this.$refs.form.resetValidation()\n },\n },\n selectedSizeRange() {\n this.updateSkuSize()\n },\n value() {\n this.$nextTick(() => {\n if (this.computedMode === 'display-data') {\n // Removes the carets from the dropdowns, they are all disabled in this mode\n const elements = document.querySelectorAll('div.v-input__icon.v-input__icon--append')\n\n elements.forEach((element) => {\n element.setAttribute('style', 'display: none !important;')\n })\n }\n this.$refs['form'].resetValidation()\n })\n },\n },\n created() {\n this.priceChange()\n this.$watch('$store.state.activeFormValid', () => {\n const animationElement = this.$refs['succeedAnimation']\n if (this.$store.state.activeFormValid) this.isEditing = true\n if (this.$store.state.activeFormValid || this.isNewDocument() || this.noDocumentsAdded || this.isEditing) {\n // To avoid error logging when loading sku editor, we do this if statement below\n if (animationElement) {\n animationElement.src = this.animationSrc\n animationElement.style.display = 'none'\n }\n } else animationElement.style.display = 'inline-flex'\n })\n },\n activated() {\n this.validate()\n },\n methods: {\n priceChange() {\n const calculationSetting = this.getBrandSettings()?.calculation\n if (calculationSetting && calculationSetting > 0.0) {\n this.uiSku.price = (calculationSetting * this.uiSku.buyPrice).toFixed(1)\n this.defaultCalculation = parseInt(calculationSetting).toFixed(1)\n } else {\n const calculation = 0.0\n this.defaultCalculation = calculation.toFixed(1)\n }\n\n if (!this.uiSku.buyPrice || !this.uiSku.price || this.uiSku.buyPrice == 0) {\n const calculation = 0.0\n this.calculation = calculation.toFixed(1)\n }\n this.calculation = (this.uiSku.price / this.uiSku.buyPrice).toFixed(1)\n this.margin = productFunctions.calculateMargin(this.uiSku, this.$store.state.vatHi)\n this.$forceUpdate()\n },\n convertMode(mode) {\n return mode.replace('-', '_')\n },\n getItems(field) {\n return fieldFunctions.getItems(field)\n },\n getBrandSettings() {\n return productFunctions.getBrandSettings(this.uiSku.brand, this.$store.state.brands)\n },\n calculateBuyPriceDiscount() {\n if (this.uiSku.buyPrice > 0) {\n this.enableDiscount = !this.enableDiscount\n\n if (this.enableDiscount) {\n const brandSettings = this.getBrandSettings()\n const discountSetting = brandSettings?.discount\n let discount = 0\n this.OLDBUYPRICE = this.uiSku.buyPrice\n discount = ((discountSetting / 100) * this.uiSku.buyPrice).toFixed(1)\n this.uiSku.buyPrice = (this.uiSku.buyPrice - discount).toFixed(1)\n } else {\n this.uiSku.buyPrice = this.OLDBUYPRICE\n }\n }\n\n this.priceChange()\n },\n doneAddingSkus() {\n this.selectedSizeRange = ''\n this.uiSku = productFunctions.newSku()\n this.localMode = null\n this.$refs.form.resetValidation()\n this.$emit('edit-sku-action', { done: true })\n },\n cancelForm() {\n this.$refs.form.resetValidation()\n this.$emit('edit-sku-action', { done: true })\n },\n disabledMasterdataFields(field) {\n if (!this.masterdata) return false\n const sku = this.uiSku\n if (!this.fieldsToCheck.find((fieldToCheck) => sku[fieldToCheck])) return false\n return !sku[field]\n },\n async validateBarcode(e) {\n if (e.path && !e.path.map((n) => n.id).includes('barcodeField')) return\n\n const barcode = this.uiSku.barcode\n if (!barcode) return\n this.barcodeErrorMessage = ''\n if (this.updatedSkus[barcode]) {\n this.barcodeErrorMessage = swT('you_just_added_this_barcode')\n this.uiSku.barcode = ''\n return\n }\n if (globalStore.getLatestCollectionObject('sku')[barcode]) {\n this.barcodeErrorMessage = swT('barcode_exists')\n this.uiSku.barcode = ''\n return\n }\n if (barcode?.length != 12 && barcode?.length != 13) return\n this.barcodeLoading = true\n this.$nextTick(async function() {\n try {\n const res = await webServices.getSku(this.$store.state, barcode, true)\n this.uiSku = deepCopy(res.data)\n this.uiSku.id = this.uiSku.barcode\n this.uiSku.colorFamily = this.uiSku.colorSupplier\n this.barcodeLoading = false\n } catch {\n if (!this.masterdata)\n if (this.uiSku.articleCode) this.$refs['sizeField'].focus()\n else this.$refs['sizeRange'].focus()\n this.barcodeLoading = false\n }\n })\n },\n addMasterData() {\n this.validate()\n if (!this.$store.state.activeFormValid) return\n this.barcodeErrorMessage = ''\n const uiSku = this.uiSku\n uiSku.brand = 'masterdata'\n uiSku.articleCode = 'masterdata'\n uiSku.articleDescription = 'masterdata'\n const field = this.fieldsToCheck.find((key) => uiSku[key] && uiSku[key] !== 'masterdata')\n const value = uiSku[field]\n if (Object.values(this.updatedSkus).find((sku) => sku.brand == 'masterdata' && sku[field] == value)) {\n this.$store.dispatch('raiseAlert', {\n header: 'youJustAddedThisData',\n type: 'error',\n timeout: 3000,\n })\n return\n }\n if (globalStore.getLatestCollectionArray('sku').find((sku) => sku.brand == 'masterdata' && sku[field] == value)) {\n this.$store.dispatch('raiseAlert', {\n header: 'alreadyExists',\n type: 'error',\n timeout: 3000,\n })\n return\n }\n this.uiSku.barcode = uuidv4()\n this.$emit('edit-sku-action', {\n addSku: { ...this.uiSku, size: [uiSku.size], id: '' + this.uiSku.barcode, mainSize: this.uiSku.size, active: true },\n isGeneratingBarcodes: this.isGeneratingBarcodes,\n })\n this.uiSku.barcode = ''\n },\n addSku() {\n this.validate()\n // could be null for UI reasons, normalize to empty string\n this.uiSku.size = this.uiSku.size || ''\n if (!this.$store.state.activeFormValid) return\n this.barcodeErrorMessage = ''\n const sizesToCheck = this.isGeneratingBarcodes ? this.uiSku.size : [this.uiSku.size]\n for (const size of sizesToCheck) {\n if (\n Object.values(this.updatedSkus).find(\n (sku) => this.uiSku.articleCodeSupplier == sku.articleCodeSupplier && size == sku.size && this.uiSku.colorFamily == sku.colorDescription\n )\n ) {\n this.$store.dispatch('raiseAlert', {\n header: 'productColorSizeExists',\n type: 'error',\n timeout: 3000,\n })\n return\n }\n }\n\n const rawSku = deepCopy(this.uiSku)\n this.$emit('edit-sku-action', {\n addSku: {\n ...rawSku,\n active: true,\n articleCode: rawSku.articleCodeSupplier,\n articleGroupSupplier: rawSku.articleGroup,\n collectionSupplier: rawSku.collection,\n colorCode: rawSku.colorCodeSupplier,\n colorDescription: rawSku.colorFamily,\n id: '' + rawSku.barcode,\n size: this.isGeneratingBarcodes && Array.isArray(rawSku.size) ? rawSku.size : [rawSku.size],\n },\n isGeneratingBarcodes: this.isGeneratingBarcodes,\n })\n if (this.isGeneratingBarcodes) this.uiSku.colorFamily = ''\n else this.uiSku.barcode = ''\n\n eventBus.$emit('newSkuCount')\n this.$refs['barcodeField'].focus()\n this.$refs['barcodeField'].$el.querySelector('input').select()\n this.noDocumentsAdded = false\n this.isEditing = false\n },\n updateSku() {\n this.validate()\n // if (!this.$store.state.activeFormValid) return\n const updatedSku = deepCopy(this.uiSku)\n if (Array.isArray(updatedSku.size)) updatedSku.size = updatedSku.size[0]\n this.$emit('edit-sku-action', { updateSku: updatedSku })\n },\n required(value) {\n if (this.masterdata) return true\n if (value instanceof Array && value?.length == 0) return 'Required.'\n return !!value || 'Required.'\n },\n validate() {\n this.$store.state.activeFormValid = this.$refs.form?.validate()\n },\n skuImages(sku) {\n if (!sku.images) return\n return this.sku.images.split(',')\n },\n imageSrc(imageUrl, imageWidth) {\n return tools.imageUrlParse(imageUrl, imageWidth)\n },\n updateFieldLevelFind(event) {\n // Extract the field name from data-set attribute\n const key = event.target.attributes['data-test'].value.replace('Field', '')\n // The filter field of articleCode called articlecode in swSkuEditor.vue\n // but here in uiSku object it has been assigned to the key name articleCodeSupplier as v-model\n // Therefor we send to swSkuEditor.vue the name articlecode\n\n eventBus.$emit('updateFieldLevelFind', { key: key.toLowerCase(), value: this.uiSku[key] })\n },\n updateSkuSize() {\n if (!this.selectedSizeRange) return\n if (this.isGeneratingBarcodes) this.uiSku.size = this.selectedSizeRange.split(',')\n else this.uiSku.size = this.selectedSizeRange.split(',')[0]\n },\n isNewDocument() {\n return !Object.keys(this.uiSku).some((key) => {\n return key === 'brand' ? false : this.uiSku[key]\n })\n },\n handleSizeRangeChange(value) {\n if (!value) this.selectedSizeRange = ''\n },\n },\n}\n</script>\n\n<style scoped>\n.right-input >>> input {\n text-align: right;\n}\n.sticky-element {\n top: 0;\n position: sticky !important;\n z-index: 4;\n border-bottom: 1px solid #0003;\n border-radius: 0;\n}\n.discount_button {\n top: 20%;\n}\n.succeed-animation {\n display: none;\n position: relative;\n width: 130px;\n margin-top: -100px;\n margin-right: -36px;\n top: 45px;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swEditSku.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swEditSku.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./swEditSku.vue?vue&type=template&id=3bf038df&scoped=true\"\nimport script from \"./swEditSku.vue?vue&type=script&lang=js\"\nexport * from \"./swEditSku.vue?vue&type=script&lang=js\"\nimport style0 from \"./swEditSku.vue?vue&type=style&index=0&id=3bf038df&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3bf038df\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',[_vm._v(\" \"+_vm._s(typeof _vm.amount == 'number' ? '€ ' + _vm.amount.toFixed(2) : '')+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <span>\n {{ typeof amount == 'number' ? '€ ' + amount.toFixed(2) : '' }}\n </span>\n</template>\n\n<script>\nexport default {\n props: ['amount'],\n}\n</script>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swSpanCurrency.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swSpanCurrency.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./swSpanCurrency.vue?vue&type=template&id=46675a1b\"\nimport script from \"./swSpanCurrency.vue?vue&type=script&lang=js\"\nexport * from \"./swSpanCurrency.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <div ref=\"swskueditor\">\n <div class=\"pa-0 ma-0\">\n <v-row class=\"d-none\">\n <v-col class=\"pt-6\">\n <input ref=\"input_xlsx\" type=\"file\" accept=\".xls,.xlsx\" @change=\"uploadXLS\" />\n </v-col>\n </v-row>\n\n <!-- Smart fields-->\n <v-card :class=\"$route.fullPath.includes('skueditor') ? 'sticky' : ''\" flat>\n <!-- Row Info -->\n <v-card-text v-if=\"$route.fullPath.includes('skueditor')\" class=\"py-1 px-0\">\n <p class=\"info white--text text-center my-0\" data-test=\"rowsPerPageInfo\">{{ totalDisplayedRows }} / {{ skus.length }} {{ swT('rowsselected') }}</p>\n </v-card-text>\n\n <!-- Field selection -->\n <v-card-text class=\"py-1 px-1\">\n <v-row>\n <v-col cols=\"10\">\n <v-combobox\n v-model=\"uiSelectedFields\"\n :items=\"uiFieldChoices\"\n multiple\n chips\n outlined\n dense\n hide-selected\n auto-select-first\n autofocus\n :label=\"swT('selectfields')\"\n hide-details\n data-test=\"select-fields\"\n :disabled=\"fieldsDisabled\"\n :item-disabled=\"isUISelectedFieldDisabled\"\n >\n <template v-slot:selection=\"data\">\n <v-chip\n :key=\"data.item.value\"\n v-bind=\"data.attrs\"\n :close=\"canBeRemoved(data.item.value)\"\n small\n class=\"white--text mt-1\"\n :color=\"setChipColor(data.item)\"\n :input-value=\"data.selected\"\n :disabled=\"data.disabled\"\n :data-test=\"`selected-chip-${data.item.value}`\"\n @click:close=\"removeSelectedField(data.item)\"\n @click.stop=\"selectColumnByName(data.item.value)\"\n >\n {{ data.item.text }}\n </v-chip>\n </template>\n </v-combobox>\n </v-col>\n <v-col cols=\"2\">\n <v-text-field\n outlined\n hide-details\n dense\n :value=\"totalRowsOnPage\"\n :label=\"swT('rowsperpage')\"\n type=\"number\"\n min=\"1\"\n class=\"ml-4\"\n max=\"1000\"\n :data-test=\"'rowsPerPage'\"\n @input=\"totalRowsOnPage = Math.max(1, parseInt($event, 10) || 1)\"\n ></v-text-field>\n </v-col>\n </v-row>\n </v-card-text>\n\n <!-- Dynamic fields -->\n <v-card-text class=\"px-3 pb-3\">\n <v-row v-if=\"editField && !masterdata\" class=\"d-flex py-1\">\n <v-col v-if=\"!readonly\" class=\"py-0 px-1 flex-grow-1\">\n <v-select\n v-show=\"fields[selectedField].type === 'enum'\"\n v-model=\"fieldLevelReplace[selectedField]\"\n :items=\"translateEnumItems\"\n class=\"py-0 my-0 green-border green lighten-5\"\n :data-test=\"`autocomplete-${selectedField}`\"\n hide-details\n dense\n :menu-props=\"{ offsetY: true, class: 'px-5' }\"\n outlined\n persistent-placeholder\n :disabled=\"fields[selectedField].readOnly\"\n :label=\"swT(fields[selectedField].value)\"\n ></v-select>\n <v-combobox\n v-show=\"fields[selectedField].type === 'combobox'\"\n v-model=\"fieldLevelReplace[selectedField]\"\n :items=\"fields[selectedField].items\"\n class=\"py-0 my-0 green-border green lighten-5\"\n :data-test=\"`combobox-${selectedField}`\"\n hide-details\n dense\n :menu-props=\"{ offsetY: true, class: 'px-5' }\"\n outlined\n persistent-placeholder\n :disabled=\"fields[selectedField].readOnly\"\n :label=\"swT(fields[selectedField].value)\"\n @blur=\"cb($event, selectedField)\"\n ></v-combobox>\n <v-switch\n v-show=\"fields[selectedField].type === 'boolean'\"\n v-model=\"fieldLevelReplace[selectedField]\"\n class=\"py-2 my-0 pl-2 green-border green lighten-5\"\n :data-test=\"`switch-${selectedField}`\"\n hide-details\n outlined\n persistent-placeholder\n :disabled=\"fields[selectedField].readOnly\"\n ></v-switch>\n <v-select\n v-show=\"fields[selectedField].type === 'multiselect'\"\n v-model=\"fieldLevelReplace[selectedField]\"\n :items=\"fields[selectedField].items\"\n class=\"py-0 my-0 green-border green lighten-5\"\n :data-test=\"`multiselect-${selectedField}`\"\n hide-details\n dense\n :menu-props=\"{ offsetY: true, class: 'px-5' }\"\n outlined\n persistent-placeholder\n :disabled=\"fields[selectedField].readOnly\"\n :label=\"swT(fields[selectedField].value)\"\n multiple\n ></v-select>\n <v-text-field\n v-show=\"fields[selectedField].type === 'text'\"\n v-model=\"fieldLevelReplace[selectedField]\"\n :class=\"!fields[selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5'\"\n hide-details\n :data-test=\"`replace-${selectedField}`\"\n outlined\n dense\n persistent-placeholder\n :disabled=\"fields[selectedField].readOnly\"\n :label=\"swT(fields[selectedField].value)\"\n ></v-text-field>\n <v-text-field\n v-show=\"fields[selectedField].type === 'number'\"\n v-model=\"fieldLevelReplace[selectedField]\"\n :class=\"!fields[selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5'\"\n hide-details\n :data-test=\"`replace-${selectedField}`\"\n outlined\n dense\n persistent-placeholder\n type=\"number\"\n :disabled=\"fields[selectedField].readOnly\"\n :label=\"swT(fields[selectedField].value)\"\n ></v-text-field>\n <v-text-field\n v-show=\"fields[selectedField].type === 'currency'\"\n v-model=\"fieldLevelReplace[selectedField]\"\n :class=\"!fields[selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5'\"\n hide-details\n :data-test=\"`replace-${selectedField}`\"\n outlined\n dense\n persistent-placeholder\n :disabled=\"fields[selectedField].readOnly\"\n :label=\"swT(fields[selectedField].value)\"\n ></v-text-field>\n </v-col>\n <v-col v-if=\"!readonly && !fields[selectedField].readOnly && fields[selectedField].type === 'currency'\" class=\"pa-0 pl-2 flex-grow-0\" align=\"right\">\n <v-text-field\n v-show=\"fields[selectedField].type === 'currency'\"\n v-model=\"fieldLevelMinPercentReplace[selectedField]\"\n :class=\"!fields[selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5'\"\n hide-details\n :data-test=\"`percentminreplace-${selectedField}`\"\n outlined\n dense\n persistent-placeholder\n :disabled=\"fields[selectedField].readOnly\"\n :label=\"swT('markdown')\"\n append-icon=\"mdi-percent\"\n style=\"width: 120px\"\n @click=\"showSalePricePopup($event, selectedField)\"\n @input=\"menuActivated = false\"\n ></v-text-field>\n </v-col>\n <v-col v-if=\"!readonly && !fields[selectedField].readOnly && fields[selectedField].type === 'currency'\" class=\"pa-0 pl-2 flex-grow-0\" align=\"right\">\n <v-text-field\n v-show=\"fields[selectedField].type === 'currency'\"\n v-model=\"fieldLevelPlusPercentReplace[selectedField]\"\n :class=\"!fields[selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5'\"\n hide-details\n :data-test=\"`percentplusreplace-${selectedField}`\"\n outlined\n dense\n persistent-placeholder\n :disabled=\"fields[selectedField].readOnly\"\n :label=\"swT('markup')\"\n append-icon=\"mdi-percent\"\n style=\"width: 120px\"\n @click=\"showSalePricePopup($event, selectedField)\"\n @input=\"menuActivated = false\"\n ></v-text-field>\n </v-col>\n <v-col v-if=\"!readonly && !fields[selectedField].readOnly && fields[selectedField].type === 'currency'\" class=\"pa-0 pl-2 flex-grow-0\" align=\"right\">\n <v-text-field\n v-show=\"fields[selectedField].type === 'currency'\"\n v-model=\"fieldLevelMinValueReplace[selectedField]\"\n :class=\"!fields[selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5'\"\n hide-details\n :data-test=\"`valueminreplace-${selectedField}`\"\n outlined\n dense\n persistent-placeholder\n :disabled=\"fields[selectedField].readOnly\"\n :label=\"swT('markdown')\"\n append-icon=\"mdi-minus\"\n style=\"width: 120px\"\n ></v-text-field>\n </v-col>\n <v-col v-if=\"!readonly && !fields[selectedField].readOnly && fields[selectedField].type === 'currency'\" class=\"pa-0 pl-2 flex-grow-0\" align=\"right\">\n <v-text-field\n v-show=\"fields[selectedField].type === 'currency'\"\n v-model=\"fieldLevelPlusValueReplace[selectedField]\"\n :class=\"!fields[selectedField].readOnly ? 'green-border green lighten-5' : 'orange-border orange lighten-5'\"\n hide-details\n :data-test=\"`valueplusreplace-${selectedField}`\"\n outlined\n dense\n persistent-placeholder\n :disabled=\"fields[selectedField].readOnly\"\n :label=\"swT('markup')\"\n append-icon=\"mdi-plus\"\n style=\"width: 120px\"\n ></v-text-field>\n </v-col>\n <v-col v-if=\"!readonly && !fields[selectedField].readOnly\" class=\"pa-0 pl-2 flex-grow-0\" align=\"right\">\n <v-btn v-if=\"$vuetify.breakpoint.smAndUp\" color=\"success\" height=\"40px\" data-test=\"replaceButton\" @click=\"replaceField(selectedField)\">\n <v-icon>mdi-find-replace</v-icon>\n {{ swT('replace') }}\n </v-btn>\n <v-icon v-else class=\"pt-2\" @click=\"replaceField(selectedField)\">mdi-find-replace</v-icon>\n </v-col>\n <v-col v-if=\"!readonly && !fields[selectedField].readOnly\" class=\"pa-0 pl-2 flex-grow-0\" align=\"right\">\n <v-btn v-if=\"$vuetify.breakpoint.smAndUp\" color=\"info\" height=\"40px\" data-test=\"clearButton\" @click=\"clearField(selectedField)\">\n <v-icon>mdi-backspace-outline</v-icon>\n {{ swT('clear') }}\n </v-btn>\n <v-icon v-else class=\"pt-2\" @click=\"clearField(selectedField)\">mdi-backspace-outline</v-icon>\n </v-col>\n <v-col v-if=\"!readonly && fields[selectedField].readOnly\" class=\"pa-0 pl-2 flex-grow-0\" align=\"right\">\n <v-btn v-if=\"$vuetify.breakpoint.smAndUp\" color=\"warning\" height=\"40px\" disabled>\n {{ swT('readonly') }}\n </v-btn>\n </v-col>\n </v-row>\n\n <!-- Filters -->\n <v-row class=\"white--text\">\n <v-col v-for=\"(field, index) of selectedFields\" :key=\"field\" class=\"py-1 px-1\">\n <v-text-field\n v-model=\"fieldLevelFindDebounced[field]\"\n hide-details\n :class=\"setFilterClass(index)\"\n outlined\n dense\n clearable\n label=\"filter\"\n :data-test=\"`find-${field}`\"\n persistent-placeholder\n @focus=\"selectedField = selectedFields[index]\"\n ></v-text-field>\n </v-col>\n <v-col v-if=\"multiRowSelect\" class=\"ma-0 pa-0 d-flex justify-center align-center flex-column\" style=\"width: 24px; max-width: 24px\">\n <v-icon data-test=\"filter-selected\" dense hide-details class=\"mt-0 mb-0 pa-0\" :color=\"filterSelected ? 'blue' : ''\" @click=\"filterManualSelection\">\n {{ filterSelected ? 'mdi-filter-minus' : 'mdi-filter-plus-outline' }}\n </v-icon>\n </v-col>\n </v-row>\n\n <!-- Table Header -->\n <v-row class=\"font-weight-bold white--text pt-1 d-flex mt-2\">\n <draggable v-model=\"selectedFields\" class=\"d-flex justify-space-between\" style=\"width: 100%\">\n <v-col v-for=\"(field, index) of selectedFields\" :key=\"field\" :class=\"setHeaderClass(index)\" @click=\"cellHeaderClick({ selectedFields, index, fields })\">\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <div v-bind=\"attrs\" v-on=\"on\">\n <v-icon v-if=\"fields[field].sort === 'asc'\" x-small right class=\"pa-0 ma-0\">mdi-sort-alphabetical-ascending-variant</v-icon>\n <v-icon v-if=\"fields[field].sort === 'desc'\" x-small right class=\"pa-0 ma-0\">mdi-sort-alphabetical-descending-variant</v-icon>\n <v-icon v-if=\"fields[field].sort === undefined && selectedField === selectedFields[index]\" x-small right class=\"pa-0 ma-0\">\n mdi-sort-alphabetical-variant\n </v-icon>\n {{ columnHeadName(fields[field]) }}\n </div>\n </template>\n <span>{{ swT(fields[field].text) }}</span>\n </v-tooltip>\n </v-col>\n <v-col v-if=\"multiRowSelect\" class=\"ma-0 pa-0\" :class=\"setHeaderClass(999)\" style=\"max-width: 24px; height: 30px\">\n <v-checkbox\n v-if=\"!isManualSelectionActive\"\n v-model=\"selectAll\"\n data-test=\"select-all-rows\"\n dense\n hide-details\n class=\"pa-0\"\n style=\"width: 24px; max-width: 24px; margin-top:-2px; margin-left:-5px\"\n @click=\"toggleAll\"\n ></v-checkbox>\n </v-col>\n </draggable>\n </v-row>\n </v-card-text>\n </v-card>\n\n <v-row v-if=\"loadingStatus && !$store.state.editing\" class=\" d-flex justify-center align-center\">\n <v-card flat class=\"px-0\">\n <v-img :src=\"animationUrl\" cover height=\"400\" width=\"400\"></v-img>\n </v-card>\n </v-row>\n\n <!-- Data table -->\n <v-card v-else style=\"border-top: 1px solid #aaa; border-radius: inherit\" elevation=\"0\">\n <v-card-text class=\"py-0 px-0\">\n <div style=\"border-left: 1px solid #aaa\">\n <div v-for=\"(sku, index) in filteredSkus.slice((page - 1) * totalRowsOnPage, page * totalRowsOnPage)\" :key=\"index\">\n <v-row v-if=\"skuSyncDiff(sku, index)\" :class=\"rowClass(index, sku)\" class=\"ma-0 pa-0\">\n <v-btn tile :color=\"skuSource(sku)\" class=\"pa-0\" style=\"position: absolute; min-height: 12px; height: 22px; min-width: 16px; filter: opacity(0.35)\">\n <v-icon small style=\"position: absolute; padding: 3px 0px; max-width: 16px\" :data-test=\"`activate-menu-${sku.id}`\" @click=\"activateMenu($event, sku)\">\n mdi-dots-vertical\n </v-icon>\n </v-btn>\n <v-col v-for=\"field of selectedFields\" :key=\"field\" class=\"py-0 ellipsis\" :class=\"cellClass(sku, field, index)\" @click.right=\"activateMenu($event, sku)\">\n <span v-if=\"displayDifferences(sku, field)\">\n <span class=\"text-decoration-line-through red--text\">\n <swSpanCurrency v-if=\"fields[field].type == 'currency'\" :amount=\"originalSkuFormatter(sku, field)\" />\n <span v-else-if=\"fields[field].type == 'boolean'\">{{ originalSkuFormatter(sku, field) ? '✅' : 'âŒ' }}</span>\n <span v-else class=\"text-truncate\">{{ originalSkuFormatter(sku, field) }}</span>\n </span>\n \n <span class=\"green--text font-weight-bold\">\n <swSpanCurrency v-if=\"fields[field].type == 'currency'\" :amount=\"sku[fields[field].field]\" />\n <span v-else-if=\"fields[field].type == 'boolean'\">{{ sku[fields[field].field] ? '✅' : 'âŒ' }}</span>\n <span v-else class=\"text-truncate\">{{ cellFormatter(sku, field) }}</span>\n </span>\n </span>\n <span v-else>\n <swCurrency v-if=\"fields[field].type == 'currency'\" :amount=\"sku[fields[field].field]\" />\n <div v-else-if=\"fields[field].type == 'boolean'\">{{ sku[fields[field].field] ? '✅' : 'âŒ' }}</div>\n <div v-else-if=\"fields[field].type == 'image'\" class=\"d-flex justify-space-between\">\n <v-tooltip top>\n <template v-slot:activator=\"{ on, attrs }\">\n <v-icon v-if=\"cellFormatter(sku, field) > -1\" dark color=\"success\" dense small v-bind=\"attrs\" v-on=\"on\">mdi-eye</v-icon>\n </template>\n\n <v-slide-group v-model=\"slideGroupModel\" center-active show-arrows>\n <v-slide-item v-for=\"image in skuImages(sku)\" :key=\"image\" v-slot=\"{ active, toggle }\">\n <v-card text class=\"mx-1 d-flex align-center\" height=\"200\" width=\"100\" color=\"transparent\" @click=\"toggle\">\n <v-scale-transition>\n <v-img :src=\"imageSrc(image, 150)\" contain></v-img>\n </v-scale-transition>\n </v-card>\n </v-slide-item>\n </v-slide-group>\n </v-tooltip>\n\n {{ cellFormatter(sku, field) }}\n </div>\n <div v-else>\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on, attrs }\">\n <div class=\"text-truncate\" :class=\"field === selectedFields[0] ? 'pl-2' : ''\" color=\"primary\" dark v-bind=\"attrs\" v-on=\"on\">\n {{ cellFormatter(sku, field) }}\n </div>\n </template>\n <div>{{ cellFormatter(sku, field) }}</div>\n </v-tooltip>\n </div>\n </span>\n </v-col>\n <v-col v-if=\"multiRowSelect\" class=\"ma-0 pa-0\" style=\"width: 24px; max-width: 24px\">\n <v-checkbox\n v-model=\"sku.SELECTED\"\n :data-test=\"`checkbox-${index}`\"\n dense\n hide-details\n class=\"ma-0 pa-0\"\n :class=\"cellClass(sku, 'barcode', 0)\"\n @change=\"countRows()\"\n ></v-checkbox>\n </v-col>\n </v-row>\n </div>\n </div>\n </v-card-text>\n </v-card>\n </div>\n <v-menu v-model=\"menuActivated\" :position-x=\"contextMenuX\" :position-y=\"contextMenuY\" absolute offset-y transition=\"scroll-y-transition\" rounded=\"lg\">\n <v-list>\n <v-list-item v-for=\"(item, index) in tablePopupMenuItems\" :key=\"index\" :data-test=\"`popup-menu-${item.dataTest}`\" @click=\"item.callback && item.callback(item.payload)\">\n <v-list-item-icon>\n <v-icon small v-text=\"item.icon\"></v-icon>\n </v-list-item-icon>\n <v-list-item-title>\n <span :class=\"item.class\">{{ item.title }}</span>\n </v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n\n <swEditSku\n v-if=\"showEditSku\"\n :show-edit-sku=\"showEditSku\"\n :fields=\"selectedFields\"\n :updated-skus=\"updatedSkus\"\n :masterdata=\"masterdata\"\n :sku=\"skuToEditProp\"\n :mode=\"dialogMode\"\n :readonly=\"readonly\"\n :is-generating-barcodes=\"isGeneratingBarcodes\"\n @edit-sku-action=\"applyEditSkuoperation\"\n />\n </div>\n</template>\n\n<script>\nimport colors from 'vuetify/lib/util/colors'\nimport draggable from 'vuedraggable'\nimport fieldFunctions from '../functions/skuEditorFunctions'\nimport globalStore from '../store/globalStore'\nimport print from '../functions/print'\nimport productFunctions from '../functions/products'\nimport tools from '../functions/tools'\nimport userFunctions from '../functions/users'\nimport webServices from '../functions/webServicesFacade'\nimport worker from '../workers/worker-api'\nimport startupDB from '../store/client'\n\nimport { choices, updateItems } from '@/functions/skuEditorFieldChoices'\nimport { deepCopy, hashBrand } from '@softwear/latestcollectioncore'\nimport { eventBus } from '../main'\nimport { swT } from '@/functions/i18n'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport swCurrency from '../components/swCurrency.vue'\nimport swEditSku from '../components/swEditSku.vue'\nimport swSpanCurrency from '../components/swSpanCurrency.vue'\nimport { format } from 'date-fns'\nimport { showDialog } from '@/functions/dialogService'\nimport { getSession } from '../functions/getSession'\nimport whitelabelFunctions from '@/functions/whitelabel'\n\nconst deHttpUrl = function(url) {\n return url.replace('http://', '').replace('https://', '')\n}\nfunction stringToFloat(s) {\n return parseFloat(s.replace(',', '.'))\n}\nexport default {\n name: 'SwSkuEditor',\n components: {\n draggable,\n swCurrency,\n swEditSku,\n swSpanCurrency,\n },\n props: ['skus', 'readonly', 'advancedCommands', 'masterdata', 'ensureFields'],\n data() {\n return {\n swT,\n XLSImportOperation: '',\n activeSort: null,\n addfieldLevelFindDebounced: {},\n cloudSyncing: false,\n contextMenuX: 0,\n contextMenuY: 0,\n dialogMode: '',\n editField: true,\n showEditSku: false,\n fieldChoices: choices,\n fieldLevelFind: {},\n fieldLevelFindDebounced: {},\n fieldLevelMinPercentReplace: {},\n fieldLevelMinValueReplace: {},\n fieldLevelPlusPercentReplace: {},\n fieldLevelPlusValueReplace: {},\n fieldLevelReplace: {},\n fields: {},\n fieldsDisabled: false,\n filterSelected: false,\n isGeneratingBarcodes: null,\n loadingStatus: false,\n menuActivated: false,\n multiRowSelect: true,\n newSkuCount: 0,\n page: 1,\n salePriceRoundMethod: 'no-rounding',\n selectAll: false,\n selectedField: 'barcode',\n selectedFields: [],\n clickedSkuToDelete: null,\n unusedSkusToDelete: [],\n skuToCopy: {},\n skuToEdit: {},\n skusDiffs: {}, // {'32168546512': ['detected sku diff column']}\n slideGroupModel: null,\n state: 0,\n tablePopupMenuItems: [],\n totalDisplayedRows: 0,\n totalRowsOnPage: 50,\n updatedSkus: {},\n updatedSkusList: [],\n }\n },\n computed: {\n animationUrl() {\n return whitelabelFunctions.siteAnimation(window.location.href)\n },\n skuToEditProp() {\n const propSku = deepCopy(this.skuToEdit)\n Object.keys(this.skuToEdit).forEach((key) => {\n if (typeof this.skuToEdit[key] === 'number') propSku[key] = parseFloat(this.skuToEdit[key])\n })\n return propSku\n },\n isManualSelectionActive() {\n return this.filteredSkus.some((sku) => sku.SELECTED).length > 0\n },\n isAdmin() {\n return userFunctions.hasRole(this.$store.getters.roles, 'sw,products-dataprovider_admin')\n },\n isSWAdmin() {\n return userFunctions.hasRole(this.$store.getters.roles, 'sw')\n },\n sourceCollection() {\n return !(this.$route.query.masterdata == 'true') && this.isAdmin ? 'selectedbrand' : 'sku'\n },\n translateEnumItems() {\n if (!['enum', 'multiselect'].includes(this.fields[this.selectedField].type)) return []\n return this.fields[this.selectedField].items.map((item) => ({\n ...item,\n text: this.swT(`${item.text}`),\n }))\n },\n uiFieldChoices() {\n if (this.masterdata) return this.fieldChoices.filter((choice) => choice.masterdata).map((field) => ({ text: swT(field.text), value: field.value }))\n return this.fieldChoices.map((field) => ({ text: swT(field.text), value: field.value }))\n },\n uiSelectedFields: {\n get: function() {\n return this.selectedFields.map((field) => ({ text: swT(this.fields[field].text), value: this.fields[field].value }))\n },\n set: function(newVal) {\n // refuse input outside available choices\n if (this.fieldChoices.find((f) => f.value === newVal[newVal.length - 1].value) === undefined) newVal.splice(-1, 1)\n\n // map between field and value\n this.selectedFields = newVal.map((selectedField) => this.fieldChoices.find((f) => f.value === selectedField.value).value)\n return newVal\n },\n },\n filteredSkus: {\n get: function() {\n this.newSkuCount // triggers computed property\n let filteredResult = this.updatedSkusList.length ? this.updatedSkusList : this.skus\n if (this.filterSelected) filteredResult = filteredResult.filter((sku) => sku.SELECTED)\n Object.keys(this.fieldLevelFind).forEach((field) => {\n const fieldName = this.fields[field].field\n const fieldType = this.fields[field].type\n const formatter = this.fields[field].formatter\n if (!this.fieldLevelFind[field]) return\n try {\n const regex = new RegExp(this.fieldLevelFind[field], 'i')\n let searchString = this.fieldLevelFind[field].replaceAll(',', '.')\n const exactMatch = !searchString.includes('-')\n const exactValue = parseFloat(searchString)\n if (searchString.substring(0, 1) == '-') searchString = '0' + searchString\n if (searchString.substring(searchString.length - 1) == '-') searchString = searchString + '9999999999'\n const bounds = searchString.split('-')\n bounds[0] = parseFloat(bounds[0])\n bounds[1] = parseFloat(bounds[1])\n filteredResult = filteredResult.filter((sku) => {\n const fieldValue = formatter ? formatter(sku[fieldName]) : sku[fieldName]\n switch (fieldType) {\n case 'boolean':\n return regex.test(fieldValue ? 'true1' : 'false0')\n case 'currency':\n if (exactMatch) return fieldValue == exactValue\n return fieldValue >= bounds[0] && fieldValue <= bounds[1]\n default:\n return regex.test(fieldValue || '')\n }\n })\n } catch {\n // Most probably an incomplete regular expression, ignore\n }\n })\n this.initReadonlyValues(filteredResult)\n return filteredResult\n },\n set: function(newSkus) {\n return newSkus\n },\n },\n },\n watch: {\n filteredSkus(newValue) {\n this.setPaginationTotalPages(newValue.length)\n },\n },\n async created() {\n if (this.$route.query.newSku && this.$route.query.method) {\n this.clearFieldLevelFinds()\n this.triggerAddSkuMethod({ method: this.$route.query.method })\n }\n if (this.$route.query.newSku && !this.$route.query.method) {\n this.showChooseNewSkuMethodPopup()\n }\n this.initFields()\n await this.$store.state.skuPromise\n this.initSelectedFields()\n updateItems()\n const debounceFn = tools.debounce((newVal) => {\n this.fieldLevelFind = deepCopy(newVal)\n }, 500)\n this.$watch('$store.state.paginationCurrentPage', () => {\n this.page = this.$store.state.paginationCurrentPage\n })\n this.$watch('fieldLevelFindDebounced', debounceFn, { deep: true })\n this.$watch('ensureFields', this.initSelectedFields, { deep: true })\n this.$watch(\n 'selectedFields',\n () => {\n if (!this.ensureFields?.length > 0) this.$store.dispatch('updatePreference', { key: 'favorites.skuEditorColumns', value: deepCopy(this.selectedFields) })\n },\n { deep: true }\n )\n this.$watch(\n 'totalDisplayedRows',\n () => {\n const totalDisplayedRows = this.updatedSkusList.length ? this.updatedSkusList.length : this.filteredSkus.length\n this.setPaginationTotalPages(totalDisplayedRows)\n },\n { deep: true }\n )\n this.$watch(\n 'totalRowsOnPage',\n () => {\n const totalDisplayedRows = this.totalDisplayedRows ? this.totalDisplayedRows : this.filteredSkus.length\n this.setPaginationTotalPages(totalDisplayedRows)\n },\n { deep: true }\n )\n },\n async activated() {\n this.eventListeners('$on')\n this.clearFieldLevelFinds()\n eventBus.$on('openChooseNewSkuMethod', () => {\n this.showChooseNewSkuMethodPopup()\n })\n eventBus.$on('openSkuImportHistory', () => {\n this.getSkuImportHistory()\n this.skuImportHistroyDialog = true\n })\n this.initSelectedFields()\n await this.$store.state.skuPromise\n eventBus.$on('importXLSX', async () => {\n const operation = await showDialog('swXLSImportDialog', {})\n if (operation) this.setXLSImportOperation(operation)\n })\n eventBus.$on('exportXLSX', () => {\n this.downloadXLS()\n })\n eventBus.$on('resetSwSkuEditor', () => {\n this.clearFieldLevelFinds()\n })\n eventBus.$on('updateFieldLevelFind', ({ key, value }) => {\n this.updateFieldLevelFind(key, value)\n })\n eventBus.$on('newSkuCount', () => {\n this.newSkuCount++\n })\n eventBus.$on('exportJSON', () => {\n tools.saveStringAsFile('latestCollection.json', JSON.stringify(this.filteredSkus, null, 2), 'text/json')\n })\n eventBus.$on('bindImages', (strategy) => {\n this.bindImages(strategy)\n })\n // eslint-disable-next-line\n eventBus.$on('cloudSync', async ({ dataProvider }) => {\n const answer = await showDialog('swYesNoDialog', { message: swT('cloud_sync_scope'), yesKey: 'newer', noKey: 'all' })\n if (!answer) return\n const hashedBrand = this.$route.query.brand\n if (answer.answer) return this.cloudSync('newer', hashedBrand, dataProvider)\n else return this.cloudSync('all', hashedBrand, dataProvider)\n })\n eventBus.$on('fpSync', async () => {\n const fpSkus = (await webServices.getFpSkus(this.$store.getters.uploadDirectory)).data\n const answer = await showDialog('swYesNoDialog', { message: swT('import_unknown_skus_from_foxpro') })\n if (!answer) return\n if (answer.answer) {\n // Import unknown barcodes\n const existingSkus = globalStore.getLatestCollectionObject('sku')\n fpSkus.forEach((fpSku) => {\n if (existingSkus[fpSku.id]) return\n this.updatedSkus[fpSku.id] = fpSku\n fpSku.SELECTED = true\n this.skus.push(fpSku)\n })\n this.filterSelected = true\n } else {\n // Sync at column level\n const answer = await showDialog('swYesNoDialog', { message: swT('sure_to_update_n_columns', this.selectedFields.length) })\n if (!answer || !answer.answer) return\n this.fieldsDisabled = true\n this.loadingStatus = true\n const fpSkusIndex = fpSkus.reduce((agg, sku) => {\n agg[sku.id] = sku\n return agg\n }, {})\n this.filteredSkus.forEach((sku) => {\n const fpSku = fpSkusIndex[sku.id]\n if (fpSku) {\n this.selectedFields.forEach((fieldName) => {\n if (fieldName == 'id' || fieldName == 'barcode') return\n const field = this.fields[fieldName].field\n if (sku[field] != fpSku[field] && fpSku[field] != undefined) {\n sku[field] = fpSku[field]\n this.updatedSkus[sku.id] = sku\n }\n })\n }\n })\n }\n this.loadingStatus = false\n this.$store.dispatch('setEditing', true)\n this.validate()\n this.$forceUpdate()\n })\n this.initFields()\n },\n deactivated() {\n this.eventListeners('$off')\n eventBus.$off('importXLSX')\n eventBus.$off('exportXLSX')\n eventBus.$off('exportJSON')\n eventBus.$off('cloudSync')\n eventBus.$off('addSku')\n eventBus.$off('openSkuImportHistory')\n eventBus.$off('resetSwSkuEditor')\n eventBus.$off('bindImages')\n eventBus.$off('fpSync')\n eventBus.$off('openChooseNewSkuMethod')\n this.$store.state.paginationTotalPages = -1\n },\n methods: {\n triggerAddSkuMethod(payload) {\n this.skuToEdit = this.skuToCopy ? deepCopy(this.skuToCopy) : productFunctions.newSku()\n\n if (payload.method) {\n if (payload.method == 'generate') this.isGeneratingBarcodes = true\n if (payload.method == 'scan') this.isGeneratingBarcodes = false\n }\n\n if (this.$route.query.brand) this.skuToEdit.brand = this.$route.query.brand\n if (this.$route.query.collection) this.skuToEdit.collection = this.$route.query.collection\n\n this.dialogMode = 'add-' + (this.masterdata ? 'masterdata' : 'sku')\n\n this.showEditSku = true\n },\n filterManualSelection() {\n this.filterSelected = !this.filterSelected\n },\n setXLSImportOperation(operation) {\n this.XLSImportOperation = operation\n this.$refs.input_xlsx.click()\n },\n async cloudSync(scope, hashedBrand, dataProvider) {\n const answer = await showDialog('swYesNoDialog', { message: swT('sure_to_update_n_columns', this.selectedFields.length) })\n if (!answer || !answer.answer) return\n this.cloudSyncing = true\n this.skusDiffs = {}\n this.fieldsDisabled = true\n this.loadingStatus = true\n await this.$store.dispatch('loadBrand', { brand: hashedBrand, dataProvider })\n const brandSkus = globalStore.getLatestCollectionObject('selectedbrand')\n this.filteredSkus.forEach((sku) => {\n const brandSku = brandSkus[sku.id]\n if (brandSku) {\n if (scope == 'newer' && (brandSku.__modified || brandSku.__created) <= (sku.__modified || sku.__created)) return\n this.selectedFields.forEach((fieldName) => {\n if (fieldName == 'id' || fieldName == 'barcode' || fieldName == 'margin' || fieldName == 'calculation') return\n const field = this.fields[fieldName].field\n if (sku[field] != brandSku[field] && brandSku[field] != undefined) {\n sku[field] = brandSku[field]\n this.updatedSkus[sku.id] = sku\n }\n })\n }\n })\n this.loadingStatus = false\n this.$forceUpdate()\n if (Object.values(this.updatedSkus).length) {\n this.updatedSkusList = Object.values(this.updatedSkus)\n this.$store.dispatch('setEditing', true)\n this.validate()\n\n const logDataprovider = !dataProvider ? 'Latest Collection' : dataProvider\n\n const event = {\n type: 'cloudSync',\n payload: {\n changes: `Updated ${this.selectedFields.length} columns on brand ${hashedBrand} with dataprovider ${logDataprovider}.`,\n },\n }\n await this.$store.dispatch('ensureTenantCollection', 'eventlog')\n await this.$store.dispatch('updateObjects', {\n api: globalStore.getLatestCollectionAPI('eventlog'),\n data: [event],\n })\n } else {\n this.cloudSyncing = false\n this.fieldsDisabled = false\n this.$store.dispatch('raiseAlert', {\n header: 'Your data is already up to date',\n type: 'success',\n timeout: 5000,\n })\n }\n },\n async bindImages(bindStrategy) {\n const STRATEGIES = {\n articleCode_colorCode: (fName, sku) =>\n fName.includes(sku.articleCodeSupplier?.toLowerCase() + '_' + sku.colorCodeSupplier?.toLowerCase()) ||\n fName.includes(sku.articleCodeSupplier?.toLowerCase() + '-' + sku.colorCodeSupplier?.toLowerCase()),\n articleCode_and_colorCode: (fName, sku) => fName.includes(sku.articleCodeSupplier?.toLowerCase()) && fName.includes(sku.colorCodeSupplier?.toLowerCase()),\n articleCode: (fName, sku) => fName.includes(sku.articleCodeSupplier?.toLowerCase()),\n articleDescription_and_color: (fName, sku) => fName.includes(sku.articleDescription?.toLowerCase()) && fName.includes(sku.colorFamily?.toLowerCase()),\n articleCode_and_colorDescription: (fName, sku) => fName.includes(sku.articleCodeSupplier?.toLowerCase()) && fName.includes(sku.colorFamily?.toLowerCase()),\n barcode: (fName, sku) => fName == sku.id,\n }\n if (!this.$route.query.brand) return\n this.loadingStatus = true\n const files = (await webServices.getImagesFromCdn(this.$route.query.brand)).data\n if (files.length == 0) {\n this.loadingStatus = false\n return\n }\n const CDN_ROOT = `www.softwear.nl/images/cdn/${this.$route.query.brand}`\n files.forEach((fileName) => {\n const lowerCaseFileName = fileName.toLowerCase()\n const match = lowerCaseFileName.match(/^(.*?)\\.[^.]*$/)\n if (!match) return\n\n const fileNameWithoutExtention = match[1]\n let editing = false\n this.filteredSkus.forEach((sku) => {\n if (sku.images?.includes(fileName)) return\n const fn = STRATEGIES[bindStrategy]\n if (fn(fileNameWithoutExtention, sku)) {\n if (!sku.images) sku.images = `${CDN_ROOT}/${fileName}`\n else sku.images += `,${CDN_ROOT}/${fileName}`\n this.updatedSkus[sku.id] = sku\n sku.SELECTED = true\n if (!editing) {\n this.$store.dispatch('setEditing', true)\n editing = true\n }\n }\n })\n })\n this.loadingStatus = false\n this.validate()\n this.$forceUpdate()\n },\n toggleAll() {\n this.filteredSkus.forEach((sku) => {\n sku.SELECTED = this.selectAll\n })\n this.$forceUpdate()\n },\n selectColumnByName(fieldName) {\n const ind = this.selectedFields.indexOf(fieldName)\n this.cellHeaderClick({ selectedFields: this.selectedFields, index: ind, fields: this.fields })\n },\n calculateMarginField(sku) {\n sku['margin'] = productFunctions.calculateMargin(sku, this.$store.state.vatHi)\n },\n calculateCalculationField(sku) {\n if (sku.buyPrice || sku.price || sku.price == 0) {\n sku['calculation'] = 0.0\n }\n sku['calculation'] = (sku.price / sku.buyPrice).toFixed(1)\n },\n async handleYesNoDialog() {\n const answer = await showDialog('swYesNoDialog', { message: swT('upload_to_sku_archive') })\n if (answer && answer.answer) this.addFileToArchive()\n },\n cb(e, field) {\n this.fieldLevelReplace[field] = e.srcElement._value\n },\n async getSkuImportHistory() {\n try {\n const data = await webServices.getSkuImportHistory(hashBrand(this.$route.query.brand))\n return data.data?.length > 0 ? data.data : []\n } catch (error) {\n return []\n }\n },\n skuSource(sku) {\n let color\n const lightThemeColors = this.$vuetify.theme.themes.light\n if (sku.usedByTenant && sku.source == 'latestCollection') color = lightThemeColors.info\n else if (sku.source == 'latestCollection') color = colors.green.base\n else if (sku.usedByTenant) color = lightThemeColors.warning\n else color = 'grey'\n return color\n },\n clearFieldLevelFinds() {\n this.addfieldLevelFindDebounced = {}\n this.newSkuCount = 0\n Object.keys(this.fieldLevelFindDebounced).forEach((key) => (this.fieldLevelFindDebounced[key] = ''))\n },\n selectSku(sku) {\n this.skuToEdit = sku\n\n if (this.$route.path === '/products') this.dialogMode = 'display-data'\n else this.dialogMode = 'edit-' + (this.masterdata ? 'masterdata' : 'sku')\n\n this.showEditSku = true\n },\n applyEditSkuoperation(payload) {\n if (payload.done) {\n if (!this.$store.state.editing) this.updateFieldLevelFind('articlecode', '')\n this.showEditSku = false\n this.skuToCopy = null\n this.validate()\n return\n }\n if (payload.addSku) {\n const sku = payload.addSku\n sku.size.forEach((size) => {\n const newSku = deepCopy(sku)\n newSku.size = size\n newSku.mainSize = size\n newSku.sizeSupplier = size\n newSku.id = payload.isGeneratingBarcodes ? 'tmp-' + uuidv4() : newSku.barcode\n newSku.barcode = newSku.id\n this.updatedSkus[newSku.id] = newSku\n this.$emit('addSku', newSku)\n })\n this.$store.dispatch('setEditing', true)\n\n return\n }\n if (payload.updateSku) {\n this.showEditSku = false\n const sku = payload.updateSku\n this.updatedSkus[sku.id] = sku\n this.$emit('updateSku', sku)\n this.$store.dispatch('setEditing', true)\n }\n },\n initSelectedFields() {\n if (this.masterdata) {\n this.selectedFields = this.uiFieldChoices.map((choice) => choice.value)\n return\n }\n const preferedFields = this.$store.state.activeConfig.favorites.skuEditorColumns.value\n if (JSON.stringify(this.selectedFields) != JSON.stringify(preferedFields) || this.ensureFields?.length > 0) {\n if (!preferedFields.includes('barcode')) this.selectedFields = ['barcode', ...preferedFields]\n else this.selectedFields = [...preferedFields]\n if (this.ensureFields?.length > 0) {\n this.ensureFields\n .map((f) => (f.substring(0, 1) == '_' ? f.substring(1) : f))\n .forEach((f) => {\n if (!this.selectedFields.includes(f)) this.selectedFields.push(f)\n })\n }\n this.selectedFields = this.selectedFields.filter((field) => this.fields[field])\n this.selectedField = 'barcode'\n }\n },\n canBeRemoved(value) {\n return !(this.fieldLevelFind[value] || value === 'barcode')\n },\n removeSelectedField(field) {\n this.selectedFields.splice(this.selectedFields.indexOf(field.value), 1)\n delete this.fieldLevelFind[field.value]\n this.initColumnSelection()\n },\n initColumnSelection() {\n this.cellHeaderClick({ selectedFields: this.selectedFields, index: 0, fields: this.fields })\n },\n cellHeaderClick(params) {\n const { index } = params\n const { fields, activeSort, sortedSkus } = tools.skuOneColumnSorting(params, this.selectedField, this.activeSort, this.filteredSkus)\n this.fields = fields\n this.activeSort = activeSort\n this.selectedField = this.selectedFields[index]\n this.filteredSkus = sortedSkus\n this.$forceUpdate()\n },\n rowClass(index, sku) {\n let rowClass = 'row-border'\n if (sku.SELECTED) rowClass += ' green lighten-5'\n else if (index % 2 === 1) rowClass += ' grey lighten-4'\n if (sku.active === false) rowClass += ' text-decoration-line-through'\n return rowClass\n },\n cellClass(sku, fieldName, rowIndex) {\n let cellClass = 'cell-border '\n const { required, recommended, field } = this.fields[fieldName]\n if (!this.masterdata && !this.readonly && !sku[field]) {\n if (required) return rowIndex % 2 === 1 ? (cellClass += 'red lighten-4') : (cellClass += 'red lighten-5')\n if (recommended) return rowIndex % 2 === 1 ? (cellClass += 'orange lighten-4') : (cellClass += 'orange lighten-5')\n }\n if (this.fields[fieldName].type == 'currency') cellClass += ' text-right'\n return cellClass\n },\n columnHeaderClass(field) {\n return this.fields[field].type == 'currency' ? 'text-right' : 'text-left'\n },\n initFields() {\n this.fieldsDisabled = false\n this.preferedAttributes().forEach((field) => {\n if (!this.fieldChoices.find((fc) => fc.field == field.field)) this.fieldChoices.push(field)\n })\n this.fields = this.fieldChoices.reduce((obj, item) => {\n return {\n ...obj,\n [item.value]: item,\n }\n }, {})\n this.fieldLevelFind = this.fieldChoices.reduce((obj, item) => {\n return {\n ...obj,\n [item.value]: '',\n }\n }, {})\n this.fieldLevelReplace = this.fieldChoices.reduce((obj, item) => {\n return {\n ...obj,\n [item.value]: '',\n }\n }, {})\n this.fieldLevelMinPercentReplace = this.fieldChoices.reduce((obj, item) => {\n return {\n ...obj,\n [item.value]: '',\n }\n }, {})\n this.fieldLevelPlusPercentReplace = this.fieldChoices.reduce((obj, item) => {\n return {\n ...obj,\n [item.value]: '',\n }\n }, {})\n this.fieldLevelPlusValue = this.fieldChoices.reduce((obj, item) => {\n return {\n ...obj,\n [item.value]: '',\n }\n }, {})\n this.fieldLevelMinValue = this.fieldChoices.reduce((obj, item) => {\n return {\n ...obj,\n [item.value]: '',\n }\n }, {})\n },\n initReadonlyValues(skus) {\n if (skus.length > 0) {\n skus.forEach((sku) => {\n if (sku?.campaigns != '' && sku?.campaigns != undefined) {\n this.calculateCampaignSalesPrice(sku, sku.campaigns)\n }\n\n if (sku?.buyPrice != '' && sku?.buyPrice != undefined && sku?.price != '' && sku?.price != undefined) {\n this.calculateMarginField(sku)\n this.calculateCalculationField(sku)\n }\n })\n }\n },\n calculateCampaignSalesPrice(sku, selectedCampaigns) {\n let campaignSalesPrice = 0\n const campaigns = globalStore.getLatestCollectionObject('campaign')\n const selectedCampaignsArray = selectedCampaigns.split(',')\n\n for (const campaign of selectedCampaignsArray) {\n if (campaigns.length > 0 && campaigns[campaign]?.active) {\n if (campaigns[campaign]?.discountRule == 'percentage') {\n campaignSalesPrice = sku.price - (sku.price / 100) * campaigns[campaign].parameter\n }\n if (campaigns[campaign]?.discountRule == 'amount') {\n campaignSalesPrice = sku.price - campaigns[campaign].parameter\n }\n if (campaigns[campaign]?.discountRule == 'replace') {\n campaignSalesPrice = campaigns[campaign].parameter\n }\n\n sku['CampaignSalesPrice'] = campaignSalesPrice\n }\n }\n },\n eventListeners(mode) {\n eventBus[mode]('save', this.save)\n eventBus[mode]('cancel', this.cancel)\n },\n originalSkuFormatter(sku, fieldName) {\n const id = sku.id\n const originalSku = globalStore.getLatestCollectionObject('sku')[id]\n if (!originalSku) return ''\n const field = this.fields[fieldName].field\n if (originalSku[field] == undefined) return ''\n return originalSku[field]\n },\n skuSyncDiff(sku, index) {\n const lastRow = index === this.filteredSkus.slice(0, this.totalRowsOnPage).length - 1\n\n // If not in cloud syncing mode, display the row and count rows total by the last iteration\n if (!this.cloudSyncing) {\n if (lastRow) this.countRows()\n return true\n }\n\n // Loop through all selected fields and check if these fields have a different value\n for (const fieldName of this.selectedFields) {\n if (['id', 'barcode'].includes(fieldName)) continue\n const id = sku.id\n const originalSku = globalStore.getLatestCollectionObject('sku')[id]\n if (!originalSku) continue\n const field = this.fields[fieldName].field\n if (!field) continue\n\n // If there is a different value\n if (originalSku[field] !== sku[field]) {\n // If the barcode has been not set yet into skuDiffs, add it and assign an empty list to it\n if (!this.skusDiffs[sku.id]) this.skusDiffs[sku.id] = []\n // Add the field name to the list that has been assigned to the barcode in skuDiffs barcode\n this.skusDiffs[id].push(fieldName)\n }\n }\n\n // If this is the last row, count displayed rows\n if (lastRow) this.countRows()\n\n // Return if the row may/not be displayed\n return this.skusDiffs[sku.id]?.length\n },\n countRows() {\n // I don't know why this still triggers when the vuew is already inactive but the code should not run because\n // this.$store.state.paginationTotalPages is set to -1 in the deactivated hook and it should stay that way.\n if (this._inactive == true) return\n\n if (this.nrSelectedSkus()) {\n this.totalDisplayedRows = this.nrSelectedSkus()\n return\n }\n\n // If it's not in syncing display the total of filteredSkus\n if (!this.cloudSyncing) this.totalDisplayedRows = this.filteredSkus.length\n // If there is syncing and no filtering applied, display the total of skusDiffs\n else if (this.filteredSkus.length === this.skus.length) this.totalDisplayedRows = Object.keys(this.skusDiffs).length\n // If there is syncing and filtering applied, display the total of the filtered skus with differences\n else this.totalDisplayedRows = this.filteredSkus.filter((sku) => this.skusDiffs[sku.id]).length\n },\n skuReplaceDiff(sku, fieldName) {\n // If there are no updatedSkus or the updatedSkus object doesn't contain the passed sku stop execution\n if (!Object.keys(this.updatedSkus).length || !this.updatedSkus[sku.id]) return false\n if (['id', 'barcode'].includes(fieldName)) return false\n const id = sku.id\n const originalSku = globalStore.getLatestCollectionObject('sku')[id]\n if (!originalSku) return false\n const field = this.fields[fieldName].field\n if (!field) return false\n return originalSku[field] !== sku[field]\n },\n displayDifferences(sku, fieldName) {\n // Display differences only if there are differences in syncing, or in replacing values\n return (this.cloudSyncing && this.skusDiffs[sku['id']] && this.skusDiffs[sku['id']].includes(fieldName)) || this.skuReplaceDiff(sku, fieldName)\n },\n cellFormatter(sku, fieldName) {\n const fieldValue = sku[this.fields[fieldName].field] || ''\n const formatter = this.fields[fieldName].formatter\n if (formatter) return formatter(fieldValue)\n return fieldValue\n },\n async downloadXLS() {\n this.$store.state.exportBusy = true\n const filteredSkus = this.filteredSkus\n const url = await worker.xlsxWrite(filteredSkus, window.location.href)\n await webServices.forceDownload(url, 'dataSkus.xlsx')\n this.$store.state.exportBusy = false\n },\n async uploadXLS(e) {\n const XLSImportOperation = this.XLSImportOperation\n const file = e.target.files[0]\n const reader = new FileReader()\n const skus = this.skus\n const fieldChoices = this.fieldChoices\n const selectedFields = this.selectedFields\n const fields = this.fields\n const brandId = this.$route.query.brand\n const updatedSkus = this.updatedSkus\n const $store = this.$store\n $store.state.importBusy = true\n reader.onload = async (e) => {\n const data = new Uint8Array(e.target.result)\n const workbook = await worker.xlsxRead(data)\n $store.state.importBusy = false\n\n const sheet = workbook.Sheets[Object.keys(workbook?.Sheets)[0]]\n if (!sheet || !sheet['!ref'])\n return this.$store.dispatch('raiseAlert', {\n header: 'notavalidspreadsheet',\n type: 'error',\n timeout: 5000,\n })\n const range = sheet['!ref'].split(':')\n const re = /(?<col>[A-Z]*)(?<row>[0-9]*)/\n const upperLeftCoordinate = range[0].match(re).groups\n const topRow = upperLeftCoordinate.row\n const sheetKeys = Object.keys(sheet)\n const rows = {}\n sheetKeys\n .filter((key) => key[0] != '!')\n .forEach((key) => {\n const coordinates = key.match(re).groups\n const col = coordinates.col\n const row = coordinates.row\n if (!rows[row]) {\n if (XLSImportOperation == 'update_only') rows[row] = {}\n else rows[row] = { brand: brandId, source: 'import' }\n }\n if (row != topRow) rows[row][rows[topRow][col]] = sheet[key].v + ''\n else rows[row][col] = sheet[key].v + ''\n })\n if (!rows[2])\n return this.$store.dispatch('raiseAlert', {\n header: 'notavalidspreadsheet',\n type: 'error',\n timeout: 5000,\n })\n const columns = deepCopy(rows[2])\n delete rows[topRow] // Header row\n const skuIndex = skus.reduce((agg, sku, index) => {\n agg[sku.id] = index\n return agg\n }, {})\n const excludeFields = ['source', 'price', 'color', 'id', 'colorCode', 'suggestedRetailPrice', '__created', '__modified']\n const imageFields = []\n for (let i = 0; i < 9; i++) {\n const shortKey = `img${i}`\n const longKey = `image${i}`\n imageFields.push(shortKey)\n imageFields.push(longKey)\n }\n const importErrors = []\n const rowsMissingBarcode = []\n const rowsMissingBrand = []\n const rowsMissingArticleCode = []\n Object.keys(rows).forEach((key) => {\n const row = rows[key]\n if (typeof row.price == 'string') row.price = stringToFloat(row.price)\n if (typeof row.buyPrice == 'string') row.buyPrice = stringToFloat(row.buyPrice)\n if (typeof row.salePrice == 'string') row.salePrice = stringToFloat(row.salePrice)\n if (typeof row.valuePrice == 'string') row.valuePrice = stringToFloat(row.valuePrice)\n\n if (row.color) row.colorFamily = row.color\n if (row.color && !row.colorSupplier) row.colorSupplier = row.color\n if (row.colorCode && !row.colorCodeSupplier) row.colorCodeSupplier = row.colorCode\n if (row.articleCode && !row.articleCodeSupplier) row.articleCodeSupplier = row.articleCode\n if (row.articleGroup && !row.articleGroupSupplier) row.articleGroupSupplier = row.articleGroup\n if (row.collection && !row.collectionSupplier) row.collectionSupplier = row.collection\n if (row.size && !row.sizeSupplier) row.sizeSupplier = row.size\n const images = []\n for (const key of imageFields) if (row[key]) images.push(deHttpUrl(row[key]))\n if (images.length > 0) row.images = images.join(',')\n\n if (row.ean) row.barcode = row.ean\n if (!row.barcode) row.barcode = row.id\n let missingProperties = false\n if (!row.barcode) {\n rowsMissingBarcode.push(key)\n missingProperties = true\n }\n if (!row.brand) {\n rowsMissingBrand.push(key)\n missingProperties = true\n }\n if (!row.articleCode) {\n rowsMissingArticleCode.push(key)\n missingProperties = true\n }\n if (missingProperties) return\n row.id = row.barcode\n const existingSku = skus[skuIndex[row.id]]\n if (existingSku && (XLSImportOperation == 'update_only' || XLSImportOperation == 'all')) {\n // Check if there is any change\n if (updatedSkus[row.barcode] || Object.keys(row).find((k) => row[k] != existingSku[k])) {\n if (XLSImportOperation == 'update_only') existingSku.SELECTED = true\n Object.assign(existingSku, row)\n if (!updatedSkus[row.barcode]) updatedSkus[row.barcode] = existingSku || {}\n updatedSkus[row.barcode] = Object.assign(updatedSkus[row.barcode], row)\n }\n }\n if (!existingSku && (XLSImportOperation == 'all' || XLSImportOperation == 'new_only')) {\n if (XLSImportOperation == 'new_only') row.SELECTED = true\n skus.push(row)\n skuIndex[row.id] = skus.length - 1\n if (!updatedSkus[row.barcode]) updatedSkus[row.barcode] = existingSku || {}\n updatedSkus[row.barcode] = Object.assign(updatedSkus[row.barcode], row)\n }\n })\n if (rowsMissingBarcode.length != 0) {\n importErrors.push(swT('id_or_ean_missing_for_rows') + ': ' + rowsMissingBarcode)\n }\n if (rowsMissingBrand.length != 0) {\n importErrors.push(swT('brand_missing_for_rows') + ': ' + rowsMissingBrand)\n }\n if (rowsMissingArticleCode != 0) {\n importErrors.push(swT('articlecode_missing_for_rows') + ': ' + rowsMissingArticleCode)\n }\n console.log('importErrors: \\n', importErrors.join('\\n'))\n if (importErrors.length > 0) {\n return $store.dispatch('raiseAlert', {\n header: 'import_errors',\n text: importErrors.join('\\n'),\n type: 'error',\n timeout: 10000,\n })\n }\n if (XLSImportOperation == 'update_only' || XLSImportOperation == 'new_only') this.filterSelected = true\n // Add fields to fieldChoices and selectedFields\n Object.keys(columns)\n .filter((key) => !excludeFields.includes(key) && !imageFields.includes(key))\n .forEach((key) => {\n const lowerKey = key.toLowerCase()\n if (!fields[lowerKey]) {\n const newField = {\n value: lowerKey,\n field: key,\n text: key,\n type: 'text',\n }\n fieldChoices.push(newField)\n fields[lowerKey] = newField\n }\n if (!selectedFields.includes(lowerKey)) selectedFields.push(lowerKey)\n })\n this.$nextTick(() => {\n this.$store.dispatch('setEditing', true)\n this.validate()\n this.$forceUpdate()\n })\n }\n reader.readAsArrayBuffer(file)\n },\n async addFileToArchive() {\n try {\n const blob = await worker.xlsxBlob(this.filteredSkus)\n const response = await webServices.importSkuFileToArchive(hashBrand(this.$route.query.brand), this.filteredSkus[0].collection, blob)\n this.$store.state.loading = false\n\n if (response.status != 200) {\n this.$store.dispatch('raiseAlert', {\n header: 'upload_to_archive_failed',\n type: 'error',\n timeout: 3000,\n })\n }\n } catch {\n this.$store.state.loading = false\n\n this.$store.dispatch('raiseAlert', {\n header: 'upload_to_archive_failed',\n type: 'error',\n timeout: 3000,\n })\n }\n },\n preferedAttributes() {\n const groups = this.$store.state.activeConfig.products.activeAttributes.value || []\n return groups.map((group) => {\n return {\n value: group,\n field: '_' + group,\n text: group,\n type: 'combobox',\n masterdata: true,\n items: fieldFunctions.getItems('_' + group),\n }\n })\n },\n validate() {\n this.$store.state.activeFormValid = true\n },\n replaceField(fieldName) {\n const field = this.fields[fieldName].field\n let replaceValue = this.fieldLevelReplace[fieldName]\n if (this.fields[fieldName].type == 'boolean') replaceValue = replaceValue == 'true' || replaceValue == '1' ? true : false\n if (this.fields[fieldName].type == 'currency') replaceValue = stringToFloat(replaceValue)\n if (this.fields[fieldName].type == 'multiselect') replaceValue = replaceValue ? replaceValue.join(',') : ''\n if (typeof replaceValue == 'object' && field != 'campaigns') replaceValue = replaceValue.text\n\n const nrSelectedSkus = this.nrSelectedSkus()\n\n this.filteredSkus.forEach((sku) => {\n if (nrSelectedSkus && !sku.SELECTED) return\n\n if (this.fields[fieldName].type == 'currency' && this.fieldLevelMinPercentReplace[fieldName]) {\n const replacePercentValue = stringToFloat(this.fieldLevelMinPercentReplace[fieldName])\n if (replacePercentValue != 0) {\n if (field == 'salePrice') replaceValue = this.roundSalePrice((sku.price * (100 - replacePercentValue)) / 100)\n else replaceValue = (sku[field] * (100 - replacePercentValue)) / 100\n }\n }\n if (this.fields[fieldName].type == 'currency' && this.fieldLevelPlusPercentReplace[fieldName]) {\n const replacePercentValue = stringToFloat(this.fieldLevelPlusPercentReplace[fieldName])\n if (replacePercentValue != 0) {\n if (field == 'salePrice') replaceValue = this.roundSalePrice((sku.price * (100 + replacePercentValue)) / 100)\n else replaceValue = (sku[field] * (100 + replacePercentValue)) / 100\n }\n }\n if (this.fields[fieldName].type == 'currency' && this.fieldLevelPlusValueReplace[fieldName]) {\n const replacePlusValue = stringToFloat(this.fieldLevelPlusValueReplace[fieldName])\n if (replacePlusValue != 0) {\n if (field == 'salePrice') replaceValue = sku.price + replacePlusValue\n else replaceValue = sku[field] + replacePlusValue\n }\n }\n if (this.fields[fieldName].type == 'currency' && this.fieldLevelMinValueReplace[fieldName]) {\n const replaceMinValue = stringToFloat(this.fieldLevelMinValueReplace[fieldName])\n if (replaceMinValue != 0) {\n if (field == 'salePrice') replaceValue = sku.price - replaceMinValue\n else replaceValue = sku[field] - replaceMinValue\n }\n }\n\n if (field == 'campaigns') {\n this.calculateCampaignSalesPrice(sku, replaceValue)\n }\n if (field == 'price' || field == 'buyPrice') {\n this.calculateMarginField(sku)\n this.calculateCalculationField(sku)\n }\n sku[field] = replaceValue\n sku.id = sku.barcode\n this.updatedSkus[sku.id] = sku\n })\n\n this.fieldLevelReplace[field] = ''\n this.$store.dispatch('setEditing', true)\n this.validate()\n this.$forceUpdate()\n },\n clearField(fieldName) {\n const field = this.fields[fieldName].field\n let replaceValue = this.fieldLevelReplace[fieldName]\n if (this.fields[fieldName].type == 'boolean') replaceValue = false\n if (this.fields[fieldName].type == 'currency') replaceValue = stringToFloat('0')\n if (this.fields[fieldName].type == 'multiselect') replaceValue = ''\n this.filteredSkus.forEach((sku) => {\n sku[field] = replaceValue\n sku.id = sku.barcode\n this.updatedSkus[sku.id] = sku\n })\n this.fieldLevelReplace[field] = ''\n this.$store.dispatch('setEditing', true)\n this.validate()\n this.$forceUpdate()\n },\n setHeaderClass(index) {\n let baseClass = 'header ellipsis pa-1 ma-0 caption pointer '\n if (this.selectedField === this.selectedFields[index]) baseClass += 'green'\n else if (this.fields[this.selectedFields[index]]?.readOnly) baseClass += 'info lighten-1'\n else if (!this.fieldLevelFind[this.selectedFields[index]]) baseClass += 'info'\n else baseClass += 'orange accent-2'\n return baseClass\n },\n setFilterClass(index) {\n return this.selectedField === this.selectedFields[index] ? 'green lighten-5' : !this.fieldLevelFind[this.selectedFields[index]] ? 'grey lighten-3' : 'orange accent-2'\n },\n setChipColor(chipValue) {\n return chipValue.value === this.fields[this.selectedField].value ? 'green' : !this.fieldLevelFind[chipValue.value] ? 'info' : 'orange accent-3'\n },\n validateSkus(skus) {\n const mixedErrors = []\n const emptyFields = []\n let errorMessage = ''\n if (tools.getUniqueValues(skus.map((s) => s.brand)).lenght > 1) mixedErrors.push(swT('too_many_brands'))\n const nrUniqueBarcodes = tools.getUniqueValues(skus.map((s) => s.id)).length\n if (nrUniqueBarcodes != skus.length) mixedErrors.push(swT('barcodes_must_be_unique'))\n if (skus.find((s) => s.barcode.substring(0, 4) != 'tmp-' && !s.barcode)) mixedErrors.push(swT('incorrect_barcode'))\n if (skus.find((s) => s.price < 0 || s.buyPrice < 0 || s.sellPrice < 0)) mixedErrors.push(swT('prices_should_be_positive'))\n if (skus.find((s) => !s.articleCode)) emptyFields.push(swT('articlecode'))\n if (skus.find((s) => !s.brand)) emptyFields.push(swT('brand'))\n\n if (mixedErrors.length) errorMessage = mixedErrors.join('\\n')\n if (emptyFields.length) errorMessage += `${mixedErrors.length ? '\\n' : ''}${swT('mandatory_fields')}\\n${emptyFields.join('\\n')}`\n\n return errorMessage ? errorMessage : null\n },\n removeEarlierAddedSkus() {\n // This function removes all skus that have been earlier saved which\n // have been created using generate barcode to avoid duplicated adding\n this.updatedSkus = Object.keys(this.updatedSkus)\n .filter((key) => !!this.updatedSkus[key].id)\n .reduce((obj, key) => {\n obj[key] = this.updatedSkus[key]\n return obj\n }, {})\n },\n async save() {\n this.removeEarlierAddedSkus()\n if (!this.masterdata) {\n const errors = this.validateSkus(Object.values(this.updatedSkus))\n if (this.isAdmin) this.handleYesNoDialog()\n if (errors) return await showDialog('swInfoDialog', { message: errors, type: 'error' })\n }\n this.filteredSkus.forEach((sku) => delete sku.SELECTED)\n this.$emit('refresh')\n this.$store.dispatch('setEditing', false)\n this.$emit('save', this.updatedSkus)\n this.initFields()\n this.updatedSkusList = []\n this.updatedSkus = {}\n this.cloudSyncing = false\n },\n cancel() {\n this.$emit('refresh')\n this.$store.dispatch('setEditing', false)\n this.$emit('cancel')\n this.initFields()\n this.cloudSyncing = false\n this.filterSelected = false\n this.selectAll = false\n this.updatedSkusList = []\n this.updatedSkus = {}\n },\n skuImages(sku) {\n if (!sku.images) return\n return sku.images.split(',')\n },\n imageSrc(imageUrl, imageWidth) {\n return tools.imageUrlParse(imageUrl, imageWidth)\n },\n deActivateSku(sku) {\n const nrSelectedSkus = this.nrSelectedSkus()\n if (nrSelectedSkus > 1) {\n this.filteredSkus\n .filter((sku) => sku.SELECTED)\n .forEach((sku) => {\n sku.active = false\n this.updatedSkus[sku.id] = sku\n })\n } else {\n sku.active = false\n this.updatedSkus[sku.id] = sku\n }\n this.$store.dispatch('setEditing', true)\n this.validate()\n },\n activateSku(sku) {\n const nrSelectedSkus = this.nrSelectedSkus()\n if (nrSelectedSkus > 1) {\n this.filteredSkus\n .filter((sku) => sku.SELECTED)\n .forEach((sku) => {\n sku.active = true\n this.updatedSkus[sku.id] = sku\n })\n } else {\n sku.active = true\n this.updatedSkus[sku.id] = sku\n }\n this.$store.dispatch('setEditing', true)\n this.validate()\n },\n copySku(sku) {\n const skuToCopy = deepCopy(sku)\n delete skuToCopy.id\n delete skuToCopy.barcode\n this.skuToCopy = skuToCopy\n this.showChooseNewSkuMethodPopup()\n },\n async printSkuBarcode(sku) {\n let printBuffer = []\n this.filteredSkus\n .filter((sku) => sku.SELECTED)\n .forEach((sku) => {\n printBuffer.push(print.sku4BarcodeLabel(sku, 1))\n })\n if (printBuffer.length == 0) printBuffer = [print.sku4BarcodeLabel(sku, 1)]\n await showDialog('swPrintDialog', { printBuffer: printBuffer })\n },\n goToRoute(route) {\n this.$router.push(route)\n },\n nrSelectedSkus() {\n return this.filteredSkus.reduce((acc, c) => (c.SELECTED ? ++acc : acc), 0)\n },\n nrSelectedNonTmpSkus() {\n return this.filteredSkus.filter((s) => !s.id.includes('tmp')).reduce((acc, c) => (c.SELECTED ? ++acc : acc), 0)\n },\n activateMenu(e, sku) {\n e.preventDefault()\n const nrSelectedSkus = this.nrSelectedSkus()\n const nrSelectedNonTmpSkus = this.nrSelectedNonTmpSkus()\n const multiRowSelectCount = nrSelectedSkus > 1 ? ` (${nrSelectedSkus})` : ''\n const multiRowNonTmpSelectCount = nrSelectedNonTmpSkus > 1 ? ` (${nrSelectedNonTmpSkus})` : ''\n\n this.tablePopupMenuItems = []\n if (this.readonly) {\n this.tablePopupMenuItems.push({\n title: this.swT('open'),\n dataTest: 'open',\n icon: 'mdi-eye',\n callback: this.selectSku,\n class: 'info--text',\n payload: sku,\n })\n } else {\n this.tablePopupMenuItems.push({\n title: this.swT('edit'),\n dataTest: 'edit',\n icon: 'mdi-pencil',\n callback: this.selectSku,\n class: 'info--text',\n payload: sku,\n })\n if (!this.masterdata) {\n this.tablePopupMenuItems.push({\n title: this.swT('copy'),\n dataTest: 'copy',\n icon: 'mdi-content-copy',\n callback: this.copySku,\n class: 'info--text',\n payload: sku,\n })\n if (multiRowNonTmpSelectCount != '')\n this.tablePopupMenuItems.push({\n title: this.swT('print') + multiRowNonTmpSelectCount,\n dataTest: 'printLabel',\n icon: 'mdi-barcode',\n callback: this.printSkuBarcode,\n class: 'info--text',\n payload: sku,\n })\n if (!this.isAdmin)\n if (sku.active || nrSelectedSkus > 1)\n this.tablePopupMenuItems.push({\n title: this.swT('deactivate') + multiRowSelectCount,\n dataTest: 'deactivate',\n icon: 'mdi-close',\n callback: this.deActivateSku,\n class: 'warning--text',\n payload: sku,\n })\n if (!sku.active || nrSelectedSkus > 1)\n this.tablePopupMenuItems.push({\n title: this.swT('activate') + multiRowSelectCount,\n dataTest: 'activate',\n icon: 'mdi-check',\n callback: this.activateSku,\n class: 'success--text',\n payload: sku,\n })\n if (sku.pricat)\n this.tablePopupMenuItems.push({\n title: this.swT('openPricat'),\n dataTest: 'openPricat',\n icon: 'mdi-matrix',\n callback: this.openPricat,\n class: 'info--text',\n payload: sku,\n })\n }\n }\n\n if (!this.isAdmin)\n this.tablePopupMenuItems.push({\n title: this.swT('history'),\n dataTest: 'history',\n icon: 'mdi-table-eye',\n callback: this.goToRoute,\n class: 'info--text',\n payload: {\n path: 'reports',\n query: {\n type: 'articlestatus',\n groups: 'sku.articleCode,sku.colorFamily,sku.size,sku.id,transaction.time,transaction.type,transaction.docnr,wh.name',\n filter: `sku.id == \"${sku.id}\"`,\n fields: '6,8,12,14,41',\n period: 'LASTMONTH',\n reportViz: 'table',\n },\n },\n })\n if (this.showDownloadSkuMenuItem(sku))\n this.tablePopupMenuItems.push({\n title: this.swT('download') + multiRowSelectCount,\n dataTest: 'download',\n icon: 'mdi-cloud-download-outline',\n callback: this.saveProductToTenantDb,\n class: 'info--text',\n payload: sku,\n })\n if (\n userFunctions.hasRole(this.$store.getters.roles, 'sw') ||\n (sku.source == 'tenant' && !userFunctions.hasRole(this.$store.getters.roles, 'sw')) ||\n (sku.source == 'latestCollection' && sku.usedByTenant == true)\n ) {\n this.tablePopupMenuItems.push({\n title: this.swT('delete') + multiRowSelectCount,\n dataTest: 'delete',\n icon: 'mdi-trash-can',\n callback: this.showDeleteConfirmationMessage,\n class: 'error--text',\n payload: sku,\n })\n }\n this.tablePopupMenuItems.push({\n title: this.swT('googleSearchSku'),\n dataTest: 'googleSearch',\n icon: 'mdi-google',\n callback: this.googleSearchSku,\n class: 'info--text',\n payload: sku,\n })\n this.tablePopupMenuItems.push({\n title: this.swT('close'),\n dataTest: 'close',\n icon: 'mdi-exit-to-app',\n callback: null,\n class: 'info--text',\n payload: {},\n })\n this.menuActivated = false\n this.contextMenuX = e.clientX\n this.contextMenuY = e.clientY\n this.$nextTick(() => {\n this.menuActivated = true\n })\n },\n updateFieldLevelFind(key, value) {\n if (this.dialogMode !== 'add-sku') return\n if (!this.addfieldLevelFindDebounced[key]) {\n this.addfieldLevelFindDebounced[key] = []\n }\n this.addfieldLevelFindDebounced[key][this.newSkuCount] = value\n\n // Remove duplicates and undefined or empty items\n const filtersList = [...new Set(this.addfieldLevelFindDebounced[key])].filter((v) => v)\n\n // Convert list to string with | separator\n const regexCtx = filtersList.join('|')\n\n this.fieldLevelFindDebounced[key] = regexCtx\n this.fieldLevelFind[key] = regexCtx\n },\n isUISelectedFieldDisabled(item) {\n return item.value === 'barcode'\n },\n googleSearchSku(sku) {\n window.open(`https://www.google.com/search?q=${sku.barcode}`, '_blank')\n },\n openPricat(sku) {\n window.open('https://www.softwear.nl/pricats/' + sku.pricat, '_blank')\n },\n async deleteSku(onlyUnusedSkus) {\n try {\n this.$store.state.loading = true\n let skusBatchesToDelete = []\n\n // Split the selected skus into batches of 100 skus\n let skusToDelete = onlyUnusedSkus ? this.unusedSkusToDelete : this.filteredSkus.filter((sku) => sku.SELECTED)\n skusToDelete = skusToDelete.length ? skusToDelete : [this.clickedSkuToDelete]\n skusBatchesToDelete = tools.splitArrayIntoBatches(skusToDelete, 100)\n\n // Delete the skus\n for (let i = 0; i < skusBatchesToDelete.length; i++) {\n await this.$store.dispatch('deleteObjects', {\n api: globalStore.getLatestCollectionAPI(this.sourceCollection),\n data: skusBatchesToDelete[i],\n silent: i + 1 !== skusBatchesToDelete.length, // To display the last Data saved! notification only by the last batch\n auditHeaders: {\n 'x-transaction-audit-source': 'Sku-editor',\n },\n })\n }\n\n // Remove the skus from the vue component\n skusBatchesToDelete.forEach((skusBatch) => {\n skusBatch.forEach((sku) => {\n const indexOfSkuToDelete = this.skus.findIndex((s) => s.id == sku.id)\n this.skus.splice(indexOfSkuToDelete, 1)\n })\n })\n this.$forceUpdate()\n } finally {\n this.$store.state.loading = false\n this.clickedSkuToDelete = null\n this.unusedSkusToDelete = []\n if (!onlyUnusedSkus) this.totalDisplayedRows = 0\n }\n },\n async showDeleteConfirmationMessage(sku) {\n this.clickedSkuToDelete = sku\n const maxSelectionSize = 100\n if (this.filteredSkus.length > maxSelectionSize) {\n this.$store.dispatch('raiseAlert', {\n header: 'delete_not_allowed_selection_bigger_than_n_skus',\n headerTranslationPluralization: maxSelectionSize,\n type: 'warning',\n timeout: 5000,\n })\n return\n }\n if (this.filteredSkus.filter((s) => s.SELECTED).length || sku) {\n const checkBeforeDelete = await showDialog('swYesNoCancelDialog', { message: swT('confirm_delete_selected_skus_ync_dialog') })\n\n if (checkBeforeDelete === 'yes') await this.checkSelectedSkusBeforeDelete()\n else if (checkBeforeDelete === 'no') {\n const deleteSkus = await showDialog('swYesNoDialog', { message: swT('are_you_sure_you_want_to_delete_this_selection') })\n if (deleteSkus.answer) await this.deleteSku(false)\n }\n } else await showDialog('swInfoDialog', { message: swT('no_skus_selected') })\n\n this.clickedSkuToDelete = null\n this.unusedSkusToDelete = []\n },\n async checkSelectedSkusBeforeDelete() {\n this.$store.state.loading = true\n const fromYear = 2022\n const currentYear = new Date().getFullYear()\n const tenantId = getSession().current_tenant\n let selectedSkus = this.filteredSkus.filter((sku) => sku.SELECTED)\n selectedSkus = selectedSkus.length ? selectedSkus : [this.clickedSkuToDelete]\n let mostRecentSkuUsage = 1411760234257 // 10 Years ago\n\n this.unusedSkusToDelete = []\n const unusedSkusObject = {}\n const usedBarcodes = new Set() // Set for faster lookups\n\n // Get the transactions to check the skus usage and most recent usage time\n for (let year = fromYear; year <= currentYear; year++) {\n const transactions = (await startupDB({ url: `/${tenantId}/transaction/${year}`, immutable: year != currentYear })).read()\n\n // Create Set for faster lookups\n const eansSet = new Set(transactions.map((transaction) => transaction.ean))\n\n // Filter used and unused SKUs for the current year's transactions\n selectedSkus.forEach((sku) => {\n if (eansSet.has(sku.barcode)) {\n if (!usedBarcodes.has(sku.barcode)) usedBarcodes.add(sku.barcode)\n const transaction = transactions.find((transaction) => transaction.ean === sku.barcode)\n if (transaction.time > mostRecentSkuUsage) mostRecentSkuUsage = transaction.time\n } else if (!unusedSkusObject[sku.barcode]) unusedSkusObject[sku.barcode] = sku\n })\n }\n\n // Filter out the used skus which maight be added as unused skus\n this.unusedSkusToDelete = Object.values(unusedSkusObject).filter((sku) => {\n return !usedBarcodes.has(sku.barcode)\n })\n\n this.$store.state.loading = false\n // Prepare the results message and show it\n const showNoButton = selectedSkus.length !== this.unusedSkusToDelete.length && selectedSkus.length !== usedBarcodes.size\n\n const deleteSelectedSkusAfterCheckDialogMsg = swT('confirm_delete_selected_skus_after_check')\n .replace('{selectedSkus}', selectedSkus.length)\n .replace('{usedSkus}', usedBarcodes.size)\n .replace('{unusedSkus}', this.unusedSkusToDelete.length)\n .replace('{mostRecentUsage}', usedBarcodes.size ? `\\n\\t- ${swT('most_recent_usage')}: ${format(mostRecentSkuUsage, 'yyyy-MM-dd, HH:mm:ss')}` : '')\n .replace('{whichSkusToDelete}', showNoButton ? swT('which_skus_to_delete') : swT('are_you_sure_you_want_to_delete_this_selection'))\n\n const deleteAllSkus = await showDialog('swYesNoCancelDialog', {\n message: deleteSelectedSkusAfterCheckDialogMsg,\n multiLineMessage: true,\n yesKey: showNoButton ? swT('delete_all') : swT('delete'),\n noKey: swT('delete_unused'),\n showNoKey: showNoButton,\n })\n if (deleteAllSkus === 'yes') await this.deleteSku(false)\n else if (deleteAllSkus === 'no') await this.deleteSku(true)\n },\n async saveProductToTenantDb(sku) {\n try {\n const nrSelectedSkus = this.nrSelectedSkus()\n let barcodesToSave = []\n if (nrSelectedSkus > 1) {\n barcodesToSave = this.filteredSkus.filter((sku) => sku.SELECTED)\n } else barcodesToSave.push(sku)\n\n this.$store.state.loading = true\n await this.$store.dispatch('updateSkuObjects', { data: barcodesToSave, audit: 'Sku Editor' })\n\n this.$forceUpdate()\n } finally {\n this.$store.state.loading = false\n }\n },\n showDownloadSkuMenuItem(sku) {\n // Check whether the sku has been created locally or is downloaded before.\n // Which in both cases doesn't have to show the download menu item for the sku.\n const isNotLocallyCreatedSku = !((!sku.usedByTenant && !sku.source) || (sku.usedByTenant && sku.source === 'tenant'))\n const isNotDownloadedSku = !sku.usedByTenant || sku.source !== 'latestCollection'\n return isNotLocallyCreatedSku && isNotDownloadedSku\n },\n showSalePricePopup(e, selectedField) {\n // Show a popup only on saleprice to choose the round method\n if (selectedField !== 'saleprice') return\n e.preventDefault()\n\n this.tablePopupMenuItems = []\n this.tablePopupMenuItems.push({\n title: this.swT('no-rounding'),\n dataTest: 'no-rounding',\n icon: 'mdi-equal',\n callback: this.setSalePriceRoundMethod,\n class: this.salePriceRoundMethod === 'no-rounding' ? 'success--text' : 'info--text',\n payload: { event: e, roundMethod: 'no-rounding' },\n })\n this.tablePopupMenuItems.push({\n title: this.swT('half-rounding'),\n dataTest: 'half-rounding',\n icon: 'mdi-approximately-equal',\n callback: this.setSalePriceRoundMethod,\n class: this.salePriceRoundMethod === 'half-rounding' ? 'success--text' : 'info--text',\n payload: { event: e, roundMethod: 'half-rounding' },\n })\n this.tablePopupMenuItems.push({\n title: this.swT('whole-rounding'),\n dataTest: 'whole-rounding',\n icon: 'mdi-approximately-equal-box',\n callback: this.setSalePriceRoundMethod,\n class: this.salePriceRoundMethod === 'whole-rounding' ? 'success--text' : 'info--text',\n payload: { event: e, roundMethod: 'whole-rounding' },\n })\n this.menuActivated = false\n this.contextMenuX = e.clientX\n this.contextMenuY = e.clientY\n this.$nextTick(() => {\n this.menuActivated = true\n })\n },\n setSalePriceRoundMethod(payload) {\n this.salePriceRoundMethod = payload.roundMethod\n //Focus the input field after hiding the popup menu\n payload.event.target.focus()\n },\n roundSalePrice(salePrice) {\n // If half-rounding\n if (this.salePriceRoundMethod === 'half-rounding') {\n const intPart = Math.trunc(salePrice)\n const decimalPortionString = String(salePrice).split('.')[1]\n // Reformat the decimal portion as follow to be compared on next step:\n // 0.5 we get 5 it will be 50\n // 0.45355563 we get 45355563 it will be 45\n // 0.45 we get 0.45 it being used as-is without changing\n const decimalPortionNumber = Number(\n decimalPortionString.length < 2 ? decimalPortionString + '0' : decimalPortionString.length > 2 ? decimalPortionString.substring(0, 2) : decimalPortionString\n )\n\n // 3.24 => 3.00\n if (decimalPortionNumber < 25) return Number(intPart.toFixed(2))\n // 3.75 => 4.00\n if (decimalPortionNumber > 74) return Number((intPart + 1).toFixed(2))\n // 3.25 or 3.74 => 3.50\n return Number((intPart + 0.5).toFixed(2))\n }\n\n // If whole-rounding, use the normal round method\n if (this.salePriceRoundMethod === 'whole-rounding') return Math.round(salePrice)\n\n // If no-rounding return the salePrice as-is\n return salePrice\n },\n setPaginationTotalPages(totalDisplayedRows) {\n this.$store.state.paginationTotalPages = Math.ceil(totalDisplayedRows / this.totalRowsOnPage)\n },\n async showChooseNewSkuMethodPopup() {\n if (this.$store.state.dialogDisplayed) return\n if (this.isSWAdmin && this.$route.query.masterdata) {\n this.clearFieldLevelFinds()\n this.triggerAddSkuMethod({ method: 'generate' })\n return\n }\n const operation = await showDialog('swChooseNewSkuMethod')\n if (operation && 'method' in operation) {\n this.clearFieldLevelFinds()\n this.triggerAddSkuMethod(operation)\n }\n },\n columnHeadName(field) {\n if (field.field[0] == '_' && field.field[1] != '_') return field.text\n return swT(field.text.substr(0, 4) + 'abvr.' + field.text.substr(4))\n },\n },\n}\n</script>\n<style scoped>\n.right-input >>> input {\n text-align: right;\n}\n.innerVerticalBorder {\n border-left: 1px solid;\n}\n.innerVerticalBorder:first-child {\n border-left: 0px;\n}\n.innerHorizontalBorder {\n border-top: 1px solid;\n}\n.innerHorizontalBorder:first-child {\n border-top: 0px;\n}\n.lowerHorizontalBorder {\n border-bottom: 1px solid;\n}\n.singleLineHeight {\n height: 24px;\n white-space: nowrap;\n min-width: 0;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n@media only screen and (max-width: 430px) {\n .sticky {\n top: 126px;\n }\n}\n@media only screen and (min-width: 431px) {\n .sticky {\n top: 132px;\n }\n}\n.green-border >>> fieldset {\n border: 1px solid #4caf50 !important;\n}\n.cell-border {\n border-right: 1px solid #aaa !important;\n border-bottom: 1px solid #aaa !important;\n}\n.header {\n border: 1px solid #aaa !important;\n width: 100%;\n}\n.pointer {\n cursor: pointer;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swSkuEditor.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swSkuEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./swSkuEditor.vue?vue&type=template&id=b5283d74&scoped=true\"\nimport script from \"./swSkuEditor.vue?vue&type=script&lang=js\"\nexport * from \"./swSkuEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./swSkuEditor.vue?vue&type=style&index=0&id=b5283d74&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b5283d74\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar $TypeError = TypeError;\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar max = Math.max;\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, position, replacement;\n var endOfLastMatch = 0;\n var result = '';\n if (!isNullOrUndefined(searchValue)) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = toString(requireObjectCoercible(getRegExpFlags(searchValue)));\n if (!~indexOf(flags, 'g')) throw new $TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = getMethod(searchValue, REPLACE);\n if (replacer) return call(replacer, searchValue, O, replaceValue);\n if (IS_PURE && IS_REG_EXP) return replace(toString(O), searchValue, replaceValue);\n }\n string = toString(O);\n searchString = toString(searchValue);\n functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = indexOf(string, searchString);\n while (position !== -1) {\n replacement = functionalReplace\n ? toString(replaceValue(searchString, position, string))\n : getSubstitution(searchString, string, position, [], undefined, replaceValue);\n result += stringSlice(string, endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = position + advanceBy > string.length ? -1 : indexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += stringSlice(string, endOfLastMatch);\n }\n return result;\n }\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","'use strict';\nvar arrayToReversed = require('../internals/array-to-reversed');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// `%TypedArray%.prototype.toReversed` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.toreversed\nexportTypedArrayMethod('toReversed', function toReversed() {\n return arrayToReversed(aTypedArray(this), getTypedArrayConstructor(this));\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://tc39.es/ecma262/#sec-set.prototype.union\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n union: union\n});\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar arrayBufferByteLength = require('../internals/array-buffer-byte-length');\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer && ArrayBuffer.prototype;\nvar slice = ArrayBufferPrototype && uncurryThis(ArrayBufferPrototype.slice);\n\nmodule.exports = function (O) {\n if (arrayBufferByteLength(O) !== 0) return false;\n if (!slice) return false;\n try {\n slice(O, 0, 0);\n return false;\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set -- testing\n return String(Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2])))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://tc39.es/ecma262/#sec-set.prototype.intersection\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport { VFadeTransition } from '../transitions'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\n\n// Directives\nimport Resize from '../../directives/resize'\nimport Touch from '../../directives/touch'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\n\n// Types\nimport Vue, { VNode } from 'vue'\nimport { composedPath, getSlot } from '../../util/helpers'\n\ninterface TouchEvent {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n stopPropagation: Function\n}\n\ninterface Widths {\n content: number\n wrapper: number\n}\n\ninterface options extends Vue {\n $refs: {\n content: HTMLElement\n wrapper: HTMLElement\n }\n}\n\nfunction bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean,\n currentScrollOffset: number\n): number {\n const clientWidth = selectedElement.clientWidth\n const offsetLeft = rtl\n ? (widths.content - selectedElement.offsetLeft - clientWidth)\n : selectedElement.offsetLeft\n\n if (rtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalWidth = widths.wrapper + currentScrollOffset\n const itemOffset = clientWidth + offsetLeft\n const additionalOffset = clientWidth * 0.4\n\n if (offsetLeft <= currentScrollOffset) {\n currentScrollOffset = Math.max(offsetLeft - additionalOffset, 0)\n } else if (totalWidth <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalWidth - itemOffset - additionalOffset), widths.content - widths.wrapper)\n }\n\n return rtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset (\n selectedElement: HTMLElement,\n widths: Widths,\n rtl: boolean\n): number {\n const { offsetLeft, clientWidth } = selectedElement\n\n if (rtl) {\n const offsetCentered = widths.content - offsetLeft - clientWidth / 2 - widths.wrapper / 2\n return -Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetLeft + clientWidth / 2 - widths.wrapper / 2\n return Math.min(widths.content - widths.wrapper, Math.max(0, offsetCentered))\n }\n}\n\nexport const BaseSlideGroup = mixins<options &\n/* eslint-disable indent */\n ExtractVue<[\n typeof BaseItemGroup,\n typeof Mobile,\n ]>\n/* eslint-enable indent */\n>(\n BaseItemGroup,\n Mobile,\n /* @vue/component */\n).extend({\n name: 'base-slide-group',\n\n directives: {\n Resize,\n Touch,\n },\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'never',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n },\n\n data: () => ({\n isOverflowing: false,\n resizeTimeout: 0,\n startX: 0,\n isSwipingHorizontal: false,\n isSwiping: false,\n scrollOffset: 0,\n widths: {\n content: 0,\n wrapper: 0,\n },\n }),\n\n computed: {\n canTouch (): boolean {\n return typeof window !== 'undefined'\n },\n __cachedNext (): VNode {\n return this.genTransition('next')\n },\n __cachedPrev (): VNode {\n return this.genTransition('prev')\n },\n classes (): object {\n return {\n ...BaseItemGroup.options.computed.classes.call(this),\n 'v-slide-group': true,\n 'v-slide-group--has-affixes': this.hasAffixes,\n 'v-slide-group--is-overflowing': this.isOverflowing,\n }\n },\n hasAffixes (): Boolean {\n switch (this.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !this.isMobile\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return this.isOverflowing || Math.abs(this.scrollOffset) > 0\n\n // Always show on mobile\n case 'mobile': return (\n this.isMobile ||\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n\n // Always hide arrows\n case 'never': return false\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !this.isMobile &&\n (this.isOverflowing || Math.abs(this.scrollOffset) > 0)\n )\n }\n },\n hasNext (): boolean {\n if (!this.hasAffixes) return false\n\n const { content, wrapper } = this.widths\n\n // Check one scroll ahead to know the width of right-most item\n return content > Math.abs(this.scrollOffset) + wrapper\n },\n hasPrev (): boolean {\n return this.hasAffixes && this.scrollOffset !== 0\n },\n },\n\n watch: {\n internalValue: 'setWidths',\n // When overflow changes, the arrows alter\n // the widths of the content and wrapper\n // and need to be recalculated\n isOverflowing: 'setWidths',\n scrollOffset (val) {\n if (this.$vuetify.rtl) val = -val\n\n let scroll =\n val <= 0\n ? bias(-val)\n : val > this.widths.content - this.widths.wrapper\n ? -(this.widths.content - this.widths.wrapper) + bias(this.widths.content - this.widths.wrapper - val)\n : -val\n\n if (this.$vuetify.rtl) scroll = -scroll\n\n this.$refs.content.style.transform = `translateX(${scroll}px)`\n },\n },\n\n mounted () {\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n obs.observe(this.$refs.content)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n } else {\n let itemsLength = 0\n this.$on('hook:beforeUpdate', () => {\n itemsLength = (this.$refs.content?.children || []).length\n })\n this.$on('hook:updated', () => {\n if (itemsLength === (this.$refs.content?.children || []).length) return\n this.setWidths()\n })\n }\n },\n\n methods: {\n onScroll () {\n this.$refs.wrapper.scrollLeft = 0\n },\n onFocusin (e: FocusEvent) {\n if (!this.isOverflowing) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of composedPath(e)) {\n for (const vm of this.items) {\n if (vm.$el === el) {\n this.scrollOffset = calculateUpdatedOffset(\n vm.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n return\n }\n }\n }\n },\n // Always generate next for scrollable hint\n genNext (): VNode | null {\n const slot = this.$scopedSlots.next\n ? this.$scopedSlots.next({})\n : getSlot(this, 'next') || this.__cachedNext\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__next',\n class: {\n 'v-slide-group__next--disabled': !this.hasNext,\n },\n on: {\n click: () => this.onAffixClick('next'),\n },\n key: 'next',\n }, [slot])\n },\n genContent (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__content',\n ref: 'content',\n on: {\n focusin: this.onFocusin,\n },\n }, getSlot(this))\n },\n genData (): object {\n return {\n class: this.classes,\n directives: [{\n name: 'resize',\n value: this.onResize,\n }],\n }\n },\n genIcon (location: 'prev' | 'next'): VNode | null {\n let icon = location\n\n if (this.$vuetify.rtl && location === 'prev') {\n icon = 'next'\n } else if (this.$vuetify.rtl && location === 'next') {\n icon = 'prev'\n }\n\n const upperLocation = `${location[0].toUpperCase()}${location.slice(1)}`\n const hasAffix = (this as any)[`has${upperLocation}`]\n\n if (\n !this.showArrows &&\n !hasAffix\n ) return null\n\n return this.$createElement(VIcon, {\n props: {\n disabled: !hasAffix,\n },\n }, (this as any)[`${icon}Icon`])\n },\n // Always generate prev for scrollable hint\n genPrev (): VNode | null {\n const slot = this.$scopedSlots.prev\n ? this.$scopedSlots.prev({})\n : getSlot(this, 'prev') || this.__cachedPrev\n\n return this.$createElement('div', {\n staticClass: 'v-slide-group__prev',\n class: {\n 'v-slide-group__prev--disabled': !this.hasPrev,\n },\n on: {\n click: () => this.onAffixClick('prev'),\n },\n key: 'prev',\n }, [slot])\n },\n genTransition (location: 'prev' | 'next') {\n return this.$createElement(VFadeTransition, [this.genIcon(location)])\n },\n genWrapper (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-slide-group__wrapper',\n directives: [{\n name: 'touch',\n value: {\n start: (e: TouchEvent) => this.overflowCheck(e, this.onTouchStart),\n move: (e: TouchEvent) => this.overflowCheck(e, this.onTouchMove),\n end: (e: TouchEvent) => this.overflowCheck(e, this.onTouchEnd),\n },\n }],\n ref: 'wrapper',\n on: {\n scroll: this.onScroll,\n },\n }, [this.genContent()])\n },\n calculateNewOffset (direction: 'prev' | 'next', widths: Widths, rtl: boolean, currentScrollOffset: number) {\n const sign = rtl ? -1 : 1\n const newAbosluteOffset = sign * currentScrollOffset +\n (direction === 'prev' ? -1 : 1) * widths.wrapper\n\n return sign * Math.max(Math.min(newAbosluteOffset, widths.content - widths.wrapper), 0)\n },\n onAffixClick (location: 'prev' | 'next') {\n this.$emit(`click:${location}`)\n this.scrollTo(location)\n },\n onResize () {\n /* istanbul ignore next */\n if (this._isDestroyed) return\n\n this.setWidths()\n },\n onTouchStart (e: TouchEvent) {\n const { content } = this.$refs\n\n this.startX = this.scrollOffset + e.touchstartX as number\n\n content.style.setProperty('transition', 'none')\n content.style.setProperty('willChange', 'transform')\n },\n onTouchMove (e: TouchEvent) {\n if (!this.canTouch) return\n\n if (!this.isSwiping) {\n // only calculate disableSwipeHorizontal during the first onTouchMove invoke\n // in order to ensure disableSwipeHorizontal value is consistent between onTouchStart and onTouchEnd\n const diffX = e.touchmoveX - e.touchstartX\n const diffY = e.touchmoveY - e.touchstartY\n this.isSwipingHorizontal = Math.abs(diffX) > Math.abs(diffY)\n this.isSwiping = true\n }\n\n if (this.isSwipingHorizontal) {\n // sliding horizontally\n this.scrollOffset = this.startX - e.touchmoveX\n // temporarily disable window vertical scrolling\n document.documentElement.style.overflowY = 'hidden'\n }\n },\n onTouchEnd () {\n if (!this.canTouch) return\n\n const { content, wrapper } = this.$refs\n const maxScrollOffset = content.clientWidth - wrapper.clientWidth\n\n content.style.setProperty('transition', null)\n content.style.setProperty('willChange', null)\n\n if (this.$vuetify.rtl) {\n /* istanbul ignore else */\n if (this.scrollOffset > 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset <= -maxScrollOffset) {\n this.scrollOffset = -maxScrollOffset\n }\n } else {\n /* istanbul ignore else */\n if (this.scrollOffset < 0 || !this.isOverflowing) {\n this.scrollOffset = 0\n } else if (this.scrollOffset >= maxScrollOffset) {\n this.scrollOffset = maxScrollOffset\n }\n }\n\n this.isSwiping = false\n // rollback whole page scrolling to default\n document.documentElement.style.removeProperty('overflow-y')\n },\n overflowCheck (e: TouchEvent, fn: (e: TouchEvent) => void) {\n e.stopPropagation()\n this.isOverflowing && fn(e)\n },\n scrollIntoView /* istanbul ignore next */ () {\n if (!this.selectedItem && this.items.length) {\n const lastItemPosition = this.items[this.items.length - 1].$el.getBoundingClientRect()\n const wrapperPosition = this.$refs.wrapper.getBoundingClientRect()\n\n if (\n (this.$vuetify.rtl && wrapperPosition.right < lastItemPosition.right) ||\n (!this.$vuetify.rtl && wrapperPosition.left > lastItemPosition.left)\n ) {\n this.scrollTo('prev')\n }\n }\n\n if (!this.selectedItem) {\n return\n }\n\n if (\n this.selectedIndex === 0 ||\n (!this.centerActive && !this.isOverflowing)\n ) {\n this.scrollOffset = 0\n } else if (this.centerActive) {\n this.scrollOffset = calculateCenteredOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl\n )\n } else if (this.isOverflowing) {\n this.scrollOffset = calculateUpdatedOffset(\n this.selectedItem.$el as HTMLElement,\n this.widths,\n this.$vuetify.rtl,\n this.scrollOffset\n )\n }\n },\n scrollTo /* istanbul ignore next */ (location: 'prev' | 'next') {\n this.scrollOffset = this.calculateNewOffset(location, {\n // Force reflow\n content: this.$refs.content ? this.$refs.content.clientWidth : 0,\n wrapper: this.$refs.wrapper ? this.$refs.wrapper.clientWidth : 0,\n }, this.$vuetify.rtl, this.scrollOffset)\n },\n setWidths () {\n window.requestAnimationFrame(() => {\n if (this._isDestroyed) return\n\n const { content, wrapper } = this.$refs\n\n this.widths = {\n content: content ? content.clientWidth : 0,\n wrapper: wrapper ? wrapper.clientWidth : 0,\n }\n\n // https://github.com/vuetifyjs/vuetify/issues/13212\n // We add +1 to the wrappers width to prevent an issue where the `clientWidth`\n // gets calculated wrongly by the browser if using a different zoom-level.\n this.isOverflowing = this.widths.wrapper + 1 < this.widths.content\n\n this.scrollIntoView()\n })\n },\n },\n\n render (h): VNode {\n return h('div', this.genData(), [\n this.genPrev(),\n this.genWrapper(),\n this.genNext(),\n ])\n },\n})\n\nexport default BaseSlideGroup.extend({\n name: 'v-slide-group',\n\n provide (): object {\n return {\n slideGroup: this,\n }\n },\n})\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, intSize) {\n this.set = set;\n this.size = max(intSize, 0);\n this.has = aCallable(set.has);\n this.keys = aCallable(set.keys);\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw new $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw new $RangeError(INVALID_SIZE);\n return new SetRecord(obj, intSize);\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issubsetof\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {\n isSubsetOf: isSubsetOf\n});\n","// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport VSheet from '../VSheet/VSheet'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Themeable from '../../mixins/themeable'\nimport Toggleable from '../../mixins/toggleable'\nimport { factory as PositionableFactory } from '../../mixins/positionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { deprecate, removed } from '../../util/console'\n\n// Types\nimport { PropType, VNode } from 'vue'\n\nexport default mixins(\n VSheet,\n Colorable,\n Toggleable,\n PositionableFactory([\n 'absolute',\n 'bottom',\n 'left',\n 'right',\n 'top',\n ])\n/* @vue/component */\n).extend({\n name: 'v-snackbar',\n\n props: {\n app: Boolean,\n centered: Boolean,\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n text: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n transition: {\n type: [Boolean, String] as PropType<false | string>,\n default: 'v-snack-transition',\n validator: v => typeof v === 'string' || v === false,\n },\n vertical: Boolean,\n },\n\n data: () => ({\n activeTimeout: -1,\n }),\n\n computed: {\n classes (): object {\n return {\n 'v-snack--absolute': this.absolute,\n 'v-snack--active': this.isActive,\n 'v-snack--bottom': this.bottom || !this.top,\n 'v-snack--centered': this.centered,\n 'v-snack--has-background': this.hasBackground,\n 'v-snack--left': this.left,\n 'v-snack--multi-line': this.multiLine && !this.vertical,\n 'v-snack--right': this.right,\n 'v-snack--text': this.text,\n 'v-snack--top': this.top,\n 'v-snack--vertical': this.vertical,\n }\n },\n // Text and outlined styles both\n // use transparent backgrounds\n hasBackground (): boolean {\n return (\n !this.text &&\n !this.outlined\n )\n },\n // Snackbar is dark by default\n // override themeable logic.\n isDark (): boolean {\n return this.hasBackground\n ? !this.light\n : Themeable.options.computed.isDark.call(this)\n },\n styles (): object {\n if (this.absolute || !this.app) return {}\n\n const {\n bar,\n bottom,\n footer,\n insetFooter,\n left,\n right,\n top,\n } = this.$vuetify.application\n\n return {\n paddingBottom: convertToUnit(bottom + footer + insetFooter),\n paddingLeft: convertToUnit(left),\n paddingRight: convertToUnit(right),\n paddingTop: convertToUnit(bar + top),\n }\n },\n },\n\n watch: {\n isActive: 'setTimeout',\n timeout: 'setTimeout',\n },\n\n mounted () {\n if (this.isActive) this.setTimeout()\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('auto-height')) {\n removed('auto-height', this)\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line eqeqeq\n if (this.timeout == 0) {\n deprecate('timeout=\"0\"', '-1', this)\n }\n },\n\n methods: {\n genActions () {\n return this.$createElement('div', {\n staticClass: 'v-snack__action ',\n }, [\n getSlot(this, 'action', {\n attrs: { class: 'v-snack__btn' },\n }),\n ])\n },\n genContent () {\n return this.$createElement('div', {\n staticClass: 'v-snack__content',\n class: {\n [this.contentClass]: true,\n },\n attrs: {\n role: 'status',\n 'aria-live': 'polite',\n },\n }, [getSlot(this)])\n },\n genWrapper () {\n const setColor = this.hasBackground\n ? this.setBackgroundColor\n : this.setTextColor\n\n const data = setColor(this.color, {\n staticClass: 'v-snack__wrapper',\n class: VSheet.options.computed.classes.call(this),\n style: VSheet.options.computed.styles.call(this),\n directives: [{\n name: 'show',\n value: this.isActive,\n }],\n on: {\n pointerenter: () => window.clearTimeout(this.activeTimeout),\n pointerleave: this.setTimeout,\n },\n })\n\n return this.$createElement('div', data, [\n this.genContent(),\n this.genActions(),\n ])\n },\n genTransition () {\n return this.$createElement('transition', {\n props: { name: this.transition },\n }, [this.genWrapper()])\n },\n setTimeout () {\n window.clearTimeout(this.activeTimeout)\n\n const timeout = Number(this.timeout)\n\n if (\n !this.isActive ||\n // TODO: remove 0 in v3\n [0, -1].includes(timeout)\n ) {\n return\n }\n\n this.activeTimeout = window.setTimeout(() => {\n this.isActive = false\n }, timeout)\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-snack',\n class: this.classes,\n style: this.styles,\n }, [\n this.transition !== false\n ? this.genTransition()\n : this.genWrapper(),\n ])\n },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('v-toolbar',{staticClass:\"breadcrumbs\",attrs:{\"fixed\":\"\"}},[_c('swBreadCrumbs',{attrs:{\"breadcrumbs\":_vm.breadcrumbs},on:{\"callback\":_vm.activate}}),_c('v-spacer'),(_vm.notPrefiltered && !_vm.isSWAdmin)?_c('div',[_c('v-btn',{staticClass:\"info mr-2\",on:{\"click\":function($event){return _vm.$refs.swSkuEditorPrefilter.addFilter()}}},[_c('v-icon',[_vm._v(\"mdi-filter-plus\")]),(_vm.$vuetify.breakpoint.smAndUp)?_c('div',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.swT('add_filter')))]):_vm._e()],1),_c('v-btn',{staticClass:\"info\",attrs:{\"data-test\":\"showSkus\",\"disabled\":!_vm.selectionHasBeenMade},on:{\"click\":function($event){return _vm.reset()}}},[_c('v-icon',[_vm._v(\"mdi-eye\")]),(_vm.$vuetify.breakpoint.smAndUp)?_c('div',{staticClass:\"ml-2\"},[_vm._v(_vm._s(_vm.swT('show_skus')))]):_vm._e()],1)],1):_c('div',{staticClass:\"d-flex\"},[(_vm.showImageSync)?_c('swButton',{attrs:{\"data-test\":\"btn-image-sync\",\"icon\":\"mdi-image-sync\",\"tooltip\":_vm.swT('imageSync')},on:{\"click\":_vm.openBindImageMenu}}):_vm._e(),_c('v-menu',{attrs:{\"offset-y\":\"\",\"transition\":\"slide-y-transition\",\"position-x\":_vm.bindImageMenu.x,\"position-y\":_vm.bindImageMenu.y,\"absolute\":\"\"},model:{value:(_vm.bindImageMenu.active),callback:function ($$v) {_vm.$set(_vm.bindImageMenu, \"active\", $$v)},expression:\"bindImageMenu.active\"}},_vm._l((['articleCode', 'articleCode_colorCode', 'articleCode_and_colorCode', 'articleDescription_and_color', 'articleCode_and_colorDescription', 'barcode']),function(strategy){return _c('v-list',{key:strategy},[_c('v-list-item',{attrs:{\"data-test\":`menu-bind-image-${strategy}`},on:{\"click\":function($event){return _vm.bindImages(strategy)}}},[_vm._v(\" \"+_vm._s(_vm.swT(`strategy_${strategy.toLowerCase()}`))+\" \")])],1)}),1),(_vm.showFPSync)?_c('swButton',{attrs:{\"data-test\":\"btn-foxpro-sync\",\"icon\":\"mdi-gitlab\",\"tooltip\":_vm.swT('foxproSync')},on:{\"click\":_vm.fpSync}}):_vm._e(),(_vm.dataProviders.length > 1)?_c('span',[(_vm.showCloudSync)?_c('swButton',{attrs:{\"data-test\":\"btn-cloud-sync\",\"icon\":\"mdi-cloud-sync\",\"tooltip\":_vm.swT('cloudSync')},on:{\"click\":_vm.openCloudSyncMenu}}):_vm._e(),_c('v-menu',{attrs:{\"offset-y\":\"\",\"transition\":\"slide-y-transition\",\"position-x\":_vm.cloudSyncMenu.x,\"position-y\":_vm.cloudSyncMenu.y,\"absolute\":\"\"},model:{value:(_vm.cloudSyncMenu.active),callback:function ($$v) {_vm.$set(_vm.cloudSyncMenu, \"active\", $$v)},expression:\"cloudSyncMenu.active\"}},_vm._l((_vm.dataProviders),function(dataProvider){return _c('v-list',{key:dataProvider.name},[_c('v-list-item',{attrs:{\"data-test\":`menu-cloud-sync-${dataProvider.name}`},on:{\"click\":function($event){return _vm.cloudSync(dataProvider.name)}}},[_vm._v(\" \"+_vm._s(_vm.swT(`dataprovider-${dataProvider.name}`))+\" \"+_vm._s(_vm.formatDate(dataProvider.lasttime))+\" \")])],1)}),1)],1):_c('span',[(_vm.showCloudSync)?_c('swButton',{attrs:{\"data-test\":\"btn-cloud-sync\",\"icon\":\"mdi-cloud-sync\",\"tooltip\":_vm.swT('cloudSync')},on:{\"click\":function($event){return _vm.cloudSync(_vm.dataProviders[0].name)}}}):_vm._e()],1),_c('v-btn',{staticClass:\"mx-1 px-1\",attrs:{\"data-test\":\"addSku\",\"dark\":\"\",\"large\":\"\",\"color\":\"success\"},on:{\"click\":_vm.addNewSku}},[_vm._v(\" \"+_vm._s(_vm.swT('new'))+\" \")]),(_vm.$vuetify.breakpoint.mdAndUp)?_c('v-btn',{staticClass:\"mx-1 px-1\",attrs:{\"data-test\":\"btn-import-xls\",\"loading\":_vm.$store.state.importBusy,\"dark\":\"\",\"large\":\"\",\"color\":\"info\"},on:{\"click\":_vm.importXLSX}},[_c('v-icon',[_vm._v(\" mdi-microsoft-excel \")]),_vm._v(\" \"+_vm._s(_vm.swT('import'))+\" \")],1):_vm._e(),(_vm.$vuetify.breakpoint.mdAndUp)?_c('v-btn',{staticClass:\"mx-1 px-1\",attrs:{\"data-test\":\"btn-export\",\"loading\":_vm.$store.state.exportBusy,\"dark\":\"\",\"large\":\"\",\"color\":\"info\"},on:{\"click\":_vm.openExportMenu}},[_c('v-icon',[_vm._v(\" mdi-export \")]),_vm._v(\" \"+_vm._s(_vm.swT('export'))+\" \")],1):_vm._e(),_c('v-menu',{attrs:{\"offset-y\":\"\",\"transition\":\"slide-y-transition\",\"position-x\":_vm.exportMenu.x,\"position-y\":_vm.exportMenu.y,\"absolute\":\"\"},model:{value:(_vm.exportMenu.active),callback:function ($$v) {_vm.$set(_vm.exportMenu, \"active\", $$v)},expression:\"exportMenu.active\"}},_vm._l((_vm.exportOptions),function(exportOption){return _c('v-list',{key:exportOption.name},[_c('v-list-item',{attrs:{\"data-test\":`export--${exportOption.name}`},on:{\"click\":function($event){const fun = exportOption.function\n fun()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\" \"+_vm._s(exportOption.icon)+\" \")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.swT(`${exportOption.name}`))+\" \")])],1)],1)}),1),(_vm.showImportHistory && _vm.$vuetify.breakpoint.mdAndUp)?_c('v-btn',{staticClass:\"mx-1 px-1\",attrs:{\"data-test\":\"btn-import\",\"loading\":_vm.$store.state.importBusy,\"dark\":\"\",\"large\":\"\",\"color\":\"info\"},on:{\"click\":_vm.openSkuImportHistoryDialog}},[_c('v-icon',[_vm._v(\" mdi-folder-open \")]),_vm._v(\" \"+_vm._s(_vm.swT('history'))+\" \")],1):_vm._e()],1)],1),(_vm.notPrefiltered && !_vm.isSWAdmin)?_c('swSkuEditorPrefilter',{ref:\"swSkuEditorPrefilter\",on:{\"sku-editor-prefiltered\":function($event){return _vm.prefilter($event)}}}):_c('v-container',[_c('keep-alive',[_c('swSkuEditor',{attrs:{\"skus\":_vm.skus,\"advanced-commands\":!_vm.$route.query.filter,\"masterdata\":_vm.isMasterData,\"brand\":_vm.$route.query.brand,\"ensure-fields\":_vm.fields},on:{\"save\":_vm.save,\"cancel\":_vm.reset,\"addSku\":_vm.addSku,\"updateSku\":_vm.updateSku}})],1),_c('v-snackbar',{attrs:{\"vertical\":true,\"min-width\":\"70%\",\"timeout\":\"-1\",\"shaped\":\"\",\"outlined\":\"\",\"multi-line\":\"\"},scopedSlots:_vm._u([{key:\"action\",fn:function({ attrs }){return [_c('v-btn',_vm._b({attrs:{\"color\":\"success\",\"text\":\"\"},on:{\"click\":function($event){_vm.snackbar = false}}},'v-btn',attrs,false),[_vm._v(\" Close \")])]}}]),model:{value:(_vm.snackbar),callback:function ($$v) {_vm.snackbar=$$v},expression:\"snackbar\"}},[_c('pre',{staticClass:\"green--text font-weight-bold\"},[_vm._v(_vm._s(_vm.errorMsg))])])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { hashBrand } from '@softwear/latestcollectioncore'\n\nconst lower = (s) => s.toLowerCase()\nconst upper = (s) => s.toUpperCase()\nconst empty = (s) => s == null || s == undefined || s == ''\n\nconst filtrexOptions = {\n extraFunctions: { lower, upper, hashBrand, empty },\n}\n\nexport default {\n filtrexOptions,\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d-flex justify-center mt-2\"},[_c('div',{staticClass:\"px-4\",style:(_vm.$vuetify.breakpoint.mdAndUp ? 'max-width:820px' : '')},[_c('v-card-title',{staticClass:\"pl-0\",staticStyle:{\"word-break\":\"break-word\"}},[_vm._v(\" \"+_vm._s(_vm.swT('filter-skus'))+\" \")]),_c('v-row',{staticClass:\"d-flex\"},_vm._l((_vm.filterTerms),function(filter){return _c('v-col',{key:filter.field,attrs:{\"cols\":\"12\"}},[(filter.field)?_c('span',[_c('v-autocomplete',{attrs:{\"data-test\":filter.value,\"clearable\":\"\",\"dense\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"hide-selected\":\"\",\"multiple\":\"\",\"small-chips\":\"\",\"deletable-chips\":\"\",\"items\":_vm.getItems(filter.field),\"label\":_vm.swT(_vm.fieldTranslationKey(filter.field))},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [_c('v-icon',{staticStyle:{\"cursor\":\"pointer\"},attrs:{\"color\":filter.negate ? 'error' : 'primary'},on:{\"click\":function($event){filter.negate = !filter.negate}}},[_vm._v(\" \"+_vm._s(filter.negate ? 'mdi-not-equal-variant' : 'mdi-equal')+\" \")])]},proxy:true}],null,true),model:{value:(filter.selected),callback:function ($$v) {_vm.$set(filter, \"selected\", $$v)},expression:\"filter.selected\"}})],1):_c('span',[_c('v-select',{attrs:{\"data-test\":\"selectFilterField\",\"dense\":\"\",\"clearable\":\"\",\"outlined\":\"\",\"hide-details\":\"\",\"items\":_vm.filterTermChoices,\"label\":_vm.swT('select_field')},model:{value:(filter.field),callback:function ($$v) {_vm.$set(filter, \"field\", $$v)},expression:\"filter.field\"}})],1)])}),1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"d-flex justify-center mt-2\">\n <div :style=\"$vuetify.breakpoint.mdAndUp ? 'max-width:820px' : ''\" class=\"px-4\">\n <v-card-title class=\"pl-0\" style=\"word-break: break-word;\">\n {{ swT('filter-skus') }}\n </v-card-title>\n <v-row class=\"d-flex\">\n <v-col v-for=\"filter of filterTerms\" :key=\"filter.field\" cols=\"12\">\n <span v-if=\"filter.field\">\n <v-autocomplete\n v-model=\"filter.selected\"\n :data-test=\"filter.value\"\n clearable\n dense\n outlined\n hide-details\n hide-selected\n multiple\n small-chips\n deletable-chips\n :items=\"getItems(filter.field)\"\n :label=\"swT(fieldTranslationKey(filter.field))\"\n >\n <template v-slot:prepend-inner>\n <v-icon :color=\"filter.negate ? 'error' : 'primary'\" style=\"cursor:pointer\" @click=\"filter.negate = !filter.negate\">\n {{ filter.negate ? 'mdi-not-equal-variant' : 'mdi-equal' }}\n </v-icon>\n </template>\n </v-autocomplete>\n </span>\n\n <span v-else>\n <v-select v-model=\"filter.field\" data-test=\"selectFilterField\" dense clearable outlined hide-details :items=\"filterTermChoices\" :label=\"swT('select_field')\"></v-select>\n </span>\n </v-col>\n </v-row>\n </div>\n </div>\n</template>\n\n<script>\nimport { swT } from '@/functions/i18n'\nimport skuEditorFunctions from '../functions/skuEditorFunctions'\nexport default {\n props: ['value'],\n data() {\n return {\n swT,\n filterTerms: [\n { field: 'collection', selected: [], negate: false },\n { field: 'brand', selected: [], negate: false },\n { field: 'articleGroup', selected: [], negate: false },\n ],\n }\n },\n computed: {\n filterTermChoices() {\n const fields = ['articleCodeSupplier', 'articleCode', 'articleDescription', 'size', 'colorFamily', 'quickPick']\n this.$store.state.activeConfig.products.activeAttributes.value.forEach((a) => fields.push('_' + a))\n return fields.map((f) => ({ value: f, text: swT(this.fieldTranslationKey(f)) })).filter((f) => !this.filterTerms.find((t) => t.field == f.value))\n },\n },\n watch: {\n filterTerms: {\n handler() {\n this.$emit('sku-editor-prefiltered', this.filterTerms)\n },\n deep: true,\n immediate: true,\n },\n },\n methods: {\n addFilter() {\n this.filterTerms.push({ field: '', selected: [], negate: false, beta: true })\n },\n fieldTranslationKey(field) {\n if (field.substring(0, 1) == '_') return field.substring(1)\n return 'sku.' + field\n },\n getItems(field) {\n return ['( Blanks )'].concat(skuEditorFunctions.getItems(field))\n },\n },\n}\n</script>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swSkuEditorPrefilter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swSkuEditorPrefilter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./swSkuEditorPrefilter.vue?vue&type=template&id=6c288ca6\"\nimport script from \"./swSkuEditorPrefilter.vue?vue&type=script&lang=js\"\nexport * from \"./swSkuEditorPrefilter.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <div>\n <v-toolbar fixed class=\"breadcrumbs\">\n <swBreadCrumbs :breadcrumbs=\"breadcrumbs\" @callback=\"activate\" />\n\n <v-spacer></v-spacer>\n <div v-if=\"notPrefiltered && !isSWAdmin\">\n <v-btn class=\"info mr-2\" @click=\"$refs.swSkuEditorPrefilter.addFilter()\">\n <v-icon>mdi-filter-plus</v-icon>\n <div v-if=\"$vuetify.breakpoint.smAndUp\" class=\"ml-2\">{{ swT('add_filter') }}</div>\n </v-btn>\n <v-btn class=\"info\" data-test=\"showSkus\" :disabled=\"!selectionHasBeenMade\" @click=\"reset()\">\n <v-icon>mdi-eye</v-icon>\n <div v-if=\"$vuetify.breakpoint.smAndUp\" class=\"ml-2\">{{ swT('show_skus') }}</div>\n </v-btn>\n </div>\n <div v-else class=\"d-flex\">\n <swButton v-if=\"showImageSync\" data-test=\"btn-image-sync\" icon=\"mdi-image-sync\" :tooltip=\"swT('imageSync')\" @click=\"openBindImageMenu\" />\n <v-menu v-model=\"bindImageMenu.active\" offset-y transition=\"slide-y-transition\" :position-x=\"bindImageMenu.x\" :position-y=\"bindImageMenu.y\" absolute>\n <v-list\n v-for=\"strategy of ['articleCode', 'articleCode_colorCode', 'articleCode_and_colorCode', 'articleDescription_and_color', 'articleCode_and_colorDescription', 'barcode']\"\n :key=\"strategy\"\n >\n <v-list-item :data-test=\"`menu-bind-image-${strategy}`\" @click=\"bindImages(strategy)\">\n {{ swT(`strategy_${strategy.toLowerCase()}`) }}\n </v-list-item>\n </v-list>\n </v-menu>\n <swButton v-if=\"showFPSync\" data-test=\"btn-foxpro-sync\" icon=\"mdi-gitlab\" :tooltip=\"swT('foxproSync')\" @click=\"fpSync\" />\n <span v-if=\"dataProviders.length > 1\">\n <swButton v-if=\"showCloudSync\" data-test=\"btn-cloud-sync\" icon=\"mdi-cloud-sync\" :tooltip=\"swT('cloudSync')\" @click=\"openCloudSyncMenu\" />\n <v-menu v-model=\"cloudSyncMenu.active\" offset-y transition=\"slide-y-transition\" :position-x=\"cloudSyncMenu.x\" :position-y=\"cloudSyncMenu.y\" absolute>\n <v-list v-for=\"dataProvider of dataProviders\" :key=\"dataProvider.name\">\n <v-list-item :data-test=\"`menu-cloud-sync-${dataProvider.name}`\" @click=\"cloudSync(dataProvider.name)\">\n {{ swT(`dataprovider-${dataProvider.name}`) }} {{ formatDate(dataProvider.lasttime) }}\n </v-list-item>\n </v-list>\n </v-menu>\n </span>\n <span v-else>\n <swButton v-if=\"showCloudSync\" data-test=\"btn-cloud-sync\" icon=\"mdi-cloud-sync\" :tooltip=\"swT('cloudSync')\" @click=\"cloudSync(dataProviders[0].name)\" />\n </span>\n <v-btn data-test=\"addSku\" dark large color=\"success\" class=\"mx-1 px-1\" @click=\"addNewSku\">\n {{ swT('new') }}\n </v-btn>\n <v-btn v-if=\"$vuetify.breakpoint.mdAndUp\" data-test=\"btn-import-xls\" class=\"mx-1 px-1\" :loading=\"$store.state.importBusy\" dark large color=\"info\" @click=\"importXLSX\">\n <v-icon>\n mdi-microsoft-excel\n </v-icon>\n {{ swT('import') }}\n </v-btn>\n <v-btn v-if=\"$vuetify.breakpoint.mdAndUp\" data-test=\"btn-export\" class=\"mx-1 px-1\" :loading=\"$store.state.exportBusy\" dark large color=\"info\" @click=\"openExportMenu\">\n <v-icon>\n mdi-export\n </v-icon>\n {{ swT('export') }}\n </v-btn>\n <v-menu v-model=\"exportMenu.active\" offset-y transition=\"slide-y-transition\" :position-x=\"exportMenu.x\" :position-y=\"exportMenu.y\" absolute>\n <v-list v-for=\"exportOption of exportOptions\" :key=\"exportOption.name\">\n <v-list-item\n :data-test=\"`export--${exportOption.name}`\"\n @click=\"\n const fun = exportOption.function\n fun()\n \"\n >\n <v-list-item-icon>\n <v-icon>\n {{ exportOption.icon }}\n </v-icon>\n </v-list-item-icon>\n <v-list-item-title>\n {{ swT(`${exportOption.name}`) }}\n </v-list-item-title>\n </v-list-item>\n </v-list>\n </v-menu>\n <v-btn\n v-if=\"showImportHistory && $vuetify.breakpoint.mdAndUp\"\n data-test=\"btn-import\"\n class=\"mx-1 px-1\"\n :loading=\"$store.state.importBusy\"\n dark\n large\n color=\"info\"\n @click=\"openSkuImportHistoryDialog\"\n >\n <v-icon>\n mdi-folder-open\n </v-icon>\n {{ swT('history') }}\n </v-btn>\n </div>\n </v-toolbar>\n\n <swSkuEditorPrefilter v-if=\"notPrefiltered && !isSWAdmin\" ref=\"swSkuEditorPrefilter\" @sku-editor-prefiltered=\"prefilter($event)\" />\n\n <v-container v-else>\n <keep-alive>\n <swSkuEditor\n :skus=\"skus\"\n :advanced-commands=\"!$route.query.filter\"\n :masterdata=\"isMasterData\"\n :brand=\"$route.query.brand\"\n :ensure-fields=\"fields\"\n @save=\"save\"\n @cancel=\"reset\"\n @addSku=\"addSku\"\n @updateSku=\"updateSku\"\n />\n </keep-alive>\n\n <v-snackbar v-model=\"snackbar\" :vertical=\"true\" min-width=\"70%\" timeout=\"-1\" shaped outlined multi-line>\n <pre class=\"green--text font-weight-bold\">{{ errorMsg }}</pre>\n <template v-slot:action=\"{ attrs }\">\n <v-btn color=\"success\" text v-bind=\"attrs\" @click=\"snackbar = false\">\n Close\n </v-btn>\n </template>\n </v-snackbar>\n </v-container>\n </div>\n</template>\n\n<script>\nimport filtrexOptions from '../functions/filtrexOptions'\nimport globalStore from '../store/globalStore'\nimport productFunctions from '../functions/products'\nimport skuEditorFunctions from '../functions/skuEditorFunctions'\nimport tools from '../functions/tools'\nimport userFunctions from '../functions/users'\n\nimport { compileExpression } from 'filtrex'\nimport { deepCopy, hashBrand } from '@softwear/latestcollectioncore'\nimport { eventBus } from '../main'\nimport { format } from 'date-fns'\nimport { markRaw } from 'vue'\nimport { swT } from '@/functions/i18n'\n\nimport swBreadCrumbs from '../components/swBreadCrumbs.vue'\nimport swButton from '../components/swButton.vue'\nimport swSkuEditor from '../components/swSkuEditor.vue'\nimport swSkuEditorPrefilter from '../components/swSkuEditorPrefilter.vue'\n\nexport default {\n name: 'SkuEditor',\n components: {\n swBreadCrumbs,\n swButton,\n swSkuEditor,\n swSkuEditorPrefilter,\n },\n props: ['filter', 'redirect'],\n data() {\n return {\n swT,\n bindImageMenu: { active: false, x: 0, y: 0 },\n cloudSyncMenu: { active: false, x: 0, y: 0 },\n exportMenu: { active: false, x: 0, y: 0 },\n skus: [],\n fields: [],\n errorMsg: '',\n snackbar: false,\n activeFilter: '',\n localProductGroupFilterEquals: true,\n filterTerms: [],\n }\n },\n computed: {\n showFPSync() {\n return userFunctions.hasRole(this.$store.getters.roles, 'impersonator') && this.skus.length > 0\n },\n selectionHasBeenMade() {\n return this.filterTerms.some((f) => f.selected.length > 0)\n },\n notPrefiltered() {\n return !this.filterExpressionFromProp && !this.$route.query.eventLog && !this.activeFilter && this.$route.path == '/skueditor'\n },\n breadcrumbs() {\n const crumb1Text = swT(this.$route.query.masterdata == 'true' ? 'masterdata' : 'skueditor')\n const brand = this.brandFromRoute()\n\n if (this.$route.query.from == 'skuEditor') {\n // we assume there is a brand and an articleCode can be obtained from a filtrex expression\n const articleCode = this.$route.query.filter.split('\"')[1]\n return [\n { text: crumb1Text, disabled: false, to: '/skueditor' },\n { text: `${brand.name} / ${articleCode}`, disabled: false, to: `/products?brandId=${hashBrand(brand.name)}` },\n ]\n }\n\n if (brand) {\n return [\n { text: crumb1Text, disabled: false, to: '/skueditor' },\n { text: brand.name, disabled: true },\n ]\n }\n return [{ text: crumb1Text, disabled: false, callback: true }]\n },\n showImportHistory() {\n return this.isAdmin && !this.isMasterData\n },\n showImageSync() {\n return this.isAdmin && this.skus.length > 0 && this.$route?.query.brand\n },\n isMasterData() {\n return this.$route.query.masterdata == 'true'\n },\n isAdmin() {\n return userFunctions.hasRole(this.$store.getters.roles, 'sw,products-dataprovider_admin')\n },\n isSWAdmin() {\n return userFunctions.hasRole(this.$store.getters.roles, 'sw')\n },\n sourceCollection() {\n return !(this.$route.query.masterdata == 'true') && this.isAdmin ? 'selectedbrand' : 'sku'\n },\n myCollections() {\n return tools.getUniqueValues(globalStore.getLatestCollectionArray('sku').map((s) => s.collection)).sort()\n },\n myBrands() {\n return tools.getUniqueValues(globalStore.getLatestCollectionArray('sku').map((s) => s.brand)).sort()\n },\n myProductGroups() {\n return tools.getUniqueValues(globalStore.getLatestCollectionArray('sku').map((s) => s.articleGroup)).sort()\n },\n filterExpressionFromProp() {\n return this.filter\n },\n dataProviders() {\n const brand = this.brandFromRoute()\n if (!brand) return []\n const availableDataProvideres = brand.count > 0 ? [{ name: 'latestcollection', lasttime: brand.lasttime }] : []\n if (brand.dataProviders)\n Object.keys(brand.dataProviders).forEach((key) => {\n if (brand.dataProviders[key].count > 0 && userFunctions.hasDataProviderSubscription(key, this.$store.state))\n availableDataProvideres.push({ name: key, lasttime: brand.dataProviders[key].lasttime })\n })\n return availableDataProvideres\n },\n exportOptions() {\n const options = []\n options.push({ name: 'xls', icon: 'mdi-microsoft-excel', function: this.exportXLSX })\n options.push({ name: 'json', icon: 'mdi-code-json', function: this.exportJSON })\n return options\n },\n showCloudSync() {\n return this.dataProviders.length > 0 && !this.isAdmin && this.skus.length > 0 && this.$route.query.brand\n },\n },\n watch: {\n showImageSync() {\n return this.isAdmin && this.skus.length > 0 && this.$route?.query.brand\n },\n },\n beforeMount() {\n if (this.isSWAdmin && !this.$route.query.brand) {\n this.$router.push({ query: { masterdata: 'true', filter: 'brand==\"masterdata\"' } })\n }\n },\n async created() {\n this.$store.dispatch('clearFilter')\n await this.$store.state.skuPromise\n\n eventBus.$on('resetSkuEditor', this.activate)\n\n this.$watch('$store.state.filter', this.reset)\n this.$watch(\n 'notPrefiltered',\n function() {\n this.$store.state.hideMainFilter = this.notPrefiltered\n },\n { immediate: true }\n )\n this.$store.state.mainFilterPrompt = swT('fuzzy_search')\n this.$store.state.hideMainFilter = true\n await this.reset()\n },\n destroyed() {\n eventBus.$off('resetSkuEditor')\n },\n async activated() {\n this.$store.state.hideMainFilter = true\n await this.activate()\n },\n async deactivated() {\n this.$store.state.hideMainFilter = false\n },\n methods: {\n addNewSku() {\n eventBus.$emit('openChooseNewSkuMethod')\n },\n prefilter(payload) {\n this.filterTerms = payload\n },\n fieldTranslationKey(field) {\n if (field.substring(0, 1) == '_') return field.substring(1)\n return 'sku.' + field\n },\n getItems(field) {\n return ['( Blanks )'].concat(skuEditorFunctions.getItems(field))\n },\n async activate() {\n this.$store.dispatch('clearFilter')\n this.filterTerms = []\n await this.reset()\n },\n brandFromRoute() {\n // const brandId = this.filter?.replace('hashBrand(brand)==', '').replaceAll('\"', '')\n const brandId = this.$route.query.brand\n return productFunctions.getBrandSettings(brandId, this.$store.state.brands)\n\n // return this.$store.state.brands.find((brand) => brand.collection == brandId)\n },\n formatDate(date) {\n return format(date, 'yyyy-MM-dd')\n },\n openBindImageMenu(e) {\n this.bindImageMenu.active = false\n this.bindImageMenu.x = e.clientX\n this.bindImageMenu.y = e.clientY + 20\n this.$nextTick(() => {\n this.bindImageMenu.active = true\n })\n },\n openCloudSyncMenu(e) {\n this.cloudSyncMenu.active = false\n this.cloudSyncMenu.x = e.clientX\n this.cloudSyncMenu.y = e.clientY + 20\n this.$nextTick(() => {\n this.cloudSyncMenu.active = true\n })\n },\n openExportMenu(e) {\n this.exportMenu.active = false\n this.exportMenu.x = e.clientX\n this.exportMenu.y = e.clientY + 20\n this.$nextTick(() => {\n this.exportMenu.active = true\n })\n },\n importXLSX() {\n eventBus.$emit('importXLSX')\n },\n openSkuImportHistoryDialog() {\n eventBus.$emit('openSkuImportHistory')\n },\n cloudSync(dataProvider) {\n eventBus.$emit('cloudSync', dataProvider == 'latestcollection' ? {} : { dataProvider })\n },\n bindImages(strategy) {\n eventBus.$emit('bindImages', strategy)\n },\n fpSync() {\n eventBus.$emit('fpSync')\n },\n exportXLSX() {\n eventBus.$emit('exportXLSX')\n },\n exportJSON() {\n eventBus.$emit('exportJSON')\n },\n addSku(sku) {\n this.skus.push(sku)\n },\n updateSku(sku) {\n const index = this.skus.findIndex((s) => s.barcode == sku.barcode)\n this.skus[index] = sku\n },\n removeIrrelevantAttributes(sku) {\n delete sku.margin\n delete sku.calculation\n delete sku.__modified\n if (sku.id.substring(0, 4) != 'tmp-') return\n\n // Remove Tmp ids\n delete sku.id\n delete sku.barcode\n },\n async save(updatedSkus) {\n this.$store.state.loading = true\n eventBus.$emit('resetSwSkuEditor')\n const collectionToSave = globalStore.getLatestCollectionAPI(this.sourceCollection)\n const skusToUpdate = Object.keys(updatedSkus).map((id) => updatedSkus[id])\n skusToUpdate.forEach(this.removeIrrelevantAttributes)\n\n await this.$store.dispatch('updateObjects', {\n api: collectionToSave,\n data: skusToUpdate,\n auditHeaders: {\n 'x-transaction-audit-source': 'Sku editor',\n },\n })\n this.$store.dispatch('computeUniqueSkuProperties', globalStore.getLatestCollectionArray(this.sourceCollection))\n // Reset the sku editor to show the barcode of the added sku if the barcode is auto generated\n this.reset()\n this.$store.state.loading = false\n },\n async deriveSkusFromEvent(eventLogId) {\n await this.$store.dispatch('ensureTenantCollection', 'eventlog')\n const event = (await globalStore.getLatestCollectionObject('eventlog'))[eventLogId]\n if (event.payload.command != 'SkuEditor') {\n this.$store.dispatch('raiseAlert', {\n header: 'unknownOrWrongId',\n type: 'error',\n timeout: 5000,\n })\n return\n }\n const skuIndex = event.payload.rows.reduce((agg, el) => {\n agg[el.id] = true\n return agg\n }, {})\n\n this.skus = deepCopy(globalStore.getLatestCollectionArray(this.sourceCollection).filter((sku) => skuIndex[sku.id]))\n this.fields = event.payload.context.selectedGroups.filter((g) => g.substring(0, 4) == 'sku.').map((g) => g.substring(4))\n },\n buildActiveFilterExpression() {\n if (this.filterExpressionFromProp) return this.filterExpressionFromProp\n if (this.$route.query.brand) {\n const brand = this.brandFromRoute() || { collection: this.$route.query.brand }\n // if (brand) return `hashBrand(brand)==\"${brand.collection}\"`\n let brandHashes\n if (!brand.aliases) brandHashes = [brand.collection]\n else brandHashes = brand.aliases.concat([brand.collection])\n const list = brandHashes.map((a) => `\"${a}\"`).join(',')\n if (brand) return `(BRANDHASH in (${list}) or hashBrand(brand) in (${list}))`\n }\n let filterExpression = ''\n this.filterTerms.forEach((f) => {\n if (f.selected.length > 0) {\n if (filterExpression != '') filterExpression = filterExpression + ' and '\n if (f.selected.includes('( Blanks )')) {\n if (f.negate) {\n filterExpression = filterExpression + `not empty( '${f.field}' )`\n return\n }\n filterExpression = filterExpression + `empty( '${f.field}' )`\n return\n }\n const operator = f.negate ? 'not in' : 'in'\n filterExpression = filterExpression + `('${f.field}' ${operator} (${f.selected.map((x) => '\"' + x + '\"').join(',')}))`\n }\n })\n return filterExpression\n },\n async reset() {\n if (this._inactive) return\n this.skus = []\n this.activeFilter = ''\n this.errorMsg = ''\n this.snackbar = false\n eventBus.$emit('resetSwSkuEditor')\n this._computedWatchers.dataProviders.run()\n this._computedWatchers.myCollections.run()\n this._computedWatchers.myBrands.run()\n this._computedWatchers.myProductGroups.run()\n\n const eventLogId = this.$route.query?.eventLog\n if (eventLogId) return await this.deriveSkusFromEvent(eventLogId)\n this.activeFilter = this.buildActiveFilterExpression()\n this.deriveSkusFromFilter()\n // When deeplinking into this route with a hashBrand filter, the computed properties cannot yet resolve. Run it again.\n this.$store.state.hideMainFilter = this.notPrefiltered\n },\n deriveSkusFromFilter() {\n try {\n const fuzzySearchString = this.$store.state.filter?.toLowerCase() || ''\n if (!this.activeFilter && !fuzzySearchString) return\n const filtrexCallbackFunction = this.activeFilter ? compileExpression(this.activeFilter, filtrexOptions.filtrexOptions) : () => true\n const fuzzySearchFunction = fuzzySearchString\n ? (sku) => Object.values(sku).find((value) => (typeof value == 'string' ? value.toLowerCase().includes(fuzzySearchString) : ('' + value).includes(fuzzySearchString)))\n : () => true\n this.skus = []\n this.$store.state.loading = true\n setTimeout(\n () => {\n this.skus = markRaw(\n deepCopy(\n globalStore\n .getLatestCollectionArray(this.sourceCollection)\n .filter((sku) => filtrexCallbackFunction(sku))\n .filter((sku) => fuzzySearchFunction(sku))\n )\n )\n this.$store.state.loading = false\n },\n process.env.NODE_ENV === 'development' ? 10 : 1000\n )\n } catch (e) {\n this.errorMsg = e.message\n this.snackbar = true\n }\n },\n },\n}\n</script>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SkuEditor.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SkuEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SkuEditor.vue?vue&type=template&id=952311be\"\nimport script from \"./SkuEditor.vue?vue&type=script&lang=js\"\nexport * from \"./SkuEditor.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","module.exports = __webpack_public_path__ + \"img/succeed.79a8cd1e.gif\";","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.at\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findlast\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n","import globalStore from '../store/globalStore'\nimport { EnumI } from '@/types/skuEditor'\nimport store from '../store'\nimport { format } from 'date-fns'\n\n// In the case of a field which has items, this method will attempt to retrieve the items\n// The items are there because they make sense in the UI therefore they must meet the UI's needs\nfunction getItems(field: string): string[] | EnumI[] {\n return globalStore.getItems(field, store)\n}\n\nconst campaignIdsToNames = function(keys: string): string {\n if (!keys) return ''\n const campaigns = globalStore.getLatestCollectionObject('campaign')\n return keys\n .split(',')\n .map((key) => campaigns[key]?.campaignName)\n .join(',')\n}\n\nconst countImages = function(f: string): number {\n if (f.length === 0) return 0\n const images = f.split(',').length || 0\n return images\n}\nconst formatDate = function(d: number): string {\n if (!d) return ''\n return format(d, 'yy-MM-dd HH:mm')\n}\n\nexport default { getItems, campaignIdsToNames, countImages, formatDate }\n","// Styles\nimport './VItem.sass'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport Vue from 'vue'\nimport { VNode, ScopedSlotChildren } from 'vue/types/vnode'\n\n/* @vue/component */\nexport const BaseItem = Vue.extend({\n props: {\n activeClass: String,\n value: {\n required: false,\n },\n disabled: Boolean,\n },\n\n data: () => ({\n isActive: false,\n }),\n\n methods: {\n toggle () {\n this.isActive = !this.isActive\n },\n },\n\n render (): VNode {\n if (!this.$scopedSlots.default) {\n consoleWarn('v-item is missing a default scopedSlot', this)\n\n return null as any\n }\n\n let element: VNode | ScopedSlotChildren\n\n /* istanbul ignore else */\n if (this.$scopedSlots.default) {\n element = this.$scopedSlots.default({\n active: this.isActive,\n toggle: this.toggle,\n })\n }\n\n if (Array.isArray(element) && element.length === 1) {\n element = element[0]\n }\n\n if (!element || Array.isArray(element) || !element.tag) {\n consoleWarn('v-item should only contain a single element', this)\n\n return element as any\n }\n\n element.data = this._b(element.data || {}, element.tag!, {\n class: {\n [this.activeClass]: this.isActive,\n 'v-item--disabled': this.disabled,\n },\n })\n\n if (this.disabled) {\n element.data.attrs = { ...element.data.attrs, tabindex: -1 }\n }\n\n return element\n },\n})\n\nexport default mixins(\n BaseItem,\n GroupableFactory('itemGroup', 'v-item', 'v-item-group')\n).extend({\n name: 'v-item',\n})\n","// Extensions\nimport { BaseItem } from '../VItemGroup/VItem'\n\n// Mixins\nimport { factory as GroupableFactory } from '../../mixins/groupable'\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n BaseItem,\n GroupableFactory('slideGroup')\n /* @vue/component */\n).extend({\n name: 'v-slide-item',\n})\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_FIND_LAST_INDEX = TYPE === 1;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var index = lengthOfArrayLike(self);\n var boundFunction = bind(callbackfn, that);\n var value, result;\n while (index-- > 0) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (result) switch (TYPE) {\n case 0: return value; // findLast\n case 1: return index; // findLastIndex\n }\n }\n return IS_FIND_LAST_INDEX ? -1 : undefined;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.findLast` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLast: createMethod(0),\n // `Array.prototype.findLastIndex` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLastIndex: createMethod(1)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.es/ecma262/#sec-set.prototype.issupersetof\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) remove(result, e);\n });\n return result;\n};\n","// Styles\nimport './VCheckbox.sass'\nimport '../../styles/components/_selection-controls.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VInput from '../VInput'\n\n// Mixins\nimport Selectable from '../../mixins/selectable'\n\n/* @vue/component */\nexport default Selectable.extend({\n name: 'v-checkbox',\n\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n offIcon: {\n type: String,\n default: '$checkboxOff',\n },\n onIcon: {\n type: String,\n default: '$checkboxOn',\n },\n },\n\n data () {\n return {\n inputIndeterminate: this.indeterminate,\n }\n },\n\n computed: {\n classes (): object {\n return {\n ...VInput.options.computed.classes.call(this),\n 'v-input--selection-controls': true,\n 'v-input--checkbox': true,\n 'v-input--indeterminate': this.inputIndeterminate,\n }\n },\n computedIcon (): string {\n if (this.inputIndeterminate) {\n return this.indeterminateIcon\n } else if (this.isActive) {\n return this.onIcon\n } else {\n return this.offIcon\n }\n },\n // Do not return undefined if disabled,\n // according to spec, should still show\n // a color when disabled and active\n validationState (): string | undefined {\n if (this.isDisabled && !this.inputIndeterminate) return undefined\n if (this.hasError && this.shouldValidate) return 'error'\n if (this.hasSuccess) return 'success'\n if (this.hasColor !== null) return this.computedColor\n return undefined\n },\n },\n\n watch: {\n indeterminate (val) {\n // https://github.com/vuetifyjs/vuetify/issues/8270\n this.$nextTick(() => (this.inputIndeterminate = val))\n },\n inputIndeterminate (val) {\n this.$emit('update:indeterminate', val)\n },\n isActive () {\n if (!this.indeterminate) return\n this.inputIndeterminate = false\n },\n },\n\n methods: {\n genCheckbox () {\n const { title, ...checkboxAttrs } = this.attrs$\n return this.$createElement('div', {\n staticClass: 'v-input--selection-controls__input',\n }, [\n this.$createElement(VIcon, this.setTextColor(this.validationState, {\n props: {\n dense: this.dense,\n dark: this.dark,\n light: this.light,\n },\n }), this.computedIcon),\n this.genInput('checkbox', {\n ...checkboxAttrs,\n 'aria-checked': this.inputIndeterminate\n ? 'mixed'\n : this.isActive.toString(),\n }),\n this.genRipple(this.setTextColor(this.rippleState)),\n ])\n },\n genDefaultSlot () {\n return [\n this.genCheckbox(),\n this.genLabel(),\n ]\n },\n },\n})\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar classof = require('../internals/classof-raw');\n\nvar ArrayBuffer = globalThis.ArrayBuffer;\nvar TypeError = globalThis.TypeError;\n\n// Includes\n// - Perform ? RequireInternalSlot(O, [[ArrayBufferData]]).\n// - If IsSharedArrayBuffer(O) is true, throw a TypeError exception.\nmodule.exports = ArrayBuffer && uncurryThisAccessor(ArrayBuffer.prototype, 'byteLength', 'get') || function (O) {\n if (classof(O) !== 'ArrayBuffer') throw new TypeError('ArrayBuffer expected');\n return O.byteLength;\n};\n","'use strict';\nvar classof = require('../internals/classof');\n\nmodule.exports = function (it) {\n var klass = classof(it);\n return klass === 'BigInt64Array' || klass === 'BigUint64Array';\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.es/ecma262/#sec-set.prototype.isdisjointfrom\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n isDisjointFrom: isDisjointFrom\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swEditSku.vue?vue&type=style&index=0&id=3bf038df&prod&scoped=true&lang=css\"","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.with\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.with\nmodule.exports = function (O, C, index, value) {\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var actualIndex = relativeIndex < 0 ? len + relativeIndex : relativeIndex;\n if (actualIndex >= len || actualIndex < 0) throw new $RangeError('Incorrect index');\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = k === actualIndex ? value : O[k];\n return A;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nmodule.exports = function (name) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n return true;\n }\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar V8 = require('../internals/environment-v8-version');\nvar ENVIRONMENT = require('../internals/environment');\n\nvar structuredClone = globalThis.structuredClone;\n\nmodule.exports = !!structuredClone && !fails(function () {\n // prevent V8 ArrayBufferDetaching protector cell invalidation and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if ((ENVIRONMENT === 'DENO' && V8 > 92) || (ENVIRONMENT === 'NODE' && V8 > 94) || (ENVIRONMENT === 'BROWSER' && V8 > 97)) return false;\n var buffer = new ArrayBuffer(8);\n var clone = structuredClone(buffer, { transfer: [buffer] });\n return buffer.byteLength !== 0 || clone.byteLength !== 8;\n});\n","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// https://tc39.es/proposal-change-array-by-copy/#sec-array.prototype.toReversed\n// https://tc39.es/proposal-change-array-by-copy/#sec-%typedarray%.prototype.toReversed\nmodule.exports = function (O, C) {\n var len = lengthOfArrayLike(O);\n var A = new C(len);\n var k = 0;\n for (; k < len; k++) A[k] = O[len - k - 1];\n return A;\n};\n","'use strict';\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list, $length) {\n var index = 0;\n var length = arguments.length > 2 ? $length : lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = globalThis.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = globalThis.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = globalThis.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(globalThis.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw new TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw new TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = globalThis[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = globalThis[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw new TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (globalThis[NAME]) setPrototypeOf(globalThis[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineBuiltInAccessor(TypedArrayPrototype, TO_STRING_TAG, {\n configurable: true,\n get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n }\n });\n for (NAME in TypedArrayConstructorsList) if (globalThis[NAME]) {\n createNonEnumerableProperty(globalThis[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw new $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw new $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g(_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],staticClass:\"mx-0 px-0\",attrs:{\"large\":\"\",\"icon\":\"\",\"color\":_vm.color},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'v-btn',_vm.$attrs,false),on),[_c('v-icon',{attrs:{\"color\":_vm.iconcolor}},[_vm._v(_vm._s(_vm.icon))])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.tooltip))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-tooltip bottom>\n <template v-slot:activator=\"{ on }\">\n <v-btn v-show=\"show\" class=\"mx-0 px-0\" large icon :color=\"color\" v-bind=\"$attrs\" v-on=\"on\" @click=\"$emit('click', $event)\">\n <v-icon :color=\"iconcolor\">{{ icon }}</v-icon>\n </v-btn>\n </template>\n <span>{{ tooltip }}</span>\n </v-tooltip>\n</template>\n\n<script>\nexport default {\n name: 'SwButton',\n inheritAttrs: false,\n props: {\n icon: { type: String, required: false, default: '' },\n color: { type: String, required: false, default: '' },\n iconcolor: { type: String, required: false, default: '' },\n tooltip: { type: String, required: false, default: '' },\n show: { type: Boolean, require: false, default: true },\n },\n}\n</script>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./swButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./swButton.vue?vue&type=template&id=5d85e450\"\nimport script from \"./swButton.vue?vue&type=script&lang=js\"\nexport * from \"./swButton.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","const red = Object.freeze({\n base: '#f44336',\n lighten5: '#ffebee',\n lighten4: '#ffcdd2',\n lighten3: '#ef9a9a',\n lighten2: '#e57373',\n lighten1: '#ef5350',\n darken1: '#e53935',\n darken2: '#d32f2f',\n darken3: '#c62828',\n darken4: '#b71c1c',\n accent1: '#ff8a80',\n accent2: '#ff5252',\n accent3: '#ff1744',\n accent4: '#d50000',\n})\n\nconst pink = Object.freeze({\n base: '#e91e63',\n lighten5: '#fce4ec',\n lighten4: '#f8bbd0',\n lighten3: '#f48fb1',\n lighten2: '#f06292',\n lighten1: '#ec407a',\n darken1: '#d81b60',\n darken2: '#c2185b',\n darken3: '#ad1457',\n darken4: '#880e4f',\n accent1: '#ff80ab',\n accent2: '#ff4081',\n accent3: '#f50057',\n accent4: '#c51162',\n})\n\nconst purple = Object.freeze({\n base: '#9c27b0',\n lighten5: '#f3e5f5',\n lighten4: '#e1bee7',\n lighten3: '#ce93d8',\n lighten2: '#ba68c8',\n lighten1: '#ab47bc',\n darken1: '#8e24aa',\n darken2: '#7b1fa2',\n darken3: '#6a1b9a',\n darken4: '#4a148c',\n accent1: '#ea80fc',\n accent2: '#e040fb',\n accent3: '#d500f9',\n accent4: '#aa00ff',\n})\n\nconst deepPurple = Object.freeze({\n base: '#673ab7',\n lighten5: '#ede7f6',\n lighten4: '#d1c4e9',\n lighten3: '#b39ddb',\n lighten2: '#9575cd',\n lighten1: '#7e57c2',\n darken1: '#5e35b1',\n darken2: '#512da8',\n darken3: '#4527a0',\n darken4: '#311b92',\n accent1: '#b388ff',\n accent2: '#7c4dff',\n accent3: '#651fff',\n accent4: '#6200ea',\n})\n\nconst indigo = Object.freeze({\n base: '#3f51b5',\n lighten5: '#e8eaf6',\n lighten4: '#c5cae9',\n lighten3: '#9fa8da',\n lighten2: '#7986cb',\n lighten1: '#5c6bc0',\n darken1: '#3949ab',\n darken2: '#303f9f',\n darken3: '#283593',\n darken4: '#1a237e',\n accent1: '#8c9eff',\n accent2: '#536dfe',\n accent3: '#3d5afe',\n accent4: '#304ffe',\n})\n\nconst blue = Object.freeze({\n base: '#2196f3',\n lighten5: '#e3f2fd',\n lighten4: '#bbdefb',\n lighten3: '#90caf9',\n lighten2: '#64b5f6',\n lighten1: '#42a5f5',\n darken1: '#1e88e5',\n darken2: '#1976d2',\n darken3: '#1565c0',\n darken4: '#0d47a1',\n accent1: '#82b1ff',\n accent2: '#448aff',\n accent3: '#2979ff',\n accent4: '#2962ff',\n})\n\nconst lightBlue = Object.freeze({\n base: '#03a9f4',\n lighten5: '#e1f5fe',\n lighten4: '#b3e5fc',\n lighten3: '#81d4fa',\n lighten2: '#4fc3f7',\n lighten1: '#29b6f6',\n darken1: '#039be5',\n darken2: '#0288d1',\n darken3: '#0277bd',\n darken4: '#01579b',\n accent1: '#80d8ff',\n accent2: '#40c4ff',\n accent3: '#00b0ff',\n accent4: '#0091ea',\n})\n\nconst cyan = Object.freeze({\n base: '#00bcd4',\n lighten5: '#e0f7fa',\n lighten4: '#b2ebf2',\n lighten3: '#80deea',\n lighten2: '#4dd0e1',\n lighten1: '#26c6da',\n darken1: '#00acc1',\n darken2: '#0097a7',\n darken3: '#00838f',\n darken4: '#006064',\n accent1: '#84ffff',\n accent2: '#18ffff',\n accent3: '#00e5ff',\n accent4: '#00b8d4',\n})\n\nconst teal = Object.freeze({\n base: '#009688',\n lighten5: '#e0f2f1',\n lighten4: '#b2dfdb',\n lighten3: '#80cbc4',\n lighten2: '#4db6ac',\n lighten1: '#26a69a',\n darken1: '#00897b',\n darken2: '#00796b',\n darken3: '#00695c',\n darken4: '#004d40',\n accent1: '#a7ffeb',\n accent2: '#64ffda',\n accent3: '#1de9b6',\n accent4: '#00bfa5',\n})\n\nconst green = Object.freeze({\n base: '#4caf50',\n lighten5: '#e8f5e9',\n lighten4: '#c8e6c9',\n lighten3: '#a5d6a7',\n lighten2: '#81c784',\n lighten1: '#66bb6a',\n darken1: '#43a047',\n darken2: '#388e3c',\n darken3: '#2e7d32',\n darken4: '#1b5e20',\n accent1: '#b9f6ca',\n accent2: '#69f0ae',\n accent3: '#00e676',\n accent4: '#00c853',\n})\n\nconst lightGreen = Object.freeze({\n base: '#8bc34a',\n lighten5: '#f1f8e9',\n lighten4: '#dcedc8',\n lighten3: '#c5e1a5',\n lighten2: '#aed581',\n lighten1: '#9ccc65',\n darken1: '#7cb342',\n darken2: '#689f38',\n darken3: '#558b2f',\n darken4: '#33691e',\n accent1: '#ccff90',\n accent2: '#b2ff59',\n accent3: '#76ff03',\n accent4: '#64dd17',\n})\n\nconst lime = Object.freeze({\n base: '#cddc39',\n lighten5: '#f9fbe7',\n lighten4: '#f0f4c3',\n lighten3: '#e6ee9c',\n lighten2: '#dce775',\n lighten1: '#d4e157',\n darken1: '#c0ca33',\n darken2: '#afb42b',\n darken3: '#9e9d24',\n darken4: '#827717',\n accent1: '#f4ff81',\n accent2: '#eeff41',\n accent3: '#c6ff00',\n accent4: '#aeea00',\n})\n\nconst yellow = Object.freeze({\n base: '#ffeb3b',\n lighten5: '#fffde7',\n lighten4: '#fff9c4',\n lighten3: '#fff59d',\n lighten2: '#fff176',\n lighten1: '#ffee58',\n darken1: '#fdd835',\n darken2: '#fbc02d',\n darken3: '#f9a825',\n darken4: '#f57f17',\n accent1: '#ffff8d',\n accent2: '#ffff00',\n accent3: '#ffea00',\n accent4: '#ffd600',\n})\n\nconst amber = Object.freeze({\n base: '#ffc107',\n lighten5: '#fff8e1',\n lighten4: '#ffecb3',\n lighten3: '#ffe082',\n lighten2: '#ffd54f',\n lighten1: '#ffca28',\n darken1: '#ffb300',\n darken2: '#ffa000',\n darken3: '#ff8f00',\n darken4: '#ff6f00',\n accent1: '#ffe57f',\n accent2: '#ffd740',\n accent3: '#ffc400',\n accent4: '#ffab00',\n})\n\nconst orange = Object.freeze({\n base: '#ff9800',\n lighten5: '#fff3e0',\n lighten4: '#ffe0b2',\n lighten3: '#ffcc80',\n lighten2: '#ffb74d',\n lighten1: '#ffa726',\n darken1: '#fb8c00',\n darken2: '#f57c00',\n darken3: '#ef6c00',\n darken4: '#e65100',\n accent1: '#ffd180',\n accent2: '#ffab40',\n accent3: '#ff9100',\n accent4: '#ff6d00',\n})\n\nconst deepOrange = Object.freeze({\n base: '#ff5722',\n lighten5: '#fbe9e7',\n lighten4: '#ffccbc',\n lighten3: '#ffab91',\n lighten2: '#ff8a65',\n lighten1: '#ff7043',\n darken1: '#f4511e',\n darken2: '#e64a19',\n darken3: '#d84315',\n darken4: '#bf360c',\n accent1: '#ff9e80',\n accent2: '#ff6e40',\n accent3: '#ff3d00',\n accent4: '#dd2c00',\n})\n\nconst brown = Object.freeze({\n base: '#795548',\n lighten5: '#efebe9',\n lighten4: '#d7ccc8',\n lighten3: '#bcaaa4',\n lighten2: '#a1887f',\n lighten1: '#8d6e63',\n darken1: '#6d4c41',\n darken2: '#5d4037',\n darken3: '#4e342e',\n darken4: '#3e2723',\n})\n\nconst blueGrey = Object.freeze({\n base: '#607d8b',\n lighten5: '#eceff1',\n lighten4: '#cfd8dc',\n lighten3: '#b0bec5',\n lighten2: '#90a4ae',\n lighten1: '#78909c',\n darken1: '#546e7a',\n darken2: '#455a64',\n darken3: '#37474f',\n darken4: '#263238',\n})\n\nconst grey = Object.freeze({\n base: '#9e9e9e',\n lighten5: '#fafafa',\n lighten4: '#f5f5f5',\n lighten3: '#eeeeee',\n lighten2: '#e0e0e0',\n lighten1: '#bdbdbd',\n darken1: '#757575',\n darken2: '#616161',\n darken3: '#424242',\n darken4: '#212121',\n})\n\nconst shades = Object.freeze({\n black: '#000000',\n white: '#ffffff',\n transparent: 'transparent',\n})\n\nexport default Object.freeze({\n red,\n pink,\n purple,\n deepPurple,\n indigo,\n blue,\n lightBlue,\n cyan,\n teal,\n green,\n lightGreen,\n lime,\n yellow,\n amber,\n orange,\n deepOrange,\n brown,\n blueGrey,\n grey,\n shades,\n})\n"],"sourceRoot":""}