🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

acha-framework

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

acha-framework - npm Package Compare versions

Comparing version

to
1.0.19

179

index.js

@@ -24,2 +24,3 @@ (function (undefined) {

global.UUID = require('uuid').v4;
global.MIME = require('mime-types');
Ioc.define('backend.controllers.configuration', ['backend.configuration'], function (provide, config) {

@@ -86,5 +87,7 @@ provide({

'backend.fileGeneratorEngine',
'backend.zipHelper',
'backend.fileHelper',
'backend.authentication',
'backend.uploader'
], function (provide, OperationResult, fileGeneratorEngine, authentication, uploader) {
], function (provide, OperationResult, fileGeneratorEngine, zipHelper, fileHelper, authentication, uploader) {
provide(function (engine, route, options) {

@@ -199,9 +202,8 @@ var generator = fileGeneratorEngine(engine, route, options, {

for (var i = 0; i < source.length; i++) {
promises.push(Q.defer());
}
try {
source.forEach(function (s, idx) {
var defer = Q.defer();
promises.push(defer.promise);
(function (s, idx, defer) {
FS.stat(s, function (err, stat) {
if (err) {
promises[idx].resolve();
defer.resolve();
return;

@@ -225,7 +227,9 @@ }

FSX[mode](s, destination, { overwrite: true }, function (err2) {
promises[idx].resolve();
defer.resolve();
});
});
});
});
}(source[i], i, defer));
}
try {
Q.all(promises).then(function () {

@@ -253,3 +257,3 @@ res.json(OperationResult.success());

var defer = Q.defer();
promises.push(defer);
promises.push(defer.promise);
var destination = PATH.resolve(path, file.originalname);

@@ -283,7 +287,78 @@ (function (file, defer, destination) {

});
engine.addRoute({
method: 'post',
path: generator.prefixRoute('zip'),
middlewares: (options.middlewares || []).concat([authentication.verify_jwt]),
action: function (req, res) {
var items = req.body.items || [];
var path = generator.relativeToAbsolute(generator.fixPath(req.body.path));
items = items.map(function (item) {
return generator.relativeToAbsolute(generator.fixPath(item));
}).filter(function (item) {
return item && item !== '/';
});
try {
var zipName = UUID() + '.zip';
var destination = PATH.resolve(path, zipName);
zipHelper.zip(items, destination).then(function () {
res.json(OperationResult.success());
}, function () {
res.json(OperationResult.failed());
});
} catch (e) {
res.json(OperationResult.failed());
}
}
});
engine.addRoute({
method: 'post',
path: generator.prefixRoute('download'),
middlewares: (options.middlewares || []).concat([authentication.verify_jwt]),
action: function (req, res) {
var folder = req.body.folder === true || req.body.folder === 'true';
var items = req.body.items || [];
if (typeof items === 'string') {
items = [items];
}
items = items.map(function (item) {
return generator.relativeToAbsolute(generator.fixPath(item));
}).filter(function (item) {
return item && item !== '/';
});
try {
if (items.length === 0) {
res.status(404).send();
return;
}
if (items.length === 1) {
if (!folder) {
fileHelper.downloadStream(items[0], res, true);
return;
}
}
zipHelper.createZip(items).then(function (zip) {
if (!zip) {
res.status(404).send();
return;
}
zip.toBuffer(function (buffer) {
res.contentType('zip');
res.write(buffer);
res.end();
}, function () {
res.status(404).send();
});
});
} catch (e) {
res.status(404).send();
}
}
});
});
});
Ioc.define('backend.fileGeneratorEngine', ['backend.operationResult'], function (provide, OperationResult) {
Ioc.define('backend.fileGeneratorEngine', [
'backend.operationResult',
'backend.fileHelper'
], function (provide, OperationResult, fileHelper) {
provide(function (engine, route, options, def) {
var mime = require('mime-types');
var directoryInfo = function (dir) {

@@ -387,14 +462,3 @@ var stat = FS.statSync(dir);

var fileName = relativeToAbsolute(req.url);
FS.stat(fileName, function (err, stat) {
if (err) {
res.status(404).send();
return;
}
res.writeHead(200, {
'Content-Type': mime.lookup(fileName),
'Content-Length': stat.size
});
var readStream = FS.createReadStream(fileName);
readStream.pipe(res);
});
fileHelper.downloadStream(fileName, res);
}

@@ -409,4 +473,3 @@ });

listDirectory: listDirectory,
directoryInfo: directoryInfo,
mime: mime
directoryInfo: directoryInfo
};

@@ -1106,2 +1169,17 @@ });

return (url || '').match(/\.([0-9a-z]+)(?:[\?#]|$)/i);
},
downloadStream: function (fileName, res, attachment) {
FS.stat(fileName, function (err, stat) {
if (err) {
res.status(404).send();
return;
}
res.writeHead(200, {
'Content-Type': MIME.lookup(fileName),
'Content-Length': stat.size,
'Content-disposition': attachment === true ? 'attachment; filename=' + PATH.basename(fileName) : undefined
});
var readStream = FS.createReadStream(fileName);
readStream.pipe(res);
});
}

@@ -1311,2 +1389,53 @@ });

});
});
Ioc.define('backend.zipHelper', [], function (provide) {
var AdmZip = require('adm-zip');
var createZip = function (source) {
return Q.Promise(function (resolve, reject) {
var zip = new AdmZip();
var promises = [];
var errorHappend = false;
for (var i = 0; i < source.length; i++) {
var defer = Q.defer();
promises.push(defer.promise);
(function (defer, src, zip) {
FS.stat(src, function (err, stat) {
if (err) {
defer.resolve();
errorHappend = true;
return;
}
if (stat.isDirectory()) {
zip.addLocalFolder(src);
} else {
zip.addLocalFile(src);
}
defer.resolve();
});
}(defer, source[i], zip));
}
Q.all(promises).then(function () {
if (errorHappend)
zip = null;
resolve(zip);
});
});
};
provide({
createZip: createZip,
zip: function (source, destination) {
'use strict';
return Q.Promise(function (resolve, reject) {
createZip(source).then(function (zip) {
if (zip) {
zip.writeZip(destination);
zip = null;
resolve(true);
return;
}
resolve(false);
});
});
}
});
});

2

package.json

@@ -1,1 +0,1 @@

{"license":"","name":"acha-framework","version":"1.0.18","description":"is a modular framework on both client (angular.js) and server (node.js) side, it provides security, orm, ioc, obfuscation and ...","main":"index.js","scripts":{"test":"mocha -r should -R spec"},"author":"Navid Kianfar","dependencies":{"async":"^2.1.5","body-parser":"^1.17.1","caminte":"^0.2.19","captchapng":"0.0.1","compression":"^1.6.2","connect-caminte":"0.0.4","cookie-parser":"^1.4.3","csurf":"^1.9.0","del":"^3.0.0","ejs":"^2.5.6","ejs-mate":"^2.3.0","express":"^4.15.2","express-error-handler":"^1.1.0","express-session":"^1.15.1","express-useragent":"^0.2.4","feed":"^0.3.1","fs-extra":"^0.30.0","helmet":"^2.3.0","i18n":"^0.8.3","jsonwebtoken":"^7.3.0","lodash":"^4.17.4","mime-types":"^2.1.15","morgan":"^1.8.1","multer":"^1.3.0","mysql":"^2.13.0","passport":"^0.3.2","passport-facebook-token":"^3.3.0","passport-google-oauth2":"^0.1.6","passport-jwt":"^2.2.1","passport-local":"^1.0.0","pem":"^1.9.4","q":"^1.4.1","sqlite3":"^3.1.8","underscore":"^1.8.3","uuid":"^2.0.3","ym":"^0.1.2"},"caminte":{"adapter":"sqlite3"},"url":"https://github.com/achasoft/acha-framework","emil":"nvd.kianfar@gmail.com","keywords":["angular","api","atom","authentication","express","jwt","modular","mvc","nodejs","oauth","obfuscation","orm","rss","sitemap","startup","token"]}
{"license":"","name":"acha-framework","version":"1.0.19","description":"is a modular framework on both client (angular.js) and server (node.js) side, it provides security, orm, ioc, obfuscation and ...","main":"index.js","scripts":{"test":"mocha -r should -R spec"},"author":"Navid Kianfar","dependencies":{"adm-zip":"^0.4.7","async":"^2.1.5","body-parser":"^1.17.1","caminte":"^0.2.19","captchapng":"0.0.1","compression":"^1.6.2","connect-caminte":"0.0.4","cookie-parser":"^1.4.3","csurf":"^1.9.0","del":"^3.0.0","ejs":"^2.5.6","ejs-mate":"^2.3.0","express":"^4.15.2","express-error-handler":"^1.1.0","express-session":"^1.15.1","express-useragent":"^0.2.4","feed":"^0.3.1","fs-extra":"^0.30.0","helmet":"^2.3.0","i18n":"^0.8.3","jsonwebtoken":"^7.3.0","lodash":"^4.17.4","mime-types":"^2.1.15","morgan":"^1.8.1","multer":"^1.3.0","mysql":"^2.13.0","passport":"^0.3.2","passport-facebook-token":"^3.3.0","passport-google-oauth2":"^0.1.6","passport-jwt":"^2.2.1","passport-local":"^1.0.0","pem":"^1.9.4","q":"^1.4.1","sitemap":"^1.13.0","sqlite3":"^3.1.8","underscore":"^1.8.3","uuid":"^2.0.3","ym":"^0.1.2"},"caminte":{"adapter":"sqlite3"},"url":"https://github.com/achasoft/acha-framework","emil":"nvd.kianfar@gmail.com","keywords":["angular","api","atom","authentication","express","jwt","modular","mvc","nodejs","oauth","obfuscation","orm","rss","sitemap","startup","token"]}

@@ -1,2 +0,2 @@

!function(e,n,t,i,o,a){"use strict";var r=n.module("frontend.directives");r.directive("showPanel",[function(){return{restrict:"A",link:function(e,n,t){var i=e.$eval(t.showPanel)||{},o=n.parent(),a=o.height()+(o.offset().top||i.top||0);n.css({position:"fixed",right:i.right||0,width:o.width()||i.width||"100%",height:i.height||200,top:a})}}}]),r.directive("onEnter",function(){return function(e,n,t){n.bind("keydown keypress",function(n){13===n.which&&(e.$apply(function(){e.$eval(t.onEnter,{event:n})}),n.preventDefault())})}}),r.directive("numberOnly",function(){return{require:"ngModel",link:function(e,n,t,i){function o(e){if(e){var n=e.replace(/[^0-9]/g,"");return n!==e&&(i.$setViewValue(n),i.$render()),n}return a}i.$parsers.push(o)}}})}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("accordionService",function(){var n=function(e,n,t){return e.hasAttribute(n)?e.getAttribute(n):t};return{parse:function(t){var i=[];return e(t).each(function(e,t){i.push({disabled:n(t,"disabled",!1),cssClass:n(t,"css-class",""),title:n(t,"title",""),titleTranslate:n(t,"title-translate",null),icon:n(t,"icon",null),onEnter:n(t,"on-enter",null),onExit:n(t,"on-exit",null),content:t.innerHTML})}),i}}}).directive("accordion",["$compile","$templateCache","accordionService",function(t,i,o){return{restrict:"E",replace:!0,scope:{disabled:"=?",visible:"=?",cssClass:"=?",onChanged:"<?",steps:"=?",model:"=?"},compile:function(a){var r=i.get("/templates/framework/directives/accordion/template.html"),l=a.html();return a.empty(),{pre:function(i,a,d){i.vm={},i.vm.init=function(){n.isUndefined(i.disabled)&&(i.disabled=!1),n.isUndefined(i.visible)&&(i.visible=!0),n.isUndefined(i.cssClass)&&(i.cssClass=""),n.isUndefined(i.steps)&&(i.steps=o.parse(l)),n.isUndefined(i.model)&&i.steps.length&&(i.model=i.steps[0]),i.vm.compile(),i.vm.bind()},i.vm.onPick=function(e){i.disabled||e.disabled||(i.model=e)},i.vm.bind=function(){i.$watch("model",function(e,t){if(e){var o=i.$eval(e.onEnter);if(n.isFunction(o)&&o(e),t){var a=i.$eval(t.onExit);n.isFunction(a)&&a(t,e)}n.isFunction(i.onChanged)&&i.onChanged(e)}})},i.vm.compile=function(){var n=e(r);a.append(n),t(n)(i)},i.vm.init()}}}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("calendar",["cultureService",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",culture:"=?",onChange:"=?",mode:"=?",model:"=?"},templateUrl:"/templates/framework/directives/calendar/template.html",link:function(t,i,o){t.vm={cultureService:e,calendar:null,current:null,tempMonth:0,tempYear:0,tempYears:[]},t.vm.setToday=function(){t.vm.update(t.vm.today.year,t.vm.today.month,t.vm.today.day),"days"!==t.mode?t.vm.switch("days"):t.vm.paintDays()},t.vm.paintDays=function(){for(var e=[],n=t.vm.tempMonth-1,i=0===n?11:n-1,o=t.vm.calendar.daysInMonth[i],a=t.vm.calendar.daysInMonth[n],r=11===n?0:n+1,l=0===r?t.vm.tempYear+1:t.vm.tempYear,d=t.vm.calendar.getMonthStartWeekDate(t.vm.tempYear,t.vm.tempMonth),s=11===i?t.vm.tempYear-1:t.vm.tempYear,c=o-d+t.vm.calendar.weekGap;c<=o;c++)e.push({year:s,month:i+1,number:c,old:!0});for(c=1;c<=a;c++)e.push({year:t.vm.tempYear,month:t.vm.tempMonth,number:c});var m=7-e.length%7;if(m)for(c=1;c<=m;c++)e.push({year:l,month:r+1,number:c,old:!0});t.vm.days=e.partition(7)},t.vm.paintYears=function(){for(var e=[],n=t.vm.tempYear-6;n<=t.vm.tempYear+5;n++)e.push(n);t.vm.tempYears=e},t.vm.forwardMonth=function(){12===t.vm.tempMonth?(t.vm.tempMonth=1,t.vm.tempYear++):t.vm.tempMonth++,t.vm.paintDays()},t.vm.backwardMonth=function(){1===t.vm.tempMonth?(t.vm.tempMonth=12,t.vm.tempYear--):t.vm.tempMonth--,t.vm.paintDays()},t.vm.updateYear=function(e){t.vm.update(e,t.vm.current.month,t.vm.current.day)},t.vm.updateMonth=function(e){t.vm.update(t.vm.current.year,e,t.vm.current.day)},t.vm.updateDay=function(e){t.vm.update(t.vm.current.year,t.vm.current.month,e)},t.vm.forwardYears=function(e){t.vm.tempYear+=e,t.vm.paintYears()},t.vm.backwardYears=function(e){t.vm.tempYear-=e,t.vm.paintYears()},t.vm.switch=function(e){t.mode=e},t.vm.getMonthName=function(){return t.vm.calendar.monthNames[t.vm.tempMonth-1]},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),n.isUndefined(t.mode)&&(t.mode="days"),n.isUndefined(t.culture)&&(t.culture=e.lang),n.isUndefined(t.model)&&(t.model=new Date),t.vm.bind()},t.vm.update=function(e,n,i){t.vm.current.year=e,t.vm.current.month=n,t.vm.current.day=i,t.vm.tempYear=e,t.vm.tempMonth=n,t.model=t.vm.current.toDate(),t.onChanged&&t.onChanged(t.model,t.tag)},t.vm.bind=function(){switch(t.culture.toLowerCase()){case"fa":this.calendar=PersianCalendar;break;case"ar":this.calendar=HijriCalendar;break;default:this.calendar=GregorianCalendar}t.vm.current=new this.calendar(t.model),t.vm.today=new this.calendar(new Date),t.vm.update(t.vm.current.year,t.vm.current.month,t.vm.current.day),t.$watch("mode",function(e){switch((e||"").toLowerCase()){case"days":t.vm.paintDays();break;case"years":t.vm.paintYears()}})},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("captchaService",["apiService",function(e){return{get:function(){return e.get("captcha/generate")}}}]).directive("captcha",["captchaService",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",triggerRefresh:"=?",model:"=?"},templateUrl:"/templates/framework/directives/captcha/template.html",link:function(t,i,o){t.vm={},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),n.isUndefined(t.model)&&(t.model={value:"",key:""}),t.vm.bind(),t.vm.refresh()},t.vm.refresh=t.triggerRefresh=function(){t.vm.waiting=!0,e.get().then(function(e){t.vm.waiting=!1,e.status&&(t.vm.image="data:image/png;base64,"+e.data.image,t.model.key=e.data.key,t.model.value="")})},t.vm.bind=function(){},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("checkbox",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",triggerOnInit:"=?",onChange:"<?",disabled:"=?",visible:"=?",cssClass:"=?",labelTranslate:"<?",label:"<?",model:"=?"},templateUrl:"/templates/framework/directives/checkbox/template.html",link:function(e,t,i){e.vm={initialized:!1},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.model)&&(e.model=!1),e.vm.bind()},e.vm.toggle=function(n){n.stopPropagation(),n.preventDefault(),e.disabled||(e.model=!e.model)},e.vm.bind=function(){e.$watch("model",function(t,i){(e.vm.initialized||(e.vm.initialized=!0,e.triggerOnInit))&&e.vm.initialized&&n.isFunction(e.onChange)&&e.onChange(e.model,e.tag)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("crumbNav",["$document","cultureService",function(o,a){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",waiting:"=?",onSelect:"=?",onRefresh:"=?",model:"=?"},templateUrl:"/templates/framework/directives/crumb-nav/template.html",link:function(r,l,d){r.vm={rtl:a.rtl},r.vm.init=function(){n.isUndefined(r.disabled)&&(r.disabled=!1),n.isUndefined(r.visible)&&(r.visible=!0),n.isUndefined(r.cssClass)&&(r.cssClass=""),n.isUndefined(r.model)&&(r.model=[]),r.vm.bind()},r.vm.bind=function(){o.on("click",r.vm.closeElseWhere),r.$on("$destroy",function(){o.off("click",r.vm.closeElseWhere),e(i).off("resize",r.vm.calculateWidth)}),r.$watch("model",function(){r.vm.calculateWidth()}),e(i).on("resize",r.vm.calculateWidth)},r.vm.onRoot=function(){n.isFunction(r.onSelect)&&r.onSelect({path:"/"})},r.vm.onAction=function(e){e.action&&e.action(e),n.isFunction(r.onSelect)&&r.onSelect(e)},r.vm.closeElseWhere=function(){r.$timeout(function(){r.vm.collapse()})},r.vm.collapse=function(e){r.model.forEach(function(n){n!==e&&(n.expand=!1)})},r.vm.onExpand=function(e,n){n.stopPropagation(),n.preventDefault(),r.vm.collapse(e),void 0===e.expand&&(e.expand=!1),e.expand=!e.expand},r.vm.calculateWidth=t.debounce(function(){var n=0;l.find(".root-folder").each(function(t,i){n+=e(i).width(),n+=10});var t=l.find(".path-inner-container");t.width()>=n?(t.removeClass("slide"),r.vm.currentPosition=0,l.find(".root-folders").css({left:r.vm.currentPosition})):(t.addClass("slide"),r.vm.currentPosition=25,l.find(".root-folders").css({width:n,left:r.vm.currentPosition})),r.vm.available=t.width(),r.vm.totalWidth=n,r.vm.gap=r.vm.totalWidth-r.vm.available},300),r.vm.scrollLeft=function(){r.vm.currentPosition-100>=-25?r.vm.currentPosition-=100:r.vm.currentPosition=-25;var e={};a.rtl?e.left=r.vm.currentPosition:e.left=-r.vm.currentPosition,l.find(".root-folders").css(e)},r.vm.scrollRight=function(){r.vm.currentPosition+100<=r.vm.gap?r.vm.currentPosition+=100:r.vm.currentPosition=r.vm.gap;var e={};a.rtl?e.left=r.vm.currentPosition:e.left=-r.vm.currentPosition,l.find(".root-folders").css(e)},r.vm.refresh=function(){n.isFunction(r.onRefresh)&&r.onRefresh()},r.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("datePicker",["$document",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",culture:"=?",format:"=?",onChange:"=?",model:"=?"},templateUrl:"/templates/framework/directives/date-picker/template.html",link:function(t,i,o){t.vm={showPlate:!1,model:t.model},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),t.vm.bind()},t.vm.onChange=function(e,n){t.model=e,t.onChange&&t.onChange(e,n)},t.vm.closeElseWhere=function(e){t.$apply(function(){t.vm.showPlate=!1})},t.vm.prevent=function(e){e.stopPropagation(),e.preventDefault()},t.vm.toggle=function(){t.disabled||(t.vm.showPlate=!t.vm.showPlate)},t.vm.bind=function(){t.$on("$destroy",function(){e.off("click",t.vm.closeElseWhere)}),e.on("click",t.vm.closeElseWhere)},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("dropdownService",["apiService",function(e){return{get:function(n,t){return e(n,t)}}}]).directive("dropdown",["$document","$filter","dropdownService",function(e,t,i){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",model:"=?",textField:"=?",valueField:"=?",items:"=?",backend:"=?",onChange:"=?",placeHolder:"=?",placeHolderTranslate:"=?",backendData:"=?"},templateUrl:"/templates/framework/directives/dropdown/template.html",link:function(o,a,r){o.vm={plate:!1,waiting:!1,selectedItemText:""},o.vm.init=function(){n.isUndefined(o.disabled)&&(o.disabled=!1),n.isUndefined(o.visible)&&(o.visible=!0),n.isUndefined(o.items)&&(o.items=[]),n.isUndefined(o.cssClass)&&(o.cssClass=""),n.isUndefined(o.textField)&&(o.textField="text"),n.isUndefined(o.valueField)&&(o.valueField="value"),o.vm.bind()},o.vm.closeElseWhere=function(e){o.$apply(function(){o.vm.plate=!1})},o.vm.prevent=function(e){e.stopPropagation(),e.preventDefault()},o.vm.getText=function(){return void 0===o.model||null===o.model?t("textOrTranslate")(o.placeHolder,o.placeHolderTranslate):o.vm.selectedItemText},o.vm.toggle=function(){o.disabled||(o.vm.plate=!o.vm.plate)},o.vm.bind=function(){o.$on("$destroy",function(){e.off("click",o.vm.closeElseWhere)}),e.on("click",o.vm.closeElseWhere),o.$watch("model",function(e,t){n.isFunction(o.onChange)&&o.onChange(e,o.tag)}),o.$watch("backend",o.vm.transport)},o.vm.transport=function(e){e&&(o.vm.waiting=!0,i.get(e,o.backendData).then(function(e){o.vm.waiting=!1,e.status&&(o.items=e.data||[])}))},o.vm.onPick=function(e){o.disabled||(o.model=e[o.valueField],o.vm.selectedItemText=e[o.textField],o.vm.plate=!1)},o.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("editorService",["$q",function(e){return function(){return e(function(e,n){if(i.CKEDITOR)return void e();$script("/framework/vendor/ckeditor/ckeditor.js",function(){e()})})}}]).directive("editor",["editorService","commonService","modalService","fileService",function(e,t,o,a){var r=!1;return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",instance:"=?",model:"=?"},templateUrl:"/templates/framework/directives/editor/template.html",link:function(l,d,s){l.vm={uuid:t.uuid()},l.vm.init=function(){n.isUndefined(l.disabled)&&(l.disabled=!1),n.isUndefined(l.visible)&&(l.visible=!0),n.isUndefined(l.cssClass)&&(l.cssClass=""),l.vm.bind()},l.vm.setup=function(){r||(i.CKEDITOR.on("dialogDefinition",function(e){var n=e.data.name,i=e.data.definition;if("image"===n)for(var r=0;r<i.contents.length;r++){var l=i.contents[r].get("browse");null!==l&&(l.hidden=!1,l.onClick=function(e,n){o.dialog({titleTranslate:"editor.fileManager",template:'<file-manager multiple-selection="false" model="vm.selectedFiles"></file-manager>',data:{},onAccept:function(n){return t.$q(function(t,i){return n.vm.selectedFiles&&n.vm.selectedFiles.length&&a.isImage(n.vm.selectedFiles[0].path)?(e.data.dialog.getContentElement("info","txtUrl").setValue(n.vm.selectedFiles[0].path),void t()):void i()})}})})}}),r=!0)},l.vm.bind=function(){e().then(function(){l.vm.setup(),l.instance=i.CKEDITOR.replace(l.vm.uuid,{language:t.culture.lang}),l.instance.on("change",function(){l.$apply(function(){l.model=l.instance.getData()})})}),l.$on("$destroy",function(){l.instance&&l.instance.destroy()})},l.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("fileExplorer",["$document","translateService","fileService",function(e,t,i){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",items:"=?",search:"=?",onDoubleSelect:"=?",onSelect:"=?",onParent:"=?",path:"=?",multipleSelection:"=?",newFolder:"=?",onNewFolder:"<?",onRename:"<?",mode:"=?",model:"=?"},templateUrl:"/templates/framework/directives/file-explorer/template.html",link:function(o,a,r){o.vm={newFolder:"",creating:!1,namePlate:!1,datePlate:!1,typePlate:!1,sizePlate:!1},o.vm.init=function(){n.isUndefined(o.disabled)&&(o.disabled=!1),n.isUndefined(o.multipleSelection)&&(o.multipleSelection=!1),n.isUndefined(o.visible)&&(o.visible=!0),n.isUndefined(o.cssClass)&&(o.cssClass=""),n.isUndefined(o.mode)&&(o.mode="large"),n.isUndefined(o.items)&&(o.items=[]),n.isUndefined(o.model)&&(o.model=[]),o.vm.bind()},o.vm.showSort=function(e,n){o.vm.closeElseWhere(n),o.vm[e]=!0},o.vm.closeElseWhere=function(e){o.vm.prevent(e),o.vm.namePlate=!1,o.vm.datePlate=!1,o.vm.typePlate=!1,o.vm.sizePlate=!1},o.vm.onNewFolder=function(){o.disabled||o.vm.creating||o.onNewFolder&&(o.vm.creating=!0,o.onNewFolder(o.vm.newFolder).then(function(){o.vm.newFolder="",o.newFolder=!1,o.vm.creating=!1},function(){o.vm.creating=!1}))},o.vm.onRename=function(e){o.disabled||o.vm.creating||e.name!==e.newName&&e.newName&&o.onRename&&(e.updating=!0,o.onRename(e).then(function(){e.updating=!1,e.editting=!1},function(){e.updating=!1}))},o.vm.onSort=function(e,n,t){t.stopPropagation(),t.preventDefault()},o.vm.onParent=function(){n.isFunction(o.onParent)&&o.onParent()},o.vm.getIcon=function(e){return e.folder?"af-icon-folder":"af-icon-{0} af-icon-file".format([i.getExtention(e.path).replace(".","")])},o.vm.prevent=function(e){e.stopPropagation(),e.preventDefault()},o.vm.onDoubleClick=function(e,t){o.vm.prevent(t),n.isFunction(o.onDoubleSelect)&&o.onDoubleSelect(e)},o.vm.unSelect=function(){o.newFolder=!1,o.vm.newFolder="",o.model&&o.model.length&&!o.model[0].updating&&(o.model[0].editting=!1,o.model[0].updating=!1),o.model=[],o.items.forEach(function(e){e.selected=!1}),n.isFunction(o.onSelect)&&o.onSelect(o.model)},o.vm.onClick=function(e,t){if(o.vm.prevent(t),t.ctrlKey||macKeys.ctrlKey){if(!o.multipleSelection)return;e.selected?(e.selected=!1,o.model.del(e)):(e.selected=!0,o.model.push(e))}else o.items.forEach(function(n){n.selected=e===n}),o.model=[e];n.isFunction(o.onSelect)&&o.onSelect(o.model)},o.vm.getExtention=function(e){return e.folder?t("general.folder"):i.getExtention(e.path)},o.vm.bind=function(){e.on("click",o.vm.closeElseWhere),o.$on("$destroy",function(){e.off("click",o.vm.closeElseWhere)})},o.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("fileManagerService",["apiService",function(e){var n=function(e,n){return"{0}/{1}".format([e||"file-manager",n]).replace(/\/\//g,"/")};return{listDirectory:function(t,i){var o=n(t,"listDirectory");return e.post(o,{path:i})},newFolder:function(t,i,o){var a=n(t,"newFolder");return e.post(a,{path:o,name:i})},rename:function(t,i,o){var a=n(t,"rename");return e.post(a,{path:o,name:i.name,newName:i.newName})},delete:function(t,i){var o=n(t,"delete");return e.post(o,{items:i})},moveCopy:function(t,i){var o=n(t,"moveCopy");return e.post(o,i)},upload:function(t,i){var o=n(t,"upload");return e.upload(o,i)}}}]).directive("fileManager",["$q","fileManagerService","fileService","modalService","notificationService",function(t,i,a,r,l){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",toolbar:"=?",toolbarActions:"=?",toolbarActionsTitle:"<?",toolbarActionsTitleTranslate:"<?",toolbarTitle:"<?",toolbarTitleTranslate:"<?",searchTitle:"<?",searchTitleTranslate:"<?",multipleSelection:"=?",backend:"=?",uploadPattern:"=?",uploadAccept:"=?",uploadMultiple:"=?",uploadMaxSize:"=?",model:"=?"},templateUrl:"/templates/framework/directives/file-manager/template.html",link:function(d,s,c){d.vm={clipboard:null,treeToggle:!0,waiting:!1,path:"/",search:"",newFolder:!1,uploadPercent:0,uploading:!1,ribbon:void 0,tree:[],fileExplorer:[],crumbNav:[],uploadInput:null},d.vm.init=function(){n.isUndefined(d.disabled)&&(d.disabled=!1),n.isUndefined(d.visible)&&(d.visible=!0),n.isUndefined(d.cssClass)&&(d.cssClass=""),n.isUndefined(d.toolbar)&&(d.toolbar=!1),n.isUndefined(d.model)&&(d.model=[]),d.vm.bind()},d.vm.bind=function(){d.vm.uploadInput=e(o.createElement("input")),d.vm.uploadInput.attr("type","file"),d.vm.uploadInput.attr("multiple","multiple"),d.vm.uploadInput.on("change",function(e){d.$timeout(function(){d.vm.uploading=!0,d.vm.uploadPercent=0}),i.upload(d.backend,{data:{uploadedFiles:e.target.files,path:d.vm.path},onSuccess:function(e){d.$timeout(function(){d.vm.uploading=!1,d.vm.uploadPercent=0,d.vm.refresh()}),l.success("general.success")},onError:function(e){d.$timeout(function(){d.vm.uploading=!1,d.vm.uploadPercent=0}),l.error("general.error")},onProgress:function(e){d.$timeout(function(){d.vm.uploadPercent=e})}})}),d.$watchCollection("model",function(e,n){if(e||n)return e&&e.length?void d.vm.updateRibbon(e[0].folder):void d.vm.updateRibbon()}),d.vm.refresh()},d.vm.updateRibbon=function(e){d.vm.ribbon[0].enabled=!1,d.vm.ribbon[1].enabled=null!==d.vm.clipboard,d.vm.ribbon[2].enabled=!1,d.vm.ribbon[3].enabled=!1,d.vm.ribbon[4].enabled=!1,d.vm.ribbon[5].enabled=!0,d.vm.ribbon[6].enabled=!1,d.vm.ribbon[7].enabled=!0,d.vm.ribbon[8].enabled=!1,d.vm.ribbon[9].enabled=!1,d.vm.ribbon[10].enabled=!1,d.vm.ribbon[11].enabled=!1,void 0!==e&&(d.vm.ribbon[0].enabled=!0,d.vm.ribbon[1].enabled=!1,d.vm.ribbon[2].enabled=!0,d.vm.ribbon[3].enabled=!0,d.vm.ribbon[4].enabled=!0,d.vm.ribbon[10].enabled=!0,e||(d.vm.ribbon[6].enabled=!0,d.vm.ribbon[8].enabled=!0,d.vm.ribbon[9].enabled=!0,".zip"===a.getExtention(d.model[0].path)&&(d.vm.ribbon[11].enabled=!0)))},d.vm.toggleExplorer=function(e){e&&(e.stopPropagation(),e.preventDefault()),d.vm.treeToggle=!d.vm.treeToggle},d.vm.onRibbonAction=function(e){switch(d.$eval(e.key)){case"select-all":d.vm.fileExplorer.forEach(function(e){e.selected=!0});break;case"select-none":d.vm.fileExplorer.forEach(function(e){e.selected=!1});break;case"select-invert":d.vm.fileExplorer.forEach(function(e){e.selected=!e.selected});break;case"navigation-pane":d.vm.toggleExplorer();break;case"xlarge-icons":d.vm.mode="x-large";break;case"medium-icons":d.vm.mode="medium";break;case"details-icons":d.vm.mode="detailed";break;case"large-icons":d.vm.mode="large";break;case"small-icons":d.vm.mode="small";break;case"tiles-icons":d.vm.mode="tiles";break;case"copy":d.vm.onCopyCommand();break;case"paste":d.vm.onPasteCommand();break;case"cut":d.vm.onCutCommand();break;case"delete":d.vm.onDeleteCommand();break;case"rename":d.vm.onRenameCommand();break;case"new-folder":d.vm.newFolder=!0;break;case"upload":d.vm.onUploadCommand();break;case"download":d.vm.onDownloadCommand();break;case"open":d.vm.onOpenCommand();break;case"preview":d.vm.onPreviewCommand();break;case"zip":d.vm.onZipCommand();break;case"extract-all":d.vm.onExtractAllCommand();break;case"extract-seprate":d.vm.onExtractSeprateCommand()}},d.vm.onUploadCommand=function(){d.vm.uploadInput.trigger("click")},d.vm.onDownloadCommand=function(){},d.vm.onOpenCommand=function(){},d.vm.onPreviewCommand=function(){},d.vm.onZipCommand=function(){},d.vm.onExtractAllCommand=function(){},d.vm.onExtractSeprateCommand=function(){},d.vm.onCopyCommand=function(){d.model&&1===d.model.length&&(d.vm.clipboard={mode:"copy",source:d.model.pluck("path")},d.vm.ribbon[1].enabled=!0,d.model.forEach(function(e){e.selected=!1}),d.model=[])},d.vm.onPasteCommand=function(){var e={};n.extend(e,d.vm.clipboard),e.destination=d.vm.path,d.vm.clipboard=null,d.vm.ribbon[1].enabled=!1,i.moveCopy(d.backend,e).then(function(e){if(!e.data.status)return void l.error("general.failed");d.vm.refresh()})},d.vm.onCutCommand=function(){d.model&&1===d.model.length&&(d.vm.clipboard={mode:"move",source:d.model.pluck("path")},d.vm.ribbon[1].enabled=!0,d.model.forEach(function(e){e.selected=!1}),d.model=[])},d.vm.onRenameCommand=function(){d.model&&1===d.model.length&&(d.model[0].newName=d.model[0].name,d.model[0].editting=!0)},d.vm.onDeleteCommand=function(){var e=d.model.copy();r.confirm({titleTranslate:"general.confirm_delete_title",messageTranslate:"general.confirm_delete_message"}).then(function(n){n&&i.delete(d.backend,e.pluck("path")).then(function(n){if(!n.data.status)return void l.error("general.failed");e.forEach(function(e){-1!==n.data.data.indexOf(e.path)&&(d.model.del(e),d.vm.fileExplorer.del(e))})})})},d.vm.onNodeExpand=function(e){e.waiting||e.items&&e.item.length||e.folder&&(e.waiting=!0,i.listDirectory(d.backend,e.path).then(function(n){n.data.status&&(e.expanded=!0,e.items=n.data.data.content.filter(function(e){return e.folder}).map(function(e){return{title:e.name,expandable:!0,path:e.path,folder:!0}})),e.waiting=!1}))},d.vm.onNodeSelect=function(e){e.items&&e.items.length||e.folder&&(d.vm.path=e.path,d.vm.refresh())},d.vm.onCrumbFolderPicked=function(e){d.vm.path=e.path,d.vm.refresh()},d.vm.onCrumbRefresh=function(){d.vm.refresh()},d.vm.onExplorerParent=function(){2===d.vm.crumbNav.length?(d.vm.path="/",d.vm.refresh()):d.vm.crumbNav.length>2&&d.vm.onCrumbFolderPicked(d.vm.crumbNav.length-3)},d.vm.onExplorerDoubleSelect=function(e){e.folder&&(d.vm.path=e.path,d.vm.refresh())},d.vm.onExplorerSelect=function(e){d.model=e},d.vm.onExplorerNewFolder=function(e){return t(function(n,t){i.newFolder(d.backend,e,d.vm.path).then(function(e){if(!e.data.status)return l.error(e.data.error.name[0]),void t();d.vm.fileExplorer.push(e.data.data),n()})})},d.vm.onExplorerRename=function(e){return t(function(n,t){i.rename(d.backend,e,d.vm.path).then(function(i){if(!i.data.status)return l.error(i.data.error.name[0]),void t();e.path.replace(e.name,e.newName),e.name=e.newName,e.newName="",n()})})},d.vm.onAction=function(e){e.action&&e.action(e)},d.vm.refresh=function(){d.vm.waiting=!0,i.listDirectory(d.backend,d.vm.path).then(function(e){e.data.status&&(d.vm.path=e.data.data.path,d.vm.fileExplorer=e.data.data.content,d.vm.crumbNav=[],"/"===d.vm.path?d.vm.tree=e.data.data.content.filter(function(e){return e.folder}).map(function(e){return{title:e.name,expandable:!0,path:e.path,folder:!0}}):d.vm.generateCrumb()),d.vm.waiting=!1})},d.vm.generateCrumb=function(){for(var e=d.vm.path.split("/"),n=1;n<e.length;n++)d.vm.crumbNav.push({path:e.concat([]).splice(0,n+1).join("/"),title:e[n]})},d.vm.prepareUpload=function(e){},d.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("filePickerService",["apiService",function(e){return function(e,n,t,i){}}]).directive("filePicker",["translateService","filePickerService",function(e,t){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",backend:"=?",backendData:"=?",backendKey:"=?",maxSize:"=?",accept:"=?",pattern:"=?",multiple:"=?",preview:"=?",onSuccess:"<?",onError:"<?",onProgress:"<?",model:"=?"},templateUrl:"/templates/framework/directives/file-picker/template.html",link:function(i,o,a){i.vm={uploading:!1,uploadPercent:0},i.vm.init=function(){n.isUndefined(i.disabled)&&(i.disabled=!1),n.isUndefined(i.multiple)&&(i.multiple=!1),n.isUndefined(i.preview)&&(i.preview=!0),n.isUndefined(i.visible)&&(i.visible=!0),n.isUndefined(i.cssClass)&&(i.cssClass=""),n.isUndefined(i.pattern)&&(i.pattern=""),n.isUndefined(i.accept)&&(i.accept=""),n.isUndefined(i.backendKey)&&(i.backendKey="$uploadedFiles"),n.isUndefined(i.model)&&(i.model=[]),n.isUndefined(i.maxSize)&&(i.maxSize="20MB"),i.vm.bind()},i.vm.onSelect=function(e){var n={};n[i.backendKey]=e,i.backend&&(i.vm.uploading=!0,i.vm.uploadPercent=0,t(i.backend,n,i.backendData,{onSuccess:function(e){i.vm.uploading=!1,i.onSuccess&&i.onSuccess(e,i.tag)},onError:function(e){i.vm.uploading=!1,i.onError&&i.onError(e,i.tag)},onProgress:function(e,n,t){i.vm.uploadPercent=e,i.onProgress&&i.onProgress(e,n,t,i.tag)}}))},i.vm.remove=function(e){i.disabled||i.model.del(e)},i.vm.onChange=function(e,n,t,o,a,r){i.model=e},i.vm.bind=function(){},i.vm.getText=function(){return i.model&&i.model.length?i.multiple?i.model.pluck("name").join(", "):i.model[0].name:e("general.noFileSelected")},i.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("filePickerServerService",["apiService",function(e){var n=function(e,n){return"{0}/{1}".format([e||"file-explorer",n]).replace(/\/\//g,"/")};return{listDirectory:function(t,i){var o=n(t,"listDirectory");return e.post(o,{path:i})}}}]).directive("filePickerServer",["$document","filePickerServerService",function(e,t){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",placeHolderTranslate:"=?",placeHolder:"=?",backend:"=?",model:"=?"},templateUrl:"/templates/framework/directives/file-picker-server/template.html",link:function(i,o,a){i.vm={path:"/",plate:!1},i.vm.init=function(){n.isUndefined(i.disabled)&&(i.disabled=!1),n.isUndefined(i.visible)&&(i.visible=!0),n.isUndefined(i.cssClass)&&(i.cssClass=""),n.isUndefined(i.model)&&(i.model=""),i.vm.bind(),i.vm.refresh()},i.vm.closeElseWhere=function(e){i.$apply(function(){i.vm.plate=!1})},i.vm.prevent=function(e){e.stopPropagation(),e.preventDefault()},i.vm.refresh=function(){i.vm.waiting=!0,t.listDirectory(i.backend,i.vm.path).then(function(e){e.data.status&&(i.vm.path=e.data.data.path,i.vm.fileExplorer=e.data.data.content,"/"===i.vm.path&&(i.vm.tree=e.data.data.content.filter(function(e){return e.folder}).map(function(e){return{title:e.name,expandable:!0,path:e.path,folder:!0}}))),i.vm.waiting=!1})},i.vm.togglePlate=function(){i.disabled||(i.vm.plate=!i.vm.plate)},i.vm.bind=function(){i.$on("$destroy",function(){e.off("click",i.vm.closeElseWhere)}),e.on("click",i.vm.closeElseWhere)},i.vm.onNodeExpand=function(e){e.waiting||e.items&&e.item.length||e.folder&&(e.waiting=!0,t.listDirectory(i.backend,e.path).then(function(n){n.data.status&&(e.expanded=!0,e.items=n.data.data.content.filter(function(e){return e.folder}).map(function(e){return{title:e.name,expandable:!0,path:e.path,folder:!0}})),e.waiting=!1}))},i.vm.onNodeSelect=function(e){e.items&&e.items.length||e.folder&&(i.vm.path=e.path,i.vm.refresh())},i.vm.onExplorerParent=function(){var e=i.vm.path.split("/");e.pop(),i.vm.path=e.join("/"),i.vm.refresh()},i.vm.onExplorerDoubleSelect=function(e){e.folder&&(i.vm.path=e.path,i.vm.refresh())},i.vm.onExplorerSelect=function(e){e[0].folder||(i.model=e[0].path)},i.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("formElementsService",[function(){var n=["directive","label","labelTranslate"];return{generate:function(t){var i=e('<form class="generated-form-element"></form>');t=t||{},t.$groups=t.$groups||{"column-1":{size:"col-md-12"}};var o={};return Object.keys(t.$groups).forEach(function(n){var a=e('<div class="{0}"><div class="panel panel-white"> <div class="panel-heading"><h3 class="panel-title">{{:: {1}.title|textOrTranslate:{1}.titleTranslate }}</h3></div> <div class="panel-body"></div> </div></div>'.format([t.$groups[n].size||"col-md-12","$parent.model.$groups['{0}']".format([n])||"&nbsp;"]));o[n]=a.find(".panel-body"),i.append(a)}),Object.keys(t).forEach(function(i,a){if("$groups"!==i){void 0===t[i].visible&&(t[i].visible=!0),void 0===t[i].disabled&&(t[i].disabled=!1);var r=e("<div class='form-group'></div>");r.attr("ng-if","$parent.model['{0}'].visible".format([i]));var l=e("<label>{{::$parent.$parent.model['{0}'].label|textOrTranslate:$parent.$parent.model['{0}'].labelTranslate}}</label>".format([i]));r.append(l);var d=e("<{0}></{0}>".format([t[i].directive]));Object.keys(t[i]).forEach(function(e){-1===n.indexOf(e)&&d.attr(e.toKebabCase(),"$parent.$parent.model['{0}']['{1}']".format([i,e]))}),r.append(d),o[t[i].group||"column-1"].append(r)}}),i}}}]).directive("formElements",["$compile","$templateCache","formElementsService",function(t,i,o){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",model:"=?",waiting:"=?"},compile:function(){var i=e('<div ng-show="visible" class="af-form-elements af-component {{::cssClass}}"></div>');return{pre:function(e,a,r){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.waiting)&&(e.waiting=!1),e.vm.bind()},e.vm.bind=function(){a.append('<div ng-show="visible" class="af-form-elements af-component {{::cssClass}}"></div>'),e.$watch("model",e.vm.build)},e.vm.build=function(){var n=i.find(".generated-form-element");n.children().size()>0&&n.children().each(function(e,n){n.scope().destroy(),n.remove()});var r=o.generate(e.model);a.find(".af-form-elements").append(r),t(r)(e.$new(!0))},e.vm.init()}}}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("googleMapService",["$q",function(e){return function(){return e(function(e,n){if(i.google&&i.google.maps)return void e();var t="//maps.googleapis.com/maps/api/js?key="+i.achasoft.configuration.google.map.key;$script(t,function(){e()})})}}]).directive("googleMap",["googleMapService",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",zoom:"=?",center:"=?",mouseWheel:"=?",markers:"=?",polylines:"=?",polygons:"=?",markCenter:"=?",model:"=?"},templateUrl:"/templates/framework/directives/google-map/template.html",link:function(t,i,o){t.vm={waiting:!0,markers:[],polylines:[],polygons:[],canvas:i.find(".vw-google-map")[0]},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),n.isUndefined(t.zoom)&&(t.zoom=16),n.isUndefined(t.mouseWheel)&&(t.mouseWheel=!1),n.isUndefined(t.markCenter)&&(t.markCenter=!1),n.isUndefined(t.markers)&&(t.markers=[]),
n.isUndefined(t.center)&&(t.center={lat:51.5,lng:-.2}),n.isUndefined(t.polylines)&&(t.polylines=[]),n.isUndefined(t.polygons)&&(t.polygons=[]),n.isUndefined(t.model)&&(t.model=[]),t.markCenter&&t.markers.push(t.center),t.vm.bind(),e().then(function(){t.vm.waiting=!1,t.vm.create()})},t.vm.createPolyline=function(e){var n=new google.maps.Polyline({path:e.path,geodesic:e.geodesic,strokeColor:e.strokeColor||"#FF0000",strokeOpacity:e.strokeOpacity||1,strokeWeight:e.strokeWeight||2});return n.setMap(t.vm.instance),n},t.vm.createPolygon=function(e){var n=new google.maps.Polygon({paths:e.path,strokeColor:e.strokeColor||"#0000FF",strokeOpacity:e.strokeOpacity||1,strokeWeight:e.strokeWeight||2,fillColor:e.fillColor||"#FF0000",fillOpacity:e.fillOpacity||.35});return n.setMap(t.vm.instance),n},t.vm.createMarker=function(e){return new google.maps.Marker({draggable:!1,position:e?{lat:e.lat,lng:e.lng}:void 0,map:t.vm.instance,title:e?e.title||"&nbsp;":"&nbsp;"})},t.vm.pushMarker=function(e,n){var i;i=n?e:t.vm.createMarker(e),t.vm.markers.push(i)},t.vm.pushPolyline=function(e,n){var i;i=n?e:t.vm.createPolyline(e),t.vm.polylines.push(i)},t.vm.pushPolygon=function(e,n){var i;i=n?e:t.vm.createPolygon(e),t.vm.polygons.push(i)},t.vm.clearMarkers=function(){(t.vm.markers||[]).forEach(function(e){e.setMap(null)}),(t.vm.markers||[]).length=0},t.vm.clearPolylines=function(){(t.vm.polylines||[]).forEach(function(e){e.setMap(null)}),(t.vm.polylines||[]).length=0},t.vm.clearPolygons=function(){(t.vm.polygons||[]).forEach(function(e){e.setMap(null)}),(t.vm.polygons||[]).length=0},t.vm.create=function(){var e={center:new google.maps.LatLng(t.center.lat,t.center.lng),zoom:t.zoom,scrollwheel:t.mouseWheel};t.vm.instance=new google.maps.Map(t.vm.canvas,e),google.maps.event.addListener(t.vm.instance,"click",function(e){var n=t.vm.createMarker(null);n.setPosition(e.latLng),t.vm.pushMarker(n,!0)})},t.vm.bind=function(){t.$watch("markers",function(e){t.vm.instance&&(t.vm.clearMarkers(),(e||[]).forEach(function(e){t.vm.pushMarker(e)}))}),t.$watch("polylines",function(e){t.vm.instance&&(t.vm.clearPolylines(),(e||[]).forEach(function(e){t.vm.pushPolyline(e)}))}),t.$watch("polygons",function(e){t.vm.instance&&(t.vm.clearPolygons(),(e||[]).forEach(function(e){t.vm.pushPolygon(e)}))})},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("gridView",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",checkboxColumn:"=?",rows:"=?",columns:"=?"},templateUrl:"/templates/framework/directives/grid-view/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.bind=function(){},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("modalGeneratorService",["$q","$compile","$rootScope","$templateCache","commonService",function(n,t,i,o,a){var r=o.get("/templates/framework/directives/modal/template.html"),l=e(r);return function(r){return n(function(n,d){if(!r.template&&!r.templateUrl)return void d("no template provided!");var s=a.uuid(),c=l.clone();r.templateUrl&&(r.template=o.get(r.templateUrl)),r.controller&&c.find(".modal-body").attr("ng-controller",r.controller),c.find(".modal-body").append(r.template);var m=i.$new(!0),u=function(){var t=e("#"+s);t.detach(),m.$destroy(),t.remove(),n(!1)},v=function(t){var i=e("#"+s);i.detach(),n(t,m),m.$destroy(),i.remove()};m.title=r.title,m.titleTranslate=r.titleTranslate,m.message=r.message,m.messageTranslate=r.messageTranslate,m.uuid=s,m.data=r.data,m.vm={},m.vm.dismiss=function(){if(!r.onDismiss)return void u();var e=r.onDismiss(m);!0===e?u():e.then&&e.then(function(e){u()},function(){})},m.vm.accept=function(){if(!r.onAccept)return void v(!0);var e=r.onAccept(m);!0===e?v(!0):e.then&&(m.vm.waiting=!0,e.then(function(e){v(e),m.vm.waiting=!1},function(){m.vm.waiting=!1}))},e("body").append(c),t(c)(m)})}}]).factory("modalService",["modalGeneratorService",function(e){return{confirm:function(t){var i={title:void 0,titleTranslate:"general.default_confirm_title",message:void 0,messageTranslate:"general.default_confirm_message",template:void 0,templateUrl:"/templates/framework/directives/modal/confirm.html",controller:void 0,icon:void 0,data:void 0,onAccept:void 0,onDismiss:void 0};return n.extend(i,t),e(i)},dialog:function(t){var i={title:" ",titleTranslate:void 0,template:void 0,templateUrl:void 0,controller:void 0,icon:void 0,data:void 0,onAccept:void 0,onDismiss:void 0};return n.extend(i,t),e(i)}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("multiSelect",["$document",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",textField:"=?",valueField:"=?",placeHolderTranslate:"=?",placeHolder:"=?",items:"=?",model:"=?"},templateUrl:"/templates/framework/directives/multi-select/template.html",link:function(t,i,o){t.vm={plate:!1},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),n.isUndefined(t.textField)&&(t.textField="text"),n.isUndefined(t.valueField)&&(t.valueField="value"),n.isUndefined(t.model)&&(t.model=[]),n.isUndefined(t.items)&&(t.items=[]),n.isUndefined(t.readonly)&&(t.readonly=!1),t.vm.bind()},t.vm.closeElseWhere=function(e){t.$apply(function(){t.vm.plate=!1})},t.vm.prevent=function(e){e.stopPropagation(),e.preventDefault()},t.vm.onAdd=function(e,n){t.disabled||t.model.add(n)},t.vm.onDelete=function(e,n){e.preventDefault(),e.stopPropagation(),t.disabled||t.model.del(n)},t.vm.togglePlate=function(){t.disabled||t.readonly||(t.vm.plate=!t.vm.plate)},t.vm.bind=function(){t.$on("$destroy",function(){e.off("click",t.vm.closeElseWhere)}),e.on("click",t.vm.closeElseWhere)},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("numbox",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",required:"=?",triggerOnInit:"=?",readonly:"=?",model:"=?"},templateUrl:"/templates/framework/directives/numbox/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.required)&&(e.required=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),e.required&&n.isUndefined(e.model)&&(e.model=0),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.increase=function(){e.disabled||e.readonly||(e.model=parseInt(e.model||0)+1)},e.vm.decrease=function(){e.disabled||e.readonly||(e.model=parseInt(e.model||0)-1)},e.vm.bind=function(){e.$watch("model",function(t,i){(e.vm.initialized||(e.vm.initialized=!0,e.triggerOnInit))&&e.vm.initialized&&n.isFunction(e.onChange)&&e.onChange(e.model,e.tag)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("password",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",placeHolder:"=?",placeHolderTranslate:"=?",prependIcon:"=?",appendIcon:"=?",label:"=?",labelTranslate:"=?",model:"=?",onChanged:"<?",readonly:"=?"},templateUrl:"/templates/framework/directives/password/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.bind=function(){e.$watch("model",function(t,i){if(void 0===t||null===t)return void(e.model="");n.isFunction(e.onChanged)&&e.onChanged(e.model,e.tag,i)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("progressbar",[function(){return{restrict:"E",replace:!0,scope:{disabled:"=?",visible:"=?",cssClass:"=?",model:"=?"},templateUrl:"/templates/framework/directives/progressbar/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.model)&&(e.model=0),e.vm.bind()},e.vm.bind=function(){},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("radio",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",onChange:"<?",disabled:"=?",visible:"=?",cssClass:"=?",textField:"=?",valueField:"=?",triggerOnInit:"=?",items:"=?",inline:"=?",model:"=?"},templateUrl:"/templates/framework/directives/radio/template.html",link:function(e,t,i){e.vm={initialized:!1},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.inline)&&(e.inline=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.triggerOnInit)&&(e.triggerOnInit=!1),n.isUndefined(e.items)&&(e.items=[]),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.textField)&&(e.textField="text"),n.isUndefined(e.valueField)&&(e.valueField="value"),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.onPick=function(n){e.disabled||(e.model=n[e.valueField])},e.vm.bind=function(){e.$watch("model",function(t,i){(e.vm.initialized||(e.vm.initialized=!0,e.triggerOnInit))&&e.vm.initialized&&n.isFunction(e.onChange)&&e.onChange(e.model,e.tag,e.items)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("ribbonService",[function(){var n=function(e,n,t){return e.hasAttribute(n)?e.getAttribute(n):t},t=function(t){var i=[];return e(t).find("button").each(function(t,o){var a={title:n(o,"title",""),titleTranslate:n(o,"title-translate",null),icon:n(o,"icon",null),inline:n(o,"inline",!1),toggle:n(o,"toggle",!1),enabled:n(o,"enabled",!0),buttons:[],key:n(o,"key","")};e(o).find("sub-button").each(function(e,t){var i={title:n(t,"title",""),titleTranslate:n(t,"title-translate",null),icon:n(t,"icon",null),enabled:n(o,"enabled",!0)};a.buttons.push(i)}),i.push(a)}),i};return{parse:function(i){var o=[],a=[];return e(i).each(function(i,r){var l={title:n(r,"title",""),titleTranslate:n(r,"title-translate",null),icon:n(r,"icon",null),sections:[]};e(r).find("section").each(function(i,a){var r={title:n(a,"title",""),titleTranslate:n(a,"title-translate",null),name:n(a,"name",""),columns:[],buttons:[]},d=e(a).find("column");d.size()>0?d.each(function(e,n){var i=t(n);o.addRange(i),r.columns.push({buttons:i})}):(r.buttons=t(a),o.addRange(r.buttons)),l.sections.push(r)}),a.push(l)}),{steps:a,buttons:o}}}}]).directive("ribbon",["$templateCache","$compile","ribbonService","cultureService",function(o,a,r,l){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",onAction:"=?",buttons:"=?",model:"=?"},compile:function(d){var s=o.get("/templates/framework/directives/ribbon/template.html"),c=d.html();return d.empty(),{pre:function(o,d,m){o.vm={selectedStep:null},o.vm.init=function(){if(n.isUndefined(o.disabled)&&(o.disabled=!1),n.isUndefined(o.visible)&&(o.visible=!0),n.isUndefined(o.cssClass)&&(o.cssClass=""),n.isUndefined(o.buttons)&&(o.buttons=[]),n.isUndefined(o.steps)){var e=r.parse(c);o.steps=e.steps,o.buttons=e.buttons,o.steps.length&&o.vm.onPick(o.steps[0])}o.vm.compile(),o.vm.bind()},o.vm.getButtonClass=function(e){var n=["button"];o.$eval(e.enabled.toString())||n.push("disabled"),o.$eval(e.inline)&&n.push("inline"),o.$eval(e.toggle)&&n.push("toggle-button"),e.toggleState&&n.push("active");var t=o.$eval(e.cssClass);return t&&n.push(t),n.join(" ")},o.vm.onExpandButton=function(e,n){o.$eval(e.enabled.toString())&&(e.expand=!e.expand)},o.vm.onPick=function(e){o.disabled||(o.vm.selectedStep=e,o.vm.calculateWidth())},o.vm.calculateWidth=t.debounce(function(){var n=0;d.find(".section").each(function(t,i){n+=e(i).width(),n+=10});var t=d.find(".tabs-content");t.width()>=n?(t.removeClass("slide"),o.vm.currentPosition=0,d.find(".tab-content").css({left:o.vm.currentPosition,width:"auto"})):(t.addClass("slide"),o.vm.currentPosition=25,d.find(".tab-content").css({width:n,left:o.vm.currentPosition})),o.vm.available=t.width(),o.vm.totalWidth=n,o.vm.gap=o.vm.totalWidth-o.vm.available},300),o.vm.scrollLeft=function(){o.vm.currentPosition-100>=0?o.vm.currentPosition-=100:o.vm.currentPosition=0;var e={};l.rtl?e.left=o.vm.currentPosition:e.left=-o.vm.currentPosition,d.find(".tab-content").css(e)},o.vm.scrollRight=function(){o.vm.currentPosition+100<=o.vm.gap?o.vm.currentPosition+=100:o.vm.currentPosition=o.vm.gap;var e={};l.rtl?e.left=o.vm.currentPosition:e.left=-o.vm.currentPosition,d.find(".tab-content").css(e)},o.vm.compile=function(){var n=e(s);d.append(n),a(n)(o)},o.vm.bind=function(){o.$on("$destroy",function(){e(i).off("resize",o.vm.calculateWidth)}),o.$watch("steps",function(){o.vm.calculateWidth()}),e(i).on("resize",o.vm.calculateWidth)},o.vm.onAction=function(e){n.isFunction(o.onAction)&&o.onAction(e)},o.vm.init()}}}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("slider",["cultureService",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",step:"=?",min:"=?",max:"=?",from:"=?",to:"=?",dual:"=?",model:"=?"},templateUrl:"/templates/framework/directives/slider/template.html",link:function(t,i,o){t.vm={instance:null},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),n.isUndefined(t.min)&&(t.min=0),n.isUndefined(t.max)&&(t.max=100),n.isUndefined(t.step)&&(t.step=10),n.isUndefined(t.model)&&(t.model=0),n.isUndefined(t.dual)&&(t.dual=!1),t.vm.bind()},t.vm.update=function(e){!t.disabled&&t.vm.instance&&(t.min=e.min,t.max=e.max,t.from=e.from,t.to=e.to,t.model=e.from)},t.vm.updateBack=function(e){!t.disabled&&t.vm.instance&&t.vm.instance.update(e)},t.vm.bind=function(){i.find("input").ionRangeSlider({min:t.min,max:t.max,from:t.from||t.model,to:t.dual?t.to:void 0,type:t.dual?"double":"single",onStart:t.vm.update,onChange:t.vm.update,step:t.step,disable:t.disabled,prettify:function(n){if(!e.rtl)return n;var i=(t.min,t.max),o=n;return t.min<0?(0,i=t.max-t.min,o=n-t.min,(o=i-o)+t.min):n=t.max-n}}),t.$watch("disabled",function(e){t.vm.updateBack({disable:e})}),t.vm.instance=i.find("input").data("ionRangeSlider"),t.$on("$destroy",function(){t.vm.instance.destroy()})},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("switch",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",model:"=?"},templateUrl:"/templates/framework/directives/switch/template.html",link:function(e,t,i){e.vm={initialized:!1},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.toggle=function(n){n.stopPropagation(),n.preventDefault(),e.disabled||(e.model=!e.model)},e.vm.bind=function(){e.$watch("model",function(t,i){(e.vm.initialized||(e.vm.initialized=!0,e.triggerOnInit))&&e.vm.initialized&&n.isFunction(e.onChange)&&e.onChange(e.model,e.tag)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("tabsService",function(){var n=function(e,n,t){return e.hasAttribute(n)?e.getAttribute(n):t};return{parse:function(t){var i=[];return e(t).each(function(e,t){i.push({disabled:n(t,"disabled",!1),cssClass:n(t,"css-class",""),title:n(t,"title",""),titleTranslate:n(t,"title-translate",null),icon:n(t,"icon",null),onEnter:n(t,"on-enter",null),onEnterValidate:n(t,"on-enter-validate",null),onExit:n(t,"on-exit",null),onExitValidate:n(t,"on-exit-validate",null),content:t.innerHTML})}),i}}}).directive("tabs",["$compile","$templateCache","tabsService",function(t,i,o){return{restrict:"E",replace:!0,scope:{disabled:"=?",visible:"=?",cssClass:"=?",keepScope:"=?",position:"=?",onChanged:"<?",onEnter:"<?",onExit:"<?",triggerPick:"=?",preventPick:"=?",steps:"=?",model:"=?"},compile:function(a){var r=i.get("/templates/framework/directives/tabs/template.html"),l=a.html();return a.empty(),{pre:function(i,a,d){i.vm={},i.vm.init=function(){n.isUndefined(i.disabled)&&(i.disabled=!1),n.isUndefined(i.keepScope)&&(i.keepScope=!1),n.isUndefined(i.preventPick)&&(i.preventPick=!1),n.isUndefined(i.visible)&&(i.visible=!0),n.isUndefined(i.cssClass)&&(i.cssClass=""),n.isUndefined(i.position)&&(i.position="top"),n.isUndefined(i.steps)&&(i.steps=o.parse(l)),n.isUndefined(i.model)&&i.steps.length&&i.vm.onPick(i.steps[0]),i.vm.compile(),i.vm.bind()},i.vm.onExitValidate=function(){var e=i.$parent.$eval(i.model.onExitValidate);return!n.isFunction(e)||e(i.model)},i.vm.onEnterValidate=function(e){var t=!0,o=i.$parent.$eval(e.onEnterValidate);n.isFunction(o)&&(t=o(e)),!0===t?i.vm.setModel(e):t&&t.then&&t.then(function(){i.vm.setModel(e)},function(){})},i.vm.setModel=function(e){i.model=e},i.vm.prepareForPick=function(e,n){n.stopPropagation(),n.preventDefault(),i.preventPick||i.vm.onPick(e)},i.vm.onPick=i.triggerPick=function(e){if(!i.disabled&&!e.disabled){if(!i.model)return void i.vm.setModel(e);var n=i.vm.onExitValidate();!0===n?i.vm.onEnterValidate(e):n&&n.then&&n.then(function(){i.vm.onEnterValidate(e)},function(){})}},i.vm.bind=function(){i.$watch("model",function(e,t){if(e){if(t){var o=i.$parent.$eval(t.onExit);n.isFunction(o)&&o(t,e),n.isFunction(i.onExit)&&i.onExit(t,e)}var a=i.$parent.$eval(e.onEnter);n.isFunction(a)&&a(e),n.isFunction(i.onEnter)&&i.onEnter(e),n.isFunction(i.onChanged)&&i.onChanged(e)}}),i.$on("$destroy",function(){i.triggerPick=null})},i.vm.compile=function(){var n=e(r);a.append(n),t(n)(i)},i.vm.init()}}}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("tags",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",model:"=?"},templateUrl:"/templates/framework/directives/tags/template.html",link:function(e,t,i){e.vm={query:""},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.model)&&(e.model=[]),e.vm.bind()},e.vm.onAdd=function(){!e.disabled&&e.vm.query&&-1===e.model.indexOf(e.vm.query)&&(e.model.push(e.vm.query),e.vm.query="")},e.vm.onRemove=function(n){e.disabled||e.model.del(n)},e.vm.bind=function(){},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("textArea",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",placeHolder:"=?",placeHolderTranslate:"=?",model:"=?",resize:"=?",rows:"=?",onChanged:"<?",readonly:"=?"},templateUrl:"/templates/framework/directives/text-area/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.resize)&&(e.resize="none"),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.rows)&&(e.rows=5),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.bind=function(){e.$watch("model",function(t,i){if(void 0===t||null===t)return void(e.model="");n.isFunction(e.onChanged)&&e.onChanged(e.model,e.tag,i)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("textbox",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",placeHolder:"=?",placeHolderTranslate:"=?",prependIcon:"=?",appendIcon:"=?",label:"=?",labelTranslate:"=?",model:"=?",onChanged:"<?",readonly:"=?"},templateUrl:"/templates/framework/directives/textbox/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.bind=function(){e.$watch("model",function(t,i){if(void 0===t||null===t)return void(e.model="");n.isFunction(e.onChanged)&&e.onChanged(e.model,e.tag,i)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("tree",["recursion-helper","commonService",function(e,t){return{restrict:"E",replace:!0,scope:{tag:"<?",uuid:"=?",disabled:"=?",visible:"=?",cssClass:"=?",onDemand:"=?",items:"=?",model:"=?",selectedNode:"=?",onNodeSelect:"=?",onNodeExpand:"=?"},templateUrl:"/templates/framework/directives/tree/template.html",link:function(e,i,o){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.items)&&(e.items=[]),n.isUndefined(e.uuid)&&(e.uuid=t.uuid()),e.vm.bind()},e.vm.onNodeExpand=function(t){e.disabled||t.disabled||t.waiting||n.isFunction(e.onNodeExpand)&&e.onNodeExpand(t)},e.vm.onNodeSelect=function(t){e.disabled||t.disabled||t.waiting||(e.selectedNode&&(e.selectedNode.selected=!1,e.selectedNode=null),e.selectedNode=t,e.selectedNode.selected=!0,t.items&&t.items.length&&(t.expanded=!t.expanded),n.isFunction(e.onNodeSelect)&&e.onNodeSelect(t))},e.vm.bind=function(){e.$on(e.uuid,function(n,t){switch(t.type){case"node-select":e.vm.onNodeSelect(t.value);break;case"node-expand":e.vm.onNodeExpand(t.value);break;default:console.log("Unknown event type : ",t.type)}})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("treeContainer",["$rootScope","cultureService","recursion-helper",function(e,t,i){return{restrict:"E",replace:!0,scope:{uuid:"=",isRoot:"=",parent:"=",items:"=?"},templateUrl:"/templates/framework/directives/tree/tree-container.html",compile:function(o){return i.compile(o,function(i,o,a){i.vm={},i.vm.init=function(){n.isUndefined(i.disabled)&&(i.disabled=!1),n.isUndefined(i.visible)&&(i.visible=!0),n.isUndefined(i.cssClass)&&(i.cssClass=""),n.isUndefined(i.items)&&(i.items=[]),i.vm.bind()},i.vm.getNodeClass=function(e){return e.icon?e.icon:e.items&&e.items.length||e.expandable?"af-icon-folder":"af-icon-file"},i.vm.getNodeIcon=function(e){var n;return e.expanded?n="af-icon-chevron_down":(n=t.rtl?"af-icon-chevron_left":"af-icon-chevron_right",e.selected&&(n+="_hover")),n},i.vm.onPick=function(n,t){t.stopPropagation(),t.preventDefault(),e.$broadcast(i.uuid,{type:"node-select",value:n})},i.vm.onExpand=function(n,t){t.stopPropagation(),t.preventDefault(),e.$broadcast(i.uuid,{type:"node-expand",value:n})},i.vm.bind=function(){},i.vm.init()})}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("validation-messages",[function(){return{restrict:"E",replace:!0,scope:{model:"=?"},templateUrl:"/templates/framework/directives/validation-messages/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.model)&&(e.model=[])},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("waiting",[function(){return{restrict:"E",replace:!0,templateUrl:"/templates/framework/directives/waiting/template.html"}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").run(["$rootScope",function(e){Object.defineProperty(e,"$WizardContext",{get:function(){return this.$parent}})}]).directive("wizard",["$compile","$templateCache",function(t,i){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",nextText:"<?",nextTextTranslate:"=?",backText:"<?",backTextTranslate:"=?",keepScope:"=?",position:"=?",onChanged:"<?",onEnter:"<?",onExit:"<?",steps:"=?",model:"=?"},compile:function(o){var a=o.html();o.empty();var r=i.get("/templates/framework/directives/wizard/template.html"),l=e(r);return l.find("tabs").html(a),{pre:function(e,i,o){e.vm={currentIndex:0},e.vm.onNext=function(){var n=e.steps.indexOf(e.model),t=n+1;t!==e.steps.length&&e.vm.triggerPick&&e.vm.triggerPick(e.steps[t])},e.vm.onBack=function(){var n=e.steps.indexOf(e.model),t=n-1;-1!==t&&e.vm.triggerPick&&e.vm.triggerPick(e.steps[t])},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.nextTextTranslate)&&(e.nextTextTranslate="general.next"),n.isUndefined(e.backTextTranslate)&&(e.backTextTranslate="general.previous"),e.vm.compile(),e.vm.bind()},e.vm.compile=function(){i.append(l),t(l)(e)},e.vm.bind=function(){Object.defineProperty(e.vm,"nextDisabled",{get:function(){return e.vm.currentIndex===e.steps.length-1}}),Object.defineProperty(e.vm,"backDisabled",{get:function(){return 0===e.vm.currentIndex}}),e.$watch("model",function(t,i){n.isUndefined(t)||(e.vm.currentIndex=e.steps.indexOf(t))})},e.vm.init()}}}}}])}(jQuery,angular,_,window,document);
!function(e,n,t,i,o,a){"use strict";var r=n.module("frontend.directives");r.directive("showPanel",[function(){return{restrict:"A",link:function(e,n,t){var i=e.$eval(t.showPanel)||{},o=n.parent(),a=o.height()+(o.offset().top||i.top||0);n.css({position:"fixed",right:i.right||0,width:o.width()||i.width||"100%",height:i.height||200,top:a})}}}]),r.directive("onEnter",function(){return function(e,n,t){n.bind("keydown keypress",function(n){13===n.which&&(e.$apply(function(){e.$eval(t.onEnter,{event:n})}),n.preventDefault())})}}),r.directive("numberOnly",function(){return{require:"ngModel",link:function(e,n,t,i){function o(e){if(e){var n=e.replace(/[^0-9]/g,"");return n!==e&&(i.$setViewValue(n),i.$render()),n}return a}i.$parsers.push(o)}}})}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("accordionService",function(){var n=function(e,n,t){return e.hasAttribute(n)?e.getAttribute(n):t};return{parse:function(t){var i=[];return e(t).each(function(e,t){i.push({disabled:n(t,"disabled",!1),cssClass:n(t,"css-class",""),title:n(t,"title",""),titleTranslate:n(t,"title-translate",null),icon:n(t,"icon",null),onEnter:n(t,"on-enter",null),onExit:n(t,"on-exit",null),content:t.innerHTML})}),i}}}).directive("accordion",["$compile","$templateCache","accordionService",function(t,i,o){return{restrict:"E",replace:!0,scope:{disabled:"=?",visible:"=?",cssClass:"=?",onChanged:"<?",steps:"=?",model:"=?"},compile:function(a){var r=i.get("/templates/framework/directives/accordion/template.html"),l=a.html();return a.empty(),{pre:function(i,a,d){i.vm={},i.vm.init=function(){n.isUndefined(i.disabled)&&(i.disabled=!1),n.isUndefined(i.visible)&&(i.visible=!0),n.isUndefined(i.cssClass)&&(i.cssClass=""),n.isUndefined(i.steps)&&(i.steps=o.parse(l)),n.isUndefined(i.model)&&i.steps.length&&(i.model=i.steps[0]),i.vm.compile(),i.vm.bind()},i.vm.onPick=function(e){i.disabled||e.disabled||(i.model=e)},i.vm.bind=function(){i.$watch("model",function(e,t){if(e){var o=i.$eval(e.onEnter);if(n.isFunction(o)&&o(e),t){var a=i.$eval(t.onExit);n.isFunction(a)&&a(t,e)}n.isFunction(i.onChanged)&&i.onChanged(e)}})},i.vm.compile=function(){var n=e(r);a.append(n),t(n)(i)},i.vm.init()}}}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("calendar",["cultureService",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",culture:"=?",onChange:"=?",mode:"=?",model:"=?"},templateUrl:"/templates/framework/directives/calendar/template.html",link:function(t,i,o){t.vm={cultureService:e,calendar:null,current:null,tempMonth:0,tempYear:0,tempYears:[]},t.vm.setToday=function(){t.vm.update(t.vm.today.year,t.vm.today.month,t.vm.today.day),"days"!==t.mode?t.vm.switch("days"):t.vm.paintDays()},t.vm.paintDays=function(){for(var e=[],n=t.vm.tempMonth-1,i=0===n?11:n-1,o=t.vm.calendar.daysInMonth[i],a=t.vm.calendar.daysInMonth[n],r=11===n?0:n+1,l=0===r?t.vm.tempYear+1:t.vm.tempYear,d=t.vm.calendar.getMonthStartWeekDate(t.vm.tempYear,t.vm.tempMonth),s=11===i?t.vm.tempYear-1:t.vm.tempYear,c=o-d+t.vm.calendar.weekGap;c<=o;c++)e.push({year:s,month:i+1,number:c,old:!0});for(c=1;c<=a;c++)e.push({year:t.vm.tempYear,month:t.vm.tempMonth,number:c});var m=7-e.length%7;if(m)for(c=1;c<=m;c++)e.push({year:l,month:r+1,number:c,old:!0});t.vm.days=e.partition(7)},t.vm.paintYears=function(){for(var e=[],n=t.vm.tempYear-6;n<=t.vm.tempYear+5;n++)e.push(n);t.vm.tempYears=e},t.vm.forwardMonth=function(){12===t.vm.tempMonth?(t.vm.tempMonth=1,t.vm.tempYear++):t.vm.tempMonth++,t.vm.paintDays()},t.vm.backwardMonth=function(){1===t.vm.tempMonth?(t.vm.tempMonth=12,t.vm.tempYear--):t.vm.tempMonth--,t.vm.paintDays()},t.vm.updateYear=function(e){t.vm.update(e,t.vm.current.month,t.vm.current.day)},t.vm.updateMonth=function(e){t.vm.update(t.vm.current.year,e,t.vm.current.day)},t.vm.updateDay=function(e){t.vm.update(t.vm.current.year,t.vm.current.month,e)},t.vm.forwardYears=function(e){t.vm.tempYear+=e,t.vm.paintYears()},t.vm.backwardYears=function(e){t.vm.tempYear-=e,t.vm.paintYears()},t.vm.switch=function(e){t.mode=e},t.vm.getMonthName=function(){return t.vm.calendar.monthNames[t.vm.tempMonth-1]},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),n.isUndefined(t.mode)&&(t.mode="days"),n.isUndefined(t.culture)&&(t.culture=e.lang),n.isUndefined(t.model)&&(t.model=new Date),t.vm.bind()},t.vm.update=function(e,n,i){t.vm.current.year=e,t.vm.current.month=n,t.vm.current.day=i,t.vm.tempYear=e,t.vm.tempMonth=n,t.model=t.vm.current.toDate(),t.onChanged&&t.onChanged(t.model,t.tag)},t.vm.bind=function(){switch(t.culture.toLowerCase()){case"fa":this.calendar=PersianCalendar;break;case"ar":this.calendar=HijriCalendar;break;default:this.calendar=GregorianCalendar}t.vm.current=new this.calendar(t.model),t.vm.today=new this.calendar(new Date),t.vm.update(t.vm.current.year,t.vm.current.month,t.vm.current.day),t.$watch("mode",function(e){switch((e||"").toLowerCase()){case"days":t.vm.paintDays();break;case"years":t.vm.paintYears()}})},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("captchaService",["apiService",function(e){return{get:function(){return e.get("captcha/generate")}}}]).directive("captcha",["captchaService",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",triggerRefresh:"=?",model:"=?"},templateUrl:"/templates/framework/directives/captcha/template.html",link:function(t,i,o){t.vm={},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),n.isUndefined(t.model)&&(t.model={value:"",key:""}),t.vm.bind(),t.vm.refresh()},t.vm.refresh=t.triggerRefresh=function(){t.vm.waiting=!0,e.get().then(function(e){t.vm.waiting=!1,e.status&&(t.vm.image="data:image/png;base64,"+e.data.image,t.model.key=e.data.key,t.model.value="")})},t.vm.bind=function(){},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("checkbox",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",triggerOnInit:"=?",onChange:"<?",disabled:"=?",visible:"=?",cssClass:"=?",labelTranslate:"<?",label:"<?",model:"=?"},templateUrl:"/templates/framework/directives/checkbox/template.html",link:function(e,t,i){e.vm={initialized:!1},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.model)&&(e.model=!1),e.vm.bind()},e.vm.toggle=function(n){n.stopPropagation(),n.preventDefault(),e.disabled||(e.model=!e.model)},e.vm.bind=function(){e.$watch("model",function(t,i){(e.vm.initialized||(e.vm.initialized=!0,e.triggerOnInit))&&e.vm.initialized&&n.isFunction(e.onChange)&&e.onChange(e.model,e.tag)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("crumbNav",["$document","cultureService",function(o,a){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",waiting:"=?",onSelect:"=?",onRefresh:"=?",model:"=?"},templateUrl:"/templates/framework/directives/crumb-nav/template.html",link:function(r,l,d){r.vm={rtl:a.rtl},r.vm.init=function(){n.isUndefined(r.disabled)&&(r.disabled=!1),n.isUndefined(r.visible)&&(r.visible=!0),n.isUndefined(r.cssClass)&&(r.cssClass=""),n.isUndefined(r.model)&&(r.model=[]),r.vm.bind()},r.vm.bind=function(){o.on("click",r.vm.closeElseWhere),r.$on("$destroy",function(){o.off("click",r.vm.closeElseWhere),e(i).off("resize",r.vm.calculateWidth)}),r.$watch("model",function(){r.vm.calculateWidth()}),e(i).on("resize",r.vm.calculateWidth)},r.vm.onRoot=function(){n.isFunction(r.onSelect)&&r.onSelect({path:"/"})},r.vm.onAction=function(e){e.action&&e.action(e),n.isFunction(r.onSelect)&&r.onSelect(e)},r.vm.closeElseWhere=function(){r.$timeout(function(){r.vm.collapse()})},r.vm.collapse=function(e){r.model.forEach(function(n){n!==e&&(n.expand=!1)})},r.vm.onExpand=function(e,n){n.stopPropagation(),n.preventDefault(),r.vm.collapse(e),void 0===e.expand&&(e.expand=!1),e.expand=!e.expand},r.vm.calculateWidth=t.debounce(function(){var n=0;l.find(".root-folder").each(function(t,i){n+=e(i).width(),n+=10});var t=l.find(".path-inner-container");t.width()>=n?(t.removeClass("slide"),r.vm.currentPosition=0,l.find(".root-folders").css({left:r.vm.currentPosition})):(t.addClass("slide"),r.vm.currentPosition=25,l.find(".root-folders").css({width:n,left:r.vm.currentPosition})),r.vm.available=t.width(),r.vm.totalWidth=n,r.vm.gap=r.vm.totalWidth-r.vm.available},300),r.vm.scrollLeft=function(){r.vm.currentPosition-100>=-25?r.vm.currentPosition-=100:r.vm.currentPosition=-25;var e={};a.rtl?e.left=r.vm.currentPosition:e.left=-r.vm.currentPosition,l.find(".root-folders").css(e)},r.vm.scrollRight=function(){r.vm.currentPosition+100<=r.vm.gap?r.vm.currentPosition+=100:r.vm.currentPosition=r.vm.gap;var e={};a.rtl?e.left=r.vm.currentPosition:e.left=-r.vm.currentPosition,l.find(".root-folders").css(e)},r.vm.refresh=function(){n.isFunction(r.onRefresh)&&r.onRefresh()},r.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("datePicker",["$document",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",culture:"=?",format:"=?",onChange:"=?",model:"=?"},templateUrl:"/templates/framework/directives/date-picker/template.html",link:function(t,i,o){t.vm={showPlate:!1,model:t.model},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),t.vm.bind()},t.vm.onChange=function(e,n){t.model=e,t.onChange&&t.onChange(e,n)},t.vm.closeElseWhere=function(e){t.$apply(function(){t.vm.showPlate=!1})},t.vm.prevent=function(e){e.stopPropagation(),e.preventDefault()},t.vm.toggle=function(){t.disabled||(t.vm.showPlate=!t.vm.showPlate)},t.vm.bind=function(){t.$on("$destroy",function(){e.off("click",t.vm.closeElseWhere)}),e.on("click",t.vm.closeElseWhere)},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("dropdownService",["apiService",function(e){return{get:function(n,t){return e(n,t)}}}]).directive("dropdown",["$document","$filter","dropdownService",function(e,t,i){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",model:"=?",textField:"=?",valueField:"=?",items:"=?",backend:"=?",onChange:"=?",placeHolder:"=?",placeHolderTranslate:"=?",backendData:"=?"},templateUrl:"/templates/framework/directives/dropdown/template.html",link:function(o,a,r){o.vm={plate:!1,waiting:!1,selectedItemText:""},o.vm.init=function(){n.isUndefined(o.disabled)&&(o.disabled=!1),n.isUndefined(o.visible)&&(o.visible=!0),n.isUndefined(o.items)&&(o.items=[]),n.isUndefined(o.cssClass)&&(o.cssClass=""),n.isUndefined(o.textField)&&(o.textField="text"),n.isUndefined(o.valueField)&&(o.valueField="value"),o.vm.bind()},o.vm.closeElseWhere=function(e){o.$apply(function(){o.vm.plate=!1})},o.vm.prevent=function(e){e.stopPropagation(),e.preventDefault()},o.vm.getText=function(){return void 0===o.model||null===o.model?t("textOrTranslate")(o.placeHolder,o.placeHolderTranslate):o.vm.selectedItemText},o.vm.toggle=function(){o.disabled||(o.vm.plate=!o.vm.plate)},o.vm.bind=function(){o.$on("$destroy",function(){e.off("click",o.vm.closeElseWhere)}),e.on("click",o.vm.closeElseWhere),o.$watch("model",function(e,t){n.isFunction(o.onChange)&&o.onChange(e,o.tag)}),o.$watch("backend",o.vm.transport)},o.vm.transport=function(e){e&&(o.vm.waiting=!0,i.get(e,o.backendData).then(function(e){o.vm.waiting=!1,e.status&&(o.items=e.data||[])}))},o.vm.onPick=function(e){o.disabled||(o.model=e[o.valueField],o.vm.selectedItemText=e[o.textField],o.vm.plate=!1)},o.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("editorService",["$q",function(e){return function(){return e(function(e,n){if(i.CKEDITOR)return void e();$script("/framework/vendor/ckeditor/ckeditor.js",function(){e()})})}}]).directive("editor",["editorService","commonService","modalService","fileService",function(e,t,o,a){var r=!1;return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",instance:"=?",model:"=?"},templateUrl:"/templates/framework/directives/editor/template.html",link:function(l,d,s){l.vm={uuid:t.uuid()},l.vm.init=function(){n.isUndefined(l.disabled)&&(l.disabled=!1),n.isUndefined(l.visible)&&(l.visible=!0),n.isUndefined(l.cssClass)&&(l.cssClass=""),l.vm.bind()},l.vm.setup=function(){r||(i.CKEDITOR.on("dialogDefinition",function(e){var n=e.data.name,i=e.data.definition;if("image"===n)for(var r=0;r<i.contents.length;r++){var l=i.contents[r].get("browse");null!==l&&(l.hidden=!1,l.onClick=function(e,n){o.dialog({titleTranslate:"editor.fileManager",template:'<file-manager multiple-selection="false" model="vm.selectedFiles"></file-manager>',data:{},onAccept:function(n){return t.$q(function(t,i){return n.vm.selectedFiles&&n.vm.selectedFiles.length&&a.isImage(n.vm.selectedFiles[0].path)?(e.data.dialog.getContentElement("info","txtUrl").setValue(n.vm.selectedFiles[0].path),void t()):void i()})}})})}}),r=!0)},l.vm.bind=function(){e().then(function(){l.vm.setup(),l.instance=i.CKEDITOR.replace(l.vm.uuid,{language:t.culture.lang}),l.instance.on("change",function(){l.$apply(function(){l.model=l.instance.getData()})})}),l.$on("$destroy",function(){l.instance&&l.instance.destroy()})},l.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("fileExplorer",["$document","translateService","fileService",function(e,t,i){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",items:"=?",search:"=?",onDoubleSelect:"=?",onSelect:"=?",onParent:"=?",path:"=?",multipleSelection:"=?",newFolder:"=?",onNewFolder:"<?",onRename:"<?",mode:"=?",model:"=?"},templateUrl:"/templates/framework/directives/file-explorer/template.html",link:function(o,a,r){o.vm={newFolder:"",creating:!1,namePlate:!1,datePlate:!1,typePlate:!1,sizePlate:!1},o.vm.init=function(){n.isUndefined(o.disabled)&&(o.disabled=!1),n.isUndefined(o.multipleSelection)&&(o.multipleSelection=!1),n.isUndefined(o.visible)&&(o.visible=!0),n.isUndefined(o.cssClass)&&(o.cssClass=""),n.isUndefined(o.mode)&&(o.mode="large"),n.isUndefined(o.items)&&(o.items=[]),n.isUndefined(o.model)&&(o.model=[]),o.vm.bind()},o.vm.showSort=function(e,n){o.vm.closeElseWhere(n),o.vm[e]=!0},o.vm.closeElseWhere=function(e){o.vm.prevent(e),o.vm.namePlate=!1,o.vm.datePlate=!1,o.vm.typePlate=!1,o.vm.sizePlate=!1},o.vm.onNewFolder=function(){o.disabled||o.vm.creating||o.onNewFolder&&(o.vm.creating=!0,o.onNewFolder(o.vm.newFolder).then(function(){o.vm.newFolder="",o.newFolder=!1,o.vm.creating=!1},function(){o.vm.creating=!1}))},o.vm.onRename=function(e){o.disabled||o.vm.creating||e.name!==e.newName&&e.newName&&o.onRename&&(e.updating=!0,o.onRename(e).then(function(){e.updating=!1,e.editting=!1},function(){e.updating=!1}))},o.vm.onSort=function(e,n,t){t.stopPropagation(),t.preventDefault()},o.vm.onParent=function(){n.isFunction(o.onParent)&&o.onParent()},o.vm.getIcon=function(e){return e.folder?"af-icon-folder":"af-icon-{0} af-icon-file".format([i.getExtention(e.path).replace(".","")])},o.vm.prevent=function(e){e.stopPropagation(),e.preventDefault()},o.vm.onDoubleClick=function(e,t){o.vm.prevent(t),n.isFunction(o.onDoubleSelect)&&o.onDoubleSelect(e)},o.vm.unSelect=function(){o.newFolder=!1,o.vm.newFolder="",o.model&&o.model.length&&!o.model[0].updating&&(o.model[0].editting=!1,o.model[0].updating=!1),o.model=[],o.items.forEach(function(e){e.selected=!1}),n.isFunction(o.onSelect)&&o.onSelect(o.model)},o.vm.onClick=function(e,t){if(o.vm.prevent(t),t.ctrlKey||macKeys.ctrlKey){if(!o.multipleSelection)return;e.selected?(e.selected=!1,o.model.del(e)):(e.selected=!0,o.model.push(e))}else o.items.forEach(function(n){n.selected=e===n}),o.model=[e];n.isFunction(o.onSelect)&&o.onSelect(o.model)},o.vm.getExtention=function(e){return e.folder?t("general.folder"):i.getExtention(e.path)},o.vm.bind=function(){e.on("click",o.vm.closeElseWhere),o.$on("$destroy",function(){e.off("click",o.vm.closeElseWhere)}),o.$watch("mode",function(e){e=e||"large";var n=a.find(".details-mode li .details i");switch(n.removeClass("af-icon-20").removeClass("af-icon-40").removeClass("af-icon-50").removeClass("af-icon-70"),e){case"x-large":n.addClass("af-icon-70");break;case"large":n.addClass("af-icon-50");break;case"medium":n.addClass("af-icon-40");break;case"small":case"detailed":n.addClass("af-icon-20");break;case"tiles":n.addClass("af-icon-40")}})},o.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("fileManagerService",["apiService",function(e){var n=function(e,n){return"{0}/{1}".format([e||"file-manager",n]).replace(/\/\//g,"/")};return{getBackend:n,listDirectory:function(t,i){var o=n(t,"listDirectory");return e.post(o,{path:i})},newFolder:function(t,i,o){var a=n(t,"newFolder");return e.post(a,{path:o,name:i})},rename:function(t,i,o){var a=n(t,"rename");return e.post(a,{path:o,name:i.name,newName:i.newName})},delete:function(t,i){var o=n(t,"delete");return e.post(o,{items:i})},moveCopy:function(t,i){var o=n(t,"moveCopy");return e.post(o,i)},upload:function(t,i){var o=n(t,"upload");return e.upload(o,i)},zip:function(t,i){var o=n(t,"zip");return e.post(o,i)}}}]).directive("fileManager",["$q","fileManagerService","fileService","modalService","apiService","notificationService",function(t,i,a,r,l,d){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",toolbar:"=?",toolbarActions:"=?",toolbarActionsTitle:"<?",toolbarActionsTitleTranslate:"<?",toolbarTitle:"<?",toolbarTitleTranslate:"<?",searchTitle:"<?",searchTitleTranslate:"<?",multipleSelection:"=?",backend:"=?",uploadPattern:"=?",uploadAccept:"=?",uploadMultiple:"=?",uploadMaxSize:"=?",model:"=?"},templateUrl:"/templates/framework/directives/file-manager/template.html",link:function(s,c,m){s.vm={clipboard:null,treeToggle:!0,waiting:!1,path:"/",search:"",newFolder:!1,uploadPercent:0,uploading:!1,ribbon:void 0,tree:[],fileExplorer:[],crumbNav:[],uploadInput:null},s.vm.init=function(){n.isUndefined(s.disabled)&&(s.disabled=!1),n.isUndefined(s.visible)&&(s.visible=!0),n.isUndefined(s.cssClass)&&(s.cssClass=""),n.isUndefined(s.toolbar)&&(s.toolbar=!1),n.isUndefined(s.model)&&(s.model=[]),s.vm.bind()},s.vm.bind=function(){s.vm.uploadInput=e(o.createElement("input")),s.vm.uploadInput.attr("type","file"),s.vm.uploadInput.attr("multiple","multiple"),s.vm.uploadInput.on("change",function(e){s.$timeout(function(){s.vm.uploading=!0,s.vm.uploadPercent=0}),i.upload(s.backend,{data:{uploadedFiles:e.target.files,path:s.vm.path},onSuccess:function(e){s.$timeout(function(){s.vm.uploading=!1,s.vm.uploadPercent=0,s.vm.refresh()}),d.success("general.success")},onError:function(e){s.$timeout(function(){s.vm.uploading=!1,s.vm.uploadPercent=0}),d.error("general.error")},onProgress:function(e){s.$timeout(function(){s.vm.uploadPercent=e})}})}),s.$watchCollection("model",function(e,n){if(e||n)return e&&e.length?void s.vm.updateRibbon(e[0].folder):void s.vm.updateRibbon()}),s.vm.refresh()},s.vm.updateRibbon=function(e){s.vm.ribbon[0].enabled=!1,s.vm.ribbon[1].enabled=null!==s.vm.clipboard,s.vm.ribbon[2].enabled=!1,s.vm.ribbon[3].enabled=!1,s.vm.ribbon[4].enabled=!1,s.vm.ribbon[5].enabled=!0,s.vm.ribbon[6].enabled=!1,s.vm.ribbon[7].enabled=!0,s.vm.ribbon[8].enabled=!1,s.vm.ribbon[9].enabled=!1,s.vm.ribbon[10].enabled=!1,s.vm.ribbon[11].enabled=!1,void 0!==e&&(s.vm.ribbon[0].enabled=!0,s.vm.ribbon[1].enabled=!1,s.vm.ribbon[2].enabled=!0,s.vm.ribbon[3].enabled=!0,s.vm.ribbon[4].enabled=!0,s.vm.ribbon[10].enabled=!0,s.vm.ribbon[6].enabled=!0,e||(s.vm.ribbon[8].enabled=!0,s.vm.ribbon[9].enabled=!0,".zip"===a.getExtention(s.model[0].path)&&(s.vm.ribbon[11].enabled=!0)))},s.vm.toggleExplorer=function(e){e&&(e.stopPropagation(),e.preventDefault()),s.vm.treeToggle=!s.vm.treeToggle},s.vm.onRibbonAction=function(e){switch(s.$eval(e.key)){case"select-all":s.vm.fileExplorer.forEach(function(e){e.selected=!0});break;case"select-none":s.vm.fileExplorer.forEach(function(e){e.selected=!1});break;case"select-invert":s.vm.fileExplorer.forEach(function(e){e.selected=!e.selected});break;case"navigation-pane":s.vm.toggleExplorer();break;case"xlarge-icons":s.vm.mode="x-large";break;case"medium-icons":s.vm.mode="medium";break;case"details-icons":s.vm.mode="detailed";break;case"large-icons":s.vm.mode="large";break;case"small-icons":s.vm.mode="small";break;case"tiles-icons":s.vm.mode="tiles";break;case"copy":s.vm.onCopyCommand();break;case"paste":s.vm.onPasteCommand();break;case"cut":s.vm.onCutCommand();break;case"delete":s.vm.onDeleteCommand();break;case"rename":s.vm.onRenameCommand();break;case"new-folder":s.vm.newFolder=!0;break;case"upload":s.vm.onUploadCommand();break;case"download":s.vm.onDownloadCommand();break;case"open":s.vm.onOpenCommand();break;case"preview":s.vm.onPreviewCommand();break;case"zip":s.vm.onZipCommand();break;case"extract-all":s.vm.onExtractAllCommand();break;case"extract-seprate":s.vm.onExtractSeprateCommand()}},s.vm.onUploadCommand=function(){s.vm.uploadInput.trigger("click")},s.vm.onDownloadCommand=function(){var e=i.getBackend(s.backend,"download");a.download(l.PREFIX+e,{items:s.model.pluck("path"),folder:s.model[0].folder})},s.vm.onOpenCommand=function(){},s.vm.onPreviewCommand=function(){},s.vm.onZipCommand=function(){i.zip(s.backend,{items:s.model.pluck("path"),path:s.vm.path}).then(function(e){if(!e.data.status)return void d.error("general.failed");d.success("general.success"),s.vm.refresh()})},s.vm.onExtractAllCommand=function(){},s.vm.onExtractSeprateCommand=function(){},s.vm.onCopyCommand=function(){s.model&&1===s.model.length&&(s.vm.clipboard={mode:"copy",source:s.model.pluck("path")},s.vm.ribbon[1].enabled=!0,s.model.forEach(function(e){e.selected=!1}),s.model=[])},s.vm.onPasteCommand=function(){var e={};n.extend(e,s.vm.clipboard),e.destination=s.vm.path,s.vm.clipboard=null,s.vm.ribbon[1].enabled=!1,i.moveCopy(s.backend,e).then(function(e){if(!e.data.status)return void d.error("general.failed");s.vm.refresh()})},s.vm.onCutCommand=function(){s.model&&1===s.model.length&&(s.vm.clipboard={mode:"move",source:s.model.pluck("path")},s.vm.ribbon[1].enabled=!0,s.model.forEach(function(e){e.selected=!1}),s.model=[])},s.vm.onRenameCommand=function(){s.model&&1===s.model.length&&(s.model[0].newName=s.model[0].name,s.model[0].editting=!0)},s.vm.onDeleteCommand=function(){var e=s.model.copy();r.confirm({titleTranslate:"general.confirm_delete_title",messageTranslate:"general.confirm_delete_message"}).then(function(n){n&&i.delete(s.backend,e.pluck("path")).then(function(n){if(!n.data.status)return void d.error("general.failed");e.forEach(function(e){-1!==n.data.data.indexOf(e.path)&&(s.model.del(e),s.vm.fileExplorer.del(e))})})})},s.vm.onNodeExpand=function(e){e.waiting||e.items&&e.item.length||e.folder&&(e.waiting=!0,i.listDirectory(s.backend,e.path).then(function(n){n.data.status&&(e.expanded=!0,e.items=n.data.data.content.filter(function(e){return e.folder}).map(function(e){return{title:e.name,expandable:!0,path:e.path,folder:!0}})),e.waiting=!1}))},s.vm.onNodeSelect=function(e){e.items&&e.items.length||e.folder&&(s.vm.path=e.path,s.vm.refresh())},s.vm.onCrumbFolderPicked=function(e){s.vm.path=e.path,s.vm.refresh()},s.vm.onCrumbRefresh=function(){s.vm.refresh()},s.vm.onExplorerParent=function(){2===s.vm.crumbNav.length?(s.vm.path="/",s.vm.refresh()):s.vm.crumbNav.length>2&&s.vm.onCrumbFolderPicked(s.vm.crumbNav.length-3)},s.vm.onExplorerDoubleSelect=function(e){e.folder&&(s.vm.path=e.path,s.vm.refresh())},s.vm.onExplorerSelect=function(e){s.model=e},s.vm.onExplorerNewFolder=function(e){return t(function(n,t){i.newFolder(s.backend,e,s.vm.path).then(function(e){if(!e.data.status)return d.error(e.data.error.name[0]),void t();s.vm.fileExplorer.push(e.data.data),n()})})},s.vm.onExplorerRename=function(e){return t(function(n,t){i.rename(s.backend,e,s.vm.path).then(function(i){if(!i.data.status)return d.error(i.data.error.name[0]),void t();e.path.replace(e.name,e.newName),e.name=e.newName,e.newName="",n()})})},s.vm.onAction=function(e){e.action&&e.action(e)},s.vm.refresh=function(){s.vm.waiting=!0,i.listDirectory(s.backend,s.vm.path).then(function(e){e.data.status&&(s.vm.path=e.data.data.path,s.vm.fileExplorer=e.data.data.content,s.vm.crumbNav=[],"/"===s.vm.path?s.vm.tree=e.data.data.content.filter(function(e){return e.folder}).map(function(e){return{title:e.name,expandable:!0,path:e.path,folder:!0}}):s.vm.generateCrumb()),s.vm.waiting=!1})},s.vm.generateCrumb=function(){for(var e=s.vm.path.split("/"),n=1;n<e.length;n++)s.vm.crumbNav.push({path:e.concat([]).splice(0,n+1).join("/"),title:e[n]})},s.vm.prepareUpload=function(e){},s.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("filePickerService",["apiService",function(e){return function(e,n,t,i){}}]).directive("filePicker",["translateService","filePickerService",function(e,t){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",backend:"=?",backendData:"=?",backendKey:"=?",maxSize:"=?",accept:"=?",pattern:"=?",multiple:"=?",preview:"=?",onSuccess:"<?",onError:"<?",onProgress:"<?",model:"=?"},templateUrl:"/templates/framework/directives/file-picker/template.html",link:function(i,o,a){i.vm={uploading:!1,uploadPercent:0},i.vm.init=function(){n.isUndefined(i.disabled)&&(i.disabled=!1),n.isUndefined(i.multiple)&&(i.multiple=!1),n.isUndefined(i.preview)&&(i.preview=!0),n.isUndefined(i.visible)&&(i.visible=!0),n.isUndefined(i.cssClass)&&(i.cssClass=""),n.isUndefined(i.pattern)&&(i.pattern=""),n.isUndefined(i.accept)&&(i.accept=""),n.isUndefined(i.backendKey)&&(i.backendKey="$uploadedFiles"),n.isUndefined(i.model)&&(i.model=[]),n.isUndefined(i.maxSize)&&(i.maxSize="20MB"),i.vm.bind()},i.vm.onSelect=function(e){var n={};n[i.backendKey]=e,i.backend&&(i.vm.uploading=!0,i.vm.uploadPercent=0,t(i.backend,n,i.backendData,{onSuccess:function(e){i.vm.uploading=!1,i.onSuccess&&i.onSuccess(e,i.tag)},onError:function(e){i.vm.uploading=!1,i.onError&&i.onError(e,i.tag)},onProgress:function(e,n,t){i.vm.uploadPercent=e,i.onProgress&&i.onProgress(e,n,t,i.tag)}}))},i.vm.remove=function(e){i.disabled||i.model.del(e)},i.vm.onChange=function(e,n,t,o,a,r){i.model=e},i.vm.bind=function(){},i.vm.getText=function(){return i.model&&i.model.length?i.multiple?i.model.pluck("name").join(", "):i.model[0].name:e("general.noFileSelected")},i.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("filePickerServerService",["apiService",function(e){var n=function(e,n){return"{0}/{1}".format([e||"file-explorer",n]).replace(/\/\//g,"/")};return{listDirectory:function(t,i){var o=n(t,"listDirectory");return e.post(o,{path:i})}}}]).directive("filePickerServer",["$document","filePickerServerService",function(e,t){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",placeHolderTranslate:"=?",placeHolder:"=?",backend:"=?",model:"=?"},templateUrl:"/templates/framework/directives/file-picker-server/template.html",link:function(i,o,a){i.vm={path:"/",plate:!1},i.vm.init=function(){n.isUndefined(i.disabled)&&(i.disabled=!1),n.isUndefined(i.visible)&&(i.visible=!0),n.isUndefined(i.cssClass)&&(i.cssClass=""),n.isUndefined(i.model)&&(i.model=""),i.vm.bind(),i.vm.refresh()},i.vm.closeElseWhere=function(e){i.$apply(function(){i.vm.plate=!1})},i.vm.prevent=function(e){e.stopPropagation(),e.preventDefault()},i.vm.refresh=function(){i.vm.waiting=!0,t.listDirectory(i.backend,i.vm.path).then(function(e){e.data.status&&(i.vm.path=e.data.data.path,i.vm.fileExplorer=e.data.data.content,"/"===i.vm.path&&(i.vm.tree=e.data.data.content.filter(function(e){return e.folder}).map(function(e){return{title:e.name,expandable:!0,path:e.path,folder:!0}}))),i.vm.waiting=!1})},i.vm.togglePlate=function(){i.disabled||(i.vm.plate=!i.vm.plate)},i.vm.bind=function(){i.$on("$destroy",function(){e.off("click",i.vm.closeElseWhere)}),e.on("click",i.vm.closeElseWhere)},i.vm.onNodeExpand=function(e){e.waiting||e.items&&e.item.length||e.folder&&(e.waiting=!0,t.listDirectory(i.backend,e.path).then(function(n){n.data.status&&(e.expanded=!0,e.items=n.data.data.content.filter(function(e){return e.folder}).map(function(e){return{title:e.name,expandable:!0,path:e.path,folder:!0}})),e.waiting=!1}))},i.vm.onNodeSelect=function(e){e.items&&e.items.length||e.folder&&(i.vm.path=e.path,i.vm.refresh())},i.vm.onExplorerParent=function(){var e=i.vm.path.split("/");e.pop(),i.vm.path=e.join("/"),i.vm.refresh()},i.vm.onExplorerDoubleSelect=function(e){e.folder&&(i.vm.path=e.path,i.vm.refresh())},i.vm.onExplorerSelect=function(e){e[0].folder||(i.model=e[0].path)},i.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("formElementsService",[function(){var n=["directive","label","labelTranslate"];return{generate:function(t){var i=e('<form class="generated-form-element"></form>');t=t||{},t.$groups=t.$groups||{"column-1":{size:"col-md-12"}};var o={};return Object.keys(t.$groups).forEach(function(n){var a=e('<div class="{0}"><div class="panel panel-white"> <div class="panel-heading"><h3 class="panel-title">{{:: {1}.title|textOrTranslate:{1}.titleTranslate }}</h3></div> <div class="panel-body"></div> </div></div>'.format([t.$groups[n].size||"col-md-12","$parent.model.$groups['{0}']".format([n])||"&nbsp;"]));o[n]=a.find(".panel-body"),i.append(a)}),Object.keys(t).forEach(function(i,a){if("$groups"!==i){void 0===t[i].visible&&(t[i].visible=!0),void 0===t[i].disabled&&(t[i].disabled=!1);var r=e("<div class='form-group'></div>");r.attr("ng-if","$parent.model['{0}'].visible".format([i]));var l=e("<label>{{::$parent.$parent.model['{0}'].label|textOrTranslate:$parent.$parent.model['{0}'].labelTranslate}}</label>".format([i]));r.append(l);var d=e("<{0}></{0}>".format([t[i].directive]));Object.keys(t[i]).forEach(function(e){-1===n.indexOf(e)&&d.attr(e.toKebabCase(),"$parent.$parent.model['{0}']['{1}']".format([i,e]))}),r.append(d),o[t[i].group||"column-1"].append(r)}}),i}}}]).directive("formElements",["$compile","$templateCache","formElementsService",function(t,i,o){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",model:"=?",waiting:"=?"},compile:function(){var i=e('<div ng-show="visible" class="af-form-elements af-component {{::cssClass}}"></div>');return{pre:function(e,a,r){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.waiting)&&(e.waiting=!1),e.vm.bind()},e.vm.bind=function(){a.append('<div ng-show="visible" class="af-form-elements af-component {{::cssClass}}"></div>'),e.$watch("model",e.vm.build)},e.vm.build=function(){var n=i.find(".generated-form-element");n.children().size()>0&&n.children().each(function(e,n){n.scope().destroy(),n.remove()});var r=o.generate(e.model);a.find(".af-form-elements").append(r),t(r)(e.$new(!0))},e.vm.init()}}}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("googleMapService",["$q",function(e){return function(){return e(function(e,n){if(i.google&&i.google.maps)return void e()
;var t="//maps.googleapis.com/maps/api/js?key="+i.achasoft.configuration.google.map.key;$script(t,function(){e()})})}}]).directive("googleMap",["googleMapService",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",zoom:"=?",center:"=?",mouseWheel:"=?",markers:"=?",polylines:"=?",polygons:"=?",markCenter:"=?",model:"=?"},templateUrl:"/templates/framework/directives/google-map/template.html",link:function(t,i,o){t.vm={waiting:!0,markers:[],polylines:[],polygons:[],canvas:i.find(".vw-google-map")[0]},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),n.isUndefined(t.zoom)&&(t.zoom=16),n.isUndefined(t.mouseWheel)&&(t.mouseWheel=!1),n.isUndefined(t.markCenter)&&(t.markCenter=!1),n.isUndefined(t.markers)&&(t.markers=[]),n.isUndefined(t.center)&&(t.center={lat:51.5,lng:-.2}),n.isUndefined(t.polylines)&&(t.polylines=[]),n.isUndefined(t.polygons)&&(t.polygons=[]),n.isUndefined(t.model)&&(t.model=[]),t.markCenter&&t.markers.push(t.center),t.vm.bind(),e().then(function(){t.vm.waiting=!1,t.vm.create()})},t.vm.createPolyline=function(e){var n=new google.maps.Polyline({path:e.path,geodesic:e.geodesic,strokeColor:e.strokeColor||"#FF0000",strokeOpacity:e.strokeOpacity||1,strokeWeight:e.strokeWeight||2});return n.setMap(t.vm.instance),n},t.vm.createPolygon=function(e){var n=new google.maps.Polygon({paths:e.path,strokeColor:e.strokeColor||"#0000FF",strokeOpacity:e.strokeOpacity||1,strokeWeight:e.strokeWeight||2,fillColor:e.fillColor||"#FF0000",fillOpacity:e.fillOpacity||.35});return n.setMap(t.vm.instance),n},t.vm.createMarker=function(e){return new google.maps.Marker({draggable:!1,position:e?{lat:e.lat,lng:e.lng}:void 0,map:t.vm.instance,title:e?e.title||"&nbsp;":"&nbsp;"})},t.vm.pushMarker=function(e,n){var i;i=n?e:t.vm.createMarker(e),t.vm.markers.push(i)},t.vm.pushPolyline=function(e,n){var i;i=n?e:t.vm.createPolyline(e),t.vm.polylines.push(i)},t.vm.pushPolygon=function(e,n){var i;i=n?e:t.vm.createPolygon(e),t.vm.polygons.push(i)},t.vm.clearMarkers=function(){(t.vm.markers||[]).forEach(function(e){e.setMap(null)}),(t.vm.markers||[]).length=0},t.vm.clearPolylines=function(){(t.vm.polylines||[]).forEach(function(e){e.setMap(null)}),(t.vm.polylines||[]).length=0},t.vm.clearPolygons=function(){(t.vm.polygons||[]).forEach(function(e){e.setMap(null)}),(t.vm.polygons||[]).length=0},t.vm.create=function(){var e={center:new google.maps.LatLng(t.center.lat,t.center.lng),zoom:t.zoom,scrollwheel:t.mouseWheel};t.vm.instance=new google.maps.Map(t.vm.canvas,e),google.maps.event.addListener(t.vm.instance,"click",function(e){var n=t.vm.createMarker(null);n.setPosition(e.latLng),t.vm.pushMarker(n,!0)})},t.vm.bind=function(){t.$watch("markers",function(e){t.vm.instance&&(t.vm.clearMarkers(),(e||[]).forEach(function(e){t.vm.pushMarker(e)}))}),t.$watch("polylines",function(e){t.vm.instance&&(t.vm.clearPolylines(),(e||[]).forEach(function(e){t.vm.pushPolyline(e)}))}),t.$watch("polygons",function(e){t.vm.instance&&(t.vm.clearPolygons(),(e||[]).forEach(function(e){t.vm.pushPolygon(e)}))})},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("gridView",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",checkboxColumn:"=?",rows:"=?",columns:"=?"},templateUrl:"/templates/framework/directives/grid-view/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.bind=function(){},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("modalGeneratorService",["$q","$compile","$rootScope","$templateCache","commonService",function(n,t,i,o,a){var r=o.get("/templates/framework/directives/modal/template.html"),l=e(r);return function(r){return n(function(n,d){if(!r.template&&!r.templateUrl)return void d("no template provided!");var s=a.uuid(),c=l.clone();r.templateUrl&&(r.template=o.get(r.templateUrl)),r.controller&&c.find(".modal-body").attr("ng-controller",r.controller),c.find(".modal-body").append(r.template);var m=i.$new(!0),u=function(){var t=e("#"+s);t.detach(),m.$destroy(),t.remove(),n(!1)},v=function(t){var i=e("#"+s);i.detach(),n(t,m),m.$destroy(),i.remove()};m.title=r.title,m.titleTranslate=r.titleTranslate,m.message=r.message,m.messageTranslate=r.messageTranslate,m.uuid=s,m.data=r.data,m.vm={},m.vm.dismiss=function(){if(!r.onDismiss)return void u();var e=r.onDismiss(m);!0===e?u():e.then&&e.then(function(e){u()},function(){})},m.vm.accept=function(){if(!r.onAccept)return void v(!0);var e=r.onAccept(m);!0===e?v(!0):e.then&&(m.vm.waiting=!0,e.then(function(e){v(e),m.vm.waiting=!1},function(){m.vm.waiting=!1}))},e("body").append(c),t(c)(m)})}}]).factory("modalService",["modalGeneratorService",function(e){return{confirm:function(t){var i={title:void 0,titleTranslate:"general.default_confirm_title",message:void 0,messageTranslate:"general.default_confirm_message",template:void 0,templateUrl:"/templates/framework/directives/modal/confirm.html",controller:void 0,icon:void 0,data:void 0,onAccept:void 0,onDismiss:void 0};return n.extend(i,t),e(i)},dialog:function(t){var i={title:" ",titleTranslate:void 0,template:void 0,templateUrl:void 0,controller:void 0,icon:void 0,data:void 0,onAccept:void 0,onDismiss:void 0};return n.extend(i,t),e(i)}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("multiSelect",["$document",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",textField:"=?",valueField:"=?",placeHolderTranslate:"=?",placeHolder:"=?",items:"=?",model:"=?"},templateUrl:"/templates/framework/directives/multi-select/template.html",link:function(t,i,o){t.vm={plate:!1},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),n.isUndefined(t.textField)&&(t.textField="text"),n.isUndefined(t.valueField)&&(t.valueField="value"),n.isUndefined(t.model)&&(t.model=[]),n.isUndefined(t.items)&&(t.items=[]),n.isUndefined(t.readonly)&&(t.readonly=!1),t.vm.bind()},t.vm.closeElseWhere=function(e){t.$apply(function(){t.vm.plate=!1})},t.vm.prevent=function(e){e.stopPropagation(),e.preventDefault()},t.vm.onAdd=function(e,n){t.disabled||t.model.add(n)},t.vm.onDelete=function(e,n){e.preventDefault(),e.stopPropagation(),t.disabled||t.model.del(n)},t.vm.togglePlate=function(){t.disabled||t.readonly||(t.vm.plate=!t.vm.plate)},t.vm.bind=function(){t.$on("$destroy",function(){e.off("click",t.vm.closeElseWhere)}),e.on("click",t.vm.closeElseWhere)},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("numbox",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",required:"=?",triggerOnInit:"=?",readonly:"=?",model:"=?"},templateUrl:"/templates/framework/directives/numbox/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.required)&&(e.required=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),e.required&&n.isUndefined(e.model)&&(e.model=0),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.increase=function(){e.disabled||e.readonly||(e.model=parseInt(e.model||0)+1)},e.vm.decrease=function(){e.disabled||e.readonly||(e.model=parseInt(e.model||0)-1)},e.vm.bind=function(){e.$watch("model",function(t,i){(e.vm.initialized||(e.vm.initialized=!0,e.triggerOnInit))&&e.vm.initialized&&n.isFunction(e.onChange)&&e.onChange(e.model,e.tag)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("password",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",placeHolder:"=?",placeHolderTranslate:"=?",prependIcon:"=?",appendIcon:"=?",label:"=?",labelTranslate:"=?",model:"=?",onChanged:"<?",readonly:"=?"},templateUrl:"/templates/framework/directives/password/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.bind=function(){e.$watch("model",function(t,i){if(void 0===t||null===t)return void(e.model="");n.isFunction(e.onChanged)&&e.onChanged(e.model,e.tag,i)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("progressbar",[function(){return{restrict:"E",replace:!0,scope:{disabled:"=?",visible:"=?",cssClass:"=?",model:"=?"},templateUrl:"/templates/framework/directives/progressbar/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.model)&&(e.model=0),e.vm.bind()},e.vm.bind=function(){},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("radio",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",onChange:"<?",disabled:"=?",visible:"=?",cssClass:"=?",textField:"=?",valueField:"=?",triggerOnInit:"=?",items:"=?",inline:"=?",model:"=?"},templateUrl:"/templates/framework/directives/radio/template.html",link:function(e,t,i){e.vm={initialized:!1},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.inline)&&(e.inline=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.triggerOnInit)&&(e.triggerOnInit=!1),n.isUndefined(e.items)&&(e.items=[]),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.textField)&&(e.textField="text"),n.isUndefined(e.valueField)&&(e.valueField="value"),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.onPick=function(n){e.disabled||(e.model=n[e.valueField])},e.vm.bind=function(){e.$watch("model",function(t,i){(e.vm.initialized||(e.vm.initialized=!0,e.triggerOnInit))&&e.vm.initialized&&n.isFunction(e.onChange)&&e.onChange(e.model,e.tag,e.items)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("ribbonService",[function(){var n=function(e,n,t){return e.hasAttribute(n)?e.getAttribute(n):t},t=function(t){var i=[];return e(t).find("button").each(function(t,o){var a={title:n(o,"title",""),titleTranslate:n(o,"title-translate",null),icon:n(o,"icon",null),inline:n(o,"inline",!1),toggle:n(o,"toggle",!1),enabled:n(o,"enabled",!0),buttons:[],key:n(o,"key","")};e(o).find("sub-button").each(function(e,t){var i={title:n(t,"title",""),titleTranslate:n(t,"title-translate",null),icon:n(t,"icon",null),enabled:n(o,"enabled",!0)};a.buttons.push(i)}),i.push(a)}),i};return{parse:function(i){var o=[],a=[];return e(i).each(function(i,r){var l={title:n(r,"title",""),titleTranslate:n(r,"title-translate",null),icon:n(r,"icon",null),sections:[]};e(r).find("section").each(function(i,a){var r={title:n(a,"title",""),titleTranslate:n(a,"title-translate",null),name:n(a,"name",""),columns:[],buttons:[]},d=e(a).find("column");d.size()>0?d.each(function(e,n){var i=t(n);o.addRange(i),r.columns.push({buttons:i})}):(r.buttons=t(a),o.addRange(r.buttons)),l.sections.push(r)}),a.push(l)}),{steps:a,buttons:o}}}}]).directive("ribbon",["$templateCache","$compile","ribbonService","cultureService",function(o,a,r,l){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",onAction:"=?",buttons:"=?",model:"=?"},compile:function(d){var s=o.get("/templates/framework/directives/ribbon/template.html"),c=d.html();return d.empty(),{pre:function(o,d,m){o.vm={selectedStep:null},o.vm.init=function(){if(n.isUndefined(o.disabled)&&(o.disabled=!1),n.isUndefined(o.visible)&&(o.visible=!0),n.isUndefined(o.cssClass)&&(o.cssClass=""),n.isUndefined(o.buttons)&&(o.buttons=[]),n.isUndefined(o.steps)){var e=r.parse(c);o.steps=e.steps,o.buttons=e.buttons,o.steps.length&&o.vm.onPick(o.steps[0])}o.vm.compile(),o.vm.bind()},o.vm.getButtonClass=function(e){var n=["button"];o.$eval(e.enabled.toString())||n.push("disabled"),o.$eval(e.inline)&&n.push("inline"),o.$eval(e.toggle)&&n.push("toggle-button"),e.toggleState&&n.push("active");var t=o.$eval(e.cssClass);return t&&n.push(t),n.join(" ")},o.vm.onExpandButton=function(e,n){o.$eval(e.enabled.toString())&&(e.expand=!e.expand)},o.vm.onPick=function(e){o.disabled||(o.vm.selectedStep=e,o.vm.calculateWidth())},o.vm.calculateWidth=t.debounce(function(){var n=0;d.find(".section").each(function(t,i){n+=e(i).width(),n+=10});var t=d.find(".tabs-content");t.width()>=n?(t.removeClass("slide"),o.vm.currentPosition=0,d.find(".tab-content").css({left:o.vm.currentPosition,width:"auto"})):(t.addClass("slide"),o.vm.currentPosition=25,d.find(".tab-content").css({width:n,left:o.vm.currentPosition})),o.vm.available=t.width(),o.vm.totalWidth=n,o.vm.gap=o.vm.totalWidth-o.vm.available},300),o.vm.scrollLeft=function(){o.vm.currentPosition-100>=0?o.vm.currentPosition-=100:o.vm.currentPosition=0;var e={};l.rtl?e.left=o.vm.currentPosition:e.left=-o.vm.currentPosition,d.find(".tab-content").css(e)},o.vm.scrollRight=function(){o.vm.currentPosition+100<=o.vm.gap?o.vm.currentPosition+=100:o.vm.currentPosition=o.vm.gap;var e={};l.rtl?e.left=o.vm.currentPosition:e.left=-o.vm.currentPosition,d.find(".tab-content").css(e)},o.vm.compile=function(){var n=e(s);d.append(n),a(n)(o)},o.vm.bind=function(){o.$on("$destroy",function(){e(i).off("resize",o.vm.calculateWidth)}),o.$watch("steps",function(){o.vm.calculateWidth()}),e(i).on("resize",o.vm.calculateWidth)},o.vm.onAction=function(e){n.isFunction(o.onAction)&&o.onAction(e)},o.vm.init()}}}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("slider",["cultureService",function(e){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",step:"=?",min:"=?",max:"=?",from:"=?",to:"=?",dual:"=?",model:"=?"},templateUrl:"/templates/framework/directives/slider/template.html",link:function(t,i,o){t.vm={instance:null},t.vm.init=function(){n.isUndefined(t.disabled)&&(t.disabled=!1),n.isUndefined(t.visible)&&(t.visible=!0),n.isUndefined(t.cssClass)&&(t.cssClass=""),n.isUndefined(t.min)&&(t.min=0),n.isUndefined(t.max)&&(t.max=100),n.isUndefined(t.step)&&(t.step=10),n.isUndefined(t.model)&&(t.model=0),n.isUndefined(t.dual)&&(t.dual=!1),t.vm.bind()},t.vm.update=function(e){!t.disabled&&t.vm.instance&&(t.min=e.min,t.max=e.max,t.from=e.from,t.to=e.to,t.model=e.from)},t.vm.updateBack=function(e){!t.disabled&&t.vm.instance&&t.vm.instance.update(e)},t.vm.bind=function(){i.find("input").ionRangeSlider({min:t.min,max:t.max,from:t.from||t.model,to:t.dual?t.to:void 0,type:t.dual?"double":"single",onStart:t.vm.update,onChange:t.vm.update,step:t.step,disable:t.disabled,prettify:function(n){if(!e.rtl)return n;var i=(t.min,t.max),o=n;return t.min<0?(0,i=t.max-t.min,o=n-t.min,(o=i-o)+t.min):n=t.max-n}}),t.$watch("disabled",function(e){t.vm.updateBack({disable:e})}),t.vm.instance=i.find("input").data("ionRangeSlider"),t.$on("$destroy",function(){t.vm.instance.destroy()})},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("switch",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",model:"=?"},templateUrl:"/templates/framework/directives/switch/template.html",link:function(e,t,i){e.vm={initialized:!1},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.toggle=function(n){n.stopPropagation(),n.preventDefault(),e.disabled||(e.model=!e.model)},e.vm.bind=function(){e.$watch("model",function(t,i){(e.vm.initialized||(e.vm.initialized=!0,e.triggerOnInit))&&e.vm.initialized&&n.isFunction(e.onChange)&&e.onChange(e.model,e.tag)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").factory("tabsService",function(){var n=function(e,n,t){return e.hasAttribute(n)?e.getAttribute(n):t};return{parse:function(t){var i=[];return e(t).each(function(e,t){i.push({disabled:n(t,"disabled",!1),cssClass:n(t,"css-class",""),title:n(t,"title",""),titleTranslate:n(t,"title-translate",null),icon:n(t,"icon",null),onEnter:n(t,"on-enter",null),onEnterValidate:n(t,"on-enter-validate",null),onExit:n(t,"on-exit",null),onExitValidate:n(t,"on-exit-validate",null),content:t.innerHTML})}),i}}}).directive("tabs",["$compile","$templateCache","tabsService",function(t,i,o){return{restrict:"E",replace:!0,scope:{disabled:"=?",visible:"=?",cssClass:"=?",keepScope:"=?",position:"=?",onChanged:"<?",onEnter:"<?",onExit:"<?",triggerPick:"=?",preventPick:"=?",steps:"=?",model:"=?"},compile:function(a){var r=i.get("/templates/framework/directives/tabs/template.html"),l=a.html();return a.empty(),{pre:function(i,a,d){i.vm={},i.vm.init=function(){n.isUndefined(i.disabled)&&(i.disabled=!1),n.isUndefined(i.keepScope)&&(i.keepScope=!1),n.isUndefined(i.preventPick)&&(i.preventPick=!1),n.isUndefined(i.visible)&&(i.visible=!0),n.isUndefined(i.cssClass)&&(i.cssClass=""),n.isUndefined(i.position)&&(i.position="top"),n.isUndefined(i.steps)&&(i.steps=o.parse(l)),n.isUndefined(i.model)&&i.steps.length&&i.vm.onPick(i.steps[0]),i.vm.compile(),i.vm.bind()},i.vm.onExitValidate=function(){var e=i.$parent.$eval(i.model.onExitValidate);return!n.isFunction(e)||e(i.model)},i.vm.onEnterValidate=function(e){var t=!0,o=i.$parent.$eval(e.onEnterValidate);n.isFunction(o)&&(t=o(e)),!0===t?i.vm.setModel(e):t&&t.then&&t.then(function(){i.vm.setModel(e)},function(){})},i.vm.setModel=function(e){i.model=e},i.vm.prepareForPick=function(e,n){n.stopPropagation(),n.preventDefault(),i.preventPick||i.vm.onPick(e)},i.vm.onPick=i.triggerPick=function(e){if(!i.disabled&&!e.disabled){if(!i.model)return void i.vm.setModel(e);var n=i.vm.onExitValidate();!0===n?i.vm.onEnterValidate(e):n&&n.then&&n.then(function(){i.vm.onEnterValidate(e)},function(){})}},i.vm.bind=function(){i.$watch("model",function(e,t){if(e){if(t){var o=i.$parent.$eval(t.onExit);n.isFunction(o)&&o(t,e),n.isFunction(i.onExit)&&i.onExit(t,e)}var a=i.$parent.$eval(e.onEnter);n.isFunction(a)&&a(e),n.isFunction(i.onEnter)&&i.onEnter(e),n.isFunction(i.onChanged)&&i.onChanged(e)}}),i.$on("$destroy",function(){i.triggerPick=null})},i.vm.compile=function(){var n=e(r);a.append(n),t(n)(i)},i.vm.init()}}}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("tags",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",model:"=?"},templateUrl:"/templates/framework/directives/tags/template.html",link:function(e,t,i){e.vm={query:""},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.model)&&(e.model=[]),e.vm.bind()},e.vm.onAdd=function(){!e.disabled&&e.vm.query&&-1===e.model.indexOf(e.vm.query)&&(e.model.push(e.vm.query),e.vm.query="")},e.vm.onRemove=function(n){e.disabled||e.model.del(n)},e.vm.bind=function(){},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("textArea",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",placeHolder:"=?",placeHolderTranslate:"=?",model:"=?",resize:"=?",rows:"=?",onChanged:"<?",readonly:"=?"},templateUrl:"/templates/framework/directives/text-area/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.resize)&&(e.resize="none"),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.rows)&&(e.rows=5),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.bind=function(){e.$watch("model",function(t,i){if(void 0===t||null===t)return void(e.model="");n.isFunction(e.onChanged)&&e.onChanged(e.model,e.tag,i)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("textbox",[function(){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",placeHolder:"=?",placeHolderTranslate:"=?",prependIcon:"=?",appendIcon:"=?",label:"=?",labelTranslate:"=?",model:"=?",onChanged:"<?",readonly:"=?"},templateUrl:"/templates/framework/directives/textbox/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.readonly)&&(e.readonly=!1),e.vm.bind()},e.vm.bind=function(){e.$watch("model",function(t,i){if(void 0===t||null===t)return void(e.model="");n.isFunction(e.onChanged)&&e.onChanged(e.model,e.tag,i)})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("tree",["recursion-helper","commonService",function(e,t){return{restrict:"E",replace:!0,scope:{tag:"<?",uuid:"=?",disabled:"=?",visible:"=?",cssClass:"=?",onDemand:"=?",items:"=?",model:"=?",selectedNode:"=?",onNodeSelect:"=?",onNodeExpand:"=?"},templateUrl:"/templates/framework/directives/tree/template.html",link:function(e,i,o){e.vm={},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.items)&&(e.items=[]),n.isUndefined(e.uuid)&&(e.uuid=t.uuid()),e.vm.bind()},e.vm.onNodeExpand=function(t){e.disabled||t.disabled||t.waiting||n.isFunction(e.onNodeExpand)&&e.onNodeExpand(t)},e.vm.onNodeSelect=function(t){e.disabled||t.disabled||t.waiting||(e.selectedNode&&(e.selectedNode.selected=!1,e.selectedNode=null),e.selectedNode=t,e.selectedNode.selected=!0,t.items&&t.items.length&&(t.expanded=!t.expanded),n.isFunction(e.onNodeSelect)&&e.onNodeSelect(t))},e.vm.bind=function(){e.$on(e.uuid,function(n,t){switch(t.type){case"node-select":e.vm.onNodeSelect(t.value);break;case"node-expand":e.vm.onNodeExpand(t.value);break;default:console.log("Unknown event type : ",t.type)}})},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("treeContainer",["$rootScope","cultureService","recursion-helper",function(e,t,i){return{restrict:"E",replace:!0,scope:{uuid:"=",isRoot:"=",parent:"=",items:"=?"},templateUrl:"/templates/framework/directives/tree/tree-container.html",compile:function(o){return i.compile(o,function(i,o,a){i.vm={},i.vm.init=function(){n.isUndefined(i.disabled)&&(i.disabled=!1),n.isUndefined(i.visible)&&(i.visible=!0),n.isUndefined(i.cssClass)&&(i.cssClass=""),n.isUndefined(i.items)&&(i.items=[]),i.vm.bind()},i.vm.getNodeClass=function(e){return e.icon?e.icon:e.items&&e.items.length||e.expandable?"af-icon-folder":"af-icon-file"},i.vm.getNodeIcon=function(e){var n;return e.expanded?n="af-icon-chevron_down":(n=t.rtl?"af-icon-chevron_left":"af-icon-chevron_right",e.selected&&(n+="_hover")),n},i.vm.onPick=function(n,t){t.stopPropagation(),t.preventDefault(),e.$broadcast(i.uuid,{type:"node-select",value:n})},i.vm.onExpand=function(n,t){t.stopPropagation(),t.preventDefault(),e.$broadcast(i.uuid,{type:"node-expand",value:n})},i.vm.bind=function(){},i.vm.init()})}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("validation-messages",[function(){return{restrict:"E",replace:!0,scope:{model:"=?"},templateUrl:"/templates/framework/directives/validation-messages/template.html",link:function(e,t,i){e.vm={},e.vm.init=function(){n.isUndefined(e.model)&&(e.model=[])},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").directive("waiting",[function(){return{restrict:"E",replace:!0,templateUrl:"/templates/framework/directives/waiting/template.html"}}])}(jQuery,angular,_,window,document),function(e,n,t,i,o,a){"use strict";n.module("frontend.directives").run(["$rootScope",function(e){Object.defineProperty(e,"$WizardContext",{get:function(){return this.$parent}})}]).directive("wizard",["$compile","$templateCache",function(t,i){return{restrict:"E",replace:!0,scope:{tag:"<?",disabled:"=?",visible:"=?",cssClass:"=?",nextText:"<?",nextTextTranslate:"=?",backText:"<?",backTextTranslate:"=?",keepScope:"=?",position:"=?",onChanged:"<?",onEnter:"<?",onExit:"<?",steps:"=?",model:"=?"},compile:function(o){var a=o.html();o.empty();var r=i.get("/templates/framework/directives/wizard/template.html"),l=e(r);return l.find("tabs").html(a),{pre:function(e,i,o){e.vm={currentIndex:0},e.vm.onNext=function(){var n=e.steps.indexOf(e.model),t=n+1;t!==e.steps.length&&e.vm.triggerPick&&e.vm.triggerPick(e.steps[t])},e.vm.onBack=function(){var n=e.steps.indexOf(e.model),t=n-1;-1!==t&&e.vm.triggerPick&&e.vm.triggerPick(e.steps[t])},e.vm.init=function(){n.isUndefined(e.disabled)&&(e.disabled=!1),n.isUndefined(e.visible)&&(e.visible=!0),n.isUndefined(e.cssClass)&&(e.cssClass=""),n.isUndefined(e.nextTextTranslate)&&(e.nextTextTranslate="general.next"),n.isUndefined(e.backTextTranslate)&&(e.backTextTranslate="general.previous"),e.vm.compile(),e.vm.bind()},e.vm.compile=function(){i.append(l),t(l)(e)},e.vm.bind=function(){Object.defineProperty(e.vm,"nextDisabled",{get:function(){return e.vm.currentIndex===e.steps.length-1}}),Object.defineProperty(e.vm,"backDisabled",{get:function(){return 0===e.vm.currentIndex}}),e.$watch("model",function(t,i){n.isUndefined(t)||(e.vm.currentIndex=e.steps.indexOf(t))})},e.vm.init()}}}}}])}(jQuery,angular,_,window,document);

@@ -81,2 +81,27 @@ (function ($, angular, underscore, window, document, undefined) {

'use strict';
var toFormData = function (obj, form, namespace) {
var fd = form || new FormData();
var formKey;
for (var property in obj) {
if (obj.hasOwnProperty(property) && obj[property]) {
if (namespace) {
formKey = namespace + '[' + property + ']';
} else {
formKey = property;
}
// if the property is an object, but not a File, use recursivity.
if (obj[property] instanceof Date) {
fd.append(formKey, obj[property].toISOString());
} else if (typeof obj[property] === 'object' && !(obj[property] instanceof File)) {
toFormData(obj[property], fd, formKey);
} else {
// if it's a string or a File object
fd.append(formKey, obj[property]);
}
}
}
return fd;
};
window.achasoft.utils = {};
window.achasoft.utils.toFormData = toFormData;
}(window));

@@ -83,0 +108,0 @@ (function (window, undefined) {

@@ -1,1 +0,1 @@

!function(t,e,r,n,a,o){"use strict";n.achasoft=n.achasoft||{},n.achasoft.frontend={enums:{},i18n:{},utils:{}},e.module("frontend.library",[]),e.module("frontend.templates",[]),e.module("frontend.layouts",[]),e.module("frontend.services",["frontend.library","ngFileUpload"]),e.module("frontend.filters",["frontend.library"]),e.module("frontend.directives",["frontend.services","frontend.filters"])}(jQuery,angular,_,window,document),function(t,e){"use strict";Array.prototype.copy=function(){return this.concat([])},Array.prototype.addRange=function(t){var e=this;(t||[]).forEach(function(t){e.push(t)})},Array.prototype.add=function(t,e){var r=this.indexOf(t);return-1!==r?r:!1===e?(this.unshift(t),0):(this.push(t),this.length-1)},Array.prototype.del=function(t){var e=this.indexOf(t);return-1!==e&&this.splice(e,1),e},Array.prototype.partition=function(t){for(var e=[],r=0;r<this.length;r++)r%t==0&&e.push([]),e[e.length-1].push(this[r]);return e},Array.prototype.pluck=function(t){return this.map(function(e){return e[t]})}}(window),function(t,e){"use strict";Date.isDate=function(t){if("[object Date]"===toString.call(t))return!0;if("string"==typeof t){var e=Date.parse(t);return isNaN(t)&&!isNaN(e)}return!1}}(window),function(t,e){"use strict"}(window),function(t,e){"use strict";var r=function(t,e,r){if(t||(t=new Date),Date.isDate(t)){var n=new Date(t);return this.year=n.getFullYear(),this.month=n.getMonth()+1,void(this.day=n.getDate())}this.year=t,this.month=e,this.day=r};r.getMonthStartWeekDate=function(t,e){return new Date(t,e-1,1).getDay()+r.weekGap},r.prototype.getMonthStartWeekDate=function(){return r.getMonthStartWeekDate(this.year,this.month-1)},r.prototype.toDate=function(){return new Date(this.year,this.month-1,this.day)},r.parsePersian=function(){return PersianCalendar.toGregorian.apply(null,arguments)},r.parseHijri=function(){return HijriCalendar.toGregorian.apply(null,arguments)},r.weekGap=0,r.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31],r.dayNames=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],r.dayNamesShort=["Mo","Tu","We","Th","Fr","Sa","Su"],r.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"],r.monthNamesShort=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],t.GregorianCalendar=r}(window),function(t,e){"use strict";function r(t){return t<-1e-7?Math.ceil(t-1e-7):Math.floor(t+1e-7)}function n(t,e,n){var a,o,i,s,u=parseInt(n),h=parseInt(e),c=parseInt(t);return a=c>1582||1582===c&&h>10||1582===c&&10===h&&u>14?r(1461*(c+4800+r((h-14)/12))/4)+r(367*(h-2-12*r((h-14)/12))/12)-r(3*r((c+4900+r((h-14)/12))/100)/4)+u-32075+1:367*c-r(7*(c+5001+r((h-9)/7))/4)+r(275*h/9)+u+1729777+1,a-1,o=a-1948440+10632,i=r((o-1)/10631),o=o-10631*i+354,s=r((10985-o)/5316)*r(50*o/17719)+r(o/5670)*r(43*o/15238),o=o-r((30-s)/15)*r(17719*s/50)-r(s/16)*r(15238*s/43)+29,h=r(24*o/709),u=o-r(709*h/24),c=30*i+s-30,{day:u,month:h,year:c}}function a(t,e,n){var a,i,s,u,h,c=parseInt(n),y=parseInt(e),d=parseInt(t),f=r((11*d+3)/30)+354*d+30*y-r((y-1)/2)+c+1948440-385-o;return f>2299160?(a=f+68569,i=r(4*a/146097),a-=r((146097*i+3)/4),s=r(4e3*(a+1)/1461001),a=a-r(1461*s/4)+31,u=r(80*a/2447),c=a-r(2447*u/80),a=r(u/11),y=u+2-12*a,d=100*(i-49)+s+a):(u=f+1402,h=r((u-1)/1461),a=u-1461*h,i=r((a-1)/365)-r(a/1461),s=a-365*i+30,u=r(80*s/2447),c=s-r(2447*u/80),s=r(u/11),y=u+2-12*s,d=4*h+i+s-4716),{day:c,month:y,year:d}}var o=1,i=function(t){return t=new Date(t),n(t.getFullYear(),t.getMonth()+1,t.getDate())},s=function(t,e,r){var n=a(t,e,r);return new Date(n.year,n.month-1,n.day)},u=function(t,e,r){if(t||(t=new Date),Date.isDate(t)){var n=i(t);return this.year=n.year,this.month=n.month,void(this.day=n.day)}this.year=t,this.month=e,this.day=r};u.prototype.getMonthStartWeekDate=function(){return u.getMonthStartWeekDate(this.year,this.month)},u.prototype.toDate=function(){return s(this.year,this.month,this.day)},u.toGregorian=function(t,e,r){var n=s(t,e,r);return new GregorianCalendar(n)},u.getMonthStartWeekDate=function(t,e){return s(t,e,1).getDay()+u.weekGap},u.weekGap=0,u.daysInMonth=[30,29,30,29,30,29,30,29,30,29,30,29],u.dayNames=["الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],u.dayNamesShort=["إث","ثل","أر","خم","جم","سب","أح"],u.monthNames=["مُحَرَّم","صَفَر","رَبيع الأوّل","رَبيع الثاني","جُمادى الأولى","جُمادى الآخرة","رَجَب","شَعْبان","رَمَضان","شَوّال","ذو القعدة","ذو الحجة"],u.monthNamesShort=["مُحَر","صَفَر","رَبي","ثان","أول","آخر","رَجَب","شَعْب","رَمَض","شَوّا","قعد","حجة"],t.HijriCalendar=u}(window),function(t,e){"use strict"}(jQuery),function(){var t,e,r,n,a,o;e=navigator.platform.toUpperCase().indexOf("MAC")>=0,window.macKeys={cmdKey:!1,ctrlKey:!1,shiftKey:!1,altKey:!1,reset:function(){this.cmdKey=!1,this.ctrlKey=!1,this.shiftKey=!1,this.altKey=!1}},e&&(t=function(){var t,e=navigator.userAgent,r=e.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(r[1])?(t=/\brv[ :]+(\d+)/g.exec(e)||[],{browser:"IE",version:t[1]||""}):"Chrome"===r[1]&&null!=(t=e.match(/\b(OPR|Edge)\/(\d+)/))?{browser:t.slice(1)[0].replace("OPR","Opera"),version:t.slice(1)[1]}:(r=r[2]?[r[1],r[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(t=e.match(/version\/(\d+)/i))&&r.splice(1,1,t[1]),{browser:r[0],version:r[1]})}(),r="Chrome"===t.browser||"Safari"===t.browser,n="Firefox"===t.browser,a="Opera"===t.browser,window.onkeydown=function(t){o=t.keyCode,(r||a)&&(91===o||93===o)||n&&224===o?macKeys.cmdKey=!0:16===o?macKeys.shiftKey=!0:17===o?macKeys.ctrlKey=!0:18===o&&(macKeys.altKey=!0)},window.onkeyup=function(t){o=t.keyCode,(r||a)&&(91===o||93===o)||n&&224===o?macKeys.cmdKey=!1:16===o?macKeys.shiftKey=!1:17===o?macKeys.ctrlKey=!1:18===o&&(macKeys.altKey=!1)},window.onblur=function(){macKeys.reset()})}(),function(t,e){"use strict";Number.prototype.pad=function(t){for(var e=String(this);e.length<(t||2);)e="0"+e;return e},Number.prototype.humanFileSize=function(t){var e=this,r=t?1e3:1024;if(Math.abs(e)<r)return e+" B";var n=t?["kB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],a=-1;do{e/=r,++a}while(Math.abs(e)>=r&&a<n.length-1);return e.toFixed(1)+" "+n[a]}}(window),function(t,e){"use strict";t.module("frontend.library").factory("operationResult",function(){var t=function(){this.error=null,this.status=!1,this.data=null};return t.success=function(e){return(new t).success(e)},t.failed=function(e){return(new t).failed(e)},t.prototype.success=function(t){return this.data=t,this.status=!0,this.error=null,this},t.prototype.failed=function(t){return this.data=null,this.status=!1,this.error=t,this},t})}(angular),function(t,e){"use strict";var r={g_days_in_month:[31,28,31,30,31,30,31,31,30,31,30,31],j_days_in_month:[31,31,31,31,31,31,30,30,30,30,30,29]};r.jalaliToGregorian=function(t,e,n){t=parseInt(t),e=parseInt(e),n=parseInt(n);for(var a=t-979,o=e-1,i=n-1,s=365*a+8*parseInt(a/33)+parseInt((a%33+3)/4),u=0;u<o;++u)s+=r.j_days_in_month[u];s+=i;var h=s+79,c=1600+400*parseInt(h/146097);h%=146097;var y=!0;h>=36525&&(h--,c+=100*parseInt(h/36524),h%=36524,h>=365?h++:y=!1),c+=4*parseInt(h/1461),(h%=1461)>=366&&(y=!1,h--,c+=parseInt(h/365),h%=365);for(var u=0;h>=r.g_days_in_month[u]+(1===u&&y);u++)h-=r.g_days_in_month[u]+(1===u&&y);return[c,u+1,h+1]},r.checkDate=function(t,e,n){return!(t<0||t>32767||e<1||e>12||n<1||n>r.j_days_in_month[e-1]+(12===e&&!((t-979)%33%4)))},r.gregorianToJalali=function(t,e,n){t=parseInt(t),e=parseInt(e),n=parseInt(n);for(var a=t-1600,o=e-1,i=n-1,s=365*a+parseInt((a+3)/4)-parseInt((a+99)/100)+parseInt((a+399)/400),u=0;u<o;++u)s+=r.g_days_in_month[u];o>1&&(a%4==0&&a%100!=0||a%400==0)&&++s,s+=i;var h=s-79,c=parseInt(h/12053);h%=12053;var y=979+33*c+4*parseInt(h/1461);(h%=1461)>=366&&(y+=parseInt((h-1)/365),h=(h-1)%365);for(var u=0;u<11&&h>=r.j_days_in_month[u];++u)h-=r.j_days_in_month[u];return[y,u+1,h+1]};var n=function(t){t=new Date(t);var e=r.gregorianToJalali(t.getFullYear(),t.getMonth()+1,t.getDate());return{year:e[0],month:e[1],day:e[2]}},a=function(t,e,n){var a=r.jalaliToGregorian(t,e,n);return new Date(a[0],a[1]-1,a[2])},o=function(t,e,r){if(t||(t=new Date),Date.isDate(t)){var a=n(t);return this.year=a.year,this.month=a.month,void(this.day=a.day)}this.year=t,this.month=e,this.day=r};o.prototype.getMonthStartWeekDate=function(){return o.getMonthStartWeekDate(this.year,this.month)},o.prototype.toDate=function(){return a(this.year,this.month,this.day)},o.toGregorian=function(){var t=a(this.year,this.month,this.day);return new GregorianCalendar(t)},o.getMonthStartWeekDate=function(t,e){var r=a(t,e,1).getDay()+o.weekGap;return r>7&&(r-=7),r},o.weekGap=2,o.daysInMonth=[31,31,31,31,31,31,30,30,30,30,30,29],o.dayNames=["شنبه","یک شنبه","دوشنبه","سه شنبه","چهار شنبه","پنج شنبه","جمعه"],o.dayNamesShort=["ش","۱ش","۲ش","۳ش","۴ش","۵ش","ج"],o.monthNames=["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],o.monthNamesShort=["فر","ارد","خرد","تیر","مرد","شهر","مهر","آب","آذر","دی","بهم","اسف"],t.PersianCalendar=o}(window),function(t){"use strict";String.prototype.format=function(t){return this.replace(/{(\d+)}/g,function(e,r,n,a){return t[r]?t[r]:e})},String.prototype.startsWith||(String.prototype.startsWith=function(t,e){return this.substr(e||0,t.length)===t}),String.prototype.toKebabCase=function(){return this.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}}(),function(t,e){"use strict";t.module("frontend.library").factory("uuid",function(){return function(){function t(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}})}(angular),function(t,e,r,n,a,o){"use strict";e.module("frontend.layouts")}(jQuery,angular,_,window,document);
!function(t,e,r,n,a,o){"use strict";n.achasoft=n.achasoft||{},n.achasoft.frontend={enums:{},i18n:{},utils:{}},e.module("frontend.library",[]),e.module("frontend.templates",[]),e.module("frontend.layouts",[]),e.module("frontend.services",["frontend.library","ngFileUpload"]),e.module("frontend.filters",["frontend.library"]),e.module("frontend.directives",["frontend.services","frontend.filters"])}(jQuery,angular,_,window,document),function(t,e){"use strict";Array.prototype.copy=function(){return this.concat([])},Array.prototype.addRange=function(t){var e=this;(t||[]).forEach(function(t){e.push(t)})},Array.prototype.add=function(t,e){var r=this.indexOf(t);return-1!==r?r:!1===e?(this.unshift(t),0):(this.push(t),this.length-1)},Array.prototype.del=function(t){var e=this.indexOf(t);return-1!==e&&this.splice(e,1),e},Array.prototype.partition=function(t){for(var e=[],r=0;r<this.length;r++)r%t==0&&e.push([]),e[e.length-1].push(this[r]);return e},Array.prototype.pluck=function(t){return this.map(function(e){return e[t]})}}(window),function(t,e){"use strict";Date.isDate=function(t){if("[object Date]"===toString.call(t))return!0;if("string"==typeof t){var e=Date.parse(t);return isNaN(t)&&!isNaN(e)}return!1}}(window),function(t,e){"use strict";var r=function(t,e,n){var a,o=e||new FormData;for(var i in t)t.hasOwnProperty(i)&&t[i]&&(a=n?n+"["+i+"]":i,t[i]instanceof Date?o.append(a,t[i].toISOString()):"object"!=typeof t[i]||t[i]instanceof File?o.append(a,t[i]):r(t[i],o,a));return o};t.achasoft.utils={},t.achasoft.utils.toFormData=r}(window),function(t,e){"use strict";var r=function(t,e,r){if(t||(t=new Date),Date.isDate(t)){var n=new Date(t);return this.year=n.getFullYear(),this.month=n.getMonth()+1,void(this.day=n.getDate())}this.year=t,this.month=e,this.day=r};r.getMonthStartWeekDate=function(t,e){return new Date(t,e-1,1).getDay()+r.weekGap},r.prototype.getMonthStartWeekDate=function(){return r.getMonthStartWeekDate(this.year,this.month-1)},r.prototype.toDate=function(){return new Date(this.year,this.month-1,this.day)},r.parsePersian=function(){return PersianCalendar.toGregorian.apply(null,arguments)},r.parseHijri=function(){return HijriCalendar.toGregorian.apply(null,arguments)},r.weekGap=0,r.daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31],r.dayNames=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],r.dayNamesShort=["Mo","Tu","We","Th","Fr","Sa","Su"],r.monthNames=["January","February","March","April","May","June","July","August","September","October","November","December"],r.monthNamesShort=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],t.GregorianCalendar=r}(window),function(t,e){"use strict";function r(t){return t<-1e-7?Math.ceil(t-1e-7):Math.floor(t+1e-7)}function n(t,e,n){var a,o,i,s,u=parseInt(n),h=parseInt(e),c=parseInt(t);return a=c>1582||1582===c&&h>10||1582===c&&10===h&&u>14?r(1461*(c+4800+r((h-14)/12))/4)+r(367*(h-2-12*r((h-14)/12))/12)-r(3*r((c+4900+r((h-14)/12))/100)/4)+u-32075+1:367*c-r(7*(c+5001+r((h-9)/7))/4)+r(275*h/9)+u+1729777+1,a-1,o=a-1948440+10632,i=r((o-1)/10631),o=o-10631*i+354,s=r((10985-o)/5316)*r(50*o/17719)+r(o/5670)*r(43*o/15238),o=o-r((30-s)/15)*r(17719*s/50)-r(s/16)*r(15238*s/43)+29,h=r(24*o/709),u=o-r(709*h/24),c=30*i+s-30,{day:u,month:h,year:c}}function a(t,e,n){var a,i,s,u,h,c=parseInt(n),y=parseInt(e),f=parseInt(t),d=r((11*f+3)/30)+354*f+30*y-r((y-1)/2)+c+1948440-385-o;return d>2299160?(a=d+68569,i=r(4*a/146097),a-=r((146097*i+3)/4),s=r(4e3*(a+1)/1461001),a=a-r(1461*s/4)+31,u=r(80*a/2447),c=a-r(2447*u/80),a=r(u/11),y=u+2-12*a,f=100*(i-49)+s+a):(u=d+1402,h=r((u-1)/1461),a=u-1461*h,i=r((a-1)/365)-r(a/1461),s=a-365*i+30,u=r(80*s/2447),c=s-r(2447*u/80),s=r(u/11),y=u+2-12*s,f=4*h+i+s-4716),{day:c,month:y,year:f}}var o=1,i=function(t){return t=new Date(t),n(t.getFullYear(),t.getMonth()+1,t.getDate())},s=function(t,e,r){var n=a(t,e,r);return new Date(n.year,n.month-1,n.day)},u=function(t,e,r){if(t||(t=new Date),Date.isDate(t)){var n=i(t);return this.year=n.year,this.month=n.month,void(this.day=n.day)}this.year=t,this.month=e,this.day=r};u.prototype.getMonthStartWeekDate=function(){return u.getMonthStartWeekDate(this.year,this.month)},u.prototype.toDate=function(){return s(this.year,this.month,this.day)},u.toGregorian=function(t,e,r){var n=s(t,e,r);return new GregorianCalendar(n)},u.getMonthStartWeekDate=function(t,e){return s(t,e,1).getDay()+u.weekGap},u.weekGap=0,u.daysInMonth=[30,29,30,29,30,29,30,29,30,29,30,29],u.dayNames=["الإثنين","الثلاثاء","الأربعاء","الخميس","الجمعة","السبت","الأحد"],u.dayNamesShort=["إث","ثل","أر","خم","جم","سب","أح"],u.monthNames=["مُحَرَّم","صَفَر","رَبيع الأوّل","رَبيع الثاني","جُمادى الأولى","جُمادى الآخرة","رَجَب","شَعْبان","رَمَضان","شَوّال","ذو القعدة","ذو الحجة"],u.monthNamesShort=["مُحَر","صَفَر","رَبي","ثان","أول","آخر","رَجَب","شَعْب","رَمَض","شَوّا","قعد","حجة"],t.HijriCalendar=u}(window),function(t,e){"use strict"}(jQuery),function(){var t,e,r,n,a,o;e=navigator.platform.toUpperCase().indexOf("MAC")>=0,window.macKeys={cmdKey:!1,ctrlKey:!1,shiftKey:!1,altKey:!1,reset:function(){this.cmdKey=!1,this.ctrlKey=!1,this.shiftKey=!1,this.altKey=!1}},e&&(t=function(){var t,e=navigator.userAgent,r=e.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];return/trident/i.test(r[1])?(t=/\brv[ :]+(\d+)/g.exec(e)||[],{browser:"IE",version:t[1]||""}):"Chrome"===r[1]&&null!=(t=e.match(/\b(OPR|Edge)\/(\d+)/))?{browser:t.slice(1)[0].replace("OPR","Opera"),version:t.slice(1)[1]}:(r=r[2]?[r[1],r[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(t=e.match(/version\/(\d+)/i))&&r.splice(1,1,t[1]),{browser:r[0],version:r[1]})}(),r="Chrome"===t.browser||"Safari"===t.browser,n="Firefox"===t.browser,a="Opera"===t.browser,window.onkeydown=function(t){o=t.keyCode,(r||a)&&(91===o||93===o)||n&&224===o?macKeys.cmdKey=!0:16===o?macKeys.shiftKey=!0:17===o?macKeys.ctrlKey=!0:18===o&&(macKeys.altKey=!0)},window.onkeyup=function(t){o=t.keyCode,(r||a)&&(91===o||93===o)||n&&224===o?macKeys.cmdKey=!1:16===o?macKeys.shiftKey=!1:17===o?macKeys.ctrlKey=!1:18===o&&(macKeys.altKey=!1)},window.onblur=function(){macKeys.reset()})}(),function(t,e){"use strict";Number.prototype.pad=function(t){for(var e=String(this);e.length<(t||2);)e="0"+e;return e},Number.prototype.humanFileSize=function(t){var e=this,r=t?1e3:1024;if(Math.abs(e)<r)return e+" B";var n=t?["kB","MB","GB","TB","PB","EB","ZB","YB"]:["KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"],a=-1;do{e/=r,++a}while(Math.abs(e)>=r&&a<n.length-1);return e.toFixed(1)+" "+n[a]}}(window),function(t,e){"use strict";t.module("frontend.library").factory("operationResult",function(){var t=function(){this.error=null,this.status=!1,this.data=null};return t.success=function(e){return(new t).success(e)},t.failed=function(e){return(new t).failed(e)},t.prototype.success=function(t){return this.data=t,this.status=!0,this.error=null,this},t.prototype.failed=function(t){return this.data=null,this.status=!1,this.error=t,this},t})}(angular),function(t,e){"use strict";var r={g_days_in_month:[31,28,31,30,31,30,31,31,30,31,30,31],j_days_in_month:[31,31,31,31,31,31,30,30,30,30,30,29]};r.jalaliToGregorian=function(t,e,n){t=parseInt(t),e=parseInt(e),n=parseInt(n);for(var a=t-979,o=e-1,i=n-1,s=365*a+8*parseInt(a/33)+parseInt((a%33+3)/4),u=0;u<o;++u)s+=r.j_days_in_month[u];s+=i;var h=s+79,c=1600+400*parseInt(h/146097);h%=146097;var y=!0;h>=36525&&(h--,c+=100*parseInt(h/36524),h%=36524,h>=365?h++:y=!1),c+=4*parseInt(h/1461),(h%=1461)>=366&&(y=!1,h--,c+=parseInt(h/365),h%=365);for(var u=0;h>=r.g_days_in_month[u]+(1===u&&y);u++)h-=r.g_days_in_month[u]+(1===u&&y);return[c,u+1,h+1]},r.checkDate=function(t,e,n){return!(t<0||t>32767||e<1||e>12||n<1||n>r.j_days_in_month[e-1]+(12===e&&!((t-979)%33%4)))},r.gregorianToJalali=function(t,e,n){t=parseInt(t),e=parseInt(e),n=parseInt(n);for(var a=t-1600,o=e-1,i=n-1,s=365*a+parseInt((a+3)/4)-parseInt((a+99)/100)+parseInt((a+399)/400),u=0;u<o;++u)s+=r.g_days_in_month[u];o>1&&(a%4==0&&a%100!=0||a%400==0)&&++s,s+=i;var h=s-79,c=parseInt(h/12053);h%=12053;var y=979+33*c+4*parseInt(h/1461);(h%=1461)>=366&&(y+=parseInt((h-1)/365),h=(h-1)%365);for(var u=0;u<11&&h>=r.j_days_in_month[u];++u)h-=r.j_days_in_month[u];return[y,u+1,h+1]};var n=function(t){t=new Date(t);var e=r.gregorianToJalali(t.getFullYear(),t.getMonth()+1,t.getDate());return{year:e[0],month:e[1],day:e[2]}},a=function(t,e,n){var a=r.jalaliToGregorian(t,e,n);return new Date(a[0],a[1]-1,a[2])},o=function(t,e,r){if(t||(t=new Date),Date.isDate(t)){var a=n(t);return this.year=a.year,this.month=a.month,void(this.day=a.day)}this.year=t,this.month=e,this.day=r};o.prototype.getMonthStartWeekDate=function(){return o.getMonthStartWeekDate(this.year,this.month)},o.prototype.toDate=function(){return a(this.year,this.month,this.day)},o.toGregorian=function(){var t=a(this.year,this.month,this.day);return new GregorianCalendar(t)},o.getMonthStartWeekDate=function(t,e){var r=a(t,e,1).getDay()+o.weekGap;return r>7&&(r-=7),r},o.weekGap=2,o.daysInMonth=[31,31,31,31,31,31,30,30,30,30,30,29],o.dayNames=["شنبه","یک شنبه","دوشنبه","سه شنبه","چهار شنبه","پنج شنبه","جمعه"],o.dayNamesShort=["ش","۱ش","۲ش","۳ش","۴ش","۵ش","ج"],o.monthNames=["فروردین","اردیبهشت","خرداد","تیر","مرداد","شهریور","مهر","آبان","آذر","دی","بهمن","اسفند"],o.monthNamesShort=["فر","ارد","خرد","تیر","مرد","شهر","مهر","آب","آذر","دی","بهم","اسف"],t.PersianCalendar=o}(window),function(t){"use strict";String.prototype.format=function(t){return this.replace(/{(\d+)}/g,function(e,r,n,a){return t[r]?t[r]:e})},String.prototype.startsWith||(String.prototype.startsWith=function(t,e){return this.substr(e||0,t.length)===t}),String.prototype.toKebabCase=function(){return this.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}}(),function(t,e){"use strict";t.module("frontend.library").factory("uuid",function(){return function(){function t(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}})}(angular),function(t,e,r,n,a,o){"use strict";e.module("frontend.layouts")}(jQuery,angular,_,window,document);

@@ -7,2 +7,25 @@ (function ($, angular, underscore, window, document, undefined) {

'use strict';
angular.module('frontend.directives').directive('breadcrumbs', [
'breadcrumbsService',
function (breadcrumbsService) {
return {
restrict: 'E',
replace: true,
scope: {},
templateUrl: '/templates/framework/panel/directives/breadcrumbs/template.html',
link: function (scope, element, attr) {
scope.vm = { dataSource: breadcrumbsService };
scope.vm.init = function () {
scope.vm.bind();
};
scope.vm.bind = function () {
};
scope.vm.init();
}
};
}
]);
}(jQuery, angular, _, window, document));
(function ($, angular, underscore, window, document, undefined) {
'use strict';
angular.module('frontend.directives').directive('actionBar', [

@@ -92,25 +115,2 @@ 'identityService',

'use strict';
angular.module('frontend.directives').directive('breadcrumbs', [
'breadcrumbsService',
function (breadcrumbsService) {
return {
restrict: 'E',
replace: true,
scope: {},
templateUrl: '/templates/framework/panel/directives/breadcrumbs/template.html',
link: function (scope, element, attr) {
scope.vm = { dataSource: breadcrumbsService };
scope.vm.init = function () {
scope.vm.bind();
};
scope.vm.bind = function () {
};
scope.vm.init();
}
};
}
]);
}(jQuery, angular, _, window, document));
(function ($, angular, underscore, window, document, undefined) {
'use strict';
angular.module('frontend.directives').directive('panelWaiting', [function () {

@@ -117,0 +117,0 @@ return {

@@ -1,1 +0,1 @@

!function(e,t,n,i,o,c){"use strict";t.module("frontend.directives")}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("actionBar",["identityService","actionBarService","layoutTogglers","cultureService",function(e,t,n,o){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/action-bar/template.html",link:function(c,r,a){c.vm={dataSource:t,currentSet:[],page:1},c.vm.init=function(){c.vm.bind()},c.vm.logout=function(){e.clearToken(),i.location=e.accountPath.format([o.lang])},c.vm.onAction=function(e){e.action&&e.action(e)},c.vm.getNotificationClass=function(e,t){return 0===t?"notification-upperbody "+e.cssClass:"notification-lowerbody"},c.vm.collapseMenu=function(){n.toggleMenu()},c.vm.onNotificationsChanged=function(){c.vm.page=1,c.vm.setNotificationPage()},c.vm.prev=function(e){e.stopPropagation(),e.preventDefault(),1!==c.vm.page&&(c.vm.page--,c.vm.setNotificationPage())},c.vm.next=function(e){e.stopPropagation(),e.preventDefault();var n=Math.ceil((t.notifications||[]).length%3);c.vm.page>=n||(c.vm.page++,c.vm.setNotificationPage())},c.vm.setNotificationPage=function(){if(t.notifications.length<=3)return void(c.vm.currentSet=t.notifications.concat([]));var e=[],n=3*(c.vm.page-1),i=n+3;for(i>t.notifications.length&&(i=t.notifications.length),n;n<i;n++)e.push(t.notifications[n]);c.vm.currentSet=e},c.vm.bind=function(){c.$watchCollection("vm.dataSource.notifications",c.vm.onNotificationsChanged)},c.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("breadcrumbs",["breadcrumbsService",function(e){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/breadcrumbs/template.html",link:function(t,n,i){t.vm={dataSource:e},t.vm.init=function(){t.vm.bind()},t.vm.bind=function(){},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("panelWaiting",[function(){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/panel-waiting/template.html",link:function(e,t,n){e.vm={},e.vm.init=function(){e.vm.bind()},e.vm.bind=function(){},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("sideBar",["sideBarService","layoutTogglers",function(e,t){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/side-bar/template.html",link:function(n,i,o){n.vm={dataSource:e},n.vm.init=function(){n.vm.bind()},n.vm.bind=function(){},n.vm.close=function(){t.closeSidebar()},n.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("sideMenu",["sideMenuService",function(e){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/side-menu/template.html",link:function(t,n,i){t.vm={dataSource:e},t.vm.init=function(){t.vm.bind()},t.vm.bind=function(){},t.vm.signOut=function(){},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("sideNavigation",["$rootScope","$route","sideMenuService","cultureService",function(t,n,o,c){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/side-navigation/template.html",link:function(n,r,a){n.vm={dataSource:o.menus,selectedMenu:null,selectedSub:null},n.vm.init=function(){n.vm.bind(),n.vm.preSelect()},n.vm.getMenuClass=function(e){var t=n.vm.selectedMenu===e?"active":"";return t?((e.type||e.categories&&e.categories.length)&&(t+=" open"),t):t},n.vm.getSubMenuClass=function(e){return e===n.vm.selectedSub?"active":""},n.vm.subMenuAction=function(e){n.vm.selectedSub=e,e.action&&e.action(e)},n.vm.menuAction=function(e){n.vm.selectedMenu=e,e.action&&e.action(e)},n.vm.preSelect=function(){var e=!1,t=i.location.hash;n.vm.dataSource.forEach(function(i){i.url===t&&(e=!0,n.vm.selectedMenu=i,n.vm.findSub(i))}),e||n.vm.findSub()},n.vm.findSub=function(e){var t,o,c,r=i.location.hash,a=!1,u=!1;if(e&&e.categories)for(o=0;o<e.categories.length;o++){for(c=0;c<e.categories[o].menus.length;c++)if(e.categories[o].menus[c].href===r){a=!0,n.vm.selectedSub=e.categories[o].menus[c];break}if(a)break}else for(t=0;t<n.vm.dataSource.length;t++)if(n.vm.dataSource[t].href===r&&(n.vm.selectedMenu=n.vm.dataSource[t],u=!0),n.vm.dataSource[t].categories){for(o=0;o<n.vm.dataSource[t].categories.length;o++){for(c=0;c<n.vm.dataSource[t].categories[o].menus.length;c++)if(n.vm.dataSource[t].categories[o].menus[c].href===r){a=!0,n.vm.selectedMenu=n.vm.dataSource[t],n.vm.selectedSub=n.vm.dataSource[t].categories[o].menus[c];break}if(a)break}if(a||u)break}},n.vm.onWindowResize=function(){r.slimscroll({destroy:!0}),n.vm.create()},n.vm.create=function(){r.slimscroll({touchScrollStep:80,height:e(i).height()-175,position:c.rtl?"left":"right",size:"3px",color:"#29c7ca"})},n.vm.bind=function(){e(i).on("resize",n.vm.onWindowResize),n.$on("$destroy",function(){r.slimscroll({destroy:!0}),e(i).off("resize",n.vm.onWindowResize)}),t.$on("$routeChangeSuccess",function(){n.vm.preSelect()}),setTimeout(n.vm.create,500)},n.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("sideNavigationExtend",["$compile",function(t){return{restrict:"E",replace:!0,scope:{model:"<",tag:"<?"},compile:function(n){return{pre:function(n,i,o){var c="<0></0>".replace(/0/g,n.model),r=e(c);t(r)(n),i.replaceWith(r)}}}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("toolbar",["toolbarService",function(e){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/toolbar/template.html",link:function(t,n,i){t.vm={dataSource:e},t.vm.init=function(){t.vm.bind()},t.vm.bind=function(){},t.vm.onAction=function(e){e.action&&e.action(e)},t.vm.init()}}}])}(jQuery,angular,_,window,document);
!function(e,t,n,i,o,c){"use strict";t.module("frontend.directives")}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("breadcrumbs",["breadcrumbsService",function(e){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/breadcrumbs/template.html",link:function(t,n,i){t.vm={dataSource:e},t.vm.init=function(){t.vm.bind()},t.vm.bind=function(){},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("actionBar",["identityService","actionBarService","layoutTogglers","cultureService",function(e,t,n,o){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/action-bar/template.html",link:function(c,r,a){c.vm={dataSource:t,currentSet:[],page:1},c.vm.init=function(){c.vm.bind()},c.vm.logout=function(){e.clearToken(),i.location=e.accountPath.format([o.lang])},c.vm.onAction=function(e){e.action&&e.action(e)},c.vm.getNotificationClass=function(e,t){return 0===t?"notification-upperbody "+e.cssClass:"notification-lowerbody"},c.vm.collapseMenu=function(){n.toggleMenu()},c.vm.onNotificationsChanged=function(){c.vm.page=1,c.vm.setNotificationPage()},c.vm.prev=function(e){e.stopPropagation(),e.preventDefault(),1!==c.vm.page&&(c.vm.page--,c.vm.setNotificationPage())},c.vm.next=function(e){e.stopPropagation(),e.preventDefault();var n=Math.ceil((t.notifications||[]).length%3);c.vm.page>=n||(c.vm.page++,c.vm.setNotificationPage())},c.vm.setNotificationPage=function(){if(t.notifications.length<=3)return void(c.vm.currentSet=t.notifications.concat([]));var e=[],n=3*(c.vm.page-1),i=n+3;for(i>t.notifications.length&&(i=t.notifications.length),n;n<i;n++)e.push(t.notifications[n]);c.vm.currentSet=e},c.vm.bind=function(){c.$watchCollection("vm.dataSource.notifications",c.vm.onNotificationsChanged)},c.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("panelWaiting",[function(){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/panel-waiting/template.html",link:function(e,t,n){e.vm={},e.vm.init=function(){e.vm.bind()},e.vm.bind=function(){},e.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("sideBar",["sideBarService","layoutTogglers",function(e,t){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/side-bar/template.html",link:function(n,i,o){n.vm={dataSource:e},n.vm.init=function(){n.vm.bind()},n.vm.bind=function(){},n.vm.close=function(){t.closeSidebar()},n.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("sideMenu",["sideMenuService",function(e){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/side-menu/template.html",link:function(t,n,i){t.vm={dataSource:e},t.vm.init=function(){t.vm.bind()},t.vm.bind=function(){},t.vm.signOut=function(){},t.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("sideNavigation",["$rootScope","$route","sideMenuService","cultureService",function(t,n,o,c){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/side-navigation/template.html",link:function(n,r,a){n.vm={dataSource:o.menus,selectedMenu:null,selectedSub:null},n.vm.init=function(){n.vm.bind(),n.vm.preSelect()},n.vm.getMenuClass=function(e){var t=n.vm.selectedMenu===e?"active":"";return t?((e.type||e.categories&&e.categories.length)&&(t+=" open"),t):t},n.vm.getSubMenuClass=function(e){return e===n.vm.selectedSub?"active":""},n.vm.subMenuAction=function(e){n.vm.selectedSub=e,e.action&&e.action(e)},n.vm.menuAction=function(e){n.vm.selectedMenu=e,e.action&&e.action(e)},n.vm.preSelect=function(){var e=!1,t=i.location.hash;n.vm.dataSource.forEach(function(i){i.url===t&&(e=!0,n.vm.selectedMenu=i,n.vm.findSub(i))}),e||n.vm.findSub()},n.vm.findSub=function(e){var t,o,c,r=i.location.hash,a=!1,u=!1;if(e&&e.categories)for(o=0;o<e.categories.length;o++){for(c=0;c<e.categories[o].menus.length;c++)if(e.categories[o].menus[c].href===r){a=!0,n.vm.selectedSub=e.categories[o].menus[c];break}if(a)break}else for(t=0;t<n.vm.dataSource.length;t++)if(n.vm.dataSource[t].href===r&&(n.vm.selectedMenu=n.vm.dataSource[t],u=!0),n.vm.dataSource[t].categories){for(o=0;o<n.vm.dataSource[t].categories.length;o++){for(c=0;c<n.vm.dataSource[t].categories[o].menus.length;c++)if(n.vm.dataSource[t].categories[o].menus[c].href===r){a=!0,n.vm.selectedMenu=n.vm.dataSource[t],n.vm.selectedSub=n.vm.dataSource[t].categories[o].menus[c];break}if(a)break}if(a||u)break}},n.vm.onWindowResize=function(){r.slimscroll({destroy:!0}),n.vm.create()},n.vm.create=function(){r.slimscroll({touchScrollStep:80,height:e(i).height()-175,position:c.rtl?"left":"right",size:"3px",color:"#29c7ca"})},n.vm.bind=function(){e(i).on("resize",n.vm.onWindowResize),n.$on("$destroy",function(){r.slimscroll({destroy:!0}),e(i).off("resize",n.vm.onWindowResize)}),t.$on("$routeChangeSuccess",function(){n.vm.preSelect()}),setTimeout(n.vm.create,500)},n.vm.init()}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("sideNavigationExtend",["$compile",function(t){return{restrict:"E",replace:!0,scope:{model:"<",tag:"<?"},compile:function(n){return{pre:function(n,i,o){var c="<0></0>".replace(/0/g,n.model),r=e(c);t(r)(n),i.replaceWith(r)}}}}}])}(jQuery,angular,_,window,document),function(e,t,n,i,o,c){"use strict";t.module("frontend.directives").directive("toolbar",["toolbarService",function(e){return{restrict:"E",replace:!0,scope:{},templateUrl:"/templates/framework/panel/directives/toolbar/template.html",link:function(t,n,i){t.vm={dataSource:e},t.vm.init=function(){t.vm.bind()},t.vm.bind=function(){},t.vm.onAction=function(e){e.action&&e.action(e)},t.vm.init()}}}])}(jQuery,angular,_,window,document);

@@ -13,6 +13,6 @@ ;(function(){

$templateCache.put('/templates/framework/panel/directives/side-menu/template.html', '<div class="af-side-menu sidebar menu"><div class=sidebar-header><div class=header-brand><div class=brand-logo><img ng-src="{{:: vm.dataSource.logoPath}}" alt="{{:: vm.dataSource.applicationName}}"></div><div class=brand-slogan><div class=slogan-title>{{:: vm.dataSource.applicationName}}</div></div></div><div class=header-notification><a ng-if=vm.dataSource.notifications.length class=notification href="{{ vm.dataSource.notifications[0].href}}"><i class="{{ vm.dataSource.notifications[0].icon}}"></i> <span class=text>{{ vm.dataSource.notifications[0].title}}</span><div ng-if=vm.dataSource.notifications[0].sub class=more><span class=more-text>{{ vm.dataSource.notifications[0].sub}}</span> <i class="{{ vm.dataSource.notifications[0].subIcon}}"></i></div></a></div></div><div class=sidebar-menu><side-navigation></side-navigation></div><div class=sidebar-footer><div class=footer-avatar><img ng-src="{{ vm.dataSource.user.avatar}}" alt="{{ vm.dataSource.user.fullName}}"></div><div class=footer-user><a href=#/profile>{{ vm.dataSource.user.fullName}}</a></div><div class=footer-links><a href=javascript:void(0) ng-click=vm.signOut() class=links-logout><i class=pe-7s-power></i> <span>{{:: \'panel.general.signOut\' | translate}}</span></a></div></div></div>');
$templateCache.put('/templates/framework/panel/directives/side-bar/template.html', '<div class="af-side-bar sidebar form collapsed"><div id=helpbar class=helpbar><div class=sidebar-header><div class=header-title><i class=pe-7s-info></i> <span>{{vm.dataSource.title}}</span></div><div class=header-description>{{vm.dataSource.description}}</div><div ng-click=vm.close() class=header-close><i class=pe-7s-angle-right-circle></i></div></div><div class=sidebar-body>SIDE BAR CONTENT</div></div></div>');
$templateCache.put('/templates/framework/panel/directives/side-menu/template.html', '<div class="af-side-menu sidebar menu"><div class=sidebar-header><div class=header-brand><div class=brand-logo><img ng-src="{{:: vm.dataSource.logoPath}}" alt="{{:: vm.dataSource.applicationName}}"></div><div class=brand-slogan><div class=slogan-title>{{:: vm.dataSource.applicationName}}</div></div></div><div class=header-notification><a ng-if=vm.dataSource.notifications.length class=notification href="{{ vm.dataSource.notifications[0].href}}"><i class="{{ vm.dataSource.notifications[0].icon}}"></i> <span class=text>{{ vm.dataSource.notifications[0].title}}</span><div ng-if=vm.dataSource.notifications[0].sub class=more><span class=more-text>{{ vm.dataSource.notifications[0].sub}}</span> <i class="{{ vm.dataSource.notifications[0].subIcon}}"></i></div></a></div></div><div class=sidebar-menu><side-navigation></side-navigation></div><div class=sidebar-footer><div class=footer-avatar><img ng-src="{{ vm.dataSource.user.avatar}}" alt="{{ vm.dataSource.user.fullName}}"></div><div class=footer-user><a href=#/profile>{{ vm.dataSource.user.fullName}}</a></div><div class=footer-links><a href=javascript:void(0) ng-click=vm.signOut() class=links-logout><i class=pe-7s-power></i> <span>{{:: \'panel.general.signOut\' | translate}}</span></a></div></div></div>');
$templateCache.put('/templates/framework/panel/directives/side-navigation/template.html', '<ul class="af-action-bar menu"><li ng-repeat="menu in vm.dataSource" class={{vm.getMenuClass(menu)}}><a ng-if=::menu.href href="{{:: menu.href}}" ng-click=vm.menuAction(menu)><i class="{{:: menu.icon}}"></i> <span ng-if=::menu.title>{{:: menu.title}}</span> <span ng-if=::menu.titleTranslate>{{:: menu.titleTranslate | translate}}</span></a> <a ng-if=::!menu.href ng-click=vm.menuAction(menu) href=javascript:void(0)><i class="{{:: menu.icon}}"></i> <span ng-if=::menu.title>{{:: menu.title}}</span> <span ng-if=::menu.titleTranslate>{{:: menu.titleTranslate | translate}}</span></a><ul ng-if="::(menu.type === undefined || menu.type === \'submenu\')"><li ng-repeat-start="cat in menu.categories" class=submenu-title><span ng-if=::cat.title>{{:: cat.title}}</span> <span ng-if=::cat.titleTranslate>{{:: cat.titleTranslate | translate}}</span></li><li ng-repeat="sub in cat.menus"><a ng-if=::sub.href class={{vm.getSubMenuClass(sub)}} href="{{:: sub.href}}"><i class="{{:: sub.icon}}"></i> <span ng-if=::sub.title>{{:: sub.title}}</span> <span ng-if=::sub.titleTranslate>{{:: sub.titleTranslate | translate}}</span></a> <a ng-if=::!sub.href class={{vm.getSubMenuClass(sub)}} ng-click=vm.subMenuAction(sub) href=javascript:void(0)><i class="{{:: sub.icon}}"></i> <span ng-if=::sub.title>{{:: sub.title}}</span> <span ng-if=::sub.titleTranslate>{{:: sub.titleTranslate | translate}}</span></a></li><li ng-repeat-end class=seperator></li></ul><side-navigation-extend ng-if=::menu.type tag=menu model=menu.type></side-navigation-extend></li></ul>');

@@ -19,0 +19,0 @@

@@ -1,1 +0,1 @@

!function(){"use strict";angular.module("frontend.templates").run(["$templateCache",function(a){a.put("/templates/framework/panel/directives/action-bar/template.html",'<ul class="af-action-bar header-actions"><li class=actions-stretch-menu id=action-stretch-menu><div class=icon></div></li><li ng-click=vm.collapseMenu() id=action-menu-collapse><a><i class=pe-7s-menu></i></a></li><li ng-if=vm.dataSource.showNotifications class=actions-notification><a class=dropdown-toggle data-toggle=dropdown title="{{:: \'panel.general.notifications\' | translate}}" href=javascript:void(0)><i class=pe-7s-mail></i></a><ul ng-if=vm.dataSource.notifications.length class="dropdown-menu dropdown-arrow pull-right"><li><div class=notification-header><div class=header-title>{{:: \'panel.general.notifications\' | translate}}</div></div><div ng-repeat="notification in vm.currentSet" class="{{vm.getNotificationClass(notification, $index)}}"><div ng-if="$index === 0" class="widget {{notification.cssClass}}"><div class=row><div class="col-lg-6 h-70 w-70 p-5 align-center"><div><img ng-src={{notification.image}} class="w-60 h-60" alt={{notification.author}}></div></div><div class="col-lg-6 h-70 w-m-70 p-5 p-t-10"><div><strong class=f-13>{{notification.author}}</strong></div><div class=f-11>{{notification.subject}}</div></div></div></div><div class=notification-message><div class=message-title>{{notification.title}}</div><div class=message-time><i class="pe-7s-clock v-a-middle"></i> {{notification.date | moment}}</div></div></div><div class=notification-footer><a class=pull-left ng-click=vm.prev($event) href=javascript:void(0)><i class="pe-7s-angle-left-circle f-25"></i></a> <a class=pull-right ng-click=vm.next($event) href=javascript:void(0)><i class="pe-7s-angle-right-circle f-25"></i></a></div></li></ul></li><li ng-repeat="button in vm.dataSource.buttons"><a ng-if=::button.href href={{::button.href}}><i class={{::button.icon}}></i></a> <a ng-if=::!button.href ng-click=vm.onAction(button) href=javascript:void(0)><i class={{::button.icon}}></i></a></li><li><a ng-click=vm.logout() href=javascript:void(0)><i class=pe-7s-power></i></a></li></ul>'),a.put("/templates/framework/panel/directives/breadcrumbs/template.html",'<ul class="af-breadcrumbs breadcrumb"><li ng-repeat="crumb in vm.dataSource.crumbs" class="{{::($last?\'active\':\'\')}}"><a ng-if=::!$last href={{::crumb.href}}><i class={{::crumb.icon}}></i> <span>{{::crumb.title}}</span></a> <a ng-if=::$last href=javascript:void(0)><i class={{::crumb.icon}}></i> <span>{{::crumb.title}}</span></a></li></ul>'),a.put("/templates/framework/panel/directives/panel-waiting/template.html","<div class=af-panel-waiting>panel-waiting</div>"),a.put("/templates/framework/panel/directives/side-bar/template.html",'<div class="af-side-bar sidebar form collapsed"><div id=helpbar class=helpbar><div class=sidebar-header><div class=header-title><i class=pe-7s-info></i> <span>{{vm.dataSource.title}}</span></div><div class=header-description>{{vm.dataSource.description}}</div><div ng-click=vm.close() class=header-close><i class=pe-7s-angle-right-circle></i></div></div><div class=sidebar-body>SIDE BAR CONTENT</div></div></div>'),a.put("/templates/framework/panel/directives/side-menu/template.html",'<div class="af-side-menu sidebar menu"><div class=sidebar-header><div class=header-brand><div class=brand-logo><img ng-src="{{:: vm.dataSource.logoPath}}" alt="{{:: vm.dataSource.applicationName}}"></div><div class=brand-slogan><div class=slogan-title>{{:: vm.dataSource.applicationName}}</div></div></div><div class=header-notification><a ng-if=vm.dataSource.notifications.length class=notification href="{{ vm.dataSource.notifications[0].href}}"><i class="{{ vm.dataSource.notifications[0].icon}}"></i> <span class=text>{{ vm.dataSource.notifications[0].title}}</span><div ng-if=vm.dataSource.notifications[0].sub class=more><span class=more-text>{{ vm.dataSource.notifications[0].sub}}</span> <i class="{{ vm.dataSource.notifications[0].subIcon}}"></i></div></a></div></div><div class=sidebar-menu><side-navigation></side-navigation></div><div class=sidebar-footer><div class=footer-avatar><img ng-src="{{ vm.dataSource.user.avatar}}" alt="{{ vm.dataSource.user.fullName}}"></div><div class=footer-user><a href=#/profile>{{ vm.dataSource.user.fullName}}</a></div><div class=footer-links><a href=javascript:void(0) ng-click=vm.signOut() class=links-logout><i class=pe-7s-power></i> <span>{{:: \'panel.general.signOut\' | translate}}</span></a></div></div></div>'),a.put("/templates/framework/panel/directives/side-navigation/template.html",'<ul class="af-action-bar menu"><li ng-repeat="menu in vm.dataSource" class={{vm.getMenuClass(menu)}}><a ng-if=::menu.href href="{{:: menu.href}}" ng-click=vm.menuAction(menu)><i class="{{:: menu.icon}}"></i> <span ng-if=::menu.title>{{:: menu.title}}</span> <span ng-if=::menu.titleTranslate>{{:: menu.titleTranslate | translate}}</span></a> <a ng-if=::!menu.href ng-click=vm.menuAction(menu) href=javascript:void(0)><i class="{{:: menu.icon}}"></i> <span ng-if=::menu.title>{{:: menu.title}}</span> <span ng-if=::menu.titleTranslate>{{:: menu.titleTranslate | translate}}</span></a><ul ng-if="::(menu.type === undefined || menu.type === \'submenu\')"><li ng-repeat-start="cat in menu.categories" class=submenu-title><span ng-if=::cat.title>{{:: cat.title}}</span> <span ng-if=::cat.titleTranslate>{{:: cat.titleTranslate | translate}}</span></li><li ng-repeat="sub in cat.menus"><a ng-if=::sub.href class={{vm.getSubMenuClass(sub)}} href="{{:: sub.href}}"><i class="{{:: sub.icon}}"></i> <span ng-if=::sub.title>{{:: sub.title}}</span> <span ng-if=::sub.titleTranslate>{{:: sub.titleTranslate | translate}}</span></a> <a ng-if=::!sub.href class={{vm.getSubMenuClass(sub)}} ng-click=vm.subMenuAction(sub) href=javascript:void(0)><i class="{{:: sub.icon}}"></i> <span ng-if=::sub.title>{{:: sub.title}}</span> <span ng-if=::sub.titleTranslate>{{:: sub.titleTranslate | translate}}</span></a></li><li ng-repeat-end class=seperator></li></ul><side-navigation-extend ng-if=::menu.type tag=menu model=menu.type></side-navigation-extend></li></ul>'),a.put("/templates/framework/panel/directives/toolbar/template.html",'<div class="af-toolbar content-nav"><div class="navbar navbar-default content-nav-navbar"><div class=navbar-header><a data-toggle=collapse data-target=#navbar-collapse-2 class="navbar-toggle collapsed"><div class=icon></div></a> <a ng-if=::vm.dataSource.title href=javascript:void(0) class=navbar-brand>{{vm.dataSource.title}}</a> <a ng-if=::vm.dataSource.titleTranslate href=javascript:void(0) class=navbar-brand>{{vm.dataSource.titleTranslate | translate}}</a></div><div id=navbar-collapse-2 class="navbar-collapse collapse"><ul class="nav navbar-nav"><li ng-repeat="menu in vm.dataSource.menus" class="dropdown content-nav-navbar-fw"><a href=javascript:void(0) data-toggle=dropdown class=dropdown-toggle><span ng-if=::menu.title>{{:: menu.title}}</span> <span ng-if=::menu.titleTranslate>{{:: menu.titleTranslate | translate}}</span> <i class="dropdown-caret pe-7s-angle-down"></i></a><ul class=dropdown-menu><li><div class="content-nav-navbar-content p-b-0"><ul ng-if="::(menu.type === \'thumbnail\')" class="thumbnail-links row"><li ng-repeat="thumbnail in menu.thumbnails" class=col-sm-4><a ng-if=::thumbnail.href href={{::thumbnail.href}}><i class={{::thumbnail.icon}}></i><div ng-if=::thumbnail.title class=link-title>{{::thumbnail.title}}</div><div ng-if=::thumbnail.titleTranslate class=link-title>{{::thumbnail.titleTranslate | translate}}</div><p>{{::thumbnail.description}}</p></a> <a ng-if=::!thumbnail.href ng-click=vm.onAction(thumbnail) href=javascript:void(0)><i class={{::thumbnail.icon}}></i><div ng-if=::thumbnail.title class=link-title>{{::thumbnail.title}}</div><div ng-if=::thumbnail.titleTranslate class=link-title>{{::thumbnail.titleTranslate | translate}}</div><p>{{::thumbnail.description}}</p></a></li></ul><ul ng-if="::(menu.type === \'categories\')" class="categories-links row"><li ng-repeat="cat in menu.categories" class=col-sm-4><div ng-if=::cat.title class=category-title>{{::cat.title}}</div><div ng-if=::cat.titleTranslate class=category-title>{{::cat.titleTranslate | translate}}</div><ul><li ng-repeat="item in cat.items"><a ng-if=::item.href href={{::item.href}}><i class={{::item.icon}}></i> <span ng-if=::item.title>{{::item.title}}</span> <span ng-if=::item.titleTranslate>{{::item.titleTranslate|translate}}</span></a> <a ng-if=::!item.href href=javascript:void(0) ng-click=vm.onAction(item)><i class={{::item.icon}}></i> <span ng-if=::item.title>{{::item.title}}</span> <span ng-if=::item.titleTranslate>{{::item.titleTranslate|translate}}</span></a></li></ul></li></ul><ul ng-if="::(menu.type === \'gallery\')" class="gallery-links row"><li ng-repeat="item in menu.gallery" class=col-sm-3><a ng-if=::item.href href={{::item.href}}><img ng-src={{::item.image}} alt={{::item.title}}><div class=link-title>{{::item.title}}</div><p>{{::item.description}}</p></a> <a ng-if=::!item.href ng-click=vm.onAction(item) href=javascript:void(0)><img ng-src={{::item.image}} alt={{::item.title}}><div class=link-title>{{::item.title}}</div><p>{{::item.description}}</p></a></li></ul></div></li></ul></li></ul><ul ng-if=vm.dataSource.actions.length class="nav navbar-nav navbar-right"><li class=dropdown><a href=javascript:void(0) data-toggle=dropdown class=dropdown-toggle><span ng-if=::vm.dataSource.actionsTitle>{{::vm.dataSource.actionsTitle}}</span> <span ng-if=::vm.dataSource.actionsTitleTranslate>{{::vm.dataSource.actionsTitleTranslate | translate}}</span> <i class="dropdown-caret pe-7s-angle-down"></i></a><ul class=dropdown-menu><li ng-repeat="action in vm.dataSource.actions" class={{::action.cssClass}} ng-bind-html=action.content|to_trusted_html></li></ul></li></ul></div></div></div>')}])}();
!function(){"use strict";angular.module("frontend.templates").run(["$templateCache",function(a){a.put("/templates/framework/panel/directives/action-bar/template.html",'<ul class="af-action-bar header-actions"><li class=actions-stretch-menu id=action-stretch-menu><div class=icon></div></li><li ng-click=vm.collapseMenu() id=action-menu-collapse><a><i class=pe-7s-menu></i></a></li><li ng-if=vm.dataSource.showNotifications class=actions-notification><a class=dropdown-toggle data-toggle=dropdown title="{{:: \'panel.general.notifications\' | translate}}" href=javascript:void(0)><i class=pe-7s-mail></i></a><ul ng-if=vm.dataSource.notifications.length class="dropdown-menu dropdown-arrow pull-right"><li><div class=notification-header><div class=header-title>{{:: \'panel.general.notifications\' | translate}}</div></div><div ng-repeat="notification in vm.currentSet" class="{{vm.getNotificationClass(notification, $index)}}"><div ng-if="$index === 0" class="widget {{notification.cssClass}}"><div class=row><div class="col-lg-6 h-70 w-70 p-5 align-center"><div><img ng-src={{notification.image}} class="w-60 h-60" alt={{notification.author}}></div></div><div class="col-lg-6 h-70 w-m-70 p-5 p-t-10"><div><strong class=f-13>{{notification.author}}</strong></div><div class=f-11>{{notification.subject}}</div></div></div></div><div class=notification-message><div class=message-title>{{notification.title}}</div><div class=message-time><i class="pe-7s-clock v-a-middle"></i> {{notification.date | moment}}</div></div></div><div class=notification-footer><a class=pull-left ng-click=vm.prev($event) href=javascript:void(0)><i class="pe-7s-angle-left-circle f-25"></i></a> <a class=pull-right ng-click=vm.next($event) href=javascript:void(0)><i class="pe-7s-angle-right-circle f-25"></i></a></div></li></ul></li><li ng-repeat="button in vm.dataSource.buttons"><a ng-if=::button.href href={{::button.href}}><i class={{::button.icon}}></i></a> <a ng-if=::!button.href ng-click=vm.onAction(button) href=javascript:void(0)><i class={{::button.icon}}></i></a></li><li><a ng-click=vm.logout() href=javascript:void(0)><i class=pe-7s-power></i></a></li></ul>'),a.put("/templates/framework/panel/directives/breadcrumbs/template.html",'<ul class="af-breadcrumbs breadcrumb"><li ng-repeat="crumb in vm.dataSource.crumbs" class="{{::($last?\'active\':\'\')}}"><a ng-if=::!$last href={{::crumb.href}}><i class={{::crumb.icon}}></i> <span>{{::crumb.title}}</span></a> <a ng-if=::$last href=javascript:void(0)><i class={{::crumb.icon}}></i> <span>{{::crumb.title}}</span></a></li></ul>'),a.put("/templates/framework/panel/directives/panel-waiting/template.html","<div class=af-panel-waiting>panel-waiting</div>"),a.put("/templates/framework/panel/directives/side-menu/template.html",'<div class="af-side-menu sidebar menu"><div class=sidebar-header><div class=header-brand><div class=brand-logo><img ng-src="{{:: vm.dataSource.logoPath}}" alt="{{:: vm.dataSource.applicationName}}"></div><div class=brand-slogan><div class=slogan-title>{{:: vm.dataSource.applicationName}}</div></div></div><div class=header-notification><a ng-if=vm.dataSource.notifications.length class=notification href="{{ vm.dataSource.notifications[0].href}}"><i class="{{ vm.dataSource.notifications[0].icon}}"></i> <span class=text>{{ vm.dataSource.notifications[0].title}}</span><div ng-if=vm.dataSource.notifications[0].sub class=more><span class=more-text>{{ vm.dataSource.notifications[0].sub}}</span> <i class="{{ vm.dataSource.notifications[0].subIcon}}"></i></div></a></div></div><div class=sidebar-menu><side-navigation></side-navigation></div><div class=sidebar-footer><div class=footer-avatar><img ng-src="{{ vm.dataSource.user.avatar}}" alt="{{ vm.dataSource.user.fullName}}"></div><div class=footer-user><a href=#/profile>{{ vm.dataSource.user.fullName}}</a></div><div class=footer-links><a href=javascript:void(0) ng-click=vm.signOut() class=links-logout><i class=pe-7s-power></i> <span>{{:: \'panel.general.signOut\' | translate}}</span></a></div></div></div>'),a.put("/templates/framework/panel/directives/side-bar/template.html",'<div class="af-side-bar sidebar form collapsed"><div id=helpbar class=helpbar><div class=sidebar-header><div class=header-title><i class=pe-7s-info></i> <span>{{vm.dataSource.title}}</span></div><div class=header-description>{{vm.dataSource.description}}</div><div ng-click=vm.close() class=header-close><i class=pe-7s-angle-right-circle></i></div></div><div class=sidebar-body>SIDE BAR CONTENT</div></div></div>'),a.put("/templates/framework/panel/directives/side-navigation/template.html",'<ul class="af-action-bar menu"><li ng-repeat="menu in vm.dataSource" class={{vm.getMenuClass(menu)}}><a ng-if=::menu.href href="{{:: menu.href}}" ng-click=vm.menuAction(menu)><i class="{{:: menu.icon}}"></i> <span ng-if=::menu.title>{{:: menu.title}}</span> <span ng-if=::menu.titleTranslate>{{:: menu.titleTranslate | translate}}</span></a> <a ng-if=::!menu.href ng-click=vm.menuAction(menu) href=javascript:void(0)><i class="{{:: menu.icon}}"></i> <span ng-if=::menu.title>{{:: menu.title}}</span> <span ng-if=::menu.titleTranslate>{{:: menu.titleTranslate | translate}}</span></a><ul ng-if="::(menu.type === undefined || menu.type === \'submenu\')"><li ng-repeat-start="cat in menu.categories" class=submenu-title><span ng-if=::cat.title>{{:: cat.title}}</span> <span ng-if=::cat.titleTranslate>{{:: cat.titleTranslate | translate}}</span></li><li ng-repeat="sub in cat.menus"><a ng-if=::sub.href class={{vm.getSubMenuClass(sub)}} href="{{:: sub.href}}"><i class="{{:: sub.icon}}"></i> <span ng-if=::sub.title>{{:: sub.title}}</span> <span ng-if=::sub.titleTranslate>{{:: sub.titleTranslate | translate}}</span></a> <a ng-if=::!sub.href class={{vm.getSubMenuClass(sub)}} ng-click=vm.subMenuAction(sub) href=javascript:void(0)><i class="{{:: sub.icon}}"></i> <span ng-if=::sub.title>{{:: sub.title}}</span> <span ng-if=::sub.titleTranslate>{{:: sub.titleTranslate | translate}}</span></a></li><li ng-repeat-end class=seperator></li></ul><side-navigation-extend ng-if=::menu.type tag=menu model=menu.type></side-navigation-extend></li></ul>'),a.put("/templates/framework/panel/directives/toolbar/template.html",'<div class="af-toolbar content-nav"><div class="navbar navbar-default content-nav-navbar"><div class=navbar-header><a data-toggle=collapse data-target=#navbar-collapse-2 class="navbar-toggle collapsed"><div class=icon></div></a> <a ng-if=::vm.dataSource.title href=javascript:void(0) class=navbar-brand>{{vm.dataSource.title}}</a> <a ng-if=::vm.dataSource.titleTranslate href=javascript:void(0) class=navbar-brand>{{vm.dataSource.titleTranslate | translate}}</a></div><div id=navbar-collapse-2 class="navbar-collapse collapse"><ul class="nav navbar-nav"><li ng-repeat="menu in vm.dataSource.menus" class="dropdown content-nav-navbar-fw"><a href=javascript:void(0) data-toggle=dropdown class=dropdown-toggle><span ng-if=::menu.title>{{:: menu.title}}</span> <span ng-if=::menu.titleTranslate>{{:: menu.titleTranslate | translate}}</span> <i class="dropdown-caret pe-7s-angle-down"></i></a><ul class=dropdown-menu><li><div class="content-nav-navbar-content p-b-0"><ul ng-if="::(menu.type === \'thumbnail\')" class="thumbnail-links row"><li ng-repeat="thumbnail in menu.thumbnails" class=col-sm-4><a ng-if=::thumbnail.href href={{::thumbnail.href}}><i class={{::thumbnail.icon}}></i><div ng-if=::thumbnail.title class=link-title>{{::thumbnail.title}}</div><div ng-if=::thumbnail.titleTranslate class=link-title>{{::thumbnail.titleTranslate | translate}}</div><p>{{::thumbnail.description}}</p></a> <a ng-if=::!thumbnail.href ng-click=vm.onAction(thumbnail) href=javascript:void(0)><i class={{::thumbnail.icon}}></i><div ng-if=::thumbnail.title class=link-title>{{::thumbnail.title}}</div><div ng-if=::thumbnail.titleTranslate class=link-title>{{::thumbnail.titleTranslate | translate}}</div><p>{{::thumbnail.description}}</p></a></li></ul><ul ng-if="::(menu.type === \'categories\')" class="categories-links row"><li ng-repeat="cat in menu.categories" class=col-sm-4><div ng-if=::cat.title class=category-title>{{::cat.title}}</div><div ng-if=::cat.titleTranslate class=category-title>{{::cat.titleTranslate | translate}}</div><ul><li ng-repeat="item in cat.items"><a ng-if=::item.href href={{::item.href}}><i class={{::item.icon}}></i> <span ng-if=::item.title>{{::item.title}}</span> <span ng-if=::item.titleTranslate>{{::item.titleTranslate|translate}}</span></a> <a ng-if=::!item.href href=javascript:void(0) ng-click=vm.onAction(item)><i class={{::item.icon}}></i> <span ng-if=::item.title>{{::item.title}}</span> <span ng-if=::item.titleTranslate>{{::item.titleTranslate|translate}}</span></a></li></ul></li></ul><ul ng-if="::(menu.type === \'gallery\')" class="gallery-links row"><li ng-repeat="item in menu.gallery" class=col-sm-3><a ng-if=::item.href href={{::item.href}}><img ng-src={{::item.image}} alt={{::item.title}}><div class=link-title>{{::item.title}}</div><p>{{::item.description}}</p></a> <a ng-if=::!item.href ng-click=vm.onAction(item) href=javascript:void(0)><img ng-src={{::item.image}} alt={{::item.title}}><div class=link-title>{{::item.title}}</div><p>{{::item.description}}</p></a></li></ul></div></li></ul></li></ul><ul ng-if=vm.dataSource.actions.length class="nav navbar-nav navbar-right"><li class=dropdown><a href=javascript:void(0) data-toggle=dropdown class=dropdown-toggle><span ng-if=::vm.dataSource.actionsTitle>{{::vm.dataSource.actionsTitle}}</span> <span ng-if=::vm.dataSource.actionsTitleTranslate>{{::vm.dataSource.actionsTitleTranslate | translate}}</span> <i class="dropdown-caret pe-7s-angle-down"></i></a><ul class=dropdown-menu><li ng-repeat="action in vm.dataSource.actions" class={{::action.cssClass}} ng-bind-html=action.content|to_trusted_html></li></ul></li></ul></div></div></div>')}])}();

@@ -8,6 +8,8 @@ (function ($, angular, underscore, window, document, undefined) {

function ($http, $q, Upload) {
var PREFIX = '/api/v1/';
var prefix = function (url) {
return '/api/v1/' + url;
return PREFIX + url;
};
return {
PREFIX: PREFIX,
get: function (path, model) {

@@ -118,2 +120,17 @@ return $http.get(prefix(path || ''), model || {});

return /\.(gif|jpg|bmp|jpeg|tiff|png)$/i.test(path);
},
download: function (path, options) {
var form = document.createElement('form');
form.setAttribute('method', 'post');
form.setAttribute('action', path);
form.setAttribute('target', '_blank');
Object.keys(options || {}).forEach(function (key) {
var hiddenField = document.createElement('input');
hiddenField.setAttribute('name', key);
hiddenField.setAttribute('value', options[key]);
form.appendChild(hiddenField);
});
document.body.appendChild(form);
form.submit();
$(form).remove();
}

@@ -120,0 +137,0 @@ };

@@ -1,1 +0,1 @@

!function(t,n,e,r,o,u){"use strict";n.module("frontend.services").factory("apiService",["$http","$q","Upload",function(t,n,e){var r=function(t){return"/api/v1/"+t};return{get:function(n,e){return t.get(r(n||""),e||{})},post:function(n,e){return t.post(r(n||""),e||{})},upload:function(t,n){e.upload({url:r(t),data:n.data,arrayKey:"",file:n.file}).then(function(t){n.onSuccess&&n.onSuccess(t.data)},n.onError,function(t){var e=parseInt(100*t.loaded/t.total);n.onProgress&&n.onProgress(e,t.config.data)})}}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").run(["$rootScope","appWaitingService",function(t,n){t.$on("$routeChangeStart",function(){n.start()})}]).factory("appWaitingService",["$rootScope",function(t){return{stop:function(){t.appWaiting=!1},start:function(){t.appWaiting=!0}}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").factory("commonService",["$compile","$rootScope","$timeout","$interval","$location","$q","cultureService","translateService","operationResult","uuid","layoutService",function(t,n,e,r,o,u,i,c,a,s,f){return{$compile:t,$rootScope:n,$timeout:e,$interval:r,$location:o,$q:u,culture:i,translate:c,OperationResult:a,uuid:s,layout:f}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").factory("cultureService",[function(){return{lang:o.getElementsByTagName("html")[0].getAttribute("lang"),rtl:"rtl"===o.getElementsByTagName("html")[0].getAttribute("dir")}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").factory("fileService",[function(){return{getExtention:function(t){var n=(t||"").lastIndexOf(".");return-1===n?t.toLowerCase():t.substring(n).toLowerCase()},isImage:function(t){return/\.(gif|jpg|bmp|jpeg|tiff|png)$/i.test(t)}}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").factory("formService",["$q",function(t){return{validate:function(){return t(function(t,n){t(!0)})},getModel:function(n){return t(function(t,n){t({})})},setModel:function(n,e){return t(function(t,n){t()})}}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").factory("identityService",["ipCookie",function(t){return{accountPath:"/{0}/account",setToken:function(n,e){t("userId",n,{path:"/"}),t("token",e,{path:"/"})},clearToken:function(){t.remove("userId",{path:"/"}),t.remove("token",{path:"/"})},getToken:function(){return t("token")}}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").factory("layoutService",["$rootScope",function(t){var n={};return Object.defineProperty(n,"bodyClass",{get:function(){return t.layout||(t.layout={}),t.layout.bodyClass},set:function(n){t.layout||(t.layout={}),t.layout.bodyClass=n}}),n}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").factory("notificationService",["translateService",function(t){return{error:function(n,e,r,o){void 0===o&&(o=!0),o&&(n=t(n),e=t(e)),toastr.error(n,e,r)},success:function(n,e,r,o){void 0===o&&(o=!0),o&&(n=t(n),e=t(e)),toastr.success(n,e,r)},info:function(n,e,r,o){void 0===o&&(o=!0),o&&(n=t(n),e=t(e)),toastr.info(n,e,r)}}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").factory("recursion-helper",["$compile",function(t){return{compile:function(e,r){n.isFunction(r)&&(r={post:r});var o,u=e.contents().remove();return{pre:r&&r.pre?r.pre:null,post:function(n,e){o||(o=t(u)),o(n,function(t){e.append(t)}),r&&r.post&&r.post.apply(null,arguments)}}}}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").run(["$rootScope",function(t){Object.defineProperty(t.constructor.prototype,"$console",{get:function(){return console}}),t.constructor.prototype.$timeout=function(t,n){var e=this;setTimeout(function(){e.$apply.call(e,t)},n||0)}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").factory("translateService",[function(){return function(t){return r.achasoft.i18n[t]||t}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.services").factory("validationService",[function(){return{extractErrors:function(t){if(!t)return[];if(Array.isArray(t))return t;var e=[];return Object.keys(t).forEach(function(r){var o=t[r];if(n.isString(o))e.push(o);else if(Array.isArray(o)&&o.length){var u=o[o.length-1];u.startsWith(r)?e.push(u):e.push("{0} {1}".format([r,u]))}}),e}}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.filters").filter("cultured_date",["cultureService",function(t){return function(n,e,r){r=r||"yyyy-mm-dd";var o;switch(e||t.lang){case"fa":o=PersianCalendar;break;case"ar":o=HijriCalendar;break;default:o=GregorianCalendar}var u=new o(n);return r.replace("yyyy",u.year).replace("mm",u.month.pad(2)).replace("dd",u.day.pad(2))}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.filters").filter("human_size",function(){return function(t){return(t||0).humanFileSize()}})}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.filters").filter("moment",function(){return function(t){return t}})}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.filters").filter("range",[function(){return function(t,n,e){e||(e=n,n=0);for(var r=n;r<e;r++)t.push(r);return t}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.filters").filter("translate",["translateService",function(t){return function(n){return t(n)}}]),n.module("frontend.filters").filter("textOrTranslate",["translateService",function(t){return function(n,e){return e?t(e):n||""}}])}(jQuery,angular,_,window,document),function(t,n,e,r,o,u){"use strict";n.module("frontend.filters").filter("to_trusted_html",["$sce",function(t){return function(n){return t.trustAsHtml(n)}}])}(jQuery,angular,_,window,document);
!function(t,e,n,r,o,u){"use strict";e.module("frontend.services").factory("apiService",["$http","$q","Upload",function(t,e,n){var r=function(t){return"/api/v1/"+t};return{PREFIX:"/api/v1/",get:function(e,n){return t.get(r(e||""),n||{})},post:function(e,n){return t.post(r(e||""),n||{})},upload:function(t,e){n.upload({url:r(t),data:e.data,arrayKey:"",file:e.file}).then(function(t){e.onSuccess&&e.onSuccess(t.data)},e.onError,function(t){var n=parseInt(100*t.loaded/t.total);e.onProgress&&e.onProgress(n,t.config.data)})}}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").run(["$rootScope","appWaitingService",function(t,e){t.$on("$routeChangeStart",function(){e.start()})}]).factory("appWaitingService",["$rootScope",function(t){return{stop:function(){t.appWaiting=!1},start:function(){t.appWaiting=!0}}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").factory("commonService",["$compile","$rootScope","$timeout","$interval","$location","$q","cultureService","translateService","operationResult","uuid","layoutService",function(t,e,n,r,o,u,i,c,a,s,f){return{$compile:t,$rootScope:e,$timeout:n,$interval:r,$location:o,$q:u,culture:i,translate:c,OperationResult:a,uuid:s,layout:f}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").factory("cultureService",[function(){return{lang:o.getElementsByTagName("html")[0].getAttribute("lang"),rtl:"rtl"===o.getElementsByTagName("html")[0].getAttribute("dir")}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").factory("fileService",[function(){return{getExtention:function(t){var e=(t||"").lastIndexOf(".");return-1===e?t.toLowerCase():t.substring(e).toLowerCase()},isImage:function(t){return/\.(gif|jpg|bmp|jpeg|tiff|png)$/i.test(t)},download:function(e,n){var r=o.createElement("form");r.setAttribute("method","post"),r.setAttribute("action",e),r.setAttribute("target","_blank"),Object.keys(n||{}).forEach(function(t){var e=o.createElement("input");e.setAttribute("name",t),e.setAttribute("value",n[t]),r.appendChild(e)}),o.body.appendChild(r),r.submit(),t(r).remove()}}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").factory("formService",["$q",function(t){return{validate:function(){return t(function(t,e){t(!0)})},getModel:function(e){return t(function(t,e){t({})})},setModel:function(e,n){return t(function(t,e){t()})}}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").factory("identityService",["ipCookie",function(t){return{accountPath:"/{0}/account",setToken:function(e,n){t("userId",e,{path:"/"}),t("token",n,{path:"/"})},clearToken:function(){t.remove("userId",{path:"/"}),t.remove("token",{path:"/"})},getToken:function(){return t("token")}}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").factory("layoutService",["$rootScope",function(t){var e={};return Object.defineProperty(e,"bodyClass",{get:function(){return t.layout||(t.layout={}),t.layout.bodyClass},set:function(e){t.layout||(t.layout={}),t.layout.bodyClass=e}}),e}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").factory("notificationService",["translateService",function(t){return{error:function(e,n,r,o){void 0===o&&(o=!0),o&&(e=t(e),n=t(n)),toastr.error(e,n,r)},success:function(e,n,r,o){void 0===o&&(o=!0),o&&(e=t(e),n=t(n)),toastr.success(e,n,r)},info:function(e,n,r,o){void 0===o&&(o=!0),o&&(e=t(e),n=t(n)),toastr.info(e,n,r)}}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").factory("recursion-helper",["$compile",function(t){return{compile:function(n,r){e.isFunction(r)&&(r={post:r});var o,u=n.contents().remove();return{pre:r&&r.pre?r.pre:null,post:function(e,n){o||(o=t(u)),o(e,function(t){n.append(t)}),r&&r.post&&r.post.apply(null,arguments)}}}}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").run(["$rootScope",function(t){Object.defineProperty(t.constructor.prototype,"$console",{get:function(){return console}}),t.constructor.prototype.$timeout=function(t,e){var n=this;setTimeout(function(){n.$apply.call(n,t)},e||0)}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").factory("translateService",[function(){return function(t){return r.achasoft.i18n[t]||t}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.services").factory("validationService",[function(){return{extractErrors:function(t){if(!t)return[];if(Array.isArray(t))return t;var n=[];return Object.keys(t).forEach(function(r){var o=t[r];if(e.isString(o))n.push(o);else if(Array.isArray(o)&&o.length){var u=o[o.length-1];u.startsWith(r)?n.push(u):n.push("{0} {1}".format([r,u]))}}),n}}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.filters").filter("cultured_date",["cultureService",function(t){return function(e,n,r){r=r||"yyyy-mm-dd";var o;switch(n||t.lang){case"fa":o=PersianCalendar;break;case"ar":o=HijriCalendar;break;default:o=GregorianCalendar}var u=new o(e);return r.replace("yyyy",u.year).replace("mm",u.month.pad(2)).replace("dd",u.day.pad(2))}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.filters").filter("human_size",function(){return function(t){return(t||0).humanFileSize()}})}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.filters").filter("moment",function(){return function(t){return t}})}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.filters").filter("range",[function(){return function(t,e,n){n||(n=e,e=0);for(var r=e;r<n;r++)t.push(r);return t}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.filters").filter("translate",["translateService",function(t){return function(e){return t(e)}}]),e.module("frontend.filters").filter("textOrTranslate",["translateService",function(t){return function(e,n){return n?t(n):e||""}}])}(jQuery,angular,_,window,document),function(t,e,n,r,o,u){"use strict";e.module("frontend.filters").filter("to_trusted_html",["$sce",function(t){return function(e){return t.trustAsHtml(e)}}])}(jQuery,angular,_,window,document);

@@ -33,6 +33,6 @@ ;(function(){

$templateCache.put('/templates/framework/directives/grid-view/template.html', '<div class="af-grid-view af-component">grid-view</div>');
$templateCache.put('/templates/framework/directives/google-map/template.html', '<div class="af-google-map af-component"><waiting ng-if=waiting></waiting><div class=vw-google-map></div></div>');
$templateCache.put('/templates/framework/directives/grid-view/template.html', '<div class="af-grid-view af-component">grid-view</div>');
$templateCache.put('/templates/framework/directives/modal/confirm.html', '<div class=confirm-body><h3>{{message|textOrTranslate:messageTranslate}}</h3></div>');

@@ -39,0 +39,0 @@

@@ -1,2 +0,2 @@

!function(){"use strict";angular.module("frontend.templates").run(["$templateCache",function(e){e.put("/templates/framework/layout/index.html",""),e.put("/templates/framework/directives/accordion/template.html",'<div ng-show=visible class="af-accordion af-component accordion panel-group {{::cssClass}}" role=tablist><div ng-repeat="step in steps" class="panel panel-default"><div class=panel-heading role=tab><div class=panel-title><a role=button href=javascript:void(0) data-toggle=collapse ng-click=vm.onPick(step) class="{{step !== model?\'collapsed\':\'\'}}">&nbsp;{{$eval(step.title)|textOrTranslate:$eval(step.titleTranslate)}}</a></div></div><div class="panel-collapse {{step !== model?\'collapse\':\'\'}}" role=tabpanel><div class=panel-body ng-bind-html=step.content|to_trusted_html></div></div></div></div>'),e.put("/templates/framework/directives/calendar/template.html","<div ng-show=visible class=\"af-calendar af-component {{::cssClass}} datepicker datepicker-orient-left datepicker-orient-top\"><div ng-if=\"mode ==='days'\" class=datepicker-days><table><thead><tr><th class=\"{{::vm.cultureService.rtl ? 'next' : 'prev'}}\" ng-click=vm.forwardMonth()>«</th><th colspan=5 class=datepicker-switch ng-click=\"vm.switch('months')\">{{vm.getMonthName()}}&nbsp;{{vm.tempYear}}</th><th class=\"{{::vm.cultureService.rtl ? 'prev' : 'next'}}\" ng-click=vm.backwardMonth()>»</th></tr><tr><th ng-repeat=\"title in ::vm.calendar.dayNamesShort\" class=dow>{{::title}}</th></tr></thead><tbody><tr ng-repeat=\"week in vm.days\"><td ng-repeat=\"day in ::week\" ng-click=\"vm.update(day.year, day.month, day.number)\" class=\"{{::day.old?'old':''}} day {{!day.old &&day.number === vm.current.day?'active':''}}\">{{day.number}}</td></tr></tbody><tfoot><tr><th colspan=7 ng-click=vm.setToday() class=today>{{::'general.today'|translate}}</th></tr></tfoot></table></div><div ng-if=\"mode ==='months'\" class=datepicker-months><table class=table-condensed><thead><tr><th class=\"{{::vm.cultureService.rtl ? 'next' : 'prev'}}\" ng-click=vm.forwardYears(1)>«</th><th colspan=5 class=datepicker-switch ng-click=\"vm.switch('years')\">{{vm.tempYear}}</th><th class=\"{{::vm.cultureService.rtl ? 'prev' : 'next'}}\" ng-click=vm.backwardYears(1)>»</th></tr></thead><tbody><tr><td colspan=7><span ng-repeat=\"name in vm.calendar.monthNames\" ng-click=vm.updateMonth($index+1) class=\"month {{$index+1 === vm.current.month?'active':''}}\">{{::name}}</span></td></tr></tbody><tfoot><tr><th colspan=7 ng-click=vm.setToday() class=today>{{::'general.today'|translate}}</th></tr></tfoot></table></div><div ng-if=\"mode ==='years'\" class=datepicker-years><table class=table-condensed><thead><tr><th class=\"{{::vm.cultureService.rtl ? 'next' : 'prev'}}\" ng-click=vm.forwardYears(12)>«</th><th colspan=5 class=datepicker-switch ng-click=\"vm.switch('days')\">{{vm.tempYears[0]}}-{{vm.tempYears[vm.tempYears.length-1]}}</th><th class=\"{{::vm.cultureService.rtl ? 'prev' : 'next'}}\" ng-click=vm.backwardYears(12)>»</th></tr></thead><tbody><tr><td colspan=7><span ng-click=vm.updateYear(year) ng-repeat=\"year in vm.tempYears\" class=\"year {{year === vm.current.year?'active':''}} {{::$first?'old':''}} {{::$last?'new':''}}\">{{::year}}</span></td></tr></tbody><tfoot><tr><th colspan=7 ng-click=vm.setToday() class=today>{{::'general.today'|translate}}</th></tr></tfoot></table></div></div>"),e.put("/templates/framework/directives/captcha/template.html",'<div class="af-captcha af-component"><input type=text ng-model=model.value number-only maxlength=4 ng-readonly=vm.waiting> <img width=80 height=30 ng-src={{vm.image}}> <button ng-disabled=vm.waiting ng-click=vm.refresh()><i class="fa fa-refresh"></i></button></div>'),e.put("/templates/framework/directives/checkbox/template.html",'<div ng-show=visible class="af-checkbox af-component checkbox {{::cssClass}}" ng-click=vm.toggle($event)><label><input ng-disabled=disabled type=checkbox ng-model=model ng-checked="model===true"> <span class=text>{{::label|textOrTranslate:labelTranslate}}</span></label></div>'),e.put("/templates/framework/directives/crumb-nav/template.html",'<div ng-show=visible class="af-crumb-nav clearfix {{::cssClass}}"><div ng-click=vm.onRoot() class=parent-button-container><a href=javascript:void(0)><i class="af-icon af-icon-hdd"></i></a><div class=show-sub-folders><i class="af-icon af-icon-chevron_{{::vm.rtl ? \'left\':\'right\'}}"></i></div></div><div class=path-inner-container><div class="slide-handler left-slide-handler" ng-click=vm.scrollRight()><i class="fa fa-chevron-right"></i></div><div class="slide-handler right-slide-handler" ng-click=vm.scrollLeft()><i class="fa fa-chevron-left"></i></div><ul class="root-folders clearfix"><li ng-repeat="item in model" class="root-folder open"><a href=javascript:void(0) ng-click=vm.onAction(item)><i ng-if=::item.icon class={{::$eval(item.icon)}}></i> <span>{{::item.title|textOrTranslate:item.titleTranslate}}</span></a><div ng-if=::!$last class=show-sub-folders ng-click="vm.onExpand(item, $event)"><i class="af-icon af-icon-chevron_{{::vm.rtl ? \'left\':\'right\'}}"></i><ul ng-if=item.items.length&&item.expand class=sub-folders><li ng-repeat="sub in item.items"><a ng-click=vm.onAction(sub) href=javascript:void(0)><i ng-if=::sub.icon class={{::$eval(sub.icon)}}></i> <span>{{::sub.title|textOrTranslate:sub.titleTranslate}}</span></a></li></ul></div></li></ul></div><div class=refresh-button-container><button ng-disabled=waiting ng-click=vm.refresh()><i class="af-icon af-icon-refresh"></i></button></div></div>'),e.put("/templates/framework/directives/date-picker/template.html","<div ng-show=visible ng-click=vm.prevent($event) class=\"af-date-picker {{disabled?'disabled':''}} af-component input-group {{::cssClass}}\"><input ng-click=vm.toggle() value={{vm.model|cultured_date:culture:format}} class=form-control type=text readonly> <span ng-click=vm.toggle() class=input-group-addon><i class=\"fa fa-calendar\"></i></span><div ng-if=vm.showPlate><calendar css-class=\"'datepicker-dropdown dropdown-menu'\" culture=$parent.culture on-change=$parent.vm.onChange model=$parent.vm.model></calendar></div></div>"),e.put("/templates/framework/directives/dropdown/template.html","<div ng-show=visible ng-click=vm.prevent($event) class=\"af-dropdown af-component dropdown {{vm.plate?'open':''}} {{::cssClass}}\"><button class=\"btn btn-default dropdown-toggle\" ng-disabled=disabled||vm.waiting type=button ng-click=vm.toggle()>&nbsp;{{vm.getText()}} <span class=caret></span></button><ul ng-if=vm.plate class=dropdown-menu><li ng-if=::!item.separator class=\"{{item[valueField] === model ? 'active' : ''}}\" ng-repeat-start=\"item in items\" ng-click=vm.onPick(item)><a href=javascript:void(0)>{{::item[textField]}}</a></li><li ng-repeat-end ng-if=::item.separator role=separator class=divider></li></ul></div>"),e.put("/templates/framework/directives/editor/template.html",'<div ng-show=visible class="af-editor af-component {{::cssClass}}"><textarea id={{::vm.uuid}}></textarea></div>'),e.put("/templates/framework/directives/file-explorer/template.html",'<div class="af-file-explorer-preview af-component {{mode}}"><div class="clearfix details-tape"><div class="details name"><span class=details-text>{{:: \'general.name\'|translate}}</span> <i class="af-icon af-icon-chevron_up"></i><div class=show-settings><i ng-click="vm.showSort(\'namePlate\', $event)" class="af-icon af-icon-chevron_down"></i><ul ng-if=vm.namePlate class=details-menu><li ng-click="vm.onSort(\'name\', true, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortAscending\'|translate}}</span></a></li><li ng-click="vm.onSort(\'name\', false, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortDescending\'|translate}}</span></a></li></ul></div></div><div class="details date-modified"><span class=details-text>{{:: \'general.dateModified\'|translate}}</span><div class=show-settings><i class="af-icon af-icon-chevron_down"></i><ul ng-if=vm.datePlate class=details-menu><li ng-click="vm.onSort(\'date\', true, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortAscending\'|translate}}</span></a></li><li ng-click="vm.onSort(\'date\', false, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortDescending\'|translate}}</span></a></li></ul></div></div><div class="details type"><span class=details-text>{{:: \'general.type\'|translate}}</span><div class=show-settings><i class="af-icon af-icon-chevron_down"></i><ul ng-if=vm.typePlate class=details-menu><li ng-click="vm.onSort(\'type\', true, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortAscending\'|translate}}</span></a></li><li ng-click="vm.onSort(\'type\', false, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortDescending\'|translate}}</span></a></li></ul></div></div><div class="details size"><span class=details-text>{{:: \'general.size\'|translate}}</span><div class=show-settings><i class="af-icon af-icon-chevron_down"></i><ul ng-if=vm.sizePlate class=details-menu><li ng-click="vm.onSort(\'size\', true, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortAscending\'|translate}}</span></a></li><li ng-click="vm.onSort(\'size\', false, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortDescending\'|translate}}</span></a></li></ul></div></div></div><ul class=details-mode ng-click=vm.unSelect()><li ng-if="path !== \'/\'" ng-dblclick=vm.onParent() class="clearfix folder"><div class="details name folder-item"><i class="af-icon-50 af-icon-folder"></i> <span>..</span></div><span class="details date-modified">&nbsp;</span> <span class="details type">&nbsp;</span> <span class="details size">&nbsp;</span></li><li ng-if=newFolder ng-dblclick=vm.onNewFolder() class="clearfix folder new-folder"><div class="details name folder-item"><i class="af-icon-50 af-icon-new-folder"></i> <input type=text ng-if=!vm.creating ng-click=vm.prevent($event) ng-dblclick=vm.prevent($event) ng-model=vm.newFolder on-enter=vm.onNewFolder()> <i ng-if=vm.creating class="fa fa-spin fa-spinner"></i></div><span class="details date-modified">&nbsp;</span> <span class="details type">&nbsp;</span> <span class="details size">&nbsp;</span></li><li ng-repeat="item in items|filter:search" ng-dblclick="vm.onDoubleClick(item, $event)" ng-click="vm.onClick(item, $event)" class="clearfix {{::item.folder?\'folder\':\'file\'}} {{item.selected?\'selected\':\'\'}}"><div class="details name {{::item.folder?\'folder\':\'file\'}}-item"><i class="af-icon-50 {{::vm.getIcon(item)}}"></i> <i ng-if=item.updating class="fa fa-spinner fa-spin"></i> <span ng-if=!item.editting>{{::item.name}}</span> <input type=text ng-if=item.editting&&!item.updating ng-click=vm.prevent($event) ng-dblclick=vm.prevent($event) ng-model=item.newName on-enter=vm.onRename(item)></div><span class="details date-modified">{{::item.date|cultured_date}}</span> <span class="details type">{{vm.getExtention(item)}}</span> <span class="details size">{{::item.size | human_size}}</span></li></ul></div>'),e.put("/templates/framework/directives/file-manager/template.html",'<div ng-show=visible class="af-file-manager noselect af-component {{::cssClass}}"><div ng-if=::toolbar class="meta-container clearfix"><div class=info><i class="af-icon af-icon-binders_folder"></i> <span>{{::toolbarTitle|textOrTranslate:toolbarTitleTranslate}}</span></div><div class=actions><div class="af-drop-menu af-component"><a class=drop-handler href=javascript:void(0)><i class="af-icon af-icon-settings_3"></i> <span class=menu-title>{{::toolbarActionsTitle|textOrTranslate:toolbarActionsTitleTranslate}}</span> <i class="fa fa-caret-down"></i><ul class=menu-items><li ng-if=::!action.separator ng-repeat-start="action in toolbarActions" ng-click=vm.onAction(action)><div><i class={{::action.icon}}></i> <span class=menu-item-title>{{::action.title|textOrTranslate:action.titleTranslate}}</span></div></li><li ng-if=::action.separator ng-repeat-end class=separator></li></ul></a></div></div></div><div class=inner-container><ribbon buttons=vm.ribbon on-action=vm.onRibbonAction><step icon="\'af-icon af-icon-dossier_folder\'" title-translate="\'fileManager.operations\'"><section title-translate="\'fileManager.clipboard\'" name="\'clipboard\'"><button css-class="\'btn-copy\'" enabled=false key="\'copy\'" icon="\'af-icon af-icon-copy\'" title-translate="\'fileManager.copy\'"></button> <button css-class="\'btn-paste\'" enabled=false key="\'paste\'" icon="\'af-icon af-icon-paste\'" title-translate="\'fileManager.paste\'"></button> <button css-class="\'btn-cut\'" enabled=false key="\'cut\'" icon="\'af-icon af-icon-cut\'" title-translate="\'fileManager.cut\'"></button></section><section title-translate="\'fileManager.organize\'" name="\'organize\'"><button css-class="\'btn-delete\'" enabled=false key="\'delete\'" icon="\'af-icon af-icon-delete\'" title-translate="\'fileManager.delete\'"></button> <button css-class="\'btn-rename\'" enabled=false key="\'rename\'" icon="\'af-icon af-icon-rename\'" title-translate="\'fileManager.rename\'"></button></section><section title-translate="\'fileManager.new\'" name="\'new\'"><button css-class="\'btn-new\'" key="\'new-folder\'" icon="\'af-icon af-icon-new-folder\'" title-translate="\'fileManager.newFolder\'"></button></section><section title-translate="\'fileManager.transfer\'" name="\'transfer\'"><button css-class="\'btn-download\'" enabled=false key="\'download\'" icon="\'af-icon af-icon-download\'" title-translate="\'fileManager.download\'"></button> <button css-class="\'btn-upload\'" key="\'upload\'" icon="\'af-icon af-icon-upload\'" title-translate="\'fileManager.upload\'"></button></section><section title-translate="\'fileManager.open\'" name="\'open\'"><button css-class="\'btn-open\'" enabled=false key="\'open\'" icon="\'af-icon af-icon-open\'" title-translate="\'fileManager.open\'"></button> <button css-class="\'btn-preview\'" enabled=false key="\'preview\'" icon="\'af-icon af-icon-preview\'" title-translate="\'fileManager.preview\'"></button></section><section title-translate="\'fileManager.compression\'" name="\'compression\'"><button css-class="\'btn-add-to-zip\'" enabled=false key="\'zip\'" icon="\'af-icon af-icon-archive\'" title-translate="\'fileManager.addToZip\'"></button> <button css-class="\'btn-extract\'" enabled=false icon="\'af-icon af-icon-open_archive\'" title-translate="\'fileManager.extract\'"><sub-button icon="\'af-icon af-icon-file\'" key="\'extract-all\'" title-translate="\'fileManager.extractAllHere\'"></sub-button><sub-button icon="\'af-icon af-icon-folder\'" key="\'extract-seprate\'" title-translate="\'fileManager.extractSeprate\'"></sub-button></button></section><section title-translate="\'fileManager.selection\'" name="\'select\'"><button css-class="\'btn-select-all\'" inline=true icon="\'af-icon af-icon-select_all\'" key="\'select-all\'" title-translate="\'fileManager.selectAll\'"></button> <button css-class="\'btn-select-none\'" inline=true key="\'select-none\'" icon="\'af-icon af-icon-deselect_all\'" title-translate="\'fileManager.selectNone\'"></button> <button css-class="\'btn-select-invert\'" inline=true key="\'select-invert\'" icon="\'af-icon af-icon-invert_selection\'" title-translate="\'fileManager.invertSelection\'"></button></section></step><step icon="\'af-icon af-icon-columns\'" title-translate="\'fileManager.view\'"><section title-translate="\'fileManager.panes\'" name="\'panes\'"><button css-class="\'btn-navigation\'" toggle=true key="\'navigation-pane\'" icon="\'af-icon af-icon-close_pane_ltr\'" title-translate="\'fileManager.navigationPane\'"></button></section><section title-translate="\'fileManager.layout\'" name="\'layout\'"><column><button css-class="\'btn-ex-icon\'" toggle=true key="\'xlarge-icons\'" inline=true toggle-group="\'selection\'" icon="\'af-icon af-icon-xlarge_icons\'" title-translate="\'fileManager.xLargeIcons\'"></button> <button css-class="\'btn-m-icon\'" toggle=true inline=true key="\'medium-icons\'" toggle-group="\'selection\'" icon="\'af-icon af-icon-medium_icons\'" title-translate="\'fileManager.mediumIcons\'"></button> <button css-class="\'btn-d-icon\'" toggle=true inline=true key="\'details-icons\'" toggle-group="\'selection\'" icon="\'af-icon af-icon-details_icons\'" title-translate="\'fileManager.detailsIcons\'"></button></column><column><button css-class="\'btn-l-icon\'" toggle=true inline=true key="\'large-icons\'" toggle-group="\'selection\'" icon="\'af-icon af-icon-large_icons\'" title-translate="\'fileManager.largeIcons\'"></button> <button css-class="\'btn-s-icon\'" toggle=true inline=true key="\'small-icons\'" toggle-group="\'selection\'" icon="\'af-icon af-icon-small_icons\'" title-translate="\'fileManager.smallIcons\'"></button> <button css-class="\'btn-t-icon\'" toggle=true inline=true key="\'tiles-icons\'" toggle-group="\'selection\'" icon="\'af-icon af-icon-tiles_icons\'" title-translate="\'fileManager.tilesIcons\'"></button></column></section></step></ribbon><div class="af-navigation-bar af-component clearfix"><progressbar ng-if=vm.uploading model=vm.uploadPercent css-class="\'progress-xxs\'"></progressbar><crumb-nav waiting=vm.waiting on-refresh=vm.onCrumbRefresh on-select=vm.onCrumbFolderPicked model=vm.crumbNav></crumb-nav><div class=search-container><div class="input-group clearfix"><input type=text ng-readonly=vm.waiting ng-model=vm.search placeholder={{::searchTitle|textOrTranslate:searchTitleTranslate}}><div class=prefix><button ng-disabled=vm.waiting ng-click=vm.refresh()><i class="af-icon af-icon-search"></i></button></div></div></div></div></div><div class="af-split-panel af-component {{vm.treeToggle? \'\' :\'no-tree\'}} clearfix"><div ng-if=vm.treeToggle class="panel folder-explorer-panel fixed"><tree on-node-expand=vm.onNodeExpand on-node-select=vm.onNodeSelect items=vm.tree></tree></div><div class=panel-handler><div class=panel-handler-button><button ng-click=vm.toggleExplorer($event)><i class="fa fa-caret-{{vm.treeToggle? \'left\' :\'right\'}}"></i></button></div></div><div class="panel file-explorer-panel"><waiting ng-if=vm.waiting></waiting><file-explorer ng-if=!vm.waiting path=vm.path mode=vm.mode on-rename=vm.onExplorerRename new-folder=vm.newFolder on-new-folder=vm.onExplorerNewFolder multiple-selection=multipleSelection on-parent=vm.onExplorerParent on-double-select=vm.onExplorerDoubleSelect on-select=vm.onExplorerSelect search=vm.search items=vm.fileExplorer></file-explorer></div></div></div>'),e.put("/templates/framework/directives/file-picker/template.html",'<div ng-show=visible class="af-file-picker af-component {{::cssClass}}"><div class=input-group><div class=input-group-btn><div class="btn btn-primary btn-file" ngf-select=vm.onSelect($files) ngf-pattern=pattern ngf-accept=accept ngf-multiple={{::multiple}} ngf-max-size={{::maxSize}} ngf-change="vm.onChange($files, $file, $newFiles, $duplicateFiles, $invalidFiles, $event)" ng-model=vm.model ngf-disabled="disabled || vm.uploading">{{::\'general.browse\'|translate}}&hellip;</div></div><input value={{vm.getText()}} type=text class=form-control readonly></div><div class=preview ng-if=::preview ng-repeat="item in model"><img width=200 ngf-thumbnail="item || \'/framework/images/placeholder.png\'"> <i class="delete fa fa-trash" ng-click=vm.remove(item)></i></div><progressbar ng-if=vm.uploading css-class="\'progress-xxs\'" model=vm.uploadPercent></progressbar></div>'),e.put("/templates/framework/directives/file-picker-server/template.html",'<div ng-show=visible ng-click=vm.prevent($event) class="af-file-picker-server {{disabled?\'disabled\':\'\'}} af-component input-group {{::cssClass}}"><input ng-click=vm.togglePlate() value="{{model||\'\'}}" class=form-control placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}} type=text readonly> <span ng-click=vm.togglePlate() class=input-group-addon><i class="fa fa-globe"></i></span><div class="plate clearfix" ng-if=vm.plate><div class=tree-container><tree on-node-expand=vm.onNodeExpand on-node-select=vm.onNodeSelect items=vm.tree></tree></div><div class=explorer-container><waiting ng-if=vm.waiting></waiting><file-explorer ng-if=!vm.waiting path=vm.path mode="\'medium\'" multiple-selection=false on-parent=vm.onExplorerParent on-double-select=vm.onExplorerDoubleSelect on-select=vm.onExplorerSelect items=vm.fileExplorer></file-explorer></div></div></div>'),e.put("/templates/framework/directives/google-map/template.html",'<div class="af-google-map af-component"><waiting ng-if=waiting></waiting><div class=vw-google-map></div></div>'),e.put("/templates/framework/directives/grid-view/template.html",'<div class="af-grid-view af-component">grid-view</div>'),e.put("/templates/framework/directives/modal/confirm.html","<div class=confirm-body><h3>{{message|textOrTranslate:messageTranslate}}</h3></div>"),e.put("/templates/framework/directives/modal/template.html",'<div class="af-modal af-component modal fade in {{::cssClass}}" role=dialog style="display: block" id={{::uuid}}><div class="modal-dialog modal-lg"><div class=modal-content><div class=modal-header><button ng-click=vm.dismiss() type=button class=close data-dismiss=modal aria-label=Close><span aria-hidden=true>×</span></button><h4 class=modal-title>&nbsp;{{title|textOrTranslate:titleTranslate}}</h4></div><div class=modal-body></div><div class=modal-footer><button type=button ng-disabled="disabled || vm.waiting" ng-click=vm.accept() class="btn btn-primary" data-dismiss=modal><i ng-if=vm.waiting class="fa fa-spinner fa-spin"></i> {{::\'general.accept\'|translate}}</button> <button type=button ng-click=vm.dismiss() class="btn btn-default" data-dismiss=modal>{{::\'general.close\'|translate}}</button></div></div></div></div>'),e.put("/templates/framework/directives/multi-select/template.html",'<div ng-show=visible class="af-multi-select af-component" dir=ltr ng-click=vm.prevent($event)><div style="width: 100%" class="select2 select2-container select2-container--default select2-container--below {{vm.plate?\'select2-container--open\':\'\'}}"><div ng-click=vm.togglePlate() class=selection><div class="select2-selection select2-selection--multiple" role=combobox aria-autocomplete=list aria-haspopup=true aria-expanded=true tabindex=0 aria-owns=select2-e2-results><ul class=select2-selection__rendered><li ng-repeat="item in model" class=select2-selection__choice title={{::item[textField]}}><span ng-click=vm.onDelete($event,item) class=select2-selection__choice__remove role=presentation>×</span> {{::item[textField]}}</li></ul></div></div><span class=dropdown-wrapper aria-hidden=true></span></div><div ng-if=vm.plate show-panel="{width: width, height: panelHeight}" class="select2-container select2-container--default select2-container--open"><span class="select2-dropdown select2-dropdown--below"><span class=select2-results><ul class=select2-results__options role=tree aria-multiselectable=true id=select2-e2-results aria-expanded=true aria-hidden=false><li ng-repeat="item in items" ng-click="vm.onAdd($event, item)" class=select2-results__option role=treeitem aria-selected="{{model.indexOf(item) !== -1}}">{{::item[textField]}}</li></ul></span></span></div></div>'),e.put("/templates/framework/directives/numbox/template.html",'<div ng-show=visible class="af-numbox af-component spinbox {{::cssClass}}"><input type=text ng-disabled=disabled ng-readonly=readonly number-only ng-model=model class="form-control input-mini spinbox-input"><div class="spinbox-buttons btn-group btn-group-vertical"><button type=button ng-click=vm.increase() ng-disabled=disabled class="btn btn-default spinbox-up btn-xs"><span class=pe-7s-angle-up></span> <span class=sr-only>Increase</span></button> <button type=button ng-click=vm.decrease() ng-disabled=disabled class="btn btn-default spinbox-down btn-xs"><span class=pe-7s-angle-down></span> <span class=sr-only>Decrease</span></button></div></div>'),e.put("/templates/framework/directives/password/template.html",'<div ng-show=visible class="af-password af-component {{disabled?\'disabled\':\'\'}} form-group {{::cssClass}}"><div ng-if=::prependIcon class=prepend-icon><input type=password class="form-control input-lg" ng-model=model ng-disabled=disabled ng-readonly=readonly placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}> <i class={{::prependIcon}}></i></div><div ng-if=::appendIcon class=append-icon><input type=password class="form-control input-lg" ng-model=model ng-readonly=readonly ng-disabled=disabled placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}> <i class={{::appendIcon}}></i></div><label ng-if=::label>{{::label}}</label> <label ng-if=::labelTranslate>{{::labelTranslate|translate}}</label> <input ng-if=::!(prependIcon||appendIcon) ng-model=model ng-readonly=readonly ng-disabled=disabled type=password class="form-control input-lg" placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}></div>'),e.put("/templates/framework/directives/progressbar/template.html","<div ng-show=visible class=\"progress af-component {{::cssClass}} {{::(border?'progress-bordered':'')}}\"><div class=\"progress-bar progress-bar-primary\" role=progressbar ng-style=\"{width: model + '%'}\"><span class=sr-only>{{model}}% Complete (success)</span></div></div>"),e.put("/templates/framework/directives/radio/template.html",'<div ng-show=visible class="af-radio af-component form-group {{::cssClass}}"><div ng-repeat="radio in items" ng-click=vm.onPick(radio) class="radio {{::inline?\'radio-inline\':\'\'}}"><label><input type=radio ng-checked="model === radio[valueField]"> <span class=text>{{::radio[textField]}}</span></label></div></div>'),e.put("/templates/framework/directives/ribbon/template.html",'<div ng-show=visible class="af-ribbon af-component {{::cssClass}}"><div class=tabs-container><div class=tabs-header><ul><li ng-repeat="step in steps" class="{{step === vm.selectedStep ? \'active\' : \'\'}}"><a href=javascript:void(0) ng-click="vm.onPick(step, $event)"><i ng-if=::step.icon class={{::$eval(step.icon)}}></i> <span>{{::$eval(step.title)|textOrTranslate:$eval(step.titleTranslate)}}</span></a></li></ul></div><div class=tabs-content><div ng-click=vm.scrollRight() class="slide-handler left-slide-handler"><i class="fa fa-chevron-right"></i></div><div ng-click=vm.scrollLeft() class="slide-handler right-slide-handler"><i class="fa fa-chevron-left"></i></div><div class="tab-content clearfix active" ng-if="step === vm.selectedStep" ng-repeat="step in steps"><div ng-repeat="section in ::step.sections" class=section><div class="section-content {{::$eval(section.name)}}"><div class=section-content-column ng-repeat="column in ::section.columns"><div ng-repeat="button in ::column.buttons" class="button {{::button.inline?\'inline\':\'\'}} {{::button.toggle?\'toggle-button\':\'\'}} {{button.toggleState ? \'active\' : \'\'}} {{::$eval(button.cssClass)}}"><button ng-disabled=button.disabled ng-click=vm.onAction(button)><i class={{::$eval(button.icon)}}></i> <span>{{::$eval(button.title)|textOrTranslate:$eval(button.titleTranslate)}}</span></button></div></div><div ng-if=::!section.columns.length><div ng-repeat-start="button in ::section.buttons" ng-if=::!button.buttons.length class={{vm.getButtonClass(button)}}><button ng-disabled=!button.enabled ng-click=vm.onAction(button)><i class={{::$eval(button.icon)}}></i> <span>{{::$eval(button.title)|textOrTranslate:$eval(button.titleTranslate)}}</span></button></div><div ng-repeat-end ng-if=::button.buttons.length class="af-drop-menu drop-button af-component {{$eval(button.enabled.toString()) ? \'\' : \'disabled\'}} {{::$eval(button.cssClass)}}"><a ng-click="vm.onExpandButton(button, $event)" class="drop-handler {{button.expand?\'active\': \'\'}}" href=javascript:void(0)><i class={{::$eval(button.icon)}}></i> <span>{{::$eval(button.title)|textOrTranslate:$eval(button.titleTranslate)}}</span> <i class="fa fa-caret-down"></i><ul class=menu-items><li ng-repeat="sub in ::button.buttons" ng-click=vm.onAction(sub)><div><i class={{::$eval(sub.icon)}}></i> <span class=menu-item-title>{{::$eval(sub.title)|textOrTranslate:$eval(sub.titleTranslate)}}</span></div></li></ul></a></div></div><div class=section-label>{{::($eval(section.title)|textOrTranslate:$eval(section.titleTranslate))}}</div></div></div></div></div></div></div>'),e.put("/templates/framework/directives/slider/template.html",'<div class="af-slider af-component range-slider"><input type=text></div>'),e.put("/templates/framework/directives/switch/template.html",'<label ng-show=visible class="af-switch af-component {{::cssClass}}" ng-click=vm.toggle($event)><input ng-disabled=disabled class=switch ng-model=model ng-checked="model===true" type=checkbox> <span class=text></span></label>'),e.put("/templates/framework/directives/tabs/template.html","<div ng-show=visible class=\"af-tabs af-component {{::cssClass}} {{:: position === 'right'? 'tabs-right':''}} {{:: position === 'left'? 'tabs-left':''}}\"><ul ng-if=\"position !== 'bottom'\" class=\"nav nav-tabs\" role=tablist><li role=presentation ng-repeat=\"step in steps\" class=\"{{step.disabled ?'disabled':''}} {{::step.cssClass}} {{step === model ? 'active' : ''}}\"><a href=javascript:void(0) ng-click=\"vm.prepareForPick(step, $event)\"><i ng-if=::step.icon class={{::$eval(step.icon)}}></i> <span>&nbsp;{{::$eval(step.title)|textOrTranslate:$eval(step.titleTranslate)}}</span></a></li></ul><div class=tab-content><div role=tabpanel ng-repeat=\"step in steps\" ng-if=\"(keepScope)||(step === model)\" ng-bind-html=step.content|to_trusted_html class=\"tab-pane {{::step.cssClass}} {{step === model ? 'active' : ''}}\"></div></div><ul ng-if=\"position === 'bottom' || position === undefined\" class=\"nav nav-tabs\" role=tablist><li role=presentation ng-repeat=\"step in steps\" class=\"{{step.disabled ?'disabled':''}} {{::step.cssClass}} {{step === model ? 'active' : ''}}\"><a href=javascript:void(0) role=tab ng-click=vm.onPick(step) data-toggle=tab><i ng-if=::step.icon class={{::$eval(step.icon)}}></i> <span>&nbsp;{{::$eval(step.title)|textOrTranslate:$eval(step.titleTranslate)}}</span></a></li></ul></div>"),e.put("/templates/framework/directives/tags/template.html",'<div ng-show=visible class="af-tags af-component bootstrap-tagsinput {{::cssClass}}"><span ng-repeat="item in model" class="tag label label-info">{{item}} <span ng-click=vm.onRemove(item) data-role=remove></span></span> <input type=text placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}} ng-model=vm.query on-enter=vm.onAdd() style="width: 10em !important;"></div>'),e.put("/templates/framework/directives/text-area/template.html","<div ng-show=visible class=\"af-text-area af-component {{disabled?'disabled':''}} form-group {{::cssClass}}\"><textarea rows={{::rows}} ng-style=\"{resize: resize}\" class=form-control ng-model=model></textarea></div>"),e.put("/templates/framework/directives/textbox/template.html",'<div ng-show=visible class="af-textbox af-component {{disabled?\'disabled\':\'\'}} form-group {{::cssClass}}"><div ng-if=::prependIcon class=prepend-icon><input type=text class="form-control input-lg" ng-model=model ng-disabled=disabled ng-readonly=readonly placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}> <i class={{::prependIcon}}></i></div><div ng-if=::appendIcon class=append-icon><input type=text class="form-control input-lg" ng-model=model ng-readonly=readonly ng-disabled=disabled placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}> <i class={{::appendIcon}}></i></div><label ng-if=::label>{{::label}}</label> <label ng-if=::labelTranslate>{{::labelTranslate|translate}}</label> <input ng-if=::!(prependIcon||appendIcon) ng-model=model ng-readonly=readonly ng-disabled=disabled type=text class="form-control input-lg" placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}></div>'),
!function(){"use strict";angular.module("frontend.templates").run(["$templateCache",function(e){e.put("/templates/framework/layout/index.html",""),e.put("/templates/framework/directives/accordion/template.html",'<div ng-show=visible class="af-accordion af-component accordion panel-group {{::cssClass}}" role=tablist><div ng-repeat="step in steps" class="panel panel-default"><div class=panel-heading role=tab><div class=panel-title><a role=button href=javascript:void(0) data-toggle=collapse ng-click=vm.onPick(step) class="{{step !== model?\'collapsed\':\'\'}}">&nbsp;{{$eval(step.title)|textOrTranslate:$eval(step.titleTranslate)}}</a></div></div><div class="panel-collapse {{step !== model?\'collapse\':\'\'}}" role=tabpanel><div class=panel-body ng-bind-html=step.content|to_trusted_html></div></div></div></div>'),e.put("/templates/framework/directives/calendar/template.html","<div ng-show=visible class=\"af-calendar af-component {{::cssClass}} datepicker datepicker-orient-left datepicker-orient-top\"><div ng-if=\"mode ==='days'\" class=datepicker-days><table><thead><tr><th class=\"{{::vm.cultureService.rtl ? 'next' : 'prev'}}\" ng-click=vm.forwardMonth()>«</th><th colspan=5 class=datepicker-switch ng-click=\"vm.switch('months')\">{{vm.getMonthName()}}&nbsp;{{vm.tempYear}}</th><th class=\"{{::vm.cultureService.rtl ? 'prev' : 'next'}}\" ng-click=vm.backwardMonth()>»</th></tr><tr><th ng-repeat=\"title in ::vm.calendar.dayNamesShort\" class=dow>{{::title}}</th></tr></thead><tbody><tr ng-repeat=\"week in vm.days\"><td ng-repeat=\"day in ::week\" ng-click=\"vm.update(day.year, day.month, day.number)\" class=\"{{::day.old?'old':''}} day {{!day.old &&day.number === vm.current.day?'active':''}}\">{{day.number}}</td></tr></tbody><tfoot><tr><th colspan=7 ng-click=vm.setToday() class=today>{{::'general.today'|translate}}</th></tr></tfoot></table></div><div ng-if=\"mode ==='months'\" class=datepicker-months><table class=table-condensed><thead><tr><th class=\"{{::vm.cultureService.rtl ? 'next' : 'prev'}}\" ng-click=vm.forwardYears(1)>«</th><th colspan=5 class=datepicker-switch ng-click=\"vm.switch('years')\">{{vm.tempYear}}</th><th class=\"{{::vm.cultureService.rtl ? 'prev' : 'next'}}\" ng-click=vm.backwardYears(1)>»</th></tr></thead><tbody><tr><td colspan=7><span ng-repeat=\"name in vm.calendar.monthNames\" ng-click=vm.updateMonth($index+1) class=\"month {{$index+1 === vm.current.month?'active':''}}\">{{::name}}</span></td></tr></tbody><tfoot><tr><th colspan=7 ng-click=vm.setToday() class=today>{{::'general.today'|translate}}</th></tr></tfoot></table></div><div ng-if=\"mode ==='years'\" class=datepicker-years><table class=table-condensed><thead><tr><th class=\"{{::vm.cultureService.rtl ? 'next' : 'prev'}}\" ng-click=vm.forwardYears(12)>«</th><th colspan=5 class=datepicker-switch ng-click=\"vm.switch('days')\">{{vm.tempYears[0]}}-{{vm.tempYears[vm.tempYears.length-1]}}</th><th class=\"{{::vm.cultureService.rtl ? 'prev' : 'next'}}\" ng-click=vm.backwardYears(12)>»</th></tr></thead><tbody><tr><td colspan=7><span ng-click=vm.updateYear(year) ng-repeat=\"year in vm.tempYears\" class=\"year {{year === vm.current.year?'active':''}} {{::$first?'old':''}} {{::$last?'new':''}}\">{{::year}}</span></td></tr></tbody><tfoot><tr><th colspan=7 ng-click=vm.setToday() class=today>{{::'general.today'|translate}}</th></tr></tfoot></table></div></div>"),e.put("/templates/framework/directives/captcha/template.html",'<div class="af-captcha af-component"><input type=text ng-model=model.value number-only maxlength=4 ng-readonly=vm.waiting> <img width=80 height=30 ng-src={{vm.image}}> <button ng-disabled=vm.waiting ng-click=vm.refresh()><i class="fa fa-refresh"></i></button></div>'),e.put("/templates/framework/directives/checkbox/template.html",'<div ng-show=visible class="af-checkbox af-component checkbox {{::cssClass}}" ng-click=vm.toggle($event)><label><input ng-disabled=disabled type=checkbox ng-model=model ng-checked="model===true"> <span class=text>{{::label|textOrTranslate:labelTranslate}}</span></label></div>'),e.put("/templates/framework/directives/crumb-nav/template.html",'<div ng-show=visible class="af-crumb-nav clearfix {{::cssClass}}"><div ng-click=vm.onRoot() class=parent-button-container><a href=javascript:void(0)><i class="af-icon af-icon-hdd"></i></a><div class=show-sub-folders><i class="af-icon af-icon-chevron_{{::vm.rtl ? \'left\':\'right\'}}"></i></div></div><div class=path-inner-container><div class="slide-handler left-slide-handler" ng-click=vm.scrollRight()><i class="fa fa-chevron-right"></i></div><div class="slide-handler right-slide-handler" ng-click=vm.scrollLeft()><i class="fa fa-chevron-left"></i></div><ul class="root-folders clearfix"><li ng-repeat="item in model" class="root-folder open"><a href=javascript:void(0) ng-click=vm.onAction(item)><i ng-if=::item.icon class={{::$eval(item.icon)}}></i> <span>{{::item.title|textOrTranslate:item.titleTranslate}}</span></a><div ng-if=::!$last class=show-sub-folders ng-click="vm.onExpand(item, $event)"><i class="af-icon af-icon-chevron_{{::vm.rtl ? \'left\':\'right\'}}"></i><ul ng-if=item.items.length&&item.expand class=sub-folders><li ng-repeat="sub in item.items"><a ng-click=vm.onAction(sub) href=javascript:void(0)><i ng-if=::sub.icon class={{::$eval(sub.icon)}}></i> <span>{{::sub.title|textOrTranslate:sub.titleTranslate}}</span></a></li></ul></div></li></ul></div><div class=refresh-button-container><button ng-disabled=waiting ng-click=vm.refresh()><i class="af-icon af-icon-refresh"></i></button></div></div>'),e.put("/templates/framework/directives/date-picker/template.html","<div ng-show=visible ng-click=vm.prevent($event) class=\"af-date-picker {{disabled?'disabled':''}} af-component input-group {{::cssClass}}\"><input ng-click=vm.toggle() value={{vm.model|cultured_date:culture:format}} class=form-control type=text readonly> <span ng-click=vm.toggle() class=input-group-addon><i class=\"fa fa-calendar\"></i></span><div ng-if=vm.showPlate><calendar css-class=\"'datepicker-dropdown dropdown-menu'\" culture=$parent.culture on-change=$parent.vm.onChange model=$parent.vm.model></calendar></div></div>"),e.put("/templates/framework/directives/dropdown/template.html","<div ng-show=visible ng-click=vm.prevent($event) class=\"af-dropdown af-component dropdown {{vm.plate?'open':''}} {{::cssClass}}\"><button class=\"btn btn-default dropdown-toggle\" ng-disabled=disabled||vm.waiting type=button ng-click=vm.toggle()>&nbsp;{{vm.getText()}} <span class=caret></span></button><ul ng-if=vm.plate class=dropdown-menu><li ng-if=::!item.separator class=\"{{item[valueField] === model ? 'active' : ''}}\" ng-repeat-start=\"item in items\" ng-click=vm.onPick(item)><a href=javascript:void(0)>{{::item[textField]}}</a></li><li ng-repeat-end ng-if=::item.separator role=separator class=divider></li></ul></div>"),e.put("/templates/framework/directives/editor/template.html",'<div ng-show=visible class="af-editor af-component {{::cssClass}}"><textarea id={{::vm.uuid}}></textarea></div>'),e.put("/templates/framework/directives/file-explorer/template.html",'<div class="af-file-explorer-preview af-component {{mode}}"><div class="clearfix details-tape"><div class="details name"><span class=details-text>{{:: \'general.name\'|translate}}</span> <i class="af-icon af-icon-chevron_up"></i><div class=show-settings><i ng-click="vm.showSort(\'namePlate\', $event)" class="af-icon af-icon-chevron_down"></i><ul ng-if=vm.namePlate class=details-menu><li ng-click="vm.onSort(\'name\', true, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortAscending\'|translate}}</span></a></li><li ng-click="vm.onSort(\'name\', false, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortDescending\'|translate}}</span></a></li></ul></div></div><div class="details date-modified"><span class=details-text>{{:: \'general.dateModified\'|translate}}</span><div class=show-settings><i class="af-icon af-icon-chevron_down"></i><ul ng-if=vm.datePlate class=details-menu><li ng-click="vm.onSort(\'date\', true, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortAscending\'|translate}}</span></a></li><li ng-click="vm.onSort(\'date\', false, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortDescending\'|translate}}</span></a></li></ul></div></div><div class="details type"><span class=details-text>{{:: \'general.type\'|translate}}</span><div class=show-settings><i class="af-icon af-icon-chevron_down"></i><ul ng-if=vm.typePlate class=details-menu><li ng-click="vm.onSort(\'type\', true, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortAscending\'|translate}}</span></a></li><li ng-click="vm.onSort(\'type\', false, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortDescending\'|translate}}</span></a></li></ul></div></div><div class="details size"><span class=details-text>{{:: \'general.size\'|translate}}</span><div class=show-settings><i class="af-icon af-icon-chevron_down"></i><ul ng-if=vm.sizePlate class=details-menu><li ng-click="vm.onSort(\'size\', true, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortAscending\'|translate}}</span></a></li><li ng-click="vm.onSort(\'size\', false, $event)"><a href=javascript:void(0)><i></i> <span>{{:: \'general.sortDescending\'|translate}}</span></a></li></ul></div></div></div><ul class=details-mode ng-click=vm.unSelect()><li ng-if="path !== \'/\'" ng-dblclick=vm.onParent() class="clearfix folder"><div class="details name folder-item"><i class="af-icon-50 af-icon-folder"></i> <span>..</span></div><span class="details date-modified">&nbsp;</span> <span class="details type">&nbsp;</span> <span class="details size">&nbsp;</span></li><li ng-if=newFolder ng-dblclick=vm.onNewFolder() class="clearfix folder new-folder"><div class="details name folder-item"><i class="af-icon-50 af-icon-new-folder"></i> <input type=text ng-if=!vm.creating ng-click=vm.prevent($event) ng-dblclick=vm.prevent($event) ng-model=vm.newFolder on-enter=vm.onNewFolder()> <i ng-if=vm.creating class="fa fa-spin fa-spinner"></i></div><span class="details date-modified">&nbsp;</span> <span class="details type">&nbsp;</span> <span class="details size">&nbsp;</span></li><li ng-repeat="item in items|filter:search" ng-dblclick="vm.onDoubleClick(item, $event)" ng-click="vm.onClick(item, $event)" class="clearfix {{::item.folder?\'folder\':\'file\'}} {{item.selected?\'selected\':\'\'}}"><div class="details name {{::item.folder?\'folder\':\'file\'}}-item"><i class="af-icon-50 {{::vm.getIcon(item)}}"></i> <i ng-if=item.updating class="fa fa-spinner fa-spin"></i> <span ng-if=!item.editting>{{::item.name}}</span> <input type=text ng-if=item.editting&&!item.updating ng-click=vm.prevent($event) ng-dblclick=vm.prevent($event) ng-model=item.newName on-enter=vm.onRename(item)></div><span class="details date-modified">{{::item.date|cultured_date}}</span> <span class="details type">{{vm.getExtention(item)}}</span> <span class="details size">{{::item.size | human_size}}</span></li></ul></div>'),e.put("/templates/framework/directives/file-manager/template.html",'<div ng-show=visible class="af-file-manager noselect af-component {{::cssClass}}"><div ng-if=::toolbar class="meta-container clearfix"><div class=info><i class="af-icon af-icon-binders_folder"></i> <span>{{::toolbarTitle|textOrTranslate:toolbarTitleTranslate}}</span></div><div class=actions><div class="af-drop-menu af-component"><a class=drop-handler href=javascript:void(0)><i class="af-icon af-icon-settings_3"></i> <span class=menu-title>{{::toolbarActionsTitle|textOrTranslate:toolbarActionsTitleTranslate}}</span> <i class="fa fa-caret-down"></i><ul class=menu-items><li ng-if=::!action.separator ng-repeat-start="action in toolbarActions" ng-click=vm.onAction(action)><div><i class={{::action.icon}}></i> <span class=menu-item-title>{{::action.title|textOrTranslate:action.titleTranslate}}</span></div></li><li ng-if=::action.separator ng-repeat-end class=separator></li></ul></a></div></div></div><div class=inner-container><ribbon buttons=vm.ribbon on-action=vm.onRibbonAction><step icon="\'af-icon af-icon-dossier_folder\'" title-translate="\'fileManager.operations\'"><section title-translate="\'fileManager.clipboard\'" name="\'clipboard\'"><button css-class="\'btn-copy\'" enabled=false key="\'copy\'" icon="\'af-icon af-icon-copy\'" title-translate="\'fileManager.copy\'"></button> <button css-class="\'btn-paste\'" enabled=false key="\'paste\'" icon="\'af-icon af-icon-paste\'" title-translate="\'fileManager.paste\'"></button> <button css-class="\'btn-cut\'" enabled=false key="\'cut\'" icon="\'af-icon af-icon-cut\'" title-translate="\'fileManager.cut\'"></button></section><section title-translate="\'fileManager.organize\'" name="\'organize\'"><button css-class="\'btn-delete\'" enabled=false key="\'delete\'" icon="\'af-icon af-icon-delete\'" title-translate="\'fileManager.delete\'"></button> <button css-class="\'btn-rename\'" enabled=false key="\'rename\'" icon="\'af-icon af-icon-rename\'" title-translate="\'fileManager.rename\'"></button></section><section title-translate="\'fileManager.new\'" name="\'new\'"><button css-class="\'btn-new\'" key="\'new-folder\'" icon="\'af-icon af-icon-new-folder\'" title-translate="\'fileManager.newFolder\'"></button></section><section title-translate="\'fileManager.transfer\'" name="\'transfer\'"><button css-class="\'btn-download\'" enabled=false key="\'download\'" icon="\'af-icon af-icon-download\'" title-translate="\'fileManager.download\'"></button> <button css-class="\'btn-upload\'" key="\'upload\'" icon="\'af-icon af-icon-upload\'" title-translate="\'fileManager.upload\'"></button></section><section title-translate="\'fileManager.open\'" name="\'open\'"><button css-class="\'btn-open\'" enabled=false key="\'open\'" icon="\'af-icon af-icon-open\'" title-translate="\'fileManager.open\'"></button> <button css-class="\'btn-preview\'" enabled=false key="\'preview\'" icon="\'af-icon af-icon-preview\'" title-translate="\'fileManager.preview\'"></button></section><section title-translate="\'fileManager.compression\'" name="\'compression\'"><button css-class="\'btn-add-to-zip\'" enabled=false key="\'zip\'" icon="\'af-icon af-icon-archive\'" title-translate="\'fileManager.addToZip\'"></button> <button css-class="\'btn-extract\'" enabled=false icon="\'af-icon af-icon-open_archive\'" title-translate="\'fileManager.extract\'"><sub-button icon="\'af-icon af-icon-file\'" key="\'extract-all\'" title-translate="\'fileManager.extractAllHere\'"></sub-button><sub-button icon="\'af-icon af-icon-folder\'" key="\'extract-seprate\'" title-translate="\'fileManager.extractSeprate\'"></sub-button></button></section><section title-translate="\'fileManager.selection\'" name="\'select\'"><button css-class="\'btn-select-all\'" inline=true icon="\'af-icon af-icon-select_all\'" key="\'select-all\'" title-translate="\'fileManager.selectAll\'"></button> <button css-class="\'btn-select-none\'" inline=true key="\'select-none\'" icon="\'af-icon af-icon-deselect_all\'" title-translate="\'fileManager.selectNone\'"></button> <button css-class="\'btn-select-invert\'" inline=true key="\'select-invert\'" icon="\'af-icon af-icon-invert_selection\'" title-translate="\'fileManager.invertSelection\'"></button></section></step><step icon="\'af-icon af-icon-columns\'" title-translate="\'fileManager.view\'"><section title-translate="\'fileManager.panes\'" name="\'panes\'"><button css-class="\'btn-navigation\'" toggle=true key="\'navigation-pane\'" icon="\'af-icon af-icon-close_pane_ltr\'" title-translate="\'fileManager.navigationPane\'"></button></section><section title-translate="\'fileManager.layout\'" name="\'layout\'"><column><button css-class="\'btn-ex-icon\'" toggle=true key="\'xlarge-icons\'" inline=true toggle-group="\'selection\'" icon="\'af-icon af-icon-xlarge_icons\'" title-translate="\'fileManager.xLargeIcons\'"></button> <button css-class="\'btn-m-icon\'" toggle=true inline=true key="\'medium-icons\'" toggle-group="\'selection\'" icon="\'af-icon af-icon-medium_icons\'" title-translate="\'fileManager.mediumIcons\'"></button> <button css-class="\'btn-d-icon\'" toggle=true inline=true key="\'details-icons\'" toggle-group="\'selection\'" icon="\'af-icon af-icon-details_icons\'" title-translate="\'fileManager.detailsIcons\'"></button></column><column><button css-class="\'btn-l-icon\'" toggle=true inline=true key="\'large-icons\'" toggle-group="\'selection\'" icon="\'af-icon af-icon-large_icons\'" title-translate="\'fileManager.largeIcons\'"></button> <button css-class="\'btn-s-icon\'" toggle=true inline=true key="\'small-icons\'" toggle-group="\'selection\'" icon="\'af-icon af-icon-small_icons\'" title-translate="\'fileManager.smallIcons\'"></button> <button css-class="\'btn-t-icon\'" toggle=true inline=true key="\'tiles-icons\'" toggle-group="\'selection\'" icon="\'af-icon af-icon-tiles_icons\'" title-translate="\'fileManager.tilesIcons\'"></button></column></section></step></ribbon><div class="af-navigation-bar af-component clearfix"><progressbar ng-if=vm.uploading model=vm.uploadPercent css-class="\'progress-xxs\'"></progressbar><crumb-nav waiting=vm.waiting on-refresh=vm.onCrumbRefresh on-select=vm.onCrumbFolderPicked model=vm.crumbNav></crumb-nav><div class=search-container><div class="input-group clearfix"><input type=text ng-readonly=vm.waiting ng-model=vm.search placeholder={{::searchTitle|textOrTranslate:searchTitleTranslate}}><div class=prefix><button ng-disabled=vm.waiting ng-click=vm.refresh()><i class="af-icon af-icon-search"></i></button></div></div></div></div></div><div class="af-split-panel af-component {{vm.treeToggle? \'\' :\'no-tree\'}} clearfix"><div ng-if=vm.treeToggle class="panel folder-explorer-panel fixed"><tree on-node-expand=vm.onNodeExpand on-node-select=vm.onNodeSelect items=vm.tree></tree></div><div class=panel-handler><div class=panel-handler-button><button ng-click=vm.toggleExplorer($event)><i class="fa fa-caret-{{vm.treeToggle? \'left\' :\'right\'}}"></i></button></div></div><div class="panel file-explorer-panel"><waiting ng-if=vm.waiting></waiting><file-explorer ng-if=!vm.waiting path=vm.path mode=vm.mode on-rename=vm.onExplorerRename new-folder=vm.newFolder on-new-folder=vm.onExplorerNewFolder multiple-selection=multipleSelection on-parent=vm.onExplorerParent on-double-select=vm.onExplorerDoubleSelect on-select=vm.onExplorerSelect search=vm.search items=vm.fileExplorer></file-explorer></div></div></div>'),e.put("/templates/framework/directives/file-picker/template.html",'<div ng-show=visible class="af-file-picker af-component {{::cssClass}}"><div class=input-group><div class=input-group-btn><div class="btn btn-primary btn-file" ngf-select=vm.onSelect($files) ngf-pattern=pattern ngf-accept=accept ngf-multiple={{::multiple}} ngf-max-size={{::maxSize}} ngf-change="vm.onChange($files, $file, $newFiles, $duplicateFiles, $invalidFiles, $event)" ng-model=vm.model ngf-disabled="disabled || vm.uploading">{{::\'general.browse\'|translate}}&hellip;</div></div><input value={{vm.getText()}} type=text class=form-control readonly></div><div class=preview ng-if=::preview ng-repeat="item in model"><img width=200 ngf-thumbnail="item || \'/framework/images/placeholder.png\'"> <i class="delete fa fa-trash" ng-click=vm.remove(item)></i></div><progressbar ng-if=vm.uploading css-class="\'progress-xxs\'" model=vm.uploadPercent></progressbar></div>'),e.put("/templates/framework/directives/file-picker-server/template.html",'<div ng-show=visible ng-click=vm.prevent($event) class="af-file-picker-server {{disabled?\'disabled\':\'\'}} af-component input-group {{::cssClass}}"><input ng-click=vm.togglePlate() value="{{model||\'\'}}" class=form-control placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}} type=text readonly> <span ng-click=vm.togglePlate() class=input-group-addon><i class="fa fa-globe"></i></span><div class="plate clearfix" ng-if=vm.plate><div class=tree-container><tree on-node-expand=vm.onNodeExpand on-node-select=vm.onNodeSelect items=vm.tree></tree></div><div class=explorer-container><waiting ng-if=vm.waiting></waiting><file-explorer ng-if=!vm.waiting path=vm.path mode="\'medium\'" multiple-selection=false on-parent=vm.onExplorerParent on-double-select=vm.onExplorerDoubleSelect on-select=vm.onExplorerSelect items=vm.fileExplorer></file-explorer></div></div></div>'),e.put("/templates/framework/directives/grid-view/template.html",'<div class="af-grid-view af-component">grid-view</div>'),e.put("/templates/framework/directives/google-map/template.html",'<div class="af-google-map af-component"><waiting ng-if=waiting></waiting><div class=vw-google-map></div></div>'),e.put("/templates/framework/directives/modal/confirm.html","<div class=confirm-body><h3>{{message|textOrTranslate:messageTranslate}}</h3></div>"),e.put("/templates/framework/directives/modal/template.html",'<div class="af-modal af-component modal fade in {{::cssClass}}" role=dialog style="display: block" id={{::uuid}}><div class="modal-dialog modal-lg"><div class=modal-content><div class=modal-header><button ng-click=vm.dismiss() type=button class=close data-dismiss=modal aria-label=Close><span aria-hidden=true>×</span></button><h4 class=modal-title>&nbsp;{{title|textOrTranslate:titleTranslate}}</h4></div><div class=modal-body></div><div class=modal-footer><button type=button ng-disabled="disabled || vm.waiting" ng-click=vm.accept() class="btn btn-primary" data-dismiss=modal><i ng-if=vm.waiting class="fa fa-spinner fa-spin"></i> {{::\'general.accept\'|translate}}</button> <button type=button ng-click=vm.dismiss() class="btn btn-default" data-dismiss=modal>{{::\'general.close\'|translate}}</button></div></div></div></div>'),e.put("/templates/framework/directives/multi-select/template.html",'<div ng-show=visible class="af-multi-select af-component" dir=ltr ng-click=vm.prevent($event)><div style="width: 100%" class="select2 select2-container select2-container--default select2-container--below {{vm.plate?\'select2-container--open\':\'\'}}"><div ng-click=vm.togglePlate() class=selection><div class="select2-selection select2-selection--multiple" role=combobox aria-autocomplete=list aria-haspopup=true aria-expanded=true tabindex=0 aria-owns=select2-e2-results><ul class=select2-selection__rendered><li ng-repeat="item in model" class=select2-selection__choice title={{::item[textField]}}><span ng-click=vm.onDelete($event,item) class=select2-selection__choice__remove role=presentation>×</span> {{::item[textField]}}</li></ul></div></div><span class=dropdown-wrapper aria-hidden=true></span></div><div ng-if=vm.plate show-panel="{width: width, height: panelHeight}" class="select2-container select2-container--default select2-container--open"><span class="select2-dropdown select2-dropdown--below"><span class=select2-results><ul class=select2-results__options role=tree aria-multiselectable=true id=select2-e2-results aria-expanded=true aria-hidden=false><li ng-repeat="item in items" ng-click="vm.onAdd($event, item)" class=select2-results__option role=treeitem aria-selected="{{model.indexOf(item) !== -1}}">{{::item[textField]}}</li></ul></span></span></div></div>'),e.put("/templates/framework/directives/numbox/template.html",'<div ng-show=visible class="af-numbox af-component spinbox {{::cssClass}}"><input type=text ng-disabled=disabled ng-readonly=readonly number-only ng-model=model class="form-control input-mini spinbox-input"><div class="spinbox-buttons btn-group btn-group-vertical"><button type=button ng-click=vm.increase() ng-disabled=disabled class="btn btn-default spinbox-up btn-xs"><span class=pe-7s-angle-up></span> <span class=sr-only>Increase</span></button> <button type=button ng-click=vm.decrease() ng-disabled=disabled class="btn btn-default spinbox-down btn-xs"><span class=pe-7s-angle-down></span> <span class=sr-only>Decrease</span></button></div></div>'),e.put("/templates/framework/directives/password/template.html",'<div ng-show=visible class="af-password af-component {{disabled?\'disabled\':\'\'}} form-group {{::cssClass}}"><div ng-if=::prependIcon class=prepend-icon><input type=password class="form-control input-lg" ng-model=model ng-disabled=disabled ng-readonly=readonly placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}> <i class={{::prependIcon}}></i></div><div ng-if=::appendIcon class=append-icon><input type=password class="form-control input-lg" ng-model=model ng-readonly=readonly ng-disabled=disabled placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}> <i class={{::appendIcon}}></i></div><label ng-if=::label>{{::label}}</label> <label ng-if=::labelTranslate>{{::labelTranslate|translate}}</label> <input ng-if=::!(prependIcon||appendIcon) ng-model=model ng-readonly=readonly ng-disabled=disabled type=password class="form-control input-lg" placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}></div>'),e.put("/templates/framework/directives/progressbar/template.html","<div ng-show=visible class=\"progress af-component {{::cssClass}} {{::(border?'progress-bordered':'')}}\"><div class=\"progress-bar progress-bar-primary\" role=progressbar ng-style=\"{width: model + '%'}\"><span class=sr-only>{{model}}% Complete (success)</span></div></div>"),e.put("/templates/framework/directives/radio/template.html",'<div ng-show=visible class="af-radio af-component form-group {{::cssClass}}"><div ng-repeat="radio in items" ng-click=vm.onPick(radio) class="radio {{::inline?\'radio-inline\':\'\'}}"><label><input type=radio ng-checked="model === radio[valueField]"> <span class=text>{{::radio[textField]}}</span></label></div></div>'),e.put("/templates/framework/directives/ribbon/template.html",'<div ng-show=visible class="af-ribbon af-component {{::cssClass}}"><div class=tabs-container><div class=tabs-header><ul><li ng-repeat="step in steps" class="{{step === vm.selectedStep ? \'active\' : \'\'}}"><a href=javascript:void(0) ng-click="vm.onPick(step, $event)"><i ng-if=::step.icon class={{::$eval(step.icon)}}></i> <span>{{::$eval(step.title)|textOrTranslate:$eval(step.titleTranslate)}}</span></a></li></ul></div><div class=tabs-content><div ng-click=vm.scrollRight() class="slide-handler left-slide-handler"><i class="fa fa-chevron-right"></i></div><div ng-click=vm.scrollLeft() class="slide-handler right-slide-handler"><i class="fa fa-chevron-left"></i></div><div class="tab-content clearfix active" ng-if="step === vm.selectedStep" ng-repeat="step in steps"><div ng-repeat="section in ::step.sections" class=section><div class="section-content {{::$eval(section.name)}}"><div class=section-content-column ng-repeat="column in ::section.columns"><div ng-repeat="button in ::column.buttons" class="button {{::button.inline?\'inline\':\'\'}} {{::button.toggle?\'toggle-button\':\'\'}} {{button.toggleState ? \'active\' : \'\'}} {{::$eval(button.cssClass)}}"><button ng-disabled=button.disabled ng-click=vm.onAction(button)><i class={{::$eval(button.icon)}}></i> <span>{{::$eval(button.title)|textOrTranslate:$eval(button.titleTranslate)}}</span></button></div></div><div ng-if=::!section.columns.length><div ng-repeat-start="button in ::section.buttons" ng-if=::!button.buttons.length class={{vm.getButtonClass(button)}}><button ng-disabled=!button.enabled ng-click=vm.onAction(button)><i class={{::$eval(button.icon)}}></i> <span>{{::$eval(button.title)|textOrTranslate:$eval(button.titleTranslate)}}</span></button></div><div ng-repeat-end ng-if=::button.buttons.length class="af-drop-menu drop-button af-component {{$eval(button.enabled.toString()) ? \'\' : \'disabled\'}} {{::$eval(button.cssClass)}}"><a ng-click="vm.onExpandButton(button, $event)" class="drop-handler {{button.expand?\'active\': \'\'}}" href=javascript:void(0)><i class={{::$eval(button.icon)}}></i> <span>{{::$eval(button.title)|textOrTranslate:$eval(button.titleTranslate)}}</span> <i class="fa fa-caret-down"></i><ul class=menu-items><li ng-repeat="sub in ::button.buttons" ng-click=vm.onAction(sub)><div><i class={{::$eval(sub.icon)}}></i> <span class=menu-item-title>{{::$eval(sub.title)|textOrTranslate:$eval(sub.titleTranslate)}}</span></div></li></ul></a></div></div><div class=section-label>{{::($eval(section.title)|textOrTranslate:$eval(section.titleTranslate))}}</div></div></div></div></div></div></div>'),e.put("/templates/framework/directives/slider/template.html",'<div class="af-slider af-component range-slider"><input type=text></div>'),e.put("/templates/framework/directives/switch/template.html",'<label ng-show=visible class="af-switch af-component {{::cssClass}}" ng-click=vm.toggle($event)><input ng-disabled=disabled class=switch ng-model=model ng-checked="model===true" type=checkbox> <span class=text></span></label>'),e.put("/templates/framework/directives/tabs/template.html","<div ng-show=visible class=\"af-tabs af-component {{::cssClass}} {{:: position === 'right'? 'tabs-right':''}} {{:: position === 'left'? 'tabs-left':''}}\"><ul ng-if=\"position !== 'bottom'\" class=\"nav nav-tabs\" role=tablist><li role=presentation ng-repeat=\"step in steps\" class=\"{{step.disabled ?'disabled':''}} {{::step.cssClass}} {{step === model ? 'active' : ''}}\"><a href=javascript:void(0) ng-click=\"vm.prepareForPick(step, $event)\"><i ng-if=::step.icon class={{::$eval(step.icon)}}></i> <span>&nbsp;{{::$eval(step.title)|textOrTranslate:$eval(step.titleTranslate)}}</span></a></li></ul><div class=tab-content><div role=tabpanel ng-repeat=\"step in steps\" ng-if=\"(keepScope)||(step === model)\" ng-bind-html=step.content|to_trusted_html class=\"tab-pane {{::step.cssClass}} {{step === model ? 'active' : ''}}\"></div></div><ul ng-if=\"position === 'bottom' || position === undefined\" class=\"nav nav-tabs\" role=tablist><li role=presentation ng-repeat=\"step in steps\" class=\"{{step.disabled ?'disabled':''}} {{::step.cssClass}} {{step === model ? 'active' : ''}}\"><a href=javascript:void(0) role=tab ng-click=vm.onPick(step) data-toggle=tab><i ng-if=::step.icon class={{::$eval(step.icon)}}></i> <span>&nbsp;{{::$eval(step.title)|textOrTranslate:$eval(step.titleTranslate)}}</span></a></li></ul></div>"),e.put("/templates/framework/directives/tags/template.html",'<div ng-show=visible class="af-tags af-component bootstrap-tagsinput {{::cssClass}}"><span ng-repeat="item in model" class="tag label label-info">{{item}} <span ng-click=vm.onRemove(item) data-role=remove></span></span> <input type=text placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}} ng-model=vm.query on-enter=vm.onAdd() style="width: 10em !important;"></div>'),e.put("/templates/framework/directives/text-area/template.html","<div ng-show=visible class=\"af-text-area af-component {{disabled?'disabled':''}} form-group {{::cssClass}}\"><textarea rows={{::rows}} ng-style=\"{resize: resize}\" class=form-control ng-model=model></textarea></div>"),e.put("/templates/framework/directives/textbox/template.html",'<div ng-show=visible class="af-textbox af-component {{disabled?\'disabled\':\'\'}} form-group {{::cssClass}}"><div ng-if=::prependIcon class=prepend-icon><input type=text class="form-control input-lg" ng-model=model ng-disabled=disabled ng-readonly=readonly placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}> <i class={{::prependIcon}}></i></div><div ng-if=::appendIcon class=append-icon><input type=text class="form-control input-lg" ng-model=model ng-readonly=readonly ng-disabled=disabled placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}> <i class={{::appendIcon}}></i></div><label ng-if=::label>{{::label}}</label> <label ng-if=::labelTranslate>{{::labelTranslate|translate}}</label> <input ng-if=::!(prependIcon||appendIcon) ng-model=model ng-readonly=readonly ng-disabled=disabled type=text class="form-control input-lg" placeholder={{::placeHolder|textOrTranslate:placeHolderTranslate}}></div>'),
e.put("/templates/framework/directives/tree/template.html",'<div class="af-tree af-component"><tree-container is-root=true uuid=uuid parent=null items=items></tree-container></div>'),e.put("/templates/framework/directives/tree/tree-container.html",'<ul class="{{::isRoot?\'tree-root-container\':\'\'}} tree-container"><li ng-repeat="node in items" class="tree-node {{node.expanded ? \'expanded\' : \'\'}}"><div class="active {{node.selected?\'selected\':\'\'}}"><span ng-click="vm.onExpand(node, $event)" class=child-info><i ng-if=!node.waiting class="af-icon {{vm.getNodeIcon(node)}}"></i></span> <span ng-click="vm.onPick(node, $event)" class=node-info><i ng-if=!node.waiting class="af-icon {{vm.getNodeClass(node)}}"></i> <i ng-if=node.waiting class="fa fa-spinner fa-spin"></i> <span class=node-text>{{::node.title|textOrTranslate:node.titleTranslate}}</span></span></div><tree-container ng-if="node.expanded && node.items && node.items.length" uuid=uuid is-root=false parent=node items=node.items></tree-container></li></ul>'),e.put("/templates/framework/directives/validation-messages/template.html",'<div class="af-validation-messages af-component"><ul ng-if=model.length><li ng-repeat="error in model"><i class="{{::(error.icon?error.icon:\'fa fa-info\')}}"></i> <span>{{::error.message}}</span></li></ul></div>'),e.put("/templates/framework/directives/waiting/template.html",'<div class="af-waiting af-component"><div class=inner-container><div class=binding></div><div class=pad><div class="line line1"></div><div class="line line2"></div><div class="line line3"></div></div></div></div>'),e.put("/templates/framework/directives/wizard/template.html",'<div ng-show=visible class="af-wizard af-component {{::cssClass}}"><tabs disabled=disabled tag=tag keep-scope=keepScope position=position on-changed=onChanged on-enter=onEnter on-exit=onExit prevent-pick=true trigger-pick=vm.triggerPick model=model steps=steps></tabs><ul class="navigation clearfix"><li><button class="btn btn-primary next" ng-disabled=disabled||vm.nextDisabled ng-click=vm.onNext()><i class="fa fa-arrow-left"></i> {{::(nextText|textOrTranslate:nextTextTranslate)}}</button></li><li><button class="btn btn-primary back" ng-disabled=disabled||vm.backDisabled ng-click=vm.onBack()>{{::(backText|textOrTranslate:backTextTranslate)}} <i class="fa fa-arrow-right"></i></button></li></ul></div>')}])}();

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet