Skip to content

Commit

Permalink
Merge 4.10.2 changes
Browse files Browse the repository at this point in the history
  • Loading branch information
dioslaska committed Jan 29, 2020
1 parent c964030 commit cf18be5
Show file tree
Hide file tree
Showing 71 changed files with 1,729 additions and 742 deletions.
23 changes: 12 additions & 11 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
{
"presets": [
"@babel/preset-react",
[
"@babel/preset-env",
{
"modules": false
}
"presets": [
"@babel/preset-react",
[
"@babel/preset-env",
{
"loose": true,
"modules": false
}
]
],
"plugins": [
"@babel/plugin-proposal-class-properties"
]
],
"plugins": [
"@babel/plugin-proposal-class-properties"
]
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mobiscroll",
"version": "4.9.0",
"version": "4.10.2",
"description": "Cross platform UI controls for progressive web an hybrid apps",
"homepage": "https://mobiscroll.com/",
"license": "Apache-2.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/angular/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@mobiscroll/angular-lite",
"version": "4.9.0",
"version": "4.10.2",
"description": "Angular UI library for progressive web and hybrid apps",
"homepage": "https://mobiscroll.com/",
"license": "Apache-2.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/angularjs/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@mobiscroll/angularjs-lite",
"version": "4.9.0",
"version": "4.10.2",
"description": "AngularJS UI library for progressive web and hybrid apps",
"homepage": "https://mobiscroll.com/",
"license": "Apache-2.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/javascript/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@mobiscroll/javascript-lite",
"version": "4.9.0",
"version": "4.10.2",
"description": "Framework agnostic UI library for progressive web and hybrid apps",
"homepage": "https://mobiscroll.com/",
"license": "Apache-2.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/jquery/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@mobiscroll/jquery-lite",
"version": "4.9.0",
"version": "4.10.2",
"description": "jQuery and jQuery Mobile UI library for progressive web and hybrid apps",
"homepage": "https://mobiscroll.com/",
"license": "Apache-2.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/react/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@mobiscroll/react-lite",
"version": "4.9.0",
"version": "4.10.2",
"description": "React UI library for progressive web and hybrid apps",
"homepage": "https://mobiscroll.com/",
"license": "Apache-2.0",
Expand Down
5 changes: 2 additions & 3 deletions src/js/classes/progress.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
/* eslint-disable no-unused-vars */
// eslint-disable-next-line no-unused-vars
import { mobiscroll } from '../core/core'; // mobiscroll needed for trial
/* eslint-enable no-unused-vars */
import { $, classes, autoInit } from '../core/core';
import { ProgressBase } from './progress-base';
import { addIcon, wrapLabel } from './form-control';
Expand Down Expand Up @@ -210,4 +209,4 @@ Progress.prototype = {
classes.Progress = Progress;

// Init mbsc-progress elements on page load
autoInit('[mbsc-progress]', Progress);
autoInit('[mbsc-progress]', Progress);
3 changes: 1 addition & 2 deletions src/js/classes/scroller.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
/* eslint-disable no-unused-vars */
// eslint-disable-next-line no-unused-vars
import { mobiscroll } from '../core/core'; // mobiscroll needed for trial
/* eslint-enable no-unused-vars */
import { $, extend, classes } from '../core/core';
import { cssPrefix, jsPrefix } from '../util/dom';
import { isNumeric, objectToArray } from '../util/misc';
Expand Down
3 changes: 1 addition & 2 deletions src/js/classes/scrollview-base.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
/* eslint-disable no-unused-vars */
// eslint-disable-next-line no-unused-vars
import { $, Base, mobiscroll } from '../core/core'; // mobiscroll needed for trial
/* eslint-enable no-unused-vars */
import { os, raf, rafc } from '../util/platform';
import { getCoord } from '../util/tap';
import { cssPrefix, jsPrefix, getPosition, testTouch } from '../util/dom';
Expand Down
12 changes: 7 additions & 5 deletions src/js/classes/stepper.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,14 +126,16 @@ export const Stepper = function (control, settings) {
}

if (cssClass) {
$parent.removeClass(cssClass)
$parent.find('.mbsc-segmented').removeClass(cssClass);
$parent
.removeClass(cssClass)
.find('.mbsc-segmented').removeClass(cssClass);
}

cssClass = 'mbsc-' + s.theme + (theme.baseTheme ? ' mbsc-' + theme.baseTheme : '') + (s.rtl ? ' mbsc-rtl' : ' mbsc-ltr');

$parent.addClass(cssClass)
$parent.find('.mbsc-segmented').addClass(cssClass);
$parent
.addClass(cssClass)
.find('.mbsc-segmented').addClass(cssClass);

$btnMinus = $('.mbsc-stepper-minus', $parent);
$btnPlus = $('.mbsc-stepper-plus', $parent);
Expand Down Expand Up @@ -192,4 +194,4 @@ Stepper.prototype = {
classes.Stepper = Stepper;

// Init mbsc-stepper elements on page load
autoInit('[mbsc-stepper]', Stepper);
autoInit('[mbsc-stepper]', Stepper);
4 changes: 2 additions & 2 deletions src/js/core/core.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*!
* Mobiscroll v4.9.0
* Mobiscroll v4.10.2
* http://mobiscroll.com
*
*
Expand Down Expand Up @@ -104,7 +104,7 @@ extend(util, {

ms = extend(mobiscroll, {
$: $,
version: '4.9.0',
version: '4.10.2',
autoTheme: 'mobiscroll',
themes: {
form: {},
Expand Down
105 changes: 58 additions & 47 deletions src/js/core/dom.js
Original file line number Diff line number Diff line change
Expand Up @@ -302,106 +302,113 @@ var Dom = (function () {
},
//Events
on: function (eventName, targetSelector, listener, capture) {
var events = eventName.split(' '),
var boundListener,
elm,
event,
events = eventName.split(' '),
i, j;

function handleLiveEvent(e) {
var k,
parents,
target = e.target;

if ($(target).is(targetSelector)) {
listener.call(target, e);
} else {
parents = $(target).parents();
for (k = 0; k < parents.length; k++) {
if ($(parents[k]).is(targetSelector)) {
listener.call(parents[k], e);
}
var target = e.target;
while (target) {
if ($(target).is(targetSelector)) {
listener.call(target, e);
}
target = target !== this ? target.parentNode : null;
}
}

function handleNamespaces(elm, name, listener, capture) {
function handleNamespaces(el, name, listener, capture) {
var namespace = name.split('.');

if (!elm.DomNameSpaces) {
elm.DomNameSpaces = [];
if (!el.DomNameSpaces) {
el.DomNameSpaces = [];
}

elm.DomNameSpaces.push({
el.DomNameSpaces.push({
namespace: namespace[1],
event: namespace[0],
listener: listener,
capture: capture
});

elm.addEventListener(namespace[0], listener, capture);
el.addEventListener(namespace[0], listener, capture);
}

for (i = 0; i < this.length; i++) {
elm = this[i];
if (isFunction(targetSelector) || targetSelector === false) {
// Usual events
if (isFunction(targetSelector)) {
capture = listener || false;
listener = targetSelector;
}
for (j = 0; j < events.length; j++) {
event = events[j];
// check for namespaces
if (events[j].indexOf('.') != -1) {
handleNamespaces(this[i], events[j], listener, capture);
if (event.indexOf('.') != -1) {
handleNamespaces(elm, event, listener, capture);
} else {
this[i].addEventListener(events[j], listener, capture);
elm.addEventListener(event, listener, capture);
}
}
} else {
// Live events
boundListener = handleLiveEvent.bind(elm);
for (j = 0; j < events.length; j++) {
if (!this[i].DomLiveListeners) {
this[i].DomLiveListeners = [];
event = events[j];

if (!elm.DomLiveListeners) {
elm.DomLiveListeners = [];
}

this[i].DomLiveListeners.push({
elm.DomLiveListeners.push({
listener: listener,
liveListener: handleLiveEvent
liveListener: boundListener
});

if (events[j].indexOf('.') != -1) {
handleNamespaces(this[i], events[j], handleLiveEvent, capture);
if (event.indexOf('.') != -1) {
handleNamespaces(elm, event, boundListener, capture);
} else {
this[i].addEventListener(events[j], handleLiveEvent, capture);
elm.addEventListener(event, boundListener, capture);
}
}
}
}
return this;
},
off: function (eventName, targetSelector, listener, capture) {
var events,
var elm,
event,
events,
i, j, k,
liveListeners,
that = this;

function removeEvents(event) {
var i, j,
var el,
i, j,
item,
nameSpaces,
parts = event.split('.'),
name = parts[0],
ns = parts[1];

for (i = 0; i < that.length; ++i) {
if (that[i].DomNameSpaces) {
for (j = 0; j < that[i].DomNameSpaces.length; ++j) {
item = that[i].DomNameSpaces[j];

el = that[i];
nameSpaces = el.DomNameSpaces;
if (nameSpaces) {
for (j = 0; j < nameSpaces.length; ++j) {
item = nameSpaces[j];
if (item.namespace == ns && (item.event == name || !name)) {
that[i].removeEventListener(item.event, item.listener, item.capture);
el.removeEventListener(item.event, item.listener, item.capture);
item.removed = true;
}
}
// remove the events from the DomNameSpaces array
for (j = that[i].DomNameSpaces.length - 1; j >= 0; --j) {
if (that[i].DomNameSpaces[j].removed) {
that[i].DomNameSpaces.splice(j, 1);
for (j = nameSpaces.length - 1; j >= 0; --j) {
if (nameSpaces[j].removed) {
nameSpaces.splice(j, 1);
}
}
}
Expand All @@ -411,30 +418,33 @@ var Dom = (function () {
events = eventName.split(' ');

for (i = 0; i < events.length; i++) {
event = events[i];
for (j = 0; j < this.length; j++) {
elm = this[j];
liveListeners = elm.DomLiveListeners;
if (isFunction(targetSelector) || targetSelector === false) {
// Usual events
if (isFunction(targetSelector)) {
capture = listener || false;
listener = targetSelector;
}

if (events[i].indexOf('.') === 0) { // remove namespace events
removeEvents(events[i].substr(1), listener, capture);
if (event.indexOf('.') === 0) { // remove namespace events
removeEvents(event.substr(1), listener, capture);
} else {
this[j].removeEventListener(events[i], listener, capture);
elm.removeEventListener(event, listener, capture);
}
} else {
// Live event
if (this[j].DomLiveListeners) {
for (k = 0; k < this[j].DomLiveListeners.length; k++) {
if (this[j].DomLiveListeners[k].listener === listener) {
this[j].removeEventListener(events[i], this[j].DomLiveListeners[k].liveListener, capture);
if (liveListeners) {
for (k = 0; k < liveListeners.length; k++) {
if (liveListeners[k].listener === listener) {
elm.removeEventListener(event, liveListeners[k].liveListener, capture);
}
}
}
if (this[j].DomNameSpaces && this[j].DomNameSpaces.length && events[i]) {
removeEvents(events[i]);
if (elm.DomNameSpaces && elm.DomNameSpaces.length && event) {
removeEvents(event);
}
}
}
Expand Down Expand Up @@ -1072,6 +1082,7 @@ $.each = function (obj, callback) {
} else {
// Object
for (prop in obj) {
// eslint-disable-next-line no-prototype-builtins
if (obj.hasOwnProperty(prop) && prop !== 'length') {
if (callback.call(obj[prop], prop, obj[prop]) === false) {
break;
Expand Down
2 changes: 1 addition & 1 deletion src/js/forms.react.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ class MbscLabel extends React.Component {
return cssClass;
}

render = () => {
render() {
/* eslint-disable no-unused-vars */
// justification: variable 'valid' and 'className' is declared due to object decomposition
var {
Expand Down
5 changes: 5 additions & 0 deletions src/js/frameworks/react.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,8 @@ export const CalbasePropTypes = {
moreEventsPluralText: stringType,
moreEventsText: stringType,
onTabChange: funcType,
onCellHoverIn: funcType,
onCellHoverOut: funcType,
onDayChange: funcType,
onLabelTap: funcType,
onMonthChange: funcType,
Expand Down Expand Up @@ -239,6 +241,7 @@ export function deepCompare(a, b) {
return false;
}

// eslint-disable-next-line no-prototype-builtins
if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) {
return false;
}
Expand All @@ -259,6 +262,7 @@ export function deepCompare(a, b) {
// Quick checking of one object beeing a subset of another.
// todo: cache the structure of arguments[0] for performance
for (p in y) {
// eslint-disable-next-line no-prototype-builtins
if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {
return false;
} else if (typeof y[p] !== typeof x[p]) {
Expand All @@ -275,6 +279,7 @@ export function deepCompare(a, b) {
};
const props = reactElement ? elementProps : x;
for (p in props) {
// eslint-disable-next-line no-prototype-builtins
if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) {
return false;
} else if (typeof y[p] !== typeof x[p]) {
Expand Down
Loading

0 comments on commit cf18be5

Please sign in to comment.