1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 08:21:34 +02:00
invoiceninja/public/js/ninja.min.js
David Bomba 348890e8fa
Save Client / Contacts (#2523)
* View composers

* Saving client and contacts

*  saving client and contacts

* update client job

* unique emails
2018-11-27 17:59:16 +11:00

808 lines
24 KiB
JavaScript
Vendored

/*!
* CoreUI v2.0.18 (https://coreui.io)
* Copyright 2018 Łukasz Holeczek
* Licensed under MIT (https://coreui.io)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('perfect-scrollbar')) :
typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'perfect-scrollbar'], factory) :
(factory((global.coreui = {}),global.jQuery,global.PerfectScrollbar));
}(this, (function (exports,$,PerfectScrollbar) { 'use strict';
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
PerfectScrollbar = PerfectScrollbar && PerfectScrollbar.hasOwnProperty('default') ? PerfectScrollbar['default'] : PerfectScrollbar;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
/**
* --------------------------------------------------------------------------
* CoreUI (v2.0.18): ajax-load.js
* Licensed under MIT (https://coreui.io/license)
* --------------------------------------------------------------------------
*/
var AjaxLoad = function ($$$1) {
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'ajaxLoad';
var VERSION = '2.0.18';
var DATA_KEY = 'coreui.ajaxLoad';
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
var ClassName = {
ACTIVE: 'active',
NAV_PILLS: 'nav-pills',
NAV_TABS: 'nav-tabs',
OPEN: 'open',
VIEW_SCRIPT: 'view-script'
};
var Event = {
CLICK: 'click'
};
var Selector = {
HEAD: 'head',
NAV_DROPDOWN: '.sidebar-nav .nav-dropdown',
NAV_LINK: '.sidebar-nav .nav-link',
NAV_ITEM: '.sidebar-nav .nav-item',
VIEW_SCRIPT: '.view-script'
};
var Default = {
defaultPage: 'main.html',
errorPage: '404.html',
subpagesDirectory: 'views/'
};
var AjaxLoad =
/*#__PURE__*/
function () {
function AjaxLoad(element, config) {
this._config = this._getConfig(config);
this._element = element;
var url = location.hash.replace(/^#/, '');
if (url !== '') {
this.setUpUrl(url);
} else {
this.setUpUrl(this._config.defaultPage);
}
this._addEventListeners();
} // Getters
var _proto = AjaxLoad.prototype;
// Public
_proto.loadPage = function loadPage(url) {
var element = this._element;
var config = this._config;
var loadScripts = function loadScripts(src, element) {
if (element === void 0) {
element = 0;
}
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = src[element];
script.className = ClassName.VIEW_SCRIPT; // eslint-disable-next-line no-multi-assign
script.onload = script.onreadystatechange = function () {
if (!this.readyState || this.readyState === 'complete') {
if (src.length > element + 1) {
loadScripts(src, element + 1);
}
}
};
var body = document.getElementsByTagName('body')[0];
body.appendChild(script);
};
$$$1.ajax({
type: 'GET',
url: config.subpagesDirectory + url,
dataType: 'html',
beforeSend: function beforeSend() {
$$$1(Selector.VIEW_SCRIPT).remove();
},
success: function success(result) {
var wrapper = document.createElement('div');
wrapper.innerHTML = result;
var scripts = Array.from(wrapper.querySelectorAll('script')).map(function (script) {
return script.attributes.getNamedItem('src').nodeValue;
});
wrapper.querySelectorAll('script').forEach(function (script) {
return script.parentNode.removeChild(script);
});
$$$1('body').animate({
scrollTop: 0
}, 0);
$$$1(element).html(wrapper);
if (scripts.length) {
loadScripts(scripts);
}
window.location.hash = url;
},
error: function error() {
window.location.href = config.errorPage;
}
});
};
_proto.setUpUrl = function setUpUrl(url) {
$$$1(Selector.NAV_LINK).removeClass(ClassName.ACTIVE);
$$$1(Selector.NAV_DROPDOWN).removeClass(ClassName.OPEN);
$$$1(Selector.NAV_DROPDOWN + ":has(a[href=\"" + url.replace(/^\//, '').split('?')[0] + "\"])").addClass(ClassName.OPEN);
$$$1(Selector.NAV_ITEM + " a[href=\"" + url.replace(/^\//, '').split('?')[0] + "\"]").addClass(ClassName.ACTIVE);
this.loadPage(url);
};
_proto.loadBlank = function loadBlank(url) {
window.open(url);
};
_proto.loadTop = function loadTop(url) {
window.location = url;
}; // Private
_proto._getConfig = function _getConfig(config) {
config = Object.assign({}, Default, config);
return config;
};
_proto._addEventListeners = function _addEventListeners() {
var _this = this;
$$$1(document).on(Event.CLICK, Selector.NAV_LINK + "[href!=\"#\"]", function (event) {
event.preventDefault();
event.stopPropagation();
if (event.currentTarget.target === '_top') {
_this.loadTop(event.currentTarget.href);
} else if (event.currentTarget.target === '_blank') {
_this.loadBlank(event.currentTarget.href);
} else {
_this.setUpUrl(event.currentTarget.getAttribute('href'));
}
});
}; // Static
AjaxLoad._jQueryInterface = function _jQueryInterface(config) {
return this.each(function () {
var data = $$$1(this).data(DATA_KEY);
var _config = typeof config === 'object' && config;
if (!data) {
data = new AjaxLoad(this, _config);
$$$1(this).data(DATA_KEY, data);
}
});
};
_createClass(AjaxLoad, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}, {
key: "Default",
get: function get() {
return Default;
}
}]);
return AjaxLoad;
}();
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$$$1.fn[NAME] = AjaxLoad._jQueryInterface;
$$$1.fn[NAME].Constructor = AjaxLoad;
$$$1.fn[NAME].noConflict = function () {
$$$1.fn[NAME] = JQUERY_NO_CONFLICT;
return AjaxLoad._jQueryInterface;
};
return AjaxLoad;
}($);
/**
* --------------------------------------------------------------------------
* CoreUI (v2.0.18): toggle-classes.js
* Licensed under MIT (https://coreui.io/license)
* --------------------------------------------------------------------------
*/
var removeClasses = function removeClasses(classNames) {
return classNames.map(function (className) {
return document.body.classList.contains(className);
}).indexOf(true) !== -1;
};
var toggleClasses = function toggleClasses(toggleClass, classNames) {
var breakpoint = classNames.indexOf(toggleClass);
var newClassNames = classNames.slice(0, breakpoint + 1);
if (removeClasses(newClassNames)) {
newClassNames.map(function (className) {
return document.body.classList.remove(className);
});
} else {
document.body.classList.add(toggleClass);
}
};
/**
* --------------------------------------------------------------------------
* CoreUI (v2.0.18): aside-menu.js
* Licensed under MIT (https://coreui.io/license)
* --------------------------------------------------------------------------
*/
var AsideMenu = function ($$$1) {
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'aside-menu';
var VERSION = '2.0.18';
var DATA_KEY = 'coreui.aside-menu';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
var Event = {
CLICK: 'click',
LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
TOGGLE: 'toggle'
};
var Selector = {
BODY: 'body',
ASIDE_MENU: '.aside-menu',
ASIDE_MENU_TOGGLER: '.aside-menu-toggler'
};
var ShowClassNames = ['aside-menu-show', 'aside-menu-sm-show', 'aside-menu-md-show', 'aside-menu-lg-show', 'aside-menu-xl-show'];
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var AsideMenu =
/*#__PURE__*/
function () {
function AsideMenu(element) {
this._element = element;
this._addEventListeners();
} // Getters
var _proto = AsideMenu.prototype;
// Private
_proto._addEventListeners = function _addEventListeners() {
$$$1(Selector.ASIDE_MENU_TOGGLER).on(Event.CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
var toggle = event.currentTarget.dataset.toggle;
toggleClasses(toggle, ShowClassNames);
});
}; // Static
AsideMenu._jQueryInterface = function _jQueryInterface() {
return this.each(function () {
var $element = $$$1(this);
var data = $element.data(DATA_KEY);
if (!data) {
data = new AsideMenu(this);
$element.data(DATA_KEY, data);
}
});
};
_createClass(AsideMenu, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return AsideMenu;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$$$1(window).on(Event.LOAD_DATA_API, function () {
var asideMenu = $$$1(Selector.ASIDE_MENU);
AsideMenu._jQueryInterface.call(asideMenu);
});
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$$$1.fn[NAME] = AsideMenu._jQueryInterface;
$$$1.fn[NAME].Constructor = AsideMenu;
$$$1.fn[NAME].noConflict = function () {
$$$1.fn[NAME] = JQUERY_NO_CONFLICT;
return AsideMenu._jQueryInterface;
};
return AsideMenu;
}($);
/**
* --------------------------------------------------------------------------
* CoreUI (v2.0.18): sidebar.js
* Licensed under MIT (https://coreui.io/license)
* --------------------------------------------------------------------------
*/
var Sidebar = function ($$$1) {
/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
*/
var NAME = 'sidebar';
var VERSION = '2.0.18';
var DATA_KEY = 'coreui.sidebar';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
var Default = {
transition: 400
};
var ClassName = {
ACTIVE: 'active',
BRAND_MINIMIZED: 'brand-minimized',
NAV_DROPDOWN_TOGGLE: 'nav-dropdown-toggle',
OPEN: 'open',
SIDEBAR_FIXED: 'sidebar-fixed',
SIDEBAR_MINIMIZED: 'sidebar-minimized',
SIDEBAR_OFF_CANVAS: 'sidebar-off-canvas'
};
var Event = {
CLICK: 'click',
DESTROY: 'destroy',
INIT: 'init',
LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
TOGGLE: 'toggle',
UPDATE: 'update'
};
var Selector = {
BODY: 'body',
BRAND_MINIMIZER: '.brand-minimizer',
NAV_DROPDOWN_TOGGLE: '.nav-dropdown-toggle',
NAV_DROPDOWN_ITEMS: '.nav-dropdown-items',
NAV_ITEM: '.nav-item',
NAV_LINK: '.nav-link',
NAVIGATION_CONTAINER: '.sidebar-nav',
NAVIGATION: '.sidebar-nav > .nav',
SIDEBAR: '.sidebar',
SIDEBAR_MINIMIZER: '.sidebar-minimizer',
SIDEBAR_TOGGLER: '.sidebar-toggler'
};
var ShowClassNames = ['sidebar-show', 'sidebar-sm-show', 'sidebar-md-show', 'sidebar-lg-show', 'sidebar-xl-show'];
/**
* ------------------------------------------------------------------------
* Class Definition
* ------------------------------------------------------------------------
*/
var Sidebar =
/*#__PURE__*/
function () {
function Sidebar(element) {
this._element = element;
this.ps = null;
this.perfectScrollbar(Event.INIT);
this.setActiveLink();
this._addEventListeners();
} // Getters
var _proto = Sidebar.prototype;
// Public
_proto.perfectScrollbar = function perfectScrollbar(event) {
var _this = this;
if (typeof PerfectScrollbar !== 'undefined') {
if (event === Event.INIT && !document.body.classList.contains(ClassName.SIDEBAR_MINIMIZED)) {
this.ps = this.makeScrollbar();
}
if (event === Event.DESTROY) {
this.destroyScrollbar();
}
if (event === Event.TOGGLE) {
if (document.body.classList.contains(ClassName.SIDEBAR_MINIMIZED)) {
this.destroyScrollbar();
} else {
this.ps = this.makeScrollbar();
}
}
if (event === Event.UPDATE && !document.body.classList.contains(ClassName.SIDEBAR_MINIMIZED)) {
// ToDo: Add smooth transition
setTimeout(function () {
_this.destroyScrollbar();
_this.ps = _this.makeScrollbar();
}, Default.transition);
}
}
};
_proto.makeScrollbar = function makeScrollbar(container) {
if (container === void 0) {
container = Selector.NAVIGATION_CONTAINER;
}
var ps = new PerfectScrollbar(document.querySelector(container), {
suppressScrollX: true
}); // ToDo: find real fix for ps rtl
ps.isRtl = false;
return ps;
};
_proto.destroyScrollbar = function destroyScrollbar() {
if (this.ps) {
this.ps.destroy();
this.ps = null;
}
};
_proto.setActiveLink = function setActiveLink() {
$$$1(Selector.NAVIGATION).find(Selector.NAV_LINK).each(function (key, value) {
var link = value;
var cUrl = String(window.location).split('?')[0];
if (cUrl.substr(cUrl.length - 1) === '#') {
cUrl = cUrl.slice(0, -1);
}
if ($$$1($$$1(link))[0].href === cUrl) {
$$$1(link).addClass(ClassName.ACTIVE).parents(Selector.NAV_DROPDOWN_ITEMS).add(link).each(function (key, value) {
link = value;
$$$1(link).parent().addClass(ClassName.OPEN);
});
}
});
}; // Private
_proto._addEventListeners = function _addEventListeners() {
var _this2 = this;
$$$1(Selector.BRAND_MINIMIZER).on(Event.CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
$$$1(Selector.BODY).toggleClass(ClassName.BRAND_MINIMIZED);
});
$$$1(Selector.NAV_DROPDOWN_TOGGLE).on(Event.CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
var dropdown = event.target;
$$$1(dropdown).parent().toggleClass(ClassName.OPEN);
_this2.perfectScrollbar(Event.UPDATE);
});
$$$1(Selector.SIDEBAR_MINIMIZER).on(Event.CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
$$$1(Selector.BODY).toggleClass(ClassName.SIDEBAR_MINIMIZED);
_this2.perfectScrollbar(Event.TOGGLE);
});
$$$1(Selector.SIDEBAR_TOGGLER).on(Event.CLICK, function (event) {
event.preventDefault();
event.stopPropagation();
var toggle = event.currentTarget.dataset.toggle;
toggleClasses(toggle, ShowClassNames);
});
$$$1(Selector.NAVIGATION + " > " + Selector.NAV_ITEM + " " + Selector.NAV_LINK + ":not(" + Selector.NAV_DROPDOWN_TOGGLE + ")").on(Event.CLICK, function () {
document.body.classList.remove('sidebar-show');
});
}; // Static
Sidebar._jQueryInterface = function _jQueryInterface() {
return this.each(function () {
var $element = $$$1(this);
var data = $element.data(DATA_KEY);
if (!data) {
data = new Sidebar(this);
$element.data(DATA_KEY, data);
}
});
};
_createClass(Sidebar, null, [{
key: "VERSION",
get: function get() {
return VERSION;
}
}]);
return Sidebar;
}();
/**
* ------------------------------------------------------------------------
* Data Api implementation
* ------------------------------------------------------------------------
*/
$$$1(window).on(Event.LOAD_DATA_API, function () {
var sidebar = $$$1(Selector.SIDEBAR);
Sidebar._jQueryInterface.call(sidebar);
});
/**
* ------------------------------------------------------------------------
* jQuery
* ------------------------------------------------------------------------
*/
$$$1.fn[NAME] = Sidebar._jQueryInterface;
$$$1.fn[NAME].Constructor = Sidebar;
$$$1.fn[NAME].noConflict = function () {
$$$1.fn[NAME] = JQUERY_NO_CONFLICT;
return Sidebar._jQueryInterface;
};
return Sidebar;
}($);
/**
* --------------------------------------------------------------------------
* CoreUI Utilities (v2.0.18): get-style.js
* Licensed under MIT (https://coreui.io/license)
* --------------------------------------------------------------------------
*/
var getCssCustomProperties = function getCssCustomProperties() {
var cssCustomProperties = {};
var sheets = document.styleSheets;
var cssText = '';
for (var i = sheets.length - 1; i > -1; i--) {
var rules = sheets[i].cssRules;
for (var j = rules.length - 1; j > -1; j--) {
if (rules[j].selectorText === '.ie-custom-properties') {
cssText = rules[j].cssText;
break;
}
}
if (cssText) {
break;
}
}
cssText = cssText.substring(cssText.lastIndexOf('{') + 1, cssText.lastIndexOf('}'));
cssText.split(';').forEach(function (property) {
if (property) {
var name = property.split(': ')[0];
var value = property.split(': ')[1];
if (name && value) {
cssCustomProperties["--" + name.trim()] = value.trim();
}
}
});
return cssCustomProperties;
};
var minIEVersion = 10;
var isIE1x = function isIE1x() {
return Boolean(document.documentMode) && document.documentMode >= minIEVersion;
};
var isCustomProperty = function isCustomProperty(property) {
return property.match(/^--.*/i);
};
var getStyle = function getStyle(property, element) {
if (element === void 0) {
element = document.body;
}
var style;
if (isCustomProperty(property) && isIE1x()) {
var cssCustomProperties = getCssCustomProperties();
style = cssCustomProperties[property];
} else {
style = window.getComputedStyle(element, null).getPropertyValue(property).replace(/^\s/, '');
}
return style;
};
/**
* --------------------------------------------------------------------------
* CoreUI Utilities (v2.0.18): hex-to-rgb.js
* Licensed under MIT (https://coreui.io/license)
* --------------------------------------------------------------------------
*/
/* eslint-disable no-magic-numbers */
var hexToRgb = function hexToRgb(color) {
if (typeof color === 'undefined') {
throw new Error('Hex color is not defined');
}
var hex = color.match(/^#(?:[0-9a-f]{3}){1,2}$/i);
if (!hex) {
throw new Error(color + " is not a valid hex color");
}
var r;
var g;
var b;
if (color.length === 7) {
r = parseInt(color.substring(1, 3), 16);
g = parseInt(color.substring(3, 5), 16);
b = parseInt(color.substring(5, 7), 16);
} else {
r = parseInt(color.substring(1, 2), 16);
g = parseInt(color.substring(2, 3), 16);
b = parseInt(color.substring(3, 5), 16);
}
return "rgba(" + r + ", " + g + ", " + b + ")";
};
/**
* --------------------------------------------------------------------------
* CoreUI Utilities (v2.0.18): hex-to-rgba.js
* Licensed under MIT (https://coreui.io/license)
* --------------------------------------------------------------------------
*/
/* eslint-disable no-magic-numbers */
var hexToRgba = function hexToRgba(color, opacity) {
if (opacity === void 0) {
opacity = 100;
}
if (typeof color === 'undefined') {
throw new Error('Hex color is not defined');
}
var hex = color.match(/^#(?:[0-9a-f]{3}){1,2}$/i);
if (!hex) {
throw new Error(color + " is not a valid hex color");
}
var r;
var g;
var b;
if (color.length === 7) {
r = parseInt(color.substring(1, 3), 16);
g = parseInt(color.substring(3, 5), 16);
b = parseInt(color.substring(5, 7), 16);
} else {
r = parseInt(color.substring(1, 2), 16);
g = parseInt(color.substring(2, 3), 16);
b = parseInt(color.substring(3, 5), 16);
}
return "rgba(" + r + ", " + g + ", " + b + ", " + opacity / 100 + ")";
};
/**
* --------------------------------------------------------------------------
* CoreUI (v2.0.18): rgb-to-hex.js
* Licensed under MIT (https://coreui.io/license)
* --------------------------------------------------------------------------
*/
/* eslint-disable no-magic-numbers */
var rgbToHex = function rgbToHex(color) {
if (typeof color === 'undefined') {
throw new Error('Hex color is not defined');
}
if (color === 'transparent') {
return '#00000000';
}
var rgb = color.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);
if (!rgb) {
throw new Error(color + " is not a valid rgb color");
}
var r = "0" + parseInt(rgb[1], 10).toString(16);
var g = "0" + parseInt(rgb[2], 10).toString(16);
var b = "0" + parseInt(rgb[3], 10).toString(16);
return "#" + r.slice(-2) + g.slice(-2) + b.slice(-2);
};
/**
* --------------------------------------------------------------------------
* CoreUI (v2.0.18): index.js
* Licensed under MIT (https://coreui.io/license)
* --------------------------------------------------------------------------
*/
(function ($$$1) {
if (typeof $$$1 === 'undefined') {
throw new TypeError('CoreUI\'s JavaScript requires jQuery. jQuery must be included before CoreUI\'s JavaScript.');
}
var version = $$$1.fn.jquery.split(' ')[0].split('.');
var minMajor = 1;
var ltMajor = 2;
var minMinor = 9;
var minPatch = 1;
var maxMajor = 4;
if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
throw new Error('CoreUI\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');
}
})($);
window.getStyle = getStyle;
window.hexToRgb = hexToRgb;
window.hexToRgba = hexToRgba;
window.rgbToHex = rgbToHex;
exports.AjaxLoad = AjaxLoad;
exports.AsideMenu = AsideMenu;
exports.Sidebar = Sidebar;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=coreui.js.map