UNPKG

primevue

Version:

PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBloc

1 lines 45.5 kB
{"version":3,"file":"index.mjs","sources":["../../src/slider/BaseSlider.vue","../../src/slider/Slider.vue","../../src/slider/Slider.vue?vue&type=template&id=fe86df3e&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport SliderStyle from 'primevue/slider/style';\n\nexport default {\n name: 'BaseSlider',\n extends: BaseComponent,\n props: {\n modelValue: [Number, Array],\n min: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: 100\n },\n orientation: {\n type: String,\n default: 'horizontal'\n },\n step: {\n type: Number,\n default: null\n },\n range: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: SliderStyle,\n provide() {\n return {\n $pcSlider: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" @click=\"onBarClick\" v-bind=\"ptmi('root')\" :data-p-sliding=\"false\">\n <span :class=\"cx('range')\" :style=\"[sx('range'), rangeStyle]\" v-bind=\"ptm('range')\"></span>\n <span\n v-if=\"!range\"\n :class=\"cx('handle')\"\n :style=\"[sx('handle'), handleStyle]\"\n @touchstart.passive=\"onDragStart($event)\"\n @touchmove.passive=\"onDrag($event)\"\n @touchend=\"onDragEnd($event)\"\n @mousedown=\"onMouseDown($event)\"\n @keydown=\"onKeyDown($event)\"\n :tabindex=\"tabindex\"\n role=\"slider\"\n :aria-valuemin=\"min\"\n :aria-valuenow=\"modelValue\"\n :aria-valuemax=\"max\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"orientation\"\n v-bind=\"ptm('handle')\"\n ></span>\n <span\n v-if=\"range\"\n :class=\"cx('handle')\"\n :style=\"[sx('handle'), rangeStartHandleStyle]\"\n @touchstart.passive=\"onDragStart($event, 0)\"\n @touchmove.passive=\"onDrag($event)\"\n @touchend=\"onDragEnd($event)\"\n @mousedown=\"onMouseDown($event, 0)\"\n @keydown=\"onKeyDown($event, 0)\"\n :tabindex=\"tabindex\"\n role=\"slider\"\n :aria-valuemin=\"min\"\n :aria-valuenow=\"modelValue ? modelValue[0] : null\"\n :aria-valuemax=\"max\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"orientation\"\n v-bind=\"ptm('startHandler')\"\n ></span>\n <span\n v-if=\"range\"\n :class=\"cx('handle')\"\n :style=\"[sx('handle'), rangeEndHandleStyle]\"\n @touchstart.passive=\"onDragStart($event, 1)\"\n @touchmove.passive=\"onDrag($event)\"\n @touchend=\"onDragEnd($event)\"\n @mousedown=\"onMouseDown($event, 1)\"\n @keydown=\"onKeyDown($event, 1)\"\n :tabindex=\"tabindex\"\n role=\"slider\"\n :aria-valuemin=\"min\"\n :aria-valuenow=\"modelValue ? modelValue[1] : null\"\n :aria-valuemax=\"max\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"orientation\"\n v-bind=\"ptm('endHandler')\"\n ></span>\n </div>\n</template>\n\n<script>\nimport { getWindowScrollLeft, getWindowScrollTop, getAttribute } from '@primeuix/utils/dom';\nimport BaseSlider from './BaseSlider.vue';\n\nexport default {\n name: 'Slider',\n extends: BaseSlider,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'slideend'],\n dragging: false,\n handleIndex: null,\n initX: null,\n initY: null,\n barWidth: null,\n barHeight: null,\n dragListener: null,\n dragEndListener: null,\n beforeUnmount() {\n this.unbindDragListeners();\n },\n methods: {\n updateDomData() {\n let rect = this.$el.getBoundingClientRect();\n\n this.initX = rect.left + getWindowScrollLeft();\n this.initY = rect.top + getWindowScrollTop();\n this.barWidth = this.$el.offsetWidth;\n this.barHeight = this.$el.offsetHeight;\n },\n setValue(event) {\n let handleValue;\n let pageX = event.touches ? event.touches[0].pageX : event.pageX;\n let pageY = event.touches ? event.touches[0].pageY : event.pageY;\n\n if (this.orientation === 'horizontal') handleValue = ((pageX - this.initX) * 100) / this.barWidth;\n else handleValue = ((this.initY + this.barHeight - pageY) * 100) / this.barHeight;\n let newValue = (this.max - this.min) * (handleValue / 100) + this.min;\n\n if (this.step) {\n const oldValue = this.range ? this.value[this.handleIndex] : this.value;\n const diff = newValue - oldValue;\n\n if (diff < 0) newValue = oldValue + Math.ceil(newValue / this.step - oldValue / this.step) * this.step;\n else if (diff > 0) newValue = oldValue + Math.floor(newValue / this.step - oldValue / this.step) * this.step;\n } else {\n newValue = Math.floor(newValue);\n }\n\n this.updateModel(event, newValue);\n },\n updateModel(event, value) {\n let newValue = parseFloat(value.toFixed(10));\n let modelValue;\n\n if (this.range) {\n modelValue = this.value ? [...this.value] : [];\n\n if (this.handleIndex == 0) {\n if (newValue < this.min) newValue = this.min;\n else if (newValue >= this.max) newValue = this.max;\n\n modelValue[0] = newValue;\n } else {\n if (newValue > this.max) newValue = this.max;\n else if (newValue <= this.min) newValue = this.min;\n\n modelValue[1] = newValue;\n }\n } else {\n if (newValue < this.min) newValue = this.min;\n else if (newValue > this.max) newValue = this.max;\n\n modelValue = newValue;\n }\n\n this.$emit('update:modelValue', modelValue);\n this.$emit('change', modelValue);\n },\n onDragStart(event, index) {\n if (this.disabled) {\n return;\n }\n\n this.$el.setAttribute('data-p-sliding', true);\n this.dragging = true;\n this.updateDomData();\n\n if (this.range && this.value[0] === this.max) {\n this.handleIndex = 0;\n } else {\n this.handleIndex = index;\n }\n\n event.currentTarget.focus();\n event.preventDefault();\n },\n onDrag(event) {\n if (this.dragging) {\n this.setValue(event);\n event.preventDefault();\n }\n },\n onDragEnd(event) {\n if (this.dragging) {\n this.dragging = false;\n this.$el.setAttribute('data-p-sliding', false);\n this.$emit('slideend', { originalEvent: event, value: this.value });\n }\n },\n onBarClick(event) {\n if (this.disabled) {\n return;\n }\n\n if (getAttribute(event.target, 'data-pc-section') !== 'handle') {\n this.updateDomData();\n this.setValue(event);\n }\n },\n onMouseDown(event, index) {\n this.bindDragListeners();\n this.onDragStart(event, index);\n },\n onKeyDown(event, index) {\n this.handleIndex = index;\n\n switch (event.code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n this.decrementValue(event, index);\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n case 'ArrowRight':\n this.incrementValue(event, index);\n event.preventDefault();\n break;\n\n case 'PageDown':\n this.decrementValue(event, index, true);\n event.preventDefault();\n break;\n\n case 'PageUp':\n this.incrementValue(event, index, true);\n event.preventDefault();\n break;\n\n case 'Home':\n this.updateModel(event, this.min);\n event.preventDefault();\n break;\n\n case 'End':\n this.updateModel(event, this.max);\n event.preventDefault();\n break;\n\n default:\n break;\n }\n },\n decrementValue(event, index, pageKey = false) {\n let newValue;\n\n if (this.range) {\n if (this.step) newValue = this.value[index] - this.step;\n else newValue = this.value[index] - 1;\n } else {\n if (this.step) newValue = this.value - this.step;\n else if (!this.step && pageKey) newValue = this.value - 10;\n else newValue = this.value - 1;\n }\n\n this.updateModel(event, newValue);\n event.preventDefault();\n },\n incrementValue(event, index, pageKey = false) {\n let newValue;\n\n if (this.range) {\n if (this.step) newValue = this.value[index] + this.step;\n else newValue = this.value[index] + 1;\n } else {\n if (this.step) newValue = this.value + this.step;\n else if (!this.step && pageKey) newValue = this.value + 10;\n else newValue = this.value + 1;\n }\n\n this.updateModel(event, newValue);\n event.preventDefault();\n },\n bindDragListeners() {\n if (!this.dragListener) {\n this.dragListener = this.onDrag.bind(this);\n document.addEventListener('mousemove', this.dragListener);\n }\n\n if (!this.dragEndListener) {\n this.dragEndListener = this.onDragEnd.bind(this);\n document.addEventListener('mouseup', this.dragEndListener);\n }\n },\n unbindDragListeners() {\n if (this.dragListener) {\n document.removeEventListener('mousemove', this.dragListener);\n this.dragListener = null;\n }\n\n if (this.dragEndListener) {\n document.removeEventListener('mouseup', this.dragEndListener);\n this.dragEndListener = null;\n }\n }\n },\n computed: {\n value() {\n if (this.range) {\n return [this.modelValue?.[0] ?? this.min, this.modelValue?.[1] ?? this.max];\n }\n\n return this.modelValue ?? this.min;\n },\n horizontal() {\n return this.orientation === 'horizontal';\n },\n vertical() {\n return this.orientation === 'vertical';\n },\n rangeStyle() {\n if (this.range) {\n const rangeSliderWidth = this.rangeEndPosition > this.rangeStartPosition ? this.rangeEndPosition - this.rangeStartPosition : this.rangeStartPosition - this.rangeEndPosition;\n const rangeSliderPosition = this.rangeEndPosition > this.rangeStartPosition ? this.rangeStartPosition : this.rangeEndPosition;\n\n if (this.horizontal) return { left: rangeSliderPosition + '%', width: rangeSliderWidth + '%' };\n else return { bottom: rangeSliderPosition + '%', height: rangeSliderWidth + '%' };\n } else {\n if (this.horizontal) return { width: this.handlePosition + '%' };\n else return { height: this.handlePosition + '%' };\n }\n },\n handleStyle() {\n if (this.horizontal) return { left: this.handlePosition + '%' };\n else return { bottom: this.handlePosition + '%' };\n },\n handlePosition() {\n if (this.value < this.min) return 0;\n else if (this.value > this.max) return 100;\n else return ((this.value - this.min) * 100) / (this.max - this.min);\n },\n rangeStartPosition() {\n if (this.value && this.value[0]) return ((this.value[0] < this.min ? 0 : this.value[0] - this.min) * 100) / (this.max - this.min);\n else return 0;\n },\n rangeEndPosition() {\n if (this.value && this.value.length === 2) return ((this.value[1] > this.max ? 100 : this.value[1] - this.min) * 100) / (this.max - this.min);\n else return 100;\n },\n rangeStartHandleStyle() {\n if (this.horizontal) return { left: this.rangeStartPosition + '%' };\n else return { bottom: this.rangeStartPosition + '%' };\n },\n rangeEndHandleStyle() {\n if (this.horizontal) return { left: this.rangeEndPosition + '%' };\n else return { bottom: this.rangeEndPosition + '%' };\n }\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" @click=\"onBarClick\" v-bind=\"ptmi('root')\" :data-p-sliding=\"false\">\n <span :class=\"cx('range')\" :style=\"[sx('range'), rangeStyle]\" v-bind=\"ptm('range')\"></span>\n <span\n v-if=\"!range\"\n :class=\"cx('handle')\"\n :style=\"[sx('handle'), handleStyle]\"\n @touchstart.passive=\"onDragStart($event)\"\n @touchmove.passive=\"onDrag($event)\"\n @touchend=\"onDragEnd($event)\"\n @mousedown=\"onMouseDown($event)\"\n @keydown=\"onKeyDown($event)\"\n :tabindex=\"tabindex\"\n role=\"slider\"\n :aria-valuemin=\"min\"\n :aria-valuenow=\"modelValue\"\n :aria-valuemax=\"max\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"orientation\"\n v-bind=\"ptm('handle')\"\n ></span>\n <span\n v-if=\"range\"\n :class=\"cx('handle')\"\n :style=\"[sx('handle'), rangeStartHandleStyle]\"\n @touchstart.passive=\"onDragStart($event, 0)\"\n @touchmove.passive=\"onDrag($event)\"\n @touchend=\"onDragEnd($event)\"\n @mousedown=\"onMouseDown($event, 0)\"\n @keydown=\"onKeyDown($event, 0)\"\n :tabindex=\"tabindex\"\n role=\"slider\"\n :aria-valuemin=\"min\"\n :aria-valuenow=\"modelValue ? modelValue[0] : null\"\n :aria-valuemax=\"max\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"orientation\"\n v-bind=\"ptm('startHandler')\"\n ></span>\n <span\n v-if=\"range\"\n :class=\"cx('handle')\"\n :style=\"[sx('handle'), rangeEndHandleStyle]\"\n @touchstart.passive=\"onDragStart($event, 1)\"\n @touchmove.passive=\"onDrag($event)\"\n @touchend=\"onDragEnd($event)\"\n @mousedown=\"onMouseDown($event, 1)\"\n @keydown=\"onKeyDown($event, 1)\"\n :tabindex=\"tabindex\"\n role=\"slider\"\n :aria-valuemin=\"min\"\n :aria-valuenow=\"modelValue ? modelValue[1] : null\"\n :aria-valuemax=\"max\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"orientation\"\n v-bind=\"ptm('endHandler')\"\n ></span>\n </div>\n</template>\n\n<script>\nimport { getWindowScrollLeft, getWindowScrollTop, getAttribute } from '@primeuix/utils/dom';\nimport BaseSlider from './BaseSlider.vue';\n\nexport default {\n name: 'Slider',\n extends: BaseSlider,\n inheritAttrs: false,\n emits: ['update:modelValue', 'change', 'slideend'],\n dragging: false,\n handleIndex: null,\n initX: null,\n initY: null,\n barWidth: null,\n barHeight: null,\n dragListener: null,\n dragEndListener: null,\n beforeUnmount() {\n this.unbindDragListeners();\n },\n methods: {\n updateDomData() {\n let rect = this.$el.getBoundingClientRect();\n\n this.initX = rect.left + getWindowScrollLeft();\n this.initY = rect.top + getWindowScrollTop();\n this.barWidth = this.$el.offsetWidth;\n this.barHeight = this.$el.offsetHeight;\n },\n setValue(event) {\n let handleValue;\n let pageX = event.touches ? event.touches[0].pageX : event.pageX;\n let pageY = event.touches ? event.touches[0].pageY : event.pageY;\n\n if (this.orientation === 'horizontal') handleValue = ((pageX - this.initX) * 100) / this.barWidth;\n else handleValue = ((this.initY + this.barHeight - pageY) * 100) / this.barHeight;\n let newValue = (this.max - this.min) * (handleValue / 100) + this.min;\n\n if (this.step) {\n const oldValue = this.range ? this.value[this.handleIndex] : this.value;\n const diff = newValue - oldValue;\n\n if (diff < 0) newValue = oldValue + Math.ceil(newValue / this.step - oldValue / this.step) * this.step;\n else if (diff > 0) newValue = oldValue + Math.floor(newValue / this.step - oldValue / this.step) * this.step;\n } else {\n newValue = Math.floor(newValue);\n }\n\n this.updateModel(event, newValue);\n },\n updateModel(event, value) {\n let newValue = parseFloat(value.toFixed(10));\n let modelValue;\n\n if (this.range) {\n modelValue = this.value ? [...this.value] : [];\n\n if (this.handleIndex == 0) {\n if (newValue < this.min) newValue = this.min;\n else if (newValue >= this.max) newValue = this.max;\n\n modelValue[0] = newValue;\n } else {\n if (newValue > this.max) newValue = this.max;\n else if (newValue <= this.min) newValue = this.min;\n\n modelValue[1] = newValue;\n }\n } else {\n if (newValue < this.min) newValue = this.min;\n else if (newValue > this.max) newValue = this.max;\n\n modelValue = newValue;\n }\n\n this.$emit('update:modelValue', modelValue);\n this.$emit('change', modelValue);\n },\n onDragStart(event, index) {\n if (this.disabled) {\n return;\n }\n\n this.$el.setAttribute('data-p-sliding', true);\n this.dragging = true;\n this.updateDomData();\n\n if (this.range && this.value[0] === this.max) {\n this.handleIndex = 0;\n } else {\n this.handleIndex = index;\n }\n\n event.currentTarget.focus();\n event.preventDefault();\n },\n onDrag(event) {\n if (this.dragging) {\n this.setValue(event);\n event.preventDefault();\n }\n },\n onDragEnd(event) {\n if (this.dragging) {\n this.dragging = false;\n this.$el.setAttribute('data-p-sliding', false);\n this.$emit('slideend', { originalEvent: event, value: this.value });\n }\n },\n onBarClick(event) {\n if (this.disabled) {\n return;\n }\n\n if (getAttribute(event.target, 'data-pc-section') !== 'handle') {\n this.updateDomData();\n this.setValue(event);\n }\n },\n onMouseDown(event, index) {\n this.bindDragListeners();\n this.onDragStart(event, index);\n },\n onKeyDown(event, index) {\n this.handleIndex = index;\n\n switch (event.code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n this.decrementValue(event, index);\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n case 'ArrowRight':\n this.incrementValue(event, index);\n event.preventDefault();\n break;\n\n case 'PageDown':\n this.decrementValue(event, index, true);\n event.preventDefault();\n break;\n\n case 'PageUp':\n this.incrementValue(event, index, true);\n event.preventDefault();\n break;\n\n case 'Home':\n this.updateModel(event, this.min);\n event.preventDefault();\n break;\n\n case 'End':\n this.updateModel(event, this.max);\n event.preventDefault();\n break;\n\n default:\n break;\n }\n },\n decrementValue(event, index, pageKey = false) {\n let newValue;\n\n if (this.range) {\n if (this.step) newValue = this.value[index] - this.step;\n else newValue = this.value[index] - 1;\n } else {\n if (this.step) newValue = this.value - this.step;\n else if (!this.step && pageKey) newValue = this.value - 10;\n else newValue = this.value - 1;\n }\n\n this.updateModel(event, newValue);\n event.preventDefault();\n },\n incrementValue(event, index, pageKey = false) {\n let newValue;\n\n if (this.range) {\n if (this.step) newValue = this.value[index] + this.step;\n else newValue = this.value[index] + 1;\n } else {\n if (this.step) newValue = this.value + this.step;\n else if (!this.step && pageKey) newValue = this.value + 10;\n else newValue = this.value + 1;\n }\n\n this.updateModel(event, newValue);\n event.preventDefault();\n },\n bindDragListeners() {\n if (!this.dragListener) {\n this.dragListener = this.onDrag.bind(this);\n document.addEventListener('mousemove', this.dragListener);\n }\n\n if (!this.dragEndListener) {\n this.dragEndListener = this.onDragEnd.bind(this);\n document.addEventListener('mouseup', this.dragEndListener);\n }\n },\n unbindDragListeners() {\n if (this.dragListener) {\n document.removeEventListener('mousemove', this.dragListener);\n this.dragListener = null;\n }\n\n if (this.dragEndListener) {\n document.removeEventListener('mouseup', this.dragEndListener);\n this.dragEndListener = null;\n }\n }\n },\n computed: {\n value() {\n if (this.range) {\n return [this.modelValue?.[0] ?? this.min, this.modelValue?.[1] ?? this.max];\n }\n\n return this.modelValue ?? this.min;\n },\n horizontal() {\n return this.orientation === 'horizontal';\n },\n vertical() {\n return this.orientation === 'vertical';\n },\n rangeStyle() {\n if (this.range) {\n const rangeSliderWidth = this.rangeEndPosition > this.rangeStartPosition ? this.rangeEndPosition - this.rangeStartPosition : this.rangeStartPosition - this.rangeEndPosition;\n const rangeSliderPosition = this.rangeEndPosition > this.rangeStartPosition ? this.rangeStartPosition : this.rangeEndPosition;\n\n if (this.horizontal) return { left: rangeSliderPosition + '%', width: rangeSliderWidth + '%' };\n else return { bottom: rangeSliderPosition + '%', height: rangeSliderWidth + '%' };\n } else {\n if (this.horizontal) return { width: this.handlePosition + '%' };\n else return { height: this.handlePosition + '%' };\n }\n },\n handleStyle() {\n if (this.horizontal) return { left: this.handlePosition + '%' };\n else return { bottom: this.handlePosition + '%' };\n },\n handlePosition() {\n if (this.value < this.min) return 0;\n else if (this.value > this.max) return 100;\n else return ((this.value - this.min) * 100) / (this.max - this.min);\n },\n rangeStartPosition() {\n if (this.value && this.value[0]) return ((this.value[0] < this.min ? 0 : this.value[0] - this.min) * 100) / (this.max - this.min);\n else return 0;\n },\n rangeEndPosition() {\n if (this.value && this.value.length === 2) return ((this.value[1] > this.max ? 100 : this.value[1] - this.min) * 100) / (this.max - this.min);\n else return 100;\n },\n rangeStartHandleStyle() {\n if (this.horizontal) return { left: this.rangeStartPosition + '%' };\n else return { bottom: this.rangeStartPosition + '%' };\n },\n rangeEndHandleStyle() {\n if (this.horizontal) return { left: this.rangeEndPosition + '%' };\n else return { bottom: this.rangeEndPosition + '%' };\n }\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","modelValue","Number","Array","min","type","max","orientation","String","step","range","Boolean","disabled","tabindex","ariaLabelledby","ariaLabel","style","SliderStyle","provide","$pcSlider","$parentInstance","BaseSlider","inheritAttrs","emits","dragging","handleIndex","initX","initY","barWidth","barHeight","dragListener","dragEndListener","beforeUnmount","unbindDragListeners","methods","updateDomData","rect","$el","getBoundingClientRect","left","getWindowScrollLeft","top","getWindowScrollTop","offsetWidth","offsetHeight","setValue","event","handleValue","pageX","touches","pageY","newValue","oldValue","value","diff","Math","ceil","floor","updateModel","parseFloat","toFixed","_toConsumableArray","$emit","onDragStart","index","setAttribute","currentTarget","focus","preventDefault","onDrag","onDragEnd","originalEvent","onBarClick","getAttribute","target","onMouseDown","bindDragListeners","onKeyDown","code","decrementValue","incrementValue","pageKey","bind","document","addEventListener","removeEventListener","computed","_this$modelValue3","_this$modelValue$","_this$modelValue","_this$modelValue$2","_this$modelValue2","horizontal","vertical","rangeStyle","rangeSliderWidth","rangeEndPosition","rangeStartPosition","rangeSliderPosition","width","bottom","height","handlePosition","handleStyle","length","rangeStartHandleStyle","rangeEndHandleStyle","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","onClick","$options","apply","arguments","ptmi","_createElementVNode","sx","ptm","onTouchstartPassive","_cache","$event","onTouchmovePassive","onTouchend","onMousedown","onKeydown","role","_hoisted_1","_hoisted_2","_hoisted_3"],"mappings":"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"}