mui-sass 0.9.5 → 0.9.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1e8e62f5ff04b21df0e6f087d297dd159ed2fae0
4
- data.tar.gz: cc1cae909d8f80063160bd99771d8d6a4674fc64
3
+ metadata.gz: 611f5bb7db3d89f99ea3570b356d32d8df107219
4
+ data.tar.gz: 017f19e6cf0aef2bc414a5e357276acde6f4d645
5
5
  SHA512:
6
- metadata.gz: 57cab389871e9dc3797e5035806066e8817addfbfdaf183b3f8bd6142073abf924a2bd3df35acee6e0006d4c164a6fdaa983f819a63db9537d98fd82e7c6c0bb
7
- data.tar.gz: c7782a0a9813545e20c0ccfe45440c8d973656d1daca5146f3060873ac5c45fad0982e4064caee37799870defd8436c78e986c5bb65d0673c961fc4be50654b0
6
+ metadata.gz: 887aa81ffb2778dd2927c2a4c50de61c8941aa06056d3f2bfa93855c05fef8533245f92365d62156d17e6c1980e8a0c2a421f54f4288c164237fb8947342d69b
7
+ data.tar.gz: 2ae48990a5eb3d48b211c96046274f218047dc37d8ffec4e6e1e164d1f903fa1aa114502acf68dde772648c3a99ed6e61f233935e86ecf819e757881ac6060fc
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.9.6 (2016-12-20)
2
+
3
+ - Update assets to match upstream version
4
+
1
5
  ## 0.9.5 (2016-11-29)
2
6
 
3
7
  - Update assets to match upstream version
@@ -1,5 +1,5 @@
1
1
  module Mui
2
2
  module Sass
3
- VERSION = '0.9.5'
3
+ VERSION = '0.9.6'
4
4
  end
5
5
  end
@@ -1271,38 +1271,28 @@ function mouseDownHandler(ev) {
1271
1271
  // get ripple element offset values and (x, y) position of click
1272
1272
  var offset = jqLite.offset(buttonEl),
1273
1273
  clickEv = (ev.type === 'touchstart') ? ev.touches[0] : ev,
1274
- xPos = Math.round(clickEv.pageX - offset.left),
1275
- yPos = Math.round(clickEv.pageY - offset.top),
1274
+ radius,
1276
1275
  diameter;
1277
1276
 
1278
- // calculate diameter
1279
- diameter = Math.sqrt(offset.height * offset.height +
1280
- offset.width * offset.width) * 2 + 2 + 'px';
1277
+ // calculate radius
1278
+ radius = Math.sqrt(offset.height * offset.height +
1279
+ offset.width * offset.width);
1281
1280
 
1282
- // css transform
1283
- var tEnd = 'translate(-50%, -50%) translate(' + xPos + 'px,' + yPos + 'px)',
1284
- tStart = tEnd + ' scale(0.0001, 0.0001)';
1281
+ diameter = radius * 2 + 'px';
1285
1282
 
1286
- // set position and initial scale
1283
+ // set position and dimensions
1287
1284
  jqLite.css(rippleEl, {
1288
1285
  width: diameter,
1289
1286
  height: diameter,
1290
- webkitTransform: tStart,
1291
- msTransform: tStart,
1292
- transform: tStart
1287
+ top: Math.round(clickEv.pageY - offset.top - radius) + 'px',
1288
+ left: Math.round(clickEv.pageX - offset.left - radius) + 'px'
1293
1289
  });
1294
1290
 
1295
- jqLite.addClass(rippleEl, 'mui--is-visible');
1296
1291
  jqLite.removeClass(rippleEl, 'mui--is-animating');
1292
+ jqLite.addClass(rippleEl, 'mui--is-visible');
1297
1293
 
1298
1294
  // start animation
1299
1295
  util.requestAnimationFrame(function() {
1300
- jqLite.css(rippleEl, {
1301
- webkitTransform: tEnd,
1302
- msTransform: tEnd,
1303
- transform: tEnd
1304
- });
1305
-
1306
1296
  jqLite.addClass(rippleEl, 'mui--is-animating');
1307
1297
  });
1308
1298
  }
@@ -1374,44 +1364,26 @@ function initialize(selectEl) {
1374
1364
  // use default behavior on touch devices
1375
1365
  if ('ontouchstart' in doc.documentElement) return;
1376
1366
 
1377
- // initialize element
1378
- new Select(selectEl);
1379
-
1380
- // set flag
1381
- selectEl._muiJs = true;
1382
- }
1383
-
1367
+ // NOTE: To get around cross-browser issues with <select> behavior we will
1368
+ // defer focus to the parent element and handle events there
1384
1369
 
1385
- /**
1386
- * Creates a new Select object
1387
- * @class
1388
- */
1389
- function Select(selectEl) {
1390
1370
  var wrapperEl = selectEl.parentNode;
1391
1371
 
1392
- // instance variables
1393
- this.selectEl = selectEl;
1394
- this.wrapperEl = wrapperEl;
1395
- this.useDefault = false; // currently unused but let's keep just in case
1396
- this.isOpen = false;
1397
- this.menu = null;
1398
-
1399
- // NOTE: To get around cross-browser issues with <select> behavior we will
1400
- // defer focus to the parent element and handle events there
1372
+ // initialize variables
1373
+ wrapperEl._selectEl = selectEl;
1374
+ wrapperEl._menu = null;
1401
1375
 
1402
1376
  // make wrapper tab focusable, remove tab focus from <select>
1403
1377
  if (!selectEl.disabled) wrapperEl.tabIndex = 0;
1404
- if (!this.useDefault) selectEl.tabIndex = -1;
1405
-
1406
- var cb = util.callback;
1378
+ selectEl.tabIndex = -1;
1407
1379
 
1408
1380
  // prevent built-in menu from opening on <select>
1409
- jqLite.on(selectEl, 'mousedown', cb(this, 'onInnerMouseDown'));
1381
+ jqLite.on(selectEl, 'mousedown', onInnerMouseDown);
1410
1382
 
1411
1383
  // attach event listeners for custom menu
1412
- jqLite.on(wrapperEl, 'click', cb(this, 'onWrapperClick'));
1413
- jqLite.on(wrapperEl, 'blur focus', cb(this, 'onWrapperBlurOrFocus'));
1414
- jqLite.on(wrapperEl, 'keydown', cb(this, 'onWrapperKeyDown'));
1384
+ jqLite.on(wrapperEl, 'click', onWrapperClick);
1385
+ jqLite.on(wrapperEl, 'blur focus', onWrapperBlurOrFocus);
1386
+ jqLite.on(wrapperEl, 'keydown', onWrapperKeyDown);
1415
1387
 
1416
1388
  // add element to detect 'disabled' change (using sister element due to
1417
1389
  // IE/Firefox issue
@@ -1434,49 +1406,46 @@ function Select(selectEl) {
1434
1406
 
1435
1407
 
1436
1408
  /**
1437
- * Dispatch focus and blur events on inner <select> element.
1409
+ * Disable default dropdown on mousedown.
1438
1410
  * @param {Event} ev - The DOM event
1439
1411
  */
1440
- Select.prototype.onWrapperBlurOrFocus = function(ev) {
1441
- util.dispatchEvent(this.selectEl, ev.type, false, false);
1442
- }
1412
+ function onInnerMouseDown(ev) {
1413
+ // only left clicks
1414
+ if (ev.button !== 0) return;
1443
1415
 
1416
+ // prevent built-in menu from opening
1417
+ ev.preventDefault();
1418
+ }
1444
1419
 
1445
1420
 
1446
1421
  /**
1447
- * Disable default dropdown on mousedown.
1422
+ * Dispatch focus and blur events on inner <select> element.
1448
1423
  * @param {Event} ev - The DOM event
1449
1424
  */
1450
- Select.prototype.onInnerMouseDown = function(ev) {
1451
- // only left clicks
1452
- if (ev.button !== 0 || this.useDefault) return;
1453
-
1454
- // prevent built-in menu from opening
1455
- ev.preventDefault();
1425
+ function onWrapperBlurOrFocus(ev) {
1426
+ util.dispatchEvent(this._selectEl, ev.type, false, false);
1456
1427
  }
1457
1428
 
1458
1429
 
1459
1430
  /**
1460
1431
  * Handle keydown events when wrapper is focused
1461
1432
  **/
1462
- Select.prototype.onWrapperKeyDown = function(ev) {
1463
- // check flag
1464
- if (this.useDefault || ev.defaultPrevented) return;
1433
+ function onWrapperKeyDown(ev) {
1434
+ if (ev.defaultPrevented) return;
1465
1435
 
1466
- var keyCode = ev.keyCode;
1436
+ var keyCode = ev.keyCode,
1437
+ menu = this._menu;
1467
1438
 
1468
- if (this.isOpen === false) {
1439
+ if (!menu) {
1469
1440
  // spacebar, down, up
1470
1441
  if (keyCode === 32 || keyCode === 38 || keyCode === 40) {
1471
1442
  ev.preventDefault();
1472
1443
 
1473
1444
  // open custom menu
1474
- this.renderMenu();
1445
+ renderMenu(this);
1475
1446
  }
1476
1447
 
1477
1448
  } else {
1478
- var menu = this.menu;
1479
-
1480
1449
  // tab
1481
1450
  if (keyCode === 9) return menu.destroy();
1482
1451
 
@@ -1503,35 +1472,30 @@ Select.prototype.onWrapperKeyDown = function(ev) {
1503
1472
  * Handle click events on wrapper element.
1504
1473
  * @param {Event} ev - The DOM event
1505
1474
  */
1506
- Select.prototype.onWrapperClick = function(ev) {
1475
+ function onWrapperClick(ev) {
1507
1476
  // only left clicks, check default and disabled flags
1508
- if (ev.button !== 0 || this.useDefault || this.selectEl.disabled) return;
1477
+ if (ev.button !== 0 || this._selectEl.disabled) return;
1509
1478
 
1510
1479
  // focus wrapper
1511
- this.wrapperEl.focus();
1480
+ this.focus();
1512
1481
 
1513
1482
  // open menu
1514
- this.renderMenu();
1483
+ renderMenu(this);
1515
1484
  }
1516
1485
 
1517
1486
 
1518
1487
  /**
1519
- * Render options dropdown.
1488
+ * Render options menu
1520
1489
  */
1521
- Select.prototype.renderMenu = function() {
1522
- // check flag
1523
- if (this.isOpen) return;
1524
-
1525
- // render custom menu and reset flag
1526
- var self = this;
1527
- this.menu = new Menu(this.wrapperEl, this.selectEl, function() {
1528
- self.isOpen = false;
1529
- self.menu = null;
1530
- self.wrapperEl.focus();
1531
- });
1490
+ function renderMenu(wrapperEl) {
1491
+ // check instance
1492
+ if (wrapperEl._menu) return;
1532
1493
 
1533
- // set flag
1534
- this.isOpen = true;
1494
+ // render custom menu
1495
+ wrapperEl._menu = new Menu(wrapperEl, wrapperEl._selectEl, function() {
1496
+ wrapperEl._menu = null; // de-reference instance
1497
+ wrapperEl.focus();
1498
+ });
1535
1499
  }
1536
1500
 
1537
1501
 
@@ -1559,15 +1523,15 @@ function Menu(wrapperEl, selectEl, wrapperCallbackFn) {
1559
1523
 
1560
1524
  // add to DOM
1561
1525
  wrapperEl.appendChild(this.menuEl);
1562
- jqLite.scrollTop(this.menuEl, this.menuEl._muiScrollTop);
1526
+ jqLite.scrollTop(this.menuEl, this.menuEl._scrollTop);
1563
1527
 
1564
1528
  // attach event handlers
1529
+ var destroyCB = this.destroyCB;
1565
1530
  jqLite.on(this.menuEl, 'click', this.onClickCB);
1566
- jqLite.on(win, 'resize', this.destroyCB);
1531
+ jqLite.on(win, 'resize', destroyCB);
1567
1532
 
1568
1533
  // attach event handler after current event loop exits
1569
- var fn = this.destroyCB;
1570
- setTimeout(function() {jqLite.on(doc, 'click', fn);}, 0);
1534
+ setTimeout(function() {jqLite.on(doc, 'click', destroyCB);}, 0);
1571
1535
  }
1572
1536
 
1573
1537
 
@@ -1661,7 +1625,7 @@ Menu.prototype._createMenuEl = function(wrapperEl, selectEl) {
1661
1625
  );
1662
1626
 
1663
1627
  jqLite.css(menuEl, props);
1664
- menuEl._muiScrollTop = props.scrollTop;
1628
+ menuEl._scrollTop = props.scrollTop;
1665
1629
 
1666
1630
  return menuEl;
1667
1631
  }
@@ -1966,7 +1930,7 @@ function initialize(inputEl) {
1966
1930
  jqLite.on(inputEl, 'input change', inputHandler);
1967
1931
 
1968
1932
  // add dirty class on focus
1969
- jqLite.on(inputEl, 'focus', function(){jqLite.addClass(this, dirtyClass);});
1933
+ jqLite.on(inputEl, 'focus', function() {jqLite.addClass(this, dirtyClass);});
1970
1934
  }
1971
1935
 
1972
1936
 
@@ -20,8 +20,10 @@
20
20
  border-radius: 50%;
21
21
  opacity: 0;
22
22
  pointer-events: none;
23
+ transform: scale(0.0001, 0.0001);
23
24
 
24
25
  &.mui--is-animating {
26
+ transform: none;
25
27
  transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1),
26
28
  width 0.3s cubic-bezier(0, 0, 0.2, 1),
27
29
  height 0.3s cubic-bezier(0, 0, 0.2, 1),
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mui-sass
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.5
4
+ version: 0.9.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitriy Tarasov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-11-29 00:00:00.000000000 Z
11
+ date: 2016-12-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sass