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 33.1 kB
{"version":3,"file":"index.mjs","sources":["../../src/knob/BaseKnob.vue","../../src/knob/Knob.vue","../../src/knob/Knob.vue?vue&type=template&id=464685c1&lang.js"],"sourcesContent":["<script>\nimport { $dt } from '@primeuix/styled';\nimport BaseEditableHolder from '@primevue/core/baseeditableholder';\nimport KnobStyle from 'primevue/knob/style';\n\nexport default {\n name: 'BaseKnob',\n extends: BaseEditableHolder,\n props: {\n size: {\n type: Number,\n default: 100\n },\n readonly: {\n type: Boolean,\n default: false\n },\n step: {\n type: Number,\n default: 1\n },\n min: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: 100\n },\n valueColor: {\n type: String,\n default: () => {\n return $dt('knob.value.background').variable;\n }\n },\n rangeColor: {\n type: String,\n default: () => {\n return $dt('knob.range.background').variable;\n }\n },\n textColor: {\n type: String,\n default: () => {\n return $dt('knob.text.color').variable;\n }\n },\n strokeWidth: {\n type: Number,\n default: 14\n },\n showValue: {\n type: Boolean,\n default: true\n },\n valueTemplate: {\n type: [String, Function],\n default: '{value}'\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: KnobStyle,\n provide() {\n return {\n $pcKnob: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <svg\n viewBox=\"0 0 100 100\"\n role=\"slider\"\n :width=\"size\"\n :height=\"size\"\n :tabindex=\"readonly || disabled ? -1 : tabindex\"\n :aria-valuemin=\"min\"\n :aria-valuemax=\"max\"\n :aria-valuenow=\"d_value\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n @click=\"onClick\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @mouseup=\"onMouseUp\"\n @touchstart=\"onTouchStart\"\n @touchend=\"onTouchEnd\"\n v-bind=\"ptm('svg')\"\n >\n <path :d=\"rangePath\" :stroke-width=\"strokeWidth\" :stroke=\"rangeColor\" :class=\"cx('range')\" v-bind=\"ptm('range')\"></path>\n <path :d=\"valuePath\" :stroke-width=\"strokeWidth\" :stroke=\"valueColor\" :class=\"cx('value')\" v-bind=\"ptm('value')\"></path>\n <text v-if=\"showValue\" :x=\"50\" :y=\"57\" text-anchor=\"middle\" :fill=\"textColor\" :class=\"cx('text')\" v-bind=\"ptm('text')\">{{ valueToDisplay }}</text>\n </svg>\n </div>\n</template>\n\n<script>\nimport BaseKnob from './BaseKnob.vue';\n\n// Set fix value for SSR.\nconst Math_PI = 3.14159265358979;\n\nexport default {\n name: 'Knob',\n extends: BaseKnob,\n inheritAttrs: false,\n emits: ['change'],\n data() {\n return {\n radius: 40,\n midX: 50,\n midY: 50,\n minRadians: (4 * Math_PI) / 3,\n maxRadians: -Math_PI / 3\n };\n },\n methods: {\n updateValueByOffset(offsetX, offsetY) {\n let dx = offsetX - this.size / 2;\n let dy = this.size / 2 - offsetY;\n let angle = Math.atan2(dy, dx);\n let start = -Math_PI / 2 - Math_PI / 6;\n\n this.updateModel(angle, start);\n },\n updateModel(angle, start) {\n let mappedValue;\n\n if (angle > this.maxRadians) mappedValue = this.mapRange(angle, this.minRadians, this.maxRadians, this.min, this.max);\n else if (angle < start) mappedValue = this.mapRange(angle + 2 * Math_PI, this.minRadians, this.maxRadians, this.min, this.max);\n else return;\n\n let newValue = Math.round((mappedValue - this.min) / this.step) * this.step + this.min;\n\n this.writeValue(newValue);\n this.$emit('change', newValue);\n },\n updateModelValue(newValue) {\n if (newValue > this.max) this.writeValue(this.max);\n else if (newValue < this.min) this.writeValue(this.min);\n else this.writeValue(newValue);\n },\n mapRange(x, inMin, inMax, outMin, outMax) {\n return ((x - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin;\n },\n onClick(event) {\n if (!this.disabled && !this.readonly) {\n this.updateValueByOffset(event.offsetX, event.offsetY);\n }\n },\n onBlur(event) {\n this.formField.onBlur?.(event);\n },\n onMouseDown(event) {\n if (!this.disabled && !this.readonly) {\n window.addEventListener('mousemove', this.onMouseMove);\n window.addEventListener('mouseup', this.onMouseUp);\n event.preventDefault();\n }\n },\n onMouseUp(event) {\n if (!this.disabled && !this.readonly) {\n window.removeEventListener('mousemove', this.onMouseMove);\n window.removeEventListener('mouseup', this.onMouseUp);\n event.preventDefault();\n }\n },\n onTouchStart(event) {\n if (!this.disabled && !this.readonly) {\n window.addEventListener('touchmove', this.onTouchMove);\n window.addEventListener('touchend', this.onTouchEnd);\n event.preventDefault();\n }\n },\n onTouchEnd(event) {\n if (!this.disabled && !this.readonly) {\n window.removeEventListener('touchmove', this.onTouchMove);\n window.removeEventListener('touchend', this.onTouchEnd);\n event.preventDefault();\n }\n },\n onMouseMove(event) {\n if (!this.disabled && !this.readonly) {\n this.updateValueByOffset(event.offsetX, event.offsetY);\n event.preventDefault();\n }\n },\n onTouchMove(event) {\n if (!this.disabled && !this.readonly && event.touches.length == 1) {\n const rect = this.$el.getBoundingClientRect();\n const touch = event.targetTouches.item(0);\n const offsetX = touch.clientX - rect.left;\n const offsetY = touch.clientY - rect.top;\n\n this.updateValueByOffset(offsetX, offsetY);\n }\n },\n onKeyDown(event) {\n if (!this.disabled && !this.readonly) {\n switch (event.code) {\n case 'ArrowRight':\n\n case 'ArrowUp': {\n event.preventDefault();\n this.updateModelValue(this.d_value + this.step);\n break;\n }\n\n case 'ArrowLeft':\n\n case 'ArrowDown': {\n event.preventDefault();\n this.updateModelValue(this.d_value - this.step);\n break;\n }\n\n case 'Home': {\n event.preventDefault();\n this.writeValue(this.min);\n break;\n }\n\n case 'End': {\n event.preventDefault();\n this.writeValue(this.max);\n break;\n }\n\n case 'PageUp': {\n event.preventDefault();\n this.updateModelValue(this.d_value + 10);\n break;\n }\n\n case 'PageDown': {\n event.preventDefault();\n this.updateModelValue(this.d_value - 10);\n break;\n }\n }\n }\n }\n },\n computed: {\n rangePath() {\n return `M ${this.minX} ${this.minY} A ${this.radius} ${this.radius} 0 1 1 ${this.maxX} ${this.maxY}`;\n },\n valuePath() {\n return `M ${this.zeroX} ${this.zeroY} A ${this.radius} ${this.radius} 0 ${this.largeArc} ${this.sweep} ${this.valueX} ${this.valueY}`;\n },\n zeroRadians() {\n if (this.min > 0 && this.max > 0) return this.mapRange(this.min, this.min, this.max, this.minRadians, this.maxRadians);\n else return this.mapRange(0, this.min, this.max, this.minRadians, this.maxRadians);\n },\n valueRadians() {\n return this.mapRange(this.d_value, this.min, this.max, this.minRadians, this.maxRadians);\n },\n minX() {\n return this.midX + Math.cos(this.minRadians) * this.radius;\n },\n minY() {\n return this.midY - Math.sin(this.minRadians) * this.radius;\n },\n maxX() {\n return this.midX + Math.cos(this.maxRadians) * this.radius;\n },\n maxY() {\n return this.midY - Math.sin(this.maxRadians) * this.radius;\n },\n zeroX() {\n return this.midX + Math.cos(this.zeroRadians) * this.radius;\n },\n zeroY() {\n return this.midY - Math.sin(this.zeroRadians) * this.radius;\n },\n valueX() {\n return this.midX + Math.cos(this.valueRadians) * this.radius;\n },\n valueY() {\n return this.midY - Math.sin(this.valueRadians) * this.radius;\n },\n largeArc() {\n return Math.abs(this.zeroRadians - this.valueRadians) < Math_PI ? 0 : 1;\n },\n sweep() {\n return this.valueRadians > this.zeroRadians ? 0 : 1;\n },\n valueToDisplay() {\n if (typeof this.valueTemplate === 'string') {\n return this.valueTemplate.replace(/{value}/g, this.d_value);\n } else {\n return this.valueTemplate(this.d_value);\n }\n }\n }\n};\n//Derived and forked from https://github.com/kramer99/vue-knob-control\n</script>\n","<template>\n <div :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <svg\n viewBox=\"0 0 100 100\"\n role=\"slider\"\n :width=\"size\"\n :height=\"size\"\n :tabindex=\"readonly || disabled ? -1 : tabindex\"\n :aria-valuemin=\"min\"\n :aria-valuemax=\"max\"\n :aria-valuenow=\"d_value\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n @click=\"onClick\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @mousedown=\"onMouseDown\"\n @mouseup=\"onMouseUp\"\n @touchstart=\"onTouchStart\"\n @touchend=\"onTouchEnd\"\n v-bind=\"ptm('svg')\"\n >\n <path :d=\"rangePath\" :stroke-width=\"strokeWidth\" :stroke=\"rangeColor\" :class=\"cx('range')\" v-bind=\"ptm('range')\"></path>\n <path :d=\"valuePath\" :stroke-width=\"strokeWidth\" :stroke=\"valueColor\" :class=\"cx('value')\" v-bind=\"ptm('value')\"></path>\n <text v-if=\"showValue\" :x=\"50\" :y=\"57\" text-anchor=\"middle\" :fill=\"textColor\" :class=\"cx('text')\" v-bind=\"ptm('text')\">{{ valueToDisplay }}</text>\n </svg>\n </div>\n</template>\n\n<script>\nimport BaseKnob from './BaseKnob.vue';\n\n// Set fix value for SSR.\nconst Math_PI = 3.14159265358979;\n\nexport default {\n name: 'Knob',\n extends: BaseKnob,\n inheritAttrs: false,\n emits: ['change'],\n data() {\n return {\n radius: 40,\n midX: 50,\n midY: 50,\n minRadians: (4 * Math_PI) / 3,\n maxRadians: -Math_PI / 3\n };\n },\n methods: {\n updateValueByOffset(offsetX, offsetY) {\n let dx = offsetX - this.size / 2;\n let dy = this.size / 2 - offsetY;\n let angle = Math.atan2(dy, dx);\n let start = -Math_PI / 2 - Math_PI / 6;\n\n this.updateModel(angle, start);\n },\n updateModel(angle, start) {\n let mappedValue;\n\n if (angle > this.maxRadians) mappedValue = this.mapRange(angle, this.minRadians, this.maxRadians, this.min, this.max);\n else if (angle < start) mappedValue = this.mapRange(angle + 2 * Math_PI, this.minRadians, this.maxRadians, this.min, this.max);\n else return;\n\n let newValue = Math.round((mappedValue - this.min) / this.step) * this.step + this.min;\n\n this.writeValue(newValue);\n this.$emit('change', newValue);\n },\n updateModelValue(newValue) {\n if (newValue > this.max) this.writeValue(this.max);\n else if (newValue < this.min) this.writeValue(this.min);\n else this.writeValue(newValue);\n },\n mapRange(x, inMin, inMax, outMin, outMax) {\n return ((x - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin;\n },\n onClick(event) {\n if (!this.disabled && !this.readonly) {\n this.updateValueByOffset(event.offsetX, event.offsetY);\n }\n },\n onBlur(event) {\n this.formField.onBlur?.(event);\n },\n onMouseDown(event) {\n if (!this.disabled && !this.readonly) {\n window.addEventListener('mousemove', this.onMouseMove);\n window.addEventListener('mouseup', this.onMouseUp);\n event.preventDefault();\n }\n },\n onMouseUp(event) {\n if (!this.disabled && !this.readonly) {\n window.removeEventListener('mousemove', this.onMouseMove);\n window.removeEventListener('mouseup', this.onMouseUp);\n event.preventDefault();\n }\n },\n onTouchStart(event) {\n if (!this.disabled && !this.readonly) {\n window.addEventListener('touchmove', this.onTouchMove);\n window.addEventListener('touchend', this.onTouchEnd);\n event.preventDefault();\n }\n },\n onTouchEnd(event) {\n if (!this.disabled && !this.readonly) {\n window.removeEventListener('touchmove', this.onTouchMove);\n window.removeEventListener('touchend', this.onTouchEnd);\n event.preventDefault();\n }\n },\n onMouseMove(event) {\n if (!this.disabled && !this.readonly) {\n this.updateValueByOffset(event.offsetX, event.offsetY);\n event.preventDefault();\n }\n },\n onTouchMove(event) {\n if (!this.disabled && !this.readonly && event.touches.length == 1) {\n const rect = this.$el.getBoundingClientRect();\n const touch = event.targetTouches.item(0);\n const offsetX = touch.clientX - rect.left;\n const offsetY = touch.clientY - rect.top;\n\n this.updateValueByOffset(offsetX, offsetY);\n }\n },\n onKeyDown(event) {\n if (!this.disabled && !this.readonly) {\n switch (event.code) {\n case 'ArrowRight':\n\n case 'ArrowUp': {\n event.preventDefault();\n this.updateModelValue(this.d_value + this.step);\n break;\n }\n\n case 'ArrowLeft':\n\n case 'ArrowDown': {\n event.preventDefault();\n this.updateModelValue(this.d_value - this.step);\n break;\n }\n\n case 'Home': {\n event.preventDefault();\n this.writeValue(this.min);\n break;\n }\n\n case 'End': {\n event.preventDefault();\n this.writeValue(this.max);\n break;\n }\n\n case 'PageUp': {\n event.preventDefault();\n this.updateModelValue(this.d_value + 10);\n break;\n }\n\n case 'PageDown': {\n event.preventDefault();\n this.updateModelValue(this.d_value - 10);\n break;\n }\n }\n }\n }\n },\n computed: {\n rangePath() {\n return `M ${this.minX} ${this.minY} A ${this.radius} ${this.radius} 0 1 1 ${this.maxX} ${this.maxY}`;\n },\n valuePath() {\n return `M ${this.zeroX} ${this.zeroY} A ${this.radius} ${this.radius} 0 ${this.largeArc} ${this.sweep} ${this.valueX} ${this.valueY}`;\n },\n zeroRadians() {\n if (this.min > 0 && this.max > 0) return this.mapRange(this.min, this.min, this.max, this.minRadians, this.maxRadians);\n else return this.mapRange(0, this.min, this.max, this.minRadians, this.maxRadians);\n },\n valueRadians() {\n return this.mapRange(this.d_value, this.min, this.max, this.minRadians, this.maxRadians);\n },\n minX() {\n return this.midX + Math.cos(this.minRadians) * this.radius;\n },\n minY() {\n return this.midY - Math.sin(this.minRadians) * this.radius;\n },\n maxX() {\n return this.midX + Math.cos(this.maxRadians) * this.radius;\n },\n maxY() {\n return this.midY - Math.sin(this.maxRadians) * this.radius;\n },\n zeroX() {\n return this.midX + Math.cos(this.zeroRadians) * this.radius;\n },\n zeroY() {\n return this.midY - Math.sin(this.zeroRadians) * this.radius;\n },\n valueX() {\n return this.midX + Math.cos(this.valueRadians) * this.radius;\n },\n valueY() {\n return this.midY - Math.sin(this.valueRadians) * this.radius;\n },\n largeArc() {\n return Math.abs(this.zeroRadians - this.valueRadians) < Math_PI ? 0 : 1;\n },\n sweep() {\n return this.valueRadians > this.zeroRadians ? 0 : 1;\n },\n valueToDisplay() {\n if (typeof this.valueTemplate === 'string') {\n return this.valueTemplate.replace(/{value}/g, this.d_value);\n } else {\n return this.valueTemplate(this.d_value);\n }\n }\n }\n};\n//Derived and forked from https://github.com/kramer99/vue-knob-control\n</script>\n"],"names":["name","BaseEditableHolder","props","size","type","Number","readonly","Boolean","step","min","max","valueColor","String","default","$dt","variable","rangeColor","textColor","strokeWidth","showValue","valueTemplate","Function","tabindex","ariaLabelledby","ariaLabel","style","KnobStyle","provide","$pcKnob","$parentInstance","Math_PI","BaseKnob","inheritAttrs","emits","data","radius","midX","midY","minRadians","maxRadians","methods","updateValueByOffset","offsetX","offsetY","dx","dy","angle","Math","atan2","start","updateModel","mappedValue","mapRange","newValue","round","writeValue","$emit","updateModelValue","x","inMin","inMax","outMin","outMax","onClick","event","disabled","onBlur","_this$formField$onBlu","_this$formField","formField","call","onMouseDown","window","addEventListener","onMouseMove","onMouseUp","preventDefault","removeEventListener","onTouchStart","onTouchMove","onTouchEnd","touches","length","rect","$el","getBoundingClientRect","touch","targetTouches","item","clientX","left","clientY","top","onKeyDown","code","d_value","computed","rangePath","concat","minX","minY","maxX","maxY","valuePath","zeroX","zeroY","largeArc","sweep","valueX","valueY","zeroRadians","valueRadians","cos","sin","abs","valueToDisplay","replace","_openBlock","_createElementBlock","_mergeProps","_ctx","cx","ptmi","viewBox","role","width","height","$options","apply","arguments","onKeydown","onMousedown","onMouseup","onTouchstart","onTouchend","ptm","_createElementVNode","d","stroke","_hoisted_2","_hoisted_3","y","fill","_hoisted_4"],"mappings":"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"}