{"version":3,"file":"circular-menu.js","sources":["../../src/Calculation/rotateDeg.js","../../src/Calculation/horizontalDeg.js","../../src/Calculation/startDeg.js","../../src/Calculation/coverSize.js","../../src/Calculation/menuSize.js","../../src/Calculation/clickZoneSize.js","../../src/Calculation/listSize.js","../../src/Calculation/textTop.js","../../src/Calculation/index.js","../../src/Creator/createLists.js","../../src/window.js","../../src/style.js","../../src/Creator/createList.js","../../src/classed.js","../../src/Creator/styleSheet.js","../../src/on.js","../../src/Creator/createMenu.js","../../src/Creator/createAnchor.js","../../src/Creator/createIcon.js","../../src/Creator/createText.js","../../src/Creator/createHorizontal.js","../../src/extend.js","../../src/Creator/createSubMenu.js","../../src/Creator/index.js","../../src/config.js","../../src/show.js","../../src/hide.js","../../src/styles.js","../../src/CMenu.js","../../index.js"],"sourcesContent":["export default function rotateDeg (i){\r\n return this.startDeg + this.rotateUnit * i;\r\n}","export default function rotateDeg (i){\r\n return - (this.rotateDeg(i) + this.unskewDeg);\r\n}","export default function startDeg(config) {\r\n var top = -(config.totalAngle - 180) / 2,\r\n positions = {\r\n top: top,\r\n left: top - 90,\r\n right: top + 90,\r\n bottom: top + 180\r\n };\r\n\r\n return config.start !== undefined ? config.start : positions[config.position];\r\n}","const antialiasing = 3;\r\n\r\nexport function coverRadius(radius, percent) {\r\n var square = radius * radius * 2;\r\n return Math.sqrt(square) * percent + antialiasing;\r\n}\r\n\r\nexport default function (coverRadius) {\r\n var l = coverRadius * 2;\r\n var m = -l / 2;\r\n\r\n l += \"px\";\r\n m += \"px\";\r\n \r\n return {\r\n width: l,\r\n height: l,\r\n marginLeft: m,\r\n marginTop: m\r\n };\r\n}","export default function (config) {\r\n var l = config.diameter;\r\n var m = - config.diameter / 2;\r\n\r\n l += \"px\";\r\n m += \"px\";\r\n\r\n return {\r\n width: l,\r\n height: l,\r\n marginLeft: m,\r\n marginTop: m\r\n };\r\n}","export const fixedTop = 10;\r\n\r\nexport default function (config) {\r\n var l = config.diameter;\r\n var m = - config.diameter / 2;\r\n\r\n l += \"px\";\r\n m += \"px\";\r\n\r\n return {\r\n width: l,\r\n height: l,\r\n marginRight: m,\r\n marginBottom: m\r\n };\r\n}","export default function (config) {\r\n var l = (config.diameter / 2) + 'px';\r\n\r\n return {\r\n width: l,\r\n height: l\r\n };\r\n}","import {fixedTop} from \"./clickZoneSize\";\r\n\r\nconst middleRatio = 0.41;\r\n\r\nexport default function (clickZoneRadius) {\r\n return clickZoneRadius * middleRatio - fixedTop + 'px';\r\n\r\n}","import rotateDeg from './rotateDeg';\r\nimport horizontalDeg from './horizontalDeg';\r\nimport startDeg from './startDeg';\r\nimport {default as coverSize, coverRadius} from \"./coverSize\";\r\nimport menuSize from \"./menuSize\";\r\nimport clickZoneSize from \"./clickZoneSize\";\r\nimport listSize from \"./listSize\";\r\nimport textTop from \"./textTop\";\r\n\r\nexport default function Calculation(config) {\r\n this._config = config;\r\n\r\n var c = this.config = config,\r\n itemsNum = c.menus.length,\r\n spaceNumber = c.totalAngle === 360 ? itemsNum : itemsNum - 1;\r\n\r\n this.radius = config.diameter / 2;\r\n this.coverRadius = coverRadius(this.radius, config.percent);\r\n this.clickZoneRadius = this.radius - this.coverRadius;\r\n\r\n\r\n\r\n this.listSize = listSize(config);\r\n this.clickZoneSize = clickZoneSize(config);\r\n this.menuSize = menuSize(config);\r\n this.coverSize = coverSize(this.coverRadius);\r\n this.startDeg = startDeg(config);\r\n this.centralDeg = (c.totalAngle - (c.spaceDeg * spaceNumber)) / itemsNum;\r\n this.rotateUnit = this.centralDeg + c.spaceDeg;\r\n this.skewDeg = 90 - this.centralDeg;\r\n this.unskewDeg = - (90 - this.centralDeg / 2);\r\n this.textTop = textTop(this.clickZoneRadius);\r\n}\r\n\r\nCalculation.prototype = {\r\n constructor: Calculation,\r\n rotateDeg: rotateDeg,\r\n horizontalDeg: horizontalDeg\r\n};","export default function (parent) {\r\n \r\n this._config.menus.forEach(function(v, k){\r\n\r\n this._createList(parent, v, k);\r\n \r\n }, this);\r\n\r\n}","export default function(node) {\r\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\r\n || (node.document && node) // node is a Window\r\n || node.defaultView; // node is a Document\r\n}","import defaultView from \"./window\";\r\n\r\nfunction styleRemove(name) {\r\n this.style.removeProperty(name);\r\n}\r\n\r\nfunction styleConstant(name, value, priority) {\r\n this.style.setProperty(name, value, priority);\r\n}\r\n\r\nfunction styleFunction(name, value, priority) {\r\n var v = value.apply(this, arguments);\r\n if (v == null) this.style.removeProperty(name);\r\n else this.style.setProperty(name, v, priority);\r\n}\r\n\r\nexport default function(ele, name, value, priority) {\r\n\r\n var node;\r\n return arguments.length > 1\r\n ? ((value == null\r\n ? styleRemove : typeof value === \"function\"\r\n ? styleFunction\r\n : styleConstant).call(ele, name, value, priority == null ? \"\" : priority))\r\n : defaultView(node = ele)\r\n .getComputedStyle(node, null)\r\n .getPropertyValue(name);\r\n}\r\n","import style from \"./../style\";\r\n\r\n\r\nexport default function(parent, data, index){\r\n\r\n var list = document.createElement('li');\r\n style(list, 'width', this._calc.listSize.width);\r\n style(list, 'height', this._calc.listSize.height);\r\n style(list, 'transform', 'rotate('+ this._calc.rotateDeg(index) +'deg) skew('+ this._calc.skewDeg +'deg)');\r\n\r\n parent.appendChild(list);\r\n\r\n this._createAnchor(list, data, index);\r\n\r\n}","function classArray(string) {\r\n return string.trim().split(/^|\\s+/);\r\n}\r\n\r\nfunction classList(node) {\r\n return node.classList || new ClassList(node);\r\n}\r\n\r\nfunction ClassList(node) {\r\n this._node = node;\r\n this._names = classArray(node.getAttribute(\"class\") || \"\");\r\n}\r\n\r\nClassList.prototype = {\r\n add: function(name) {\r\n var i = this._names.indexOf(name);\r\n if (i < 0) {\r\n this._names.push(name);\r\n this._node.setAttribute(\"class\", this._names.join(\" \"));\r\n }\r\n },\r\n remove: function(name) {\r\n var i = this._names.indexOf(name);\r\n if (i >= 0) {\r\n this._names.splice(i, 1);\r\n this._node.setAttribute(\"class\", this._names.join(\" \"));\r\n }\r\n },\r\n contains: function(name) {\r\n return this._names.indexOf(name) >= 0;\r\n }\r\n};\r\n\r\nfunction classedAdd(node, names) {\r\n var list = classList(node), i = -1, n = names.length;\r\n while (++i < n) list.add(names[i]);\r\n}\r\n\r\nfunction classedRemove(node, names) {\r\n var list = classList(node), i = -1, n = names.length;\r\n while (++i < n) list.remove(names[i]);\r\n}\r\n\r\nfunction classedTrue(names) {\r\n classedAdd(this, names);\r\n}\r\n\r\nfunction classedFalse(names) {\r\n classedRemove(this, names);\r\n}\r\n\r\nfunction classedFunction(names, value) {\r\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\r\n}\r\n\r\nexport default function(ele, name, value) {\r\n var names = classArray(name + \"\");\r\n\r\n if (arguments.length < 2) {\r\n var list = classList(this), i = -1, n = names.length;\r\n while (++i < n) if (!list.contains(names[i])) return false;\r\n return true;\r\n }\r\n\r\n var callee = (typeof value === \"function\"\r\n ? classedFunction : value\r\n ? classedTrue\r\n : classedFalse).call(ele, names, value);\r\n}\r\n","var UID = {\r\n _current: 0,\r\n getNew: function(){\r\n this._current++;\r\n return this._current;\r\n }\r\n};\r\nexport default function (element, prop, value, pseudo) {\r\n \r\n var _this = element;\r\n var _sheetId = \"sheetStyles\";\r\n var _head = document.head || document.getElementsByTagName('head')[0];\r\n var _sheet = document.getElementById(_sheetId) || document.createElement('style');\r\n _sheet.id = _sheetId;\r\n var className = \"s-S\" + UID.getNew();\r\n \r\n _this.className += \" \" + className;\r\n\r\n\r\n\r\n _sheet.innerHTML += \" .\" + className + ( pseudo ? (\":\" + pseudo) : \"\" ) + \"{\" + prop + \":\" + value + \"}\";\r\n _head.appendChild(_sheet);\r\n return this;\r\n};","export default function on (ele, type, callback, data) {\r\n ele.addEventListener(type, function(e){\r\n callback.call(this, e, data);\r\n });\r\n}","import classed from \"./../classed\";\r\nimport style from \"./../style\";\r\nimport styleSheet from \"./styleSheet\";\r\nimport on from \"../on\";\r\n\r\nexport default function(){\r\n var p = this._container;\r\n\r\n classed(p, 'circular-menu', true);\r\n style(p, 'width', this._calc.menuSize.width);\r\n style(p, 'height', this._calc.menuSize.height);\r\n style(p, 'margin-top', this._calc.menuSize.marginTop);\r\n style(p, 'margin-left', this._calc.menuSize.marginLeft);\r\n \r\n var self = this;\r\n on(p, \"click\", function(e){\r\n if(e.toElement === p){\r\n self._cMenu.hide();\r\n }\r\n });\r\n setTimeout(function(){\r\n style(p, 'display', 'block');\r\n },100);\r\n\r\n styleSheet(p, 'width', this._calc.coverSize.width, 'after');\r\n styleSheet(p, 'height', this._calc.coverSize.height, 'after');\r\n styleSheet(p, 'margin-left', this._calc.coverSize.marginLeft, 'after');\r\n styleSheet(p, 'margin-top', this._calc.coverSize.marginTop, 'after');\r\n styleSheet(p, 'border', \"3px solid \" + this._config.pageBackground, 'after');\r\n\r\n\r\n var ul = p.appendChild(document.createElement('ul'));\r\n this._createLists(ul);\r\n}","import style from \"./../style\";\r\nimport classed from \"./../classed\";\r\nimport on from \"./../on\";\r\nimport styleSheet from \"./styleSheet\";\r\n\r\nfunction hasSubMenus(menus) {\r\n return menus instanceof Array && menus.length !== 0;\r\n}\r\nfunction ifDisabled(disabled){\r\n if(disabled instanceof Function)\r\n return disabled();\r\n else\r\n return Boolean(disabled);\r\n}\r\n\r\nfunction setHref(ele, href){\r\n if(!href) return;\r\n\r\n if(href instanceof Object){\r\n ele.href = href.url;\r\n ele.target = href.blank? \"_blank\" : \"\";\r\n }else{\r\n ele.href = href;\r\n }\r\n}\r\n\r\n\r\n\r\nvar delayShow = null;// delayShow reference the last setTimeout triggered by any one of menu item(anchor)\r\n\r\nexport default function (parent, data, index) {\r\n var self = this;\r\n\r\n var delayHide = null;// delayHide reference the last setTimeout triggered by the menu item itself\r\n\r\n var a = document.createElement('a');\r\n\r\n setHref(a, data.href);\r\n\r\n a.setDisabled = function(){\r\n classed(a, 'disabled', ifDisabled(data.disabled));\r\n };\r\n this._anchors.push(a);\r\n\r\n\r\n style(a, 'width', this._calc.clickZoneSize.width);\r\n style(a, 'height', this._calc.clickZoneSize.height);\r\n style(a, 'right', this._calc.clickZoneSize.marginRight);\r\n style(a, 'bottom', this._calc.clickZoneSize.marginBottom);\r\n style(a, 'transform', 'skew(' + -this._calc.skewDeg + 'deg) rotate(' + this._calc.unskewDeg + 'deg) scale(1)');\r\n\r\n classed(a, 'disabled', ifDisabled(data.disabled));\r\n\r\n\r\n var percent = this._config.percent * 100 + \"%\";\r\n styleSheet(a, 'background', 'radial-gradient(transparent ' + percent + ', ' + this._config.background + ' ' + percent + ')');\r\n styleSheet(a, 'background', 'radial-gradient(transparent ' + percent + ', ' + this._config.backgroundHover + ' ' + percent + ')', 'hover');\r\n\r\n\r\n function clickCallBack(e, data){\r\n if (data.click) data.click.call(this, e, data);\r\n\r\n if(self._config.hideAfterClick){\r\n self._cMenu.hide();\r\n if(self._cMenu._pMenu) self._cMenu._pMenu.hide();\r\n if(subMenu) subMenu.hide();\r\n }\r\n }\r\n\r\n on(a, 'click', clickCallBack, data);\r\n\r\n parent.appendChild(a);\r\n\r\n this._createHorizontal(a, data, index);\r\n \r\n \r\n //toggle subMenu\r\n if (hasSubMenus(data.menus)) {\r\n var subMenu = this._createSubMenu(self, data.menus, index);\r\n\r\n on(a, 'mouseenter', function () {\r\n delayShow = setTimeout(function () {\r\n subMenu\r\n .styles({\r\n top: self._container.offsetTop + self._calc.radius + 'px',\r\n left: self._container.offsetLeft + self._calc.radius + 'px'\r\n })\r\n .show();\r\n }, 150);\r\n });\r\n\r\n on(a, 'mouseleave', function (e) {\r\n if (!subMenu._container.contains(e.toElement)) {\r\n delayHide = setTimeout(function () {\r\n subMenu.hide();\r\n }, 200);\r\n }\r\n });\r\n\r\n on(subMenu._container, 'mouseenter', function () {\r\n clearTimeout(delayShow);\r\n clearTimeout(delayHide);\r\n });\r\n\r\n on(subMenu._container, 'mouseleave', function (e) {\r\n if (!a.contains(e.toElement) || e.toElement.children[0] === a) {\r\n subMenu.hide();\r\n }\r\n });\r\n }\r\n}","import style from \"./../style\";\r\nimport classed from \"./../classed\";\r\n\r\nconst sizeRatio = 0.65;\r\nconst marginTopRatio = 0.2;\r\nconst fontHeight = 13;\r\n\r\nexport function hasIcon(icon){\r\n if(icon === undefined) return false;\r\n else if(typeof icon === \"string\") return icon !== \"\";\r\n else return icon.length && icon[0] !== \"\";\r\n}\r\n\r\nfunction getIcon(icon){\r\n return typeof icon === \"string\"? icon : icon[0];\r\n}\r\n\r\nfunction getIconColor(icon){\r\n return typeof icon === \"string\"? null : icon[1];\r\n}\r\n\r\nexport default function (parent, data, index) {\r\n if(!hasIcon(data.icon)) return;\r\n\r\n var span = document.createElement('span');\r\n\r\n var icon = getIcon(data.icon),\r\n color = getIconColor(data.icon);\r\n\r\n classed(span, icon + \" cm-icon\", true);\r\n style(span, 'color', color);\r\n\r\n var l = this._calc.clickZoneRadius * sizeRatio - fontHeight + \"px\",\r\n m = this._calc.clickZoneRadius * marginTopRatio - fontHeight + \"px\";\r\n style(span, 'width', l);\r\n style(span, 'height', l);\r\n style(span, 'font-size', l);\r\n style(span, 'margin-top', m);\r\n\r\n parent.appendChild(span);\r\n}","import style from \"./../style\";\r\nimport classed from \"./../classed\";\r\nimport {hasIcon} from \"./createIcon\";\r\n\r\nconst withIconMarginTop = \"3px\";\r\nconst withIconTop = \"-3px\";\r\n\r\nexport default function (parent, data, index) {\r\n\r\n var span = document.createElement('span');\r\n span.textContent = data.title;\r\n\r\n classed(span, 'text', true);\r\n style(span, 'margin-top', hasIcon(data.icon)? withIconMarginTop : this._calc.textTop);\r\n style(span, 'top', hasIcon(data.icon)? withIconTop : 0);\r\n\r\n parent.appendChild(span);\r\n}","import style from \"./../style\";\r\nimport classed from \"./../classed\";\r\n\r\nexport default function (parent, data, index) {\r\n\r\n var div = document.createElement('div');\r\n classed(div, \"horizontal\", true);\r\n\r\n if(this._config.horizontal) style(div, 'transform', 'rotate('+ this._calc.horizontalDeg(index) +'deg)');\r\n\r\n parent.appendChild(div);\r\n\r\n this._createIcon(div, data, index);\r\n this._createText(div, data, index);\r\n}","export default function () {\r\n // Variables\r\n var extended = {};\r\n var deep = false;\r\n var i = 0;\r\n var length = arguments.length;\r\n\r\n // Check if a deep merge\r\n if (Object.prototype.toString.call(arguments[0]) === '[object Boolean]') {\r\n deep = arguments[0];\r\n i++;\r\n }\r\n\r\n // Merge the object into the extended object\r\n var merge = function (obj) {\r\n for (var prop in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\r\n // If deep merge and property is an object, merge properties\r\n if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\r\n extended[prop] = extend(true, extended[prop], obj[prop]);\r\n } else {\r\n extended[prop] = obj[prop];\r\n }\r\n }\r\n }\r\n };\r\n\r\n // Loop through each object and conduct a merge\r\n for (; i < length; i++) {\r\n var obj = arguments[i];\r\n merge(obj);\r\n }\r\n\r\n return extended;\r\n\r\n};","import classed from \"./../classed\";\r\nimport CMenu from \"../CMenu\";\r\nimport extend from \"../extend\";\r\n\r\nconst sizeRatio = 5 / 3;\r\nconst percentRatio = 0.45;\r\nconst centralDegRatio = 0.618;\r\n\r\n\r\nexport default function createSubMenu(creator, menus, index) {\r\n var subMenu = document.createElement('div');\r\n\r\n classed(subMenu, 'circular-sub-menu', true);\r\n\r\n this._container.parentNode.insertBefore(subMenu, this._container);\r\n\r\n var totalAngle = this._calc.centralDeg * centralDegRatio * menus.length;\r\n var startDeg = this._calc.rotateDeg(index) - totalAngle / 2 + this._calc.centralDeg / 2;\r\n\r\n var config = extend(this._config, {\r\n totalAngle: totalAngle,//deg,\r\n percent: percentRatio,//%\r\n diameter: this._config.diameter * sizeRatio,//px\r\n start: startDeg,//deg\r\n animation: \"into\",\r\n menus: menus\r\n });\r\n \r\n return new CMenu(subMenu, creator._cMenu)\r\n .config(config);\r\n}\r\n","import Calculation from '../Calculation/index';\r\nimport createLists from \"./createLists\";\r\nimport createList from \"./createList\";\r\nimport createMenu from \"./createMenu\";\r\nimport createAnchor from \"./createAnchor\";\r\nimport createText from \"./createText\";\r\nimport createIcon from \"./createIcon\";\r\nimport createHorizontal from \"./createHorizontal\";\r\nimport createSubMenu from \"./createSubMenu\";\r\n\r\nexport default function Creator(cMenu, config){\r\n this._cMenu = cMenu;\r\n this._container = cMenu._container;\r\n this._config = config;\r\n this._calc = new Calculation(config);\r\n this._anchors = [];\r\n}\r\n\r\n\r\nCreator.prototype = {\r\n constructor: Creator,\r\n createMenu: createMenu,\r\n _createLists: createLists,\r\n _createList: createList,\r\n _createAnchor: createAnchor,\r\n _createText: createText,\r\n _createHorizontal: createHorizontal,\r\n _createIcon: createIcon,\r\n _createSubMenu: createSubMenu\r\n};","import Creator from \"./Creator/index\";\r\nimport extend from \"./extend\";\r\n\r\nconst defaultConfig = {\r\n totalAngle: 360,//deg,\r\n spaceDeg: 0,//deg\r\n background: \"#323232\",\r\n backgroundHover: \"#515151\",\r\n pageBackground: \"transparent\",\r\n percent: 0.32,//%\r\n diameter: 300,//px\r\n position: 'top',\r\n horizontal: true,\r\n animation: \"into\",\r\n hideAfterClick: true\r\n};\r\n\r\n\r\nexport default function (config) {\r\n\r\n config = extend(defaultConfig, config);\r\n\r\n this._creator = new Creator(this, config);\r\n this._creator.createMenu();\r\n\r\n return this;\r\n}","import classed from \"./classed\";\r\nimport style from \"./style\";\r\n\r\nfunction setCoordinate(coordinate){\r\n if( !(coordinate instanceof Array) || !(coordinate.length === 2) ) return;\r\n\r\n //TODO verify if has unit\r\n style(this._container, 'left', coordinate[0] + \"px\");\r\n style(this._container, 'top', coordinate[1] + \"px\");\r\n}\r\n\r\n//check disabled\r\n\r\nfunction setDisabled(){\r\n this._creator._anchors.forEach(function(v){\r\n v.setDisabled();\r\n });\r\n}\r\n\r\nexport default function (coordinate) {\r\n\r\n\r\n setDisabled.call(this);\r\n\r\n setCoordinate.call(this, coordinate);\r\n\r\n classed(this._container, 'opened-nav', true);\r\n return this;\r\n}","import classed from \"./classed\";\r\nexport default function () {\r\n classed(this._container, 'opened-nav', false);\r\n return this;\r\n}","import style from \"./style\";\r\n\r\nexport default function (styles) {\r\n if(!styles instanceof Object) return this;\r\n \r\n for(var k in styles){\r\n if(styles.hasOwnProperty(k)) style(this._container, k, styles[k]);\r\n }\r\n\r\n return this;\r\n}","import config from \"./config\";\r\nimport show from \"./show\";\r\nimport hide from \"./hide\";\r\nimport styles from \"./styles\";\r\n\r\nexport default function CMenu(element, pMenu){\r\n this._container = element;\r\n \r\n if(pMenu) this._pMenu = pMenu;\r\n}\r\n\r\nCMenu.prototype = {\r\n constructor: CMenu,\r\n config: config,\r\n show: show,\r\n hide: hide,\r\n styles: styles\r\n\r\n};","import CMenu from \"./src/CMenu\";\r\n\r\nexport default function (selector) {\r\n return typeof selector === \"string\"\r\n ? new CMenu(document.querySelector(selector))\r\n : new CMenu(selector);\r\n}\r\n\r\n"],"names":["rotateDeg","horizontalDeg","sizeRatio","extend"],"mappings":"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"}