@crispcode/shimmer 5.1.1 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -4
- package/package.json +32 -32
- package/scripts/button.js +3 -3
- package/scripts/controls.js +10 -5
- package/scripts/shimmer.js +5 -10
- package/scripts/video.js +2 -2
- package/test/app.html +0 -2
- package/test/scripts/components/shimmer/index.js +1 -1
- package/test/scripts/components/shimmer/moon.js +3 -5
- package/test/styles/index.scss +1 -0
package/README.md
CHANGED
@@ -14,10 +14,6 @@ Clone the shimmer repository to your machine and use the following commands:
|
|
14
14
|
To generate a documentation use `npm run docs`
|
15
15
|
If you want to check functionality you can use `npm run test`
|
16
16
|
|
17
|
-
## Polyfill
|
18
|
-
|
19
|
-
In order to support older versions of browsers, you can use [polyfill.io](https://polyfill.io)
|
20
|
-
|
21
17
|
## Shimmer classes
|
22
18
|
|
23
19
|
|Name|Usage|Description|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@crispcode/shimmer",
|
3
|
-
"version": "5.
|
3
|
+
"version": "5.2.1",
|
4
4
|
"description": "A PIXI.JS wrapper plugin for MODUX",
|
5
5
|
"author": "Crisp Code ( contact@crispcode.ro )",
|
6
6
|
"access": "public",
|
@@ -17,39 +17,39 @@
|
|
17
17
|
"url": "https://github.com/CrispCode/shimmer/issues"
|
18
18
|
},
|
19
19
|
"dependencies": {
|
20
|
-
"@pixi/assets": "^
|
21
|
-
"@pixi/canvas-display": "^
|
22
|
-
"@pixi/canvas-extract": "^
|
23
|
-
"@pixi/canvas-graphics": "^
|
24
|
-
"@pixi/canvas-mesh": "^
|
25
|
-
"@pixi/canvas-particle-container": "^
|
26
|
-
"@pixi/canvas-prepare": "^
|
27
|
-
"@pixi/canvas-renderer": "^
|
28
|
-
"@pixi/canvas-sprite": "^
|
29
|
-
"@pixi/canvas-sprite-tiling": "^
|
30
|
-
"@pixi/canvas-text": "^
|
31
|
-
"@pixi/constants": "^
|
32
|
-
"@pixi/core": "^
|
33
|
-
"@pixi/display": "^
|
34
|
-
"@pixi/
|
35
|
-
"@pixi/
|
36
|
-
"@pixi/
|
37
|
-
"@pixi/math": "^
|
38
|
-
"@pixi/mesh": "^
|
39
|
-
"@pixi/mesh-extras": "^
|
40
|
-
"@pixi/particle-container": "^
|
41
|
-
"@pixi/prepare": "^
|
42
|
-
"@pixi/runner": "^
|
43
|
-
"@pixi/settings": "^
|
44
|
-
"@pixi/sprite": "^
|
45
|
-
"@pixi/sprite-animated": "^
|
46
|
-
"@pixi/sprite-tiling": "^
|
47
|
-
"@pixi/text": "^
|
48
|
-
"@pixi/ticker": "^
|
49
|
-
"@pixi/utils": "^
|
20
|
+
"@pixi/assets": "^7.4.2",
|
21
|
+
"@pixi/canvas-display": "^7.4.2",
|
22
|
+
"@pixi/canvas-extract": "^7.4.2",
|
23
|
+
"@pixi/canvas-graphics": "^7.4.2",
|
24
|
+
"@pixi/canvas-mesh": "^7.4.2",
|
25
|
+
"@pixi/canvas-particle-container": "^7.4.2",
|
26
|
+
"@pixi/canvas-prepare": "^7.4.2",
|
27
|
+
"@pixi/canvas-renderer": "^7.4.2",
|
28
|
+
"@pixi/canvas-sprite": "^7.4.2",
|
29
|
+
"@pixi/canvas-sprite-tiling": "^7.4.2",
|
30
|
+
"@pixi/canvas-text": "^7.4.2",
|
31
|
+
"@pixi/constants": "^7.4.2",
|
32
|
+
"@pixi/core": "^7.4.2",
|
33
|
+
"@pixi/display": "^7.4.2",
|
34
|
+
"@pixi/events": "^7.4.2",
|
35
|
+
"@pixi/extensions": "^7.4.2",
|
36
|
+
"@pixi/graphics": "^7.4.2",
|
37
|
+
"@pixi/math": "^7.4.2",
|
38
|
+
"@pixi/mesh": "^7.4.2",
|
39
|
+
"@pixi/mesh-extras": "^7.4.2",
|
40
|
+
"@pixi/particle-container": "^7.4.2",
|
41
|
+
"@pixi/prepare": "^7.4.2",
|
42
|
+
"@pixi/runner": "^7.4.2",
|
43
|
+
"@pixi/settings": "^7.4.2",
|
44
|
+
"@pixi/sprite": "^7.4.2",
|
45
|
+
"@pixi/sprite-animated": "^7.4.2",
|
46
|
+
"@pixi/sprite-tiling": "^7.4.2",
|
47
|
+
"@pixi/text": "^7.4.2",
|
48
|
+
"@pixi/ticker": "^7.4.2",
|
49
|
+
"@pixi/utils": "^7.4.2"
|
50
50
|
},
|
51
51
|
"peerDependencies": {
|
52
|
-
"@crispcode/modux": "^5.1.
|
52
|
+
"@crispcode/modux": "^5.1.6"
|
53
53
|
},
|
54
54
|
"devDependencies": {
|
55
55
|
"esdoc": "^1.1.0",
|
package/scripts/button.js
CHANGED
@@ -18,7 +18,7 @@ export class Button extends Element {
|
|
18
18
|
* Marks the Button as interactive
|
19
19
|
* @type {Boolean}
|
20
20
|
*/
|
21
|
-
this.
|
21
|
+
this.eventMode = 'static'
|
22
22
|
/**
|
23
23
|
* Marks the Button as a button
|
24
24
|
* @type {Boolean}
|
@@ -86,10 +86,10 @@ export class Button extends Element {
|
|
86
86
|
enable ( enabled ) {
|
87
87
|
this.__enabled = !!enabled
|
88
88
|
if ( enabled ) {
|
89
|
-
this.
|
89
|
+
this.eventMode = 'static'
|
90
90
|
this.buttonMode = true
|
91
91
|
} else {
|
92
|
-
this.
|
92
|
+
this.eventMode = 'auto'
|
93
93
|
this.buttonMode = false
|
94
94
|
}
|
95
95
|
}
|
package/scripts/controls.js
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
'use strict'
|
2
2
|
|
3
|
+
import { EventBoundary } from "@pixi/events"
|
4
|
+
|
3
5
|
export class Controls {
|
4
6
|
/**
|
5
7
|
* The pixi application renderer
|
6
8
|
* @param {Renderer} renderer
|
9
|
+
* @param {DisplayObject} stage
|
7
10
|
*/
|
8
|
-
constructor ( renderer ) {
|
11
|
+
constructor ( renderer, stage ) {
|
9
12
|
this.__renderer = renderer
|
13
|
+
this.__stage = stage
|
10
14
|
this.__listeners = []
|
11
15
|
}
|
12
16
|
|
@@ -26,8 +30,9 @@ export class Controls {
|
|
26
30
|
* @returns {DisplayObject}
|
27
31
|
*/
|
28
32
|
__getTarget ( x, y ) {
|
29
|
-
|
30
|
-
|
33
|
+
const boundary = new EventBoundary(this.__stage);
|
34
|
+
let target = boundary.hitTest(x, y);
|
35
|
+
if ( target && target.eventMode == 'static' ) {
|
31
36
|
return target
|
32
37
|
}
|
33
38
|
return null
|
@@ -39,7 +44,7 @@ export class Controls {
|
|
39
44
|
enableWheel () {
|
40
45
|
let onPush = ( e ) => {
|
41
46
|
let target = this.__getTarget( e.offsetX, e.offsetY )
|
42
|
-
if ( target && target.
|
47
|
+
if ( target && target.eventMode == 'static' ) {
|
43
48
|
target.emit( this.__getEventName( 'wheel' ), e )
|
44
49
|
}
|
45
50
|
}
|
@@ -57,7 +62,7 @@ export class Controls {
|
|
57
62
|
let onPush = ( e ) => {
|
58
63
|
let target = this.__getTarget( e.offsetX, e.offsetY )
|
59
64
|
let timeout = null
|
60
|
-
if ( target && target.
|
65
|
+
if ( target && target.eventMode == 'static' ) {
|
61
66
|
timeout = setTimeout( () => {
|
62
67
|
target.emit( this.__getEventName( 'longtap' ), e )
|
63
68
|
}, 700 )
|
package/scripts/shimmer.js
CHANGED
@@ -7,8 +7,7 @@ import { Component, extend, logger } from '@crispcode/modux'
|
|
7
7
|
import { autoDetectRenderer, BatchRenderer } from '@pixi/core'
|
8
8
|
import { Assets } from '@pixi/assets'
|
9
9
|
import { Ticker } from '@pixi/ticker'
|
10
|
-
import {
|
11
|
-
import { skipHello, isWebGLSupported } from '@pixi/utils'
|
10
|
+
import { isWebGLSupported } from '@pixi/utils'
|
12
11
|
import { extensions } from '@pixi/extensions'
|
13
12
|
|
14
13
|
// Canvas support
|
@@ -26,7 +25,6 @@ import '@pixi/canvas-text'
|
|
26
25
|
import { Element } from './element.js'
|
27
26
|
import { Controls } from './controls.js'
|
28
27
|
|
29
|
-
extensions.add( InteractionManager )
|
30
28
|
extensions.add( BatchRenderer )
|
31
29
|
|
32
30
|
/**
|
@@ -61,11 +59,12 @@ export class Shimmer extends Component {
|
|
61
59
|
/**
|
62
60
|
* This method preloads a colection of assets
|
63
61
|
* @param {Object} bundle A collection of assets
|
62
|
+
* @param {Function} progress A callback to track progress
|
64
63
|
* @return {Promise} A promise which is resolved upon loading the assets. It resolves the loaded resources.
|
65
64
|
*/
|
66
|
-
preload ( bundle ) {
|
65
|
+
preload ( bundle, progress = () =>{} ) {
|
67
66
|
Assets.addBundle( 'bundle', bundle )
|
68
|
-
return Assets.loadBundle( 'bundle' )
|
67
|
+
return Assets.loadBundle( 'bundle', progress )
|
69
68
|
}
|
70
69
|
|
71
70
|
/**
|
@@ -77,8 +76,6 @@ export class Shimmer extends Component {
|
|
77
76
|
constructor ( parent, module, store ) {
|
78
77
|
super( parent, module, store )
|
79
78
|
|
80
|
-
skipHello()
|
81
|
-
|
82
79
|
/**
|
83
80
|
* Stores the parent Element
|
84
81
|
* @type {Element}
|
@@ -164,8 +161,6 @@ export class Shimmer extends Component {
|
|
164
161
|
|
165
162
|
this.renderer.resize( this.element.clientWidth, this.element.clientHeight )
|
166
163
|
|
167
|
-
this.renderer.plugins.interaction.autoPreventDefault = false
|
168
|
-
|
169
164
|
if ( !isWebGLSupported() ) {
|
170
165
|
logger.warn( 'WebGL is not supported. Using Canvas fallback.' )
|
171
166
|
}
|
@@ -173,7 +168,7 @@ export class Shimmer extends Component {
|
|
173
168
|
/**
|
174
169
|
* Stores the controls class, responsible with implementing special gestures
|
175
170
|
*/
|
176
|
-
this.controls = new Controls( this.renderer )
|
171
|
+
this.controls = new Controls( this.renderer, this.stage )
|
177
172
|
this.controls.enableWheel()
|
178
173
|
this.controls.enableLongtap()
|
179
174
|
}
|
package/scripts/video.js
CHANGED
@@ -19,12 +19,12 @@ export class Video extends Element {
|
|
19
19
|
constructor ( source, options = {} ) {
|
20
20
|
super()
|
21
21
|
|
22
|
-
if ( typeof source
|
22
|
+
if ( typeof source !== Video ) {
|
23
23
|
this.__source = document.createElement( 'video' )
|
24
24
|
this.__source.playsInline = true
|
25
25
|
this.__source.preload = 'auto'
|
26
26
|
this.__source.autoplay = false
|
27
|
-
this.__source.muted = ( options.muted !== undefined ) ? options.muted :
|
27
|
+
this.__source.muted = ( options.muted !== undefined ) ? options.muted : true
|
28
28
|
this.__source.loop = ( options.loop !== undefined ) ? options.loop : true
|
29
29
|
this.__source.src = source
|
30
30
|
} else {
|
package/test/app.html
CHANGED
@@ -12,8 +12,6 @@
|
|
12
12
|
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
13
13
|
<meta name="apple-mobile-web-app-title" content="Open the Box">
|
14
14
|
|
15
|
-
<script crossorigin="anonymous" src="https://polyfill.io/v3/polyfill.min.js?flags=gated&features=default%2CMutationObserver%2CString.prototype.padStart%2Cconsole.info"></script>
|
16
|
-
|
17
15
|
<base href="/" />
|
18
16
|
|
19
17
|
<link rel="stylesheet" href="app.min.css" />
|
@@ -33,17 +33,15 @@ export class Moon extends Element {
|
|
33
33
|
|
34
34
|
this.__rotating = false
|
35
35
|
|
36
|
-
this.
|
36
|
+
this.eventMode = 'static'
|
37
37
|
|
38
38
|
this.on( 'wheel', ( e ) => {
|
39
|
-
e.preventDefault()
|
40
39
|
let scale = Math.max( 0.2, Math.min( this.scale.x, this.scale.y ) + e.deltaY / -100 )
|
41
40
|
this.scale.set( scale )
|
42
|
-
}
|
41
|
+
})
|
43
42
|
this.on( 'longtap', ( e ) => {
|
44
|
-
e.preventDefault()
|
45
43
|
this.scale.set( 1 )
|
46
|
-
}
|
44
|
+
})
|
47
45
|
}
|
48
46
|
|
49
47
|
__move () {
|