diff --git a/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-default.css b/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-default.css new file mode 100644 index 000000000..d163a5403 --- /dev/null +++ b/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-default.css @@ -0,0 +1,196 @@ +@-webkit-keyframes ngdialog-flyin { + 0% { + opacity: 0; + -webkit-transform: translateY(-40px); + transform: translateY(-40px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } +} + +@keyframes ngdialog-flyin { + 0% { + opacity: 0; + -webkit-transform: translateY(-40px); + -ms-transform: translateY(-40px); + transform: translateY(-40px); + } + + 100% { + opacity: 1; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } +} + +@-webkit-keyframes ngdialog-flyout { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-40px); + transform: translateY(-40px); + } +} + +@keyframes ngdialog-flyout { + 0% { + opacity: 1; + -webkit-transform: translateY(0); + -ms-transform: translateY(0); + transform: translateY(0); + } + + 100% { + opacity: 0; + -webkit-transform: translateY(-40px); + -ms-transform: translateY(-40px); + transform: translateY(-40px); + } +} + +.ngdialog.ngdialog-theme-default { + padding-bottom: 160px; + padding-top: 160px; +} + +.ngdialog.ngdialog-theme-default.ngdialog-closing .ngdialog-content { + -webkit-animation: ngdialog-flyout .5s; + animation: ngdialog-flyout .5s; +} + +.ngdialog.ngdialog-theme-default .ngdialog-content { + -webkit-animation: ngdialog-flyin .5s; + animation: ngdialog-flyin .5s; + background: #f0f0f0; + border-radius: 5px; + color: #444; + font-family: 'Helvetica',sans-serif; + font-size: 1.1em; + line-height: 1.5em; + margin: 0 auto; + max-width: 100%; + padding: 1em; + position: relative; + width: 450px; +} + +.ngdialog.ngdialog-theme-default .ngdialog-close { + border-radius: 5px; + cursor: pointer; + position: absolute; + right: 0; + top: 0; +} + +.ngdialog.ngdialog-theme-default .ngdialog-close:before { + background: transparent; + border-radius: 3px; + color: #bbb; + content: '\00D7'; + font-size: 26px; + font-weight: 400; + height: 30px; + line-height: 26px; + position: absolute; + right: 3px; + text-align: center; + top: 3px; + width: 30px; +} + +.ngdialog.ngdialog-theme-default .ngdialog-close:hover:before, +.ngdialog.ngdialog-theme-default .ngdialog-close:active:before { + color: #777; +} + +.ngdialog.ngdialog-theme-default .ngdialog-message { + margin-bottom: .5em; +} + +.ngdialog.ngdialog-theme-default .ngdialog-input { + margin-bottom: 1em; +} + +.ngdialog.ngdialog-theme-default .ngdialog-input textarea, +.ngdialog.ngdialog-theme-default .ngdialog-input input[type="text"], +.ngdialog.ngdialog-theme-default .ngdialog-input input[type="password"], +.ngdialog.ngdialog-theme-default .ngdialog-input input[type="email"], +.ngdialog.ngdialog-theme-default .ngdialog-input input[type="url"] { + background: #fff; + border: 0; + border-radius: 3px; + font-family: inherit; + font-size: inherit; + font-weight: inherit; + margin: 0 0 .25em; + min-height: 2.5em; + padding: .25em .67em; + width: 100%; +} + +.ngdialog.ngdialog-theme-default .ngdialog-input textarea:focus, +.ngdialog.ngdialog-theme-default .ngdialog-input input[type="text"]:focus, +.ngdialog.ngdialog-theme-default .ngdialog-input input[type="password"]:focus, +.ngdialog.ngdialog-theme-default .ngdialog-input input[type="email"]:focus, +.ngdialog.ngdialog-theme-default .ngdialog-input input[type="url"]:focus { + -webkit-box-shadow: inset 0 0 0 2px #8dbdf1; + box-shadow: inset 0 0 0 2px #8dbdf1; + outline: none; +} + +.ngdialog.ngdialog-theme-default .ngdialog-buttons { + *zoom: 1; +} + +.ngdialog.ngdialog-theme-default .ngdialog-buttons:after { + content: ''; + display: table; + clear: both; +} + +.ngdialog.ngdialog-theme-default .ngdialog-button { + border: 0; + border-radius: 3px; + cursor: pointer; + float: right; + font-family: inherit; + font-size: .8em; + letter-spacing: .1em; + line-height: 1em; + margin: 0 0 0 .5em; + padding: .75em 2em; + text-transform: uppercase; +} + +.ngdialog.ngdialog-theme-default .ngdialog-button:focus { + -webkit-animation: ngdialog-pulse 1.1s infinite; + animation: ngdialog-pulse 1.1s infinite; + outline: none; +} + +@media (max-width: 568px) { + .ngdialog.ngdialog-theme-default .ngdialog-button:focus { + -webkit-animation: none; + animation: none; + } +} + +.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-primary { + background: #3288e6; + color: #fff; +} + +.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-secondary { + background: #e0e0e0; + color: #777; +} \ No newline at end of file diff --git a/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-default.min.css b/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-default.min.css new file mode 100644 index 000000000..ef489eb22 --- /dev/null +++ b/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-default.min.css @@ -0,0 +1,3 @@ +/*! ng-dialog - v0.3.4 (https://github.com/likeastore/ngDialog) */ + +@-webkit-keyframes ngdialog-flyin{0%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes ngdialog-flyin{0%{opacity:0;-webkit-transform:translateY(-40px);-ms-transform:translateY(-40px);transform:translateY(-40px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes ngdialog-flyout{0%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);transform:translateY(-40px)}}@keyframes ngdialog-flyout{0%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);-ms-transform:translateY(-40px);transform:translateY(-40px)}}.ngdialog.ngdialog-theme-default{padding-bottom:160px;padding-top:160px}.ngdialog.ngdialog-theme-default.ngdialog-closing .ngdialog-content{-webkit-animation:ngdialog-flyout .5s;animation:ngdialog-flyout .5s}.ngdialog.ngdialog-theme-default .ngdialog-content{-webkit-animation:ngdialog-flyin .5s;animation:ngdialog-flyin .5s;background:#f0f0f0;border-radius:5px;color:#444;font-family:Helvetica,sans-serif;font-size:1.1em;line-height:1.5em;margin:0 auto;max-width:100%;padding:1em;position:relative;width:450px}.ngdialog.ngdialog-theme-default .ngdialog-close{border-radius:5px;cursor:pointer;position:absolute;right:0;top:0}.ngdialog.ngdialog-theme-default .ngdialog-close:before{background:0 0;border-radius:3px;color:#bbb;content:'\00D7';font-size:26px;font-weight:400;height:30px;line-height:26px;position:absolute;right:3px;text-align:center;top:3px;width:30px}.ngdialog.ngdialog-theme-default .ngdialog-close:active:before,.ngdialog.ngdialog-theme-default .ngdialog-close:hover:before{color:#777}.ngdialog.ngdialog-theme-default .ngdialog-message{margin-bottom:.5em}.ngdialog.ngdialog-theme-default .ngdialog-input{margin-bottom:1em}.ngdialog.ngdialog-theme-default .ngdialog-input input[type=email],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=password],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=text],.ngdialog.ngdialog-theme-default .ngdialog-input input[type=url],.ngdialog.ngdialog-theme-default .ngdialog-input textarea{background:#fff;border:0;border-radius:3px;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0 0 .25em;min-height:2.5em;padding:.25em .67em;width:100%}.ngdialog.ngdialog-theme-default .ngdialog-input input[type=email]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=password]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=text]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input input[type=url]:focus,.ngdialog.ngdialog-theme-default .ngdialog-input textarea:focus{-webkit-box-shadow:inset 0 0 0 2px #8dbdf1;box-shadow:inset 0 0 0 2px #8dbdf1;outline:0}.ngdialog.ngdialog-theme-default .ngdialog-buttons{*zoom:1}.ngdialog.ngdialog-theme-default .ngdialog-buttons:after{content:'';display:table;clear:both}.ngdialog.ngdialog-theme-default .ngdialog-button{border:0;border-radius:3px;cursor:pointer;float:right;font-family:inherit;font-size:.8em;letter-spacing:.1em;line-height:1em;margin:0 0 0 .5em;padding:.75em 2em;text-transform:uppercase}.ngdialog.ngdialog-theme-default .ngdialog-button:focus{-webkit-animation:ngdialog-pulse 1.1s infinite;animation:ngdialog-pulse 1.1s infinite;outline:0}@media (max-width:568px){.ngdialog.ngdialog-theme-default .ngdialog-button:focus{-webkit-animation:none;animation:none}}.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-primary{background:#3288e6;color:#fff}.ngdialog.ngdialog-theme-default .ngdialog-button.ngdialog-button-secondary{background:#e0e0e0;color:#777} \ No newline at end of file diff --git a/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-plain.css b/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-plain.css new file mode 100644 index 000000000..b058b53eb --- /dev/null +++ b/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-plain.css @@ -0,0 +1,132 @@ +.ngdialog.ngdialog-theme-plain { + padding-bottom: 160px; + padding-top: 160px; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-content { + background: #fff; + color: #444; + font-family: 'Helvetica Neue',sans-serif; + font-size: 1.1em; + line-height: 1.5em; + margin: 0 auto; + max-width: 100%; + padding: 1em; + position: relative; + width: 450px; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-content h1, +.ngdialog.ngdialog-theme-plain .ngdialog-content h2, +.ngdialog.ngdialog-theme-plain .ngdialog-content h3, +.ngdialog.ngdialog-theme-plain .ngdialog-content h4, +.ngdialog.ngdialog-theme-plain .ngdialog-content h5, +.ngdialog.ngdialog-theme-plain .ngdialog-content h6, +.ngdialog.ngdialog-theme-plain .ngdialog-content p, +.ngdialog.ngdialog-theme-plain .ngdialog-content ul, +.ngdialog.ngdialog-theme-plain .ngdialog-content li { + color: inherit; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-close { + cursor: pointer; + position: absolute; + right: 0; + top: 0; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-close:before { + background: transparent; + color: #bbb; + content: "\00D7"; + font-size: 26px; + font-weight: 400; + height: 30px; + line-height: 26px; + position: absolute; + right: 3px; + text-align: center; + top: 3px; + width: 30px; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-close:hover:before, +.ngdialog.ngdialog-theme-plain .ngdialog-close:active:before { + color: #777; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-message { + margin-bottom: .5em; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-input { + margin-bottom: 1em; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-input textarea, +.ngdialog.ngdialog-theme-plain .ngdialog-input input[type="text"], +.ngdialog.ngdialog-theme-plain .ngdialog-input input[type="password"], +.ngdialog.ngdialog-theme-plain .ngdialog-input input[type="email"], +.ngdialog.ngdialog-theme-plain .ngdialog-input input[type="url"] { + background: #f0f0f0; + border: 0; + font-family: inherit; + font-size: inherit; + font-weight: inherit; + margin: 0 0 .25em; + min-height: 2.5em; + padding: .25em .67em; + width: 100%; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-input textarea:focus, +.ngdialog.ngdialog-theme-plain .ngdialog-input input[type="text"]:focus, +.ngdialog.ngdialog-theme-plain .ngdialog-input input[type="password"]:focus, +.ngdialog.ngdialog-theme-plain .ngdialog-input input[type="email"]:focus, +.ngdialog.ngdialog-theme-plain .ngdialog-input input[type="url"]:focus { + -webkit-box-shadow: inset 0 0 0 2px rgba(0,0,0,0.2); + box-shadow: inset 0 0 0 2px rgba(0,0,0,0.2); + outline: none; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-buttons:after { + clear: both; + content: ''; + display: table; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-button { + border: 0; + cursor: pointer; + float: right; + font-family: inherit; + font-size: .8em; + letter-spacing: .1em; + line-height: 1em; + margin: 0 0 0 .5em; + padding: .75em 2em; + text-transform: uppercase; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-button:focus { + -webkit-animation: ngdialog-pulse 1.1s infinite; + animation: ngdialog-pulse 1.1s infinite; + outline: none; +} + +@media (max-width: 568px) { + .ngdialog.ngdialog-theme-plain .ngdialog-button:focus { + -webkit-animation: none; + animation: none; + } +} + +.ngdialog.ngdialog-theme-plain .ngdialog-button.ngdialog-button-primary { + background: #3288e6; + color: #fff; +} + +.ngdialog.ngdialog-theme-plain .ngdialog-button.ngdialog-button-secondary { + background: #e0e0e0; + color: #777; +} \ No newline at end of file diff --git a/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-plain.min.css b/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-plain.min.css new file mode 100644 index 000000000..9782d6b65 --- /dev/null +++ b/ajax/libs/ng-dialog/0.3.4/css/ngDialog-theme-plain.min.css @@ -0,0 +1,3 @@ +/*! ng-dialog - v0.3.4 (https://github.com/likeastore/ngDialog) */ + +.ngdialog.ngdialog-theme-plain{padding-bottom:160px;padding-top:160px}.ngdialog.ngdialog-theme-plain .ngdialog-content{background:#fff;color:#444;font-family:'Helvetica Neue',sans-serif;font-size:1.1em;line-height:1.5em;margin:0 auto;max-width:100%;padding:1em;position:relative;width:450px}.ngdialog.ngdialog-theme-plain .ngdialog-content h1,.ngdialog.ngdialog-theme-plain .ngdialog-content h2,.ngdialog.ngdialog-theme-plain .ngdialog-content h3,.ngdialog.ngdialog-theme-plain .ngdialog-content h4,.ngdialog.ngdialog-theme-plain .ngdialog-content h5,.ngdialog.ngdialog-theme-plain .ngdialog-content h6,.ngdialog.ngdialog-theme-plain .ngdialog-content li,.ngdialog.ngdialog-theme-plain .ngdialog-content p,.ngdialog.ngdialog-theme-plain .ngdialog-content ul{color:inherit}.ngdialog.ngdialog-theme-plain .ngdialog-close{cursor:pointer;position:absolute;right:0;top:0}.ngdialog.ngdialog-theme-plain .ngdialog-close:before{background:0 0;color:#bbb;content:"\00D7";font-size:26px;font-weight:400;height:30px;line-height:26px;position:absolute;right:3px;text-align:center;top:3px;width:30px}.ngdialog.ngdialog-theme-plain .ngdialog-close:active:before,.ngdialog.ngdialog-theme-plain .ngdialog-close:hover:before{color:#777}.ngdialog.ngdialog-theme-plain .ngdialog-message{margin-bottom:.5em}.ngdialog.ngdialog-theme-plain .ngdialog-input{margin-bottom:1em}.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=email],.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=password],.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=text],.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=url],.ngdialog.ngdialog-theme-plain .ngdialog-input textarea{background:#f0f0f0;border:0;font-family:inherit;font-size:inherit;font-weight:inherit;margin:0 0 .25em;min-height:2.5em;padding:.25em .67em;width:100%}.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=email]:focus,.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=password]:focus,.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=text]:focus,.ngdialog.ngdialog-theme-plain .ngdialog-input input[type=url]:focus,.ngdialog.ngdialog-theme-plain .ngdialog-input textarea:focus{-webkit-box-shadow:inset 0 0 0 2px rgba(0,0,0,.2);box-shadow:inset 0 0 0 2px rgba(0,0,0,.2);outline:0}.ngdialog.ngdialog-theme-plain .ngdialog-buttons:after{clear:both;content:'';display:table}.ngdialog.ngdialog-theme-plain .ngdialog-button{border:0;cursor:pointer;float:right;font-family:inherit;font-size:.8em;letter-spacing:.1em;line-height:1em;margin:0 0 0 .5em;padding:.75em 2em;text-transform:uppercase}.ngdialog.ngdialog-theme-plain .ngdialog-button:focus{-webkit-animation:ngdialog-pulse 1.1s infinite;animation:ngdialog-pulse 1.1s infinite;outline:0}@media (max-width:568px){.ngdialog.ngdialog-theme-plain .ngdialog-button:focus{-webkit-animation:none;animation:none}}.ngdialog.ngdialog-theme-plain .ngdialog-button.ngdialog-button-primary{background:#3288e6;color:#fff}.ngdialog.ngdialog-theme-plain .ngdialog-button.ngdialog-button-secondary{background:#e0e0e0;color:#777} \ No newline at end of file diff --git a/ajax/libs/ng-dialog/0.3.4/css/ngDialog.css b/ajax/libs/ng-dialog/0.3.4/css/ngDialog.css new file mode 100644 index 000000000..cfbbb6527 --- /dev/null +++ b/ajax/libs/ng-dialog/0.3.4/css/ngDialog.css @@ -0,0 +1,100 @@ +@-webkit-keyframes ngdialog-fadeout { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@keyframes ngdialog-fadeout { + 0% { + opacity: 1; + } + + 100% { + opacity: 0; + } +} + +@-webkit-keyframes ngdialog-fadein { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +@keyframes ngdialog-fadein { + 0% { + opacity: 0; + } + + 100% { + opacity: 1; + } +} + +.ngdialog, +.ngdialog *, +.ngdialog *:before, +.ngdialog *:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.ngdialog { + position: fixed; + overflow: auto; + -webkit-overflow-scrolling: touch; + z-index: 10000; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.ngdialog-overlay { + position: fixed; + background: rgba(0, 0, 0, 0.4); + top: 0; + right: 0; + bottom: 0; + left: 0; + -webkit-backface-visibility: hidden; + -webkit-animation: ngdialog-fadein 0.5s; + animation: ngdialog-fadein 0.5s; +} + +.ngdialog.ngdialog-closing .ngdialog-overlay { + -webkit-backface-visibility: hidden; + -webkit-animation: ngdialog-fadeout 0.5s; + animation: ngdialog-fadeout 0.5s; +} + +.ngdialog-content { + background: white; + -webkit-backface-visibility: hidden; + -webkit-animation: ngdialog-fadein 0.5s; + animation: ngdialog-fadein 0.5s; +} + +.ngdialog.ngdialog-closing .ngdialog-content { + -webkit-backface-visibility: hidden; + -webkit-animation: ngdialog-fadeout 0.5s; + animation: ngdialog-fadeout 0.5s; +} + +.ngdialog-close:before { + font-family: 'Helvetica', Arial, sans-serif; + content: '\00D7'; + cursor: pointer; +} + +body.ngdialog-open { + overflow: hidden; +} \ No newline at end of file diff --git a/ajax/libs/ng-dialog/0.3.4/css/ngDialog.min.css b/ajax/libs/ng-dialog/0.3.4/css/ngDialog.min.css new file mode 100644 index 000000000..292842a34 --- /dev/null +++ b/ajax/libs/ng-dialog/0.3.4/css/ngDialog.min.css @@ -0,0 +1,3 @@ +/*! ng-dialog - v0.3.4 (https://github.com/likeastore/ngDialog) */ + +@-webkit-keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes ngdialog-fadeout{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}@keyframes ngdialog-fadein{0%{opacity:0}100%{opacity:1}}.ngdialog,.ngdialog *,.ngdialog :after,.ngdialog :before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ngdialog{position:fixed;overflow:auto;-webkit-overflow-scrolling:touch;z-index:10000;top:0;right:0;bottom:0;left:0}.ngdialog-overlay{position:fixed;background:rgba(0,0,0,.4);top:0;right:0;bottom:0;left:0;-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s}.ngdialog.ngdialog-closing .ngdialog-overlay{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadeout .5s;animation:ngdialog-fadeout .5s}.ngdialog-content{background:#fff;-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadein .5s;animation:ngdialog-fadein .5s}.ngdialog.ngdialog-closing .ngdialog-content{-webkit-backface-visibility:hidden;-webkit-animation:ngdialog-fadeout .5s;animation:ngdialog-fadeout .5s}.ngdialog-close:before{font-family:Helvetica,Arial,sans-serif;content:'\00D7';cursor:pointer}body.ngdialog-open{overflow:hidden} \ No newline at end of file diff --git a/ajax/libs/ng-dialog/0.3.4/js/ngDialog.js b/ajax/libs/ng-dialog/0.3.4/js/ngDialog.js new file mode 100644 index 000000000..87fa3ee4d --- /dev/null +++ b/ajax/libs/ng-dialog/0.3.4/js/ngDialog.js @@ -0,0 +1,436 @@ +/* + * ngDialog - easy modals and popup windows + * http://github.com/likeastore/ngDialog + * (c) 2013 MIT License, https://likeastore.com + */ + +(function (window, angular, undefined) { + 'use strict'; + + var module = 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 forceBodyReload = false; + + module.provider('ngDialog', function () { + var defaults = this.defaults = { + className: 'ngdialog-theme-default', + plain: false, + showClose: true, + closeByDocument: true, + closeByEscape: true, + closeByNavigation: false, + appendTo: false, + preCloseCallback: false, + overlay: true, + cache: true + }; + + this.setForceBodyReload = function (_useIt) { + forceBodyReload = _useIt || false; + }; + + this.setDefaults = function (newDefaults) { + angular.extend(defaults, newDefaults); + }; + + var globalID = 0, dialogsCount = 0, closeByDocumentHandler, defers = {}; + + this.$get = ['$document', '$templateCache', '$compile', '$q', '$http', '$rootScope', '$timeout', '$window', '$controller', + function ($document, $templateCache, $compile, $q, $http, $rootScope, $timeout, $window, $controller) { + var $body = $document.find('body'); + if (forceBodyReload) { + $rootScope.$on('$locationChangeSuccess', function () { + $body = $document.find('body'); + }); + } + + var privateMethods = { + onDocumentKeydown: function (event) { + if (event.keyCode === 27) { + publicMethods.close('$escape'); + } + }, + + setBodyPadding: function (width) { + var originalBodyPadding = parseInt(($body.css('padding-right') || 0), 10); + $body.css('padding-right', (originalBodyPadding + width) + 'px'); + $body.data('ng-dialog-original-padding', originalBodyPadding); + }, + + resetBodyPadding: function () { + var originalBodyPadding = $body.data('ng-dialog-original-padding'); + if (originalBodyPadding) { + $body.css('padding-right', originalBodyPadding + 'px'); + } else { + $body.css('padding-right', ''); + } + }, + + performCloseDialog: function ($dialog, value) { + var id = $dialog.attr('id'); + + if (typeof window.Hammer !== 'undefined') { + var hammerTime = angular.element($dialog).scope().hammerTime; + hammerTime.off('tap', closeByDocumentHandler); + hammerTime.destroy(); + delete $dialog.scope().hammerTime; + } else { + $dialog.unbind('click'); + } + + if (dialogsCount === 1) { + $body.unbind('keydown'); + } + + if (!$dialog.hasClass("ngdialog-closing")){ + dialogsCount -= 1; + } + + $rootScope.$broadcast('ngDialog.closing', $dialog); + + if (animationEndSupport) { + $dialog.unbind(animationEndEvent).bind(animationEndEvent, function () { + $dialog.scope().$destroy(); + $dialog.remove(); + if (dialogsCount === 0) { + $body.removeClass('ngdialog-open'); + privateMethods.resetBodyPadding(); + } + $rootScope.$broadcast('ngDialog.closed', $dialog); + }).addClass('ngdialog-closing'); + } else { + $dialog.scope().$destroy(); + $dialog.remove(); + if (dialogsCount === 0) { + $body.removeClass('ngdialog-open'); + privateMethods.resetBodyPadding(); + } + $rootScope.$broadcast('ngDialog.closed', $dialog); + } + if (defers[id]) { + defers[id].resolve({ + id: id, + value: value, + $dialog: $dialog, + remainingDialogs: dialogsCount + }); + delete defers[id]; + } + }, + + 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); + }); + } else { + preCloseCallbackResult.then(function () { + privateMethods.performCloseDialog($dialog, value); + }, function () { + return; + }); + } + } else if (preCloseCallbackResult !== false) { + privateMethods.performCloseDialog($dialog, value); + } + } else { + privateMethods.performCloseDialog($dialog, value); + } + } + }; + + var publicMethods = { + + /* + * @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} + * - className {String} - dialog theme class + * - 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) + * + * @return {Object} dialog + */ + open: function (opts) { + var self = this; + var options = angular.copy(defaults); + + opts = opts || {}; + angular.extend(options, opts); + + globalID += 1; + + self.latestID = 'ngdialog' + globalID; + + var defer; + defers[self.latestID] = defer = $q.defer(); + + var scope = angular.isObject(options.scope) ? options.scope.$new() : $rootScope.$new(); + var $dialog, $dialogParent; + + $q.when(loadTemplate(options.template || options.templateUrl)).then(function (template) { + + $templateCache.put(options.template || options.templateUrl, template); + + if (options.showClose) { + template += '
'; + } + + self.$result = $dialog = $el(''); + $dialog.html((options.overlay ? + '