diff --git a/dist/tui-layout.js b/dist/tui-layout.js index 2b0db96..f9ac031 100644 --- a/dist/tui-layout.js +++ b/dist/tui-layout.js @@ -1,6 +1,6 @@ /*! * tui-layout.js - * @version 2.0.0 + * @version 2.1.0 * @author NHNEnt FE Development Lab * @license MIT */ @@ -73,6 +73,17 @@ return /******/ (function(modules) { // webpackBootstrap var statics = __webpack_require__(3); var Group = __webpack_require__(4); var Guide = __webpack_require__(6); + var sendHostName = function() { + var hostname = location.hostname; + snippet.imagePing('https://www.google-analytics.com/collect', { + v: 1, + t: 'event', + tid: 'UA-115377265-9', + cid: hostname, + dp: hostname, + dh: 'layout' + }); + }; /** * Layout class make layout element and include groups, control item move and set events. @@ -88,6 +99,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {string} options.grouplist.items.title - The item's title * @param {string} [options.grouplist.items.isClose] - Whether the item is closed or not * @param {string} [options.grouplist.items.isDraggable] - Whether the item is draggable or not + * @param {Boolean} [options.usageStatistics=true|false] send hostname to google analytics [default value is true] * @example * var container = document.getElementById('layout'); * var Layout = tui.Layout; // or require('tui-layout'); @@ -135,6 +147,10 @@ return /******/ (function(modules) { // webpackBootstrap */ var Layout = snippet.defineClass(/** @lends Layout.prototype */ { init: function(container, options) { + options = snippet.extend({ + usageStatistics: true + }, options); + /** * Container element * @type {jQuery} @@ -146,6 +162,10 @@ return /******/ (function(modules) { // webpackBootstrap this._makeGroup(options.grouplist); this._makeGuide(options.guideHTML); this._setEvents(); + + if (options.usageStatistics) { + sendHostName(); + } }, /** @@ -499,7 +519,7 @@ return /******/ (function(modules) { // webpackBootstrap */ _update: function() { var temp = this.$temp, - oldGroup = this._getGroup(temp.attr('data-groupInfo')), + oldGroup = this._getGroup(temp.attr('data-groupinfo')), targetGroup = this._getGroup(temp.parent()), removeIndex = parseInt(temp.attr('data-index'), 10), addIndex = this._getAddIndex(), @@ -719,7 +739,7 @@ return /******/ (function(modules) { // webpackBootstrap item.index = index; item.$element.attr({ 'data-index': index, - 'data-groupInfo': this.id + 'data-groupinfo': this.id }); }, this); this.$dimmed.hide(); diff --git a/dist/tui-layout.min.js b/dist/tui-layout.min.js index 9a11976..72d0252 100644 --- a/dist/tui-layout.min.js +++ b/dist/tui-layout.min.js @@ -1,7 +1,7 @@ /*! * tui-layout.min.js - * @version 2.0.0 + * @version 2.1.0 * @author NHNEnt FE Development Lab * @license MIT */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("jquery"),require("tui-code-snippet")):"function"==typeof define&&define.amd?define(["jquery","tui-code-snippet"],e):"object"==typeof exports?exports.Layout=e(require("jquery"),require("tui-code-snippet")):(t.tui=t.tui||{},t.tui.Layout=e(t.$,t.tui&&t.tui.util))}(this,function(t,e){return function(t){function e(n){if(i[n])return i[n].exports;var s=i[n]={exports:{},id:n,loaded:!1};return t[n].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var i={};return e.m=t,e.c=i,e.p="dist",e(0)}([function(t,e,i){"use strict";var n=i(2),s=i(3),o=i(1),h=i(4),l=i(5),r=s.defineClass({init:function(t,e){this.$element=null,this._initContainer(t),this._makeGroup(e.grouplist),this._makeGuide(e.guideHTML),this._setEvents()},_initContainer:function(t){s.isString(t)?this.$element=n("#"+t):this.$element=n(t)},_makeGroup:function(t){var e;this.groups={},s.forEach(t,function(t){e=this.groups[t.id]=new h(t),this.$element.append(e.$element)},this)},_getGroup:function(t){return s.isObject(t)&&(t=t.attr("data-group")?t.attr("data-group"):t.parent().attr("data-group")),this.groups[t]},_makeGuide:function(t){this._guide=new l({guideHTML:t})},_setEvents:function(){this.onMouseDown=n.proxy(this._onMouseDown,this),this.onMouseMove=n.proxy(this._onMouseMove,this),this.onMouseUp=n.proxy(this._onMouseUp,this),n(".drag-item-move").on("mousedown",this.onMouseDown)},_onMouseDown:function(t){var e=n(document);this.height(e.height()),this._setGuide(t.target,t.clientX,t.clientY),e.on("mousemove",this.onMouseMove),e.on("mouseup",this.onMouseUp)},_setGuide:function(t,e,i){var s=n(document),o={x:e+s.scrollLeft()+10,y:i+s.scrollTop()+10},h=n(t).attr("data-item"),l=n("#"+h);this._guide.ready(o,l),this._guide.setMoveElement(l),this.$temp=l,this._lockTemp()},_lockTemp:function(){var t=this._getGroup(this.$temp),e=t.list[this.$temp.attr("data-index")];this.$temp.css("opacity","0.2"),this.$temp.find("#"+e.contentId).css("visibility","hidden")},_unlockTemp:function(){var t=this._getGroup(this.$temp),e=t.list[this.$temp.attr("data-index")];this.$temp.css("opacity","1"),this.$temp.find("#"+e.contentId).css("visibility","visible")},_onMouseMove:function(t){var e,i,s,o,h;e=n(t.target).parent(),i=n(document),s=t.clientX+i.scrollLeft(),o=t.clientY+i.scrollTop(),h=e.attr("data-group"),this._setScrollState(s,o),this._moveGuide(s,o),h&&this._detectMove(e,s,o)},_setScrollState:function(t,e){var i=n(document),s=n(window),o=this.height(),h=s.height(),l=i.scrollTop(),r=o-h;h+lr&&e.y<=r+l/2?(s=t.$element,s.way="before"):e.y>r+l/2&&e.ymove',ELEMENT:'
',TITLE:'
',TOGGLEBUTTON:'',GROUP:'
',GUIDE:'
'},TEXT:{DEFAULT_TITLE:"no title"},ERROR:{OPTIONS_NOT_DEFINED:"options are not defined"},DEFAULT_WRPPER_CLASS:"item-body",DIMMED_LAYER_CLASS:"dimmed-layer"}},function(e,i){e.exports=t},function(t,i){t.exports=e},function(t,e,i){"use strict";var n=i(2),s=i(3),o=i(1),h=i(6),l=s.defineClass({$pool:n(''),init:function(t){if(!t)throw new Error(o.ERROR.OPTIONS_NOT_DEFINED);this.size=t.ratio+"%",this.id=t.id,this._makeElement(t.html||o.HTML.GROUP),this._makeItems(t.items),this._appendDimmed(),this.render()},_makeElement:function(t){t=this._getHtml(t,{"group-id":this.id}),this.$element=n(t),this.$element.css({position:"relative",width:this.size})},_getHtml:function(t,e){return t=t.replace(/\{\{([^\}]+)\}\}/g,function(t,i){return e[i]})},_makeItems:function(t){var e={groupInfo:this.id};this.list=s.map(t,function(t){return s.extend(t,e),new h(t)},this)},_makeDimmed:function(){this.$dimmed=n('
'),this.$dimmed.css({position:"absolute",left:0,top:0,bottom:0,right:0,display:"none"})},_appendDimmed:function(){this.$dimmed||this._makeDimmed(),this.$element.append(this.$dimmed)},remove:function(t){this.storePool(this.list[t]),this.list.splice(t,1)},add:function(t,e){arguments.length>1?this.list.splice(e,0,t):this.list.push(t),t.groupInfo=this.id},render:function(){s.forEach(this.list,function(t,e){this.$dimmed.before(t.$element),t.index=e,t.$element.attr({"data-index":e,"data-groupInfo":this.id})},this),this.$dimmed.hide()},storePool:function(t){t?this.$pool.append(t):s.forEach(this.list,function(t){this.$pool.append(t.$element)},this)}});t.exports=l},function(t,e,i){"use strict";var n=i(2),s=i(3),o=i(1),h=s.defineClass({init:function(t){t=t||{},this.$element=n(t.guideHTML||o.HTML.GUIDE),this.$element.css("position","absolute"),this.$element.appendTo(document.body),this.$dimElements=n("."+o.DIMMED_LAYER_CLASS),this.hide()},ready:function(t,e){this.setPos(t),this.$dimElements.show(),e&&this.setContent(e),this.$element.show()},finish:function(){this.$dimElements.hide(),this.$element.hide()},moveTo:function(t){this.setPos(t)},setPos:function(t){this.$element.css({left:t.x,top:t.y})},setContent:function(t){this.$element.empty(),this.$element.append(t.clone()),this.$element.css({width:t.width()+"px",height:t.height()+"px"})},show:function(){this.isDisable||this.$element.show()},hide:function(){this.$element.hide()},disable:function(){this.isDisable=!0},enable:function(){this.isDisable=!1},setMoveElement:function(t){this.$moveElement=t},getScrollLeft:function(){return window.scrollX||n(window).scrollLeft()},getScrollTop:function(){return window.scrollY||n(window).scrollTop()}});t.exports=h},function(t,e,i){"use strict";var n=i(2),s=i(3),o=i(1),h=s.defineClass({init:function(t){if(!t)throw new Error(o.ERROR.OPTIONS_NOT_DEFINED);s.extend(t,{elementHTML:t.elementHTML||o.HTML.ELEMENT,moveButtonHTML:t.moveButtonHTML||o.HTML.MOVEBUTTON,titleHTML:t.titleHTML||o.HTML.TITLE,toggleButtonHTML:t.toggleButtonHTML||o.HTML.TOGGLEBUTTON,title:t.title||o.TEXT.DEFAULT_TITLE}),s.extend(this,t),this._makeElement(),s.isBoolean(this.isClose)||this.fixTitle(),this.isClose?this.close():this.open(),this.$content.append(n("#"+this.contentId)),this.$element.attr("id","item_id_"+this.contentId),this._setEvents()},getIndex:function(){return this.index},_makeElement:function(){var t=this.wrapperClass||o.DEFAULT_WRPPER_CLASS,e=this._getHtml(this.elementHTML,{number:this.index,wrapper:t});this.$element=n(e),this.$element.css("position","relative"),this.$content=this.$element.find("."+t),this.isDraggable=!!this.isDraggable,this._makeTitle()},_makeTitle:function(){this.$titleElement=n(this.titleHTML),this.$titleElement.html(this.title),this.isDraggable&&this._makeDragButton(this.moveButtonHTML),this.$content.before(this.$titleElement),this._makeToggleButton(this.toggleButtonHTML)},_getHtml:function(t,e){return t=t.replace(/\{\{([^\}]+)\}\}/g,function(t,i){return e[i]})},_makeDragButton:function(t){t=this._getHtml(t,{"item-id":"item_id_"+this.contentId}),this.$titleElement.append(n(t))},_makeToggleButton:function(t){this.$toggleButton=n(t),this.$titleElement.append(this.$toggleButton)},close:function(){this.$toggleButton.addClass("open"),this.$content.hide()},open:function(){this.$toggleButton.removeClass("open"),this.$content.show()},fixTitle:function(){this.showTitle(),this.isTitleFix=!0},showTitle:function(){this.$titleElement.show()},hideTitle:function(){this.isTitleFix||this.$titleElement.hide()},toggle:function(){this.$toggleButton.hasClass("open")?this.open():this.close()},_setEvents:function(){this.$toggleButton.on("click",n.proxy(this.toggle,this))}});t.exports=h}])}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("jquery"),require("tui-code-snippet")):"function"==typeof define&&define.amd?define(["jquery","tui-code-snippet"],e):"object"==typeof exports?exports.Layout=e(require("jquery"),require("tui-code-snippet")):(t.tui=t.tui||{},t.tui.Layout=e(t.$,t.tui&&t.tui.util))}(this,function(t,e){return function(t){function e(n){if(i[n])return i[n].exports;var s=i[n]={exports:{},id:n,loaded:!1};return t[n].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var i={};return e.m=t,e.c=i,e.p="dist",e(0)}([function(t,e,i){"use strict";var n=i(2),s=i(3),o=i(1),h=i(4),l=i(5),u=function(){var t=location.hostname;s.imagePing("https://www.google-analytics.com/collect",{v:1,t:"event",tid:"UA-115377265-9",cid:t,dp:t,dh:"layout"})},r=s.defineClass({init:function(t,e){e=s.extend({usageStatistics:!0},e),this.$element=null,this._initContainer(t),this._makeGroup(e.grouplist),this._makeGuide(e.guideHTML),this._setEvents(),e.usageStatistics&&u()},_initContainer:function(t){s.isString(t)?this.$element=n("#"+t):this.$element=n(t)},_makeGroup:function(t){var e;this.groups={},s.forEach(t,function(t){e=this.groups[t.id]=new h(t),this.$element.append(e.$element)},this)},_getGroup:function(t){return s.isObject(t)&&(t=t.attr("data-group")?t.attr("data-group"):t.parent().attr("data-group")),this.groups[t]},_makeGuide:function(t){this._guide=new l({guideHTML:t})},_setEvents:function(){this.onMouseDown=n.proxy(this._onMouseDown,this),this.onMouseMove=n.proxy(this._onMouseMove,this),this.onMouseUp=n.proxy(this._onMouseUp,this),n(".drag-item-move").on("mousedown",this.onMouseDown)},_onMouseDown:function(t){var e=n(document);this.height(e.height()),this._setGuide(t.target,t.clientX,t.clientY),e.on("mousemove",this.onMouseMove),e.on("mouseup",this.onMouseUp)},_setGuide:function(t,e,i){var s=n(document),o={x:e+s.scrollLeft()+10,y:i+s.scrollTop()+10},h=n(t).attr("data-item"),l=n("#"+h);this._guide.ready(o,l),this._guide.setMoveElement(l),this.$temp=l,this._lockTemp()},_lockTemp:function(){var t=this._getGroup(this.$temp),e=t.list[this.$temp.attr("data-index")];this.$temp.css("opacity","0.2"),this.$temp.find("#"+e.contentId).css("visibility","hidden")},_unlockTemp:function(){var t=this._getGroup(this.$temp),e=t.list[this.$temp.attr("data-index")];this.$temp.css("opacity","1"),this.$temp.find("#"+e.contentId).css("visibility","visible")},_onMouseMove:function(t){var e,i,s,o,h;e=n(t.target).parent(),i=n(document),s=t.clientX+i.scrollLeft(),o=t.clientY+i.scrollTop(),h=e.attr("data-group"),this._setScrollState(s,o),this._moveGuide(s,o),h&&this._detectMove(e,s,o)},_setScrollState:function(t,e){var i=n(document),s=n(window),o=this.height(),h=s.height(),l=i.scrollTop(),u=o-h;h+lu&&e.y<=u+l/2?(s=t.$element,s.way="before"):e.y>u+l/2&&e.ymove',ELEMENT:'
',TITLE:'
',TOGGLEBUTTON:'',GROUP:'
',GUIDE:'
'},TEXT:{DEFAULT_TITLE:"no title"},ERROR:{OPTIONS_NOT_DEFINED:"options are not defined"},DEFAULT_WRPPER_CLASS:"item-body",DIMMED_LAYER_CLASS:"dimmed-layer"}},function(e,i){e.exports=t},function(t,i){t.exports=e},function(t,e,i){"use strict";var n=i(2),s=i(3),o=i(1),h=i(6),l=s.defineClass({$pool:n(''),init:function(t){if(!t)throw new Error(o.ERROR.OPTIONS_NOT_DEFINED);this.size=t.ratio+"%",this.id=t.id,this._makeElement(t.html||o.HTML.GROUP),this._makeItems(t.items),this._appendDimmed(),this.render()},_makeElement:function(t){t=this._getHtml(t,{"group-id":this.id}),this.$element=n(t),this.$element.css({position:"relative",width:this.size})},_getHtml:function(t,e){return t=t.replace(/\{\{([^\}]+)\}\}/g,function(t,i){return e[i]})},_makeItems:function(t){var e={groupInfo:this.id};this.list=s.map(t,function(t){return s.extend(t,e),new h(t)},this)},_makeDimmed:function(){this.$dimmed=n('
'),this.$dimmed.css({position:"absolute",left:0,top:0,bottom:0,right:0,display:"none"})},_appendDimmed:function(){this.$dimmed||this._makeDimmed(),this.$element.append(this.$dimmed)},remove:function(t){this.storePool(this.list[t]),this.list.splice(t,1)},add:function(t,e){arguments.length>1?this.list.splice(e,0,t):this.list.push(t),t.groupInfo=this.id},render:function(){s.forEach(this.list,function(t,e){this.$dimmed.before(t.$element),t.index=e,t.$element.attr({"data-index":e,"data-groupinfo":this.id})},this),this.$dimmed.hide()},storePool:function(t){t?this.$pool.append(t):s.forEach(this.list,function(t){this.$pool.append(t.$element)},this)}});t.exports=l},function(t,e,i){"use strict";var n=i(2),s=i(3),o=i(1),h=s.defineClass({init:function(t){t=t||{},this.$element=n(t.guideHTML||o.HTML.GUIDE),this.$element.css("position","absolute"),this.$element.appendTo(document.body),this.$dimElements=n("."+o.DIMMED_LAYER_CLASS),this.hide()},ready:function(t,e){this.setPos(t),this.$dimElements.show(),e&&this.setContent(e),this.$element.show()},finish:function(){this.$dimElements.hide(),this.$element.hide()},moveTo:function(t){this.setPos(t)},setPos:function(t){this.$element.css({left:t.x,top:t.y})},setContent:function(t){this.$element.empty(),this.$element.append(t.clone()),this.$element.css({width:t.width()+"px",height:t.height()+"px"})},show:function(){this.isDisable||this.$element.show()},hide:function(){this.$element.hide()},disable:function(){this.isDisable=!0},enable:function(){this.isDisable=!1},setMoveElement:function(t){this.$moveElement=t},getScrollLeft:function(){return window.scrollX||n(window).scrollLeft()},getScrollTop:function(){return window.scrollY||n(window).scrollTop()}});t.exports=h},function(t,e,i){"use strict";var n=i(2),s=i(3),o=i(1),h=s.defineClass({init:function(t){if(!t)throw new Error(o.ERROR.OPTIONS_NOT_DEFINED);s.extend(t,{elementHTML:t.elementHTML||o.HTML.ELEMENT,moveButtonHTML:t.moveButtonHTML||o.HTML.MOVEBUTTON,titleHTML:t.titleHTML||o.HTML.TITLE,toggleButtonHTML:t.toggleButtonHTML||o.HTML.TOGGLEBUTTON,title:t.title||o.TEXT.DEFAULT_TITLE}),s.extend(this,t),this._makeElement(),s.isBoolean(this.isClose)||this.fixTitle(),this.isClose?this.close():this.open(),this.$content.append(n("#"+this.contentId)),this.$element.attr("id","item_id_"+this.contentId),this._setEvents()},getIndex:function(){return this.index},_makeElement:function(){var t=this.wrapperClass||o.DEFAULT_WRPPER_CLASS,e=this._getHtml(this.elementHTML,{number:this.index,wrapper:t});this.$element=n(e),this.$element.css("position","relative"),this.$content=this.$element.find("."+t),this.isDraggable=!!this.isDraggable,this._makeTitle()},_makeTitle:function(){this.$titleElement=n(this.titleHTML),this.$titleElement.html(this.title),this.isDraggable&&this._makeDragButton(this.moveButtonHTML),this.$content.before(this.$titleElement),this._makeToggleButton(this.toggleButtonHTML)},_getHtml:function(t,e){return t=t.replace(/\{\{([^\}]+)\}\}/g,function(t,i){return e[i]})},_makeDragButton:function(t){t=this._getHtml(t,{"item-id":"item_id_"+this.contentId}),this.$titleElement.append(n(t))},_makeToggleButton:function(t){this.$toggleButton=n(t),this.$titleElement.append(this.$toggleButton)},close:function(){this.$toggleButton.addClass("open"),this.$content.hide()},open:function(){this.$toggleButton.removeClass("open"),this.$content.show()},fixTitle:function(){this.showTitle(),this.isTitleFix=!0},showTitle:function(){this.$titleElement.show()},hideTitle:function(){this.isTitleFix||this.$titleElement.hide()},toggle:function(){this.$toggleButton.hasClass("open")?this.open():this.close()},_setEvents:function(){this.$toggleButton.on("click",n.proxy(this.toggle,this))}});t.exports=h}])}); \ No newline at end of file