Merged versions for PixiJS 4 and 5.
This commit is contained in:
parent
06aec0308d
commit
08a9dbdf1d
82570
dist/iwmlib.3rdparty.js
vendored
82570
dist/iwmlib.3rdparty.js
vendored
File diff suppressed because it is too large
Load Diff
2
dist/iwmlib.3rdparty.min.js
vendored
2
dist/iwmlib.3rdparty.min.js
vendored
File diff suppressed because one or more lines are too long
11
dist/iwmlib.pixi.js
vendored
11
dist/iwmlib.pixi.js
vendored
@ -3796,7 +3796,8 @@
|
||||
resolution,
|
||||
autoResize,
|
||||
backgroundColor,
|
||||
forceCanvas
|
||||
forceCanvas,
|
||||
roundPixels // not needed for PixiJS >= 5
|
||||
});
|
||||
|
||||
this.width = width;
|
||||
@ -3808,8 +3809,12 @@
|
||||
this.orient = null;
|
||||
this.originalMapPositionToPoint = null;
|
||||
this.monkeyPatchMapping = monkeyPatchMapping;
|
||||
PIXI.settings.ROUND_PIXELS = roundPixels;
|
||||
PIXI.GRAPHICS_CURVES.adaptive = adaptive;
|
||||
if (parseInt(PIXI.VERSION) >= 5) {
|
||||
PIXI.settings.ROUND_PIXELS = roundPixels;
|
||||
PIXI.GRAPHICS_CURVES.adaptive = adaptive;
|
||||
} else {
|
||||
PIXI.Graphics.CURVES.adaptive = adaptive;
|
||||
}
|
||||
this.graphql = graphql;
|
||||
if (fullScreen || autoResize) {
|
||||
console.log('App is in fullScreen mode or autoResize mode');
|
||||
|
@ -108,7 +108,8 @@ export default class PIXIApp extends PIXI.Application {
|
||||
resolution,
|
||||
autoResize,
|
||||
backgroundColor,
|
||||
forceCanvas
|
||||
forceCanvas,
|
||||
roundPixels // not needed for PixiJS >= 5
|
||||
})
|
||||
|
||||
this.width = width
|
||||
@ -120,8 +121,12 @@ export default class PIXIApp extends PIXI.Application {
|
||||
this.orient = null
|
||||
this.originalMapPositionToPoint = null
|
||||
this.monkeyPatchMapping = monkeyPatchMapping
|
||||
PIXI.settings.ROUND_PIXELS = roundPixels
|
||||
PIXI.GRAPHICS_CURVES.adaptive = adaptive
|
||||
if (parseInt(PIXI.VERSION) >= 5) {
|
||||
PIXI.settings.ROUND_PIXELS = roundPixels
|
||||
PIXI.GRAPHICS_CURVES.adaptive = adaptive
|
||||
} else {
|
||||
PIXI.Graphics.CURVES.adaptive = adaptive
|
||||
}
|
||||
this.graphql = graphql
|
||||
if (fullScreen || autoResize) {
|
||||
console.log('App is in fullScreen mode or autoResize mode')
|
||||
|
@ -50,7 +50,8 @@ const index = new Index(itemTemplate, [
|
||||
['Scatter', 'scatter.html'],
|
||||
['Flip Effect', 'flipeffect.html'],
|
||||
['Blur Filter', 'blurfilter.html'],
|
||||
['Text', 'text.html']
|
||||
['Text', 'text.html'],
|
||||
['Scrollview', 'scrollview.html']
|
||||
],
|
||||
null)
|
||||
index.load()
|
||||
|
1
lib/pixi/scrollbox.min.js
vendored
Normal file
1
lib/pixi/scrollbox.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
74
lib/pixi/scrollview.html
Normal file
74
lib/pixi/scrollview.html
Normal file
@ -0,0 +1,74 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
|
||||
<title>PIXI Scrollview</title>
|
||||
|
||||
<link rel="stylesheet" href="../3rdparty/highlight/styles/default.css">
|
||||
<link rel="stylesheet" href="../../css/doctest.css">
|
||||
|
||||
<script src="../3rdparty/highlight/highlight.pack.js"></script>
|
||||
|
||||
<script src="../../dist/iwmlib.3rdparty.js"></script>
|
||||
<script src="../../dist/iwmlib.js"></script>
|
||||
<script src="../../dist/iwmlib.pixi.js"></script>
|
||||
<!-- <script src="./scrollbox.min.js"></script> -->
|
||||
</head>
|
||||
<body onload="Doctest.run()">
|
||||
<h1>Scrollview</h1>
|
||||
<p>A configurable scrollbox designed for pixi.js.</p>
|
||||
<p><strong>Features:</strong></p>
|
||||
<p>
|
||||
<ul>
|
||||
<li>Scrollview uses a mask to clip to desired boxWidth/boxHeight size</li>
|
||||
<li>Scrollview scrolls with scrollbars (options.overflow=scroll)</li>
|
||||
<li>Scrollview's scrollbars may be hidden when not needed (options.overflow=auto or hidden)</li>
|
||||
<li>Scrollview may also be scrolled by dragging on the content window (options.dragScroll=true)</li>
|
||||
</ul>
|
||||
</p>
|
||||
<p>See <a href="https://davidfig.github.io/pixi-scrollbox/jsdoc/Scrollbox.html">https://davidfig.github.io/pixi-scrollbox/jsdoc/Scrollbox.html</a> and <a href="https://davidfig.github.io/pixi-viewport/jsdoc/Viewport.html">https://davidfig.github.io/pixi-viewport/jsdoc/Viewport.html</a></p>
|
||||
<p>Let's look at some switch examples:</p><br />
|
||||
<canvas id="canvas" class="interactive"></canvas>
|
||||
<p>
|
||||
What you should see: Many switches with very different styling and behaviour.
|
||||
</p>
|
||||
<script class="doctest">
|
||||
const app = new PIXIApp({
|
||||
view: canvas,
|
||||
width: 900,
|
||||
height: 250,
|
||||
transparent: false
|
||||
}).setup().run()
|
||||
|
||||
// let scrollview1 = new Scrollview({
|
||||
// x: 10,
|
||||
// y: 20
|
||||
// })
|
||||
|
||||
// let scrollview2 = new Scrollview({
|
||||
// x: 90,
|
||||
// y: 20,
|
||||
// fill: 0xfd355a,
|
||||
// fillActive: 0x5954d3,
|
||||
// controlFill: 0xfecd2d,
|
||||
// controlFillActive: 0xfd413b,
|
||||
// strokeActiveWidth: 4,
|
||||
// controlStrokeActive: 0x50d968,
|
||||
// controlStrokeActiveWidth: 12,
|
||||
// controlStrokeActiveAlpha: .8,
|
||||
// tooltip: 'Dies ist ein Switch'
|
||||
// })
|
||||
|
||||
// const scrollbox = new PIXI.extras.Scrollbox({boxWidth: 500, boxHeight: 200})
|
||||
// scrollbox.x = 70
|
||||
// scrollbox.y = 30
|
||||
|
||||
// const sprite = new PIXI.Sprite(resources.fulda.texture)
|
||||
// sprite.scale.set(.5, .5)
|
||||
// scrollbox.content.addChild(sprite)
|
||||
// app.stage.addChild(scrollbox)
|
||||
|
||||
// app.scene.addChild(switch1, switch2)
|
||||
</script>
|
||||
</body>
|
508
lib/pixi/scrollview.js
Normal file
508
lib/pixi/scrollview.js
Normal file
@ -0,0 +1,508 @@
|
||||
import Theme from './theme.js'
|
||||
import Tooltip from './tooltip.js'
|
||||
|
||||
/**
|
||||
* Callback for the switch action.
|
||||
*
|
||||
* @callback actionCallback
|
||||
* @param {object} event - The event object.
|
||||
* @param {Switch} switch - A reference to the switch (also this refers to the switch).
|
||||
*/
|
||||
|
||||
/**
|
||||
* Callback for the switch action.
|
||||
*
|
||||
* @callback actionActiveCallback
|
||||
* @param {object} event - The event object.
|
||||
* @param {Switch} switch - A reference to the switch (also this refers to the switch).
|
||||
*/
|
||||
|
||||
/**
|
||||
* Callback for the switch beforeAction.
|
||||
*
|
||||
* @callback beforeActionCallback
|
||||
* @param {object} event - The event object.
|
||||
* @param {Switch} switch - A reference to the switch (also this refers to the switch).
|
||||
*/
|
||||
|
||||
/**
|
||||
* Callback for the switch afterAction.
|
||||
*
|
||||
* @callback afterActionCallback
|
||||
* @param {object} event - The event object.
|
||||
* @param {Switch} switch - A reference to the switch (also this refers to the switch).
|
||||
*/
|
||||
|
||||
/**
|
||||
* Class that represents a PixiJS Switch.
|
||||
*
|
||||
* @example
|
||||
* // Create the app
|
||||
* const app = new PIXIApp({
|
||||
* view: canvas,
|
||||
* width: 900,
|
||||
* height: 250
|
||||
* }).setup().run()
|
||||
*
|
||||
* // Create the switch
|
||||
* const switch1 = new Switch({
|
||||
* x: 10,
|
||||
* y: 20
|
||||
* })
|
||||
*
|
||||
* // Add the switch to a DisplayObject
|
||||
* app.scene.addChild(switch1)
|
||||
*
|
||||
* @class
|
||||
* @extends PIXI.Container
|
||||
* @see {@link http://pixijs.download/dev/docs/PIXI.Container.html|PIXI.Container}
|
||||
* @see {@link https://www.iwm-tuebingen.de/iwmbrowser/lib/pixi/switch.html|DocTest}
|
||||
*/
|
||||
export default class Switch extends PIXI.Container {
|
||||
|
||||
/**
|
||||
* Creates an instance of a Switch.
|
||||
*
|
||||
* @constructor
|
||||
* @param {object} [opts] - An options object to specify to style and behaviour of the switch.
|
||||
* @param {number} [opts.id=auto generated] - The id of the switch.
|
||||
* @param {number} [opts.x=0] - The x position of the switch. Can be also set after creation with switch.x = 0.
|
||||
* @param {number} [opts.y=0] - The y position of the switch. Can be also set after creation with switch.y = 0.
|
||||
* @param {string|Theme} [opts.theme=dark] - The theme to use for this switch. Possible values are dark, light, red
|
||||
* or a Theme object.
|
||||
* @param {number} [opts.width=44] - The width of the switch.
|
||||
* @param {number} [opts.height=28] - The height of the switch.
|
||||
* @param {number} [opts.fill=Theme.fill] - The color of the switch background as a hex value.
|
||||
* @param {number} [opts.fillAlpha=Theme.fillAlpha] - The alpha value of the background.
|
||||
* @param {number} [opts.fillActive=Theme.fillActive] - The color of the switch background when activated.
|
||||
* @param {number} [opts.fillActiveAlpha=Theme.fillActiveAlpha] - The alpha value of the background when activated.
|
||||
* @param {number} [opts.stroke=Theme.stroke] - The color of the border as a hex value.
|
||||
* @param {number} [opts.strokeWidth=Theme.strokeWidth] - The width of the border in pixel.
|
||||
* @param {number} [opts.strokeAlpha=Theme.strokeAlpha] - The alpha value of the border.
|
||||
* @param {number} [opts.strokeActive=Theme.strokeActive] - The color of the border when activated.
|
||||
* @param {number} [opts.strokeActiveWidth=Theme.strokeActiveWidth] - The width of the border in pixel when activated.
|
||||
* @param {number} [opts.strokeActiveAlpha=Theme.strokeActiveAlpha] - The alpha value of the border when activated.
|
||||
* @param {number} [opts.controlFill=Theme.stroke] - The color of the switch control background as a hex value.
|
||||
* @param {number} [opts.controlFillAlpha=Theme.strokeAlpha] - The alpha value of the background.
|
||||
* @param {number} [opts.controlFillActive=Theme.stroke] - The color of the switch control background when activated.
|
||||
* @param {number} [opts.controlFillActiveAlpha=Theme.strokeAlpha] - The alpha value of the background when activated.
|
||||
* @param {number} [opts.controlStroke=Theme.stroke] - The color of the border as a hex value.
|
||||
* @param {number} [opts.controlStrokeWidth=Theme.strokeWidth * 0.8] - The width of the border in pixel.
|
||||
* @param {number} [opts.controlStrokeAlpha=Theme.strokeAlpha] - The alpha value of the border.
|
||||
* @param {number} [opts.controlStrokeActive=Theme.stroke] - The color of the border when activated.
|
||||
* @param {number} [opts.controlStrokeActiveWidth=Theme.strokeActiveWidth * 0.8] - The width of the border in pixel when activated.
|
||||
* @param {number} [opts.controlStrokeActiveAlpha=Theme.strokeActiveAlpha] - The alpha value of the border when activated.
|
||||
* @param {number} [opts.duration=Theme.fast] - The duration of the animation when the switch gets activated in seconds.
|
||||
* @param {number} [opts.durationActive=Theme.fast] - The duration of the animation when the switch gets deactivated in seconds.
|
||||
* @param {boolean} [opts.disabled=false] - Is the switch disabled? When disabled, the switch has a lower alpha value
|
||||
* and cannot be clicked (interactive is set to false).
|
||||
* @param {boolean} [opts.active=false] - Is the button initially active?
|
||||
* @param {actionCallback} [opts.action] - Executed when the switch was triggered in inactive state (by pointerup).
|
||||
* @param {actionActiveCallback} [opts.actionActive] - Executed when the button was triggered in active state (by pointerup).
|
||||
* @param {beforeActionCallback} [opts.beforeAction] - Executed before an action is triggered.
|
||||
* @param {afterActionCallback} [opts.afterAction] - Executed after an action was triggered.
|
||||
* @param {string|object} [opts.tooltip] - A string for the label of the tooltip or an object to configure the tooltip
|
||||
* to display.
|
||||
* @param {boolean} [opts.visible=true] - Is the switch 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: 44,
|
||||
height: 28,
|
||||
fill: theme.fill,
|
||||
fillAlpha: theme.fillAlpha,
|
||||
fillActive: theme.primaryColor,
|
||||
fillActiveAlpha: theme.fillActiveAlpha,
|
||||
stroke: theme.stroke,
|
||||
strokeWidth: theme.strokeWidth,
|
||||
strokeAlpha: theme.strokeAlpha,
|
||||
strokeActive: theme.primaryColor,
|
||||
strokeActiveWidth: theme.strokeActiveWidth,
|
||||
strokeActiveAlpha: theme.strokeActiveAlpha,
|
||||
controlFill: theme.stroke,
|
||||
controlFillAlpha: theme.strokeAlpha,
|
||||
controlFillActive: theme.stroke,
|
||||
controlFillActiveAlpha: theme.strokeAlpha,
|
||||
controlStroke: theme.stroke,
|
||||
controlStrokeWidth: theme.strokeWidth * .8,
|
||||
controlStrokeAlpha: theme.strokeAlpha,
|
||||
controlStrokeActive: theme.stroke,
|
||||
controlStrokeActiveWidth: theme.strokeActiveWidth * .8,
|
||||
controlStrokeActiveAlpha: theme.strokeActiveAlpha,
|
||||
duration: theme.fast,
|
||||
durationActive: theme.fast,
|
||||
disabled: false,
|
||||
active: false,
|
||||
action: null,
|
||||
actionActive: null,
|
||||
beforeAction: null,
|
||||
afterAction: null,
|
||||
tooltip: null,
|
||||
visible: true
|
||||
}, opts)
|
||||
|
||||
this.opts.controlRadius = this.opts.controlRadius || (this.opts.height / 2)
|
||||
this.opts.controlRadiusActive = this.opts.controlRadiusActive || this.opts.controlRadius
|
||||
|
||||
// Validation
|
||||
//-----------------
|
||||
if (this.opts.height > this.opts.width) {
|
||||
this.opts.height = this.opts.width
|
||||
}
|
||||
|
||||
// Properties
|
||||
//-----------------
|
||||
this.id = this.opts.id
|
||||
this.radius = this.opts.height / 2
|
||||
|
||||
this._active = null
|
||||
this._disabled = null
|
||||
|
||||
this.switchObj = null
|
||||
this.control = null
|
||||
this.tooltip = null
|
||||
|
||||
this.visible = this.opts.visible
|
||||
|
||||
// animated
|
||||
//-----------------
|
||||
this.tempAnimated = {
|
||||
fill: this.opts.fill,
|
||||
fillAlpha: this.opts.fillAlpha,
|
||||
stroke: this.opts.stroke,
|
||||
strokeWidth: this.opts.strokeWidth,
|
||||
strokeAlpha: this.opts.strokeAlpha,
|
||||
controlFill: this.opts.controlFill,
|
||||
controlFillAlpha: this.opts.controlFillAlpha,
|
||||
controlStroke: this.opts.controlStroke,
|
||||
controlStrokeWidth: this.opts.controlStrokeWidth,
|
||||
controlStrokeAlpha: this.opts.controlStrokeAlpha,
|
||||
controlRadius: this.opts.controlRadius
|
||||
}
|
||||
|
||||
// setup
|
||||
//-----------------
|
||||
this.setup()
|
||||
|
||||
// layout
|
||||
//-----------------
|
||||
this.layout()
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates children and instantiates everything.
|
||||
*
|
||||
* @private
|
||||
* @return {Switch} A reference to the switch for chaining.
|
||||
*/
|
||||
setup() {
|
||||
|
||||
// Switch
|
||||
//-----------------
|
||||
let switchObj = new PIXI.Graphics()
|
||||
this.switchObj = switchObj
|
||||
this.addChild(switchObj)
|
||||
|
||||
// Control
|
||||
//-----------------
|
||||
this.xInactive = this.opts.controlRadius
|
||||
this.xActive = this.opts.width - this.opts.controlRadiusActive
|
||||
|
||||
let control = new PIXI.Graphics()
|
||||
control.x = this.opts.active ? this.xActive : this.xInactive
|
||||
control.y = this.opts.height / 2
|
||||
|
||||
this.control = control
|
||||
|
||||
this.addChild(this.control)
|
||||
|
||||
// interaction
|
||||
//-----------------
|
||||
this.switchObj.on('pointerover', e => {
|
||||
TweenLite.to(this.control, this.theme.fast, {alpha: .83})
|
||||
})
|
||||
|
||||
this.switchObj.on('pointerout', e => {
|
||||
TweenLite.to(this.control, this.theme.fast, {alpha: 1})
|
||||
})
|
||||
|
||||
this.switchObj.on('pointerdown', e => {
|
||||
TweenLite.to(this.control, this.theme.fast, {alpha: .7})
|
||||
})
|
||||
|
||||
this.switchObj.on('pointerup', e => {
|
||||
|
||||
if (this.opts.beforeAction) {
|
||||
this.opts.beforeAction.call(this, e, this)
|
||||
}
|
||||
|
||||
this.active = !this.active
|
||||
|
||||
if (this.active) {
|
||||
if (this.opts.action) {
|
||||
this.opts.action.call(this, e, this)
|
||||
}
|
||||
} else {
|
||||
if (this.opts.actionActive) {
|
||||
this.opts.actionActive.call(this, e, this)
|
||||
}
|
||||
}
|
||||
|
||||
TweenLite.to(this.control, this.theme.fast, {alpha: .83})
|
||||
|
||||
if (this.opts.afterAction) {
|
||||
this.opts.afterAction.call(this, e, this)
|
||||
}
|
||||
})
|
||||
|
||||
// disabled
|
||||
//-----------------
|
||||
this.disabled = this.opts.disabled
|
||||
|
||||
// active
|
||||
//-----------------
|
||||
this.active = this.opts.active
|
||||
|
||||
// tooltip
|
||||
//-----------------
|
||||
if (this.opts.tooltip) {
|
||||
if (typeof this.opts.tooltip === 'string') {
|
||||
this.tooltip = new Tooltip({
|
||||
object: this,
|
||||
content: this.opts.tooltip
|
||||
})
|
||||
} else {
|
||||
this.opts.tooltip.object = this
|
||||
this.tooltip = new Tooltip(this.opts.tooltip)
|
||||
}
|
||||
}
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* Should be called to refresh the layout of the switch. Can be used after resizing.
|
||||
*
|
||||
* @return {Switch} A reference to the switch for chaining.
|
||||
*/
|
||||
layout() {
|
||||
|
||||
// set position
|
||||
//-----------------
|
||||
this.position.set(this.opts.x, this.opts.y)
|
||||
|
||||
// draw
|
||||
//-----------------
|
||||
this.draw()
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* Draws the switch to the canvas.
|
||||
*
|
||||
* @private
|
||||
* @return {Switch} A reference to the switch for chaining.
|
||||
*/
|
||||
draw() {
|
||||
|
||||
this.switchObj.clear()
|
||||
if (this.active) {
|
||||
this.switchObj.lineStyle(this.opts.strokeActiveWidth, this.opts.strokeActive, this.opts.strokeActiveAlpha)
|
||||
this.switchObj.beginFill(this.opts.fillActive, this.opts.fillActiveAlpha)
|
||||
} else {
|
||||
this.switchObj.lineStyle(this.opts.strokeWidth, this.opts.stroke, this.opts.strokeAlpha)
|
||||
this.switchObj.beginFill(this.opts.fill, this.opts.fillAlpha)
|
||||
}
|
||||
this.switchObj.moveTo(this.radius, 0)
|
||||
this.switchObj.lineTo(this.opts.width - this.radius, 0)
|
||||
this.switchObj.arcTo(this.opts.width, 0, this.opts.width, this.radius, this.radius)
|
||||
this.switchObj.lineTo(this.opts.width, this.radius + 1) // BUGFIX: If not specified, there is a small area without a stroke.
|
||||
this.switchObj.arcTo(this.opts.width, this.opts.height, this.opts.width - this.radius, this.opts.height, this.radius)
|
||||
this.switchObj.lineTo(this.radius, this.opts.height)
|
||||
this.switchObj.arcTo(0, this.opts.height, 0, this.radius, this.radius)
|
||||
this.switchObj.arcTo(0, 0, this.radius, 0, this.radius)
|
||||
this.switchObj.endFill()
|
||||
|
||||
// Draw control
|
||||
this.control.clear()
|
||||
if (this.active) {
|
||||
this.control.lineStyle(this.opts.controlStrokeActiveWidth, this.opts.controlStrokeActive, this.opts.controlStrokeActiveAlpha)
|
||||
this.control.beginFill(this.opts.controlFillActive, this.opts.controlFillActiveAlpha)
|
||||
this.control.drawCircle(0, 0, this.opts.controlRadiusActive - 1)
|
||||
} else {
|
||||
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, this.opts.controlRadius - 1)
|
||||
}
|
||||
this.control.endFill()
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* Draws the animation.
|
||||
*
|
||||
* @private
|
||||
* @return {Switch} A reference to the switch for chaining.
|
||||
*/
|
||||
drawAnimated() {
|
||||
|
||||
this.switchObj.clear()
|
||||
this.switchObj.lineStyle(this.tempAnimated.strokeWidth, this.tempAnimated.stroke, this.tempAnimated.strokeAlpha)
|
||||
this.switchObj.beginFill(this.tempAnimated.fill, this.tempAnimated.fillAlpha)
|
||||
this.switchObj.moveTo(this.radius, 0)
|
||||
this.switchObj.lineTo(this.opts.width - this.radius, 0)
|
||||
this.switchObj.arcTo(this.opts.width, 0, this.opts.width, this.radius, this.radius)
|
||||
this.switchObj.lineTo(this.opts.width, this.radius + 1) // BUGFIX: If not specified, there is a small area without a stroke.
|
||||
this.switchObj.arcTo(this.opts.width, this.opts.height, this.opts.width - this.radius, this.opts.height, this.radius)
|
||||
this.switchObj.lineTo(this.radius, this.opts.height)
|
||||
this.switchObj.arcTo(0, this.opts.height, 0, this.radius, this.radius)
|
||||
this.switchObj.arcTo(0, 0, this.radius, 0, this.radius)
|
||||
this.switchObj.endFill()
|
||||
|
||||
this.control.clear()
|
||||
this.control.lineStyle(this.tempAnimated.controlStrokeWidth, this.tempAnimated.controlStroke, this.tempAnimated.controlStrokeAlpha)
|
||||
this.control.beginFill(this.tempAnimated.controlFill, this.tempAnimated.controlFillAlpha)
|
||||
this.control.drawCircle(0, 0, this.tempAnimated.controlRadius - 1)
|
||||
this.control.endFill()
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets or sets the active state.
|
||||
*
|
||||
* @member {boolean}
|
||||
*/
|
||||
get active() {
|
||||
return this._active
|
||||
}
|
||||
|
||||
set active(value) {
|
||||
|
||||
this._active = value
|
||||
|
||||
if (this._active) {
|
||||
|
||||
TweenLite.to(this.control, this.opts.duration, {x: this.xActive})
|
||||
TweenLite.to(this.tempAnimated, this.opts.duration, {
|
||||
colorProps: {
|
||||
fill: this.opts.fillActive,
|
||||
stroke: this.opts.strokeActive,
|
||||
controlFill: this.opts.controlFillActive,
|
||||
controlStroke: this.opts.controlStrokeActive,
|
||||
format: 'number'
|
||||
},
|
||||
fillAlpha: this.opts.fillActiveAlpha,
|
||||
strokeWidth: this.opts.strokeActiveWidth,
|
||||
strokeAlpha: this.opts.strokeActiveAlpha,
|
||||
controlFillAlpha: this.opts.controlFillActiveAlpha,
|
||||
controlStrokeWidth: this.opts.controlStrokeActiveWidth,
|
||||
controlStrokeAlpha: this.opts.controlStrokeActiveAlpha,
|
||||
controlRadius: this.opts.controlRadiusActive,
|
||||
onUpdate: () => this.drawAnimated(),
|
||||
onComplete: () => this.draw()
|
||||
})
|
||||
|
||||
|
||||
} else {
|
||||
TweenLite.to(this.control, this.opts.durationActive, {x: this.xInactive})
|
||||
TweenLite.to(this.tempAnimated, this.opts.durationActive, {
|
||||
colorProps: {
|
||||
fill: this.opts.fill,
|
||||
stroke: this.opts.stroke,
|
||||
controlFill: this.opts.controlFill,
|
||||
controlStroke: this.opts.controlStroke,
|
||||
format: 'number'
|
||||
},
|
||||
fillAlpha: this.opts.fillAlpha,
|
||||
strokeWidth: this.opts.strokeWidth,
|
||||
strokeAlpha: this.opts.strokeAlpha,
|
||||
controlFillAlpha: this.opts.controlFillAlpha,
|
||||
controlStrokeWidth: this.opts.controlStrokeWidth,
|
||||
controlStrokeAlpha: this.opts.controlStrokeAlpha,
|
||||
controlRadius: this.opts.controlRadius,
|
||||
onUpdate: () => this.drawAnimated(),
|
||||
onComplete: () => this.draw()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets or sets the disabled state. When disabled, the switch cannot be clicked.
|
||||
*
|
||||
* @member {boolean}
|
||||
*/
|
||||
get disabled() {
|
||||
return this._disabled
|
||||
}
|
||||
|
||||
set disabled(value) {
|
||||
|
||||
this._disabled = value
|
||||
|
||||
if (this._disabled) {
|
||||
this.switchObj.interactive = false
|
||||
this.switchObj.buttonMode = false
|
||||
this.switchObj.alpha = .5
|
||||
this.control.alpha = .5
|
||||
} else {
|
||||
this.switchObj.interactive = true
|
||||
this.switchObj.buttonMode = true
|
||||
this.switchObj.alpha = 1
|
||||
this.control.alpha = 1
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the switch (sets his alpha values to 1).
|
||||
*
|
||||
* @return {Switch} A reference to the switch for chaining.
|
||||
*/
|
||||
show() {
|
||||
|
||||
this.opts.strokeAlpha = 1
|
||||
this.opts.strokeActiveAlpha = 1
|
||||
this.opts.fillAlpha = 1
|
||||
this.opts.fillActiveAlpha = 1
|
||||
this.opts.controlStrokeAlpha = 1
|
||||
this.opts.controlStrokeActiveAlpha = 1
|
||||
this.opts.controlFillAlpha = 1
|
||||
this.opts.controlFillActiveAlpha = 1
|
||||
|
||||
this.layout()
|
||||
|
||||
return this
|
||||
}
|
||||
|
||||
/**
|
||||
* Hides the switch (sets his alpha values to 1).
|
||||
*
|
||||
* @return {Switch} A reference to the switch for chaining.
|
||||
*/
|
||||
hide() {
|
||||
|
||||
this.opts.strokeAlpha = 0
|
||||
this.opts.strokeActiveAlpha = 0
|
||||
this.opts.fillAlpha = 0
|
||||
this.opts.fillActiveAlpha = 0
|
||||
this.opts.controlStrokeAlpha = 0
|
||||
this.opts.controlStrokeActiveAlpha = 0
|
||||
this.opts.controlFillAlpha = 0
|
||||
this.opts.controlFillActiveAlpha = 0
|
||||
|
||||
this.layout()
|
||||
|
||||
return this
|
||||
}
|
||||
}
|
@ -9,10 +9,10 @@
|
||||
<link rel="stylesheet" href="../../css/doctest.css">
|
||||
|
||||
<script src="../3rdparty/highlight/highlight.pack.js"></script>
|
||||
<script src="../3rdparty/all.js"></script>
|
||||
|
||||
<script src="../all.js"></script>
|
||||
<script src="./all.js"></script>
|
||||
<script src="../../dist/iwmlib.3rdparty.js"></script>
|
||||
<script src="../../dist/iwmlib.js"></script>
|
||||
<script src="../../dist/iwmlib.pixi.js"></script>
|
||||
</head>
|
||||
<body onload="Doctest.run()">
|
||||
<h1>Switch</h1>
|
||||
|
460
package-lock.json
generated
460
package-lock.json
generated
@ -12,64 +12,6 @@
|
||||
"commander": "^2.15.1"
|
||||
}
|
||||
},
|
||||
"@pixi/accessibility": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/accessibility/-/accessibility-5.0.0.tgz",
|
||||
"integrity": "sha512-7b8ZBI4Qz18I7Xsh8DYEvQ9A4tnAettplJ59aNAPPsa66r4cfnXhjirzFbd6VnjeXDj05ksi7MNdtrcDSVRppw==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/app": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/app/-/app-5.0.0.tgz",
|
||||
"integrity": "sha512-hoqnWK9qSNa+PjTWg2iUgpbtbvpnHNiaSED4bCz8b1TaI8oDrGjSaD4+la9AJjdUIWxD2E2P4+FCrDr31N+6sw==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/constants": {
|
||||
"version": "5.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/constants/-/constants-5.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-PrMmpD6EcQpwx4UkPnYcPuk63oqW3LG2Y+gFMEWVO0nBrkVw0JY/5uwJ9wRz0AiQotFdpd/AmMC3mZl8y1l7jw=="
|
||||
},
|
||||
"@pixi/core": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/core/-/core-5.0.0.tgz",
|
||||
"integrity": "sha512-TLWOt5Skmddj8BcAuUBOvy5Io6Y7VcZvqbsKFvCgwVO857g1ZvkNbhuVBErfRuKxzkKqng4DO9uOdvPAuUwfqQ==",
|
||||
"requires": {
|
||||
"@pixi/constants": "^5.0.0-rc.3",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/runner": "^5.0.0",
|
||||
"@pixi/settings": "^5.0.0",
|
||||
"@pixi/ticker": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/display": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/display/-/display-5.0.0.tgz",
|
||||
"integrity": "sha512-F3tJfrrBFhi0OrIXTWVK5I+GwFzG3bmBfnXNHc3iClU0IsQtw/bmz2LSTIjBb4HaXaNuNv5fvltfS5UywzneOQ==",
|
||||
"requires": {
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/settings": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/extract": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/extract/-/extract-5.0.0.tgz",
|
||||
"integrity": "sha512-ghzEWcunJV46exnlOIkzmrSbIgLYfD8Nb5P4H5JijTnaPUte1/1BT3nedHT8Law6mBtL2Cype0ZS72CbhaJVnw==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/filter-adjustment": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-adjustment/-/filter-adjustment-2.7.0.tgz",
|
||||
@ -83,14 +25,6 @@
|
||||
"@pixi/filter-kawase-blur": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"@pixi/filter-alpha": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-alpha/-/filter-alpha-5.0.0.tgz",
|
||||
"integrity": "sha512-6bGuedGAI4kcULa3NXTQSN7owlWQkDiw85xTVcgFYmOW4cH3Z1yOs6Sc4X2jzbVqDpn9v4riMur7sH4ZV6nzXA==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/filter-ascii": {
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-ascii/-/filter-ascii-2.7.1.tgz",
|
||||
@ -106,15 +40,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-bloom/-/filter-bloom-2.7.0.tgz",
|
||||
"integrity": "sha512-ZGtpQf3jRbvjr915hilFBTUSECTlbhZID0OcWeV5LBBeuOFrrHO7d9xBLpevbP+H/5/6wXpx29BDA0q7aCsK+A=="
|
||||
},
|
||||
"@pixi/filter-blur": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-blur/-/filter-blur-5.0.0.tgz",
|
||||
"integrity": "sha512-9OqS6LHPuzVMhuGEDjKc2PU2nDXL2g3unNLFn5ywQ69ISkN/xok6pgK3WZUuj0QhOls/HNbFLiI618lb7NNS1w==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/settings": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/filter-bulge-pinch": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-bulge-pinch/-/filter-bulge-pinch-2.7.0.tgz",
|
||||
@ -125,14 +50,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-color-map/-/filter-color-map-2.7.0.tgz",
|
||||
"integrity": "sha512-Yz1pYi5RGL9NR0DMPqd1+i61yegEhh06ipLMRyLRpi+PGaG3kSYTib1gQByKEgAW4DTJlgSz1WLCqF2PRjlMEw=="
|
||||
},
|
||||
"@pixi/filter-color-matrix": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-color-matrix/-/filter-color-matrix-5.0.0.tgz",
|
||||
"integrity": "sha512-UJneWxYE1ucr7FsoeBcZlkVMHbulf+vrhqdBCUWBtd2WWiYg2c7n2ZuP+WBIb8Z06bHHZXgQyTGoIaQkDBHStQ==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/filter-color-replace": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-color-replace/-/filter-color-replace-2.7.0.tgz",
|
||||
@ -153,15 +70,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-crt/-/filter-crt-2.7.0.tgz",
|
||||
"integrity": "sha512-4F6XIGniwPQkR2vc9XyaQAzauQ66GBvyUfX4raa2+ufhpVx+I2HPiSQYEBT6hahQgM0q5A/fThgjwSGAcVjHhw=="
|
||||
},
|
||||
"@pixi/filter-displacement": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-displacement/-/filter-displacement-5.0.0.tgz",
|
||||
"integrity": "sha512-MESiK0lOaqYES8dWcaCqOw2nGb6aFozRKl41OOIib+MCEg4BB91feZq8GadRpDPxgeigM5OLl1/V64jxw5lXlw==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3"
|
||||
}
|
||||
},
|
||||
"@pixi/filter-dot": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-dot/-/filter-dot-2.7.0.tgz",
|
||||
@ -180,14 +88,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-emboss/-/filter-emboss-2.7.0.tgz",
|
||||
"integrity": "sha512-u9J5pscppSTIhkbJZMLpFj7pAHggvifYFiK7ET7WlA2jHn78XkvFItEz3+ZeqypqbiP7V5mefGRlIHR2WrOZww=="
|
||||
},
|
||||
"@pixi/filter-fxaa": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-fxaa/-/filter-fxaa-5.0.0.tgz",
|
||||
"integrity": "sha512-hx1pqjjFf8iwTDwlJGPhewDToIqlQxj07G2DIp7PSAbAAJb7kbcCknvUOlAZtebGT5p/Jc2YgWEx99Nhd1YgWg==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/filter-glitch": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-glitch/-/filter-glitch-2.7.0.tgz",
|
||||
@ -218,14 +118,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-multi-color-replace/-/filter-multi-color-replace-2.7.0.tgz",
|
||||
"integrity": "sha512-WM7teXpWHZOC9/XonwbNC2g29ACaWCf1UxrPW+9hqiqNOByrot3fl8JZ04oeEEzJ8t+0MsE5KYIKYZA2TbPK5A=="
|
||||
},
|
||||
"@pixi/filter-noise": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-noise/-/filter-noise-5.0.0.tgz",
|
||||
"integrity": "sha512-ewk80yH0Dqz7Lj6SuSGDIX47P5KzBHgpmDUMiTTjcaLyf7Aq684VEpx6tyOONezAjGpaaWnFk0p1bpUArb8YRA==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/filter-old-film": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-old-film/-/filter-old-film-2.7.0.tgz",
|
||||
@ -281,31 +173,6 @@
|
||||
"resolved": "https://registry.npmjs.org/@pixi/filter-zoom-blur/-/filter-zoom-blur-2.7.0.tgz",
|
||||
"integrity": "sha512-m64jGei+C+Ndbi+B9twwWg3yk98x0gPBTqcFmagiJsAIf/LQYK5tP2l8ROJu/5OXlPE6WcVIKaf3VByaZ6kiWQ=="
|
||||
},
|
||||
"@pixi/graphics": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/graphics/-/graphics-5.0.0.tgz",
|
||||
"integrity": "sha512-RiWOMl8eOpQ8kZbn8+t5ybuO5GtBakJ/ADBgfSDTIQvo6qqaV5Yre0yOei72Fpvn2eQKq5zz+4ZpR3hnUxc0+w==",
|
||||
"requires": {
|
||||
"@pixi/constants": "^5.0.0-rc.3",
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/sprite": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/interaction": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/interaction/-/interaction-5.0.0.tgz",
|
||||
"integrity": "sha512-1wzpJnXRSIAlm2VLmk5tmntrihurCNUFtZmM52zw8TT1XZVP6IW1jbwIpphw1UXZOOS4JIpIV/oOnyRW0Ry/Ow==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/ticker": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/jsdoc-template": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/jsdoc-template/-/jsdoc-template-2.4.2.tgz",
|
||||
@ -316,216 +183,6 @@
|
||||
"underscore": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"@pixi/loaders": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/loaders/-/loaders-5.0.0.tgz",
|
||||
"integrity": "sha512-KL/T/N2ZuC2L2cXuX/6bjxtcax7AbKw6OyK/zoG0vqq3MHOLNDDTkCrx56fTF2PNO8IFP3TD3M9flO82CrmuWQ==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0",
|
||||
"resource-loader": "^2.2.4"
|
||||
}
|
||||
},
|
||||
"@pixi/math": {
|
||||
"version": "5.0.0-rc.3",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/math/-/math-5.0.0-rc.3.tgz",
|
||||
"integrity": "sha512-of/s2hHwTAN4wOxnLYQDIJftWFJgZ+S24U5N/fP6RHs6OQyegOX3q7f9uvwa+c6ssFNzGpPIF0Df7U2yKZdPFQ=="
|
||||
},
|
||||
"@pixi/mesh": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/mesh/-/mesh-5.0.0.tgz",
|
||||
"integrity": "sha512-jJwXzXBFfO8jTDbdMcE/laYJ/JxluCGqZpkiuiSKvcTwGdtfamHOar6JuaXVtOwdyLgiHEzPmXWp3+Q1pJ2HYw==",
|
||||
"requires": {
|
||||
"@pixi/constants": "^5.0.0-rc.3",
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/settings": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/mesh-extras": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/mesh-extras/-/mesh-extras-5.0.0.tgz",
|
||||
"integrity": "sha512-HWQLXj65gQ2IxOBQBFBlBgH/+Ldy7IM+afDbeDfV3cL+JXvRgtB+IUdgf6D57lVMOZm6Bv8v8oFKPVzPuwiu4Q==",
|
||||
"requires": {
|
||||
"@pixi/constants": "^5.0.0-rc.3",
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/mesh": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/mixin-cache-as-bitmap": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/mixin-cache-as-bitmap/-/mixin-cache-as-bitmap-5.0.0.tgz",
|
||||
"integrity": "sha512-PYAzDqsQvDoyDsLbfiYVbI3TUNaUkcsPK7IQltsufdp+lNHIS5uItRsiAHyCqqs6YQilWMocwEHUyYLDbxQZDQ==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/settings": "^5.0.0",
|
||||
"@pixi/sprite": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/mixin-get-child-by-name": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/mixin-get-child-by-name/-/mixin-get-child-by-name-5.0.0.tgz",
|
||||
"integrity": "sha512-J/Pr5yCDgvBICXGIlYZieXX/L3NhGena8ndfoWvQJXKpe5JwQ52Qtps6DptRwd/bHn00MJC1PG3MLs7To6rIkA==",
|
||||
"requires": {
|
||||
"@pixi/display": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/mixin-get-global-position": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/mixin-get-global-position/-/mixin-get-global-position-5.0.0.tgz",
|
||||
"integrity": "sha512-nSQNidvsVTQxWd8uVkReta68Y9q+CC0e+TU7YZtg2GNqV8lTy9e8vP0/Cfv0gwsqx5E/qTBkR3tsnPUXPkLquQ==",
|
||||
"requires": {
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3"
|
||||
}
|
||||
},
|
||||
"@pixi/particles": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/particles/-/particles-5.0.0.tgz",
|
||||
"integrity": "sha512-A4dpzBoCZJuvDkYfi0WEBOQS1mu69zRlu0CDQWF8QmnfMZLk5gHsb7N+9KWmidxBJsCogW+6I5sWmnDu1g4mCw==",
|
||||
"requires": {
|
||||
"@pixi/constants": "^5.0.0-rc.3",
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/polyfill": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/polyfill/-/polyfill-5.0.0.tgz",
|
||||
"integrity": "sha512-3S+rZ0JtAvkGMluXTnE0UrN47IkPqQ9wluLfQBbtz7U0ZNJK7x/k/JmMEkbSoz7n39wfEfcEggqII+Nmi4gf6A==",
|
||||
"requires": {
|
||||
"es6-promise-polyfill": "^1.2.0",
|
||||
"object-assign": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"@pixi/prepare": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/prepare/-/prepare-5.0.0.tgz",
|
||||
"integrity": "sha512-gLtMu6SRnLzelGt8+U1P1NYjZpOunGOnPpQ5fPp6N+RHO4Vab4fNm2xkbYO0FOpWH/jDxj1qL0r8fIUMGJH07A==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/graphics": "^5.0.0",
|
||||
"@pixi/settings": "^5.0.0",
|
||||
"@pixi/text": "^5.0.0",
|
||||
"@pixi/ticker": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/runner": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/runner/-/runner-5.0.0.tgz",
|
||||
"integrity": "sha512-VytqTmLpNLgyp4m463R4asahtAyrvasuCvFiigX4/rOZsndrujYVCdH9xCO6Yy6RE7PR1Jflmlx/xV2GE9QKaw=="
|
||||
},
|
||||
"@pixi/settings": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/settings/-/settings-5.0.0.tgz",
|
||||
"integrity": "sha512-i53i4eTLawQ3RZsGRbccggZbbdnrhdiqa3obwsWJD/kqjJ3WF5IBxgeLOL70fQhjchQzZj8cTohpd6OIGbTRzQ==",
|
||||
"requires": {
|
||||
"ismobilejs": "^0.5.1"
|
||||
}
|
||||
},
|
||||
"@pixi/sprite": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/sprite/-/sprite-5.0.0.tgz",
|
||||
"integrity": "sha512-Ik+ROmpYAHlDIkocXxfr/0QjupbTWH5HmzH/EAFz9Ro6ywla2V65CqyBjOW8JGvpwBZGQAmHCvjim01HpYDfeg==",
|
||||
"requires": {
|
||||
"@pixi/constants": "^5.0.0-rc.3",
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/settings": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/sprite-animated": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/sprite-animated/-/sprite-animated-5.0.0.tgz",
|
||||
"integrity": "sha512-FFQwOGd2kWvdw8tifjDZ8N3S+gVmKTEccnt+k2AWPlYLrP7oQao69lY1P/KtpNFHKJG4YzRCGaeas8scECPVqw==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/sprite": "^5.0.0",
|
||||
"@pixi/ticker": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/sprite-tiling": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/sprite-tiling/-/sprite-tiling-5.0.0.tgz",
|
||||
"integrity": "sha512-MtKV69mRaVZNndkDUGdhrcs2c6DgLMJjbLMEjyJPhMQZzq689/lwJ07dpz2huX0JBsfGSHljdmiBFGBaNRHWQw==",
|
||||
"requires": {
|
||||
"@pixi/constants": "^5.0.0-rc.3",
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/sprite": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/spritesheet": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/spritesheet/-/spritesheet-5.0.0.tgz",
|
||||
"integrity": "sha512-uqih82e+uoMDyPo4GUDMp9uPiwvXD9yN43g2a0ymRUxeqjMj9VPjMmbq6w01fMy2EXSNbXf8YVz6+UKZw0dLpw==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/loaders": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/text": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/text/-/text-5.0.0.tgz",
|
||||
"integrity": "sha512-2p/H3QG+qajMnRuKH++gWp5eKptSuRWQDsZFwmx/7wNWS4NL4pUDPlP4cn4v5bNRf751/rPlnrE5V1+eNmk96Q==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/settings": "^5.0.0",
|
||||
"@pixi/sprite": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/text-bitmap": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/text-bitmap/-/text-bitmap-5.0.0.tgz",
|
||||
"integrity": "sha512-rN2FO+91MdopKxyZOhWSP3brz78gK+NpBE/tSV2TQpB04Fk/qPm3+meFVBWyuLof731eaCjRwOYNYBWko185tQ==",
|
||||
"requires": {
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/loaders": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/settings": "^5.0.0",
|
||||
"@pixi/sprite": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/ticker": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/ticker/-/ticker-5.0.0.tgz",
|
||||
"integrity": "sha512-V2LvbnqV1aSatTNJNv7chR/gY5TGOZL/uUh9GbllORI9DejGWKUPXd2ejPRlZ6/fhTaDxBxDENGfkO/ElLNXeg==",
|
||||
"requires": {
|
||||
"@pixi/settings": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@pixi/utils": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@pixi/utils/-/utils-5.0.0.tgz",
|
||||
"integrity": "sha512-0/4avsQ68sQWMW3Jg1utkBsys16kO5ZTbYfPn04XBxV5LZLbpiN2xr7rEb4esqWdP+U7mjCAG4u1G2CtjzqKGA==",
|
||||
"requires": {
|
||||
"@pixi/constants": "^5.0.0-rc.3",
|
||||
"@pixi/settings": "^5.0.0",
|
||||
"earcut": "^2.1.5",
|
||||
"eventemitter3": "^3.1.0",
|
||||
"url": "^0.11.0"
|
||||
}
|
||||
},
|
||||
"@types/pixi.js": {
|
||||
"version": "4.8.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/pixi.js/-/pixi.js-4.8.7.tgz",
|
||||
@ -834,6 +491,11 @@
|
||||
"integrity": "sha512-xVNN69YGDghOqCCtA6FI7avYrr02mTJjOgB0/f1VPD3pJC8QEvjTKWc4epDx8AqxxA75NI0QpVM2gPJXUbE4Tg==",
|
||||
"dev": true
|
||||
},
|
||||
"bit-twiddle": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bit-twiddle/-/bit-twiddle-1.0.2.tgz",
|
||||
"integrity": "sha1-DGwfq+KyPRcXPZpht7cJPrnhdp4="
|
||||
},
|
||||
"bl": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
|
||||
@ -1356,9 +1018,9 @@
|
||||
}
|
||||
},
|
||||
"es5-ext": {
|
||||
"version": "0.10.49",
|
||||
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz",
|
||||
"integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==",
|
||||
"version": "0.10.50",
|
||||
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
|
||||
"integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"es6-iterator": "~2.0.3",
|
||||
@ -1377,11 +1039,6 @@
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"es6-promise-polyfill": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/es6-promise-polyfill/-/es6-promise-polyfill-1.2.0.tgz",
|
||||
"integrity": "sha1-84kl8jyz4+jObNqP93T867sJDN4="
|
||||
},
|
||||
"es6-symbol": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
|
||||
@ -1448,9 +1105,9 @@
|
||||
"integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA="
|
||||
},
|
||||
"eventemitter3": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz",
|
||||
"integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q=="
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
|
||||
"integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
|
||||
},
|
||||
"events": {
|
||||
"version": "1.1.1",
|
||||
@ -2313,9 +1970,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
|
||||
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
|
||||
"version": "7.1.4",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
|
||||
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
@ -2628,9 +2285,9 @@
|
||||
"integrity": "sha512-7saMzK2HQ3OD4/hbygtkh0uAK8LUqcom6abL4YqGttyxAQdEvywQOw5VK3obKQ7GaLU8KhszArKJPxIKe8mbvg=="
|
||||
},
|
||||
"gulp": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.1.tgz",
|
||||
"integrity": "sha512-yDVtVunxrAdsk7rIV/b7lVSBifPN1Eqe6wTjsESGrFcL+MEVzaaeNTkpUuGTUptloSOU+8oJm/lBJbgPV+tMAw==",
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz",
|
||||
"integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob-watcher": "^5.0.3",
|
||||
@ -3689,6 +3346,11 @@
|
||||
"@pixi/filter-zoom-blur": "^2.7.0"
|
||||
}
|
||||
},
|
||||
"pixi-gl-core": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/pixi-gl-core/-/pixi-gl-core-1.1.4.tgz",
|
||||
"integrity": "sha1-i0tcQzsx5Bm8N53FZc4bg1qRs3I="
|
||||
},
|
||||
"pixi-particles": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pixi-particles/-/pixi-particles-4.1.0.tgz",
|
||||
@ -3703,44 +3365,18 @@
|
||||
}
|
||||
},
|
||||
"pixi.js": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-5.0.0.tgz",
|
||||
"integrity": "sha512-15G8+96Tcp2KtsWt8/ceqFOp42zmd0Lm3hH+b3IQfxrX7PNIYpZozyGY4JTz1eCm05+N3fZBgGYSON5xt4OUng==",
|
||||
"version": "4.8.7",
|
||||
"resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-4.8.7.tgz",
|
||||
"integrity": "sha512-mx7YbHPkkWoj8FT3qBMkieAjBuuJ4yZWU7rq9NnCSUGpNrVlocrW179xrJQPVR2Q7JZ73ZGTwH7NOUZ9wgh7wA==",
|
||||
"requires": {
|
||||
"@pixi/accessibility": "^5.0.0",
|
||||
"@pixi/app": "^5.0.0",
|
||||
"@pixi/constants": "^5.0.0-rc.3",
|
||||
"@pixi/core": "^5.0.0",
|
||||
"@pixi/display": "^5.0.0",
|
||||
"@pixi/extract": "^5.0.0",
|
||||
"@pixi/filter-alpha": "^5.0.0",
|
||||
"@pixi/filter-blur": "^5.0.0",
|
||||
"@pixi/filter-color-matrix": "^5.0.0",
|
||||
"@pixi/filter-displacement": "^5.0.0",
|
||||
"@pixi/filter-fxaa": "^5.0.0",
|
||||
"@pixi/filter-noise": "^5.0.0",
|
||||
"@pixi/graphics": "^5.0.0",
|
||||
"@pixi/interaction": "^5.0.0",
|
||||
"@pixi/loaders": "^5.0.0",
|
||||
"@pixi/math": "^5.0.0-rc.3",
|
||||
"@pixi/mesh": "^5.0.0",
|
||||
"@pixi/mesh-extras": "^5.0.0",
|
||||
"@pixi/mixin-cache-as-bitmap": "^5.0.0",
|
||||
"@pixi/mixin-get-child-by-name": "^5.0.0",
|
||||
"@pixi/mixin-get-global-position": "^5.0.0",
|
||||
"@pixi/particles": "^5.0.0",
|
||||
"@pixi/polyfill": "^5.0.0",
|
||||
"@pixi/prepare": "^5.0.0",
|
||||
"@pixi/runner": "^5.0.0",
|
||||
"@pixi/settings": "^5.0.0",
|
||||
"@pixi/sprite": "^5.0.0",
|
||||
"@pixi/sprite-animated": "^5.0.0",
|
||||
"@pixi/sprite-tiling": "^5.0.0",
|
||||
"@pixi/spritesheet": "^5.0.0",
|
||||
"@pixi/text": "^5.0.0",
|
||||
"@pixi/text-bitmap": "^5.0.0",
|
||||
"@pixi/ticker": "^5.0.0",
|
||||
"@pixi/utils": "^5.0.0"
|
||||
"bit-twiddle": "^1.0.2",
|
||||
"earcut": "^2.1.4",
|
||||
"eventemitter3": "^2.0.0",
|
||||
"ismobilejs": "^0.5.1",
|
||||
"object-assign": "^4.0.1",
|
||||
"pixi-gl-core": "^1.1.4",
|
||||
"remove-array-items": "^1.0.0",
|
||||
"resource-loader": "^2.2.3"
|
||||
}
|
||||
},
|
||||
"posix-character-classes": {
|
||||
@ -3790,16 +3426,6 @@
|
||||
"pump": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"punycode": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
|
||||
"integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
|
||||
},
|
||||
"querystring": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz",
|
||||
"integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA="
|
||||
},
|
||||
"quote-stream": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-0.0.0.tgz",
|
||||
@ -3931,6 +3557,11 @@
|
||||
"safe-regex": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"remove-array-items": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/remove-array-items/-/remove-array-items-1.1.1.tgz",
|
||||
"integrity": "sha512-MXW/jtHyl5F1PZI7NbpS8SOtympdLuF20aoWJT5lELR1p/HJDd5nqW8Eu9uLh/hCRY3FgvrIT5AwDCgBODklcA=="
|
||||
},
|
||||
"remove-bom-buffer": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz",
|
||||
@ -4732,15 +4363,6 @@
|
||||
"integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=",
|
||||
"dev": true
|
||||
},
|
||||
"url": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz",
|
||||
"integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=",
|
||||
"requires": {
|
||||
"punycode": "1.3.2",
|
||||
"querystring": "0.2.0"
|
||||
}
|
||||
},
|
||||
"use": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
|
||||
@ -4753,9 +4375,9 @@
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
|
||||
},
|
||||
"v8flags": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.2.tgz",
|
||||
"integrity": "sha512-MtivA7GF24yMPte9Rp/BWGCYQNaUj86zeYxV/x2RRJMKagImbbv3u8iJC57lNhWLPcGLJmHcHmFWkNsplbbLWw==",
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz",
|
||||
"integrity": "sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"homedir-polyfill": "^1.0.1"
|
||||
|
@ -21,7 +21,7 @@
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"devDependencies": {
|
||||
"@pixi/jsdoc-template": "^2.4.2",
|
||||
"gulp": "^4.0.1",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp-concat": "^2.6.1",
|
||||
"gulp-rename": "^1.4.0",
|
||||
"gulp-replace": "^1.0.0",
|
||||
@ -37,7 +37,7 @@
|
||||
"pixi-filters": "^2.7.1",
|
||||
"pixi-particles": "^4.1.0",
|
||||
"pixi-projection": "^0.2.7",
|
||||
"pixi.js": "^5.0.0",
|
||||
"pixi.js": "^4.8.7",
|
||||
"propagating-hammerjs": "^1.4.6"
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user