@crispcode/shimmer 5.1.1 → 5.2.1

Sign up to get free protection for your applications and to get access to all the features.
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.1.1",
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": "^6.5.1",
21
- "@pixi/canvas-display": "^6.5.1",
22
- "@pixi/canvas-extract": "^6.5.1",
23
- "@pixi/canvas-graphics": "^6.5.1",
24
- "@pixi/canvas-mesh": "^6.5.1",
25
- "@pixi/canvas-particle-container": "^6.5.1",
26
- "@pixi/canvas-prepare": "^6.5.1",
27
- "@pixi/canvas-renderer": "^6.5.1",
28
- "@pixi/canvas-sprite": "^6.5.1",
29
- "@pixi/canvas-sprite-tiling": "^6.5.1",
30
- "@pixi/canvas-text": "^6.5.1",
31
- "@pixi/constants": "^6.5.1",
32
- "@pixi/core": "^6.5.1",
33
- "@pixi/display": "^6.5.1",
34
- "@pixi/extensions": "^6.5.1",
35
- "@pixi/graphics": "^6.5.1",
36
- "@pixi/interaction": "^6.5.1",
37
- "@pixi/math": "^6.5.1",
38
- "@pixi/mesh": "^6.5.1",
39
- "@pixi/mesh-extras": "^6.5.1",
40
- "@pixi/particle-container": "^6.5.1",
41
- "@pixi/prepare": "^6.5.1",
42
- "@pixi/runner": "^6.5.1",
43
- "@pixi/settings": "^6.5.1",
44
- "@pixi/sprite": "^6.5.1",
45
- "@pixi/sprite-animated": "^6.5.1",
46
- "@pixi/sprite-tiling": "^6.5.1",
47
- "@pixi/text": "^6.5.1",
48
- "@pixi/ticker": "^6.5.1",
49
- "@pixi/utils": "^6.5.1"
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.5"
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.interactive = true
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.interactive = true
89
+ this.eventMode = 'static'
90
90
  this.buttonMode = true
91
91
  } else {
92
- this.interactive = false
92
+ this.eventMode = 'auto'
93
93
  this.buttonMode = false
94
94
  }
95
95
  }
@@ -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
- let target = this.__renderer.plugins.interaction.hitTest( { x: x, y: y } )
30
- if ( target && target.interactive ) {
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.interactive ) {
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.interactive ) {
65
+ if ( target && target.eventMode == 'static' ) {
61
66
  timeout = setTimeout( () => {
62
67
  target.emit( this.__getEventName( 'longtap' ), e )
63
68
  }, 700 )
@@ -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 { InteractionManager } from '@pixi/interaction'
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 === Video ) {
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 : false
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" />
@@ -26,7 +26,7 @@ export class ShimmerComponent extends Shimmer {
26
26
  get settings () {
27
27
  return {
28
28
  backgroundAlpha: 1,
29
- backgroundColor: 0xFFFF00
29
+ backgroundColor: 0xFFFF00,
30
30
  // forceCanvas: true
31
31
  }
32
32
  }
@@ -33,17 +33,15 @@ export class Moon extends Element {
33
33
 
34
34
  this.__rotating = false
35
35
 
36
- this.interactive = true
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 () {
@@ -12,6 +12,7 @@ html, body {
12
12
  position: relative;
13
13
  width: 100%;
14
14
  height: 100%;
15
+ touch-action: none;
15
16
 
16
17
  *[data-modux-component="shimmer"] {
17
18
  display: block;