UNPKG

baseframe-js

Version:

A suite of useful Javascript plugins and functions to help with Front-end Development on websites

68 lines (67 loc) 3.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _cashDom = _interopRequireDefault(require("cash-dom")); var _helpers = require("../util/helpers"); var _Store = _interopRequireDefault(require("./Store")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } var checkIfParamsExist = function checkIfParamsExist(setParams, params) { var notify = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; for (var k in params) { if (!{}.hasOwnProperty.call(setParams, k)) { notify && console.log(k, 'is not a property that can be used'); delete params[k]; } } return params; }; var extendPlugin = function extendPlugin(Plugin, notify, Lib) { var DataName = Plugin.pluginName; var pluginName = (0, _helpers.lowercaseFirstLetter)(DataName); Plugin.Constructor = Plugin; Lib.fn.extend(_defineProperty({}, pluginName, function (params) { var s = this; return s.each(function (index) { var instance = (0, _Store["default"])(this, DataName); if (!instance) { var plugin = new Plugin(this, params, index); (0, _Store["default"])(this, DataName, plugin); } else { var canUpdate = instance.handleUpdate && typeof instance.handleUpdate === 'function'; if (typeof params === 'string') { if (params === 'remove') { Plugin.remove(this); } if (params === 'update' && canUpdate) { instance.handleUpdate(); } return; } checkIfParamsExist(instance.params, params, notify); Lib.extend(instance.params, params); if (canUpdate) { instance.handleUpdate(); } notify && console.log("Params updated", instance.params); } }); })); }; var libraryExtend = function libraryExtend(Plugins) { var notify = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var Lib = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _cashDom["default"]; if (Plugins instanceof Array) { for (var i = 0, l = Plugins.length; i < l; i++) { extendPlugin(Plugins[i], notify, Lib); } } else { extendPlugin(Plugins, notify, Lib); } }; var _default = exports["default"] = libraryExtend;