summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-FE/client/bower_components/ng-dialog/js/ngDialog.js
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-FE/client/bower_components/ng-dialog/js/ngDialog.js')
-rw-r--r--ecomp-portal-FE/client/bower_components/ng-dialog/js/ngDialog.js895
1 files changed, 0 insertions, 895 deletions
diff --git a/ecomp-portal-FE/client/bower_components/ng-dialog/js/ngDialog.js b/ecomp-portal-FE/client/bower_components/ng-dialog/js/ngDialog.js
deleted file mode 100644
index df76d776..00000000
--- a/ecomp-portal-FE/client/bower_components/ng-dialog/js/ngDialog.js
+++ /dev/null
@@ -1,895 +0,0 @@
-/*
- * ngDialog - easy modals and popup windows
- * http://github.com/likeastore/ngDialog
- * (c) 2013-2015 MIT License, https://likeastore.com
- */
-
-(function (root, factory) {
- if (typeof module !== 'undefined' && module.exports) {
- // CommonJS
- if (typeof angular === 'undefined') {
- factory(require('angular'));
- } else {
- factory(angular);
- }
- module.exports = 'ngDialog';
- } else if (typeof define === 'function' && define.amd) {
- // AMD
- define(['angular'], factory);
- } else {
- // Global Variables
- factory(root.angular);
- }
-}(this, function (angular) {
- 'use strict';
-
- var m = angular.module('ngDialog', []);
-
- var $el = angular.element;
- var isDef = angular.isDefined;
- var style = (document.body || document.documentElement).style;
- var animationEndSupport = isDef(style.animation) || isDef(style.WebkitAnimation) || isDef(style.MozAnimation) || isDef(style.MsAnimation) || isDef(style.OAnimation);
- var animationEndEvent = 'animationend webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend';
- var focusableElementSelector = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]';
- var disabledAnimationClass = 'ngdialog-disabled-animation';
- var forceElementsReload = { html: false, body: false };
- var scopes = {};
- var openIdStack = [];
- var keydownIsBound = false;
- var openOnePerName = false;
-
-
- m.provider('ngDialog', function () {
- var defaults = this.defaults = {
- className: 'ngdialog-theme-default',
- appendClassName: '',
- disableAnimation: false,
- plain: false,
- showClose: true,
- closeByDocument: true,
- closeByEscape: true,
- closeByNavigation: false,
- appendTo: false,
- preCloseCallback: false,
- overlay: true,
- cache: true,
- trapFocus: true,
- preserveFocus: true,
- ariaAuto: true,
- ariaRole: null,
- ariaLabelledById: null,
- ariaLabelledBySelector: null,
- ariaDescribedById: null,
- ariaDescribedBySelector: null,
- bodyClassName: 'ngdialog-open',
- width: null,
- height: null
- };
-
- this.setForceHtmlReload = function (_useIt) {
- forceElementsReload.html = _useIt || false;
- };
-
- this.setForceBodyReload = function (_useIt) {
- forceElementsReload.body = _useIt || false;
- };
-
- this.setDefaults = function (newDefaults) {
- angular.extend(defaults, newDefaults);
- };
-
- this.setOpenOnePerName = function (isOpenOne) {
- openOnePerName = isOpenOne || false;
- };
-
- var globalID = 0, dialogsCount = 0, closeByDocumentHandler, defers = {};
-
- this.$get = ['$document', '$templateCache', '$compile', '$q', '$http', '$rootScope', '$timeout', '$window', '$controller', '$injector',
- function ($document, $templateCache, $compile, $q, $http, $rootScope, $timeout, $window, $controller, $injector) {
- var $elements = [];
-
- var privateMethods = {
- onDocumentKeydown: function (event) {
- if (event.keyCode === 27) {
- publicMethods.close('$escape');
- }
- },
-
- activate: function($dialog) {
- var options = $dialog.data('$ngDialogOptions');
-
- if (options.trapFocus) {
- $dialog.on('keydown', privateMethods.onTrapFocusKeydown);
-
- // Catch rogue changes (eg. after unfocusing everything by clicking a non-focusable element)
- $elements.body.on('keydown', privateMethods.onTrapFocusKeydown);
- }
- },
-
- deactivate: function ($dialog) {
- $dialog.off('keydown', privateMethods.onTrapFocusKeydown);
- $elements.body.off('keydown', privateMethods.onTrapFocusKeydown);
- },
-
- deactivateAll: function (els) {
- angular.forEach(els,function(el) {
- var $dialog = angular.element(el);
- privateMethods.deactivate($dialog);
- });
- },
-
- setBodyPadding: function (width) {
- var originalBodyPadding = parseInt(($elements.body.css('padding-right') || 0), 10);
- $elements.body.css('padding-right', (originalBodyPadding + width) + 'px');
- $elements.body.data('ng-dialog-original-padding', originalBodyPadding);
- $rootScope.$broadcast('ngDialog.setPadding', width);
- },
-
- resetBodyPadding: function () {
- var originalBodyPadding = $elements.body.data('ng-dialog-original-padding');
- if (originalBodyPadding) {
- $elements.body.css('padding-right', originalBodyPadding + 'px');
- } else {
- $elements.body.css('padding-right', '');
- }
- $rootScope.$broadcast('ngDialog.setPadding', 0);
- },
-
- performCloseDialog: function ($dialog, value) {
- var options = $dialog.data('$ngDialogOptions');
- var id = $dialog.attr('id');
- var scope = scopes[id];
-
- if (!scope) {
- // Already closed
- return;
- }
-
- if (typeof $window.Hammer !== 'undefined') {
- var hammerTime = scope.hammerTime;
- hammerTime.off('tap', closeByDocumentHandler);
- hammerTime.destroy && hammerTime.destroy();
- delete scope.hammerTime;
- } else {
- $dialog.unbind('click');
- }
-
- if (dialogsCount === 1) {
- $elements.body.unbind('keydown', privateMethods.onDocumentKeydown);
- }
-
- if (!$dialog.hasClass('ngdialog-closing')){
- dialogsCount -= 1;
- }
-
- var previousFocus = $dialog.data('$ngDialogPreviousFocus');
- if (previousFocus && previousFocus.focus) {
- previousFocus.focus();
- }
-
- $rootScope.$broadcast('ngDialog.closing', $dialog, value);
- dialogsCount = dialogsCount < 0 ? 0 : dialogsCount;
- if (animationEndSupport && !options.disableAnimation) {
- scope.$destroy();
- $dialog.unbind(animationEndEvent).bind(animationEndEvent, function () {
- privateMethods.closeDialogElement($dialog, value);
- }).addClass('ngdialog-closing');
- } else {
- scope.$destroy();
- privateMethods.closeDialogElement($dialog, value);
- }
- if (defers[id]) {
- defers[id].resolve({
- id: id,
- value: value,
- $dialog: $dialog,
- remainingDialogs: dialogsCount
- });
- delete defers[id];
- }
- if (scopes[id]) {
- delete scopes[id];
- }
- openIdStack.splice(openIdStack.indexOf(id), 1);
- if (!openIdStack.length) {
- $elements.body.unbind('keydown', privateMethods.onDocumentKeydown);
- keydownIsBound = false;
- }
- },
-
- closeDialogElement: function($dialog, value) {
- var options = $dialog.data('$ngDialogOptions');
- $dialog.remove();
- if (dialogsCount === 0) {
- $elements.html.removeClass(options.bodyClassName);
- $elements.body.removeClass(options.bodyClassName);
- privateMethods.resetBodyPadding();
- }
- $rootScope.$broadcast('ngDialog.closed', $dialog, value);
- },
-
- closeDialog: function ($dialog, value) {
- var preCloseCallback = $dialog.data('$ngDialogPreCloseCallback');
-
- if (preCloseCallback && angular.isFunction(preCloseCallback)) {
-
- var preCloseCallbackResult = preCloseCallback.call($dialog, value);
-
- if (angular.isObject(preCloseCallbackResult)) {
- if (preCloseCallbackResult.closePromise) {
- preCloseCallbackResult.closePromise.then(function () {
- privateMethods.performCloseDialog($dialog, value);
- }, function () {
- return false;
- });
- } else {
- preCloseCallbackResult.then(function () {
- privateMethods.performCloseDialog($dialog, value);
- }, function () {
- return false;
- });
- }
- } else if (preCloseCallbackResult !== false) {
- privateMethods.performCloseDialog($dialog, value);
- } else {
- return false;
- }
- } else {
- privateMethods.performCloseDialog($dialog, value);
- }
- },
-
- onTrapFocusKeydown: function(ev) {
- var el = angular.element(ev.currentTarget);
- var $dialog;
-
- if (el.hasClass('ngdialog')) {
- $dialog = el;
- } else {
- $dialog = privateMethods.getActiveDialog();
-
- if ($dialog === null) {
- return;
- }
- }
-
- var isTab = (ev.keyCode === 9);
- var backward = (ev.shiftKey === true);
-
- if (isTab) {
- privateMethods.handleTab($dialog, ev, backward);
- }
- },
-
- handleTab: function($dialog, ev, backward) {
- var focusableElements = privateMethods.getFocusableElements($dialog);
-
- if (focusableElements.length === 0) {
- if (document.activeElement && document.activeElement.blur) {
- document.activeElement.blur();
- }
- return;
- }
-
- var currentFocus = document.activeElement;
- var focusIndex = Array.prototype.indexOf.call(focusableElements, currentFocus);
-
- var isFocusIndexUnknown = (focusIndex === -1);
- var isFirstElementFocused = (focusIndex === 0);
- var isLastElementFocused = (focusIndex === focusableElements.length - 1);
-
- var cancelEvent = false;
-
- if (backward) {
- if (isFocusIndexUnknown || isFirstElementFocused) {
- focusableElements[focusableElements.length - 1].focus();
- cancelEvent = true;
- }
- } else {
- if (isFocusIndexUnknown || isLastElementFocused) {
- focusableElements[0].focus();
- cancelEvent = true;
- }
- }
-
- if (cancelEvent) {
- ev.preventDefault();
- ev.stopPropagation();
- }
- },
-
- autoFocus: function($dialog) {
- var dialogEl = $dialog[0];
-
- // Browser's (Chrome 40, Forefix 37, IE 11) don't appear to honor autofocus on the dialog, but we should
- var autoFocusEl = dialogEl.querySelector('*[autofocus]');
- if (autoFocusEl !== null) {
- autoFocusEl.focus();
-
- if (document.activeElement === autoFocusEl) {
- return;
- }
-
- // Autofocus element might was display: none, so let's continue
- }
-
- var focusableElements = privateMethods.getFocusableElements($dialog);
-
- if (focusableElements.length > 0) {
- focusableElements[0].focus();
- return;
- }
-
- // We need to focus something for the screen readers to notice the dialog
- var contentElements = privateMethods.filterVisibleElements(dialogEl.querySelectorAll('h1,h2,h3,h4,h5,h6,p,span'));
-
- if (contentElements.length > 0) {
- var contentElement = contentElements[0];
- $el(contentElement).attr('tabindex', '-1').css('outline', '0');
- contentElement.focus();
- }
- },
-
- getFocusableElements: function ($dialog) {
- var dialogEl = $dialog[0];
-
- var rawElements = dialogEl.querySelectorAll(focusableElementSelector);
-
- // Ignore untabbable elements, ie. those with tabindex = -1
- var tabbableElements = privateMethods.filterTabbableElements(rawElements);
-
- return privateMethods.filterVisibleElements(tabbableElements);
- },
-
- filterTabbableElements: function (els) {
- var tabbableFocusableElements = [];
-
- for (var i = 0; i < els.length; i++) {
- var el = els[i];
-
- if ($el(el).attr('tabindex') !== '-1') {
- tabbableFocusableElements.push(el);
- }
- }
-
- return tabbableFocusableElements;
- },
-
- filterVisibleElements: function (els) {
- var visibleFocusableElements = [];
-
- for (var i = 0; i < els.length; i++) {
- var el = els[i];
-
- if (el.offsetWidth > 0 || el.offsetHeight > 0) {
- visibleFocusableElements.push(el);
- }
- }
-
- return visibleFocusableElements;
- },
-
- getActiveDialog: function () {
- var dialogs = document.querySelectorAll('.ngdialog');
-
- if (dialogs.length === 0) {
- return null;
- }
-
- // TODO: This might be incorrect if there are a mix of open dialogs with different 'appendTo' values
- return $el(dialogs[dialogs.length - 1]);
- },
-
- applyAriaAttributes: function ($dialog, options) {
- if (options.ariaAuto) {
- if (!options.ariaRole) {
- var detectedRole = (privateMethods.getFocusableElements($dialog).length > 0) ?
- 'dialog' :
- 'alertdialog';
-
- options.ariaRole = detectedRole;
- }
-
- if (!options.ariaLabelledBySelector) {
- options.ariaLabelledBySelector = 'h1,h2,h3,h4,h5,h6';
- }
-
- if (!options.ariaDescribedBySelector) {
- options.ariaDescribedBySelector = 'article,section,p';
- }
- }
-
- if (options.ariaRole) {
- $dialog.attr('role', options.ariaRole);
- }
-
- privateMethods.applyAriaAttribute(
- $dialog, 'aria-labelledby', options.ariaLabelledById, options.ariaLabelledBySelector);
-
- privateMethods.applyAriaAttribute(
- $dialog, 'aria-describedby', options.ariaDescribedById, options.ariaDescribedBySelector);
- },
-
- applyAriaAttribute: function($dialog, attr, id, selector) {
- if (id) {
- $dialog.attr(attr, id);
- }
-
- if (selector) {
- var dialogId = $dialog.attr('id');
-
- var firstMatch = $dialog[0].querySelector(selector);
-
- if (!firstMatch) {
- return;
- }
-
- var generatedId = dialogId + '-' + attr;
-
- $el(firstMatch).attr('id', generatedId);
-
- $dialog.attr(attr, generatedId);
-
- return generatedId;
- }
- },
-
- detectUIRouter: function() {
- //Detect if ui-router module is installed if not return false
- try {
- angular.module('ui.router');
- return true;
- } catch(err) {
- return false;
- }
- },
-
- getRouterLocationEventName: function() {
- if(privateMethods.detectUIRouter()) {
- return '$stateChangeStart';
- }
- return '$locationChangeStart';
- }
- };
-
- var publicMethods = {
- __PRIVATE__: privateMethods,
-
- /*
- * @param {Object} options:
- * - template {String} - id of ng-template, url for partial, plain string (if enabled)
- * - plain {Boolean} - enable plain string templates, default false
- * - scope {Object}
- * - controller {String}
- * - controllerAs {String}
- * - className {String} - dialog theme class
- * - appendClassName {String} - dialog theme class to be appended to defaults
- * - disableAnimation {Boolean} - set to true to disable animation
- * - showClose {Boolean} - show close button, default true
- * - closeByEscape {Boolean} - default true
- * - closeByDocument {Boolean} - default true
- * - preCloseCallback {String|Function} - user supplied function name/function called before closing dialog (if set)
- * - bodyClassName {String} - class added to body at open dialog
- * @return {Object} dialog
- */
- open: function (opts) {
- var dialogID = null;
- opts = opts || {};
- if (openOnePerName && opts.name) {
- dialogID = opts.name.toLowerCase().replace(/\s/g, '-') + '-dialog';
- if (this.isOpen(dialogID)) {
- return;
- }
- }
- var options = angular.copy(defaults);
- var localID = ++globalID;
- dialogID = dialogID || 'ngdialog' + localID;
- openIdStack.push(dialogID);
-
- // Merge opts.data with predefined via setDefaults
- if (typeof options.data !== 'undefined') {
- if (typeof opts.data === 'undefined') {
- opts.data = {};
- }
- opts.data = angular.merge(angular.copy(options.data), opts.data);
- }
-
- angular.extend(options, opts);
-
- var defer;
- defers[dialogID] = defer = $q.defer();
-
- var scope;
- scopes[dialogID] = scope = angular.isObject(options.scope) ? options.scope.$new() : $rootScope.$new();
-
- var $dialog, $dialogParent, $dialogContent;
-
- var resolve = angular.extend({}, options.resolve);
-
- angular.forEach(resolve, function (value, key) {
- resolve[key] = angular.isString(value) ? $injector.get(value) : $injector.invoke(value, null, null, key);
- });
-
- $q.all({
- template: loadTemplate(options.template || options.templateUrl),
- locals: $q.all(resolve)
- }).then(function (setup) {
- var template = setup.template,
- locals = setup.locals;
-
- if (options.showClose) {
- template += '<div class="ngdialog-close"></div>';
- }
-
- var hasOverlayClass = options.overlay ? '' : ' ngdialog-no-overlay';
- $dialog = $el('<div id="' + dialogID + '" class="ngdialog' + hasOverlayClass + '"></div>');
- $dialog.html((options.overlay ?
- '<div class="ngdialog-overlay"></div><div class="ngdialog-content" role="document">' + template + '</div>' :
- '<div class="ngdialog-content" role="document">' + template + '</div>'));
-
- $dialog.data('$ngDialogOptions', options);
-
- scope.ngDialogId = dialogID;
-
- if (options.data && angular.isString(options.data)) {
- var firstLetter = options.data.replace(/^\s*/, '')[0];
- scope.ngDialogData = (firstLetter === '{' || firstLetter === '[') ? angular.fromJson(options.data) : new String(options.data);
- scope.ngDialogData.ngDialogId = dialogID;
- } else if (options.data && angular.isObject(options.data)) {
- scope.ngDialogData = options.data;
- scope.ngDialogData.ngDialogId = dialogID;
- }
-
- if (options.className) {
- $dialog.addClass(options.className);
- }
-
- if (options.appendClassName) {
- $dialog.addClass(options.appendClassName);
- }
-
- if (options.width) {
- $dialogContent = $dialog[0].querySelector('.ngdialog-content');
- if (angular.isString(options.width)) {
- $dialogContent.style.width = options.width;
- } else {
- $dialogContent.style.width = options.width + 'px';
- }
- }
-
- if (options.height) {
- $dialogContent = $dialog[0].querySelector('.ngdialog-content');
- if (angular.isString(options.height)) {
- $dialogContent.style.height = options.height;
- } else {
- $dialogContent.style.height = options.height + 'px';
- }
- }
-
- if (options.disableAnimation) {
- $dialog.addClass(disabledAnimationClass);
- }
-
- if (options.appendTo && angular.isString(options.appendTo)) {
- $dialogParent = angular.element(document.querySelector(options.appendTo));
- } else {
- $dialogParent = $elements.body;
- }
-
- privateMethods.applyAriaAttributes($dialog, options);
-
- if (options.preCloseCallback) {
- var preCloseCallback;
-
- if (angular.isFunction(options.preCloseCallback)) {
- preCloseCallback = options.preCloseCallback;
- } else if (angular.isString(options.preCloseCallback)) {
- if (scope) {
- if (angular.isFunction(scope[options.preCloseCallback])) {
- preCloseCallback = scope[options.preCloseCallback];
- } else if (scope.$parent && angular.isFunction(scope.$parent[options.preCloseCallback])) {
- preCloseCallback = scope.$parent[options.preCloseCallback];
- } else if ($rootScope && angular.isFunction($rootScope[options.preCloseCallback])) {
- preCloseCallback = $rootScope[options.preCloseCallback];
- }
- }
- }
-
- if (preCloseCallback) {
- $dialog.data('$ngDialogPreCloseCallback', preCloseCallback);
- }
- }
-
- scope.closeThisDialog = function (value) {
- privateMethods.closeDialog($dialog, value);
- };
-
- if (options.controller && (angular.isString(options.controller) || angular.isArray(options.controller) || angular.isFunction(options.controller))) {
-
- var label;
-
- if (options.controllerAs && angular.isString(options.controllerAs)) {
- label = options.controllerAs;
- }
-
- var controllerInstance = $controller(options.controller, angular.extend(
- locals,
- {
- $scope: scope,
- $element: $dialog
- }),
- true,
- label
- );
-
- if(options.bindToController) {
- angular.extend(controllerInstance.instance, {ngDialogId: scope.ngDialogId, ngDialogData: scope.ngDialogData, closeThisDialog: scope.closeThisDialog, confirm: scope.confirm});
- }
-
- if(typeof controllerInstance === 'function'){
- $dialog.data('$ngDialogControllerController', controllerInstance());
- } else {
- $dialog.data('$ngDialogControllerController', controllerInstance);
- }
- }
-
- $timeout(function () {
- var $activeDialogs = document.querySelectorAll('.ngdialog');
- privateMethods.deactivateAll($activeDialogs);
-
- $compile($dialog)(scope);
- var widthDiffs = $window.innerWidth - $elements.body.prop('clientWidth');
- $elements.html.addClass(options.bodyClassName);
- $elements.body.addClass(options.bodyClassName);
- var scrollBarWidth = widthDiffs - ($window.innerWidth - $elements.body.prop('clientWidth'));
- if (scrollBarWidth > 0) {
- privateMethods.setBodyPadding(scrollBarWidth);
- }
- $dialogParent.append($dialog);
-
- privateMethods.activate($dialog);
-
- if (options.trapFocus) {
- privateMethods.autoFocus($dialog);
- }
-
- if (options.name) {
- $rootScope.$broadcast('ngDialog.opened', {dialog: $dialog, name: options.name});
- } else {
- $rootScope.$broadcast('ngDialog.opened', $dialog);
- }
- });
-
- if (!keydownIsBound) {
- $elements.body.bind('keydown', privateMethods.onDocumentKeydown);
- keydownIsBound = true;
- }
-
- if (options.closeByNavigation) {
- var eventName = privateMethods.getRouterLocationEventName();
- $rootScope.$on(eventName, function ($event) {
- if (privateMethods.closeDialog($dialog) === false)
- $event.preventDefault();
- });
- }
-
- if (options.preserveFocus) {
- $dialog.data('$ngDialogPreviousFocus', document.activeElement);
- }
-
- closeByDocumentHandler = function (event) {
- var isOverlay = options.closeByDocument ? $el(event.target).hasClass('ngdialog-overlay') : false;
- var isCloseBtn = $el(event.target).hasClass('ngdialog-close');
-
- if (isOverlay || isCloseBtn) {
- publicMethods.close($dialog.attr('id'), isCloseBtn ? '$closeButton' : '$document');
- }
- };
-
- if (typeof $window.Hammer !== 'undefined') {
- var hammerTime = scope.hammerTime = $window.Hammer($dialog[0]);
- hammerTime.on('tap', closeByDocumentHandler);
- } else {
- $dialog.bind('click', closeByDocumentHandler);
- }
-
- dialogsCount += 1;
-
- return publicMethods;
- });
-
- return {
- id: dialogID,
- closePromise: defer.promise,
- close: function (value) {
- privateMethods.closeDialog($dialog, value);
- }
- };
-
- function loadTemplateUrl (tmpl, config) {
- var config = config || {};
- config.headers = config.headers || {};
-
- angular.extend(config.headers, {'Accept': 'text/html'});
-
- $rootScope.$broadcast('ngDialog.templateLoading', tmpl);
- return $http.get(tmpl, config).then(function(res) {
- $rootScope.$broadcast('ngDialog.templateLoaded', tmpl);
- return res.data || '';
- });
- }
-
- function loadTemplate (tmpl) {
- if (!tmpl) {
- return 'Empty template';
- }
-
- if (angular.isString(tmpl) && options.plain) {
- return tmpl;
- }
-
- if (typeof options.cache === 'boolean' && !options.cache) {
- return loadTemplateUrl(tmpl, {cache: false});
- }
-
- return loadTemplateUrl(tmpl, {cache: $templateCache});
- }
- },
-
- /*
- * @param {Object} options:
- * - template {String} - id of ng-template, url for partial, plain string (if enabled)
- * - plain {Boolean} - enable plain string templates, default false
- * - name {String}
- * - scope {Object}
- * - controller {String}
- * - controllerAs {String}
- * - className {String} - dialog theme class
- * - appendClassName {String} - dialog theme class to be appended to defaults
- * - showClose {Boolean} - show close button, default true
- * - closeByEscape {Boolean} - default false
- * - closeByDocument {Boolean} - default false
- * - preCloseCallback {String|Function} - user supplied function name/function called before closing dialog (if set); not called on confirm
- * - bodyClassName {String} - class added to body at open dialog
- *
- * @return {Object} dialog
- */
- openConfirm: function (opts) {
- var defer = $q.defer();
- var options = angular.copy(defaults);
-
- opts = opts || {};
-
- // Merge opts.data with predefined via setDefaults
- if (typeof options.data !== 'undefined') {
- if (typeof opts.data === 'undefined') {
- opts.data = {};
- }
- opts.data = angular.merge(angular.copy(options.data), opts.data);
- }
-
- angular.extend(options, opts);
-
- options.scope = angular.isObject(options.scope) ? options.scope.$new() : $rootScope.$new();
- options.scope.confirm = function (value) {
- defer.resolve(value);
- var $dialog = $el(document.getElementById(openResult.id));
- privateMethods.performCloseDialog($dialog, value);
- };
-
- var openResult = publicMethods.open(options);
- if (openResult) {
- openResult.closePromise.then(function (data) {
- if (data) {
- return defer.reject(data.value);
- }
- return defer.reject();
- });
- return defer.promise;
- }
- },
-
- isOpen: function(id) {
- var $dialog = $el(document.getElementById(id));
- return $dialog.length > 0;
- },
-
- /*
- * @param {String} id
- * @return {Object} dialog
- */
- close: function (id, value) {
- var $dialog = $el(document.getElementById(id));
-
- if ($dialog.length) {
- privateMethods.closeDialog($dialog, value);
- } else {
- if (id === '$escape') {
- var topDialogId = openIdStack[openIdStack.length - 1];
- $dialog = $el(document.getElementById(topDialogId));
- if ($dialog.data('$ngDialogOptions').closeByEscape) {
- privateMethods.closeDialog($dialog, '$escape');
- }
- } else {
- publicMethods.closeAll(value);
- }
- }
-
- return publicMethods;
- },
-
- closeAll: function (value) {
- var $all = document.querySelectorAll('.ngdialog');
-
- // Reverse order to ensure focus restoration works as expected
- for (var i = $all.length - 1; i >= 0; i--) {
- var dialog = $all[i];
- privateMethods.closeDialog($el(dialog), value);
- }
- },
-
- getOpenDialogs: function() {
- return openIdStack;
- },
-
- getDefaults: function () {
- return defaults;
- }
- };
-
- angular.forEach(
- ['html', 'body'],
- function(elementName) {
- $elements[elementName] = $document.find(elementName);
- if (forceElementsReload[elementName]) {
- var eventName = privateMethods.getRouterLocationEventName();
- $rootScope.$on(eventName, function () {
- $elements[elementName] = $document.find(elementName);
- });
- }
- }
- );
-
- return publicMethods;
- }];
- });
-
- m.directive('ngDialog', ['ngDialog', function (ngDialog) {
- return {
- restrict: 'A',
- scope: {
- ngDialogScope: '='
- },
- link: function (scope, elem, attrs) {
- elem.on('click', function (e) {
- e.preventDefault();
-
- var ngDialogScope = angular.isDefined(scope.ngDialogScope) ? scope.ngDialogScope : 'noScope';
- angular.isDefined(attrs.ngDialogClosePrevious) && ngDialog.close(attrs.ngDialogClosePrevious);
-
- var defaults = ngDialog.getDefaults();
-
- ngDialog.open({
- template: attrs.ngDialog,
- className: attrs.ngDialogClass || defaults.className,
- appendClassName: attrs.ngDialogAppendClass,
- controller: attrs.ngDialogController,
- controllerAs: attrs.ngDialogControllerAs,
- bindToController: attrs.ngDialogBindToController,
- disableAnimation: attrs.ngDialogDisableAnimation,
- scope: ngDialogScope,
- data: attrs.ngDialogData,
- showClose: attrs.ngDialogShowClose === 'false' ? false : (attrs.ngDialogShowClose === 'true' ? true : defaults.showClose),
- closeByDocument: attrs.ngDialogCloseByDocument === 'false' ? false : (attrs.ngDialogCloseByDocument === 'true' ? true : defaults.closeByDocument),
- closeByEscape: attrs.ngDialogCloseByEscape === 'false' ? false : (attrs.ngDialogCloseByEscape === 'true' ? true : defaults.closeByEscape),
- overlay: attrs.ngDialogOverlay === 'false' ? false : (attrs.ngDialogOverlay === 'true' ? true : defaults.overlay),
- preCloseCallback: attrs.ngDialogPreCloseCallback || defaults.preCloseCallback,
- bodyClassName: attrs.ngDialogBodyClass || defaults.bodyClassName
- });
- });
- }
- };
- }]);
-
- return m;
-}));