ng-weekday_1.js 3.8 KB

1
  1. app.directive("Daypart",["$window","$document","$timeout",function(n,e,t){return{restrict:"E",scope:{options:"=?"},templateUrl:"template.html",controller:["$scope","$element","$attrs",function(a,o,i){function s(){g&&(g=!1,d())}function d(){if(a.options&&a.options.onChange){var n=[];b.forEach(function(e){var t=e.split("-"),a={year:t[0],time:parseInt(t[1])};n.push(a)}),n=_.sortBy(n,function(n){return n.time}),b=n.map(function(n){return n.year+"-"+n.time}),a.options.onChange(b)}}function r(n){g=!0,c(n),l(n)}function c(n){w=n,k=_.contains(b,n.data("time"))}function l(n){u(w,n).each(function(){var n=angular.element(this);k?f(n):_.contains(b,n.data("time"))||y($(n))})}function u(e,t){var a=m(e),i=m(t),s={column:n.Math.min(a.column,i.column),row:n.Math.min(a.row,i.row)},d={column:n.Math.max(a.column,i.column),row:n.Math.max(a.row,i.row)};return o.find("div.weekday").filter(function(){var n=angular.element(this),e=m(n);return e.column>=s.column&&e.column<=d.column&&e.row>=s.row&&e.row<=d.row})}function m(n){return{column:n.data("cellindex")+0,row:0}}function p(){b=_.clone(a.options.selected),o.find("div.weekday").each(function(n,e){_.contains(b,$(e).data("time"))&&$(e).addClass(v)})}function f(n){n.removeClass(v),b=_.without(b,n.data("time"))}function y(n){n.addClass(v),b.push(n.data("time"))}function h(n){return function(){var e=angular.element(this);a.$apply(function(){n(e)})}}a.options=a.options||{},a.options.reset=void 0===a.options.reset||a.options.reset,a.year=(new Date).getFullYear(),a.days=[{name:"星期一",position:1},{name:"星期二",position:2},{name:"星期三",position:3},{name:"星期四",position:4},{name:"星期五",position:5},{name:"星期六",position:6},{name:"星期日",position:7}],a.weekdays=[1,2,3,4,5,6,7];var v="active",w=null,g=!1,b=[],k=!1;a.options.selected&&t(function(){p(a.options.selected)},100),a.selectDay=function(n){var e=b.filter(function(e){return e.split("-")[0]===n.name}).length;o.find("table tr:eq("+n.position+") td:not(:last-child)").each(function(n,t){24===e?f($(t)):_.contains(b,$(t).data("time"))||y($(t))}),d()},a.selectHour=function(n){var n=n-1,e=a.days.filter(function(e){return _.contains(b,e.name+"-"+n)}).length;a.days.forEach(function(t,a){o.find("table tr:eq("+(a+1)+") td:eq("+n+")").each(function(n,t){7===e?f($(t)):_.contains(b,$(t).data("time"))||y($(t))})}),d()},a.reset=function(){b=[],o.find("td").each(function(n,e){$(e).removeClass(v)}),d()},o.delegate("div.weekday","mousedown",h(r)),e.delegate("body","mouseup",h(s))}]}}]),app.run(["$templateCache",function(n){n.put("template.html","\n\n\n<div class=\"calendar-md\">\n <div class='layout-row subheader'>\n <div class='subheader-day layout-size layout-padding' ng-repeat='day in days'>\n {{day.name}}\n </div>\n </div>\n\n11111 <div class='layout-row entity'>\n"+' <div class="layout-padding layout-row weekday" ng-repeat=\'weekday in weekdays track by $index\' data-time="{{year}}-{{weekday}}" data-cellIndex="{{weekday-1}}"> \n <div>{{weekday}}</div>\n <div class="layout-height"></div> \n </div>\n </div>\n\n\n <table border="0" cellspacing="0" cellpadding="0">\n <!--tr class="layout-row subheader">\n <th ng-repeat="day in days" class=\'subheader-day layout-padding flex\' ng-focus=\'focus = true;\' ng-blur=\'focus = false;\' ng-mouseleave="hover = false" ng-mouseenter="hover = true">\n <span>{{day.name}}</span>ng-class=\'{"disabled" : isDisabled(day), "active": isActive(day), "has-events": hasEvents(day), "md-whiteframe-12dp": hover || focus }\'\n </th>\n </tr-->\n <tr>\n <td class="layout-padding flex" ng-repeat="weekday in weekdays" data-time="{{year}}-{{weekday}}"></td>\n </tr>\n </table>\n <!-- <button type="button" ng-click="reset()" ng-if="options.reset">Reset</button> -->\n</div>')}]);