angular-aside.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*!
  2. * angular-aside - v1.1.2
  3. * https://github.com/dbtek/angular-aside
  4. * 2015-03-04
  5. * Copyright (c) 2015 İsmail Demirbilek
  6. * License: MIT
  7. */
  8. (function() {
  9. /**
  10. * @ngdoc overview
  11. * @name ngAside
  12. * @description
  13. * Main module for aside component.
  14. * @function
  15. * @author İsmail Demirbilek
  16. */
  17. angular.module('ngAside', ['ui.bootstrap.modal']);
  18. })();
  19. (function() {
  20. angular.module('ngAside')
  21. /**
  22. * @ngdoc service
  23. * @name ngAside.services:$aside
  24. * @description
  25. * Factory to create a modal instance to use it as aside. It simply wraps $modal by overriding open() method and sets a class on modal window.
  26. * @function
  27. */
  28. .factory('$aside', $aside);
  29. $aside.$inject = ['$modal'];
  30. /* @ngInject */
  31. function $aside($modal) {
  32. var defaults = this.defaults = {
  33. placement: 'left'
  34. };
  35. var asideFactory = {
  36. // override open method
  37. open: function(config) {
  38. var options = angular.extend({}, defaults, config);
  39. // check placement is set correct
  40. if(['left', 'right', 'bottom', 'top'].indexOf(options.placement) === -1) {
  41. options.placement = defaults.placement;
  42. }
  43. var vertHoriz = ['left', 'right'].indexOf(options.placement) === -1 ? 'vertical' : 'horizontal';
  44. // set aside classes
  45. options.windowClass = 'ng-aside ' + vertHoriz + ' ' + options.placement + (options.windowClass ? ' ' + options.windowClass : '');
  46. delete options.placement
  47. return $modal.open(options);
  48. }
  49. };
  50. // create $aside as extended $modal
  51. var $aside = angular.extend({}, $modal, asideFactory);
  52. return $aside;
  53. }
  54. })();