Prettified all files.
This commit is contained in:
+115
-86
@@ -1467,7 +1467,7 @@ import Tooltip from './tooltip.js'
|
||||
|
||||
/**
|
||||
* Class that represents a PixiJS Slider.
|
||||
*
|
||||
*
|
||||
* @example
|
||||
* // Create the app
|
||||
* const app = new PIXIApp({
|
||||
@@ -1475,7 +1475,7 @@ import Tooltip from './tooltip.js'
|
||||
* width: 900,
|
||||
* height: 250
|
||||
* }).setup().run()
|
||||
*
|
||||
*
|
||||
* // Create the slider
|
||||
* const slider = new Slider({
|
||||
* x: 10,
|
||||
@@ -1491,10 +1491,9 @@ import Tooltip from './tooltip.js'
|
||||
* @see {@link https://www.iwm-tuebingen.de/iwmbrowser/lib/pixi/slider.html|DocTest}
|
||||
*/
|
||||
export default class Slider extends PIXI.Container {
|
||||
|
||||
/**
|
||||
* Creates an instance of a Slider.
|
||||
*
|
||||
*
|
||||
* @constructor
|
||||
* @param {object} [opts] - An options object to specify to style and behaviour of the slider.
|
||||
* @param {number} [opts.id=auto generated] - The id of the slider.
|
||||
@@ -1522,46 +1521,49 @@ export default class Slider extends PIXI.Container {
|
||||
* @param {onUpdateCallback} [opts.onUpdate] - Executed when the slider control is moved.
|
||||
* @param {onCompleteCallback} [opts.onComplete] - Executed when the slider control was dropped.
|
||||
* @param {string|object} [opts.tooltip] - A string for the label of the tooltip or an object to configure the tooltip
|
||||
* to display.
|
||||
* to display.
|
||||
* @param {boolean} [opts.visible=true] - Is the slider initially visible (property visible)?
|
||||
*/
|
||||
constructor(opts = {}) {
|
||||
|
||||
super()
|
||||
|
||||
|
||||
const theme = Theme.fromString(opts.theme)
|
||||
this.theme = theme
|
||||
|
||||
this.opts = Object.assign({}, {
|
||||
id: PIXI.utils.uid(),
|
||||
x: 0,
|
||||
y: 0,
|
||||
width: 250,
|
||||
height: 2,
|
||||
container: null,
|
||||
fill: theme.fill,
|
||||
fillAlpha: theme.fillAlpha,
|
||||
stroke: theme.stroke,
|
||||
strokeWidth: theme.strokeWidth,
|
||||
strokeAlpha: theme.strokeAlpha,
|
||||
controlFill: theme.fill,
|
||||
controlFillAlpha: .5,
|
||||
controlStroke: theme.primaryColor,
|
||||
controlStrokeWidth: 2,
|
||||
controlStrokeAlpha: theme.strokeAlpha,
|
||||
controlRadius: 16,
|
||||
orientation: 'horizontal',
|
||||
min: 0,
|
||||
max: 100,
|
||||
value: 0,
|
||||
disabled: false,
|
||||
onStart: null,
|
||||
onUpdate: null,
|
||||
onComplete: null,
|
||||
tooltip: null,
|
||||
visible: true
|
||||
}, opts)
|
||||
|
||||
this.opts = Object.assign(
|
||||
{},
|
||||
{
|
||||
id: PIXI.utils.uid(),
|
||||
x: 0,
|
||||
y: 0,
|
||||
width: 250,
|
||||
height: 2,
|
||||
container: null,
|
||||
fill: theme.fill,
|
||||
fillAlpha: theme.fillAlpha,
|
||||
stroke: theme.stroke,
|
||||
strokeWidth: theme.strokeWidth,
|
||||
strokeAlpha: theme.strokeAlpha,
|
||||
controlFill: theme.fill,
|
||||
controlFillAlpha: 0.5,
|
||||
controlStroke: theme.primaryColor,
|
||||
controlStrokeWidth: 2,
|
||||
controlStrokeAlpha: theme.strokeAlpha,
|
||||
controlRadius: 16,
|
||||
orientation: 'horizontal',
|
||||
min: 0,
|
||||
max: 100,
|
||||
value: 0,
|
||||
disabled: false,
|
||||
onStart: null,
|
||||
onUpdate: null,
|
||||
onComplete: null,
|
||||
tooltip: null,
|
||||
visible: true
|
||||
},
|
||||
opts
|
||||
)
|
||||
|
||||
this.opts.container = this.opts.container || this
|
||||
|
||||
// Validation
|
||||
@@ -1589,7 +1591,7 @@ export default class Slider extends PIXI.Container {
|
||||
this.sliderObj = null
|
||||
this.control = null
|
||||
this.tooltip = null
|
||||
|
||||
|
||||
this.visible = this.opts.visible
|
||||
|
||||
// setup
|
||||
@@ -1600,23 +1602,26 @@ export default class Slider extends PIXI.Container {
|
||||
//-----------------
|
||||
this.layout()
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates children and instantiates everything.
|
||||
*
|
||||
*
|
||||
* @private
|
||||
* @return {Slider} A reference to the slider for chaining.
|
||||
*/
|
||||
setup() {
|
||||
|
||||
// Container events
|
||||
//-----------------
|
||||
const container = this.opts.container
|
||||
|
||||
this.on('pointermove', e => {
|
||||
if (this.control.dragging) {
|
||||
const moveX = this.control.event.data.getLocalPosition(this.control.parent).x
|
||||
this._value = this.pixelToValue(moveX - this.control.delta - this.opts.controlRadius)
|
||||
const moveX = this.control.event.data.getLocalPosition(
|
||||
this.control.parent
|
||||
).x
|
||||
this._value = this.pixelToValue(
|
||||
moveX - this.control.delta - this.opts.controlRadius
|
||||
)
|
||||
let x = this.valueToPixel(this._value) + this.opts.controlRadius
|
||||
this.control.x = x
|
||||
|
||||
@@ -1628,8 +1633,16 @@ export default class Slider extends PIXI.Container {
|
||||
|
||||
if (container instanceof Element) {
|
||||
container.addEventListener('pointerup', e => this.onEnd(e), false)
|
||||
container.addEventListener('pointercancel', e => this.onEnd(e), false)
|
||||
container.addEventListener('pointerleave', e => this.onEnd(e), false)
|
||||
container.addEventListener(
|
||||
'pointercancel',
|
||||
e => this.onEnd(e),
|
||||
false
|
||||
)
|
||||
container.addEventListener(
|
||||
'pointerleave',
|
||||
e => this.onEnd(e),
|
||||
false
|
||||
)
|
||||
container.addEventListener('pointerout', e => this.onEnd(e), false)
|
||||
container.addEventListener('mouseup', e => this.onEnd(e), false)
|
||||
container.addEventListener('mousecancel', e => this.onEnd(e), false)
|
||||
@@ -1660,7 +1673,7 @@ export default class Slider extends PIXI.Container {
|
||||
control.event = e
|
||||
control.delta = e.data.getLocalPosition(this.control).x
|
||||
control.dragging = true
|
||||
|
||||
|
||||
if (this.opts.onStart) {
|
||||
this.opts.onStart.call(this, e, this)
|
||||
}
|
||||
@@ -1669,20 +1682,20 @@ export default class Slider extends PIXI.Container {
|
||||
this.control = control
|
||||
|
||||
this.addChild(this.control)
|
||||
|
||||
|
||||
// interaction
|
||||
//-----------------
|
||||
this.sliderObj.on('pointerover', e => {
|
||||
TweenLite.to(this.control, this.theme.fast, {alpha: .83})
|
||||
TweenLite.to(this.control, this.theme.fast, { alpha: 0.83 })
|
||||
})
|
||||
|
||||
this.sliderObj.on('pointerout', e => {
|
||||
TweenLite.to(this.control, this.theme.fast, {alpha: 1})
|
||||
TweenLite.to(this.control, this.theme.fast, { alpha: 1 })
|
||||
})
|
||||
|
||||
this.sliderObj.on('pointerdown', e => {
|
||||
this.sliderObj.pointerdowned = true
|
||||
TweenLite.to(this.control, this.theme.fast, {alpha: .7})
|
||||
TweenLite.to(this.control, this.theme.fast, { alpha: 0.7 })
|
||||
})
|
||||
|
||||
// Click on the slider bar
|
||||
@@ -1690,15 +1703,17 @@ export default class Slider extends PIXI.Container {
|
||||
if (this.sliderObj.pointerdowned) {
|
||||
this.sliderObj.pointerdowned = false
|
||||
const position = e.data.getLocalPosition(this.control.parent)
|
||||
this.value = this.pixelToValue(position.x - this.opts.controlRadius)
|
||||
TweenLite.to(this.control, this.theme.fast, {alpha: .83})
|
||||
this.value = this.pixelToValue(
|
||||
position.x - this.opts.controlRadius
|
||||
)
|
||||
TweenLite.to(this.control, this.theme.fast, { alpha: 0.83 })
|
||||
}
|
||||
})
|
||||
|
||||
// disabled
|
||||
//-----------------
|
||||
this.disabled = this.opts.disabled
|
||||
|
||||
|
||||
// tooltip
|
||||
//-----------------
|
||||
if (this.opts.tooltip) {
|
||||
@@ -1715,14 +1730,13 @@ export default class Slider extends PIXI.Container {
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Should be called to refresh the layout of the slider. Can be used after resizing.
|
||||
*
|
||||
*
|
||||
* @return {Slider} A reference to the slider for chaining.
|
||||
*/
|
||||
layout() {
|
||||
|
||||
// set position
|
||||
//-----------------
|
||||
this.position.set(this.opts.x, this.opts.y)
|
||||
@@ -1733,15 +1747,14 @@ export default class Slider extends PIXI.Container {
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Draws the slider to the canvas.
|
||||
*
|
||||
*
|
||||
* @private
|
||||
* @return {Slider} A reference to the slider for chaining.
|
||||
*/
|
||||
draw() {
|
||||
|
||||
const r = this.radius
|
||||
const cr = this.opts.controlRadius
|
||||
const w = this.opts.width
|
||||
@@ -1752,12 +1765,16 @@ export default class Slider extends PIXI.Container {
|
||||
this.sliderObj.clear()
|
||||
this.sliderObj.beginFill(0xffffff, 0)
|
||||
this.sliderObj.drawRect(0, 0, x + w + cr, cr * 2)
|
||||
this.sliderObj.lineStyle(this.opts.strokeWidth, this.opts.stroke, this.opts.strokeAlpha)
|
||||
this.sliderObj.lineStyle(
|
||||
this.opts.strokeWidth,
|
||||
this.opts.stroke,
|
||||
this.opts.strokeAlpha
|
||||
)
|
||||
this.sliderObj.beginFill(this.opts.fill, this.opts.fillAlpha)
|
||||
this.sliderObj.moveTo(x, y)
|
||||
this.sliderObj.lineTo(x + w, y)
|
||||
this.sliderObj.arcTo(x + w + r, y, x + w + r, y + r, r)
|
||||
this.sliderObj.lineTo(x + w + r, y + r + 1) // BUGFIX: If not specified, there is a small area without a stroke.
|
||||
this.sliderObj.lineTo(x + w + r, y + r + 1) // BUGFIX: If not specified, there is a small area without a stroke.
|
||||
this.sliderObj.arcTo(x + w + r, y + h, x + w, y + h, r)
|
||||
this.sliderObj.lineTo(x, y + h)
|
||||
this.sliderObj.arcTo(x - r, y + h, x - r, y + r, r)
|
||||
@@ -1766,10 +1783,20 @@ export default class Slider extends PIXI.Container {
|
||||
|
||||
// Draw control
|
||||
this.control.clear()
|
||||
this.control.lineStyle(this.opts.controlStrokeWidth, this.opts.controlStroke, this.opts.controlStrokeAlpha)
|
||||
this.control.beginFill(this.opts.controlFill, this.opts.controlFillAlpha)
|
||||
this.control.lineStyle(
|
||||
this.opts.controlStrokeWidth,
|
||||
this.opts.controlStroke,
|
||||
this.opts.controlStrokeAlpha
|
||||
)
|
||||
this.control.beginFill(
|
||||
this.opts.controlFill,
|
||||
this.opts.controlFillAlpha
|
||||
)
|
||||
this.control.drawCircle(0, 0, cr - 1)
|
||||
this.control.beginFill(this.opts.controlStroke, this.opts.controlStrokeAlpha)
|
||||
this.control.beginFill(
|
||||
this.opts.controlStroke,
|
||||
this.opts.controlStrokeAlpha
|
||||
)
|
||||
this.control.drawCircle(0, 0, cr / 6)
|
||||
this.control.endFill()
|
||||
|
||||
@@ -1778,12 +1805,11 @@ export default class Slider extends PIXI.Container {
|
||||
|
||||
/**
|
||||
* Executed, when the slider control movement ended.
|
||||
*
|
||||
*
|
||||
* @private
|
||||
* @return {Slider} A reference to the slider for chaining.
|
||||
*/
|
||||
onEnd(e) {
|
||||
|
||||
if (this.control.dragging) {
|
||||
this.control.event = null
|
||||
this.control.dragging = false
|
||||
@@ -1797,9 +1823,9 @@ export default class Slider extends PIXI.Container {
|
||||
|
||||
/**
|
||||
* Calculates the value for a given pixel.
|
||||
*
|
||||
*
|
||||
* @private
|
||||
* @param {number} value
|
||||
* @param {number} value
|
||||
* @returns {number} The calucalted pixel.
|
||||
*/
|
||||
valueToPixel(value) {
|
||||
@@ -1808,14 +1834,17 @@ export default class Slider extends PIXI.Container {
|
||||
} else if (value > this.opts.max) {
|
||||
value = this.opts.max
|
||||
}
|
||||
return this.opts.width * (value - this.opts.min) / (this.opts.max - this.opts.min)
|
||||
return (
|
||||
(this.opts.width * (value - this.opts.min)) /
|
||||
(this.opts.max - this.opts.min)
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the pixel for a given value.
|
||||
*
|
||||
*
|
||||
* @private
|
||||
* @param {number} pixel
|
||||
* @param {number} pixel
|
||||
* @returns {number} The calucalted value.
|
||||
*/
|
||||
pixelToValue(pixel) {
|
||||
@@ -1824,12 +1853,15 @@ export default class Slider extends PIXI.Container {
|
||||
} else if (pixel > this.opts.width) {
|
||||
pixel = this.opts.width
|
||||
}
|
||||
return this.opts.min + ((this.opts.max - this.opts.min) * pixel / this.opts.width)
|
||||
return (
|
||||
this.opts.min +
|
||||
((this.opts.max - this.opts.min) * pixel) / this.opts.width
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets or sets the value.
|
||||
*
|
||||
*
|
||||
* @member {number}
|
||||
*/
|
||||
get value() {
|
||||
@@ -1845,27 +1877,26 @@ export default class Slider extends PIXI.Container {
|
||||
|
||||
const x = this.valueToPixel(value) + this.opts.controlRadius
|
||||
|
||||
TweenLite.to(this.control, this.theme.fast, {x})
|
||||
TweenLite.to(this.control, this.theme.fast, { x })
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets or sets the disabled state. When disabled, the slider cannot be clicked.
|
||||
*
|
||||
*
|
||||
* @member {boolean}
|
||||
*/
|
||||
get disabled() {
|
||||
return this._disabled
|
||||
}
|
||||
set disabled(value) {
|
||||
|
||||
this._disabled = value
|
||||
|
||||
|
||||
if (this._disabled) {
|
||||
this.interactive = false
|
||||
this.sliderObj.interactive = false
|
||||
this.control.interactive = false
|
||||
this.control.buttonMode = false
|
||||
this.alpha = .5
|
||||
this.alpha = 0.5
|
||||
} else {
|
||||
this.interactive = true
|
||||
this.sliderObj.interactive = true
|
||||
@@ -1877,11 +1908,10 @@ export default class Slider extends PIXI.Container {
|
||||
|
||||
/**
|
||||
* Shows the slider (sets his alpha values to 1).
|
||||
*
|
||||
*
|
||||
* @return {Slider} A reference to the slider for chaining.
|
||||
*/
|
||||
show() {
|
||||
|
||||
this.opts.strokeAlpha = 1
|
||||
this.opts.fillAlpha = 1
|
||||
this.opts.controlStrokeAlpha = 1
|
||||
@@ -1891,14 +1921,13 @@ export default class Slider extends PIXI.Container {
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Hides the slider (sets his alpha values to 1).
|
||||
*
|
||||
*
|
||||
* @return {Slider} A reference to the slider for chaining.
|
||||
*/
|
||||
hide() {
|
||||
|
||||
this.opts.strokeAlpha = 0
|
||||
this.opts.fillAlpha = 0
|
||||
this.opts.controlStrokeAlpha = 0
|
||||
@@ -1922,7 +1951,7 @@ export default class Slider extends PIXI.Container {
|
||||
|
||||
<footer class="content-size">
|
||||
<div class="footer">
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.2</a> on Wed Jul 10 2019 11:54:25 GMT+0200 (Mitteleuropäische Sommerzeit)
|
||||
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.3</a> on Thu Jul 18 2019 12:16:18 GMT+0200 (Mitteleuropäische Sommerzeit)
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user