1Vue.directive('press',{bind(el){const down=()=>{el.classList.add('commonPressed');setTimeout(()=>{el.classList.remove('commonPressed')},200)} 2el.addEventListener('pointerdown',down) 3el._pressHandlers={down}},unbind(el){const{down}=el._pressHandlers||{} 4if(down){el.removeEventListener('pointerdown',down)} 5delete el._pressHandlers}});app.partialWeightComponent={props:{value:Number,readonly:Boolean,unit:String,min:{type:Number,default:0},max:{type:Number,default:Infinity}},data(){return{internalValue:this.value}},computed:{inputValue:{get(){return this.internalValue},set(newValue){let intValue=parseInt(newValue)||0;if(intValue>this.max){intValue=this.max} 6this.internalValue=intValue;this.$emit('input',intValue)}},maxInputLength(){if(this.max!==Infinity){return String(this.max).length} 7return 5},isInvalid(){return this.inputValue<this.min}},watch:{value(newVal){this.internalValue=newVal}},methods:{handleKeydown(event){if(event.shiftKey&&(event.key==='ArrowLeft'||event.key==='ArrowRight')){return} 8if(event.ctrlKey&&(event.key==='c'||event.key==='v'||event.key==='x')){return} 9if(event.key==='ArrowLeft'||event.key==='ArrowRight'||event.key==='ArrowUp'||event.key==='ArrowDown'||event.key==='Backspace'||event.key==='Delete'||event.key==='Tab'||event.key==='Home'||event.key==='End'){return} 10if(!/^\d$/.test(event.key)){event.preventDefault();return} 11const input=event.target;const currentValue=input.value;const selectionStart=input.selectionStart;const selectionEnd=input.selectionEnd;const hasSelection=selectionStart!==selectionEnd;if(event.key==='0'&&selectionStart===0&¤tValue.length>0&&!hasSelection){event.preventDefault();return} 12if(!hasSelection&¤tValue.length>=this.maxInputLength){event.preventDefault();return} 13let newValue;if(hasSelection){newValue=currentValue.slice(0,selectionStart)+event.key+currentValue.slice(selectionEnd);if(newValue.length>this.maxInputLength){event.preventDefault();return}}else{newValue=currentValue.slice(0,selectionStart)+event.key+currentValue.slice(selectionStart)} 14const numericValue=parseInt(newValue)||0;if(numericValue>this.max){event.preventDefault();if(!hasSelection||parseInt(currentValue)===this.max){this.inputValue=this.max}}},handleBlur(event){let currentValue=parseInt(event.target.value)||0;if(currentValue<this.min){this.inputValue=this.min} 15this.$emit('blur')},handlePaste(event){event.preventDefault();const pasteData=(event.clipboardData||window.clipboardData).getData('text');if(!/^\d+$/.test(pasteData)){return} 16const input=event.target;const currentValue=input.value;const selectionStart=input.selectionStart;const selectionEnd=input.selectionEnd;const newValue=currentValue.slice(0,selectionStart)+pasteData+currentValue.slice(selectionEnd);if(newValue.length>this.maxInputLength){const truncatedValue=newValue.slice(0,this.maxInputLength);const numericValue=parseInt(truncatedValue)||0;if(numericValue<=this.max){this.inputValue=numericValue}else{this.inputValue=this.max} 17return} 18const numericValue=parseInt(newValue)||0;if(numericValue<=this.max){this.inputValue=numericValue}else{this.inputValue=this.max}}},directives:{'auto-resize':{inserted(el){const span=document.createElement('span');span.style.visibility='hidden';span.style.position='absolute';span.style.whiteSpace='pre';span.style.font=window.getComputedStyle(el).font;const updateWidth=()=>{const value=el.value||el.placeholder||'';span.textContent=value;document.body.appendChild(span);el.style.width=`${span.offsetWidth + 2}px`;document.body.removeChild(span)};el.addEventListener('input',updateWidth);updateWidth();el._autoResizeUpdate=updateWidth;setTimeout(updateWidth,0)},componentUpdated(el){if(el._autoResizeUpdate){el._autoResizeUpdate()}},unbind(el){el.removeEventListener('input',el._autoResizeUpdate)},},},template:` 19<label class="pWeight" 20 :class="{'pWeight--edit': !readonly, 'pWeight--invalid': isInvalid}"> 21 <input v-model="inputValue" 22 v-auto-resize 23 type="text" 24 inputmode="numeric" 25 :readonly="readonly" 26 :maxlength="maxInputLength" 27 @keydown="handleKeydown" 28 @paste="handlePaste" 29 @blur="handleBlur" 30 class="pWeight__input"> 31 <span v-if="unit" class="pWeight__unit">{{ unit }}</span> 32</label> 33 `,};app.pointIconComponent={props:{variant:{type:String,default:'cart',},},computed:{isCustom(){return!!app.store?.state?.ui?.isCustomPointIcon},},template:`
34 <svg v-if="isCustom" class="pointIcon pointIcon--custom" :class="'pointIcon--' + variant"> 35 <use xlink:href="#pointIcon__custom"></use> 36 </svg> 37 38 <svg v-else-if="variant === 'card'" width="17" height="15" viewBox="0 0 17 15" fill="none"> 39 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.02441 1.53125C11.1961 1.53125 13.7676 4.10272 13.7676 7.27441C13.7675 10.446 11.1961 13.0176 8.02441 13.0176C4.85279 13.0175 2.28132 10.446 2.28125 7.27441C2.28125 4.10274 4.85275 1.53128 8.02441 1.53125ZM8.02441 3.70117C6.05096 3.70122 4.45117 5.30095 4.45117 7.27441C4.45124 9.24782 6.051 10.8476 8.02441 10.8477C9.99787 10.8477 11.5976 9.24786 11.5977 7.27441C11.5977 5.30092 9.99791 3.70117 8.02441 3.70117Z" fill="currentColor"/> 40 <path d="M12.1348 12.7214C13.8532 11.4909 14.9729 9.47772 14.9729 7.20302C14.9729 4.89485 13.82 2.85597 12.0586 1.63086C14.4334 2.36197 16.1595 4.57348 16.1595 7.18814C16.1595 9.77475 14.4703 11.9668 12.1348 12.7214Z" fill="currentColor"/> 41 </svg> 42 43 <svg v-else-if="variant === 'nav'" width="15" height="13" viewBox="0 0 15 13" fill="none"> 44 <path d="M8.77734 1.16455C5.67193 1.16455 3.1543 3.68205 3.1543 6.78662C3.15439 9.89111 5.67199 12.4077 8.77734 12.4077C11.8827 12.4077 14.4003 9.89111 14.4004 6.78662C14.4004 3.68205 11.8828 1.16455 8.77734 1.16455Z" stroke="currentColor" stroke-width="1.2"/> 45 <path d="M4.38571 12.6887C2.51372 11.3436 1.29386 9.14283 1.29386 6.65622C1.29386 4.13301 2.54988 1.90418 4.46875 0.564941C1.88163 1.36416 0.00128412 3.78171 0.00128412 6.63995C0.00128412 9.46753 1.84149 11.8638 4.38571 12.6887Z" fill="currentColor"/> 46 </svg> 47 48 <svg v-else-if="variant === 'history'" width="15" height="12" viewBox="0 0 15 12" fill="none"> 49 <path d="M8.19092 0.599976C5.29254 0.599976 2.94275 2.92382 2.94275 5.78958C2.94283 8.65526 5.29259 10.9783 8.19092 10.9783C11.0893 10.9783 13.439 8.65526 13.4391 5.78958C13.4391 2.92382 11.0893 0.599976 8.19092 0.599976Z" stroke="currentColor" stroke-width="1.2"/> 50 <path d="M4.09213 11.3847C2.34494 10.1431 1.2064 8.11159 1.2064 5.81626C1.2064 3.48714 2.37869 1.42976 4.16963 0.193542C1.75499 0.931283 0 3.16287 0 5.80124C0 8.41132 1.71753 10.6233 4.09213 11.3847Z" fill="currentColor"/> 51 </svg> 52 53 <svg v-else width="16" height="14" viewBox="0 0 16 14" fill="none"> 54 <path d="M6.5 1.25C9.67564 1.25 12.25 3.82436 12.25 7C12.25 10.1756 9.67564 12.75 6.5 12.75C3.32436 12.75 0.75 10.1756 0.75 7C0.75 3.82436 3.32436 1.25 6.5 1.25Z" stroke="currentColor" stroke-width="1.5"/> 55 <path d="M11.0867 13.1664C13.0422 11.7611 14.3164 9.46186 14.3164 6.86393C14.3164 4.22779 13.0044 1.89919 11 0.5C13.7024 1.33499 15.6666 3.86075 15.6666 6.84694C15.6666 9.80109 13.7444 12.3046 11.0867 13.1664Z" fill="currentColor"/> 56 </svg> 57 `};app.addModule(()=>{const root=document.documentElement;const style=getComputedStyle(root);const toRgb=(value)=>{value=value.trim();if(!value||!CSS.supports('color',value)){return null} 58const probe=document.createElement('i');probe.style.color=value;root.appendChild(probe);const rgb=getComputedStyle(probe).color.match(/[\d.]+/g).slice(0,3).map(Number);probe.remove();return rgb};const luminance=(rgb)=>rgb.map((c)=>{c/=255;return c<=.03928?c/12.92:((c+.055)/1.055)**2.4}).reduce((sum,c,i)=>sum+c*[.2126,.7152,.0722][i],0);const contrast=(a,b)=>{const[hi,lo]=[luminance(a),luminance(b)].sort((x,y)=>y-x);return(hi+.05)/(lo+.05)};const isGray=(rgb)=>Math.max(...rgb)-Math.min(...rgb)<40;const brand=toRgb(style.getPropertyValue('--button-bg'));const text=toRgb(style.getPropertyValue('--globalDeliveryFg'));if(!brand||!text||isGray(brand)||contrast(brand,text)<2.5){root.style.setProperty('--addressWaveColor','var(--header-link-color)')}});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.