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 ? + '
' + template + '
' : + '
' + template + '
')); + + if (options.data && angular.isString(options.data)) { + var firstLetter = options.data.replace(/^\s*/, '')[0]; + scope.ngDialogData = (firstLetter === '{' || firstLetter === '[') ? angular.fromJson(options.data) : options.data; + } else if (options.data && angular.isObject(options.data)) { + scope.ngDialogData = angular.fromJson(angular.toJson(options.data)); + } + + if (options.controller && (angular.isString(options.controller) || angular.isArray(options.controller) || angular.isFunction(options.controller))) { + var controllerInstance = $controller(options.controller, { + $scope: scope, + $element: $dialog + }); + $dialog.data('$ngDialogControllerController', controllerInstance); + } + + if (options.className) { + $dialog.addClass(options.className); + } + + if (options.appendTo && angular.isString(options.appendTo)) { + $dialogParent = angular.element(document.querySelector(options.appendTo)); + } else { + $dialogParent = $body; + } + + 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); + }; + + $timeout(function () { + $compile($dialog)(scope); + + var widthDiffs = $window.innerWidth - $body.prop('clientWidth'); + $body.addClass('ngdialog-open'); + var scrollBarWidth = widthDiffs - ($window.innerWidth - $body.prop('clientWidth')); + if (scrollBarWidth > 0) { + privateMethods.setBodyPadding(scrollBarWidth); + } + $dialogParent.append($dialog); + + if (options.name) { + $rootScope.$broadcast('ngDialog.opened', {dialog: $dialog, name: options.name}); + } else { + $rootScope.$broadcast('ngDialog.opened', $dialog); + } + }); + + if (options.closeByEscape) { + $body.bind('keydown', privateMethods.onDocumentKeydown); + } + + if (options.closeByNavigation) { + $rootScope.$on('$locationChangeSuccess', function () { + privateMethods.closeDialog($dialog); + }); + } + + 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: 'ngdialog' + globalID, + closePromise: defer.promise, + close: function (value) { + privateMethods.closeDialog($dialog, value); + } + }; + + function loadTemplateUrl (tmpl, config) { + return $http.get(tmpl, (config || {})).then(function(res) { + 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 $templateCache.get(tmpl) || loadTemplateUrl(tmpl, {cache: true}); + } + }, + + /* + * @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 false + * - closeByDocument {Boolean} - default false + * - preCloseCallback {String|Function} - user supplied function name/function called before closing dialog (if set); not called on confirm + * + * @return {Object} dialog + */ + openConfirm: function (opts) { + var defer = $q.defer(); + + var options = { + closeByEscape: false, + closeByDocument: false + }; + 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); + openResult.closePromise.then(function (data) { + if (data) { + return defer.reject(data.value); + } + return defer.reject(); + }); + + return defer.promise; + }, + + /* + * @param {String} id + * @return {Object} dialog + */ + close: function (id, value) { + var $dialog = $el(document.getElementById(id)); + + if ($dialog.length) { + privateMethods.closeDialog($dialog, value); + } else { + publicMethods.closeAll(value); + } + + return publicMethods; + }, + + closeAll: function (value) { + var $all = document.querySelectorAll('.ngdialog'); + + angular.forEach($all, function (dialog) { + privateMethods.closeDialog($el(dialog), value); + }); + }, + + getDefaults: function () { + return defaults; + } + }; + + return publicMethods; + }]; + }); + + module.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, + controller: attrs.ngDialogController, + 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), + preCloseCallback: attrs.ngDialogPreCloseCallback || defaults.preCloseCallback + }); + }); + } + }; + }]); + +})(window, window.angular); diff --git a/ajax/libs/ng-dialog/0.3.4/js/ngDialog.min.js b/ajax/libs/ng-dialog/0.3.4/js/ngDialog.min.js new file mode 100644 index 000000000..e13b4e38c --- /dev/null +++ b/ajax/libs/ng-dialog/0.3.4/js/ngDialog.min.js @@ -0,0 +1,2 @@ +/*! ng-dialog - v0.3.4 (https://github.com/likeastore/ngDialog) */ +!function(a,b){"use strict";var c=b.module("ngDialog",[]),d=b.element,e=b.isDefined,f=(document.body||document.documentElement).style,g=e(f.animation)||e(f.WebkitAnimation)||e(f.MozAnimation)||e(f.MsAnimation)||e(f.OAnimation),h="animationend webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend",i=!1;c.provider("ngDialog",function(){var c=this.defaults={className:"ngdialog-theme-default",plain:!1,showClose:!0,closeByDocument:!0,closeByEscape:!0,closeByNavigation:!1,appendTo:!1,preCloseCallback:!1,overlay:!0,cache:!0};this.setForceBodyReload=function(a){i=a||!1},this.setDefaults=function(a){b.extend(c,a)};var e,f=0,j=0,k={};this.$get=["$document","$templateCache","$compile","$q","$http","$rootScope","$timeout","$window","$controller",function(l,m,n,o,p,q,r,s,t){var u=l.find("body");i&&q.$on("$locationChangeSuccess",function(){u=l.find("body")});var v={onDocumentKeydown:function(a){27===a.keyCode&&w.close("$escape")},setBodyPadding:function(a){var b=parseInt(u.css("padding-right")||0,10);u.css("padding-right",b+a+"px"),u.data("ng-dialog-original-padding",b)},resetBodyPadding:function(){var a=u.data("ng-dialog-original-padding");a?u.css("padding-right",a+"px"):u.css("padding-right","")},performCloseDialog:function(c,d){var f=c.attr("id");if("undefined"!=typeof a.Hammer){var i=b.element(c).scope().hammerTime;i.off("tap",e),i.destroy(),delete c.scope().hammerTime}else c.unbind("click");1===j&&u.unbind("keydown"),c.hasClass("ngdialog-closing")||(j-=1),q.$broadcast("ngDialog.closing",c),g?c.unbind(h).bind(h,function(){c.scope().$destroy(),c.remove(),0===j&&(u.removeClass("ngdialog-open"),v.resetBodyPadding()),q.$broadcast("ngDialog.closed",c)}).addClass("ngdialog-closing"):(c.scope().$destroy(),c.remove(),0===j&&(u.removeClass("ngdialog-open"),v.resetBodyPadding()),q.$broadcast("ngDialog.closed",c)),k[f]&&(k[f].resolve({id:f,value:d,$dialog:c,remainingDialogs:j}),delete k[f])},closeDialog:function(a,c){var d=a.data("$ngDialogPreCloseCallback");if(d&&b.isFunction(d)){var e=d.call(a,c);b.isObject(e)?e.closePromise?e.closePromise.then(function(){v.performCloseDialog(a,c)}):e.then(function(){v.performCloseDialog(a,c)},function(){}):e!==!1&&v.performCloseDialog(a,c)}else v.performCloseDialog(a,c)}},w={open:function(g){function h(a,b){return p.get(a,b||{}).then(function(a){return a.data||""})}function i(a){return a?b.isString(a)&&x.plain?a:"boolean"!=typeof x.cache||x.cache?m.get(a)||h(a,{cache:!0}):h(a,{cache:!1}):"Empty template"}var l=this,x=b.copy(c);g=g||{},b.extend(x,g),f+=1,l.latestID="ngdialog"+f;var y;k[l.latestID]=y=o.defer();var z,A,B=b.isObject(x.scope)?x.scope.$new():q.$new();return o.when(i(x.template||x.templateUrl)).then(function(c){if(m.put(x.template||x.templateUrl,c),x.showClose&&(c+='
'),l.$result=z=d('
'),z.html(x.overlay?'
'+c+"
":'
'+c+"
"),x.data&&b.isString(x.data)){var g=x.data.replace(/^\s*/,"")[0];B.ngDialogData="{"===g||"["===g?b.fromJson(x.data):x.data}else x.data&&b.isObject(x.data)&&(B.ngDialogData=b.fromJson(b.toJson(x.data)));if(x.controller&&(b.isString(x.controller)||b.isArray(x.controller)||b.isFunction(x.controller))){var h=t(x.controller,{$scope:B,$element:z});z.data("$ngDialogControllerController",h)}if(x.className&&z.addClass(x.className),A=x.appendTo&&b.isString(x.appendTo)?b.element(document.querySelector(x.appendTo)):u,x.preCloseCallback){var i;b.isFunction(x.preCloseCallback)?i=x.preCloseCallback:b.isString(x.preCloseCallback)&&B&&(b.isFunction(B[x.preCloseCallback])?i=B[x.preCloseCallback]:B.$parent&&b.isFunction(B.$parent[x.preCloseCallback])?i=B.$parent[x.preCloseCallback]:q&&b.isFunction(q[x.preCloseCallback])&&(i=q[x.preCloseCallback])),i&&z.data("$ngDialogPreCloseCallback",i)}if(B.closeThisDialog=function(a){v.closeDialog(z,a)},r(function(){n(z)(B);var a=s.innerWidth-u.prop("clientWidth");u.addClass("ngdialog-open");var b=a-(s.innerWidth-u.prop("clientWidth"));b>0&&v.setBodyPadding(b),A.append(z),x.name?q.$broadcast("ngDialog.opened",{dialog:z,name:x.name}):q.$broadcast("ngDialog.opened",z)}),x.closeByEscape&&u.bind("keydown",v.onDocumentKeydown),x.closeByNavigation&&q.$on("$locationChangeSuccess",function(){v.closeDialog(z)}),e=function(a){var b=x.closeByDocument?d(a.target).hasClass("ngdialog-overlay"):!1,c=d(a.target).hasClass("ngdialog-close");(b||c)&&w.close(z.attr("id"),c?"$closeButton":"$document")},"undefined"!=typeof a.Hammer){var k=B.hammerTime=a.Hammer(z[0]);k.on("tap",e)}else z.bind("click",e);return j+=1,w}),{id:"ngdialog"+f,closePromise:y.promise,close:function(a){v.closeDialog(z,a)}}},openConfirm:function(a){var c=o.defer(),e={closeByEscape:!1,closeByDocument:!1};b.extend(e,a),e.scope=b.isObject(e.scope)?e.scope.$new():q.$new(),e.scope.confirm=function(a){c.resolve(a);var b=d(document.getElementById(f.id));v.performCloseDialog(b,a)};var f=w.open(e);return f.closePromise.then(function(a){return a?c.reject(a.value):c.reject()}),c.promise},close:function(a,b){var c=d(document.getElementById(a));return c.length?v.closeDialog(c,b):w.closeAll(b),w},closeAll:function(a){var c=document.querySelectorAll(".ngdialog");b.forEach(c,function(b){v.closeDialog(d(b),a)})},getDefaults:function(){return c}};return w}]}),c.directive("ngDialog",["ngDialog",function(a){return{restrict:"A",scope:{ngDialogScope:"="},link:function(c,d,e){d.on("click",function(d){d.preventDefault();var f=b.isDefined(c.ngDialogScope)?c.ngDialogScope:"noScope";b.isDefined(e.ngDialogClosePrevious)&&a.close(e.ngDialogClosePrevious);var g=a.getDefaults();a.open({template:e.ngDialog,className:e.ngDialogClass||g.className,controller:e.ngDialogController,scope:f,data:e.ngDialogData,showClose:"false"===e.ngDialogShowClose?!1:"true"===e.ngDialogShowClose?!0:g.showClose,closeByDocument:"false"===e.ngDialogCloseByDocument?!1:"true"===e.ngDialogCloseByDocument?!0:g.closeByDocument,closeByEscape:"false"===e.ngDialogCloseByEscape?!1:"true"===e.ngDialogCloseByEscape?!0:g.closeByEscape,preCloseCallback:e.ngDialogPreCloseCallback||g.preCloseCallback})})}}}])}(window,window.angular); \ No newline at end of file diff --git a/ajax/libs/ng-dialog/package.json b/ajax/libs/ng-dialog/package.json index 34b1ba798..ec4fb49ee 100644 --- a/ajax/libs/ng-dialog/package.json +++ b/ajax/libs/ng-dialog/package.json @@ -1,6 +1,6 @@ { "name": "ng-dialog", - "version": "0.3.3", + "version": "0.3.4", "description": "Modals and popups provider for Angular.js applications", "filename": "js/ngDialog.min.js", "homepage": "http://likeastore.github.io/ngDialog/",