Initial commit: apps.supersamsev.ru

This commit is contained in:
root committed 2026-10-21 23:46:31 +03:00
commit a4ad79309c
17298 files changed
+1746593

No files matched your search

+1
View File
@@ -0,0 +1 @@
"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}supersamApp.controller("DeliveryJournalController",["$scope","$http","$timeout","config","$filter",function($scope,$http,$timeout,config,$filter){var DeliveryJournal;return DeliveryJournal=function(){var DeliveryJournal=function DeliveryJournal(){_classCallCheck(this,DeliveryJournal),$scope.utilities.showContentOnLoad()};return DeliveryJournal.prototype.isSubmitting=!1,DeliveryJournal.prototype.errors=[],DeliveryJournal}.call(this),$scope.config=config,$scope.utilities=new UtilitiesClass(config,$filter,$timeout),$scope.deliveryJournal=new DeliveryJournal}]);
+1
View File
@@ -0,0 +1 @@
"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}supersamApp.controller("EmailSubscribesController",["$scope","$http","$timeout","config","$filter","Upload",function($scope,$http,$timeout,config,$filter,Upload){var EmailSubscribes;return EmailSubscribes=function(){var EmailSubscribes=/*#__PURE__*/function(){function EmailSubscribes(){_classCallCheck(this,EmailSubscribes),this.getSubscribes=this.getSubscribes.bind(this),this.getSubscribeStatusLabel=this.getSubscribeStatusLabel.bind(this),this.changeSubscribeStatus=this.changeSubscribeStatus.bind(this),this.setSubscribeModalActiveTab=this.setSubscribeModalActiveTab.bind(this),this.subscribeModal=this.subscribeModal.bind(this),this.addSubscribe=this.addSubscribe.bind(this),this.editSubscribe=this.editSubscribe.bind(this),this.confirmSubscribeEdit=this.confirmSubscribeEdit.bind(this),this.uploadSubscribeRecipientsList=this.uploadSubscribeRecipientsList.bind(this),this.deleteSubscribeRecipient=this.deleteSubscribeRecipient.bind(this),this.uploadSubscribeAttachmentsList=this.uploadSubscribeAttachmentsList.bind(this),this.deleteSubscribeAttachment=this.deleteSubscribeAttachment.bind(this),$scope.utilities.showContentOnLoad()}return _createClass(EmailSubscribes,[{key:"getSubscribes",value:function getSubscribes(){var dataToSend,_this=this,subscribeId=0<arguments.length&&void 0!==arguments[0]?arguments[0]:null;if(!this.isSubscribesLoading)return this.isSubscribesLoading=!0,dataToSend={action:"getSubscribes",month:config.subscribes.month,year:config.subscribes.year,subscribeId:subscribeId},$http.post(config.urls.subscribes,dataToSend).then(function(response){var data;if(data=response.data,_this.isSubscribesLoading=!1,data)return data.status&&"success"===data.status?(_this.emailErrors=[],!subscribeId&&(config.subscribes=data.subscribes)):data.errors&&data.errors.length?_this.errors=data.errors:toastr.error(config.global_labels.defaultErrorMessage.value)})["catch"](function(response){return response.data&&response.data.errors?_this.emailErrors=response.data.errors:toastr.error(config.global_labels.defaultErrorMessage.value),_this.isSubscribesLoading=!1})}},{key:"getSubscribeStatusLabel",value:function getSubscribeStatusLabel(statusId){var i,label,len,ref,status,v;for(label="-",ref=config.subscribeStatuses,(i=0,len=ref.length);i<len;i++)v=ref[i],v.id===statusId&&(status=v);return status&&(label=status.label),label}},{key:"changeSubscribeStatus",value:function changeSubscribeStatus(subscribe,newStatus){var confirmMessage,dataToSend,_this2=this;if(!this.isSubmitting){switch(newStatus){case"deleted":if(!config.isAdmin&&subscribe.createdBy!==config.loggedInUserId)return!1;confirmMessage="\u0443\u0434\u0430\u043B\u0438\u0442\u044C";break;case"queued":confirmMessage="\u043F\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0432 \u043E\u0447\u0435\u0440\u0435\u0434\u044C";break;case"stopped":confirmMessage="\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C";}if(confirm("\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 "+confirmMessage+" \u0434\u0430\u043D\u043D\u0443\u044E \u0440\u0430\u0441\u0441\u044B\u043B\u043A\u0443?"))return this.isSubmitting=!0,dataToSend={action:"setSubscribeStatus",newStatus:newStatus,subscribeId:subscribe.id},$http.post(config.urls.subscribes,dataToSend).then(function(response){var data,error,i,key,len,ref,ref1,results,results1,tmpSubscribe;if(data=response.data,_this2.isSubmitting=!1,data){if(data.status&&"success"===data.status){if(_this2.emailErrors=[],"deleted"!==newStatus)return subscribe.status=angular.copy(newStatus),toastr.success("\u0421\u0442\u0430\u0442\u0443\u0441 \u0440\u0430\u0441\u0441\u044B\u043B\u043A\u0438 \u0431\u044B\u043B \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0438\u0437\u043C\u0435\u043D\u0435\u043D");for(key in toastr.success("\u0420\u0430\u0441\u0441\u044B\u043B\u043A\u0430 \u0431\u044B\u043B\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0443\u0434\u0430\u043B\u0435\u043D\u0430"),ref=config.subscribes.list,results=[],ref)tmpSubscribe=ref[key],subscribe.id===tmpSubscribe.id?results.push(config.subscribes.list.splice(key,1)):results.push(void 0);return results}if(data.errors&&data.errors.length){for(ref1=data.errors,results1=[],(i=0,len=ref1.length);i<len;i++)error=ref1[i],results1.push(toastr.error(error));return results1}return toastr.error(config.global_labels.defaultLine truncated
+185
View File
@@ -0,0 +1,185 @@
supersamApp.controller('SmsOrdersReadyController', [
'$scope',
'$http',
'$timeout',
'config',
'$filter',
'Upload',
function($scope,
$http,
$timeout,
config,
$filter,
Upload) {
var SmsOrdersReady;
SmsOrdersReady = (function() {
class SmsOrdersReady {
constructor() {
this.processSearchResponse = this.processSearchResponse.bind(this);
this.searchSms = this.searchSms.bind(this);
this.uploadSmsList = this.uploadSmsList.bind(this);
$scope.utilities.showContentOnLoad();
$timeout(() => {
return angular.element("#smsOrdersReadySearch").focus();
});
config.sortFields = {
smsList: {
field: 'sentDate',
direction: 'desc'
}
};
}
processSearchResponse(data) {
this.errors = [];
this.smsList = data.smsList;
this.totalSms = data.totalSms;
this.pagination.totalItems = data.totalSms;
this.pagination.totalPages = this.pagination.numPerPage < 1 ? 1 : Math.ceil(this.pagination.totalItems / this.pagination.numPerPage);
this.pagination.totalPages = Math.max(this.pagination.totalPages || 0, 1);
$scope.utilities.setUpdateDates("smsOrdersReady", data, config.updates);
return $timeout(() => {
return angular.element("body").scrollTo('#table-sms-orders-ready', 50, {
offset: {
top: -300
}
});
});
}
searchSms() {
var dataToSend;
this.search = angular.copy(this.search.trim());
$timeout(() => {
return angular.element("#smsOrdersReadySearch").val(this.search);
});
if (!this.isSubmitting) {
this.isSubmitting = true;
dataToSend = {
action: "searchSms",
search: this.search,
smsType: this.smsType,
smsStatus: this.smsStatus,
currentPage: this.pagination.currentPage,
numPerPage: this.pagination.numPerPage,
sortFields: config.sortFields.smsList
};
return $http.post(config.urls.smsOrdersReady, dataToSend).then((response) => {
var data;
data = response.data;
this.isSubmitting = false;
this.usedSearch = angular.copy(this.search);
if (data) {
if (data.status && (data.status === "success")) {
return this.processSearchResponse(data);
} else {
if (data.errors && data.errors.length) {
return this.errors = data.errors;
} else {
return toastr.error(config.global_labels.defaultErrorMessage.value);
}
}
}
}).catch((response) => {
if (response.data && response.data.errors) {
this.errors = response.data.errors;
} else {
toastr.error(config.global_labels.defaultErrorMessage.value);
}
this.usedSearch = angular.copy(this.search);
return this.isSubmitting = false;
});
}
}
uploadSmsList() {
if (!this.isSubmitting && this.importSmsFile) {
this.isSubmitting = true;
this.errors = [];
return Upload.upload({
url: config.urls.smsOrdersReady,
data: {
file: this.importSmsFile,
action: 'importSms'
}
}).then((response) => {
var data;
data = response.data;
this.isSubmitting = false;
if (data.status && (data.status === "success")) {
toastr.success('Импорт выполнен успешно, загружено ' + data.importCount + ' новых SMS');
this.pagination.setPage(1);
return $scope.utilities.setUpdateDates("smsOrdersReady", data, config.updates);
} else {
if (data.errors) {
return this.errors = data.errors;
} else {
return toastr.error(config.global_labels.defaultErrorMessage.value);
}
}
}).catch((response) => {
if (response.data && response.data.errors) {
this.errors = response.data.errors;
} else {
this.errors = ['Ошибка импорта, повторите позднее!'];
}
return this.isSubmitting = false;
});
}
}
};
SmsOrdersReady.prototype.isSubmitting = false;
SmsOrdersReady.prototype.errors = [];
SmsOrdersReady.prototype.importSmsFile = null;
SmsOrdersReady.prototype.search = "";
SmsOrdersReady.prototype.smsType = "order";
SmsOrdersReady.prototype.smsStatus = "";
SmsOrdersReady.prototype.usedSearch = null;
SmsOrdersReady.prototype.smsList = [];
SmsOrdersReady.prototype.pagination = {
currentPage: 1,
numPerPage: 25,
totalItems: 0,
onWatchChange: (newValue,
oldValue) => {
if (newValue !== oldValue) {
return $scope.sms.searchSms();
}
},
setPage: (page) => {
if (page !== $scope.sms.pagination.currentPage) {
$scope.sms.pagination.currentPage = page;
}
$scope.sms.pagination.totalPages = 0;
$scope.sms.smsList = [];
return $scope.sms.searchSms();
}
};
return SmsOrdersReady;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout,
$http);
$scope.sms = new SmsOrdersReady();
$scope.$watch("sms.pagination.currentPage",
$scope.sms.pagination.onWatchChange);
$scope.$watch("config.sortFields.smsList.field",
$scope.sms.pagination.onWatchChange);
return $scope.$watch("config.sortFields.smsList.direction",
$scope.sms.pagination.onWatchChange);
}
]);
+1
View File
@@ -0,0 +1 @@
"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}supersamApp.controller("SmsOrdersReadyController",["$scope","$http","$timeout","config","$filter","Upload",function($scope,$http,$timeout,config,$filter,Upload){var SmsOrdersReady;return SmsOrdersReady=function(){var SmsOrdersReady=/*#__PURE__*/function(){function SmsOrdersReady(){_classCallCheck(this,SmsOrdersReady),this.searchSms=this.searchSms.bind(this),this.uploadSmsList=this.uploadSmsList.bind(this),$scope.utilities.showContentOnLoad(),$timeout(function(){return angular.element("#smsOrdersReadySearch").focus()})}return _createClass(SmsOrdersReady,[{key:"searchSms",value:function searchSms(){var dataToSend,_this=this;if(this.search=angular.copy(this.search.trim()),$timeout(function(){return angular.element("#smsOrdersReadySearch").val(_this.search)}),!this.isSubmitting&&0<this.search.length)return this.isSubmitting=!0,dataToSend={action:"searchSms",search:this.search},$http.post(config.urls.smsOrdersReady,dataToSend).then(function(response){var data;if(data=response.data,_this.isSubmitting=!1,_this.usedSearch=angular.copy(_this.search),data)return data.status&&"success"===data.status?(_this.errors=[],_this.smsList=data.smsList,_this.maxLimit=data.maxLimit):data.errors&&data.errors.length?_this.errors=data.errors:toastr.error(config.global_labels.defaultErrorMessage.value)})["catch"](function(response){return response.data&&response.data.errors?_this.errors=response.data.errors:toastr.error(config.global_labels.defaultErrorMessage.value),_this.usedSearch=angular.copy(_this.search),_this.isSubmitting=!1})}},{key:"uploadSmsList",value:function uploadSmsList(){var _this2=this;if(!this.isSubmitting&&this.importSmsFile)return this.isSubmitting=!0,this.errors=[],Upload.upload({url:config.urls.smsOrdersReady,data:{file:this.importSmsFile,action:"importSms"}}).then(function(response){var data;return data=response.data,_this2.isSubmitting=!1,data.status&&"success"===data.status?toastr.success("\u0418\u043C\u043F\u043E\u0440\u0442 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D \u0443\u0441\u043F\u0435\u0448\u043D\u043E, \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u043E "+data.importCount+" sms"):data.errors?_this2.errors=data.errors:toastr.error(config.global_labels.defaultErrorMessage.value)})["catch"](function(response){return _this2.errors=response.data&&response.data.errors?response.data.errors:["\u041E\u0448\u0438\u0431\u043A\u0430 \u0438\u043C\u043F\u043E\u0440\u0442\u0430, \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435!"],_this2.isSubmitting=!1})}}]),SmsOrdersReady}();return SmsOrdersReady.prototype.isSubmitting=!1,SmsOrdersReady.prototype.errors=[],SmsOrdersReady.prototype.importSmsFile=null,SmsOrdersReady.prototype.search="",SmsOrdersReady.prototype.usedSearch="",SmsOrdersReady.prototype.smsList=[],SmsOrdersReady.prototype.maxLimit=0,SmsOrdersReady}.call(this),$scope.config=config,$scope.utilities=new UtilitiesClass(config,$filter,$timeout),$scope.sms=new SmsOrdersReady}]);
+369
View File
@@ -0,0 +1,369 @@
supersamApp.controller('SmsSubscribesController', [
'$scope',
'$http',
'$timeout',
'config',
'$filter',
'Upload',
function($scope,
$http,
$timeout,
config,
$filter,
Upload) {
var SmsSubscribes;
SmsSubscribes = (function() {
class SmsSubscribes {
constructor() {
this.getSubscribes = this.getSubscribes.bind(this);
this.getSubscribeStatusLabel = this.getSubscribeStatusLabel.bind(this);
this.changeSubscribeStatus = this.changeSubscribeStatus.bind(this);
this.subscribeModal = this.subscribeModal.bind(this);
this.addSubscribe = this.addSubscribe.bind(this);
this.editSubscribe = this.editSubscribe.bind(this);
this.confirmSubscribeEdit = this.confirmSubscribeEdit.bind(this);
this.uploadSubscribeRecipientsList = this.uploadSubscribeRecipientsList.bind(this);
this.deleteSubscribeRecipient = this.deleteSubscribeRecipient.bind(this);
$scope.utilities.showContentOnLoad();
}
getSubscribes(subscribeId = null) {
var dataToSend;
if (!this.isSubscribesLoading) {
this.isSubscribesLoading = true;
dataToSend = {
action: "getSubscribes",
month: config.subscribes.month,
year: config.subscribes.year,
subscribeId: subscribeId
};
return $http.post(config.urls.subscribes, dataToSend).then((response) => {
var data;
data = response.data;
this.isSubscribesLoading = false;
if (data) {
if (data.status && (data.status === "success")) {
this.smsErrors = [];
if (subscribeId) {
return false;
} else {
return config.subscribes = data.subscribes;
}
} else {
if (data.errors && data.errors.length) {
return this.errors = data.errors;
} else {
return toastr.error(config.global_labels.defaultErrorMessage.value);
}
}
}
}).catch((response) => {
if (response.data && response.data.errors) {
this.smsErrors = response.data.errors;
} else {
toastr.error(config.global_labels.defaultErrorMessage.value);
}
return this.isSubscribesLoading = false;
});
}
}
getSubscribeStatusLabel(statusId) {
var i, label, len, ref, status, v;
label = "-";
ref = config.subscribeStatuses;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === statusId) {
status = v;
}
}
if (status) {
label = status.label;
}
return label;
}
changeSubscribeStatus(subscribe, newStatus) {
var confirmMessage, dataToSend;
if (!this.isSubmitting) {
switch (newStatus) {
case "deleted":
if (!config.isAdmin && (subscribe.createdBy !== config.loggedInUserId)) {
return false;
}
confirmMessage = 'удалить';
break;
case "queued":
confirmMessage = 'поставить в очередь';
break;
case "stopped":
confirmMessage = 'остановить';
}
if (confirm("Вы уверены, что хотите " + confirmMessage + " данную рассылку?")) {
this.isSubmitting = true;
dataToSend = {
action: "setSubscribeStatus",
newStatus: newStatus,
subscribeId: subscribe.id
};
return $http.post(config.urls.subscribes, dataToSend).then((response) => {
var data, error, i, key, len, ref, ref1, results, results1, tmpSubscribe;
data = response.data;
this.isSubmitting = false;
if (data) {
if (data.status && (data.status === "success")) {
this.smsErrors = [];
if (newStatus !== 'deleted') {
subscribe.status = angular.copy(newStatus);
return toastr.success("Статус рассылки был успешно изменен");
} else {
toastr.success("Рассылка была успешно удалена");
ref = config.subscribes.list;
results = [];
for (key in ref) {
tmpSubscribe = ref[key];
if (subscribe.id === tmpSubscribe.id) {
results.push(config.subscribes.list.splice(key, 1));
} else {
results.push(void 0);
}
}
return results;
}
} else {
if (data.errors && data.errors.length) {
ref1 = data.errors;
results1 = [];
for (i = 0, len = ref1.length; i < len; i++) {
error = ref1[i];
results1.push(toastr.error(error));
}
return results1;
} else {
return toastr.error(config.global_labels.defaultErrorMessage.value);
}
}
}
}).catch((response) => {
var error, i, len, ref;
if (response.data && response.data.errors) {
ref = data.errors;
for (i = 0, len = ref.length; i < len; i++) {
error = ref[i];
toastr.error(error);
}
} else {
toastr.error(config.global_labels.defaultErrorMessage.value);
}
return this.isSubmitting = false;
});
}
}
}
subscribeModal(action) {
this.subscribeModalIncorrectRecipients = [];
this.subscribeModalErrors = [];
$timeout(() => {
return angular.element("#subscribeModal").modal(action);
});
return $scope.subscribeForm.$setPristine();
}
addSubscribe() {
this.subscribeModalData = {
message: "",
action: "addSubscribe",
reportEmail: angular.copy(config.loggedInUserEmail)
};
this.isSubscribeDataLoading = false;
return this.subscribeModal("show");
}
editSubscribe(subscribe) {
var dataToSend;
this.subscribeModalData = angular.copy(subscribe);
this.subscribeModal("show");
if (!this.isSubscribeDataLoading) {
this.isSubscribeDataLoading = true;
this.subscribeModalErrors = [];
dataToSend = {
action: "getSubscribeData",
subscribeId: subscribe.id
};
return $http({
method: 'POST',
url: config.urls.subscribes,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
this.isSubscribeDataLoading = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
this.subscribeModalData = angular.copy(data.subscribe);
this.subscribeModalData.action = "updateSubscribe";
return this.subscribeModalData.recipientsToDelete = [];
} else {
if (data.errors) {
return this.subscribeModalErrors = data.errors;
}
}
}
}).catch(() => {
this.isSubscribeDataLoading = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
confirmSubscribeEdit() {
if (!this.isSubmitting) {
this.isSubmitting = true;
this.subscribeModalErrors = [];
return $http({
method: 'POST',
url: config.urls.subscribes,
data: this.subscribeModalData,
timeout: 30000
}).then((response) => {
var data, key, ref, results, subscribe;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
if (this.subscribeModalData.id) {
toastr.success("Данные SMS рассылки были успешно обновлены");
this.subscribeModal("hide");
ref = config.subscribes.list;
results = [];
for (key in ref) {
subscribe = ref[key];
if (subscribe.id === data.subscribe.id) {
results.push(config.subscribes.list[key] = angular.copy(data.subscribe));
} else {
results.push(void 0);
}
}
return results;
} else {
toastr.success("SMS рассылка была успешно добавлена");
$scope.subscribeForm.$setPristine();
this.subscribeModalData = angular.copy(data.subscribe);
this.subscribeModalData.action = "updateSubscribe";
this.subscribeModalData.recipientsToDelete = [];
return config.subscribes.list.unshift(angular.copy(data.subscribe));
}
} else {
if (data.errors && data.errors.length) {
return this.subscribeModalErrors = data.errors;
} else {
return toastr.error(config.global_labels.defaultErrorMessage.value);
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
uploadSubscribeRecipientsList() {
if (!this.isSubmitting && this.importSubscribeRecipientsFile) {
this.isSubmitting = true;
this.subscribeModalErrors = [];
this.subscribeModalIncorrectRecipients = [];
return Upload.upload({
url: config.urls.subscribes,
data: {
file: this.importSubscribeRecipientsFile,
action: 'importSubscribeRecipients',
subscribeId: this.subscribeModalData.id,
sms_subscribe_recipients: this.subscribeModalData.sms_subscribe_recipients
}
}).then((response) => {
var data;
data = response.data;
this.isSubmitting = false;
this.importSubscribeRecipientsFile = null;
if (data.status && (data.status === "success")) {
toastr.success('Импорт списка получателей выполнен успешно, найдено ' + data.importNewSubscribersCountTotal + ' получателя, импортировано новых - ' + data.importNewSubscribersCount + (data.incorrectList.length > 0 ? ", ошибок импорта - " + data.incorrectList.length : ""));
this.subscribeModalData.sms_subscribe_recipients = angular.copy(data.importSubscribers);
this.subscribeModalIncorrectRecipients = data.incorrectList;
return $scope.subscribeForm.$setDirty();
} else {
if (data.errors && data.errors.length) {
return this.subscribeModalErrors = data.errors;
} else {
return toastr.error(config.global_labels.defaultErrorMessage.value);
}
}
}).catch((response) => {
if (response.data && response.data.errors) {
this.subscribeModalErrors = response.data.errors;
} else {
this.subscribeModalErrors = ['Ошибка импорта списка получателей, повторите позднее!'];
}
this.isSubmitting = false;
return this.importSubscribeRecipientsFile = null;
});
}
}
deleteSubscribeRecipient(recipientToDelete) {
var recipient, recipientKey, ref, results;
if (confirm("Вы уверены, что хотите удалить данного получателя?")) {
ref = this.subscribeModalData.sms_subscribe_recipients;
results = [];
for (recipientKey in ref) {
recipient = ref[recipientKey];
if (recipient === recipientToDelete) {
this.subscribeModalData.sms_subscribe_recipients.splice(recipientKey, 1);
$scope.subscribeForm.$setDirty();
if (recipientToDelete.id) {
if (!this.subscribeModalData.recipientsToDelete) {
this.subscribeModalData.recipientsToDelete = [];
}
this.subscribeModalData.recipientsToDelete.push(recipientToDelete.id);
}
break;
} else {
results.push(void 0);
}
}
return results;
}
}
};
SmsSubscribes.prototype.isSubmitting = false;
SmsSubscribes.prototype.isSubscribesLoading = false;
SmsSubscribes.prototype.errors = [];
SmsSubscribes.prototype.smsErrors = [];
SmsSubscribes.prototype.subscribeModalErrors = [];
SmsSubscribes.subscribeModalIncorrectRecipients = [];
SmsSubscribes.prototype.isSubscribeDataLoading = false;
SmsSubscribes.prototype.importSubscribeRecipientsFile = null;
return SmsSubscribes;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout,
$http);
return $scope.subscribesList = new SmsSubscribes();
}
]);
+8
View File
@@ -0,0 +1,8 @@
/**
* An Angular module that gives you access to the browsers local storage
* @version v0.7.1 - 2017-06-21
* @link https://github.com/grevory/angular-local-storage
* @author grevory <greg@gregpike.ca>
* @license MIT License, http://www.opensource.org/licenses/MIT
*/
!function(a,b){var c=b.isDefined,d=b.isUndefined,e=b.isNumber,f=b.isObject,g=b.isArray,h=b.isString,i=b.extend,j=b.toJson;b.module("LocalStorageModule",[]).provider("localStorageService",function(){this.prefix="ls",this.storageType="localStorage",this.cookie={expiry:30,path:"/",secure:!1},this.defaultToCookie=!0,this.notify={setItem:!0,removeItem:!1},this.setPrefix=function(a){return this.prefix=a,this},this.setStorageType=function(a){return this.storageType=a,this},this.setDefaultToCookie=function(a){return this.defaultToCookie=!!a,this},this.setStorageCookie=function(a,b,c){return this.cookie.expiry=a,this.cookie.path=b,this.cookie.secure=c,this},this.setStorageCookieDomain=function(a){return this.cookie.domain=a,this},this.setNotify=function(a,b){return this.notify={setItem:a,removeItem:b},this},this.$get=["$rootScope","$window","$document","$parse","$timeout",function(a,b,k,l,m){function n(c){if(c||(c=b.event),s.setItem&&h(c.key)&&w(c.key)){var d=v(c.key);m(function(){a.$broadcast("LocalStorageModule.notification.changed",{key:d,newvalue:c.newValue,storageType:p.storageType})})}}var o,p=this,q=p.prefix,r=p.cookie,s=p.notify,t=p.storageType;k?k[0]&&(k=k[0]):k=document,"."!==q.substr(-1)&&(q=q?q+".":"");var u=function(a){return q+a},v=function(a){return a.replace(new RegExp("^"+q,"g"),"")},w=function(a){return 0===a.indexOf(q)},x=function(){try{var c=t in b&&null!==b[t],d=u("__"+Math.round(1e7*Math.random()));return c&&(o=b[t],o.setItem(d,""),o.removeItem(d)),c}catch(b){return p.defaultToCookie&&(t="cookie"),a.$broadcast("LocalStorageModule.notification.error",b.message),!1}},y=x(),z=function(b,c,e){var f=J();try{if(K(e),c=d(c)?null:j(c),!y&&p.defaultToCookie||"cookie"===p.storageType)return y||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),s.setItem&&a.$broadcast("LocalStorageModule.notification.setitem",{key:b,newvalue:c,storageType:"cookie"}),F(b,c);try{o&&o.setItem(u(b),c),s.setItem&&a.$broadcast("LocalStorageModule.notification.setitem",{key:b,newvalue:c,storageType:p.storageType})}catch(d){return a.$broadcast("LocalStorageModule.notification.error",d.message),F(b,c)}return!0}finally{K(f)}},A=function(b,c){var d=J();try{if(K(c),!y&&p.defaultToCookie||"cookie"===p.storageType)return y||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),G(b);var e=o?o.getItem(u(b)):null;if(!e||"null"===e)return null;try{return JSON.parse(e)}catch(a){return e}}finally{K(d)}},B=function(){var b=J();try{var c=0;arguments.length>=1&&("localStorage"===arguments[arguments.length-1]||"sessionStorage"===arguments[arguments.length-1])&&(c=1,K(arguments[arguments.length-1]));var d,e;for(d=0;d<arguments.length-c;d++)if(e=arguments[d],!y&&p.defaultToCookie||"cookie"===p.storageType)y||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),s.removeItem&&a.$broadcast("LocalStorageModule.notification.removeitem",{key:e,storageType:"cookie"}),H(e);else try{o.removeItem(u(e)),s.removeItem&&a.$broadcast("LocalStorageModule.notification.removeitem",{key:e,storageType:p.storageType})}catch(b){a.$broadcast("LocalStorageModule.notification.error",b.message),H(e)}}finally{K(b)}},C=function(b){var c=J();try{if(K(b),!y)return a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),[];var d=q.length,e=[];for(var f in o)if(f.substr(0,d)===q)try{e.push(f.substr(d))}catch(b){return a.$broadcast("LocalStorageModule.notification.error",b.Description),[]}return e}finally{K(c)}},D=function(b,c){var d=J();try{K(c);var e=q?new RegExp("^"+q):new RegExp,f=b?new RegExp(b):new RegExp;if(!y&&p.defaultToCookie||"cookie"===p.storageType)return y||a.$broadcast("LocalStorageModule.notification.warning","LOCAL_STORAGE_NOT_SUPPORTED"),I();if(!y&&!p.defaultToCookie)return!1;var g=q.length;for(var h in o)if(e.test(h)&&f.test(h.substr(g)))try{B(h.substr(g))}catch(b){return a.$broadcast("LocalStorageModule.notification.error",b.message),I()}return!0}finally{K(d)}},E=function(){try{return b.navigator.cookieEnabled||"cookie"in k&&(k.cookie.length>0||(k.cookie="test").indexOf.call(k.cookie,"test")>-1)}catch(b){return a.$broadcast("LocalStorageModule.notification.error",b.message),!1}}(),F=function(b,c,h,i){if(d(c))return!1;if((g(c)||f(c))&&(c=j(c)),!E)return a.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;try{var l="",m=new Date,n="";if(null===c?(m.setTime(m.getTime()+-864e5),l="; expires="+m.toGMTString(),c=""):e(h)&&0!==h?(m.setTime(m.getTime()+24*h*60*60*1e3),l="; expires="+m.toGMTString()):0!==r.expiry&&(m.setTime(m.getTime()+24*r.expiry*60*60*1e3),l="; expires="+m.toGMTString()),b){var o="; path="+r.path;r.domain&&(n="; domain="+r.domain),"boolean"==typeof i?i===!0&&(n+="; secure"):r.secure===!0&&(n+="; secure"),k.cookie=u(b)+"="+encodeURIComponent(c)+l+o+n}}catch(b){return a.$broadcast("LocalStorageModule.notification.error",b.message),!1}return!0},G=function(b){if(!E)return a.$broadcast("LocalStoraLine truncated
+143
View File
@@ -0,0 +1,143 @@
'use strict';
angular.module("ngLocale", [], ["$provide", function($provide) {
var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"};
function getDecimals(n) {
n = n + '';
var i = n.indexOf('.');
return (i == -1) ? 0 : n.length - i - 1;
}
function getVF(n, opt_precision) {
var v = opt_precision;
if (undefined === v) {
v = Math.min(getDecimals(n), 3);
}
var base = Math.pow(10, v);
var f = ((n * base) | 0) % base;
return {v: v, f: f};
}
$provide.value("$locale", {
"DATETIME_FORMATS": {
"AMPMS": [
"\u0414\u041f",
"\u041f\u041f"
],
"DAY": [
"\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435",
"\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a",
"\u0432\u0442\u043e\u0440\u043d\u0438\u043a",
"\u0441\u0440\u0435\u0434\u0430",
"\u0447\u0435\u0442\u0432\u0435\u0440\u0433",
"\u043f\u044f\u0442\u043d\u0438\u0446\u0430",
"\u0441\u0443\u0431\u0431\u043e\u0442\u0430"
],
"ERANAMES": [
"\u0434\u043e \u0420\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u0430 \u0425\u0440\u0438\u0441\u0442\u043e\u0432\u0430",
"\u043e\u0442 \u0420\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u0430 \u0425\u0440\u0438\u0441\u0442\u043e\u0432\u0430"
],
"ERAS": [
"\u0434\u043e \u043d. \u044d.",
"\u043d. \u044d."
],
"FIRSTDAYOFWEEK": 0,
"MONTH": [
"\u044f\u043d\u0432\u0430\u0440\u044c",
"\u0444\u0435\u0432\u0440\u0430\u043b\u044c",
"\u043c\u0430\u0440\u0442",
"\u0430\u043f\u0440\u0435\u043b\u044c",
"\u043c\u0430\u0439",
"\u0438\u044e\u043d\u044c",
"\u0438\u044e\u043b\u044c",
"\u0430\u0432\u0433\u0443\u0441\u0442",
"\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c",
"\u043e\u043a\u0442\u044f\u0431\u0440\u044c",
"\u043d\u043e\u044f\u0431\u0440\u044c",
"\u0434\u0435\u043a\u0430\u0431\u0440\u044c"
],
"SHORTDAY": [
"\u0432\u0441",
"\u043f\u043d",
"\u0432\u0442",
"\u0441\u0440",
"\u0447\u0442",
"\u043f\u0442",
"\u0441\u0431"
],
"SHORTMONTH": [
"\u044f\u043d\u0432.",
"\u0444\u0435\u0432\u0440.",
"\u043c\u0430\u0440.",
"\u0430\u043f\u0440.",
"\u043c\u0430\u044f",
"\u0438\u044e\u043d.",
"\u0438\u044e\u043b.",
"\u0430\u0432\u0433.",
"\u0441\u0435\u043d\u0442.",
"\u043e\u043a\u0442.",
"\u043d\u043e\u044f\u0431.",
"\u0434\u0435\u043a."
],
"STANDALONEMONTH": [
"\u044f\u043d\u0432\u0430\u0440\u044c",
"\u0444\u0435\u0432\u0440\u0430\u043b\u044c",
"\u043c\u0430\u0440\u0442",
"\u0430\u043f\u0440\u0435\u043b\u044c",
"\u043c\u0430\u0439",
"\u0438\u044e\u043d\u044c",
"\u0438\u044e\u043b\u044c",
"\u0430\u0432\u0433\u0443\u0441\u0442",
"\u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044c",
"\u043e\u043a\u0442\u044f\u0431\u0440\u044c",
"\u043d\u043e\u044f\u0431\u0440\u044c",
"\u0434\u0435\u043a\u0430\u0431\u0440\u044c"
],
"WEEKENDRANGE": [
5,
6
],
"fullDate": "EEEE, d MMMM y '\u0433'.",
"longDate": "d MMMM y '\u0433'.",
"medium": "d MMM y '\u0433'. H:mm:ss",
"mediumDate": "d MMM y '\u0433'.",
"mediumTime": "H:mm:ss",
"short": "dd.MM.y H:mm",
"shortDate": "dd.MM.y",
"shortTime": "H:mm"
},
"NUMBER_FORMATS": {
"CURRENCY_SYM": "\u20bd",
"DECIMAL_SEP": ",",
"GROUP_SEP": "\u00a0",
"PATTERNS": [
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 3,
"minFrac": 0,
"minInt": 1,
"negPre": "-",
"negSuf": "",
"posPre": "",
"posSuf": ""
},
{
"gSize": 3,
"lgSize": 3,
"maxFrac": 2,
"minFrac": 2,
"minInt": 1,
"negPre": "-",
"negSuf": "\u00a0\u00a4",
"posPre": "",
"posSuf": "\u00a0\u00a4"
}
]
},
"id": "ru-ru",
"localeID": "ru_RU",
"pluralCat": function(n, opt_precision) { var i = n | 0; var vf = getVF(n, opt_precision); if (vf.v == 0 && i % 10 == 1 && i % 100 != 11) { return PLURAL_CATEGORY.ONE; } if (vf.v == 0 && i % 10 >= 2 && i % 10 <= 4 && (i % 100 < 12 || i % 100 > 14)) { return PLURAL_CATEGORY.FEW; } if (vf.v == 0 && i % 10 == 0 || vf.v == 0 && i % 10 >= 5 && i % 10 <= 9 || vf.v == 0 && i % 100 >= 11 && i % 100 <= 14) { return PLURAL_CATEGORY.MANY; } return PLURAL_CATEGORY.OTHER;}
});
}]);
+809
View File
@@ -0,0 +1,809 @@
/*!
* angular-ui-mask
* https://github.com/angular-ui/ui-mask
* Version: 1.8.7 - 2016-07-26T15:59:07.992Z
* License: MIT
*/
(function () {
'use strict';
/*
Attaches input mask onto input element
*/
angular.module('ui.mask', [])
.value('uiMaskConfig', {
maskDefinitions: {
'9': /\d/,
'A': /[a-zA-Z]/,
'*': /[a-zA-Z0-9]/
},
clearOnBlur: true,
clearOnBlurPlaceholder: false,
escChar: '\\',
eventsToHandle: ['input', 'keyup', 'click', 'focus'],
addDefaultPlaceholder: true,
allowInvalidValue: false
})
.provider('uiMask.Config', function() {
var options = {};
this.maskDefinitions = function(maskDefinitions) {
return options.maskDefinitions = maskDefinitions;
};
this.clearOnBlur = function(clearOnBlur) {
return options.clearOnBlur = clearOnBlur;
};
this.clearOnBlurPlaceholder = function(clearOnBlurPlaceholder) {
return options.clearOnBlurPlaceholder = clearOnBlurPlaceholder;
};
this.eventsToHandle = function(eventsToHandle) {
return options.eventsToHandle = eventsToHandle;
};
this.addDefaultPlaceholder = function(addDefaultPlaceholder) {
return options.addDefaultPlaceholder = addDefaultPlaceholder;
};
this.allowInvalidValue = function(allowInvalidValue) {
return options.allowInvalidValue = allowInvalidValue;
};
this.$get = ['uiMaskConfig', function(uiMaskConfig) {
var tempOptions = uiMaskConfig;
for(var prop in options) {
if (angular.isObject(options[prop]) && !angular.isArray(options[prop])) {
angular.extend(tempOptions[prop], options[prop]);
} else {
tempOptions[prop] = options[prop];
}
}
return tempOptions;
}];
})
.directive('uiMask', ['uiMask.Config', function(maskConfig) {
function isFocused (elem) {
return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
}
return {
priority: 100,
require: 'ngModel',
restrict: 'A',
compile: function uiMaskCompilingFunction() {
var options = angular.copy(maskConfig);
return function uiMaskLinkingFunction(scope, iElement, iAttrs, controller) {
var maskProcessed = false, eventsBound = false,
maskCaretMap, maskPatterns, maskPlaceholder, maskComponents,
// Minimum required length of the value to be considered valid
minRequiredLength,
value, valueMasked, isValid,
// Vars for initializing/uninitializing
originalPlaceholder = iAttrs.placeholder,
originalMaxlength = iAttrs.maxlength,
// Vars used exclusively in eventHandler()
oldValue, oldValueUnmasked, oldCaretPosition, oldSelectionLength,
// Used for communicating if a backspace operation should be allowed between
// keydownHandler and eventHandler
preventBackspace;
var originalIsEmpty = controller.$isEmpty;
controller.$isEmpty = function(value) {
if (maskProcessed) {
return originalIsEmpty(unmaskValue(value || ''));
} else {
return originalIsEmpty(value);
}
};
function initialize(maskAttr) {
if (!angular.isDefined(maskAttr)) {
return uninitialize();
}
processRawMask(maskAttr);
if (!maskProcessed) {
return uninitialize();
}
initializeElement();
bindEventListeners();
return true;
}
function initPlaceholder(placeholderAttr) {
if ( ! placeholderAttr) {
return;
}
maskPlaceholder = placeholderAttr;
// If the mask is processed, then we need to update the value
// but don't set the value if there is nothing entered into the element
// and there is a placeholder attribute on the element because that
// will only set the value as the blank maskPlaceholder
// and override the placeholder on the element
if (maskProcessed && !(iElement.val().length === 0 && angular.isDefined(iAttrs.placeholder))) {
iElement.val(maskValue(unmaskValue(iElement.val())));
}
}
function initPlaceholderChar() {
return initialize(iAttrs.uiMask);
}
var modelViewValue = false;
iAttrs.$observe('modelViewValue', function(val) {
if (val === 'true') {
modelViewValue = true;
}
});
iAttrs.$observe('allowInvalidValue', function(val) {
linkOptions.allowInvalidValue = val === ''
? true
: !!val;
formatter(controller.$modelValue);
});
function formatter(fromModelValue) {
if (!maskProcessed) {
return fromModelValue;
}
value = unmaskValue(fromModelValue || '');
isValid = validateValue(value);
controller.$setValidity('mask', isValid);
if (!value.length) return undefined;
if (isValid || linkOptions.allowInvalidValue) {
return maskValue(value);
} else {
return undefined;
}
}
function parser(fromViewValue) {
if (!maskProcessed) {
return fromViewValue;
}
value = unmaskValue(fromViewValue || '');
isValid = validateValue(value);
// We have to set viewValue manually as the reformatting of the input
// value performed by eventHandler() doesn't happen until after
// this parser is called, which causes what the user sees in the input
// to be out-of-sync with what the controller's $viewValue is set to.
controller.$viewValue = value.length ? maskValue(value) : '';
controller.$setValidity('mask', isValid);
if (isValid || linkOptions.allowInvalidValue) {
return modelViewValue ? controller.$viewValue : value;
}
}
var linkOptions = {};
if (iAttrs.uiOptions) {
linkOptions = scope.$eval('[' + iAttrs.uiOptions + ']');
if (angular.isObject(linkOptions[0])) {
// we can't use angular.copy nor angular.extend, they lack the power to do a deep merge
linkOptions = (function(original, current) {
for (var i in original) {
if (Object.prototype.hasOwnProperty.call(original, i)) {
if (current[i] === undefined) {
current[i] = angular.copy(original[i]);
} else {
if (angular.isObject(current[i]) && !angular.isArray(current[i])) {
current[i] = angular.extend({}, original[i], current[i]);
}
}
}
}
return current;
})(options, linkOptions[0]);
} else {
linkOptions = options; //gotta be a better way to do this..
}
} else {
linkOptions = options;
}
iAttrs.$observe('uiMask', initialize);
if (angular.isDefined(iAttrs.uiMaskPlaceholder)) {
iAttrs.$observe('uiMaskPlaceholder', initPlaceholder);
}
else {
iAttrs.$observe('placeholder', initPlaceholder);
}
if (angular.isDefined(iAttrs.uiMaskPlaceholderChar)) {
iAttrs.$observe('uiMaskPlaceholderChar', initPlaceholderChar);
}
controller.$formatters.unshift(formatter);
controller.$parsers.unshift(parser);
function uninitialize() {
maskProcessed = false;
unbindEventListeners();
if (angular.isDefined(originalPlaceholder)) {
iElement.attr('placeholder', originalPlaceholder);
} else {
iElement.removeAttr('placeholder');
}
if (angular.isDefined(originalMaxlength)) {
iElement.attr('maxlength', originalMaxlength);
} else {
iElement.removeAttr('maxlength');
}
iElement.val(controller.$modelValue);
controller.$viewValue = controller.$modelValue;
return false;
}
function initializeElement() {
value = oldValueUnmasked = unmaskValue(controller.$modelValue || '');
valueMasked = oldValue = maskValue(value);
isValid = validateValue(value);
if (iAttrs.maxlength) { // Double maxlength to allow pasting new val at end of mask
iElement.attr('maxlength', maskCaretMap[maskCaretMap.length - 1] * 2);
}
if ( ! originalPlaceholder && linkOptions.addDefaultPlaceholder) {
iElement.attr('placeholder', maskPlaceholder);
}
var viewValue = controller.$modelValue;
var idx = controller.$formatters.length;
while(idx--) {
viewValue = controller.$formatters[idx](viewValue);
}
controller.$viewValue = viewValue || '';
controller.$render();
// Not using $setViewValue so we don't clobber the model value and dirty the form
// without any kind of user interaction.
}
function bindEventListeners() {
if (eventsBound) {
return;
}
iElement.bind('blur', blurHandler);
iElement.bind('mousedown mouseup', mouseDownUpHandler);
iElement.bind('keydown', keydownHandler);
iElement.bind(linkOptions.eventsToHandle.join(' '), eventHandler);
eventsBound = true;
}
function unbindEventListeners() {
if (!eventsBound) {
return;
}
iElement.unbind('blur', blurHandler);
iElement.unbind('mousedown', mouseDownUpHandler);
iElement.unbind('mouseup', mouseDownUpHandler);
iElement.unbind('keydown', keydownHandler);
iElement.unbind('input', eventHandler);
iElement.unbind('keyup', eventHandler);
iElement.unbind('click', eventHandler);
iElement.unbind('focus', eventHandler);
eventsBound = false;
}
function validateValue(value) {
// Zero-length value validity is ngRequired's determination
return value.length ? value.length >= minRequiredLength : true;
}
function unmaskValue(value) {
var valueUnmasked = '',
input = iElement[0],
maskPatternsCopy = maskPatterns.slice(),
selectionStart = oldCaretPosition,
selectionEnd = selectionStart + getSelectionLength(input),
valueOffset, valueDelta, tempValue = '';
// Preprocess by stripping mask components from value
value = value.toString();
valueOffset = 0;
valueDelta = value.length - maskPlaceholder.length;
angular.forEach(maskComponents, function(component) {
var position = component.position;
//Only try and replace the component if the component position is not within the selected range
//If component was in selected range then it was removed with the user input so no need to try and remove that component
if (!(position >= selectionStart && position < selectionEnd)) {
if (position >= selectionStart) {
position += valueDelta;
}
if (value.substring(position, position + component.value.length) === component.value) {
tempValue += value.slice(valueOffset, position);// + value.slice(position + component.value.length);
valueOffset = position + component.value.length;
}
}
});
value = tempValue + value.slice(valueOffset);
angular.forEach(value.split(''), function(chr) {
if (maskPatternsCopy.length && maskPatternsCopy[0].test(chr)) {
valueUnmasked += chr;
maskPatternsCopy.shift();
}
});
return valueUnmasked;
}
function maskValue(unmaskedValue) {
var valueMasked = '',
maskCaretMapCopy = maskCaretMap.slice();
angular.forEach(maskPlaceholder.split(''), function(chr, i) {
if (unmaskedValue.length && i === maskCaretMapCopy[0]) {
valueMasked += unmaskedValue.charAt(0) || '_';
unmaskedValue = unmaskedValue.substr(1);
maskCaretMapCopy.shift();
}
else {
valueMasked += chr;
}
});
return valueMasked;
}
function getPlaceholderChar(i) {
var placeholder = angular.isDefined(iAttrs.uiMaskPlaceholder) ? iAttrs.uiMaskPlaceholder : iAttrs.placeholder,
defaultPlaceholderChar;
if (angular.isDefined(placeholder) && placeholder[i]) {
return placeholder[i];
} else {
defaultPlaceholderChar = angular.isDefined(iAttrs.uiMaskPlaceholderChar) && iAttrs.uiMaskPlaceholderChar ? iAttrs.uiMaskPlaceholderChar : '_';
return (defaultPlaceholderChar.toLowerCase() === 'space') ? ' ' : defaultPlaceholderChar[0];
}
}
// Generate array of mask components that will be stripped from a masked value
// before processing to prevent mask components from being added to the unmasked value.
// E.g., a mask pattern of '+7 9999' won't have the 7 bleed into the unmasked value.
function getMaskComponents() {
var maskPlaceholderChars = maskPlaceholder.split(''),
maskPlaceholderCopy, components;
//maskCaretMap can have bad values if the input has the ui-mask attribute implemented as an obversable property, e.g. the demo page
if (maskCaretMap && !isNaN(maskCaretMap[0])) {
//Instead of trying to manipulate the RegEx based on the placeholder characters
//we can simply replace the placeholder characters based on the already built
//maskCaretMap to underscores and leave the original working RegEx to get the proper
//mask components
angular.forEach(maskCaretMap, function(value) {
maskPlaceholderChars[value] = '_';
});
}
maskPlaceholderCopy = maskPlaceholderChars.join('');
components = maskPlaceholderCopy.replace(/[_]+/g, '_').split('_');
components = components.filter(function(s) {
return s !== '';
});
// need a string search offset in cases where the mask contains multiple identical components
// E.g., a mask of 99.99.99-999.99
var offset = 0;
return components.map(function(c) {
var componentPosition = maskPlaceholderCopy.indexOf(c, offset);
offset = componentPosition + 1;
return {
value: c,
position: componentPosition
};
});
}
function processRawMask(mask) {
var characterCount = 0;
maskCaretMap = [];
maskPatterns = [];
maskPlaceholder = '';
if (angular.isString(mask)) {
minRequiredLength = 0;
var isOptional = false,
numberOfOptionalCharacters = 0,
splitMask = mask.split('');
var inEscape = false;
angular.forEach(splitMask, function(chr, i) {
if (inEscape) {
inEscape = false;
maskPlaceholder += chr;
characterCount++;
}
else if (linkOptions.escChar === chr) {
inEscape = true;
}
else if (linkOptions.maskDefinitions[chr]) {
maskCaretMap.push(characterCount);
maskPlaceholder += getPlaceholderChar(i - numberOfOptionalCharacters);
maskPatterns.push(linkOptions.maskDefinitions[chr]);
characterCount++;
if (!isOptional) {
minRequiredLength++;
}
isOptional = false;
}
else if (chr === '?') {
isOptional = true;
numberOfOptionalCharacters++;
}
else {
maskPlaceholder += chr;
characterCount++;
}
});
}
// Caret position immediately following last position is valid.
maskCaretMap.push(maskCaretMap.slice().pop() + 1);
maskComponents = getMaskComponents();
maskProcessed = maskCaretMap.length > 1 ? true : false;
}
var prevValue = iElement.val();
function blurHandler() {
if (linkOptions.clearOnBlur || ((linkOptions.clearOnBlurPlaceholder) && (value.length === 0) && iAttrs.placeholder)) {
oldCaretPosition = 0;
oldSelectionLength = 0;
if (!isValid || value.length === 0) {
valueMasked = '';
iElement.val('');
scope.$apply(function() {
//only $setViewValue when not $pristine to avoid changing $pristine state.
if (!controller.$pristine) {
controller.$setViewValue('');
}
});
}
}
//Check for different value and trigger change.
//Check for different value and trigger change.
if (value !== prevValue) {
// #157 Fix the bug from the trigger when backspacing exactly on the first letter (emptying the field)
// and then blurring out.
// Angular uses html element and calls setViewValue(element.value.trim()), setting it to the trimmed mask
// when it should be empty
var currentVal = iElement.val();
var isTemporarilyEmpty = value === '' && currentVal && angular.isDefined(iAttrs.uiMaskPlaceholderChar) && iAttrs.uiMaskPlaceholderChar === 'space';
if(isTemporarilyEmpty) {
iElement.val('');
}
triggerChangeEvent(iElement[0]);
if(isTemporarilyEmpty) {
iElement.val(currentVal);
}
}
prevValue = value;
}
function triggerChangeEvent(element) {
var change;
if (angular.isFunction(window.Event) && !element.fireEvent) {
// modern browsers and Edge
try {
change = new Event('change', {
view: window,
bubbles: true,
cancelable: false
});
} catch (ex) {
//this is for certain mobile browsers that have the Event object
//but don't support the Event constructor #168
change = document.createEvent('HTMLEvents');
change.initEvent('change', false, true);
} finally {
element.dispatchEvent(change);
}
} else if ('createEvent' in document) {
// older browsers
change = document.createEvent('HTMLEvents');
change.initEvent('change', false, true);
element.dispatchEvent(change);
}
else if (element.fireEvent) {
// IE <= 11
element.fireEvent('onchange');
}
}
function mouseDownUpHandler(e) {
if (e.type === 'mousedown') {
iElement.bind('mouseout', mouseoutHandler);
} else {
iElement.unbind('mouseout', mouseoutHandler);
}
}
iElement.bind('mousedown mouseup', mouseDownUpHandler);
function mouseoutHandler() {
/*jshint validthis: true */
oldSelectionLength = getSelectionLength(this);
iElement.unbind('mouseout', mouseoutHandler);
}
function keydownHandler(e) {
/*jshint validthis: true */
var isKeyBackspace = e.which === 8,
caretPos = getCaretPosition(this) - 1 || 0, //value in keydown is pre change so bump caret position back to simulate post change
isCtrlZ = e.which === 90 && e.ctrlKey; //ctrl+z pressed
if (isKeyBackspace) {
while(caretPos >= 0) {
if (isValidCaretPosition(caretPos)) {
//re-adjust the caret position.
//Increment to account for the initial decrement to simulate post change caret position
setCaretPosition(this, caretPos + 1);
break;
}
caretPos--;
}
preventBackspace = caretPos === -1;
}
if (isCtrlZ) {
// prevent IE bug - value should be returned to initial state
iElement.val('');
e.preventDefault();
}
}
function eventHandler(e) {
/*jshint validthis: true */
e = e || {};
// Allows more efficient minification
var eventWhich = e.which,
eventType = e.type;
// Prevent shift and ctrl from mucking with old values
if (eventWhich === 16 || eventWhich === 91) {
return;
}
if (typeof e.originalEvent.inputType !== 'undefined') {
if (e.originalEvent.inputType == 'insertFromPaste') {
var tmpVal = iElement.val();
if(tmpVal.indexOf('+7') === 0) {
iElement.val(tmpVal.replace('+7', ''));
}
tmpVal = tmpVal.replace(/[^\d]/g, "");
//console.log(tmpVal);
//console.log(tmpVal.length);
if ((tmpVal.indexOf('77') === 0)
&& (tmpVal.length == 12)) {
iElement.val(tmpVal.substring(2));
} else {
if ((tmpVal.indexOf('7') === 0)
&& (tmpVal.length == 11)) {
iElement.val(tmpVal.substring(1));
}
}
}
}
var val = iElement.val(),
valOld = oldValue,
valMasked,
valAltered = false,
valUnmasked = unmaskValue(val),
valUnmaskedOld = oldValueUnmasked,
caretPos = getCaretPosition(this) || 0,
caretPosOld = oldCaretPosition || 0,
caretPosDelta = caretPos - caretPosOld,
caretPosMin = maskCaretMap[0],
caretPosMax = maskCaretMap[valUnmasked.length] || maskCaretMap.slice().shift(),
selectionLenOld = oldSelectionLength || 0,
isSelected = getSelectionLength(this) > 0,
wasSelected = selectionLenOld > 0,
// Case: Typing a character to overwrite a selection
isAddition = (val.length > valOld.length) || (selectionLenOld && val.length > valOld.length - selectionLenOld),
// Case: Delete and backspace behave identically on a selection
isDeletion = (val.length < valOld.length) || (selectionLenOld && val.length === valOld.length - selectionLenOld),
isSelection = (eventWhich >= 37 && eventWhich <= 40) && e.shiftKey, // Arrow key codes
isKeyLeftArrow = eventWhich === 37,
// Necessary due to "input" event not providing a key code
isKeyBackspace = eventWhich === 8 || (eventType !== 'keyup' && isDeletion && (caretPosDelta === -1)),
isKeyDelete = eventWhich === 46 || (eventType !== 'keyup' && isDeletion && (caretPosDelta === 0) && !wasSelected),
// Handles cases where caret is moved and placed in front of invalid maskCaretMap position. Logic below
// ensures that, on click or leftward caret placement, caret is moved leftward until directly right of
// non-mask character. Also applied to click since users are (arguably) more likely to backspace
// a character when clicking within a filled input.
caretBumpBack = (isKeyLeftArrow || isKeyBackspace || eventType === 'click') && caretPos > caretPosMin;
oldSelectionLength = getSelectionLength(this);
// These events don't require any action
if (isSelection || (isSelected && (eventType === 'click' || eventType === 'keyup' || eventType === 'focus'))) {
return;
}
if (isKeyBackspace && preventBackspace) {
iElement.val(maskPlaceholder);
// This shouldn't be needed but for some reason after aggressive backspacing the controller $viewValue is incorrect.
// This keeps the $viewValue updated and correct.
scope.$apply(function () {
controller.$setViewValue(''); // $setViewValue should be run in angular context, otherwise the changes will be invisible to angular and user code.
});
setCaretPosition(this, caretPosOld);
return;
}
// Value Handling
// ==============
// User attempted to delete but raw value was unaffected--correct this grievous offense
if ((eventType === 'input') && isDeletion && !wasSelected && valUnmasked === valUnmaskedOld) {
while (isKeyBackspace && caretPos > caretPosMin && !isValidCaretPosition(caretPos)) {
caretPos--;
}
while (isKeyDelete && caretPos < caretPosMax && maskCaretMap.indexOf(caretPos) === -1) {
caretPos++;
}
var charIndex = maskCaretMap.indexOf(caretPos);
// Strip out non-mask character that user would have deleted if mask hadn't been in the way.
valUnmasked = valUnmasked.substring(0, charIndex) + valUnmasked.substring(charIndex + 1);
// If value has not changed, don't want to call $setViewValue, may be caused by IE raising input event due to placeholder
if (valUnmasked !== valUnmaskedOld)
valAltered = true;
}
console.log(valUnmasked);
// Update values
valMasked = maskValue(valUnmasked);
oldValue = valMasked;
oldValueUnmasked = valUnmasked;
//additional check to fix the problem where the viewValue is out of sync with the value of the element.
//better fix for commit 2a83b5fb8312e71d220a497545f999fc82503bd9 (I think)
if (!valAltered && val.length > valMasked.length)
valAltered = true;
iElement.val(valMasked);
//we need this check. What could happen if you don't have it is that you'll set the model value without the user
//actually doing anything. Meaning, things like pristine and touched will be set.
if (valAltered) {
scope.$apply(function () {
controller.$setViewValue(valMasked); // $setViewValue should be run in angular context, otherwise the changes will be invisible to angular and user code.
});
}
// Caret Repositioning
// ===================
// Ensure that typing always places caret ahead of typed character in cases where the first char of
// the input is a mask char and the caret is placed at the 0 position.
if (isAddition && (caretPos <= caretPosMin)) {
caretPos = caretPosMin + 1;
}
if (caretBumpBack) {
caretPos--;
}
// Make sure caret is within min and max position limits
caretPos = caretPos > caretPosMax ? caretPosMax : caretPos < caretPosMin ? caretPosMin : caretPos;
// Scoot the caret back or forth until it's in a non-mask position and within min/max position limits
while (!isValidCaretPosition(caretPos) && caretPos > caretPosMin && caretPos < caretPosMax) {
caretPos += caretBumpBack ? -1 : 1;
}
if ((caretBumpBack && caretPos < caretPosMax) || (isAddition && !isValidCaretPosition(caretPosOld))) {
caretPos++;
}
oldCaretPosition = caretPos;
setCaretPosition(this, caretPos);
}
function isValidCaretPosition(pos) {
return maskCaretMap.indexOf(pos) > -1;
}
function getCaretPosition(input) {
if (!input)
return 0;
if (input.selectionStart !== undefined) {
return input.selectionStart;
} else if (document.selection) {
if (isFocused(iElement[0])) {
// Curse you IE
input.focus();
var selection = document.selection.createRange();
selection.moveStart('character', input.value ? -input.value.length : 0);
return selection.text.length;
}
}
return 0;
}
function setCaretPosition(input, pos) {
if (!input)
return 0;
if (input.offsetWidth === 0 || input.offsetHeight === 0) {
return; // Input's hidden
}
if (input.setSelectionRange) {
if (isFocused(iElement[0])) {
input.focus();
input.setSelectionRange(pos, pos);
}
}
else if (input.createTextRange) {
// Curse you IE
var range = input.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
function getSelectionLength(input) {
if (!input)
return 0;
if (input.selectionStart !== undefined) {
return (input.selectionEnd - input.selectionStart);
}
if (window.getSelection) {
return (window.getSelection().toString().length);
}
if (document.selection) {
return (document.selection.createRange().text.length);
}
return 0;
}
// https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(searchElement /*, fromIndex */) {
if (this === null) {
throw new TypeError();
}
var t = Object(this);
var len = t.length >>> 0;
if (len === 0) {
return -1;
}
var n = 0;
if (arguments.length > 1) {
n = Number(arguments[1]);
if (n !== n) { // shortcut for verifying if it's NaN
n = 0;
} else if (n !== 0 && n !== Infinity && n !== -Infinity) {
n = (n > 0 || -1) * Math.floor(Math.abs(n));
}
}
if (n >= len) {
return -1;
}
var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0);
for (; k < len; k++) {
if (k in t && t[k] === searchElement) {
return k;
}
}
return -1;
};
}
};
}
};
}
]);
}());
+7
View File
@@ -0,0 +1,7 @@
/*!
* angular-ui-mask
* https://github.com/angular-ui/ui-mask
* Version: 1.8.7 - 2016-07-26T15:59:07.992Z
* License: MIT
*/
!function(){"use strict";angular.module("ui.mask",[]).value("uiMaskConfig",{maskDefinitions:{9:/\d/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},clearOnBlur:!0,clearOnBlurPlaceholder:!1,escChar:"\\",eventsToHandle:["input","keyup","click","focus"],addDefaultPlaceholder:!0,allowInvalidValue:!1}).provider("uiMask.Config",function(){var e={};this.maskDefinitions=function(n){return e.maskDefinitions=n},this.clearOnBlur=function(n){return e.clearOnBlur=n},this.clearOnBlurPlaceholder=function(n){return e.clearOnBlurPlaceholder=n},this.eventsToHandle=function(n){return e.eventsToHandle=n},this.addDefaultPlaceholder=function(n){return e.addDefaultPlaceholder=n},this.allowInvalidValue=function(n){return e.allowInvalidValue=n},this.$get=["uiMaskConfig",function(n){var t=n;for(var a in e)angular.isObject(e[a])&&!angular.isArray(e[a])?angular.extend(t[a],e[a]):t[a]=e[a];return t}]}).directive("uiMask",["uiMask.Config",function(e){function n(e){return e===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(e.type||e.href||~e.tabIndex)}return{priority:100,require:"ngModel",restrict:"A",compile:function(){var t=angular.copy(e);return function(e,a,i,r){function l(e){return angular.isDefined(e)?(w(e),K?(h(),d(),!0):f()):f()}function u(e){e&&(T=e,!K||0===a.val().length&&angular.isDefined(i.placeholder)||a.val(m(p(a.val()))))}function o(){return l(i.uiMask)}function c(e){return K?(j=p(e||""),R=g(j),r.$setValidity("mask",R),j.length&&(R||Q.allowInvalidValue)?m(j):void 0):e}function s(e){return K?(j=p(e||""),R=g(j),r.$viewValue=j.length?m(j):"",r.$setValidity("mask",R),R||Q.allowInvalidValue?J?r.$viewValue:j:void 0):e}function f(){return K=!1,v(),angular.isDefined(q)?a.attr("placeholder",q):a.removeAttr("placeholder"),angular.isDefined(W)?a.attr("maxlength",W):a.removeAttr("maxlength"),a.val(r.$modelValue),r.$viewValue=r.$modelValue,!1}function h(){j=F=p(r.$modelValue||""),H=_=m(j),R=g(j),i.maxlength&&a.attr("maxlength",2*S[S.length-1]),!q&&Q.addDefaultPlaceholder&&a.attr("placeholder",T);for(var e=r.$modelValue,n=r.$formatters.length;n--;)e=r.$formatters[n](e);r.$viewValue=e||"",r.$render()}function d(){Z||(a.bind("blur",y),a.bind("mousedown mouseup",V),a.bind("keydown",M),a.bind(Q.eventsToHandle.join(" "),O),Z=!0)}function v(){Z&&(a.unbind("blur",y),a.unbind("mousedown",V),a.unbind("mouseup",V),a.unbind("keydown",M),a.unbind("input",O),a.unbind("keyup",O),a.unbind("click",O),a.unbind("focus",O),Z=!1)}function g(e){return e.length?e.length>=I:!0}function p(e){var n,t,i="",r=a[0],l=A.slice(),u=L,o=u+C(r),c="";return e=e.toString(),n=0,t=e.length-T.length,angular.forEach(B,function(a){var i=a.position;i>=u&&o>i||(i>=u&&(i+=t),e.substring(i,i+a.value.length)===a.value&&(c+=e.slice(n,i),n=i+a.value.length))}),e=c+e.slice(n),angular.forEach(e.split(""),function(e){l.length&&l[0].test(e)&&(i+=e,l.shift())}),i}function m(e){var n="",t=S.slice();return angular.forEach(T.split(""),function(a,i){e.length&&i===t[0]?(n+=e.charAt(0)||"_",e=e.substr(1),t.shift()):n+=a}),n}function b(e){var n,t=angular.isDefined(i.uiMaskPlaceholder)?i.uiMaskPlaceholder:i.placeholder;return angular.isDefined(t)&&t[e]?t[e]:(n=angular.isDefined(i.uiMaskPlaceholderChar)&&i.uiMaskPlaceholderChar?i.uiMaskPlaceholderChar:"_","space"===n.toLowerCase()?" ":n[0])}function k(){var e,n,t=T.split("");S&&!isNaN(S[0])&&angular.forEach(S,function(e){t[e]="_"}),e=t.join(""),n=e.replace(/[_]+/g,"_").split("_"),n=n.filter(function(e){return""!==e});var a=0;return n.map(function(n){var t=e.indexOf(n,a);return a=t+1,{value:n,position:t}})}function w(e){var n=0;if(S=[],A=[],T="",angular.isString(e)){I=0;var t=!1,a=0,i=e.split(""),r=!1;angular.forEach(i,function(e,i){r?(r=!1,T+=e,n++):Q.escChar===e?r=!0:Q.maskDefinitions[e]?(S.push(n),T+=b(i-a),A.push(Q.maskDefinitions[e]),n++,t||I++,t=!1):"?"===e?(t=!0,a++):(T+=e,n++)})}S.push(S.slice().pop()+1),B=k(),K=S.length>1?!0:!1}function y(){if((Q.clearOnBlur||Q.clearOnBlurPlaceholder&&0===j.length&&i.placeholder)&&(L=0,N=0,R&&0!==j.length||(H="",a.val(""),e.$apply(function(){r.$pristine||r.$setViewValue("")}))),j!==U){var n=a.val(),t=""===j&&n&&angular.isDefined(i.uiMaskPlaceholderChar)&&"space"===i.uiMaskPlaceholderChar;t&&a.val(""),$(a[0]),t&&a.val(n)}U=j}function $(e){var n;if(angular.isFunction(window.Event)&&!e.fireEvent)try{n=new Event("change",{view:window,bubbles:!0,cancelable:!1})}catch(t){n=document.createEvent("HTMLEvents"),n.initEvent("change",!1,!0)}finally{e.dispatchEvent(n)}else"createEvent"in document?(n=document.createEvent("HTMLEvents"),n.initEvent("change",!1,!0),e.dispatchEvent(n)):e.fireEvent&&e.fireEvent("onchange")}function V(e){"mousedown"===e.type?a.bind("mouseout",E):a.unbind("mouseout",E)}function E(){N=C(this),a.unbind("mouseout",E)}function M(e){var n=8===e.which,t=P(this)-1||0,i=90===e.which&&e.ctrlKey;if(n){for(;t>=0;){if(D(t)){x(this,t+1);break}t--}z=-1===t}i&&(a.val(""),e.preventDefault())}function O(n){n=n||{};var t=n.which,i=n.type;if(16!==t&&91!==t){var l,u=a.val(),o=_,c=!1,s=p(u),f=F,h=P(this)||Line truncated
+207
View File
@@ -0,0 +1,207 @@
/* angular-summernote v0.8.1 | (c) 2016 JeongHoon Byun | MIT license */
/* global angular */
angular.module('summernote', [])
.controller('SummernoteController', ['$scope', '$attrs', '$timeout', function($scope, $attrs, $timeout) {
'use strict';
var currentElement,
summernoteConfig = angular.copy($scope.summernoteConfig) || {};
if (angular.isDefined($attrs.height)) { summernoteConfig.height = +$attrs.height; }
if (angular.isDefined($attrs.minHeight)) { summernoteConfig.minHeight = +$attrs.minHeight; }
if (angular.isDefined($attrs.maxHeight)) { summernoteConfig.maxHeight = +$attrs.maxHeight; }
if (angular.isDefined($attrs.placeholder)) { summernoteConfig.placeholder = $attrs.placeholder; }
if (angular.isDefined($attrs.focus)) { summernoteConfig.focus = true; }
if (angular.isDefined($attrs.airmode)) { summernoteConfig.airMode = true; }
if (angular.isDefined($attrs.dialogsinbody)) { summernoteConfig.dialogsInBody = true; }
if (angular.isDefined($attrs.lang)) {
if (!angular.isDefined($.summernote.lang[$attrs.lang])) {
throw new Error('"' + $attrs.lang + '" lang file must be exist.');
}
summernoteConfig.lang = $attrs.lang;
}
summernoteConfig.callbacks = summernoteConfig.callbacks || {};
if (angular.isDefined($attrs.onInit)) {
summernoteConfig.callbacks.onInit = function(evt) {
$scope.init({evt:evt});
};
}
if (angular.isDefined($attrs.onEnter)) {
summernoteConfig.callbacks.onEnter = function(evt) {
$scope.enter({evt:evt});
};
}
if (angular.isDefined($attrs.onFocus)) {
summernoteConfig.callbacks.onFocus = function(evt) {
$scope.focus({evt:evt});
};
}
if (angular.isDefined($attrs.onPaste)) {
summernoteConfig.callbacks.onPaste = function(evt) {
$scope.paste({evt:evt});
};
}
if (angular.isDefined($attrs.onKeyup)) {
summernoteConfig.callbacks.onKeyup = function(evt) {
$scope.keyup({evt:evt});
};
}
if (angular.isDefined($attrs.onKeydown)) {
summernoteConfig.callbacks.onKeydown = function(evt) {
$scope.keydown({evt:evt});
};
}
if (angular.isDefined($attrs.onImageUpload)) {
summernoteConfig.callbacks.onImageUpload = function(files) {
$scope.imageUpload({files:files, editable: $scope.editable});
};
}
if (angular.isDefined($attrs.onMediaDelete)) {
summernoteConfig.callbacks.onMediaDelete = function(target) {
// make new object that has information of target to avoid error:isecdom
var removedMedia = {attrs: {}};
removedMedia.tagName = target[0].tagName;
angular.forEach(target[0].attributes, function(attr) {
removedMedia.attrs[attr.name] = attr.value;
});
$scope.mediaDelete({target: removedMedia});
};
}
this.activate = function(scope, element, ngModel) {
var updateNgModel = function() {
var newValue = element.summernote('code');
if (element.summernote('isEmpty')) { newValue = ''; }
if (ngModel && ngModel.$viewValue !== newValue) {
$timeout(function() {
ngModel.$setViewValue(newValue);
}, 0);
}
};
var originalOnChange = summernoteConfig.callbacks.onChange;
summernoteConfig.callbacks.onChange = function (contents) {
$timeout(function () {
if (element.summernote('isEmpty')) {
contents = '';
}
updateNgModel();
}, 0);
if (angular.isDefined($attrs.onChange)) {
$scope.change({contents: contents, editable: $scope.editable});
} else if (angular.isFunction(originalOnChange)) {
originalOnChange.apply(this, arguments);
}
};
if (angular.isDefined($attrs.onBlur)) {
summernoteConfig.callbacks.onBlur = function (evt) {
(!summernoteConfig.airMode) && element.blur();
$scope.blur({evt: evt});
};
}
element.summernote(summernoteConfig);
var editor$ = element.next('.note-editor'),
unwatchNgModel;
editor$.find('.note-toolbar').click(function() {
updateNgModel();
// sync ngModel in codeview mode
if (editor$.hasClass('codeview')) {
editor$.on('keyup', updateNgModel);
if (ngModel) {
unwatchNgModel = scope.$watch(function () {
return ngModel.$modelValue;
}, function(newValue) {
editor$.find('.note-codable').val(newValue);
});
}
} else {
editor$.off('keyup', updateNgModel);
if (angular.isFunction(unwatchNgModel)) {
unwatchNgModel();
}
}
});
if (ngModel) {
ngModel.$render = function() {
if (ngModel.$viewValue) {
element.summernote('code', ngModel.$viewValue);
} else {
element.summernote('empty');
}
};
}
// set editable to avoid error:isecdom since Angular v1.3
if (angular.isDefined($attrs.editable)) {
$scope.editable = editor$.find('.note-editable');
}
if (angular.isDefined($attrs.editor)) {
$scope.editor = element;
}
currentElement = element;
// use jquery Event binding instead $on('$destroy') to preserve options data of DOM
element.on('$destroy', function() {
element.summernote('destroy');
$scope.summernoteDestroyed = true;
});
};
$scope.$on('$destroy', function () {
// when destroying scope directly
if (!$scope.summernoteDestroyed) {
currentElement.summernote('destroy');
}
});
}])
.directive('summernote', [function() {
'use strict';
return {
restrict: 'EA',
transclude: 'element',
replace: true,
require: ['summernote', '?ngModel'],
controller: 'SummernoteController',
scope: {
summernoteConfig: '=config',
editable: '=',
editor: '=',
init: '&onInit',
enter: '&onEnter',
focus: '&onFocus',
blur: '&onBlur',
paste: '&onPaste',
keyup: '&onKeyup',
keydown: '&onKeydown',
change: '&onChange',
imageUpload: '&onImageUpload',
mediaDelete: '&onMediaDelete'
},
template: '<div class="summernote"></div>',
link: function(scope, element, attrs, ctrls, transclude) {
var summernoteController = ctrls[0],
ngModel = ctrls[1];
if (!ngModel) {
transclude(scope, function(clone, scope) {
// to prevent binding to angular scope (It require `tranclude: 'element'`)
element.append(clone.html());
});
summernoteController.activate(scope, element, ngModel);
} else {
var clearWatch = scope.$watch(function() { return ngModel.$viewValue; }, function(value) {
clearWatch();
element.append(value);
summernoteController.activate(scope, element, ngModel);
}, true);
}
}
};
}]);
+349
View File
@@ -0,0 +1,349 @@
/*
AngularJS v1.7.9
(c) 2010-2018 Google, Inc. http://angularjs.org
License: MIT
*/
(function(C){'use strict';function re(a){if(D(a))w(a.objectMaxDepth)&&(Wb.objectMaxDepth=Xb(a.objectMaxDepth)?a.objectMaxDepth:NaN),w(a.urlErrorParamsEnabled)&&Ga(a.urlErrorParamsEnabled)&&(Wb.urlErrorParamsEnabled=a.urlErrorParamsEnabled);else return Wb}function Xb(a){return W(a)&&0<a}function F(a,b){b=b||Error;return function(){var d=arguments[0],c;c="["+(a?a+":":"")+d+"] http://errors.angularjs.org/1.7.9/"+(a?a+"/":"")+d;for(d=1;d<arguments.length;d++){c=c+(1==d?"?":"&")+"p"+(d-1)+"=";var e=encodeURIComponent,
f;f=arguments[d];f="function"==typeof f?f.toString().replace(/ \{[\s\S]*$/,""):"undefined"==typeof f?"undefined":"string"!=typeof f?JSON.stringify(f):f;c+=e(f)}return new b(c)}}function ya(a){if(null==a||$a(a))return!1;if(H(a)||A(a)||x&&a instanceof x)return!0;var b="length"in Object(a)&&a.length;return W(b)&&(0<=b&&b-1 in a||"function"===typeof a.item)}function r(a,b,d){var c,e;if(a)if(B(a))for(c in a)"prototype"!==c&&"length"!==c&&"name"!==c&&a.hasOwnProperty(c)&&b.call(d,a[c],c,a);else if(H(a)||
ya(a)){var f="object"!==typeof a;c=0;for(e=a.length;c<e;c++)(f||c in a)&&b.call(d,a[c],c,a)}else if(a.forEach&&a.forEach!==r)a.forEach(b,d,a);else if(Nc(a))for(c in a)b.call(d,a[c],c,a);else if("function"===typeof a.hasOwnProperty)for(c in a)a.hasOwnProperty(c)&&b.call(d,a[c],c,a);else for(c in a)ta.call(a,c)&&b.call(d,a[c],c,a);return a}function Oc(a,b,d){for(var c=Object.keys(a).sort(),e=0;e<c.length;e++)b.call(d,a[c[e]],c[e]);return c}function Yb(a){return function(b,d){a(d,b)}}function se(){return++pb}
function Zb(a,b,d){for(var c=a.$$hashKey,e=0,f=b.length;e<f;++e){var g=b[e];if(D(g)||B(g))for(var k=Object.keys(g),h=0,l=k.length;h<l;h++){var m=k[h],p=g[m];d&&D(p)?ha(p)?a[m]=new Date(p.valueOf()):ab(p)?a[m]=new RegExp(p):p.nodeName?a[m]=p.cloneNode(!0):$b(p)?a[m]=p.clone():"__proto__"!==m&&(D(a[m])||(a[m]=H(p)?[]:{}),Zb(a[m],[p],!0)):a[m]=p}}c?a.$$hashKey=c:delete a.$$hashKey;return a}function S(a){return Zb(a,Ha.call(arguments,1),!1)}function te(a){return Zb(a,Ha.call(arguments,1),!0)}function fa(a){return parseInt(a,
10)}function ac(a,b){return S(Object.create(a),b)}function E(){}function Ta(a){return a}function ia(a){return function(){return a}}function bc(a){return B(a.toString)&&a.toString!==la}function z(a){return"undefined"===typeof a}function w(a){return"undefined"!==typeof a}function D(a){return null!==a&&"object"===typeof a}function Nc(a){return null!==a&&"object"===typeof a&&!Pc(a)}function A(a){return"string"===typeof a}function W(a){return"number"===typeof a}function ha(a){return"[object Date]"===la.call(a)}
function H(a){return Array.isArray(a)||a instanceof Array}function cc(a){switch(la.call(a)){case "[object Error]":return!0;case "[object Exception]":return!0;case "[object DOMException]":return!0;default:return a instanceof Error}}function B(a){return"function"===typeof a}function ab(a){return"[object RegExp]"===la.call(a)}function $a(a){return a&&a.window===a}function bb(a){return a&&a.$evalAsync&&a.$watch}function Ga(a){return"boolean"===typeof a}function ue(a){return a&&W(a.length)&&ve.test(la.call(a))}
function $b(a){return!(!a||!(a.nodeName||a.prop&&a.attr&&a.find))}function we(a){var b={};a=a.split(",");var d;for(d=0;d<a.length;d++)b[a[d]]=!0;return b}function ua(a){return K(a.nodeName||a[0]&&a[0].nodeName)}function cb(a,b){var d=a.indexOf(b);0<=d&&a.splice(d,1);return d}function Ia(a,b,d){function c(a,b,c){c--;if(0>c)return"...";var d=b.$$hashKey,f;if(H(a)){f=0;for(var g=a.length;f<g;f++)b.push(e(a[f],c))}else if(Nc(a))for(f in a)b[f]=e(a[f],c);else if(a&&"function"===typeof a.hasOwnProperty)for(f in a)a.hasOwnProperty(f)&&
(b[f]=e(a[f],c));else for(f in a)ta.call(a,f)&&(b[f]=e(a[f],c));d?b.$$hashKey=d:delete b.$$hashKey;return b}function e(a,b){if(!D(a))return a;var d=g.indexOf(a);if(-1!==d)return k[d];if($a(a)||bb(a))throw pa("cpws");var d=!1,e=f(a);void 0===e&&(e=H(a)?[]:Object.create(Pc(a)),d=!0);g.push(a);k.push(e);return d?c(a,e,b):e}function f(a){switch(la.call(a)){case "[object Int8Array]":case "[object Int16Array]":case "[object Int32Array]":case "[object Float32Array]":case "[object Float64Array]":case "[object Uint8Array]":case "[object Uint8ClampedArray]":case "[object Uint16Array]":case "[object Uint32Array]":return new a.constructor(e(a.buffer),
a.byteOffset,a.length);case "[object ArrayBuffer]":if(!a.slice){var b=new ArrayBuffer(a.byteLength);(new Uint8Array(b)).set(new Uint8Array(a));return b}return a.slice(0);case "[object Boolean]":case "[object Number]":case "[object String]":case "[object Date]":return new a.constructor(a.valueOf());case "[object RegExp]":return b=new RegExp(a.source,a.toString().match(/[^/]*$/)[0]),b.lastIndex=a.lastIndex,b;case "[object Blob]":return new a.constructor([a],{type:a.type})}if(B(a.cloneNode))return a.cloneNode(!0)}
var g=[],k=[];d=Xb(d)?d:NaN;if(b){if(ue(b)||"[object ArrayBuffer]"===la.call(b))throw pa("cpta");if(a===b)throw pa("cpi");H(b)?b.length=0:r(b,function(a,c){"$$hashKey"!==c&&delete b[c]});g.push(a);k.push(b);return c(a,b,d)}return e(a,d)}function dc(a,b){return a===b||a!==a&&b!==b}function va(a,b){if(a===b)return!0;if(null===a||null===b)return!1;if(a!==a&&b!==b)return!0;var d=typeof a,c;if(d===typeof b&&"object"===d)if(H(a)){if(!H(b))return!1;if((d=a.length)===b.length){for(c=0;c<d;c++)if(!va(a[c],
b[c]))return!1;return!0}}else{if(ha(a))return ha(b)?dc(a.getTime(),b.getTime()):!1;if(ab(a))return ab(b)?a.toString()===b.toString():!1;if(bb(a)||bb(b)||$a(a)||$a(b)||H(b)||ha(b)||ab(b))return!1;d=T();for(c in a)if("$"!==c.charAt(0)&&!B(a[c])){if(!va(a[c],b[c]))return!1;d[c]=!0}for(c in b)if(!(c in d)&&"$"!==c.charAt(0)&&w(b[c])&&!B(b[c]))return!1;return!0}return!1}function db(a,b,d){return a.concat(Ha.call(b,d))}function Va(a,b){var d=2<arguments.length?Ha.call(arguments,2):[];return!B(b)||b instanceof
RegExp?b:d.length?function(){return arguments.length?b.apply(a,db(d,arguments,0)):b.apply(a,d)}:function(){return arguments.length?b.apply(a,arguments):b.call(a)}}function Qc(a,b){var d=b;"string"===typeof a&&"$"===a.charAt(0)&&"$"===a.charAt(1)?d=void 0:$a(b)?d="$WINDOW":b&&C.document===b?d="$DOCUMENT":bb(b)&&(d="$SCOPE");return d}function eb(a,b){if(!z(a))return W(b)||(b=b?2:null),JSON.stringify(a,Qc,b)}function Rc(a){return A(a)?JSON.parse(a):a}function ec(a,b){a=a.replace(xe,"");var d=Date.parse("Jan 01, 1970 00:00:00 "+
a)/6E4;return X(d)?b:d}function Sc(a,b){a=new Date(a.getTime());a.setMinutes(a.getMinutes()+b);return a}function fc(a,b,d){d=d?-1:1;var c=a.getTimezoneOffset();b=ec(b,c);return Sc(a,d*(b-c))}function za(a){a=x(a).clone().empty();var b=x("<div></div>").append(a).html();try{return a[0].nodeType===Pa?K(b):b.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(a,b){return"<"+K(b)})}catch(d){return K(b)}}function Tc(a){try{return decodeURIComponent(a)}catch(b){}}function gc(a){var b={};r((a||"").split("&"),
function(a){var c,e,f;a&&(e=a=a.replace(/\+/g,"%20"),c=a.indexOf("="),-1!==c&&(e=a.substring(0,c),f=a.substring(c+1)),e=Tc(e),w(e)&&(f=w(f)?Tc(f):!0,ta.call(b,e)?H(b[e])?b[e].push(f):b[e]=[b[e],f]:b[e]=f))});return b}function ye(a){var b=[];r(a,function(a,c){H(a)?r(a,function(a){b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))}):b.push(ba(c,!0)+(!0===a?"":"="+ba(a,!0)))});return b.length?b.join("&"):""}function hc(a){return ba(a,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function ba(a,
b){return encodeURIComponent(a).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,b?"%20":"+")}function ze(a,b){var d,c,e=Qa.length;for(c=0;c<e;++c)if(d=Qa[c]+b,A(d=a.getAttribute(d)))return d;return null}function Ae(a,b){var d,c,e={};r(Qa,function(b){b+="app";!d&&a.hasAttribute&&a.hasAttribute(b)&&(d=a,c=a.getAttribute(b))});r(Qa,function(b){b+="app";var e;!d&&(e=a.querySelector("["+b.replace(":","\\:")+"]"))&&(d=e,c=e.getAttribute(b))});
d&&(Be?(e.strictDi=null!==ze(d,"strict-di"),b(d,c?[c]:[],e)):C.console.error("AngularJS: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match."))}function Uc(a,b,d){D(d)||(d={});d=S({strictDi:!1},d);var c=function(){a=x(a);if(a.injector()){var c=a[0]===C.document?"document":za(a);throw pa("btstrpd",c.replace(/</,"&lt;").replace(/>/,"&gt;"));}b=b||[];b.unshift(["$provide",function(b){b.value("$rootElement",a)}]);d.debugInfoEnabled&&b.push(["$compileProvider",
function(a){a.debugInfoEnabled(!0)}]);b.unshift("ng");c=fb(b,d.strictDi);c.invoke(["$rootScope","$rootElement","$compile","$injector",function(a,b,c,d){a.$apply(function(){b.data("$injector",d);c(b)(a)})}]);return c},e=/^NG_ENABLE_DEBUG_INFO!/,f=/^NG_DEFER_BOOTSTRAP!/;C&&e.test(C.name)&&(d.debugInfoEnabled=!0,C.name=C.name.replace(e,""));if(C&&!f.test(C.name))return c();C.name=C.name.replace(f,"");ca.resumeBootstrap=function(a){r(a,function(a){b.push(a)});return c()};B(ca.resumeDeferredBootstrap)&&
ca.resumeDeferredBootstrap()}function Ce(){C.name="NG_ENABLE_DEBUG_INFO!"+C.name;C.location.reload()}function De(a){a=ca.element(a).injector();if(!a)throw pa("test");return a.get("$$testability")}function Vc(a,b){b=b||"_";return a.replace(Ee,function(a,c){return(c?b:"")+a.toLowerCase()})}function Fe(){var a;if(!Wc){var b=qb();(rb=z(b)?C.jQuery:b?C[b]:void 0)&&rb.fn.on?(x=rb,S(rb.fn,{scope:Wa.scope,isolateScope:Wa.isolateScope,controller:Wa.controller,injector:Wa.injector,inheritedData:Wa.inheritedData})):
x=Y;a=x.cleanData;x.cleanData=function(b){for(var c,e=0,f;null!=(f=b[e]);e++)(c=(x._data(f)||{}).events)&&c.$destroy&&x(f).triggerHandler("$destroy");a(b)};ca.element=x;Wc=!0}}function gb(a,b,d){if(!a)throw pa("areq",b||"?",d||"required");return a}function sb(a,b,d){d&&H(a)&&(a=a[a.length-1]);gb(B(a),b,"not a function, got "+(a&&"object"===typeof a?a.constructor.name||"Object":typeof a));return a}function Ja(a,b){if("hasOwnProperty"===a)throw pa("badname",b);}function Ge(a,b,d){if(!b)return a;b=b.split(".");
for(var c,e=a,f=b.length,g=0;g<f;g++)c=b[g],a&&(a=(e=a)[c]);return!d&&B(a)?Va(e,a):a}function tb(a){for(var b=a[0],d=a[a.length-1],c,e=1;b!==d&&(b=b.nextSibling);e++)if(c||a[e]!==b)c||(c=x(Ha.call(a,0,e))),c.push(b);return c||a}function T(){return Object.create(null)}function ic(a){if(null==a)return"";switch(typeof a){case "string":break;case "number":a=""+a;break;default:a=!bc(a)||H(a)||ha(a)?eb(a):a.toString()}return a}function He(a){function b(a,b,c){return a[b]||(a[b]=c())}var d=F("$injector"),
c=F("ng");a=b(a,"angular",Object);a.$$minErr=a.$$minErr||F;return b(a,"module",function(){var a={};return function(f,g,k){var h={};if("hasOwnProperty"===f)throw c("badname","module");g&&a.hasOwnProperty(f)&&(a[f]=null);return b(a,f,function(){function a(b,c,d,f){f||(f=e);return function(){f[d||"push"]([b,c,arguments]);return t}}function b(a,c,d){d||(d=e);return function(b,e){e&&B(e)&&(e.$$moduleName=f);d.push([a,c,arguments]);return t}}if(!g)throw d("nomod",f);var e=[],n=[],s=[],G=a("$injector","invoke",
"push",n),t={_invokeQueue:e,_configBlocks:n,_runBlocks:s,info:function(a){if(w(a)){if(!D(a))throw c("aobj","value");h=a;return this}return h},requires:g,name:f,provider:b("$provide","provider"),factory:b("$provide","factory"),service:b("$provide","service"),value:a("$provide","value"),constant:a("$provide","constant","unshift"),decorator:b("$provide","decorator",n),animation:b("$animateProvider","register"),filter:b("$filterProvider","register"),controller:b("$controllerProvider","register"),directive:b("$compileProvider",
"directive"),component:b("$compileProvider","component"),config:G,run:function(a){s.push(a);return this}};k&&G(k);return t})}})}function ja(a,b){if(H(a)){b=b||[];for(var d=0,c=a.length;d<c;d++)b[d]=a[d]}else if(D(a))for(d in b=b||{},a)if("$"!==d.charAt(0)||"$"!==d.charAt(1))b[d]=a[d];return b||a}function Ie(a,b){var d=[];Xb(b)&&(a=ca.copy(a,null,b));return JSON.stringify(a,function(a,b){b=Qc(a,b);if(D(b)){if(0<=d.indexOf(b))return"...";d.push(b)}return b})}function Je(a){S(a,{errorHandlingConfig:re,
bootstrap:Uc,copy:Ia,extend:S,merge:te,equals:va,element:x,forEach:r,injector:fb,noop:E,bind:Va,toJson:eb,fromJson:Rc,identity:Ta,isUndefined:z,isDefined:w,isString:A,isFunction:B,isObject:D,isNumber:W,isElement:$b,isArray:H,version:Ke,isDate:ha,callbacks:{$$counter:0},getTestability:De,reloadWithDebugInfo:Ce,$$minErr:F,$$csp:Aa,$$encodeUriSegment:hc,$$encodeUriQuery:ba,$$lowercase:K,$$stringify:ic,$$uppercase:ub});kc=He(C);kc("ng",["ngLocale"],["$provide",function(a){a.provider({$$sanitizeUri:Le});
a.provider("$compile",Xc).directive({a:Me,input:Yc,textarea:Yc,form:Ne,script:Oe,select:Pe,option:Qe,ngBind:Re,ngBindHtml:Se,ngBindTemplate:Te,ngClass:Ue,ngClassEven:Ve,ngClassOdd:We,ngCloak:Xe,ngController:Ye,ngForm:Ze,ngHide:$e,ngIf:af,ngInclude:bf,ngInit:cf,ngNonBindable:df,ngPluralize:ef,ngRef:ff,ngRepeat:gf,ngShow:hf,ngStyle:jf,ngSwitch:kf,ngSwitchWhen:lf,ngSwitchDefault:mf,ngOptions:nf,ngTransclude:of,ngModel:pf,ngList:qf,ngChange:rf,pattern:Zc,ngPattern:Zc,required:$c,ngRequired:$c,minlength:ad,
ngMinlength:ad,maxlength:bd,ngMaxlength:bd,ngValue:sf,ngModelOptions:tf}).directive({ngInclude:uf,input:vf}).directive(vb).directive(cd);a.provider({$anchorScroll:wf,$animate:xf,$animateCss:yf,$$animateJs:zf,$$animateQueue:Af,$$AnimateRunner:Bf,$$animateAsyncRun:Cf,$browser:Df,$cacheFactory:Ef,$controller:Ff,$document:Gf,$$isDocumentHidden:Hf,$exceptionHandler:If,$filter:dd,$$forceReflow:Jf,$interpolate:Kf,$interval:Lf,$$intervalFactory:Mf,$http:Nf,$httpParamSerializer:Of,$httpParamSerializerJQLike:Pf,
$httpBackend:Qf,$xhrFactory:Rf,$jsonpCallbacks:Sf,$location:Tf,$log:Uf,$parse:Vf,$rootScope:Wf,$q:Xf,$$q:Yf,$sce:Zf,$sceDelegate:$f,$sniffer:ag,$$taskTrackerFactory:bg,$templateCache:cg,$templateRequest:dg,$$testability:eg,$timeout:fg,$window:gg,$$rAF:hg,$$jqLite:ig,$$Map:jg,$$cookieReader:kg})}]).info({angularVersion:"1.7.9"})}function wb(a,b){return b.toUpperCase()}function xb(a){return a.replace(lg,wb)}function lc(a){a=a.nodeType;return 1===a||!a||9===a}function ed(a,b){var d,c,e=b.createDocumentFragment(),
f=[];if(mc.test(a)){d=e.appendChild(b.createElement("div"));c=(mg.exec(a)||["",""])[1].toLowerCase();c=oa[c]||oa._default;d.innerHTML=c[1]+a.replace(ng,"<$1></$2>")+c[2];for(c=c[0];c--;)d=d.lastChild;f=db(f,d.childNodes);d=e.firstChild;d.textContent=""}else f.push(b.createTextNode(a));e.textContent="";e.innerHTML="";r(f,function(a){e.appendChild(a)});return e}function Y(a){if(a instanceof Y)return a;var b;A(a)&&(a=U(a),b=!0);if(!(this instanceof Y)){if(b&&"<"!==a.charAt(0))throw nc("nosel");return new Y(a)}if(b){b=
C.document;var d;a=(d=og.exec(a))?[b.createElement(d[1])]:(d=ed(a,b))?d.childNodes:[];oc(this,a)}else B(a)?fd(a):oc(this,a)}function pc(a){return a.cloneNode(!0)}function yb(a,b){!b&&lc(a)&&x.cleanData([a]);a.querySelectorAll&&x.cleanData(a.querySelectorAll("*"))}function gd(a){for(var b in a)return!1;return!0}function hd(a){var b=a.ng339,d=b&&Ka[b],c=d&&d.events,d=d&&d.data;d&&!gd(d)||c&&!gd(c)||(delete Ka[b],a.ng339=void 0)}function id(a,b,d,c){if(w(c))throw nc("offargs");var e=(c=zb(a))&&c.events,
f=c&&c.handle;if(f){if(b){var g=function(b){var c=e[b];w(d)&&cb(c||[],d);w(d)&&c&&0<c.length||(a.removeEventListener(b,f),delete e[b])};r(b.split(" "),function(a){g(a);Ab[a]&&g(Ab[a])})}else for(b in e)"$destroy"!==b&&a.removeEventListener(b,f),delete e[b];hd(a)}}function qc(a,b){var d=a.ng339;if(d=d&&Ka[d])b?delete d.data[b]:d.data={},hd(a)}function zb(a,b){var d=a.ng339,d=d&&Ka[d];b&&!d&&(a.ng339=d=++pg,d=Ka[d]={events:{},data:{},handle:void 0});return d}function rc(a,b,d){if(lc(a)){var c,e=w(d),
f=!e&&b&&!D(b),g=!b;a=(a=zb(a,!f))&&a.data;if(e)a[xb(b)]=d;else{if(g)return a;if(f)return a&&a[xb(b)];for(c in b)a[xb(c)]=b[c]}}}function Bb(a,b){return a.getAttribute?-1<(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+b+" "):!1}function Cb(a,b){if(b&&a.setAttribute){var d=(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),c=d;r(b.split(" "),function(a){a=U(a);c=c.replace(" "+a+" "," ")});c!==d&&a.setAttribute("class",U(c))}}function Db(a,b){if(b&&a.setAttribute){var d=
(" "+(a.getAttribute("class")||"")+" ").replace(/[\n\t]/g," "),c=d;r(b.split(" "),function(a){a=U(a);-1===c.indexOf(" "+a+" ")&&(c+=a+" ")});c!==d&&a.setAttribute("class",U(c))}}function oc(a,b){if(b)if(b.nodeType)a[a.length++]=b;else{var d=b.length;if("number"===typeof d&&b.window!==b){if(d)for(var c=0;c<d;c++)a[a.length++]=b[c]}else a[a.length++]=b}}function jd(a,b){return Eb(a,"$"+(b||"ngController")+"Controller")}function Eb(a,b,d){9===a.nodeType&&(a=a.documentElement);for(b=H(b)?b:[b];a;){for(var c=
0,e=b.length;c<e;c++)if(w(d=x.data(a,b[c])))return d;a=a.parentNode||11===a.nodeType&&a.host}}function kd(a){for(yb(a,!0);a.firstChild;)a.removeChild(a.firstChild)}function Fb(a,b){b||yb(a);var d=a.parentNode;d&&d.removeChild(a)}function qg(a,b){b=b||C;if("complete"===b.document.readyState)b.setTimeout(a);else x(b).on("load",a)}function fd(a){function b(){C.document.removeEventListener("DOMContentLoaded",b);C.removeEventListener("load",b);a()}"complete"===C.document.readyState?C.setTimeout(a):(C.document.addEventListener("DOMContentLoaded",
b),C.addEventListener("load",b))}function ld(a,b){var d=Gb[b.toLowerCase()];return d&&md[ua(a)]&&d}function rg(a,b){var d=function(c,d){c.isDefaultPrevented=function(){return c.defaultPrevented};var f=b[d||c.type],g=f?f.length:0;if(g){if(z(c.immediatePropagationStopped)){var k=c.stopImmediatePropagation;c.stopImmediatePropagation=function(){c.immediatePropagationStopped=!0;c.stopPropagation&&c.stopPropagation();k&&k.call(c)}}c.isImmediatePropagationStopped=function(){return!0===c.immediatePropagationStopped};
var h=f.specialHandlerWrapper||sg;1<g&&(f=ja(f));for(var l=0;l<g;l++)c.isImmediatePropagationStopped()||h(a,c,f[l])}};d.elem=a;return d}function sg(a,b,d){d.call(a,b)}function tg(a,b,d){var c=b.relatedTarget;c&&(c===a||ug.call(a,c))||d.call(a,b)}function ig(){this.$get=function(){return S(Y,{hasClass:function(a,b){a.attr&&(a=a[0]);return Bb(a,b)},addClass:function(a,b){a.attr&&(a=a[0]);return Db(a,b)},removeClass:function(a,b){a.attr&&(a=a[0]);return Cb(a,b)}})}}function La(a,b){var d=a&&a.$$hashKey;
if(d)return"function"===typeof d&&(d=a.$$hashKey()),d;d=typeof a;return d="function"===d||"object"===d&&null!==a?a.$$hashKey=d+":"+(b||se)():d+":"+a}function nd(){this._keys=[];this._values=[];this._lastKey=NaN;this._lastIndex=-1}function od(a){a=Function.prototype.toString.call(a).replace(vg,"");return a.match(wg)||a.match(xg)}function yg(a){return(a=od(a))?"function("+(a[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function fb(a,b){function d(a){return function(b,c){if(D(b))r(b,Yb(a));else return a(b,
c)}}function c(a,b){Ja(a,"service");if(B(b)||H(b))b=n.instantiate(b);if(!b.$get)throw Ba("pget",a);return p[a+"Provider"]=b}function e(a,b){return function(){var c=t.invoke(b,this);if(z(c))throw Ba("undef",a);return c}}function f(a,b,d){return c(a,{$get:!1!==d?e(a,b):b})}function g(a){gb(z(a)||H(a),"modulesToLoad","not an array");var b=[],c;r(a,function(a){function d(a){var b,c;b=0;for(c=a.length;b<c;b++){var e=a[b],f=n.get(e[0]);f[e[1]].apply(f,e[2])}}if(!m.get(a)){m.set(a,!0);try{A(a)?(c=kc(a),
t.modules[a]=c,b=b.concat(g(c.requires)).concat(c._runBlocks),d(c._invokeQueue),d(c._configBlocks)):B(a)?b.push(n.invoke(a)):H(a)?b.push(n.invoke(a)):sb(a,"module")}catch(e){throw H(a)&&(a=a[a.length-1]),e.message&&e.stack&&-1===e.stack.indexOf(e.message)&&(e=e.message+"\n"+e.stack),Ba("modulerr",a,e.stack||e.message||e);}}});return b}function k(a,c){function d(b,e){if(a.hasOwnProperty(b)){if(a[b]===h)throw Ba("cdep",b+" <- "+l.join(" <- "));return a[b]}try{return l.unshift(b),a[b]=h,a[b]=c(b,e),
a[b]}catch(f){throw a[b]===h&&delete a[b],f;}finally{l.shift()}}function e(a,c,f){var g=[];a=fb.$$annotate(a,b,f);for(var h=0,k=a.length;h<k;h++){var l=a[h];if("string"!==typeof l)throw Ba("itkn",l);g.push(c&&c.hasOwnProperty(l)?c[l]:d(l,f))}return g}return{invoke:function(a,b,c,d){"string"===typeof c&&(d=c,c=null);c=e(a,c,d);H(a)&&(a=a[a.length-1]);d=a;if(Ca||"function"!==typeof d)d=!1;else{var f=d.$$ngIsClass;Ga(f)||(f=d.$$ngIsClass=/^class\b/.test(Function.prototype.toString.call(d)));d=f}return d?
(c.unshift(null),new (Function.prototype.bind.apply(a,c))):a.apply(b,c)},instantiate:function(a,b,c){var d=H(a)?a[a.length-1]:a;a=e(a,b,c);a.unshift(null);return new (Function.prototype.bind.apply(d,a))},get:d,annotate:fb.$$annotate,has:function(b){return p.hasOwnProperty(b+"Provider")||a.hasOwnProperty(b)}}}b=!0===b;var h={},l=[],m=new Hb,p={$provide:{provider:d(c),factory:d(f),service:d(function(a,b){return f(a,["$injector",function(a){return a.instantiate(b)}])}),value:d(function(a,b){return f(a,
ia(b),!1)}),constant:d(function(a,b){Ja(a,"constant");p[a]=b;s[a]=b}),decorator:function(a,b){var c=n.get(a+"Provider"),d=c.$get;c.$get=function(){var a=t.invoke(d,c);return t.invoke(b,null,{$delegate:a})}}}},n=p.$injector=k(p,function(a,b){ca.isString(b)&&l.push(b);throw Ba("unpr",l.join(" <- "));}),s={},G=k(s,function(a,b){var c=n.get(a+"Provider",b);return t.invoke(c.$get,c,void 0,a)}),t=G;p.$injectorProvider={$get:ia(G)};t.modules=n.modules=T();var N=g(a),t=G.get("$injector");t.strictDi=b;r(N,
function(a){a&&t.invoke(a)});t.loadNewModules=function(a){r(g(a),function(a){a&&t.invoke(a)})};return t}function wf(){var a=!0;this.disableAutoScrolling=function(){a=!1};this.$get=["$window","$location","$rootScope",function(b,d,c){function e(a){var b=null;Array.prototype.some.call(a,function(a){if("a"===ua(a))return b=a,!0});return b}function f(a){if(a){a.scrollIntoView();var c;c=g.yOffset;B(c)?c=c():$b(c)?(c=c[0],c="fixed"!==b.getComputedStyle(c).position?0:c.getBoundingClientRect().bottom):W(c)||
(c=0);c&&(a=a.getBoundingClientRect().top,b.scrollBy(0,a-c))}else b.scrollTo(0,0)}function g(a){a=A(a)?a:W(a)?a.toString():d.hash();var b;a?(b=k.getElementById(a))?f(b):(b=e(k.getElementsByName(a)))?f(b):"top"===a&&f(null):f(null)}var k=b.document;a&&c.$watch(function(){return d.hash()},function(a,b){a===b&&""===a||qg(function(){c.$evalAsync(g)})});return g}]}function hb(a,b){if(!a&&!b)return"";if(!a)return b;if(!b)return a;H(a)&&(a=a.join(" "));H(b)&&(b=b.join(" "));return a+" "+b}function zg(a){A(a)&&
(a=a.split(" "));var b=T();r(a,function(a){a.length&&(b[a]=!0)});return b}function ra(a){return D(a)?a:{}}function Ag(a,b,d,c,e){function f(){qa=null;k()}function g(){t=y();t=z(t)?null:t;va(t,P)&&(t=P);N=P=t}function k(){var a=N;g();if(v!==h.url()||a!==t)v=h.url(),N=t,r(J,function(a){a(h.url(),t)})}var h=this,l=a.location,m=a.history,p=a.setTimeout,n=a.clearTimeout,s={},G=e(d);h.isMock=!1;h.$$completeOutstandingRequest=G.completeTask;h.$$incOutstandingRequestCount=G.incTaskCount;h.notifyWhenNoOutstandingRequests=
G.notifyWhenNoPendingTasks;var t,N,v=l.href,jc=b.find("base"),qa=null,y=c.history?function(){try{return m.state}catch(a){}}:E;g();h.url=function(b,d,e){z(e)&&(e=null);l!==a.location&&(l=a.location);m!==a.history&&(m=a.history);if(b){var f=N===e;b=ga(b).href;if(v===b&&(!c.history||f))return h;var k=v&&Da(v)===Da(b);v=b;N=e;!c.history||k&&f?(k||(qa=b),d?l.replace(b):k?(d=l,e=b,f=e.indexOf("#"),e=-1===f?"":e.substr(f),d.hash=e):l.href=b,l.href!==b&&(qa=b)):(m[d?"replaceState":"pushState"](e,"",b),g());
qa&&(qa=b);return h}return(qa||l.href).replace(/#$/,"")};h.state=function(){return t};var J=[],I=!1,P=null;h.onUrlChange=function(b){if(!I){if(c.history)x(a).on("popstate",f);x(a).on("hashchange",f);I=!0}J.push(b);return b};h.$$applicationDestroyed=function(){x(a).off("hashchange popstate",f)};h.$$checkUrlChange=k;h.baseHref=function(){var a=jc.attr("href");return a?a.replace(/^(https?:)?\/\/[^/]*/,""):""};h.defer=function(a,b,c){var d;b=b||0;c=c||G.DEFAULT_TASK_TYPE;G.incTaskCount(c);d=p(function(){delete s[d];
G.completeTask(a,c)},b);s[d]=c;return d};h.defer.cancel=function(a){if(s.hasOwnProperty(a)){var b=s[a];delete s[a];n(a);G.completeTask(E,b);return!0}return!1}}function Df(){this.$get=["$window","$log","$sniffer","$document","$$taskTrackerFactory",function(a,b,d,c,e){return new Ag(a,c,b,d,e)}]}function Ef(){this.$get=function(){function a(a,c){function e(a){a!==p&&(n?n===a&&(n=a.n):n=a,f(a.n,a.p),f(a,p),p=a,p.n=null)}function f(a,b){a!==b&&(a&&(a.p=b),b&&(b.n=a))}if(a in b)throw F("$cacheFactory")("iid",
a);var g=0,k=S({},c,{id:a}),h=T(),l=c&&c.capacity||Number.MAX_VALUE,m=T(),p=null,n=null;return b[a]={put:function(a,b){if(!z(b)){if(l<Number.MAX_VALUE){var c=m[a]||(m[a]={key:a});e(c)}a in h||g++;h[a]=b;g>l&&this.remove(n.key);return b}},get:function(a){if(l<Number.MAX_VALUE){var b=m[a];if(!b)return;e(b)}return h[a]},remove:function(a){if(l<Number.MAX_VALUE){var b=m[a];if(!b)return;b===p&&(p=b.p);b===n&&(n=b.n);f(b.n,b.p);delete m[a]}a in h&&(delete h[a],g--)},removeAll:function(){h=T();g=0;m=T();
p=n=null},destroy:function(){m=k=h=null;delete b[a]},info:function(){return S({},k,{size:g})}}}var b={};a.info=function(){var a={};r(b,function(b,e){a[e]=b.info()});return a};a.get=function(a){return b[a]};return a}}function cg(){this.$get=["$cacheFactory",function(a){return a("templates")}]}function Xc(a,b){function d(a,b,c){var d=/^([@&]|[=<](\*?))(\??)\s*([\w$]*)$/,e=T();r(a,function(a,f){a=a.trim();if(a in p)e[f]=p[a];else{var g=a.match(d);if(!g)throw $("iscp",b,f,a,c?"controller bindings definition":
"isolate scope definition");e[f]={mode:g[1][0],collection:"*"===g[2],optional:"?"===g[3],attrName:g[4]||f};g[4]&&(p[a]=e[f])}});return e}function c(a){var b=a.charAt(0);if(!b||b!==K(b))throw $("baddir",a);if(a!==a.trim())throw $("baddir",a);}function e(a){var b=a.require||a.controller&&a.name;!H(b)&&D(b)&&r(b,function(a,c){var d=a.match(l);a.substring(d[0].length)||(b[c]=d[0]+c)});return b}var f={},g=/^\s*directive:\s*([\w-]+)\s+(.*)$/,k=/(([\w-]+)(?::([^;]+))?;?)/,h=we("ngSrc,ngSrcset,src,srcset"),
l=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,m=/^(on[a-z]+|formaction)$/,p=T();this.directive=function qa(b,d){gb(b,"name");Ja(b,"directive");A(b)?(c(b),gb(d,"directiveFactory"),f.hasOwnProperty(b)||(f[b]=[],a.factory(b+"Directive",["$injector","$exceptionHandler",function(a,c){var d=[];r(f[b],function(f,g){try{var h=a.invoke(f);B(h)?h={compile:ia(h)}:!h.compile&&h.link&&(h.compile=ia(h.link));h.priority=h.priority||0;h.index=g;h.name=h.name||b;h.require=e(h);var k=h,l=h.restrict;if(l&&(!A(l)||!/[EACM]/.test(l)))throw $("badrestrict",
l,b);k.restrict=l||"EA";h.$$moduleName=f.$$moduleName;d.push(h)}catch(m){c(m)}});return d}])),f[b].push(d)):r(b,Yb(qa));return this};this.component=function y(a,b){function c(a){function e(b){return B(b)||H(b)?function(c,d){return a.invoke(b,this,{$element:c,$attrs:d})}:b}var f=b.template||b.templateUrl?b.template:"",g={controller:d,controllerAs:Bg(b.controller)||b.controllerAs||"$ctrl",template:e(f),templateUrl:e(b.templateUrl),transclude:b.transclude,scope:{},bindToController:b.bindings||{},restrict:"E",
require:b.require};r(b,function(a,b){"$"===b.charAt(0)&&(g[b]=a)});return g}if(!A(a))return r(a,Yb(Va(this,y))),this;var d=b.controller||function(){};r(b,function(a,b){"$"===b.charAt(0)&&(c[b]=a,B(d)&&(d[b]=a))});c.$inject=["$injector"];return this.directive(a,c)};this.aHrefSanitizationWhitelist=function(a){return w(a)?(b.aHrefSanitizationWhitelist(a),this):b.aHrefSanitizationWhitelist()};this.imgSrcSanitizationWhitelist=function(a){return w(a)?(b.imgSrcSanitizationWhitelist(a),this):b.imgSrcSanitizationWhitelist()};
var n=!0;this.debugInfoEnabled=function(a){return w(a)?(n=a,this):n};var s=!1;this.strictComponentBindingsEnabled=function(a){return w(a)?(s=a,this):s};var G=10;this.onChangesTtl=function(a){return arguments.length?(G=a,this):G};var t=!0;this.commentDirectivesEnabled=function(a){return arguments.length?(t=a,this):t};var N=!0;this.cssClassDirectivesEnabled=function(a){return arguments.length?(N=a,this):N};var v=T();this.addPropertySecurityContext=function(a,b,c){var d=a.toLowerCase()+"|"+b.toLowerCase();
if(d in v&&v[d]!==c)throw $("ctxoverride",a,b,v[d],c);v[d]=c;return this};(function(){function a(b,c){r(c,function(a){v[a.toLowerCase()]=b})}a(V.HTML,["iframe|srcdoc","*|innerHTML","*|outerHTML"]);a(V.CSS,["*|style"]);a(V.URL,"area|href area|ping a|href a|ping blockquote|cite body|background del|cite input|src ins|cite q|cite".split(" "));a(V.MEDIA_URL,"audio|src img|src img|srcset source|src source|srcset track|src video|src video|poster".split(" "));a(V.RESOURCE_URL,"*|formAction applet|code applet|codebase base|href embed|src frame|src form|action head|profile html|manifest iframe|src link|href media|src object|codebase object|data script|src".split(" "))})();
this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate",function(a,b,c,e,p,M,L,u,R){function q(){try{if(!--Ja)throw Ua=void 0,$("infchng",G);L.$apply(function(){for(var a=0,b=Ua.length;a<b;++a)try{Ua[a]()}catch(d){c(d)}Ua=void 0})}finally{Ja++}}function ma(a,b){if(!a)return a;if(!A(a))throw $("srcset",b,a.toString());for(var c="",d=U(a),e=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,e=/\s/.test(d)?e:/(,)/,d=d.split(e),e=Math.floor(d.length/
2),f=0;f<e;f++)var g=2*f,c=c+u.getTrustedMediaUrl(U(d[g])),c=c+(" "+U(d[g+1]));d=U(d[2*f]).split(/\s/);c+=u.getTrustedMediaUrl(U(d[0]));2===d.length&&(c+=" "+U(d[1]));return c}function w(a,b){if(b){var c=Object.keys(b),d,e,f;d=0;for(e=c.length;d<e;d++)f=c[d],this[f]=b[f]}else this.$attr={};this.$$element=a}function O(a,b,c){Fa.innerHTML="<span "+b+">";b=Fa.firstChild.attributes;var d=b[0];b.removeNamedItem(d.name);d.value=c;a.attributes.setNamedItem(d)}function sa(a,b){try{a.addClass(b)}catch(c){}}
function da(a,b,c,d,e){a instanceof x||(a=x(a));var f=Xa(a,b,a,c,d,e);da.$$addScopeClass(a);var g=null;return function(b,c,d){if(!a)throw $("multilink");gb(b,"scope");e&&e.needsNewScope&&(b=b.$parent.$new());d=d||{};var h=d.parentBoundTranscludeFn,k=d.transcludeControllers;d=d.futureParentElement;h&&h.$$boundTransclude&&(h=h.$$boundTransclude);g||(g=(d=d&&d[0])?"foreignobject"!==ua(d)&&la.call(d).match(/SVG/)?"svg":"html":"html");d="html"!==g?x(ja(g,x("<div></div>").append(a).html())):c?Wa.clone.call(a):
a;if(k)for(var l in k)d.data("$"+l+"Controller",k[l].instance);da.$$addScopeInfo(d,b);c&&c(d,b);f&&f(b,d,d,h);c||(a=f=null);return d}}function Xa(a,b,c,d,e,f){function g(a,c,d,e){var f,k,l,m,p,I,t;if(n)for(t=Array(c.length),m=0;m<h.length;m+=3)f=h[m],t[f]=c[f];else t=c;m=0;for(p=h.length;m<p;)k=t[h[m++]],c=h[m++],f=h[m++],c?(c.scope?(l=a.$new(),da.$$addScopeInfo(x(k),l)):l=a,I=c.transcludeOnThisElement?ka(a,c.transclude,e):!c.templateOnThisElement&&e?e:!e&&b?ka(a,b):null,c(f,l,k,d,I)):f&&f(a,k.childNodes,
void 0,e)}for(var h=[],k=H(a)||a instanceof x,l,m,p,I,n,t=0;t<a.length;t++){l=new w;11===Ca&&ib(a,t,k);m=sc(a[t],[],l,0===t?d:void 0,e);(f=m.length?aa(m,a[t],l,b,c,null,[],[],f):null)&&f.scope&&da.$$addScopeClass(l.$$element);l=f&&f.terminal||!(p=a[t].childNodes)||!p.length?null:Xa(p,f?(f.transcludeOnThisElement||!f.templateOnThisElement)&&f.transclude:b);if(f||l)h.push(t,f,l),I=!0,n=n||f;f=null}return I?g:null}function ib(a,b,c){var d=a[b],e=d.parentNode,f;if(d.nodeType===Pa)for(;;){f=e?d.nextSibling:
a[b+1];if(!f||f.nodeType!==Pa)break;d.nodeValue+=f.nodeValue;f.parentNode&&f.parentNode.removeChild(f);c&&f===a[b+1]&&a.splice(b+1,1)}}function ka(a,b,c){function d(e,f,g,h,k){e||(e=a.$new(!1,k),e.$$transcluded=!0);return b(e,f,{parentBoundTranscludeFn:c,transcludeControllers:g,futureParentElement:h})}var e=d.$$slots=T(),f;for(f in b.$$slots)e[f]=b.$$slots[f]?ka(a,b.$$slots[f],c):null;return d}function sc(a,b,d,e,f){var g=d.$attr,h;switch(a.nodeType){case 1:h=ua(a);X(b,wa(h),"E",e,f);for(var l,m,
n,t,J,s=a.attributes,v=0,G=s&&s.length;v<G;v++){var P=!1,N=!1,r=!1,y=!1,u=!1,M;l=s[v];m=l.name;t=l.value;n=wa(m.toLowerCase());(J=n.match(Ra))?(r="Attr"===J[1],y="Prop"===J[1],u="On"===J[1],m=m.replace(pd,"").toLowerCase().substr(4+J[1].length).replace(/_(.)/g,function(a,b){return b.toUpperCase()})):(M=n.match(Sa))&&ca(M[1])&&(P=m,N=m.substr(0,m.length-5)+"end",m=m.substr(0,m.length-6));if(y||u)d[n]=t,g[n]=l.name,y?Ea(a,b,n,m):b.push(qd(p,L,c,n,m,!1));else{n=wa(m.toLowerCase());g[n]=m;if(r||!d.hasOwnProperty(n))d[n]=
t,ld(a,n)&&(d[n]=!0);Ia(a,b,t,n,r);X(b,n,"A",e,f,P,N)}}"input"===h&&"hidden"===a.getAttribute("type")&&a.setAttribute("autocomplete","off");if(!Qa)break;g=a.className;D(g)&&(g=g.animVal);if(A(g)&&""!==g)for(;a=k.exec(g);)n=wa(a[2]),X(b,n,"C",e,f)&&(d[n]=U(a[3])),g=g.substr(a.index+a[0].length);break;case Pa:na(b,a.nodeValue);break;case 8:if(!Oa)break;F(a,b,d,e,f)}b.sort(ia);return b}function F(a,b,c,d,e){try{var f=g.exec(a.nodeValue);if(f){var h=wa(f[1]);X(b,h,"M",d,e)&&(c[h]=U(f[2]))}}catch(k){}}
function V(a,b,c){var d=[],e=0;if(b&&a.hasAttribute&&a.hasAttribute(b)){do{if(!a)throw $("uterdir",b,c);1===a.nodeType&&(a.hasAttribute(b)&&e++,a.hasAttribute(c)&&e--);d.push(a);a=a.nextSibling}while(0<e)}else d.push(a);return x(d)}function Y(a,b,c){return function(d,e,f,g,h){e=V(e[0],b,c);return a(d,e,f,g,h)}}function Z(a,b,c,d,e,f){var g;return a?da(b,c,d,e,f):function(){g||(g=da(b,c,d,e,f),b=c=f=null);return g.apply(this,arguments)}}function aa(a,b,d,e,f,g,h,k,l){function m(a,b,c,d){if(a){c&&(a=
Y(a,c,d));a.require=u.require;a.directiveName=Q;if(s===u||u.$$isolateScope)a=Aa(a,{isolateScope:!0});h.push(a)}if(b){c&&(b=Y(b,c,d));b.require=u.require;b.directiveName=Q;if(s===u||u.$$isolateScope)b=Aa(b,{isolateScope:!0});k.push(b)}}function p(a,e,f,g,l){function m(a,b,c,d){var e;bb(a)||(d=c,c=b,b=a,a=void 0);N&&(e=P);c||(c=N?Q.parent():Q);if(d){var f=l.$$slots[d];if(f)return f(a,b,e,c,R);if(z(f))throw $("noslot",d,za(Q));}else return l(a,b,e,c,R)}var n,u,L,y,G,P,M,Q;b===f?(g=d,Q=d.$$element):(Q=
x(f),g=new w(Q,d));G=e;s?y=e.$new(!0):t&&(G=e.$parent);l&&(M=m,M.$$boundTransclude=l,M.isSlotFilled=function(a){return!!l.$$slots[a]});J&&(P=ea(Q,g,M,J,y,e,s));s&&(da.$$addScopeInfo(Q,y,!0,!(v&&(v===s||v===s.$$originalDirective))),da.$$addScopeClass(Q,!0),y.$$isolateBindings=s.$$isolateBindings,u=Da(e,g,y,y.$$isolateBindings,s),u.removeWatches&&y.$on("$destroy",u.removeWatches));for(n in P){u=J[n];L=P[n];var Cg=u.$$bindings.bindToController;L.instance=L();Q.data("$"+u.name+"Controller",L.instance);
L.bindingInfo=Da(G,g,L.instance,Cg,u)}r(J,function(a,b){var c=a.require;a.bindToController&&!H(c)&&D(c)&&S(P[b].instance,W(b,c,Q,P))});r(P,function(a){var b=a.instance;if(B(b.$onChanges))try{b.$onChanges(a.bindingInfo.initialChanges)}catch(d){c(d)}if(B(b.$onInit))try{b.$onInit()}catch(e){c(e)}B(b.$doCheck)&&(G.$watch(function(){b.$doCheck()}),b.$doCheck());B(b.$onDestroy)&&G.$on("$destroy",function(){b.$onDestroy()})});n=0;for(u=h.length;n<u;n++)L=h[n],Ba(L,L.isolateScope?y:e,Q,g,L.require&&W(L.directiveName,
L.require,Q,P),M);var R=e;s&&(s.template||null===s.templateUrl)&&(R=y);a&&a(R,f.childNodes,void 0,l);for(n=k.length-1;0<=n;n--)L=k[n],Ba(L,L.isolateScope?y:e,Q,g,L.require&&W(L.directiveName,L.require,Q,P),M);r(P,function(a){a=a.instance;B(a.$postLink)&&a.$postLink()})}l=l||{};for(var n=-Number.MAX_VALUE,t=l.newScopeDirective,J=l.controllerDirectives,s=l.newIsolateScopeDirective,v=l.templateDirective,L=l.nonTlbTranscludeDirective,G=!1,P=!1,N=l.hasElementTranscludeDirective,y=d.$$element=x(b),u,Q,
M,R=e,q,ma=!1,Ib=!1,O,sa=0,A=a.length;sa<A;sa++){u=a[sa];var E=u.$$start,ib=u.$$end;E&&(y=V(b,E,ib));M=void 0;if(n>u.priority)break;if(O=u.scope)u.templateUrl||(D(O)?(ba("new/isolated scope",s||t,u,y),s=u):ba("new/isolated scope",s,u,y)),t=t||u;Q=u.name;if(!ma&&(u.replace&&(u.templateUrl||u.template)||u.transclude&&!u.$$tlb)){for(O=sa+1;ma=a[O++];)if(ma.transclude&&!ma.$$tlb||ma.replace&&(ma.templateUrl||ma.template)){Ib=!0;break}ma=!0}!u.templateUrl&&u.controller&&(J=J||T(),ba("'"+Q+"' controller",
J[Q],u,y),J[Q]=u);if(O=u.transclude)if(G=!0,u.$$tlb||(ba("transclusion",L,u,y),L=u),"element"===O)N=!0,n=u.priority,M=y,y=d.$$element=x(da.$$createComment(Q,d[Q])),b=y[0],pa(f,Ha.call(M,0),b),R=Z(Ib,M,e,n,g&&g.name,{nonTlbTranscludeDirective:L});else{var ka=T();if(D(O)){M=C.document.createDocumentFragment();var Xa=T(),F=T();r(O,function(a,b){var c="?"===a.charAt(0);a=c?a.substring(1):a;Xa[a]=b;ka[b]=null;F[b]=c});r(y.contents(),function(a){var b=Xa[wa(ua(a))];b?(F[b]=!0,ka[b]=ka[b]||C.document.createDocumentFragment(),
ka[b].appendChild(a)):M.appendChild(a)});r(F,function(a,b){if(!a)throw $("reqslot",b);});for(var K in ka)ka[K]&&(R=x(ka[K].childNodes),ka[K]=Z(Ib,R,e));M=x(M.childNodes)}else M=x(pc(b)).contents();y.empty();R=Z(Ib,M,e,void 0,void 0,{needsNewScope:u.$$isolateScope||u.$$newScope});R.$$slots=ka}if(u.template)if(P=!0,ba("template",v,u,y),v=u,O=B(u.template)?u.template(y,d):u.template,O=Na(O),u.replace){g=u;M=mc.test(O)?rd(ja(u.templateNamespace,U(O))):[];b=M[0];if(1!==M.length||1!==b.nodeType)throw $("tplrt",
Q,"");pa(f,y,b);A={$attr:{}};O=sc(b,[],A);var Dg=a.splice(sa+1,a.length-(sa+1));(s||t)&&fa(O,s,t);a=a.concat(O).concat(Dg);ga(d,A);A=a.length}else y.html(O);if(u.templateUrl)P=!0,ba("template",v,u,y),v=u,u.replace&&(g=u),p=ha(a.splice(sa,a.length-sa),y,d,f,G&&R,h,k,{controllerDirectives:J,newScopeDirective:t!==u&&t,newIsolateScopeDirective:s,templateDirective:v,nonTlbTranscludeDirective:L}),A=a.length;else if(u.compile)try{q=u.compile(y,d,R);var X=u.$$originalDirective||u;B(q)?m(null,Va(X,q),E,ib):
q&&m(Va(X,q.pre),Va(X,q.post),E,ib)}catch(ca){c(ca,za(y))}u.terminal&&(p.terminal=!0,n=Math.max(n,u.priority))}p.scope=t&&!0===t.scope;p.transcludeOnThisElement=G;p.templateOnThisElement=P;p.transclude=R;l.hasElementTranscludeDirective=N;return p}function W(a,b,c,d){var e;if(A(b)){var f=b.match(l);b=b.substring(f[0].length);var g=f[1]||f[3],f="?"===f[2];"^^"===g?c=c.parent():e=(e=d&&d[b])&&e.instance;if(!e){var h="$"+b+"Controller";e="^^"===g&&c[0]&&9===c[0].nodeType?null:g?c.inheritedData(h):c.data(h)}if(!e&&
!f)throw $("ctreq",b,a);}else if(H(b))for(e=[],g=0,f=b.length;g<f;g++)e[g]=W(a,b[g],c,d);else D(b)&&(e={},r(b,function(b,f){e[f]=W(a,b,c,d)}));return e||null}function ea(a,b,c,d,e,f,g){var h=T(),k;for(k in d){var l=d[k],m={$scope:l===g||l.$$isolateScope?e:f,$element:a,$attrs:b,$transclude:c},p=l.controller;"@"===p&&(p=b[l.name]);m=M(p,m,!0,l.controllerAs);h[l.name]=m;a.data("$"+l.name+"Controller",m.instance)}return h}function fa(a,b,c){for(var d=0,e=a.length;d<e;d++)a[d]=ac(a[d],{$$isolateScope:b,
$$newScope:c})}function X(b,c,e,g,h,k,l){if(c===h)return null;var m=null;if(f.hasOwnProperty(c)){h=a.get(c+"Directive");for(var p=0,n=h.length;p<n;p++)if(c=h[p],(z(g)||g>c.priority)&&-1!==c.restrict.indexOf(e)){k&&(c=ac(c,{$$start:k,$$end:l}));if(!c.$$bindings){var I=m=c,t=c.name,u={isolateScope:null,bindToController:null};D(I.scope)&&(!0===I.bindToController?(u.bindToController=d(I.scope,t,!0),u.isolateScope={}):u.isolateScope=d(I.scope,t,!1));D(I.bindToController)&&(u.bindToController=d(I.bindToController,
t,!0));if(u.bindToController&&!I.controller)throw $("noctrl",t);m=m.$$bindings=u;D(m.isolateScope)&&(c.$$isolateBindings=m.isolateScope)}b.push(c);m=c}}return m}function ca(b){if(f.hasOwnProperty(b))for(var c=a.get(b+"Directive"),d=0,e=c.length;d<e;d++)if(b=c[d],b.multiElement)return!0;return!1}function ga(a,b){var c=b.$attr,d=a.$attr;r(a,function(d,e){"$"!==e.charAt(0)&&(b[e]&&b[e]!==d&&(d=d.length?d+(("style"===e?";":" ")+b[e]):b[e]),a.$set(e,d,!0,c[e]))});r(b,function(b,e){a.hasOwnProperty(e)||
"$"===e.charAt(0)||(a[e]=b,"class"!==e&&"style"!==e&&(d[e]=c[e]))})}function ha(a,b,d,f,g,h,k,l){var m=[],p,n,t=b[0],u=a.shift(),J=ac(u,{templateUrl:null,transclude:null,replace:null,$$originalDirective:u}),s=B(u.templateUrl)?u.templateUrl(b,d):u.templateUrl,L=u.templateNamespace;b.empty();e(s).then(function(c){var e,I;c=Na(c);if(u.replace){c=mc.test(c)?rd(ja(L,U(c))):[];e=c[0];if(1!==c.length||1!==e.nodeType)throw $("tplrt",u.name,s);c={$attr:{}};pa(f,b,e);var v=sc(e,[],c);D(u.scope)&&fa(v,!0);a=
v.concat(a);ga(d,c)}else e=t,b.html(c);a.unshift(J);p=aa(a,e,d,g,b,u,h,k,l);r(f,function(a,c){a===e&&(f[c]=b[0])});for(n=Xa(b[0].childNodes,g);m.length;){c=m.shift();I=m.shift();var y=m.shift(),P=m.shift(),v=b[0];if(!c.$$destroyed){if(I!==t){var G=I.className;l.hasElementTranscludeDirective&&u.replace||(v=pc(e));pa(y,x(I),v);sa(x(v),G)}I=p.transcludeOnThisElement?ka(c,p.transclude,P):P;p(n,c,v,f,I)}}m=null}).catch(function(a){cc(a)&&c(a)});return function(a,b,c,d,e){a=e;b.$$destroyed||(m?m.push(b,
c,d,a):(p.transcludeOnThisElement&&(a=ka(b,p.transclude,e)),p(n,b,c,d,a)))}}function ia(a,b){var c=b.priority-a.priority;return 0!==c?c:a.name!==b.name?a.name<b.name?-1:1:a.index-b.index}function ba(a,b,c,d){function e(a){return a?" (module: "+a+")":""}if(b)throw $("multidir",b.name,e(b.$$moduleName),c.name,e(c.$$moduleName),a,za(d));}function na(a,c){var d=b(c,!0);d&&a.push({priority:0,compile:function(a){a=a.parent();var b=!!a.length;b&&da.$$addBindingClass(a);return function(a,c){var e=c.parent();
b||da.$$addBindingClass(e);da.$$addBindingInfo(e,d.expressions);a.$watch(d,function(a){c[0].nodeValue=a})}}})}function ja(a,b){a=K(a||"html");switch(a){case "svg":case "math":var c=C.document.createElement("div");c.innerHTML="<"+a+">"+b+"</"+a+">";return c.childNodes[0].childNodes;default:return b}}function oa(a,b){if("srcdoc"===b)return u.HTML;if("src"===b||"ngSrc"===b)return-1===["img","video","audio","source","track"].indexOf(a)?u.RESOURCE_URL:u.MEDIA_URL;if("xlinkHref"===b)return"image"===a?u.MEDIA_URL:
"a"===a?u.URL:u.RESOURCE_URL;if("form"===a&&"action"===b||"base"===a&&"href"===b||"link"===a&&"href"===b)return u.RESOURCE_URL;if("a"===a&&("href"===b||"ngHref"===b))return u.URL}function xa(a,b){var c=b.toLowerCase();return v[a+"|"+c]||v["*|"+c]}function ya(a){return ma(u.valueOf(a),"ng-prop-srcset")}function Ea(a,b,c,d){if(m.test(d))throw $("nodomevents");a=ua(a);var e=xa(a,d),f=Ta;"srcset"!==d||"img"!==a&&"source"!==a?e&&(f=u.getTrusted.bind(u,e)):f=ya;b.push({priority:100,compile:function(a,b){var e=
p(b[c]),g=p(b[c],function(a){return u.valueOf(a)});return{pre:function(a,b){function c(){var g=e(a);b[0][d]=f(g)}c();a.$watch(g,c)}}}})}function Ia(a,c,d,e,f){var g=ua(a),k=oa(g,e),l=h[e]||f,p=b(d,!f,k,l);if(p){if("multiple"===e&&"select"===g)throw $("selmulti",za(a));if(m.test(e))throw $("nodomevents");c.push({priority:100,compile:function(){return{pre:function(a,c,f){c=f.$$observers||(f.$$observers=T());var g=f[e];g!==d&&(p=g&&b(g,!0,k,l),d=g);p&&(f[e]=p(a),(c[e]||(c[e]=[])).$$inter=!0,(f.$$observers&&
f.$$observers[e].$$scope||a).$watch(p,function(a,b){"class"===e&&a!==b?f.$updateClass(a,b):f.$set(e,a)}))}}}})}}function pa(a,b,c){var d=b[0],e=b.length,f=d.parentNode,g,h;if(a)for(g=0,h=a.length;g<h;g++)if(a[g]===d){a[g++]=c;h=g+e-1;for(var k=a.length;g<k;g++,h++)h<k?a[g]=a[h]:delete a[g];a.length-=e-1;a.context===d&&(a.context=c);break}f&&f.replaceChild(c,d);a=C.document.createDocumentFragment();for(g=0;g<e;g++)a.appendChild(b[g]);x.hasData(d)&&(x.data(c,x.data(d)),x(d).off("$destroy"));x.cleanData(a.querySelectorAll("*"));
for(g=1;g<e;g++)delete b[g];b[0]=c;b.length=1}function Aa(a,b){return S(function(){return a.apply(null,arguments)},a,b)}function Ba(a,b,d,e,f,g){try{a(b,d,e,f,g)}catch(h){c(h,za(d))}}function ra(a,b){if(s)throw $("missingattr",a,b);}function Da(a,c,d,e,f){function g(b,c,e){B(d.$onChanges)&&!dc(c,e)&&(Ua||(a.$$postDigest(q),Ua=[]),m||(m={},Ua.push(h)),m[b]&&(e=m[b].previousValue),m[b]=new Jb(e,c))}function h(){d.$onChanges(m);m=void 0}var k=[],l={},m;r(e,function(e,h){var m=e.attrName,n=e.optional,
I,t,u,s;switch(e.mode){case "@":n||ta.call(c,m)||(ra(m,f.name),d[h]=c[m]=void 0);n=c.$observe(m,function(a){if(A(a)||Ga(a))g(h,a,d[h]),d[h]=a});c.$$observers[m].$$scope=a;I=c[m];A(I)?d[h]=b(I)(a):Ga(I)&&(d[h]=I);l[h]=new Jb(tc,d[h]);k.push(n);break;case "=":if(!ta.call(c,m)){if(n)break;ra(m,f.name);c[m]=void 0}if(n&&!c[m])break;t=p(c[m]);s=t.literal?va:dc;u=t.assign||function(){I=d[h]=t(a);throw $("nonassign",c[m],m,f.name);};I=d[h]=t(a);n=function(b){s(b,d[h])||(s(b,I)?u(a,b=d[h]):d[h]=b);return I=
b};n.$stateful=!0;n=e.collection?a.$watchCollection(c[m],n):a.$watch(p(c[m],n),null,t.literal);k.push(n);break;case "<":if(!ta.call(c,m)){if(n)break;ra(m,f.name);c[m]=void 0}if(n&&!c[m])break;t=p(c[m]);var v=t.literal,L=d[h]=t(a);l[h]=new Jb(tc,d[h]);n=a[e.collection?"$watchCollection":"$watch"](t,function(a,b){if(b===a){if(b===L||v&&va(b,L))return;b=L}g(h,a,b);d[h]=a});k.push(n);break;case "&":n||ta.call(c,m)||ra(m,f.name);t=c.hasOwnProperty(m)?p(c[m]):E;if(t===E&&n)break;d[h]=function(b){return t(a,
b)}}});return{initialChanges:l,removeWatches:k.length&&function(){for(var a=0,b=k.length;a<b;++a)k[a]()}}}var Ma=/^\w/,Fa=C.document.createElement("div"),Oa=t,Qa=N,Ja=G,Ua;w.prototype={$normalize:wa,$addClass:function(a){a&&0<a.length&&R.addClass(this.$$element,a)},$removeClass:function(a){a&&0<a.length&&R.removeClass(this.$$element,a)},$updateClass:function(a,b){var c=sd(a,b);c&&c.length&&R.addClass(this.$$element,c);(c=sd(b,a))&&c.length&&R.removeClass(this.$$element,c)},$set:function(a,b,d,e){var f=
ld(this.$$element[0],a),g=td[a],h=a;f?(this.$$element.prop(a,b),e=f):g&&(this[g]=b,h=g);this[a]=b;e?this.$attr[a]=e:(e=this.$attr[a])||(this.$attr[a]=e=Vc(a,"-"));"img"===ua(this.$$element)&&"srcset"===a&&(this[a]=b=ma(b,"$set('srcset', value)"));!1!==d&&(null===b||z(b)?this.$$element.removeAttr(e):Ma.test(e)?f&&!1===b?this.$$element.removeAttr(e):this.$$element.attr(e,b):O(this.$$element[0],e,b));(a=this.$$observers)&&r(a[h],function(a){try{a(b)}catch(d){c(d)}})},$observe:function(a,b){var c=this,
d=c.$$observers||(c.$$observers=T()),e=d[a]||(d[a]=[]);e.push(b);L.$evalAsync(function(){e.$$inter||!c.hasOwnProperty(a)||z(c[a])||b(c[a])});return function(){cb(e,b)}}};var Ka=b.startSymbol(),La=b.endSymbol(),Na="{{"===Ka&&"}}"===La?Ta:function(a){return a.replace(/\{\{/g,Ka).replace(/}}/g,La)},Ra=/^ng(Attr|Prop|On)([A-Z].*)$/,Sa=/^(.+)Start$/;da.$$addBindingInfo=n?function(a,b){var c=a.data("$binding")||[];H(b)?c=c.concat(b):c.push(b);a.data("$binding",c)}:E;da.$$addBindingClass=n?function(a){sa(a,
"ng-binding")}:E;da.$$addScopeInfo=n?function(a,b,c,d){a.data(c?d?"$isolateScopeNoTemplate":"$isolateScope":"$scope",b)}:E;da.$$addScopeClass=n?function(a,b){sa(a,b?"ng-isolate-scope":"ng-scope")}:E;da.$$createComment=function(a,b){var c="";n&&(c=" "+(a||"")+": ",b&&(c+=b+" "));return C.document.createComment(c)};return da}]}function Jb(a,b){this.previousValue=a;this.currentValue=b}function wa(a){return a.replace(pd,"").replace(Eg,function(a,d,c){return c?d.toUpperCase():d})}function sd(a,b){var d=
"",c=a.split(/\s+/),e=b.split(/\s+/),f=0;a:for(;f<c.length;f++){for(var g=c[f],k=0;k<e.length;k++)if(g===e[k])continue a;d+=(0<d.length?" ":"")+g}return d}function rd(a){a=x(a);var b=a.length;if(1>=b)return a;for(;b--;){var d=a[b];(8===d.nodeType||d.nodeType===Pa&&""===d.nodeValue.trim())&&Fg.call(a,b,1)}return a}function Bg(a,b){if(b&&A(b))return b;if(A(a)){var d=ud.exec(a);if(d)return d[3]}}function Ff(){var a={};this.has=function(b){return a.hasOwnProperty(b)};this.register=function(b,d){Ja(b,
"controller");D(b)?S(a,b):a[b]=d};this.$get=["$injector",function(b){function d(a,b,d,g){if(!a||!D(a.$scope))throw F("$controller")("noscp",g,b);a.$scope[b]=d}return function(c,e,f,g){var k,h,l;f=!0===f;g&&A(g)&&(l=g);if(A(c)){g=c.match(ud);if(!g)throw vd("ctrlfmt",c);h=g[1];l=l||g[3];c=a.hasOwnProperty(h)?a[h]:Ge(e.$scope,h,!0);if(!c)throw vd("ctrlreg",h);sb(c,h,!0)}if(f)return f=(H(c)?c[c.length-1]:c).prototype,k=Object.create(f||null),l&&d(e,l,k,h||c.name),S(function(){var a=b.invoke(c,k,e,h);
a!==k&&(D(a)||B(a))&&(k=a,l&&d(e,l,k,h||c.name));return k},{instance:k,identifier:l});k=b.instantiate(c,e,h);l&&d(e,l,k,h||c.name);return k}}]}function Gf(){this.$get=["$window",function(a){return x(a.document)}]}function Hf(){this.$get=["$document","$rootScope",function(a,b){function d(){e=c.hidden}var c=a[0],e=c&&c.hidden;a.on("visibilitychange",d);b.$on("$destroy",function(){a.off("visibilitychange",d)});return function(){return e}}]}function If(){this.$get=["$log",function(a){return function(b,
d){a.error.apply(a,arguments)}}]}function uc(a){return D(a)?ha(a)?a.toISOString():eb(a):a}function Of(){this.$get=function(){return function(a){if(!a)return"";var b=[];Oc(a,function(a,c){null===a||z(a)||B(a)||(H(a)?r(a,function(a){b.push(ba(c)+"="+ba(uc(a)))}):b.push(ba(c)+"="+ba(uc(a))))});return b.join("&")}}}function Pf(){this.$get=function(){return function(a){function b(a,e,f){H(a)?r(a,function(a,c){b(a,e+"["+(D(a)?c:"")+"]")}):D(a)&&!ha(a)?Oc(a,function(a,c){b(a,e+(f?"":"[")+c+(f?"":"]"))}):
(B(a)&&(a=a()),d.push(ba(e)+"="+(null==a?"":ba(uc(a)))))}if(!a)return"";var d=[];b(a,"",!0);return d.join("&")}}}function vc(a,b){if(A(a)){var d=a.replace(Gg,"").trim();if(d){var c=b("Content-Type"),c=c&&0===c.indexOf(wd),e;(e=c)||(e=(e=d.match(Hg))&&Ig[e[0]].test(d));if(e)try{a=Rc(d)}catch(f){if(!c)return a;throw Kb("baddata",a,f);}}}return a}function xd(a){var b=T(),d;A(a)?r(a.split("\n"),function(a){d=a.indexOf(":");var e=K(U(a.substr(0,d)));a=U(a.substr(d+1));e&&(b[e]=b[e]?b[e]+", "+a:a)}):D(a)&&
r(a,function(a,d){var f=K(d),g=U(a);f&&(b[f]=b[f]?b[f]+", "+g:g)});return b}function yd(a){var b;return function(d){b||(b=xd(a));return d?(d=b[K(d)],void 0===d&&(d=null),d):b}}function zd(a,b,d,c){if(B(c))return c(a,b,d);r(c,function(c){a=c(a,b,d)});return a}function Nf(){var a=this.defaults={transformResponse:[vc],transformRequest:[function(a){return D(a)&&"[object File]"!==la.call(a)&&"[object Blob]"!==la.call(a)&&"[object FormData]"!==la.call(a)?eb(a):a}],headers:{common:{Accept:"application/json, text/plain, */*"},
post:ja(wc),put:ja(wc),patch:ja(wc)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer",jsonpCallbackParam:"callback"},b=!1;this.useApplyAsync=function(a){return w(a)?(b=!!a,this):b};var d=this.interceptors=[],c=this.xsrfWhitelistedOrigins=[];this.$get=["$browser","$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector","$sce",function(e,f,g,k,h,l,m,p){function n(b){function c(a,b){for(var d=0,e=b.length;d<e;){var f=b[d++],g=b[d++];
a=a.then(f,g)}b.length=0;return a}function d(a,b){var c,e={};r(a,function(a,d){B(a)?(c=a(b),null!=c&&(e[d]=c)):e[d]=a});return e}function f(a){var b=S({},a);b.data=zd(a.data,a.headers,a.status,g.transformResponse);a=a.status;return 200<=a&&300>a?b:l.reject(b)}if(!D(b))throw F("$http")("badreq",b);if(!A(p.valueOf(b.url)))throw F("$http")("badreq",b.url);var g=S({method:"get",transformRequest:a.transformRequest,transformResponse:a.transformResponse,paramSerializer:a.paramSerializer,jsonpCallbackParam:a.jsonpCallbackParam},
b);g.headers=function(b){var c=a.headers,e=S({},b.headers),f,g,h,c=S({},c.common,c[K(b.method)]);a:for(f in c){g=K(f);for(h in e)if(K(h)===g)continue a;e[f]=c[f]}return d(e,ja(b))}(b);g.method=ub(g.method);g.paramSerializer=A(g.paramSerializer)?m.get(g.paramSerializer):g.paramSerializer;e.$$incOutstandingRequestCount("$http");var h=[],k=[];b=l.resolve(g);r(v,function(a){(a.request||a.requestError)&&h.unshift(a.request,a.requestError);(a.response||a.responseError)&&k.push(a.response,a.responseError)});
b=c(b,h);b=b.then(function(b){var c=b.headers,d=zd(b.data,yd(c),void 0,b.transformRequest);z(d)&&r(c,function(a,b){"content-type"===K(b)&&delete c[b]});z(b.withCredentials)&&!z(a.withCredentials)&&(b.withCredentials=a.withCredentials);return s(b,d).then(f,f)});b=c(b,k);return b=b.finally(function(){e.$$completeOutstandingRequest(E,"$http")})}function s(c,d){function e(a){if(a){var c={};r(a,function(a,d){c[d]=function(c){function d(){a(c)}b?h.$applyAsync(d):h.$$phase?d():h.$apply(d)}});return c}}function k(a,
c,d,e,f){function g(){m(c,a,d,e,f)}R&&(200<=a&&300>a?R.put(O,[a,c,xd(d),e,f]):R.remove(O));b?h.$applyAsync(g):(g(),h.$$phase||h.$apply())}function m(a,b,d,e,f){b=-1<=b?b:0;(200<=b&&300>b?L.resolve:L.reject)({data:a,status:b,headers:yd(d),config:c,statusText:e,xhrStatus:f})}function s(a){m(a.data,a.status,ja(a.headers()),a.statusText,a.xhrStatus)}function v(){var a=n.pendingRequests.indexOf(c);-1!==a&&n.pendingRequests.splice(a,1)}var L=l.defer(),u=L.promise,R,q,ma=c.headers,x="jsonp"===K(c.method),
O=c.url;x?O=p.getTrustedResourceUrl(O):A(O)||(O=p.valueOf(O));O=G(O,c.paramSerializer(c.params));x&&(O=t(O,c.jsonpCallbackParam));n.pendingRequests.push(c);u.then(v,v);!c.cache&&!a.cache||!1===c.cache||"GET"!==c.method&&"JSONP"!==c.method||(R=D(c.cache)?c.cache:D(a.cache)?a.cache:N);R&&(q=R.get(O),w(q)?q&&B(q.then)?q.then(s,s):H(q)?m(q[1],q[0],ja(q[2]),q[3],q[4]):m(q,200,{},"OK","complete"):R.put(O,u));z(q)&&((q=jc(c.url)?g()[c.xsrfCookieName||a.xsrfCookieName]:void 0)&&(ma[c.xsrfHeaderName||a.xsrfHeaderName]=
q),f(c.method,O,d,k,ma,c.timeout,c.withCredentials,c.responseType,e(c.eventHandlers),e(c.uploadEventHandlers)));return u}function G(a,b){0<b.length&&(a+=(-1===a.indexOf("?")?"?":"&")+b);return a}function t(a,b){var c=a.split("?");if(2<c.length)throw Kb("badjsonp",a);c=gc(c[1]);r(c,function(c,d){if("JSON_CALLBACK"===c)throw Kb("badjsonp",a);if(d===b)throw Kb("badjsonp",b,a);});return a+=(-1===a.indexOf("?")?"?":"&")+b+"=JSON_CALLBACK"}var N=k("$http");a.paramSerializer=A(a.paramSerializer)?m.get(a.paramSerializer):
a.paramSerializer;var v=[];r(d,function(a){v.unshift(A(a)?m.get(a):m.invoke(a))});var jc=Jg(c);n.pendingRequests=[];(function(a){r(arguments,function(a){n[a]=function(b,c){return n(S({},c||{},{method:a,url:b}))}})})("get","delete","head","jsonp");(function(a){r(arguments,function(a){n[a]=function(b,c,d){return n(S({},d||{},{method:a,url:b,data:c}))}})})("post","put","patch");n.defaults=a;return n}]}function Rf(){this.$get=function(){return function(){return new C.XMLHttpRequest}}}function Qf(){this.$get=
["$browser","$jsonpCallbacks","$document","$xhrFactory",function(a,b,d,c){return Kg(a,c,a.defer,b,d[0])}]}function Kg(a,b,d,c,e){function f(a,b,d){a=a.replace("JSON_CALLBACK",b);var f=e.createElement("script"),m=null;f.type="text/javascript";f.src=a;f.async=!0;m=function(a){f.removeEventListener("load",m);f.removeEventListener("error",m);e.body.removeChild(f);f=null;var g=-1,s="unknown";a&&("load"!==a.type||c.wasCalled(b)||(a={type:"error"}),s=a.type,g="error"===a.type?404:200);d&&d(g,s)};f.addEventListener("load",
m);f.addEventListener("error",m);e.body.appendChild(f);return m}return function(e,k,h,l,m,p,n,s,G,t){function N(a){J="timeout"===a;qa&&qa();y&&y.abort()}function v(a,b,c,e,f,g){w(P)&&d.cancel(P);qa=y=null;a(b,c,e,f,g)}k=k||a.url();if("jsonp"===K(e))var q=c.createCallback(k),qa=f(k,q,function(a,b){var d=200===a&&c.getResponse(q);v(l,a,d,"",b,"complete");c.removeCallback(q)});else{var y=b(e,k),J=!1;y.open(e,k,!0);r(m,function(a,b){w(a)&&y.setRequestHeader(b,a)});y.onload=function(){var a=y.statusText||
"",b="response"in y?y.response:y.responseText,c=1223===y.status?204:y.status;0===c&&(c=b?200:"file"===ga(k).protocol?404:0);v(l,c,b,y.getAllResponseHeaders(),a,"complete")};y.onerror=function(){v(l,-1,null,null,"","error")};y.ontimeout=function(){v(l,-1,null,null,"","timeout")};y.onabort=function(){v(l,-1,null,null,"",J?"timeout":"abort")};r(G,function(a,b){y.addEventListener(b,a)});r(t,function(a,b){y.upload.addEventListener(b,a)});n&&(y.withCredentials=!0);if(s)try{y.responseType=s}catch(I){if("json"!==
s)throw I;}y.send(z(h)?null:h)}if(0<p)var P=d(function(){N("timeout")},p);else p&&B(p.then)&&p.then(function(){N(w(p.$$timeoutId)?"timeout":"abort")})}}function Kf(){var a="{{",b="}}";this.startSymbol=function(b){return b?(a=b,this):a};this.endSymbol=function(a){return a?(b=a,this):b};this.$get=["$parse","$exceptionHandler","$sce",function(d,c,e){function f(a){return"\\\\\\"+a}function g(c){return c.replace(p,a).replace(n,b)}function k(a,b,c,d){var e=a.$watch(function(a){e();return d(a)},b,c);return e}
function h(f,h,n,p){function v(a){try{return a=n&&!r?e.getTrusted(n,a):e.valueOf(a),p&&!w(a)?a:ic(a)}catch(b){c(Ma.interr(f,b))}}var r=n===e.URL||n===e.MEDIA_URL;if(!f.length||-1===f.indexOf(a)){if(h)return;h=g(f);r&&(h=e.getTrusted(n,h));h=ia(h);h.exp=f;h.expressions=[];h.$$watchDelegate=k;return h}p=!!p;for(var q,y,J=0,I=[],P,Q=f.length,M=[],L=[],u;J<Q;)if(-1!==(q=f.indexOf(a,J))&&-1!==(y=f.indexOf(b,q+l)))J!==q&&M.push(g(f.substring(J,q))),J=f.substring(q+l,y),I.push(J),J=y+m,L.push(M.length),
M.push("");else{J!==Q&&M.push(g(f.substring(J)));break}u=1===M.length&&1===L.length;var R=r&&u?void 0:v;P=I.map(function(a){return d(a,R)});if(!h||I.length){var x=function(a){for(var b=0,c=I.length;b<c;b++){if(p&&z(a[b]))return;M[L[b]]=a[b]}if(r)return e.getTrusted(n,u?M[0]:M.join(""));n&&1<M.length&&Ma.throwNoconcat(f);return M.join("")};return S(function(a){var b=0,d=I.length,e=Array(d);try{for(;b<d;b++)e[b]=P[b](a);return x(e)}catch(g){c(Ma.interr(f,g))}},{exp:f,expressions:I,$$watchDelegate:function(a,
b){var c;return a.$watchGroup(P,function(d,e){var f=x(d);b.call(this,f,d!==e?c:f,a);c=f})}})}}var l=a.length,m=b.length,p=new RegExp(a.replace(/./g,f),"g"),n=new RegExp(b.replace(/./g,f),"g");h.startSymbol=function(){return a};h.endSymbol=function(){return b};return h}]}function Lf(){this.$get=["$$intervalFactory","$window",function(a,b){var d={},c=function(a){b.clearInterval(a);delete d[a]},e=a(function(a,c,e){a=b.setInterval(a,c);d[a]=e;return a},c);e.cancel=function(a){if(!a)return!1;if(!a.hasOwnProperty("$$intervalId"))throw Lg("badprom");
if(!d.hasOwnProperty(a.$$intervalId))return!1;a=a.$$intervalId;var b=d[a],e=b.promise;e.$$state&&(e.$$state.pur=!0);b.reject("canceled");c(a);return!0};return e}]}function Mf(){this.$get=["$browser","$q","$$q","$rootScope",function(a,b,d,c){return function(e,f){return function(g,k,h,l){function m(){p?g.apply(null,n):g(s)}var p=4<arguments.length,n=p?Ha.call(arguments,4):[],s=0,G=w(l)&&!l,t=(G?d:b).defer(),r=t.promise;h=w(h)?h:0;r.$$intervalId=e(function(){G?a.defer(m):c.$evalAsync(m);t.notify(s++);
0<h&&s>=h&&(t.resolve(s),f(r.$$intervalId));G||c.$apply()},k,t,G);return r}}}]}function Ad(a,b){var d=ga(a);b.$$protocol=d.protocol;b.$$host=d.hostname;b.$$port=fa(d.port)||Mg[d.protocol]||null}function Bd(a,b,d){if(Ng.test(a))throw jb("badpath",a);var c="/"!==a.charAt(0);c&&(a="/"+a);a=ga(a);for(var c=(c&&"/"===a.pathname.charAt(0)?a.pathname.substring(1):a.pathname).split("/"),e=c.length;e--;)c[e]=decodeURIComponent(c[e]),d&&(c[e]=c[e].replace(/\//g,"%2F"));d=c.join("/");b.$$path=d;b.$$search=gc(a.search);
b.$$hash=decodeURIComponent(a.hash);b.$$path&&"/"!==b.$$path.charAt(0)&&(b.$$path="/"+b.$$path)}function xc(a,b){return a.slice(0,b.length)===b}function xa(a,b){if(xc(b,a))return b.substr(a.length)}function Da(a){var b=a.indexOf("#");return-1===b?a:a.substr(0,b)}function yc(a,b,d){this.$$html5=!0;d=d||"";Ad(a,this);this.$$parse=function(a){var d=xa(b,a);if(!A(d))throw jb("ipthprfx",a,b);Bd(d,this,!0);this.$$path||(this.$$path="/");this.$$compose()};this.$$normalizeUrl=function(a){return b+a.substr(1)};
this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;w(f=xa(a,c))?(g=f,g=d&&w(f=xa(d,f))?b+(xa("/",f)||f):a+g):w(f=xa(b,c))?g=b+f:b===c+"/"&&(g=b);g&&this.$$parse(g);return!!g}}function zc(a,b,d){Ad(a,this);this.$$parse=function(c){var e=xa(a,c)||xa(b,c),f;z(e)||"#"!==e.charAt(0)?this.$$html5?f=e:(f="",z(e)&&(a=c,this.replace())):(f=xa(d,e),z(f)&&(f=e));Bd(f,this,!1);c=this.$$path;var e=a,g=/^\/[A-Z]:(\/.*)/;xc(f,e)&&(f=f.replace(e,""));g.exec(f)||(c=(f=g.exec(c))?
f[1]:c);this.$$path=c;this.$$compose()};this.$$normalizeUrl=function(b){return a+(b?d+b:"")};this.$$parseLinkUrl=function(b,d){return Da(a)===Da(b)?(this.$$parse(b),!0):!1}}function Cd(a,b,d){this.$$html5=!0;zc.apply(this,arguments);this.$$parseLinkUrl=function(c,e){if(e&&"#"===e[0])return this.hash(e.slice(1)),!0;var f,g;a===Da(c)?f=c:(g=xa(b,c))?f=a+d+g:b===c+"/"&&(f=b);f&&this.$$parse(f);return!!f};this.$$normalizeUrl=function(b){return a+d+b}}function Lb(a){return function(){return this[a]}}function Dd(a,
b){return function(d){if(z(d))return this[a];this[a]=b(d);this.$$compose();return this}}function Tf(){var a="!",b={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(b){return w(b)?(a=b,this):a};this.html5Mode=function(a){if(Ga(a))return b.enabled=a,this;if(D(a)){Ga(a.enabled)&&(b.enabled=a.enabled);Ga(a.requireBase)&&(b.requireBase=a.requireBase);if(Ga(a.rewriteLinks)||A(a.rewriteLinks))b.rewriteLinks=a.rewriteLinks;return this}return b};this.$get=["$rootScope","$browser","$sniffer",
"$rootElement","$window",function(d,c,e,f,g){function k(a,b){return a===b||ga(a).href===ga(b).href}function h(a,b,d){var e=m.url(),f=m.$$state;try{c.url(a,b,d),m.$$state=c.state()}catch(g){throw m.url(e),m.$$state=f,g;}}function l(a,b){d.$broadcast("$locationChangeSuccess",m.absUrl(),a,m.$$state,b)}var m,p;p=c.baseHref();var n=c.url(),s;if(b.enabled){if(!p&&b.requireBase)throw jb("nobase");s=n.substring(0,n.indexOf("/",n.indexOf("//")+2))+(p||"/");p=e.history?yc:Cd}else s=Da(n),p=zc;var r=s.substr(0,
Da(s).lastIndexOf("/")+1);m=new p(s,r,"#"+a);m.$$parseLinkUrl(n,n);m.$$state=c.state();var t=/^\s*(javascript|mailto):/i;f.on("click",function(a){var e=b.rewriteLinks;if(e&&!a.ctrlKey&&!a.metaKey&&!a.shiftKey&&2!==a.which&&2!==a.button){for(var g=x(a.target);"a"!==ua(g[0]);)if(g[0]===f[0]||!(g=g.parent())[0])return;if(!A(e)||!z(g.attr(e))){var e=g.prop("href"),h=g.attr("href")||g.attr("xlink:href");D(e)&&"[object SVGAnimatedString]"===e.toString()&&(e=ga(e.animVal).href);t.test(e)||!e||g.attr("target")||
a.isDefaultPrevented()||!m.$$parseLinkUrl(e,h)||(a.preventDefault(),m.absUrl()!==c.url()&&d.$apply())}}});m.absUrl()!==n&&c.url(m.absUrl(),!0);var N=!0;c.onUrlChange(function(a,b){xc(a,r)?(d.$evalAsync(function(){var c=m.absUrl(),e=m.$$state,f;m.$$parse(a);m.$$state=b;f=d.$broadcast("$locationChangeStart",a,c,b,e).defaultPrevented;m.absUrl()===a&&(f?(m.$$parse(c),m.$$state=e,h(c,!1,e)):(N=!1,l(c,e)))}),d.$$phase||d.$digest()):g.location.href=a});d.$watch(function(){if(N||m.$$urlUpdatedByLocation){m.$$urlUpdatedByLocation=
!1;var a=c.url(),b=m.absUrl(),f=c.state(),g=m.$$replace,n=!k(a,b)||m.$$html5&&e.history&&f!==m.$$state;if(N||n)N=!1,d.$evalAsync(function(){var b=m.absUrl(),c=d.$broadcast("$locationChangeStart",b,a,m.$$state,f).defaultPrevented;m.absUrl()===b&&(c?(m.$$parse(a),m.$$state=f):(n&&h(b,g,f===m.$$state?null:m.$$state),l(a,f)))})}m.$$replace=!1});return m}]}function Uf(){var a=!0,b=this;this.debugEnabled=function(b){return w(b)?(a=b,this):a};this.$get=["$window",function(d){function c(a){cc(a)&&(a.stack&&
f?a=a.message&&-1===a.stack.indexOf(a.message)?"Error: "+a.message+"\n"+a.stack:a.stack:a.sourceURL&&(a=a.message+"\n"+a.sourceURL+":"+a.line));return a}function e(a){var b=d.console||{},e=b[a]||b.log||E;return function(){var a=[];r(arguments,function(b){a.push(c(b))});return Function.prototype.apply.call(e,b,a)}}var f=Ca||/\bEdge\//.test(d.navigator&&d.navigator.userAgent);return{log:e("log"),info:e("info"),warn:e("warn"),error:e("error"),debug:function(){var c=e("debug");return function(){a&&c.apply(b,
arguments)}}()}}]}function Og(a){return a+""}function Pg(a,b){return"undefined"!==typeof a?a:b}function Ed(a,b){return"undefined"===typeof a?b:"undefined"===typeof b?a:a+b}function Qg(a,b){switch(a.type){case q.MemberExpression:if(a.computed)return!1;break;case q.UnaryExpression:return 1;case q.BinaryExpression:return"+"!==a.operator?1:!1;case q.CallExpression:return!1}return void 0===b?Fd:b}function Z(a,b,d){var c,e,f=a.isPure=Qg(a,d);switch(a.type){case q.Program:c=!0;r(a.body,function(a){Z(a.expression,
b,f);c=c&&a.expression.constant});a.constant=c;break;case q.Literal:a.constant=!0;a.toWatch=[];break;case q.UnaryExpression:Z(a.argument,b,f);a.constant=a.argument.constant;a.toWatch=a.argument.toWatch;break;case q.BinaryExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.left.toWatch.concat(a.right.toWatch);break;case q.LogicalExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=a.constant?[]:[a];break;case q.ConditionalExpression:Z(a.test,
b,f);Z(a.alternate,b,f);Z(a.consequent,b,f);a.constant=a.test.constant&&a.alternate.constant&&a.consequent.constant;a.toWatch=a.constant?[]:[a];break;case q.Identifier:a.constant=!1;a.toWatch=[a];break;case q.MemberExpression:Z(a.object,b,f);a.computed&&Z(a.property,b,f);a.constant=a.object.constant&&(!a.computed||a.property.constant);a.toWatch=a.constant?[]:[a];break;case q.CallExpression:c=d=a.filter?!b(a.callee.name).$stateful:!1;e=[];r(a.arguments,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,
a.toWatch)});a.constant=c;a.toWatch=d?e:[a];break;case q.AssignmentExpression:Z(a.left,b,f);Z(a.right,b,f);a.constant=a.left.constant&&a.right.constant;a.toWatch=[a];break;case q.ArrayExpression:c=!0;e=[];r(a.elements,function(a){Z(a,b,f);c=c&&a.constant;e.push.apply(e,a.toWatch)});a.constant=c;a.toWatch=e;break;case q.ObjectExpression:c=!0;e=[];r(a.properties,function(a){Z(a.value,b,f);c=c&&a.value.constant;e.push.apply(e,a.value.toWatch);a.computed&&(Z(a.key,b,!1),c=c&&a.key.constant,e.push.apply(e,
a.key.toWatch))});a.constant=c;a.toWatch=e;break;case q.ThisExpression:a.constant=!1;a.toWatch=[];break;case q.LocalsExpression:a.constant=!1,a.toWatch=[]}}function Gd(a){if(1===a.length){a=a[0].expression;var b=a.toWatch;return 1!==b.length?b:b[0]!==a?b:void 0}}function Hd(a){return a.type===q.Identifier||a.type===q.MemberExpression}function Id(a){if(1===a.body.length&&Hd(a.body[0].expression))return{type:q.AssignmentExpression,left:a.body[0].expression,right:{type:q.NGValueParameter},operator:"="}}
function Jd(a){this.$filter=a}function Kd(a){this.$filter=a}function Mb(a,b,d){this.ast=new q(a,d);this.astCompiler=d.csp?new Kd(b):new Jd(b)}function Ac(a){return B(a.valueOf)?a.valueOf():Rg.call(a)}function Vf(){var a=T(),b={"true":!0,"false":!1,"null":null,undefined:void 0},d,c;this.addLiteral=function(a,c){b[a]=c};this.setIdentifierFns=function(a,b){d=a;c=b;return this};this.$get=["$filter",function(e){function f(b,c){var d,f;switch(typeof b){case "string":return f=b=b.trim(),d=a[f],d||(d=new Nb(G),
d=(new Mb(d,e,G)).parse(b),a[f]=p(d)),s(d,c);case "function":return s(b,c);default:return s(E,c)}}function g(a,b,c){return null==a||null==b?a===b:"object"!==typeof a||(a=Ac(a),"object"!==typeof a||c)?a===b||a!==a&&b!==b:!1}function k(a,b,c,d,e){var f=d.inputs,h;if(1===f.length){var k=g,f=f[0];return a.$watch(function(a){var b=f(a);g(b,k,f.isPure)||(h=d(a,void 0,void 0,[b]),k=b&&Ac(b));return h},b,c,e)}for(var l=[],m=[],n=0,p=f.length;n<p;n++)l[n]=g,m[n]=null;return a.$watch(function(a){for(var b=
!1,c=0,e=f.length;c<e;c++){var k=f[c](a);if(b||(b=!g(k,l[c],f[c].isPure)))m[c]=k,l[c]=k&&Ac(k)}b&&(h=d(a,void 0,void 0,m));return h},b,c,e)}function h(a,b,c,d,e){function f(){h(m)&&k()}function g(a,b,c,d){m=u&&d?d[0]:n(a,b,c,d);h(m)&&a.$$postDigest(f);return s(m)}var h=d.literal?l:w,k,m,n=d.$$intercepted||d,s=d.$$interceptor||Ta,u=d.inputs&&!n.inputs;g.literal=d.literal;g.constant=d.constant;g.inputs=d.inputs;p(g);return k=a.$watch(g,b,c,e)}function l(a){var b=!0;r(a,function(a){w(a)||(b=!1)});return b}
function m(a,b,c,d){var e=a.$watch(function(a){e();return d(a)},b,c);return e}function p(a){a.constant?a.$$watchDelegate=m:a.oneTime?a.$$watchDelegate=h:a.inputs&&(a.$$watchDelegate=k);return a}function n(a,b){function c(d){return b(a(d))}c.$stateful=a.$stateful||b.$stateful;c.$$pure=a.$$pure&&b.$$pure;return c}function s(a,b){if(!b)return a;a.$$interceptor&&(b=n(a.$$interceptor,b),a=a.$$intercepted);var c=!1,d=function(d,e,f,g){d=c&&g?g[0]:a(d,e,f,g);return b(d)};d.$$intercepted=a;d.$$interceptor=
b;d.literal=a.literal;d.oneTime=a.oneTime;d.constant=a.constant;b.$stateful||(c=!a.inputs,d.inputs=a.inputs?a.inputs:[a],b.$$pure||(d.inputs=d.inputs.map(function(a){return a.isPure===Fd?function(b){return a(b)}:a})));return p(d)}var G={csp:Aa().noUnsafeEval,literals:Ia(b),isIdentifierStart:B(d)&&d,isIdentifierContinue:B(c)&&c};f.$$getAst=function(a){var b=new Nb(G);return(new Mb(b,e,G)).getAst(a).ast};return f}]}function Xf(){var a=!0;this.$get=["$rootScope","$exceptionHandler",function(b,d){return Ld(function(a){b.$evalAsync(a)},
d,a)}];this.errorOnUnhandledRejections=function(b){return w(b)?(a=b,this):a}}function Yf(){var a=!0;this.$get=["$browser","$exceptionHandler",function(b,d){return Ld(function(a){b.defer(a)},d,a)}];this.errorOnUnhandledRejections=function(b){return w(b)?(a=b,this):a}}function Ld(a,b,d){function c(){return new e}function e(){var a=this.promise=new f;this.resolve=function(b){h(a,b)};this.reject=function(b){m(a,b)};this.notify=function(b){n(a,b)}}function f(){this.$$state={status:0}}function g(){for(;!w&&
x.length;){var a=x.shift();if(!a.pur){a.pur=!0;var c=a.value,c="Possibly unhandled rejection: "+("function"===typeof c?c.toString().replace(/ \{[\s\S]*$/,""):z(c)?"undefined":"string"!==typeof c?Ie(c,void 0):c);cc(a.value)?b(a.value,c):b(c)}}}function k(c){!d||c.pending||2!==c.status||c.pur||(0===w&&0===x.length&&a(g),x.push(c));!c.processScheduled&&c.pending&&(c.processScheduled=!0,++w,a(function(){var e,f,k;k=c.pending;c.processScheduled=!1;c.pending=void 0;try{for(var l=0,n=k.length;l<n;++l){c.pur=
!0;f=k[l][0];e=k[l][c.status];try{B(e)?h(f,e(c.value)):1===c.status?h(f,c.value):m(f,c.value)}catch(p){m(f,p),p&&!0===p.$$passToExceptionHandler&&b(p)}}}finally{--w,d&&0===w&&a(g)}}))}function h(a,b){a.$$state.status||(b===a?p(a,v("qcycle",b)):l(a,b))}function l(a,b){function c(b){g||(g=!0,l(a,b))}function d(b){g||(g=!0,p(a,b))}function e(b){n(a,b)}var f,g=!1;try{if(D(b)||B(b))f=b.then;B(f)?(a.$$state.status=-1,f.call(b,c,d,e)):(a.$$state.value=b,a.$$state.status=1,k(a.$$state))}catch(h){d(h)}}function m(a,
b){a.$$state.status||p(a,b)}function p(a,b){a.$$state.value=b;a.$$state.status=2;k(a.$$state)}function n(c,d){var e=c.$$state.pending;0>=c.$$state.status&&e&&e.length&&a(function(){for(var a,c,f=0,g=e.length;f<g;f++){c=e[f][0];a=e[f][3];try{n(c,B(a)?a(d):d)}catch(h){b(h)}}})}function s(a){var b=new f;m(b,a);return b}function G(a,b,c){var d=null;try{B(c)&&(d=c())}catch(e){return s(e)}return d&&B(d.then)?d.then(function(){return b(a)},s):b(a)}function t(a,b,c,d){var e=new f;h(e,a);return e.then(b,c,
d)}function q(a){if(!B(a))throw v("norslvr",a);var b=new f;a(function(a){h(b,a)},function(a){m(b,a)});return b}var v=F("$q",TypeError),w=0,x=[];S(f.prototype,{then:function(a,b,c){if(z(a)&&z(b)&&z(c))return this;var d=new f;this.$$state.pending=this.$$state.pending||[];this.$$state.pending.push([d,a,b,c]);0<this.$$state.status&&k(this.$$state);return d},"catch":function(a){return this.then(null,a)},"finally":function(a,b){return this.then(function(b){return G(b,y,a)},function(b){return G(b,s,a)},
b)}});var y=t;q.prototype=f.prototype;q.defer=c;q.reject=s;q.when=t;q.resolve=y;q.all=function(a){var b=new f,c=0,d=H(a)?[]:{};r(a,function(a,e){c++;t(a).then(function(a){d[e]=a;--c||h(b,d)},function(a){m(b,a)})});0===c&&h(b,d);return b};q.race=function(a){var b=c();r(a,function(a){t(a).then(b.resolve,b.reject)});return b.promise};return q}function hg(){this.$get=["$window","$timeout",function(a,b){var d=a.requestAnimationFrame||a.webkitRequestAnimationFrame,c=a.cancelAnimationFrame||a.webkitCancelAnimationFrame||
a.webkitCancelRequestAnimationFrame,e=!!d,f=e?function(a){var b=d(a);return function(){c(b)}}:function(a){var c=b(a,16.66,!1);return function(){b.cancel(c)}};f.supported=e;return f}]}function Wf(){function a(a){function b(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$id=++pb;this.$$ChildScope=null;this.$$suspended=!1}b.prototype=a;return b}var b=10,d=F("$rootScope"),c=null,e=null;this.digestTtl=
function(a){arguments.length&&(b=a);return b};this.$get=["$exceptionHandler","$parse","$browser",function(f,g,k){function h(a){a.currentScope.$$destroyed=!0}function l(a){9===Ca&&(a.$$childHead&&l(a.$$childHead),a.$$nextSibling&&l(a.$$nextSibling));a.$parent=a.$$nextSibling=a.$$prevSibling=a.$$childHead=a.$$childTail=a.$root=a.$$watchers=null}function m(){this.$id=++pb;this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;this.$root=
this;this.$$suspended=this.$$destroyed=!1;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$$isolateBindings=null}function p(a){if(v.$$phase)throw d("inprog",v.$$phase);v.$$phase=a}function n(a,b){do a.$$watchersCount+=b;while(a=a.$parent)}function s(a,b,c){do a.$$listenerCount[c]-=b,0===a.$$listenerCount[c]&&delete a.$$listenerCount[c];while(a=a.$parent)}function G(){}function t(){for(;y.length;)try{y.shift()()}catch(a){f(a)}e=null}function q(){null===e&&(e=k.defer(function(){v.$apply(t)},
null,"$applyAsync"))}m.prototype={constructor:m,$new:function(b,c){var d;c=c||this;b?(d=new m,d.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=a(this)),d=new this.$$ChildScope);d.$parent=c;d.$$prevSibling=c.$$childTail;c.$$childHead?(c.$$childTail.$$nextSibling=d,c.$$childTail=d):c.$$childHead=c.$$childTail=d;(b||c!==this)&&d.$on("$destroy",h);return d},$watch:function(a,b,d,e){var f=g(a);b=B(b)?b:E;if(f.$$watchDelegate)return f.$$watchDelegate(this,b,d,f,a);var h=this,k=h.$$watchers,l=
{fn:b,last:G,get:f,exp:e||a,eq:!!d};c=null;k||(k=h.$$watchers=[],k.$$digestWatchIndex=-1);k.unshift(l);k.$$digestWatchIndex++;n(this,1);return function(){var a=cb(k,l);0<=a&&(n(h,-1),a<k.$$digestWatchIndex&&k.$$digestWatchIndex--);c=null}},$watchGroup:function(a,b){function c(){h=!1;try{k?(k=!1,b(e,e,g)):b(e,d,g)}finally{for(var f=0;f<a.length;f++)d[f]=e[f]}}var d=Array(a.length),e=Array(a.length),f=[],g=this,h=!1,k=!0;if(!a.length){var l=!0;g.$evalAsync(function(){l&&b(e,e,g)});return function(){l=
!1}}if(1===a.length)return this.$watch(a[0],function(a,c,f){e[0]=a;d[0]=c;b(e,a===c?e:d,f)});r(a,function(a,b){var d=g.$watch(a,function(a){e[b]=a;h||(h=!0,g.$evalAsync(c))});f.push(d)});return function(){for(;f.length;)f.shift()()}},$watchCollection:function(a,b){function c(a){e=a;var b,d,g,h;if(!z(e)){if(D(e))if(ya(e))for(f!==n&&(f=n,t=f.length=0,l++),a=e.length,t!==a&&(l++,f.length=t=a),b=0;b<a;b++)h=f[b],g=e[b],d=h!==h&&g!==g,d||h===g||(l++,f[b]=g);else{f!==p&&(f=p={},t=0,l++);a=0;for(b in e)ta.call(e,
b)&&(a++,g=e[b],h=f[b],b in f?(d=h!==h&&g!==g,d||h===g||(l++,f[b]=g)):(t++,f[b]=g,l++));if(t>a)for(b in l++,f)ta.call(e,b)||(t--,delete f[b])}else f!==e&&(f=e,l++);return l}}c.$$pure=g(a).literal;c.$stateful=!c.$$pure;var d=this,e,f,h,k=1<b.length,l=0,m=g(a,c),n=[],p={},s=!0,t=0;return this.$watch(m,function(){s?(s=!1,b(e,e,d)):b(e,h,d);if(k)if(D(e))if(ya(e)){h=Array(e.length);for(var a=0;a<e.length;a++)h[a]=e[a]}else for(a in h={},e)ta.call(e,a)&&(h[a]=e[a]);else h=e})},$digest:function(){var a,
g,h,l,m,n,s,r=b,q,y=w.length?v:this,N=[],z,A;p("$digest");k.$$checkUrlChange();this===v&&null!==e&&(k.defer.cancel(e),t());c=null;do{s=!1;q=y;for(n=0;n<w.length;n++){try{A=w[n],l=A.fn,l(A.scope,A.locals)}catch(C){f(C)}c=null}w.length=0;a:do{if(n=!q.$$suspended&&q.$$watchers)for(n.$$digestWatchIndex=n.length;n.$$digestWatchIndex--;)try{if(a=n[n.$$digestWatchIndex])if(m=a.get,(g=m(q))!==(h=a.last)&&!(a.eq?va(g,h):X(g)&&X(h)))s=!0,c=a,a.last=a.eq?Ia(g,null):g,l=a.fn,l(g,h===G?g:h,q),5>r&&(z=4-r,N[z]||
(N[z]=[]),N[z].push({msg:B(a.exp)?"fn: "+(a.exp.name||a.exp.toString()):a.exp,newVal:g,oldVal:h}));else if(a===c){s=!1;break a}}catch(E){f(E)}if(!(n=!q.$$suspended&&q.$$watchersCount&&q.$$childHead||q!==y&&q.$$nextSibling))for(;q!==y&&!(n=q.$$nextSibling);)q=q.$parent}while(q=n);if((s||w.length)&&!r--)throw v.$$phase=null,d("infdig",b,N);}while(s||w.length);for(v.$$phase=null;J<x.length;)try{x[J++]()}catch(D){f(D)}x.length=J=0;k.$$checkUrlChange()},$suspend:function(){this.$$suspended=!0},$isSuspended:function(){return this.$$suspended},
$resume:function(){this.$$suspended=!1},$destroy:function(){if(!this.$$destroyed){var a=this.$parent;this.$broadcast("$destroy");this.$$destroyed=!0;this===v&&k.$$applicationDestroyed();n(this,-this.$$watchersCount);for(var b in this.$$listenerCount)s(this,this.$$listenerCount[b],b);a&&a.$$childHead===this&&(a.$$childHead=this.$$nextSibling);a&&a.$$childTail===this&&(a.$$childTail=this.$$prevSibling);this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling);this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=
this.$$prevSibling);this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=E;this.$on=this.$watch=this.$watchGroup=function(){return E};this.$$listeners={};this.$$nextSibling=null;l(this)}},$eval:function(a,b){return g(a)(this,b)},$evalAsync:function(a,b){v.$$phase||w.length||k.defer(function(){w.length&&v.$digest()},null,"$evalAsync");w.push({scope:this,fn:g(a),locals:b})},$$postDigest:function(a){x.push(a)},$apply:function(a){try{p("$apply");try{return this.$eval(a)}finally{v.$$phase=
null}}catch(b){f(b)}finally{try{v.$digest()}catch(c){throw f(c),c;}}},$applyAsync:function(a){function b(){c.$eval(a)}var c=this;a&&y.push(b);a=g(a);q()},$on:function(a,b){var c=this.$$listeners[a];c||(this.$$listeners[a]=c=[]);c.push(b);var d=this;do d.$$listenerCount[a]||(d.$$listenerCount[a]=0),d.$$listenerCount[a]++;while(d=d.$parent);var e=this;return function(){var d=c.indexOf(b);-1!==d&&(delete c[d],s(e,1,a))}},$emit:function(a,b){var c=[],d,e=this,g=!1,h={name:a,targetScope:e,stopPropagation:function(){g=
!0},preventDefault:function(){h.defaultPrevented=!0},defaultPrevented:!1},k=db([h],arguments,1),l,m;do{d=e.$$listeners[a]||c;h.currentScope=e;l=0;for(m=d.length;l<m;l++)if(d[l])try{d[l].apply(null,k)}catch(n){f(n)}else d.splice(l,1),l--,m--;if(g)break;e=e.$parent}while(e);h.currentScope=null;return h},$broadcast:function(a,b){var c=this,d=this,e={name:a,targetScope:this,preventDefault:function(){e.defaultPrevented=!0},defaultPrevented:!1};if(!this.$$listenerCount[a])return e;for(var g=db([e],arguments,
1),h,k;c=d;){e.currentScope=c;d=c.$$listeners[a]||[];h=0;for(k=d.length;h<k;h++)if(d[h])try{d[h].apply(null,g)}catch(l){f(l)}else d.splice(h,1),h--,k--;if(!(d=c.$$listenerCount[a]&&c.$$childHead||c!==this&&c.$$nextSibling))for(;c!==this&&!(d=c.$$nextSibling);)c=c.$parent}e.currentScope=null;return e}};var v=new m,w=v.$$asyncQueue=[],x=v.$$postDigestQueue=[],y=v.$$applyAsyncQueue=[],J=0;return v}]}function Le(){var a=/^\s*(https?|s?ftp|mailto|tel|file):/,b=/^\s*((https?|ftp|file|blob):|data:image\/)/;
this.aHrefSanitizationWhitelist=function(b){return w(b)?(a=b,this):a};this.imgSrcSanitizationWhitelist=function(a){return w(a)?(b=a,this):b};this.$get=function(){return function(d,c){var e=c?b:a,f=ga(d&&d.trim()).href;return""===f||f.match(e)?d:"unsafe:"+f}}}function Sg(a){if("self"===a)return a;if(A(a)){if(-1<a.indexOf("***"))throw Ea("iwcard",a);a=Md(a).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*");return new RegExp("^"+a+"$")}if(ab(a))return new RegExp("^"+a.source+"$");throw Ea("imatcher");
}function Nd(a){var b=[];w(a)&&r(a,function(a){b.push(Sg(a))});return b}function $f(){this.SCE_CONTEXTS=V;var a=["self"],b=[];this.resourceUrlWhitelist=function(b){arguments.length&&(a=Nd(b));return a};this.resourceUrlBlacklist=function(a){arguments.length&&(b=Nd(a));return b};this.$get=["$injector","$$sanitizeUri",function(d,c){function e(a,b){var c;"self"===a?(c=Bc(b,Od))||(C.document.baseURI?c=C.document.baseURI:(Na||(Na=C.document.createElement("a"),Na.href=".",Na=Na.cloneNode(!1)),c=Na.href),
c=Bc(b,c)):c=!!a.exec(b.href);return c}function f(a){var b=function(a){this.$$unwrapTrustedValue=function(){return a}};a&&(b.prototype=new a);b.prototype.valueOf=function(){return this.$$unwrapTrustedValue()};b.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()};return b}var g=function(a){throw Ea("unsafe");};d.has("$sanitize")&&(g=d.get("$sanitize"));var k=f(),h={};h[V.HTML]=f(k);h[V.CSS]=f(k);h[V.MEDIA_URL]=f(k);h[V.URL]=f(h[V.MEDIA_URL]);h[V.JS]=f(k);h[V.RESOURCE_URL]=
f(h[V.URL]);return{trustAs:function(a,b){var c=h.hasOwnProperty(a)?h[a]:null;if(!c)throw Ea("icontext",a,b);if(null===b||z(b)||""===b)return b;if("string"!==typeof b)throw Ea("itype",a);return new c(b)},getTrusted:function(d,f){if(null===f||z(f)||""===f)return f;var k=h.hasOwnProperty(d)?h[d]:null;if(k&&f instanceof k)return f.$$unwrapTrustedValue();B(f.$$unwrapTrustedValue)&&(f=f.$$unwrapTrustedValue());if(d===V.MEDIA_URL||d===V.URL)return c(f.toString(),d===V.MEDIA_URL);if(d===V.RESOURCE_URL){var k=
ga(f.toString()),n,s,r=!1;n=0;for(s=a.length;n<s;n++)if(e(a[n],k)){r=!0;break}if(r)for(n=0,s=b.length;n<s;n++)if(e(b[n],k)){r=!1;break}if(r)return f;throw Ea("insecurl",f.toString());}if(d===V.HTML)return g(f);throw Ea("unsafe");},valueOf:function(a){return a instanceof k?a.$$unwrapTrustedValue():a}}}]}function Zf(){var a=!0;this.enabled=function(b){arguments.length&&(a=!!b);return a};this.$get=["$parse","$sceDelegate",function(b,d){if(a&&8>Ca)throw Ea("iequirks");var c=ja(V);c.isEnabled=function(){return a};
c.trustAs=d.trustAs;c.getTrusted=d.getTrusted;c.valueOf=d.valueOf;a||(c.trustAs=c.getTrusted=function(a,b){return b},c.valueOf=Ta);c.parseAs=function(a,d){var e=b(d);return e.literal&&e.constant?e:b(d,function(b){return c.getTrusted(a,b)})};var e=c.parseAs,f=c.getTrusted,g=c.trustAs;r(V,function(a,b){var d=K(b);c[("parse_as_"+d).replace(Cc,wb)]=function(b){return e(a,b)};c[("get_trusted_"+d).replace(Cc,wb)]=function(b){return f(a,b)};c[("trust_as_"+d).replace(Cc,wb)]=function(b){return g(a,b)}});
return c}]}function ag(){this.$get=["$window","$document",function(a,b){var d={},c=!((!a.nw||!a.nw.process)&&a.chrome&&(a.chrome.app&&a.chrome.app.runtime||!a.chrome.app&&a.chrome.runtime&&a.chrome.runtime.id))&&a.history&&a.history.pushState,e=fa((/android (\d+)/.exec(K((a.navigator||{}).userAgent))||[])[1]),f=/Boxee/i.test((a.navigator||{}).userAgent),g=b[0]||{},k=g.body&&g.body.style,h=!1,l=!1;k&&(h=!!("transition"in k||"webkitTransition"in k),l=!!("animation"in k||"webkitAnimation"in k));return{history:!(!c||
4>e||f),hasEvent:function(a){if("input"===a&&Ca)return!1;if(z(d[a])){var b=g.createElement("div");d[a]="on"+a in b}return d[a]},csp:Aa(),transitions:h,animations:l,android:e}}]}function bg(){this.$get=ia(function(a){return new Tg(a)})}function Tg(a){function b(){var a=e.pop();return a&&a.cb}function d(a){for(var b=e.length-1;0<=b;--b){var c=e[b];if(c.type===a)return e.splice(b,1),c.cb}}var c={},e=[],f=this.ALL_TASKS_TYPE="$$all$$",g=this.DEFAULT_TASK_TYPE="$$default$$";this.completeTask=function(e,
h){h=h||g;try{e()}finally{var l;l=h||g;c[l]&&(c[l]--,c[f]--);l=c[h];var m=c[f];if(!m||!l)for(l=m?d:b;m=l(h);)try{m()}catch(p){a.error(p)}}};this.incTaskCount=function(a){a=a||g;c[a]=(c[a]||0)+1;c[f]=(c[f]||0)+1};this.notifyWhenNoPendingTasks=function(a,b){b=b||f;c[b]?e.push({type:b,cb:a}):a()}}function dg(){var a;this.httpOptions=function(b){return b?(a=b,this):a};this.$get=["$exceptionHandler","$templateCache","$http","$q","$sce",function(b,d,c,e,f){function g(k,h){g.totalPendingRequests++;if(!A(k)||
z(d.get(k)))k=f.getTrustedResourceUrl(k);var l=c.defaults&&c.defaults.transformResponse;H(l)?l=l.filter(function(a){return a!==vc}):l===vc&&(l=null);return c.get(k,S({cache:d,transformResponse:l},a)).finally(function(){g.totalPendingRequests--}).then(function(a){return d.put(k,a.data)},function(a){h||(a=Ug("tpload",k,a.status,a.statusText),b(a));return e.reject(a)})}g.totalPendingRequests=0;return g}]}function eg(){this.$get=["$rootScope","$browser","$location",function(a,b,d){return{findBindings:function(a,
b,d){a=a.getElementsByClassName("ng-binding");var g=[];r(a,function(a){var c=ca.element(a).data("$binding");c&&r(c,function(c){d?(new RegExp("(^|\\s)"+Md(b)+"(\\s|\\||$)")).test(c)&&g.push(a):-1!==c.indexOf(b)&&g.push(a)})});return g},findModels:function(a,b,d){for(var g=["ng-","data-ng-","ng\\:"],k=0;k<g.length;++k){var h=a.querySelectorAll("["+g[k]+"model"+(d?"=":"*=")+'"'+b+'"]');if(h.length)return h}},getLocation:function(){return d.url()},setLocation:function(b){b!==d.url()&&(d.url(b),a.$digest())},
whenStable:function(a){b.notifyWhenNoOutstandingRequests(a)}}}]}function fg(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(a,b,d,c,e){function f(f,h,l){B(f)||(l=h,h=f,f=E);var m=Ha.call(arguments,3),p=w(l)&&!l,n=(p?c:d).defer(),s=n.promise,r;r=b.defer(function(){try{n.resolve(f.apply(null,m))}catch(b){n.reject(b),e(b)}finally{delete g[s.$$timeoutId]}p||a.$apply()},h,"$timeout");s.$$timeoutId=r;g[r]=n;return s}var g={};f.cancel=function(a){if(!a)return!1;if(!a.hasOwnProperty("$$timeoutId"))throw Vg("badprom");
if(!g.hasOwnProperty(a.$$timeoutId))return!1;a=a.$$timeoutId;var c=g[a],d=c.promise;d.$$state&&(d.$$state.pur=!0);c.reject("canceled");delete g[a];return b.defer.cancel(a)};return f}]}function ga(a){if(!A(a))return a;Ca&&(aa.setAttribute("href",a),a=aa.href);aa.setAttribute("href",a);a=aa.hostname;!Wg&&-1<a.indexOf(":")&&(a="["+a+"]");return{href:aa.href,protocol:aa.protocol?aa.protocol.replace(/:$/,""):"",host:aa.host,search:aa.search?aa.search.replace(/^\?/,""):"",hash:aa.hash?aa.hash.replace(/^#/,
""):"",hostname:a,port:aa.port,pathname:"/"===aa.pathname.charAt(0)?aa.pathname:"/"+aa.pathname}}function Jg(a){var b=[Od].concat(a.map(ga));return function(a){a=ga(a);return b.some(Bc.bind(null,a))}}function Bc(a,b){a=ga(a);b=ga(b);return a.protocol===b.protocol&&a.host===b.host}function gg(){this.$get=ia(C)}function Pd(a){function b(a){try{return decodeURIComponent(a)}catch(b){return a}}var d=a[0]||{},c={},e="";return function(){var a,g,k,h,l;try{a=d.cookie||""}catch(m){a=""}if(a!==e)for(e=a,a=
e.split("; "),c={},k=0;k<a.length;k++)g=a[k],h=g.indexOf("="),0<h&&(l=b(g.substring(0,h)),z(c[l])&&(c[l]=b(g.substring(h+1))));return c}}function kg(){this.$get=Pd}function dd(a){function b(d,c){if(D(d)){var e={};r(d,function(a,c){e[c]=b(c,a)});return e}return a.factory(d+"Filter",c)}this.register=b;this.$get=["$injector",function(a){return function(b){return a.get(b+"Filter")}}];b("currency",Qd);b("date",Rd);b("filter",Xg);b("json",Yg);b("limitTo",Zg);b("lowercase",$g);b("number",Sd);b("orderBy",
Td);b("uppercase",ah)}function Xg(){return function(a,b,d,c){if(!ya(a)){if(null==a)return a;throw F("filter")("notarray",a);}c=c||"$";var e;switch(Dc(b)){case "function":break;case "boolean":case "null":case "number":case "string":e=!0;case "object":b=bh(b,d,c,e);break;default:return a}return Array.prototype.filter.call(a,b)}}function bh(a,b,d,c){var e=D(a)&&d in a;!0===b?b=va:B(b)||(b=function(a,b){if(z(a))return!1;if(null===a||null===b)return a===b;if(D(b)||D(a)&&!bc(a))return!1;a=K(""+a);b=K(""+
b);return-1!==a.indexOf(b)});return function(f){return e&&!D(f)?Fa(f,a[d],b,d,!1):Fa(f,a,b,d,c)}}function Fa(a,b,d,c,e,f){var g=Dc(a),k=Dc(b);if("string"===k&&"!"===b.charAt(0))return!Fa(a,b.substring(1),d,c,e);if(H(a))return a.some(function(a){return Fa(a,b,d,c,e)});switch(g){case "object":var h;if(e){for(h in a)if(h.charAt&&"$"!==h.charAt(0)&&Fa(a[h],b,d,c,!0))return!0;return f?!1:Fa(a,b,d,c,!1)}if("object"===k){for(h in b)if(f=b[h],!B(f)&&!z(f)&&(g=h===c,!Fa(g?a:a[h],f,d,c,g,g)))return!1;return!0}return d(a,
b);case "function":return!1;default:return d(a,b)}}function Dc(a){return null===a?"null":typeof a}function Qd(a){var b=a.NUMBER_FORMATS;return function(a,c,e){z(c)&&(c=b.CURRENCY_SYM);z(e)&&(e=b.PATTERNS[1].maxFrac);var f=c?/\u00A4/g:/\s*\u00A4\s*/g;return null==a?a:Ud(a,b.PATTERNS[1],b.GROUP_SEP,b.DECIMAL_SEP,e).replace(f,c)}}function Sd(a){var b=a.NUMBER_FORMATS;return function(a,c){return null==a?a:Ud(a,b.PATTERNS[0],b.GROUP_SEP,b.DECIMAL_SEP,c)}}function ch(a){var b=0,d,c,e,f,g;-1<(c=a.indexOf(Vd))&&
(a=a.replace(Vd,""));0<(e=a.search(/e/i))?(0>c&&(c=e),c+=+a.slice(e+1),a=a.substring(0,e)):0>c&&(c=a.length);for(e=0;a.charAt(e)===Ec;e++);if(e===(g=a.length))d=[0],c=1;else{for(g--;a.charAt(g)===Ec;)g--;c-=e;d=[];for(f=0;e<=g;e++,f++)d[f]=+a.charAt(e)}c>Wd&&(d=d.splice(0,Wd-1),b=c-1,c=1);return{d:d,e:b,i:c}}function dh(a,b,d,c){var e=a.d,f=e.length-a.i;b=z(b)?Math.min(Math.max(d,f),c):+b;d=b+a.i;c=e[d];if(0<d){e.splice(Math.max(a.i,d));for(var g=d;g<e.length;g++)e[g]=0}else for(f=Math.max(0,f),a.i=
1,e.length=Math.max(1,d=b+1),e[0]=0,g=1;g<d;g++)e[g]=0;if(5<=c)if(0>d-1){for(c=0;c>d;c--)e.unshift(0),a.i++;e.unshift(1);a.i++}else e[d-1]++;for(;f<Math.max(0,b);f++)e.push(0);if(b=e.reduceRight(function(a,b,c,d){b+=a;d[c]=b%10;return Math.floor(b/10)},0))e.unshift(b),a.i++}function Ud(a,b,d,c,e){if(!A(a)&&!W(a)||isNaN(a))return"";var f=!isFinite(a),g=!1,k=Math.abs(a)+"",h="";if(f)h="\u221e";else{g=ch(k);dh(g,e,b.minFrac,b.maxFrac);h=g.d;k=g.i;e=g.e;f=[];for(g=h.reduce(function(a,b){return a&&!b},
!0);0>k;)h.unshift(0),k++;0<k?f=h.splice(k,h.length):(f=h,h=[0]);k=[];for(h.length>=b.lgSize&&k.unshift(h.splice(-b.lgSize,h.length).join(""));h.length>b.gSize;)k.unshift(h.splice(-b.gSize,h.length).join(""));h.length&&k.unshift(h.join(""));h=k.join(d);f.length&&(h+=c+f.join(""));e&&(h+="e+"+e)}return 0>a&&!g?b.negPre+h+b.negSuf:b.posPre+h+b.posSuf}function Ob(a,b,d,c){var e="";if(0>a||c&&0>=a)c?a=-a+1:(a=-a,e="-");for(a=""+a;a.length<b;)a=Ec+a;d&&(a=a.substr(a.length-b));return e+a}function ea(a,
b,d,c,e){d=d||0;return function(f){f=f["get"+a]();if(0<d||f>-d)f+=d;0===f&&-12===d&&(f=12);return Ob(f,b,c,e)}}function kb(a,b,d){return function(c,e){var f=c["get"+a](),g=ub((d?"STANDALONE":"")+(b?"SHORT":"")+a);return e[g][f]}}function Xd(a){var b=(new Date(a,0,1)).getDay();return new Date(a,0,(4>=b?5:12)-b)}function Yd(a){return function(b){var d=Xd(b.getFullYear());b=+new Date(b.getFullYear(),b.getMonth(),b.getDate()+(4-b.getDay()))-+d;b=1+Math.round(b/6048E5);return Ob(b,a)}}function Fc(a,b){return 0>=
a.getFullYear()?b.ERAS[0]:b.ERAS[1]}function Rd(a){function b(a){var b;if(b=a.match(d)){a=new Date(0);var f=0,g=0,k=b[8]?a.setUTCFullYear:a.setFullYear,h=b[8]?a.setUTCHours:a.setHours;b[9]&&(f=fa(b[9]+b[10]),g=fa(b[9]+b[11]));k.call(a,fa(b[1]),fa(b[2])-1,fa(b[3]));f=fa(b[4]||0)-f;g=fa(b[5]||0)-g;k=fa(b[6]||0);b=Math.round(1E3*parseFloat("0."+(b[7]||0)));h.call(a,f,g,k,b)}return a}var d=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(c,
d,f){var g="",k=[],h,l;d=d||"mediumDate";d=a.DATETIME_FORMATS[d]||d;A(c)&&(c=eh.test(c)?fa(c):b(c));W(c)&&(c=new Date(c));if(!ha(c)||!isFinite(c.getTime()))return c;for(;d;)(l=fh.exec(d))?(k=db(k,l,1),d=k.pop()):(k.push(d),d=null);var m=c.getTimezoneOffset();f&&(m=ec(f,m),c=fc(c,f,!0));r(k,function(b){h=gh[b];g+=h?h(c,a.DATETIME_FORMATS,m):"''"===b?"'":b.replace(/(^'|'$)/g,"").replace(/''/g,"'")});return g}}function Yg(){return function(a,b){z(b)&&(b=2);return eb(a,b)}}function Zg(){return function(a,
b,d){b=Infinity===Math.abs(Number(b))?Number(b):fa(b);if(X(b))return a;W(a)&&(a=a.toString());if(!ya(a))return a;d=!d||isNaN(d)?0:fa(d);d=0>d?Math.max(0,a.length+d):d;return 0<=b?Gc(a,d,d+b):0===d?Gc(a,b,a.length):Gc(a,Math.max(0,d+b),d)}}function Gc(a,b,d){return A(a)?a.slice(b,d):Ha.call(a,b,d)}function Td(a){function b(b){return b.map(function(b){var c=1,d=Ta;if(B(b))d=b;else if(A(b)){if("+"===b.charAt(0)||"-"===b.charAt(0))c="-"===b.charAt(0)?-1:1,b=b.substring(1);if(""!==b&&(d=a(b),d.constant))var e=
d(),d=function(a){return a[e]}}return{get:d,descending:c}})}function d(a){switch(typeof a){case "number":case "boolean":case "string":return!0;default:return!1}}function c(a,b){var c=0,d=a.type,h=b.type;if(d===h){var h=a.value,l=b.value;"string"===d?(h=h.toLowerCase(),l=l.toLowerCase()):"object"===d&&(D(h)&&(h=a.index),D(l)&&(l=b.index));h!==l&&(c=h<l?-1:1)}else c="undefined"===d?1:"undefined"===h?-1:"null"===d?1:"null"===h?-1:d<h?-1:1;return c}return function(a,f,g,k){if(null==a)return a;if(!ya(a))throw F("orderBy")("notarray",
a);H(f)||(f=[f]);0===f.length&&(f=["+"]);var h=b(f),l=g?-1:1,m=B(k)?k:c;a=Array.prototype.map.call(a,function(a,b){return{value:a,tieBreaker:{value:b,type:"number",index:b},predicateValues:h.map(function(c){var e=c.get(a);c=typeof e;if(null===e)c="null";else if("object"===c)a:{if(B(e.valueOf)&&(e=e.valueOf(),d(e)))break a;bc(e)&&(e=e.toString(),d(e))}return{value:e,type:c,index:b}})}});a.sort(function(a,b){for(var d=0,e=h.length;d<e;d++){var f=m(a.predicateValues[d],b.predicateValues[d]);if(f)return f*
h[d].descending*l}return(m(a.tieBreaker,b.tieBreaker)||c(a.tieBreaker,b.tieBreaker))*l});return a=a.map(function(a){return a.value})}}function Ra(a){B(a)&&(a={link:a});a.restrict=a.restrict||"AC";return ia(a)}function Pb(a,b,d,c,e){this.$$controls=[];this.$error={};this.$$success={};this.$pending=void 0;this.$name=e(b.name||b.ngForm||"")(d);this.$dirty=!1;this.$valid=this.$pristine=!0;this.$submitted=this.$invalid=!1;this.$$parentForm=lb;this.$$element=a;this.$$animate=c;Zd(this)}function Zd(a){a.$$classCache=
{};a.$$classCache[$d]=!(a.$$classCache[mb]=a.$$element.hasClass(mb))}function ae(a){function b(a,b,c){c&&!a.$$classCache[b]?(a.$$animate.addClass(a.$$element,b),a.$$classCache[b]=!0):!c&&a.$$classCache[b]&&(a.$$animate.removeClass(a.$$element,b),a.$$classCache[b]=!1)}function d(a,c,d){c=c?"-"+Vc(c,"-"):"";b(a,mb+c,!0===d);b(a,$d+c,!1===d)}var c=a.set,e=a.unset;a.clazz.prototype.$setValidity=function(a,g,k){z(g)?(this.$pending||(this.$pending={}),c(this.$pending,a,k)):(this.$pending&&e(this.$pending,
a,k),be(this.$pending)&&(this.$pending=void 0));Ga(g)?g?(e(this.$error,a,k),c(this.$$success,a,k)):(c(this.$error,a,k),e(this.$$success,a,k)):(e(this.$error,a,k),e(this.$$success,a,k));this.$pending?(b(this,"ng-pending",!0),this.$valid=this.$invalid=void 0,d(this,"",null)):(b(this,"ng-pending",!1),this.$valid=be(this.$error),this.$invalid=!this.$valid,d(this,"",this.$valid));g=this.$pending&&this.$pending[a]?void 0:this.$error[a]?!1:this.$$success[a]?!0:null;d(this,a,g);this.$$parentForm.$setValidity(a,
g,this)}}function be(a){if(a)for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}function Hc(a){a.$formatters.push(function(b){return a.$isEmpty(b)?b:b.toString()})}function Sa(a,b,d,c,e,f){var g=K(b[0].type);if(!e.android){var k=!1;b.on("compositionstart",function(){k=!0});b.on("compositionupdate",function(a){if(z(a.data)||""===a.data)k=!1});b.on("compositionend",function(){k=!1;l()})}var h,l=function(a){h&&(f.defer.cancel(h),h=null);if(!k){var e=b.val();a=a&&a.type;"password"===g||d.ngTrim&&
"false"===d.ngTrim||(e=U(e));(c.$viewValue!==e||""===e&&c.$$hasNativeValidators)&&c.$setViewValue(e,a)}};if(e.hasEvent("input"))b.on("input",l);else{var m=function(a,b,c){h||(h=f.defer(function(){h=null;b&&b.value===c||l(a)}))};b.on("keydown",function(a){var b=a.keyCode;91===b||15<b&&19>b||37<=b&&40>=b||m(a,this,this.value)});if(e.hasEvent("paste"))b.on("paste cut drop",m)}b.on("change",l);if(ce[g]&&c.$$hasNativeValidators&&g===d.type)b.on("keydown wheel mousedown",function(a){if(!h){var b=this.validity,
c=b.badInput,d=b.typeMismatch;h=f.defer(function(){h=null;b.badInput===c&&b.typeMismatch===d||l(a)})}});c.$render=function(){var a=c.$isEmpty(c.$viewValue)?"":c.$viewValue;b.val()!==a&&b.val(a)}}function Qb(a,b){return function(d,c){var e,f;if(ha(d))return d;if(A(d)){'"'===d.charAt(0)&&'"'===d.charAt(d.length-1)&&(d=d.substring(1,d.length-1));if(hh.test(d))return new Date(d);a.lastIndex=0;if(e=a.exec(d))return e.shift(),f=c?{yyyy:c.getFullYear(),MM:c.getMonth()+1,dd:c.getDate(),HH:c.getHours(),mm:c.getMinutes(),
ss:c.getSeconds(),sss:c.getMilliseconds()/1E3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},r(e,function(a,c){c<b.length&&(f[b[c]]=+a)}),e=new Date(f.yyyy,f.MM-1,f.dd,f.HH,f.mm,f.ss||0,1E3*f.sss||0),100>f.yyyy&&e.setFullYear(f.yyyy),e}return NaN}}function nb(a,b,d,c){return function(e,f,g,k,h,l,m,p){function n(a){return a&&!(a.getTime&&a.getTime()!==a.getTime())}function s(a){return w(a)&&!ha(a)?r(a)||void 0:a}function r(a,b){var c=k.$options.getOption("timezone");v&&v!==c&&(b=Sc(b,ec(v)));var e=d(a,
b);!isNaN(e)&&c&&(e=fc(e,c));return e}Ic(e,f,g,k,a);Sa(e,f,g,k,h,l);var t="time"===a||"datetimelocal"===a,q,v;k.$parsers.push(function(c){if(k.$isEmpty(c))return null;if(b.test(c))return r(c,q);k.$$parserName=a});k.$formatters.push(function(a){if(a&&!ha(a))throw ob("datefmt",a);if(n(a)){q=a;var b=k.$options.getOption("timezone");b&&(v=b,q=fc(q,b,!0));var d=c;t&&A(k.$options.getOption("timeSecondsFormat"))&&(d=c.replace("ss.sss",k.$options.getOption("timeSecondsFormat")).replace(/:$/,""));a=m("date")(a,
d,b);t&&k.$options.getOption("timeStripZeroSeconds")&&(a=a.replace(/(?::00)?(?:\.000)?$/,""));return a}v=q=null;return""});if(w(g.min)||g.ngMin){var x=g.min||p(g.ngMin)(e),B=s(x);k.$validators.min=function(a){return!n(a)||z(B)||d(a)>=B};g.$observe("min",function(a){a!==x&&(B=s(a),x=a,k.$validate())})}if(w(g.max)||g.ngMax){var y=g.max||p(g.ngMax)(e),J=s(y);k.$validators.max=function(a){return!n(a)||z(J)||d(a)<=J};g.$observe("max",function(a){a!==y&&(J=s(a),y=a,k.$validate())})}}}function Ic(a,b,d,
c,e){(c.$$hasNativeValidators=D(b[0].validity))&&c.$parsers.push(function(a){var d=b.prop("validity")||{};if(d.badInput||d.typeMismatch)c.$$parserName=e;else return a})}function de(a){a.$parsers.push(function(b){if(a.$isEmpty(b))return null;if(ih.test(b))return parseFloat(b);a.$$parserName="number"});a.$formatters.push(function(b){if(!a.$isEmpty(b)){if(!W(b))throw ob("numfmt",b);b=b.toString()}return b})}function na(a){w(a)&&!W(a)&&(a=parseFloat(a));return X(a)?void 0:a}function Jc(a){var b=a.toString(),
d=b.indexOf(".");return-1===d?-1<a&&1>a&&(a=/e-(\d+)$/.exec(b))?Number(a[1]):0:b.length-d-1}function ee(a,b,d){a=Number(a);var c=(a|0)!==a,e=(b|0)!==b,f=(d|0)!==d;if(c||e||f){var g=c?Jc(a):0,k=e?Jc(b):0,h=f?Jc(d):0,g=Math.max(g,k,h),g=Math.pow(10,g);a*=g;b*=g;d*=g;c&&(a=Math.round(a));e&&(b=Math.round(b));f&&(d=Math.round(d))}return 0===(a-b)%d}function fe(a,b,d,c,e){if(w(c)){a=a(c);if(!a.constant)throw ob("constexpr",d,c);return a(b)}return e}function Kc(a,b){function d(a,b){if(!a||!a.length)return[];
if(!b||!b.length)return a;var c=[],d=0;a:for(;d<a.length;d++){for(var e=a[d],m=0;m<b.length;m++)if(e===b[m])continue a;c.push(e)}return c}function c(a){if(!a)return a;var b=a;H(a)?b=a.map(c).join(" "):D(a)?b=Object.keys(a).filter(function(b){return a[b]}).join(" "):A(a)||(b=a+"");return b}a="ngClass"+a;var e;return["$parse",function(f){return{restrict:"AC",link:function(g,k,h){function l(a,b){var c=[];r(a,function(a){if(0<b||p[a])p[a]=(p[a]||0)+b,p[a]===+(0<b)&&c.push(a)});return c.join(" ")}function m(a){if(a===
b){var c=s,c=l(c&&c.split(" "),1);h.$addClass(c)}else c=s,c=l(c&&c.split(" "),-1),h.$removeClass(c);n=a}var p=k.data("$classCounts"),n=!0,s;p||(p=T(),k.data("$classCounts",p));"ngClass"!==a&&(e||(e=f("$index",function(a){return a&1})),g.$watch(e,m));g.$watch(f(h[a],c),function(a){if(n===b){var c=s&&s.split(" "),e=a&&a.split(" "),f=d(c,e),c=d(e,c),f=l(f,-1),c=l(c,1);h.$addClass(c);h.$removeClass(f)}s=a})}}}]}function qd(a,b,d,c,e,f){return{restrict:"A",compile:function(g,k){var h=a(k[c]);return function(a,
c){c.on(e,function(c){var e=function(){h(a,{$event:c})};if(b.$$phase)if(f)a.$evalAsync(e);else try{e()}catch(g){d(g)}else a.$apply(e)})}}}}function Rb(a,b,d,c,e,f,g,k,h){this.$modelValue=this.$viewValue=Number.NaN;this.$$rawModelValue=void 0;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=!0;this.$touched=!1;this.$pristine=!0;this.$dirty=!1;this.$valid=!0;this.$invalid=!1;this.$error={};this.$$success={};this.$pending=
void 0;this.$name=h(d.name||"",!1)(a);this.$$parentForm=lb;this.$options=Sb;this.$$updateEvents="";this.$$updateEventHandler=this.$$updateEventHandler.bind(this);this.$$parsedNgModel=e(d.ngModel);this.$$parsedNgModelAssign=this.$$parsedNgModel.assign;this.$$ngModelGet=this.$$parsedNgModel;this.$$ngModelSet=this.$$parsedNgModelAssign;this.$$pendingDebounce=null;this.$$parserValid=void 0;this.$$parserName="parse";this.$$currentValidationRunId=0;this.$$scope=a;this.$$rootScope=a.$root;this.$$attr=d;
this.$$element=c;this.$$animate=f;this.$$timeout=g;this.$$parse=e;this.$$q=k;this.$$exceptionHandler=b;Zd(this);jh(this)}function jh(a){a.$$scope.$watch(function(b){b=a.$$ngModelGet(b);b===a.$modelValue||a.$modelValue!==a.$modelValue&&b!==b||a.$$setModelValue(b);return b})}function Lc(a){this.$$options=a}function ge(a,b){r(b,function(b,c){w(a[c])||(a[c]=b)})}function Oa(a,b){a.prop("selected",b);a.attr("selected",b)}function he(a,b,d){if(a){A(a)&&(a=new RegExp("^"+a+"$"));if(!a.test)throw F("ngPattern")("noregexp",
b,a,za(d));return a}}function Tb(a){a=fa(a);return X(a)?-1:a}var Wb={objectMaxDepth:5,urlErrorParamsEnabled:!0},ie=/^\/(.+)\/([a-z]*)$/,ta=Object.prototype.hasOwnProperty,K=function(a){return A(a)?a.toLowerCase():a},ub=function(a){return A(a)?a.toUpperCase():a},Ca,x,rb,Ha=[].slice,Fg=[].splice,kh=[].push,la=Object.prototype.toString,Pc=Object.getPrototypeOf,pa=F("ng"),ca=C.angular||(C.angular={}),kc,pb=0;Ca=C.document.documentMode;var X=Number.isNaN||function(a){return a!==a};E.$inject=[];Ta.$inject=
[];var ve=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/,U=function(a){return A(a)?a.trim():a},Md=function(a){return a.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Aa=function(){if(!w(Aa.rules)){var a=C.document.querySelector("[ng-csp]")||C.document.querySelector("[data-ng-csp]");if(a){var b=a.getAttribute("ng-csp")||a.getAttribute("data-ng-csp");Aa.rules={noUnsafeEval:!b||-1!==b.indexOf("no-unsafe-eval"),noInlineStyle:!b||-1!==
b.indexOf("no-inline-style")}}else{a=Aa;try{new Function(""),b=!1}catch(d){b=!0}a.rules={noUnsafeEval:b,noInlineStyle:!1}}}return Aa.rules},qb=function(){if(w(qb.name_))return qb.name_;var a,b,d=Qa.length,c,e;for(b=0;b<d;++b)if(c=Qa[b],a=C.document.querySelector("["+c.replace(":","\\:")+"jq]")){e=a.getAttribute(c+"jq");break}return qb.name_=e},xe=/:/g,Qa=["ng-","data-ng-","ng:","x-ng-"],Be=function(a){var b=a.currentScript;if(!b)return!0;if(!(b instanceof C.HTMLScriptElement||b instanceof C.SVGScriptElement))return!1;
b=b.attributes;return[b.getNamedItem("src"),b.getNamedItem("href"),b.getNamedItem("xlink:href")].every(function(b){if(!b)return!0;if(!b.value)return!1;var c=a.createElement("a");c.href=b.value;if(a.location.origin===c.origin)return!0;switch(c.protocol){case "http:":case "https:":case "ftp:":case "blob:":case "file:":case "data:":return!0;default:return!1}})}(C.document),Ee=/[A-Z]/g,Wc=!1,Pa=3,Ke={full:"1.7.9",major:1,minor:7,dot:9,codeName:"pollution-eradication"};Y.expando="ng339";var Ka=Y.cache=
{},pg=1;Y._data=function(a){return this.cache[a[this.expando]]||{}};var lg=/-([a-z])/g,lh=/^-ms-/,Ab={mouseleave:"mouseout",mouseenter:"mouseover"},nc=F("jqLite"),og=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,mc=/<|&#?\w+;/,mg=/<([\w:-]+)/,ng=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,oa={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>",
"</tr></tbody></table>"],_default:[0,"",""]};oa.optgroup=oa.option;oa.tbody=oa.tfoot=oa.colgroup=oa.caption=oa.thead;oa.th=oa.td;var ug=C.Node.prototype.contains||function(a){return!!(this.compareDocumentPosition(a)&16)},Wa=Y.prototype={ready:fd,toString:function(){var a=[];r(this,function(b){a.push(""+b)});return"["+a.join(", ")+"]"},eq:function(a){return 0<=a?x(this[a]):x(this[this.length+a])},length:0,push:kh,sort:[].sort,splice:[].splice},Gb={};r("multiple selected checked disabled readOnly required open".split(" "),
function(a){Gb[K(a)]=a});var md={};r("input select option textarea button form details".split(" "),function(a){md[a]=!0});var td={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern",ngStep:"step"};r({data:rc,removeData:qc,hasData:function(a){for(var b in Ka[a.ng339])return!0;return!1},cleanData:function(a){for(var b=0,d=a.length;b<d;b++)qc(a[b]),id(a[b])}},function(a,b){Y[b]=a});r({data:rc,inheritedData:Eb,scope:function(a){return x.data(a,"$scope")||Eb(a.parentNode||
a,["$isolateScope","$scope"])},isolateScope:function(a){return x.data(a,"$isolateScope")||x.data(a,"$isolateScopeNoTemplate")},controller:jd,injector:function(a){return Eb(a,"$injector")},removeAttr:function(a,b){a.removeAttribute(b)},hasClass:Bb,css:function(a,b,d){b=xb(b.replace(lh,"ms-"));if(w(d))a.style[b]=d;else return a.style[b]},attr:function(a,b,d){var c=a.nodeType;if(c!==Pa&&2!==c&&8!==c&&a.getAttribute){var c=K(b),e=Gb[c];if(w(d))null===d||!1===d&&e?a.removeAttribute(b):a.setAttribute(b,
e?c:d);else return a=a.getAttribute(b),e&&null!==a&&(a=c),null===a?void 0:a}},prop:function(a,b,d){if(w(d))a[b]=d;else return a[b]},text:function(){function a(a,d){if(z(d)){var c=a.nodeType;return 1===c||c===Pa?a.textContent:""}a.textContent=d}a.$dv="";return a}(),val:function(a,b){if(z(b)){if(a.multiple&&"select"===ua(a)){var d=[];r(a.options,function(a){a.selected&&d.push(a.value||a.text)});return d}return a.value}a.value=b},html:function(a,b){if(z(b))return a.innerHTML;yb(a,!0);a.innerHTML=b},
empty:kd},function(a,b){Y.prototype[b]=function(b,c){var e,f,g=this.length;if(a!==kd&&z(2===a.length&&a!==Bb&&a!==jd?b:c)){if(D(b)){for(e=0;e<g;e++)if(a===rc)a(this[e],b);else for(f in b)a(this[e],f,b[f]);return this}e=a.$dv;g=z(e)?Math.min(g,1):g;for(f=0;f<g;f++){var k=a(this[f],b,c);e=e?e+k:k}return e}for(e=0;e<g;e++)a(this[e],b,c);return this}});r({removeData:qc,on:function(a,b,d,c){if(w(c))throw nc("onargs");if(lc(a)){c=zb(a,!0);var e=c.events,f=c.handle;f||(f=c.handle=rg(a,e));c=0<=b.indexOf(" ")?
b.split(" "):[b];for(var g=c.length,k=function(b,c,g){var k=e[b];k||(k=e[b]=[],k.specialHandlerWrapper=c,"$destroy"===b||g||a.addEventListener(b,f));k.push(d)};g--;)b=c[g],Ab[b]?(k(Ab[b],tg),k(b,void 0,!0)):k(b)}},off:id,one:function(a,b,d){a=x(a);a.on(b,function e(){a.off(b,d);a.off(b,e)});a.on(b,d)},replaceWith:function(a,b){var d,c=a.parentNode;yb(a);r(new Y(b),function(b){d?c.insertBefore(b,d.nextSibling):c.replaceChild(b,a);d=b})},children:function(a){var b=[];r(a.childNodes,function(a){1===
a.nodeType&&b.push(a)});return b},contents:function(a){return a.contentDocument||a.childNodes||[]},append:function(a,b){var d=a.nodeType;if(1===d||11===d){b=new Y(b);for(var d=0,c=b.length;d<c;d++)a.appendChild(b[d])}},prepend:function(a,b){if(1===a.nodeType){var d=a.firstChild;r(new Y(b),function(b){a.insertBefore(b,d)})}},wrap:function(a,b){var d=x(b).eq(0).clone()[0],c=a.parentNode;c&&c.replaceChild(d,a);d.appendChild(a)},remove:Fb,detach:function(a){Fb(a,!0)},after:function(a,b){var d=a,c=a.parentNode;
if(c){b=new Y(b);for(var e=0,f=b.length;e<f;e++){var g=b[e];c.insertBefore(g,d.nextSibling);d=g}}},addClass:Db,removeClass:Cb,toggleClass:function(a,b,d){b&&r(b.split(" "),function(b){var e=d;z(e)&&(e=!Bb(a,b));(e?Db:Cb)(a,b)})},parent:function(a){return(a=a.parentNode)&&11!==a.nodeType?a:null},next:function(a){return a.nextElementSibling},find:function(a,b){return a.getElementsByTagName?a.getElementsByTagName(b):[]},clone:pc,triggerHandler:function(a,b,d){var c,e,f=b.type||b,g=zb(a);if(g=(g=g&&g.events)&&
g[f])c={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:E,type:f,target:a},b.type&&(c=S(c,b)),b=ja(g),e=d?[c].concat(d):[c],r(b,function(b){c.isImmediatePropagationStopped()||b.apply(a,e)})}},function(a,b){Y.prototype[b]=function(b,c,e){for(var f,g=0,k=this.length;g<
k;g++)z(f)?(f=a(this[g],b,c,e),w(f)&&(f=x(f))):oc(f,a(this[g],b,c,e));return w(f)?f:this}});Y.prototype.bind=Y.prototype.on;Y.prototype.unbind=Y.prototype.off;var mh=Object.create(null);nd.prototype={_idx:function(a){a!==this._lastKey&&(this._lastKey=a,this._lastIndex=this._keys.indexOf(a));return this._lastIndex},_transformKey:function(a){return X(a)?mh:a},get:function(a){a=this._transformKey(a);a=this._idx(a);if(-1!==a)return this._values[a]},has:function(a){a=this._transformKey(a);return-1!==this._idx(a)},
set:function(a,b){a=this._transformKey(a);var d=this._idx(a);-1===d&&(d=this._lastIndex=this._keys.length);this._keys[d]=a;this._values[d]=b},delete:function(a){a=this._transformKey(a);a=this._idx(a);if(-1===a)return!1;this._keys.splice(a,1);this._values.splice(a,1);this._lastKey=NaN;this._lastIndex=-1;return!0}};var Hb=nd,jg=[function(){this.$get=[function(){return Hb}]}],wg=/^([^(]+?)=>/,xg=/^[^(]*\(\s*([^)]*)\)/m,nh=/,/,oh=/^\s*(_?)(\S+?)\1\s*$/,vg=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,Ba=F("$injector");
fb.$$annotate=function(a,b,d){var c;if("function"===typeof a){if(!(c=a.$inject)){c=[];if(a.length){if(b)throw A(d)&&d||(d=a.name||yg(a)),Ba("strictdi",d);b=od(a);r(b[1].split(nh),function(a){a.replace(oh,function(a,b,d){c.push(d)})})}a.$inject=c}}else H(a)?(b=a.length-1,sb(a[b],"fn"),c=a.slice(0,b)):sb(a,"fn",!0);return c};var je=F("$animate"),zf=function(){this.$get=E},Af=function(){var a=new Hb,b=[];this.$get=["$$AnimateRunner","$rootScope",function(d,c){function e(a,b,c){var d=!1;b&&(b=A(b)?b.split(" "):
H(b)?b:[],r(b,function(b){b&&(d=!0,a[b]=c)}));return d}function f(){r(b,function(b){var c=a.get(b);if(c){var d=zg(b.attr("class")),e="",f="";r(c,function(a,b){a!==!!d[b]&&(a?e+=(e.length?" ":"")+b:f+=(f.length?" ":"")+b)});r(b,function(a){e&&Db(a,e);f&&Cb(a,f)});a.delete(b)}});b.length=0}return{enabled:E,on:E,off:E,pin:E,push:function(g,k,h,l){l&&l();h=h||{};h.from&&g.css(h.from);h.to&&g.css(h.to);if(h.addClass||h.removeClass)if(k=h.addClass,l=h.removeClass,h=a.get(g)||{},k=e(h,k,!0),l=e(h,l,!1),
k||l)a.set(g,h),b.push(g),1===b.length&&c.$$postDigest(f);g=new d;g.complete();return g}}}]},xf=["$provide",function(a){var b=this,d=null,c=null;this.$$registeredAnimations=Object.create(null);this.register=function(c,d){if(c&&"."!==c.charAt(0))throw je("notcsel",c);var g=c+"-animation";b.$$registeredAnimations[c.substr(1)]=g;a.factory(g,d)};this.customFilter=function(a){1===arguments.length&&(c=B(a)?a:null);return c};this.classNameFilter=function(a){if(1===arguments.length&&(d=a instanceof RegExp?
a:null)&&/[(\s|\/)]ng-animate[(\s|\/)]/.test(d.toString()))throw d=null,je("nongcls","ng-animate");return d};this.$get=["$$animateQueue",function(a){function b(a,c,d){if(d){var e;a:{for(e=0;e<d.length;e++){var f=d[e];if(1===f.nodeType){e=f;break a}}e=void 0}!e||e.parentNode||e.previousElementSibling||(d=null)}d?d.after(a):c.prepend(a)}return{on:a.on,off:a.off,pin:a.pin,enabled:a.enabled,cancel:function(a){a.cancel&&a.cancel()},enter:function(c,d,h,l){d=d&&x(d);h=h&&x(h);d=d||h.parent();b(c,d,h);return a.push(c,
"enter",ra(l))},move:function(c,d,h,l){d=d&&x(d);h=h&&x(h);d=d||h.parent();b(c,d,h);return a.push(c,"move",ra(l))},leave:function(b,c){return a.push(b,"leave",ra(c),function(){b.remove()})},addClass:function(b,c,d){d=ra(d);d.addClass=hb(d.addclass,c);return a.push(b,"addClass",d)},removeClass:function(b,c,d){d=ra(d);d.removeClass=hb(d.removeClass,c);return a.push(b,"removeClass",d)},setClass:function(b,c,d,f){f=ra(f);f.addClass=hb(f.addClass,c);f.removeClass=hb(f.removeClass,d);return a.push(b,"setClass",
f)},animate:function(b,c,d,f,m){m=ra(m);m.from=m.from?S(m.from,c):c;m.to=m.to?S(m.to,d):d;m.tempClasses=hb(m.tempClasses,f||"ng-inline-animate");return a.push(b,"animate",m)}}}]}],Cf=function(){this.$get=["$$rAF",function(a){function b(b){d.push(b);1<d.length||a(function(){for(var a=0;a<d.length;a++)d[a]();d=[]})}var d=[];return function(){var a=!1;b(function(){a=!0});return function(d){a?d():b(d)}}}]},Bf=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$$isDocumentHidden","$timeout",function(a,
b,d,c,e){function f(a){this.setHost(a);var b=d();this._doneCallbacks=[];this._tick=function(a){c()?e(a,0,!1):b(a)};this._state=0}f.chain=function(a,b){function c(){if(d===a.length)b(!0);else a[d](function(a){!1===a?b(!1):(d++,c())})}var d=0;c()};f.all=function(a,b){function c(f){e=e&&f;++d===a.length&&b(e)}var d=0,e=!0;r(a,function(a){a.done(c)})};f.prototype={setHost:function(a){this.host=a||{}},done:function(a){2===this._state?a():this._doneCallbacks.push(a)},progress:E,getPromise:function(){if(!this.promise){var b=
this;this.promise=a(function(a,c){b.done(function(b){!1===b?c():a()})})}return this.promise},then:function(a,b){return this.getPromise().then(a,b)},"catch":function(a){return this.getPromise()["catch"](a)},"finally":function(a){return this.getPromise()["finally"](a)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end();this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel();this._resolve(!1)},
complete:function(a){var b=this;0===b._state&&(b._state=1,b._tick(function(){b._resolve(a)}))},_resolve:function(a){2!==this._state&&(r(this._doneCallbacks,function(b){b(a)}),this._doneCallbacks.length=0,this._state=2)}};return f}]},yf=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(a,b,d){return function(b,e){function f(){a(function(){g.addClass&&(b.addClass(g.addClass),g.addClass=null);g.removeClass&&(b.removeClass(g.removeClass),g.removeClass=null);g.to&&(b.css(g.to),g.to=null);k||
h.complete();k=!0});return h}var g=e||{};g.$$prepared||(g=Ia(g));g.cleanupStyles&&(g.from=g.to=null);g.from&&(b.css(g.from),g.from=null);var k,h=new d;return{start:f,end:f}}}]},$=F("$compile"),tc=new function(){};Xc.$inject=["$provide","$$sanitizeUriProvider"];Jb.prototype.isFirstChange=function(){return this.previousValue===tc};var pd=/^((?:x|data)[:\-_])/i,Eg=/[:\-_]+(.)/g,vd=F("$controller"),ud=/^(\S+)(\s+as\s+([\w$]+))?$/,Jf=function(){this.$get=["$document",function(a){return function(b){b?!b.nodeType&&
b instanceof x&&(b=b[0]):b=a[0].body;return b.offsetWidth+1}}]},wd="application/json",wc={"Content-Type":wd+";charset=utf-8"},Hg=/^\[|^\{(?!\{)/,Ig={"[":/]$/,"{":/}$/},Gg=/^\)]\}',?\n/,Kb=F("$http"),Ma=ca.$interpolateMinErr=F("$interpolate");Ma.throwNoconcat=function(a){throw Ma("noconcat",a);};Ma.interr=function(a,b){return Ma("interr",a,b.toString())};var Lg=F("$interval"),Sf=function(){this.$get=function(){function a(a){var b=function(a){b.data=a;b.called=!0};b.id=a;return b}var b=ca.callbacks,
d={};return{createCallback:function(c){c="_"+(b.$$counter++).toString(36);var e="angular.callbacks."+c,f=a(c);d[e]=b[c]=f;return e},wasCalled:function(a){return d[a].called},getResponse:function(a){return d[a].data},removeCallback:function(a){delete b[d[a].id];delete d[a]}}}},ph=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,Mg={http:80,https:443,ftp:21},jb=F("$location"),Ng=/^\s*[\\/]{2,}/,qh={$$absUrl:"",$$html5:!1,$$replace:!1,$$compose:function(){for(var a=this.$$path,b=this.$$hash,d=ye(this.$$search),b=b?
"#"+hc(b):"",a=a.split("/"),c=a.length;c--;)a[c]=hc(a[c].replace(/%2F/g,"/"));this.$$url=a.join("/")+(d?"?"+d:"")+b;this.$$absUrl=this.$$normalizeUrl(this.$$url);this.$$urlUpdatedByLocation=!0},absUrl:Lb("$$absUrl"),url:function(a){if(z(a))return this.$$url;var b=ph.exec(a);(b[1]||""===a)&&this.path(decodeURIComponent(b[1]));(b[2]||b[1]||""===a)&&this.search(b[3]||"");this.hash(b[5]||"");return this},protocol:Lb("$$protocol"),host:Lb("$$host"),port:Lb("$$port"),path:Dd("$$path",function(a){a=null!==
a?a.toString():"";return"/"===a.charAt(0)?a:"/"+a}),search:function(a,b){switch(arguments.length){case 0:return this.$$search;case 1:if(A(a)||W(a))a=a.toString(),this.$$search=gc(a);else if(D(a))a=Ia(a,{}),r(a,function(b,c){null==b&&delete a[c]}),this.$$search=a;else throw jb("isrcharg");break;default:z(b)||null===b?delete this.$$search[a]:this.$$search[a]=b}this.$$compose();return this},hash:Dd("$$hash",function(a){return null!==a?a.toString():""}),replace:function(){this.$$replace=!0;return this}};
r([Cd,zc,yc],function(a){a.prototype=Object.create(qh);a.prototype.state=function(b){if(!arguments.length)return this.$$state;if(a!==yc||!this.$$html5)throw jb("nostate");this.$$state=z(b)?null:b;this.$$urlUpdatedByLocation=!0;return this}});var Ya=F("$parse"),Rg={}.constructor.prototype.valueOf,Ub=T();r("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(a){Ub[a]=!0});var rh={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Nb=function(a){this.options=a};Nb.prototype={constructor:Nb,
lex:function(a){this.text=a;this.index=0;for(this.tokens=[];this.index<this.text.length;)if(a=this.text.charAt(this.index),'"'===a||"'"===a)this.readString(a);else if(this.isNumber(a)||"."===a&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(a,"(){}[].,;:?"))this.tokens.push({index:this.index,text:a}),this.index++;else if(this.isWhitespace(a))this.index++;else{var b=a+this.peek(),d=b+this.peek(2),c=Ub[b],e=Ub[d];Ub[a]||
c||e?(a=e?d:c?b:a,this.tokens.push({index:this.index,text:a,operator:!0}),this.index+=a.length):this.throwError("Unexpected next character ",this.index,this.index+1)}return this.tokens},is:function(a,b){return-1!==b.indexOf(a)},peek:function(a){a=a||1;return this.index+a<this.text.length?this.text.charAt(this.index+a):!1},isNumber:function(a){return"0"<=a&&"9">=a&&"string"===typeof a},isWhitespace:function(a){return" "===a||"\r"===a||"\t"===a||"\n"===a||"\v"===a||"\u00a0"===a},isIdentifierStart:function(a){return this.options.isIdentifierStart?
this.options.isIdentifierStart(a,this.codePointAt(a)):this.isValidIdentifierStart(a)},isValidIdentifierStart:function(a){return"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"_"===a||"$"===a},isIdentifierContinue:function(a){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(a,this.codePointAt(a)):this.isValidIdentifierContinue(a)},isValidIdentifierContinue:function(a,b){return this.isValidIdentifierStart(a,b)||this.isNumber(a)},codePointAt:function(a){return 1===a.length?a.charCodeAt(0):
(a.charCodeAt(0)<<10)+a.charCodeAt(1)-56613888},peekMultichar:function(){var a=this.text.charAt(this.index),b=this.peek();if(!b)return a;var d=a.charCodeAt(0),c=b.charCodeAt(0);return 55296<=d&&56319>=d&&56320<=c&&57343>=c?a+b:a},isExpOperator:function(a){return"-"===a||"+"===a||this.isNumber(a)},throwError:function(a,b,d){d=d||this.index;b=w(b)?"s "+b+"-"+this.index+" ["+this.text.substring(b,d)+"]":" "+d;throw Ya("lexerr",a,b,this.text);},readNumber:function(){for(var a="",b=this.index;this.index<
this.text.length;){var d=K(this.text.charAt(this.index));if("."===d||this.isNumber(d))a+=d;else{var c=this.peek();if("e"===d&&this.isExpOperator(c))a+=d;else if(this.isExpOperator(d)&&c&&this.isNumber(c)&&"e"===a.charAt(a.length-1))a+=d;else if(!this.isExpOperator(d)||c&&this.isNumber(c)||"e"!==a.charAt(a.length-1))break;else this.throwError("Invalid exponent")}this.index++}this.tokens.push({index:b,text:a,constant:!0,value:Number(a)})},readIdent:function(){var a=this.index;for(this.index+=this.peekMultichar().length;this.index<
this.text.length;){var b=this.peekMultichar();if(!this.isIdentifierContinue(b))break;this.index+=b.length}this.tokens.push({index:a,text:this.text.slice(a,this.index),identifier:!0})},readString:function(a){var b=this.index;this.index++;for(var d="",c=a,e=!1;this.index<this.text.length;){var f=this.text.charAt(this.index),c=c+f;if(e)"u"===f?(e=this.text.substring(this.index+1,this.index+5),e.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+e+"]"),this.index+=4,d+=String.fromCharCode(parseInt(e,
16))):d+=rh[f]||f,e=!1;else if("\\"===f)e=!0;else{if(f===a){this.index++;this.tokens.push({index:b,text:c,constant:!0,value:d});return}d+=f}this.index++}this.throwError("Unterminated quote",b)}};var q=function(a,b){this.lexer=a;this.options=b};q.Program="Program";q.ExpressionStatement="ExpressionStatement";q.AssignmentExpression="AssignmentExpression";q.ConditionalExpression="ConditionalExpression";q.LogicalExpression="LogicalExpression";q.BinaryExpression="BinaryExpression";q.UnaryExpression="UnaryExpression";
q.CallExpression="CallExpression";q.MemberExpression="MemberExpression";q.Identifier="Identifier";q.Literal="Literal";q.ArrayExpression="ArrayExpression";q.Property="Property";q.ObjectExpression="ObjectExpression";q.ThisExpression="ThisExpression";q.LocalsExpression="LocalsExpression";q.NGValueParameter="NGValueParameter";q.prototype={ast:function(a){this.text=a;this.tokens=this.lexer.lex(a);a=this.program();0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]);return a},
program:function(){for(var a=[];;)if(0<this.tokens.length&&!this.peek("}",")",";","]")&&a.push(this.expressionStatement()),!this.expect(";"))return{type:q.Program,body:a}},expressionStatement:function(){return{type:q.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var a=this.expression();this.expect("|");)a=this.filter(a);return a},expression:function(){return this.assignment()},assignment:function(){var a=this.ternary();if(this.expect("=")){if(!Hd(a))throw Ya("lval");
a={type:q.AssignmentExpression,left:a,right:this.assignment(),operator:"="}}return a},ternary:function(){var a=this.logicalOR(),b,d;return this.expect("?")&&(b=this.expression(),this.consume(":"))?(d=this.expression(),{type:q.ConditionalExpression,test:a,alternate:b,consequent:d}):a},logicalOR:function(){for(var a=this.logicalAND();this.expect("||");)a={type:q.LogicalExpression,operator:"||",left:a,right:this.logicalAND()};return a},logicalAND:function(){for(var a=this.equality();this.expect("&&");)a=
{type:q.LogicalExpression,operator:"&&",left:a,right:this.equality()};return a},equality:function(){for(var a=this.relational(),b;b=this.expect("==","!=","===","!==");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.relational()};return a},relational:function(){for(var a=this.additive(),b;b=this.expect("<",">","<=",">=");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.additive()};return a},additive:function(){for(var a=this.multiplicative(),b;b=this.expect("+","-");)a={type:q.BinaryExpression,
operator:b.text,left:a,right:this.multiplicative()};return a},multiplicative:function(){for(var a=this.unary(),b;b=this.expect("*","/","%");)a={type:q.BinaryExpression,operator:b.text,left:a,right:this.unary()};return a},unary:function(){var a;return(a=this.expect("+","-","!"))?{type:q.UnaryExpression,operator:a.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var a;this.expect("(")?(a=this.filterChain(),this.consume(")")):this.expect("[")?a=this.arrayDeclaration():this.expect("{")?
a=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?a=Ia(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?a={type:q.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?a=this.identifier():this.peek().constant?a=this.constant():this.throwError("not a primary expression",this.peek());for(var b;b=this.expect("(","[",".");)"("===b.text?(a={type:q.CallExpression,callee:a,arguments:this.parseArguments()},this.consume(")")):
"["===b.text?(a={type:q.MemberExpression,object:a,property:this.expression(),computed:!0},this.consume("]")):"."===b.text?a={type:q.MemberExpression,object:a,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return a},filter:function(a){a=[a];for(var b={type:q.CallExpression,callee:this.identifier(),arguments:a,filter:!0};this.expect(":");)a.push(this.expression());return b},parseArguments:function(){var a=[];if(")"!==this.peekToken().text){do a.push(this.filterChain());while(this.expect(","))
}return a},identifier:function(){var a=this.consume();a.identifier||this.throwError("is not a valid identifier",a);return{type:q.Identifier,name:a.text}},constant:function(){return{type:q.Literal,value:this.consume().value}},arrayDeclaration:function(){var a=[];if("]"!==this.peekToken().text){do{if(this.peek("]"))break;a.push(this.expression())}while(this.expect(","))}this.consume("]");return{type:q.ArrayExpression,elements:a}},object:function(){var a=[],b;if("}"!==this.peekToken().text){do{if(this.peek("}"))break;
b={type:q.Property,kind:"init"};this.peek().constant?(b.key=this.constant(),b.computed=!1,this.consume(":"),b.value=this.expression()):this.peek().identifier?(b.key=this.identifier(),b.computed=!1,this.peek(":")?(this.consume(":"),b.value=this.expression()):b.value=b.key):this.peek("[")?(this.consume("["),b.key=this.expression(),this.consume("]"),b.computed=!0,this.consume(":"),b.value=this.expression()):this.throwError("invalid key",this.peek());a.push(b)}while(this.expect(","))}this.consume("}");
return{type:q.ObjectExpression,properties:a}},throwError:function(a,b){throw Ya("syntax",b.text,a,b.index+1,this.text,this.text.substring(b.index));},consume:function(a){if(0===this.tokens.length)throw Ya("ueoe",this.text);var b=this.expect(a);b||this.throwError("is unexpected, expecting ["+a+"]",this.peek());return b},peekToken:function(){if(0===this.tokens.length)throw Ya("ueoe",this.text);return this.tokens[0]},peek:function(a,b,d,c){return this.peekAhead(0,a,b,d,c)},peekAhead:function(a,b,d,c,
e){if(this.tokens.length>a){a=this.tokens[a];var f=a.text;if(f===b||f===d||f===c||f===e||!(b||d||c||e))return a}return!1},expect:function(a,b,d,c){return(a=this.peek(a,b,d,c))?(this.tokens.shift(),a):!1},selfReferential:{"this":{type:q.ThisExpression},$locals:{type:q.LocalsExpression}}};var Fd=2;Jd.prototype={compile:function(a){var b=this;this.state={nextId:0,filters:{},fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};Z(a,b.$filter);var d="",c;this.stage="assign";if(c=Id(a))this.state.computing=
"assign",d=this.nextId(),this.recurse(c,d),this.return_(d),d="fn.assign="+this.generateFunction("assign","s,v,l");c=Gd(a.body);b.stage="inputs";r(c,function(a,c){var d="fn"+c;b.state[d]={vars:[],body:[],own:{}};b.state.computing=d;var k=b.nextId();b.recurse(a,k);b.return_(k);b.state.inputs.push({name:d,isPure:a.isPure});a.watchId=c});this.state.computing="fn";this.stage="main";this.recurse(a);a='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+
d+this.watchFns()+"return fn;";a=(new Function("$filter","getStringValue","ifDefined","plus",a))(this.$filter,Og,Pg,Ed);this.state=this.stage=void 0;return a},USE:"use",STRICT:"strict",watchFns:function(){var a=[],b=this.state.inputs,d=this;r(b,function(b){a.push("var "+b.name+"="+d.generateFunction(b.name,"s"));b.isPure&&a.push(b.name,".isPure="+JSON.stringify(b.isPure)+";")});b.length&&a.push("fn.inputs=["+b.map(function(a){return a.name}).join(",")+"];");return a.join("")},generateFunction:function(a,
b){return"function("+b+"){"+this.varsPrefix(a)+this.body(a)+"};"},filterPrefix:function(){var a=[],b=this;r(this.state.filters,function(d,c){a.push(d+"=$filter("+b.escape(c)+")")});return a.length?"var "+a.join(",")+";":""},varsPrefix:function(a){return this.state[a].vars.length?"var "+this.state[a].vars.join(",")+";":""},body:function(a){return this.state[a].body.join("")},recurse:function(a,b,d,c,e,f){var g,k,h=this,l,m,p;c=c||E;if(!f&&w(a.watchId))b=b||this.nextId(),this.if_("i",this.lazyAssign(b,
this.computedMember("i",a.watchId)),this.lazyRecurse(a,b,d,c,e,!0));else switch(a.type){case q.Program:r(a.body,function(b,c){h.recurse(b.expression,void 0,void 0,function(a){k=a});c!==a.body.length-1?h.current().body.push(k,";"):h.return_(k)});break;case q.Literal:m=this.escape(a.value);this.assign(b,m);c(b||m);break;case q.UnaryExpression:this.recurse(a.argument,void 0,void 0,function(a){k=a});m=a.operator+"("+this.ifDefined(k,0)+")";this.assign(b,m);c(m);break;case q.BinaryExpression:this.recurse(a.left,
void 0,void 0,function(a){g=a});this.recurse(a.right,void 0,void 0,function(a){k=a});m="+"===a.operator?this.plus(g,k):"-"===a.operator?this.ifDefined(g,0)+a.operator+this.ifDefined(k,0):"("+g+")"+a.operator+"("+k+")";this.assign(b,m);c(m);break;case q.LogicalExpression:b=b||this.nextId();h.recurse(a.left,b);h.if_("&&"===a.operator?b:h.not(b),h.lazyRecurse(a.right,b));c(b);break;case q.ConditionalExpression:b=b||this.nextId();h.recurse(a.test,b);h.if_(b,h.lazyRecurse(a.alternate,b),h.lazyRecurse(a.consequent,
b));c(b);break;case q.Identifier:b=b||this.nextId();d&&(d.context="inputs"===h.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",a.name)+"?l:s"),d.computed=!1,d.name=a.name);h.if_("inputs"===h.stage||h.not(h.getHasOwnProperty("l",a.name)),function(){h.if_("inputs"===h.stage||"s",function(){e&&1!==e&&h.if_(h.isNull(h.nonComputedMember("s",a.name)),h.lazyAssign(h.nonComputedMember("s",a.name),"{}"));h.assign(b,h.nonComputedMember("s",a.name))})},b&&h.lazyAssign(b,h.nonComputedMember("l",
a.name)));c(b);break;case q.MemberExpression:g=d&&(d.context=this.nextId())||this.nextId();b=b||this.nextId();h.recurse(a.object,g,void 0,function(){h.if_(h.notNull(g),function(){a.computed?(k=h.nextId(),h.recurse(a.property,k),h.getStringValue(k),e&&1!==e&&h.if_(h.not(h.computedMember(g,k)),h.lazyAssign(h.computedMember(g,k),"{}")),m=h.computedMember(g,k),h.assign(b,m),d&&(d.computed=!0,d.name=k)):(e&&1!==e&&h.if_(h.isNull(h.nonComputedMember(g,a.property.name)),h.lazyAssign(h.nonComputedMember(g,
a.property.name),"{}")),m=h.nonComputedMember(g,a.property.name),h.assign(b,m),d&&(d.computed=!1,d.name=a.property.name))},function(){h.assign(b,"undefined")});c(b)},!!e);break;case q.CallExpression:b=b||this.nextId();a.filter?(k=h.filter(a.callee.name),l=[],r(a.arguments,function(a){var b=h.nextId();h.recurse(a,b);l.push(b)}),m=k+"("+l.join(",")+")",h.assign(b,m),c(b)):(k=h.nextId(),g={},l=[],h.recurse(a.callee,k,g,function(){h.if_(h.notNull(k),function(){r(a.arguments,function(b){h.recurse(b,a.constant?
void 0:h.nextId(),void 0,function(a){l.push(a)})});m=g.name?h.member(g.context,g.name,g.computed)+"("+l.join(",")+")":k+"("+l.join(",")+")";h.assign(b,m)},function(){h.assign(b,"undefined")});c(b)}));break;case q.AssignmentExpression:k=this.nextId();g={};this.recurse(a.left,void 0,g,function(){h.if_(h.notNull(g.context),function(){h.recurse(a.right,k);m=h.member(g.context,g.name,g.computed)+a.operator+k;h.assign(b,m);c(b||m)})},1);break;case q.ArrayExpression:l=[];r(a.elements,function(b){h.recurse(b,
a.constant?void 0:h.nextId(),void 0,function(a){l.push(a)})});m="["+l.join(",")+"]";this.assign(b,m);c(b||m);break;case q.ObjectExpression:l=[];p=!1;r(a.properties,function(a){a.computed&&(p=!0)});p?(b=b||this.nextId(),this.assign(b,"{}"),r(a.properties,function(a){a.computed?(g=h.nextId(),h.recurse(a.key,g)):g=a.key.type===q.Identifier?a.key.name:""+a.key.value;k=h.nextId();h.recurse(a.value,k);h.assign(h.member(b,g,a.computed),k)})):(r(a.properties,function(b){h.recurse(b.value,a.constant?void 0:
h.nextId(),void 0,function(a){l.push(h.escape(b.key.type===q.Identifier?b.key.name:""+b.key.value)+":"+a)})}),m="{"+l.join(",")+"}",this.assign(b,m));c(b||m);break;case q.ThisExpression:this.assign(b,"s");c(b||"s");break;case q.LocalsExpression:this.assign(b,"l");c(b||"l");break;case q.NGValueParameter:this.assign(b,"v"),c(b||"v")}},getHasOwnProperty:function(a,b){var d=a+"."+b,c=this.current().own;c.hasOwnProperty(d)||(c[d]=this.nextId(!1,a+"&&("+this.escape(b)+" in "+a+")"));return c[d]},assign:function(a,
b){if(a)return this.current().body.push(a,"=",b,";"),a},filter:function(a){this.state.filters.hasOwnProperty(a)||(this.state.filters[a]=this.nextId(!0));return this.state.filters[a]},ifDefined:function(a,b){return"ifDefined("+a+","+this.escape(b)+")"},plus:function(a,b){return"plus("+a+","+b+")"},return_:function(a){this.current().body.push("return ",a,";")},if_:function(a,b,d){if(!0===a)b();else{var c=this.current().body;c.push("if(",a,"){");b();c.push("}");d&&(c.push("else{"),d(),c.push("}"))}},
not:function(a){return"!("+a+")"},isNull:function(a){return a+"==null"},notNull:function(a){return a+"!=null"},nonComputedMember:function(a,b){var d=/[^$_a-zA-Z0-9]/g;return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(b)?a+"."+b:a+'["'+b.replace(d,this.stringEscapeFn)+'"]'},computedMember:function(a,b){return a+"["+b+"]"},member:function(a,b,d){return d?this.computedMember(a,b):this.nonComputedMember(a,b)},getStringValue:function(a){this.assign(a,"getStringValue("+a+")")},lazyRecurse:function(a,b,d,c,e,f){var g=
this;return function(){g.recurse(a,b,d,c,e,f)}},lazyAssign:function(a,b){var d=this;return function(){d.assign(a,b)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)},escape:function(a){if(A(a))return"'"+a.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(W(a))return a.toString();if(!0===a)return"true";if(!1===a)return"false";if(null===a)return"null";if("undefined"===typeof a)return"undefined";throw Ya("esc");},nextId:function(a,
b){var d="v"+this.state.nextId++;a||this.current().vars.push(d+(b?"="+b:""));return d},current:function(){return this.state[this.state.computing]}};Kd.prototype={compile:function(a){var b=this;Z(a,b.$filter);var d,c;if(d=Id(a))c=this.recurse(d);d=Gd(a.body);var e;d&&(e=[],r(d,function(a,c){var d=b.recurse(a);d.isPure=a.isPure;a.input=d;e.push(d);a.watchId=c}));var f=[];r(a.body,function(a){f.push(b.recurse(a.expression))});a=0===a.body.length?E:1===a.body.length?f[0]:function(a,b){var c;r(f,function(d){c=
d(a,b)});return c};c&&(a.assign=function(a,b,d){return c(a,d,b)});e&&(a.inputs=e);return a},recurse:function(a,b,d){var c,e,f=this,g;if(a.input)return this.inputs(a.input,a.watchId);switch(a.type){case q.Literal:return this.value(a.value,b);case q.UnaryExpression:return e=this.recurse(a.argument),this["unary"+a.operator](e,b);case q.BinaryExpression:return c=this.recurse(a.left),e=this.recurse(a.right),this["binary"+a.operator](c,e,b);case q.LogicalExpression:return c=this.recurse(a.left),e=this.recurse(a.right),
this["binary"+a.operator](c,e,b);case q.ConditionalExpression:return this["ternary?:"](this.recurse(a.test),this.recurse(a.alternate),this.recurse(a.consequent),b);case q.Identifier:return f.identifier(a.name,b,d);case q.MemberExpression:return c=this.recurse(a.object,!1,!!d),a.computed||(e=a.property.name),a.computed&&(e=this.recurse(a.property)),a.computed?this.computedMember(c,e,b,d):this.nonComputedMember(c,e,b,d);case q.CallExpression:return g=[],r(a.arguments,function(a){g.push(f.recurse(a))}),
a.filter&&(e=this.$filter(a.callee.name)),a.filter||(e=this.recurse(a.callee,!0)),a.filter?function(a,c,d,f){for(var p=[],n=0;n<g.length;++n)p.push(g[n](a,c,d,f));a=e.apply(void 0,p,f);return b?{context:void 0,name:void 0,value:a}:a}:function(a,c,d,f){var p=e(a,c,d,f),n;if(null!=p.value){n=[];for(var s=0;s<g.length;++s)n.push(g[s](a,c,d,f));n=p.value.apply(p.context,n)}return b?{value:n}:n};case q.AssignmentExpression:return c=this.recurse(a.left,!0,1),e=this.recurse(a.right),function(a,d,f,g){var p=
c(a,d,f,g);a=e(a,d,f,g);p.context[p.name]=a;return b?{value:a}:a};case q.ArrayExpression:return g=[],r(a.elements,function(a){g.push(f.recurse(a))}),function(a,c,d,e){for(var f=[],n=0;n<g.length;++n)f.push(g[n](a,c,d,e));return b?{value:f}:f};case q.ObjectExpression:return g=[],r(a.properties,function(a){a.computed?g.push({key:f.recurse(a.key),computed:!0,value:f.recurse(a.value)}):g.push({key:a.key.type===q.Identifier?a.key.name:""+a.key.value,computed:!1,value:f.recurse(a.value)})}),function(a,
c,d,e){for(var f={},n=0;n<g.length;++n)g[n].computed?f[g[n].key(a,c,d,e)]=g[n].value(a,c,d,e):f[g[n].key]=g[n].value(a,c,d,e);return b?{value:f}:f};case q.ThisExpression:return function(a){return b?{value:a}:a};case q.LocalsExpression:return function(a,c){return b?{value:c}:c};case q.NGValueParameter:return function(a,c,d){return b?{value:d}:d}}},"unary+":function(a,b){return function(d,c,e,f){d=a(d,c,e,f);d=w(d)?+d:0;return b?{value:d}:d}},"unary-":function(a,b){return function(d,c,e,f){d=a(d,c,
e,f);d=w(d)?-d:-0;return b?{value:d}:d}},"unary!":function(a,b){return function(d,c,e,f){d=!a(d,c,e,f);return b?{value:d}:d}},"binary+":function(a,b,d){return function(c,e,f,g){var k=a(c,e,f,g);c=b(c,e,f,g);k=Ed(k,c);return d?{value:k}:k}},"binary-":function(a,b,d){return function(c,e,f,g){var k=a(c,e,f,g);c=b(c,e,f,g);k=(w(k)?k:0)-(w(c)?c:0);return d?{value:k}:k}},"binary*":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)*b(c,e,f,g);return d?{value:c}:c}},"binary/":function(a,b,d){return function(c,
e,f,g){c=a(c,e,f,g)/b(c,e,f,g);return d?{value:c}:c}},"binary%":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)%b(c,e,f,g);return d?{value:c}:c}},"binary===":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)===b(c,e,f,g);return d?{value:c}:c}},"binary!==":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)!==b(c,e,f,g);return d?{value:c}:c}},"binary==":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)==b(c,e,f,g);return d?{value:c}:c}},"binary!=":function(a,b,d){return function(c,
e,f,g){c=a(c,e,f,g)!=b(c,e,f,g);return d?{value:c}:c}},"binary<":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<b(c,e,f,g);return d?{value:c}:c}},"binary>":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>b(c,e,f,g);return d?{value:c}:c}},"binary<=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)<=b(c,e,f,g);return d?{value:c}:c}},"binary>=":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)>=b(c,e,f,g);return d?{value:c}:c}},"binary&&":function(a,b,d){return function(c,e,f,g){c=
a(c,e,f,g)&&b(c,e,f,g);return d?{value:c}:c}},"binary||":function(a,b,d){return function(c,e,f,g){c=a(c,e,f,g)||b(c,e,f,g);return d?{value:c}:c}},"ternary?:":function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k)?b(e,f,g,k):d(e,f,g,k);return c?{value:e}:e}},value:function(a,b){return function(){return b?{context:void 0,name:void 0,value:a}:a}},identifier:function(a,b,d){return function(c,e,f,g){c=e&&a in e?e:c;d&&1!==d&&c&&null==c[a]&&(c[a]={});e=c?c[a]:void 0;return b?{context:c,name:a,value:e}:
e}},computedMember:function(a,b,d,c){return function(e,f,g,k){var h=a(e,f,g,k),l,m;null!=h&&(l=b(e,f,g,k),l+="",c&&1!==c&&h&&!h[l]&&(h[l]={}),m=h[l]);return d?{context:h,name:l,value:m}:m}},nonComputedMember:function(a,b,d,c){return function(e,f,g,k){e=a(e,f,g,k);c&&1!==c&&e&&null==e[b]&&(e[b]={});f=null!=e?e[b]:void 0;return d?{context:e,name:b,value:f}:f}},inputs:function(a,b){return function(d,c,e,f){return f?f[b]:a(d,c,e)}}};Mb.prototype={constructor:Mb,parse:function(a){a=this.getAst(a);var b=
this.astCompiler.compile(a.ast),d=a.ast;b.literal=0===d.body.length||1===d.body.length&&(d.body[0].expression.type===q.Literal||d.body[0].expression.type===q.ArrayExpression||d.body[0].expression.type===q.ObjectExpression);b.constant=a.ast.constant;b.oneTime=a.oneTime;return b},getAst:function(a){var b=!1;a=a.trim();":"===a.charAt(0)&&":"===a.charAt(1)&&(b=!0,a=a.substring(2));return{ast:this.ast.ast(a),oneTime:b}}};var Ea=F("$sce"),V={HTML:"html",CSS:"css",MEDIA_URL:"mediaUrl",URL:"url",RESOURCE_URL:"resourceUrl",
JS:"js"},Cc=/_([a-z])/g,Ug=F("$templateRequest"),Vg=F("$timeout"),aa=C.document.createElement("a"),Od=ga(C.location.href),Na;aa.href="http://[::1]";var Wg="[::1]"===aa.hostname;Pd.$inject=["$document"];dd.$inject=["$provide"];var Wd=22,Vd=".",Ec="0";Qd.$inject=["$locale"];Sd.$inject=["$locale"];var gh={yyyy:ea("FullYear",4,0,!1,!0),yy:ea("FullYear",2,0,!0,!0),y:ea("FullYear",1,0,!1,!0),MMMM:kb("Month"),MMM:kb("Month",!0),MM:ea("Month",2,1),M:ea("Month",1,1),LLLL:kb("Month",!1,!0),dd:ea("Date",2),
d:ea("Date",1),HH:ea("Hours",2),H:ea("Hours",1),hh:ea("Hours",2,-12),h:ea("Hours",1,-12),mm:ea("Minutes",2),m:ea("Minutes",1),ss:ea("Seconds",2),s:ea("Seconds",1),sss:ea("Milliseconds",3),EEEE:kb("Day"),EEE:kb("Day",!0),a:function(a,b){return 12>a.getHours()?b.AMPMS[0]:b.AMPMS[1]},Z:function(a,b,d){a=-1*d;return a=(0<=a?"+":"")+(Ob(Math[0<a?"floor":"ceil"](a/60),2)+Ob(Math.abs(a%60),2))},ww:Yd(2),w:Yd(1),G:Fc,GG:Fc,GGG:Fc,GGGG:function(a,b){return 0>=a.getFullYear()?b.ERANAMES[0]:b.ERANAMES[1]}},
fh=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))([\s\S]*)/,eh=/^-?\d+$/;Rd.$inject=["$locale"];var $g=ia(K),ah=ia(ub);Td.$inject=["$parse"];var Me=ia({restrict:"E",compile:function(a,b){if(!b.href&&!b.xlinkHref)return function(a,b){if("a"===b[0].nodeName.toLowerCase()){var e="[object SVGAnimatedString]"===la.call(b.prop("href"))?"xlink:href":"href";b.on("click",function(a){b.attr(e)||a.preventDefault()})}}}}),vb={};r(Gb,function(a,b){function d(a,d,e){a.$watch(e[c],
function(a){e.$set(b,!!a)})}if("multiple"!==a){var c=wa("ng-"+b),e=d;"checked"===a&&(e=function(a,b,e){e.ngModel!==e[c]&&d(a,b,e)});vb[c]=function(){return{restrict:"A",priority:100,link:e}}}});r(td,function(a,b){vb[b]=function(){return{priority:100,link:function(a,c,e){if("ngPattern"===b&&"/"===e.ngPattern.charAt(0)&&(c=e.ngPattern.match(ie))){e.$set("ngPattern",new RegExp(c[1],c[2]));return}a.$watch(e[b],function(a){e.$set(b,a)})}}}});r(["src","srcset","href"],function(a){var b=wa("ng-"+a);vb[b]=
["$sce",function(d){return{priority:99,link:function(c,e,f){var g=a,k=a;"href"===a&&"[object SVGAnimatedString]"===la.call(e.prop("href"))&&(k="xlinkHref",f.$attr[k]="xlink:href",g=null);f.$set(b,d.getTrustedMediaUrl(f[b]));f.$observe(b,function(b){b?(f.$set(k,b),Ca&&g&&e.prop(g,f[k])):"href"===a&&f.$set(k,null)})}}}]});var lb={$addControl:E,$getControls:ia([]),$$renameControl:function(a,b){a.$name=b},$removeControl:E,$setValidity:E,$setDirty:E,$setPristine:E,$setSubmitted:E,$$setSubmitted:E};Pb.$inject=
["$element","$attrs","$scope","$animate","$interpolate"];Pb.prototype={$rollbackViewValue:function(){r(this.$$controls,function(a){a.$rollbackViewValue()})},$commitViewValue:function(){r(this.$$controls,function(a){a.$commitViewValue()})},$addControl:function(a){Ja(a.$name,"input");this.$$controls.push(a);a.$name&&(this[a.$name]=a);a.$$parentForm=this},$getControls:function(){return ja(this.$$controls)},$$renameControl:function(a,b){var d=a.$name;this[d]===a&&delete this[d];this[b]=a;a.$name=b},$removeControl:function(a){a.$name&&
this[a.$name]===a&&delete this[a.$name];r(this.$pending,function(b,d){this.$setValidity(d,null,a)},this);r(this.$error,function(b,d){this.$setValidity(d,null,a)},this);r(this.$$success,function(b,d){this.$setValidity(d,null,a)},this);cb(this.$$controls,a);a.$$parentForm=lb},$setDirty:function(){this.$$animate.removeClass(this.$$element,Za);this.$$animate.addClass(this.$$element,Vb);this.$dirty=!0;this.$pristine=!1;this.$$parentForm.$setDirty()},$setPristine:function(){this.$$animate.setClass(this.$$element,
Za,Vb+" ng-submitted");this.$dirty=!1;this.$pristine=!0;this.$submitted=!1;r(this.$$controls,function(a){a.$setPristine()})},$setUntouched:function(){r(this.$$controls,function(a){a.$setUntouched()})},$setSubmitted:function(){for(var a=this;a.$$parentForm&&a.$$parentForm!==lb;)a=a.$$parentForm;a.$$setSubmitted()},$$setSubmitted:function(){this.$$animate.addClass(this.$$element,"ng-submitted");this.$submitted=!0;r(this.$$controls,function(a){a.$$setSubmitted&&a.$$setSubmitted()})}};ae({clazz:Pb,set:function(a,
b,d){var c=a[b];c?-1===c.indexOf(d)&&c.push(d):a[b]=[d]},unset:function(a,b,d){var c=a[b];c&&(cb(c,d),0===c.length&&delete a[b])}});var ke=function(a){return["$timeout","$parse",function(b,d){function c(a){return""===a?d('this[""]').assign:d(a).assign||E}return{name:"form",restrict:a?"EAC":"E",require:["form","^^?form"],controller:Pb,compile:function(d,f){d.addClass(Za).addClass(mb);var g=f.name?"name":a&&f.ngForm?"ngForm":!1;return{pre:function(a,d,e,f){var p=f[0];if(!("action"in e)){var n=function(b){a.$apply(function(){p.$commitViewValue();
p.$setSubmitted()});b.preventDefault()};d[0].addEventListener("submit",n);d.on("$destroy",function(){b(function(){d[0].removeEventListener("submit",n)},0,!1)})}(f[1]||p.$$parentForm).$addControl(p);var s=g?c(p.$name):E;g&&(s(a,p),e.$observe(g,function(b){p.$name!==b&&(s(a,void 0),p.$$parentForm.$$renameControl(p,b),s=c(p.$name),s(a,p))}));d.on("$destroy",function(){p.$$parentForm.$removeControl(p);s(a,void 0);S(p,lb)})}}}}}]},Ne=ke(),Ze=ke(!0),hh=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,
sh=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,th=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,ih=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,le=/^(\d{4,})-(\d{2})-(\d{2})$/,me=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Mc=/^(\d{4,})-W(\d\d)$/,ne=/^(\d{4,})-(\d\d)$/,
oe=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,ce=T();r(["date","datetime-local","month","time","week"],function(a){ce[a]=!0});var pe={text:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Hc(c)},date:nb("date",le,Qb(le,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":nb("datetimelocal",me,Qb(me,"yyyy MM dd HH mm ss sss".split(" ")),"yyyy-MM-ddTHH:mm:ss.sss"),time:nb("time",oe,Qb(oe,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:nb("week",Mc,function(a,b){if(ha(a))return a;if(A(a)){Mc.lastIndex=0;var d=Mc.exec(a);
if(d){var c=+d[1],e=+d[2],f=d=0,g=0,k=0,h=Xd(c),e=7*(e-1);b&&(d=b.getHours(),f=b.getMinutes(),g=b.getSeconds(),k=b.getMilliseconds());return new Date(c,0,h.getDate()+e,d,f,g,k)}}return NaN},"yyyy-Www"),month:nb("month",ne,Qb(ne,["yyyy","MM"]),"yyyy-MM"),number:function(a,b,d,c,e,f,g,k){Ic(a,b,d,c,"number");de(c);Sa(a,b,d,c,e,f);var h;if(w(d.min)||d.ngMin){var l=d.min||k(d.ngMin)(a);h=na(l);c.$validators.min=function(a,b){return c.$isEmpty(b)||z(h)||b>=h};d.$observe("min",function(a){a!==l&&(h=na(a),
l=a,c.$validate())})}if(w(d.max)||d.ngMax){var m=d.max||k(d.ngMax)(a),p=na(m);c.$validators.max=function(a,b){return c.$isEmpty(b)||z(p)||b<=p};d.$observe("max",function(a){a!==m&&(p=na(a),m=a,c.$validate())})}if(w(d.step)||d.ngStep){var n=d.step||k(d.ngStep)(a),s=na(n);c.$validators.step=function(a,b){return c.$isEmpty(b)||z(s)||ee(b,h||0,s)};d.$observe("step",function(a){a!==n&&(s=na(a),n=a,c.$validate())})}},url:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Hc(c);c.$validators.url=function(a,b){var d=
a||b;return c.$isEmpty(d)||sh.test(d)}},email:function(a,b,d,c,e,f){Sa(a,b,d,c,e,f);Hc(c);c.$validators.email=function(a,b){var d=a||b;return c.$isEmpty(d)||th.test(d)}},radio:function(a,b,d,c){var e=!d.ngTrim||"false"!==U(d.ngTrim);z(d.name)&&b.attr("name",++pb);b.on("change",function(a){var g;b[0].checked&&(g=d.value,e&&(g=U(g)),c.$setViewValue(g,a&&a.type))});c.$render=function(){var a=d.value;e&&(a=U(a));b[0].checked=a===c.$viewValue};d.$observe("value",c.$render)},range:function(a,b,d,c,e,f){function g(a,
c){b.attr(a,d[a]);var e=d[a];d.$observe(a,function(a){a!==e&&(e=a,c(a))})}function k(a){p=na(a);X(c.$modelValue)||(m?(a=b.val(),p>a&&(a=p,b.val(a)),c.$setViewValue(a)):c.$validate())}function h(a){n=na(a);X(c.$modelValue)||(m?(a=b.val(),n<a&&(b.val(n),a=n<p?p:n),c.$setViewValue(a)):c.$validate())}function l(a){s=na(a);X(c.$modelValue)||(m?c.$viewValue!==b.val()&&c.$setViewValue(b.val()):c.$validate())}Ic(a,b,d,c,"range");de(c);Sa(a,b,d,c,e,f);var m=c.$$hasNativeValidators&&"range"===b[0].type,p=m?
0:void 0,n=m?100:void 0,s=m?1:void 0,r=b[0].validity;a=w(d.min);e=w(d.max);f=w(d.step);var q=c.$render;c.$render=m&&w(r.rangeUnderflow)&&w(r.rangeOverflow)?function(){q();c.$setViewValue(b.val())}:q;a&&(p=na(d.min),c.$validators.min=m?function(){return!0}:function(a,b){return c.$isEmpty(b)||z(p)||b>=p},g("min",k));e&&(n=na(d.max),c.$validators.max=m?function(){return!0}:function(a,b){return c.$isEmpty(b)||z(n)||b<=n},g("max",h));f&&(s=na(d.step),c.$validators.step=m?function(){return!r.stepMismatch}:
function(a,b){return c.$isEmpty(b)||z(s)||ee(b,p||0,s)},g("step",l))},checkbox:function(a,b,d,c,e,f,g,k){var h=fe(k,a,"ngTrueValue",d.ngTrueValue,!0),l=fe(k,a,"ngFalseValue",d.ngFalseValue,!1);b.on("change",function(a){c.$setViewValue(b[0].checked,a&&a.type)});c.$render=function(){b[0].checked=c.$viewValue};c.$isEmpty=function(a){return!1===a};c.$formatters.push(function(a){return va(a,h)});c.$parsers.push(function(a){return a?h:l})},hidden:E,button:E,submit:E,reset:E,file:E},Yc=["$browser","$sniffer",
"$filter","$parse",function(a,b,d,c){return{restrict:"E",require:["?ngModel"],link:{pre:function(e,f,g,k){k[0]&&(pe[K(g.type)]||pe.text)(e,f,g,k[0],b,a,d,c)}}}}],vf=function(){var a={configurable:!0,enumerable:!1,get:function(){return this.getAttribute("value")||""},set:function(a){this.setAttribute("value",a)}};return{restrict:"E",priority:200,compile:function(b,d){if("hidden"===K(d.type))return{pre:function(b,d,f,g){b=d[0];b.parentNode&&b.parentNode.insertBefore(b,b.nextSibling);Object.defineProperty&&
Object.defineProperty(b,"value",a)}}}}},uh=/^(true|false|\d+)$/,sf=function(){function a(a,d,c){var e=w(c)?c:9===Ca?"":null;a.prop("value",e);d.$set("value",c)}return{restrict:"A",priority:100,compile:function(b,d){return uh.test(d.ngValue)?function(b,d,f){b=b.$eval(f.ngValue);a(d,f,b)}:function(b,d,f){b.$watch(f.ngValue,function(b){a(d,f,b)})}}}},Re=["$compile",function(a){return{restrict:"AC",compile:function(b){a.$$addBindingClass(b);return function(b,c,e){a.$$addBindingInfo(c,e.ngBind);c=c[0];
b.$watch(e.ngBind,function(a){c.textContent=ic(a)})}}}}],Te=["$interpolate","$compile",function(a,b){return{compile:function(d){b.$$addBindingClass(d);return function(c,d,f){c=a(d.attr(f.$attr.ngBindTemplate));b.$$addBindingInfo(d,c.expressions);d=d[0];f.$observe("ngBindTemplate",function(a){d.textContent=z(a)?"":a})}}}}],Se=["$sce","$parse","$compile",function(a,b,d){return{restrict:"A",compile:function(c,e){var f=b(e.ngBindHtml),g=b(e.ngBindHtml,function(b){return a.valueOf(b)});d.$$addBindingClass(c);
return function(b,c,e){d.$$addBindingInfo(c,e.ngBindHtml);b.$watch(g,function(){var d=f(b);c.html(a.getTrustedHtml(d)||"")})}}}}],rf=ia({restrict:"A",require:"ngModel",link:function(a,b,d,c){c.$viewChangeListeners.push(function(){a.$eval(d.ngChange)})}}),Ue=Kc("",!0),We=Kc("Odd",0),Ve=Kc("Even",1),Xe=Ra({compile:function(a,b){b.$set("ngCloak",void 0);a.removeClass("ng-cloak")}}),Ye=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],cd={},vh={blur:!0,focus:!0};r("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),
function(a){var b=wa("ng-"+a);cd[b]=["$parse","$rootScope","$exceptionHandler",function(d,c,e){return qd(d,c,e,b,a,vh[a])}]});var af=["$animate","$compile",function(a,b){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(d,c,e,f,g){var k,h,l;d.$watch(e.ngIf,function(d){d?h||g(function(d,f){h=f;d[d.length++]=b.$$createComment("end ngIf",e.ngIf);k={clone:d};a.enter(d,c.parent(),c)}):(l&&(l.remove(),l=null),h&&(h.$destroy(),h=null),k&&(l=tb(k.clone),
a.leave(l).done(function(a){!1!==a&&(l=null)}),k=null))})}}}],bf=["$templateRequest","$anchorScroll","$animate",function(a,b,d){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:ca.noop,compile:function(c,e){var f=e.ngInclude||e.src,g=e.onload||"",k=e.autoscroll;return function(c,e,m,p,n){var r=0,q,t,x,v=function(){t&&(t.remove(),t=null);q&&(q.$destroy(),q=null);x&&(d.leave(x).done(function(a){!1!==a&&(t=null)}),t=x,x=null)};c.$watch(f,function(f){var m=function(a){!1===
a||!w(k)||k&&!c.$eval(k)||b()},t=++r;f?(a(f,!0).then(function(a){if(!c.$$destroyed&&t===r){var b=c.$new();p.template=a;a=n(b,function(a){v();d.enter(a,null,e).done(m)});q=b;x=a;q.$emit("$includeContentLoaded",f);c.$eval(g)}},function(){c.$$destroyed||t!==r||(v(),c.$emit("$includeContentError",f))}),c.$emit("$includeContentRequested",f)):(v(),p.template=null)})}}}}],uf=["$compile",function(a){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(b,d,c,e){la.call(d[0]).match(/SVG/)?
(d.empty(),a(ed(e.template,C.document).childNodes)(b,function(a){d.append(a)},{futureParentElement:d})):(d.html(e.template),a(d.contents())(b))}}}],cf=Ra({priority:450,compile:function(){return{pre:function(a,b,d){a.$eval(d.ngInit)}}}}),qf=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(a,b,d,c){var e=d.ngList||", ",f="false"!==d.ngTrim,g=f?U(e):e;c.$parsers.push(function(a){if(!z(a)){var b=[];a&&r(a.split(g),function(a){a&&b.push(f?U(a):a)});return b}});c.$formatters.push(function(a){if(H(a))return a.join(e)});
c.$isEmpty=function(a){return!a||!a.length}}}},mb="ng-valid",$d="ng-invalid",Za="ng-pristine",Vb="ng-dirty",ob=F("ngModel");Rb.$inject="$scope $exceptionHandler $attrs $element $parse $animate $timeout $q $interpolate".split(" ");Rb.prototype={$$initGetterSetters:function(){if(this.$options.getOption("getterSetter")){var a=this.$$parse(this.$$attr.ngModel+"()"),b=this.$$parse(this.$$attr.ngModel+"($$$p)");this.$$ngModelGet=function(b){var c=this.$$parsedNgModel(b);B(c)&&(c=a(b));return c};this.$$ngModelSet=
function(a,c){B(this.$$parsedNgModel(a))?b(a,{$$$p:c}):this.$$parsedNgModelAssign(a,c)}}else if(!this.$$parsedNgModel.assign)throw ob("nonassign",this.$$attr.ngModel,za(this.$$element));},$render:E,$isEmpty:function(a){return z(a)||""===a||null===a||a!==a},$$updateEmptyClasses:function(a){this.$isEmpty(a)?(this.$$animate.removeClass(this.$$element,"ng-not-empty"),this.$$animate.addClass(this.$$element,"ng-empty")):(this.$$animate.removeClass(this.$$element,"ng-empty"),this.$$animate.addClass(this.$$element,
"ng-not-empty"))},$setPristine:function(){this.$dirty=!1;this.$pristine=!0;this.$$animate.removeClass(this.$$element,Vb);this.$$animate.addClass(this.$$element,Za)},$setDirty:function(){this.$dirty=!0;this.$pristine=!1;this.$$animate.removeClass(this.$$element,Za);this.$$animate.addClass(this.$$element,Vb);this.$$parentForm.$setDirty()},$setUntouched:function(){this.$touched=!1;this.$untouched=!0;this.$$animate.setClass(this.$$element,"ng-untouched","ng-touched")},$setTouched:function(){this.$touched=
!0;this.$untouched=!1;this.$$animate.setClass(this.$$element,"ng-touched","ng-untouched")},$rollbackViewValue:function(){this.$$timeout.cancel(this.$$pendingDebounce);this.$viewValue=this.$$lastCommittedViewValue;this.$render()},$validate:function(){if(!X(this.$modelValue)){var a=this.$$lastCommittedViewValue,b=this.$$rawModelValue,d=this.$valid,c=this.$modelValue,e=this.$options.getOption("allowInvalid"),f=this;this.$$runValidators(b,a,function(a){e||d===a||(f.$modelValue=a?b:void 0,f.$modelValue!==
c&&f.$$writeModelToScope())})}},$$runValidators:function(a,b,d){function c(){var c=!0;r(h.$validators,function(d,e){var g=Boolean(d(a,b));c=c&&g;f(e,g)});return c?!0:(r(h.$asyncValidators,function(a,b){f(b,null)}),!1)}function e(){var c=[],d=!0;r(h.$asyncValidators,function(e,g){var h=e(a,b);if(!h||!B(h.then))throw ob("nopromise",h);f(g,void 0);c.push(h.then(function(){f(g,!0)},function(){d=!1;f(g,!1)}))});c.length?h.$$q.all(c).then(function(){g(d)},E):g(!0)}function f(a,b){k===h.$$currentValidationRunId&&
h.$setValidity(a,b)}function g(a){k===h.$$currentValidationRunId&&d(a)}this.$$currentValidationRunId++;var k=this.$$currentValidationRunId,h=this;(function(){var a=h.$$parserName;if(z(h.$$parserValid))f(a,null);else return h.$$parserValid||(r(h.$validators,function(a,b){f(b,null)}),r(h.$asyncValidators,function(a,b){f(b,null)})),f(a,h.$$parserValid),h.$$parserValid;return!0})()?c()?e():g(!1):g(!1)},$commitViewValue:function(){var a=this.$viewValue;this.$$timeout.cancel(this.$$pendingDebounce);if(this.$$lastCommittedViewValue!==
a||""===a&&this.$$hasNativeValidators)this.$$updateEmptyClasses(a),this.$$lastCommittedViewValue=a,this.$pristine&&this.$setDirty(),this.$$parseAndValidate()},$$parseAndValidate:function(){var a=this.$$lastCommittedViewValue,b=this;this.$$parserValid=z(a)?void 0:!0;this.$setValidity(this.$$parserName,null);this.$$parserName="parse";if(this.$$parserValid)for(var d=0;d<this.$parsers.length;d++)if(a=this.$parsers[d](a),z(a)){this.$$parserValid=!1;break}X(this.$modelValue)&&(this.$modelValue=this.$$ngModelGet(this.$$scope));
var c=this.$modelValue,e=this.$options.getOption("allowInvalid");this.$$rawModelValue=a;e&&(this.$modelValue=a,b.$modelValue!==c&&b.$$writeModelToScope());this.$$runValidators(a,this.$$lastCommittedViewValue,function(d){e||(b.$modelValue=d?a:void 0,b.$modelValue!==c&&b.$$writeModelToScope())})},$$writeModelToScope:function(){this.$$ngModelSet(this.$$scope,this.$modelValue);r(this.$viewChangeListeners,function(a){try{a()}catch(b){this.$$exceptionHandler(b)}},this)},$setViewValue:function(a,b){this.$viewValue=
a;this.$options.getOption("updateOnDefault")&&this.$$debounceViewValueCommit(b)},$$debounceViewValueCommit:function(a){var b=this.$options.getOption("debounce");W(b[a])?b=b[a]:W(b["default"])&&-1===this.$options.getOption("updateOn").indexOf(a)?b=b["default"]:W(b["*"])&&(b=b["*"]);this.$$timeout.cancel(this.$$pendingDebounce);var d=this;0<b?this.$$pendingDebounce=this.$$timeout(function(){d.$commitViewValue()},b):this.$$rootScope.$$phase?this.$commitViewValue():this.$$scope.$apply(function(){d.$commitViewValue()})},
$overrideModelOptions:function(a){this.$options=this.$options.createChild(a);this.$$setUpdateOnEvents()},$processModelValue:function(){var a=this.$$format();this.$viewValue!==a&&(this.$$updateEmptyClasses(a),this.$viewValue=this.$$lastCommittedViewValue=a,this.$render(),this.$$runValidators(this.$modelValue,this.$viewValue,E))},$$format:function(){for(var a=this.$formatters,b=a.length,d=this.$modelValue;b--;)d=a[b](d);return d},$$setModelValue:function(a){this.$modelValue=this.$$rawModelValue=a;this.$$parserValid=
void 0;this.$processModelValue()},$$setUpdateOnEvents:function(){this.$$updateEvents&&this.$$element.off(this.$$updateEvents,this.$$updateEventHandler);if(this.$$updateEvents=this.$options.getOption("updateOn"))this.$$element.on(this.$$updateEvents,this.$$updateEventHandler)},$$updateEventHandler:function(a){this.$$debounceViewValueCommit(a&&a.type)}};ae({clazz:Rb,set:function(a,b){a[b]=!0},unset:function(a,b){delete a[b]}});var pf=["$rootScope",function(a){return{restrict:"A",require:["ngModel",
"^?form","^?ngModelOptions"],controller:Rb,priority:1,compile:function(b){b.addClass(Za).addClass("ng-untouched").addClass(mb);return{pre:function(a,b,e,f){var g=f[0];b=f[1]||g.$$parentForm;if(f=f[2])g.$options=f.$options;g.$$initGetterSetters();b.$addControl(g);e.$observe("name",function(a){g.$name!==a&&g.$$parentForm.$$renameControl(g,a)});a.$on("$destroy",function(){g.$$parentForm.$removeControl(g)})},post:function(b,c,e,f){function g(){k.$setTouched()}var k=f[0];k.$$setUpdateOnEvents();c.on("blur",
function(){k.$touched||(a.$$phase?b.$evalAsync(g):b.$apply(g))})}}}}}],Sb,wh=/(\s+|^)default(\s+|$)/;Lc.prototype={getOption:function(a){return this.$$options[a]},createChild:function(a){var b=!1;a=S({},a);r(a,function(d,c){"$inherit"===d?"*"===c?b=!0:(a[c]=this.$$options[c],"updateOn"===c&&(a.updateOnDefault=this.$$options.updateOnDefault)):"updateOn"===c&&(a.updateOnDefault=!1,a[c]=U(d.replace(wh,function(){a.updateOnDefault=!0;return" "})))},this);b&&(delete a["*"],ge(a,this.$$options));ge(a,Sb.$$options);
return new Lc(a)}};Sb=new Lc({updateOn:"",updateOnDefault:!0,debounce:0,getterSetter:!1,allowInvalid:!1,timezone:null});var tf=function(){function a(a,d){this.$$attrs=a;this.$$scope=d}a.$inject=["$attrs","$scope"];a.prototype={$onInit:function(){var a=this.parentCtrl?this.parentCtrl.$options:Sb,d=this.$$scope.$eval(this.$$attrs.ngModelOptions);this.$options=a.createChild(d)}};return{restrict:"A",priority:10,require:{parentCtrl:"?^^ngModelOptions"},bindToController:!0,controller:a}},df=Ra({terminal:!0,
priority:1E3}),xh=F("ngOptions"),yh=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,nf=["$compile","$document","$parse",function(a,b,d){function c(a,b,c){function e(a,b,c,d,f){this.selectValue=a;this.viewValue=b;this.label=c;this.group=d;this.disabled=f}function f(a){var b;if(!r&&ya(a))b=a;else{b=[];for(var c in a)a.hasOwnProperty(c)&&
"$"!==c.charAt(0)&&b.push(c)}return b}var p=a.match(yh);if(!p)throw xh("iexp",a,za(b));var n=p[5]||p[7],r=p[6];a=/ as /.test(p[0])&&p[1];var q=p[9];b=d(p[2]?p[1]:n);var t=a&&d(a)||b,w=q&&d(q),v=q?function(a,b){return w(c,b)}:function(a){return La(a)},x=function(a,b){return v(a,A(a,b))},z=d(p[2]||p[1]),y=d(p[3]||""),J=d(p[4]||""),I=d(p[8]),B={},A=r?function(a,b){B[r]=b;B[n]=a;return B}:function(a){B[n]=a;return B};return{trackBy:q,getTrackByValue:x,getWatchables:d(I,function(a){var b=[];a=a||[];for(var d=
f(a),e=d.length,g=0;g<e;g++){var k=a===d?g:d[g],l=a[k],k=A(l,k),l=v(l,k);b.push(l);if(p[2]||p[1])l=z(c,k),b.push(l);p[4]&&(k=J(c,k),b.push(k))}return b}),getOptions:function(){for(var a=[],b={},d=I(c)||[],g=f(d),k=g.length,n=0;n<k;n++){var p=d===g?n:g[n],r=A(d[p],p),s=t(c,r),p=v(s,r),w=z(c,r),B=y(c,r),r=J(c,r),s=new e(p,s,w,B,r);a.push(s);b[p]=s}return{items:a,selectValueMap:b,getOptionFromViewValue:function(a){return b[x(a)]},getViewValueFromOption:function(a){return q?Ia(a.viewValue):a.viewValue}}}}}
var e=C.document.createElement("option"),f=C.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(a,b,c,d){d[0].registerOption=E},post:function(d,k,h,l){function m(a){var b=(a=v.getOptionFromViewValue(a))&&a.element;b&&!b.selected&&(b.selected=!0);return a}function p(a,b){a.element=b;b.disabled=a.disabled;a.label!==b.label&&(b.label=a.label,b.textContent=a.label);b.value=a.selectValue}var n=l[0],q=l[1],z=h.multiple;l=0;for(var t=k.children(),
B=t.length;l<B;l++)if(""===t[l].value){n.hasEmptyOption=!0;n.emptyOption=t.eq(l);break}k.empty();l=!!n.emptyOption;x(e.cloneNode(!1)).val("?");var v,A=c(h.ngOptions,k,d),C=b[0].createDocumentFragment();n.generateUnknownOptionValue=function(a){return"?"};z?(n.writeValue=function(a){if(v){var b=a&&a.map(m)||[];v.items.forEach(function(a){a.element.selected&&-1===Array.prototype.indexOf.call(b,a)&&(a.element.selected=!1)})}},n.readValue=function(){var a=k.val()||[],b=[];r(a,function(a){(a=v.selectValueMap[a])&&
!a.disabled&&b.push(v.getViewValueFromOption(a))});return b},A.trackBy&&d.$watchCollection(function(){if(H(q.$viewValue))return q.$viewValue.map(function(a){return A.getTrackByValue(a)})},function(){q.$render()})):(n.writeValue=function(a){if(v){var b=k[0].options[k[0].selectedIndex],c=v.getOptionFromViewValue(a);b&&b.removeAttribute("selected");c?(k[0].value!==c.selectValue&&(n.removeUnknownOption(),k[0].value=c.selectValue,c.element.selected=!0),c.element.setAttribute("selected","selected")):n.selectUnknownOrEmptyOption(a)}},
n.readValue=function(){var a=v.selectValueMap[k.val()];return a&&!a.disabled?(n.unselectEmptyOption(),n.removeUnknownOption(),v.getViewValueFromOption(a)):null},A.trackBy&&d.$watch(function(){return A.getTrackByValue(q.$viewValue)},function(){q.$render()}));l&&(a(n.emptyOption)(d),k.prepend(n.emptyOption),8===n.emptyOption[0].nodeType?(n.hasEmptyOption=!1,n.registerOption=function(a,b){""===b.val()&&(n.hasEmptyOption=!0,n.emptyOption=b,n.emptyOption.removeClass("ng-scope"),q.$render(),b.on("$destroy",
function(){var a=n.$isEmptyOptionSelected();n.hasEmptyOption=!1;n.emptyOption=void 0;a&&q.$render()}))}):n.emptyOption.removeClass("ng-scope"));d.$watchCollection(A.getWatchables,function(){var a=v&&n.readValue();if(v)for(var b=v.items.length-1;0<=b;b--){var c=v.items[b];w(c.group)?Fb(c.element.parentNode):Fb(c.element)}v=A.getOptions();var d={};v.items.forEach(function(a){var b;if(w(a.group)){b=d[a.group];b||(b=f.cloneNode(!1),C.appendChild(b),b.label=null===a.group?"null":a.group,d[a.group]=b);
var c=e.cloneNode(!1);b.appendChild(c);p(a,c)}else b=e.cloneNode(!1),C.appendChild(b),p(a,b)});k[0].appendChild(C);q.$render();q.$isEmpty(a)||(b=n.readValue(),(A.trackBy||z?va(a,b):a===b)||(q.$setViewValue(b),q.$render()))})}}}}],ef=["$locale","$interpolate","$log",function(a,b,d){var c=/{}/g,e=/^when(Minus)?(.+)$/;return{link:function(f,g,k){function h(a){g.text(a||"")}var l=k.count,m=k.$attr.when&&g.attr(k.$attr.when),p=k.offset||0,n=f.$eval(m)||{},q={},w=b.startSymbol(),t=b.endSymbol(),x=w+l+"-"+
p+t,v=ca.noop,A;r(k,function(a,b){var c=e.exec(b);c&&(c=(c[1]?"-":"")+K(c[2]),n[c]=g.attr(k.$attr[b]))});r(n,function(a,d){q[d]=b(a.replace(c,x))});f.$watch(l,function(b){var c=parseFloat(b),e=X(c);e||c in n||(c=a.pluralCat(c-p));c===A||e&&X(A)||(v(),e=q[c],z(e)?(null!=b&&d.debug("ngPluralize: no rule defined for '"+c+"' in "+m),v=E,h()):v=f.$watch(e,h),A=c)})}}}],qe=F("ngRef"),ff=["$parse",function(a){return{priority:-1,restrict:"A",compile:function(b,d){var c=wa(ua(b)),e=a(d.ngRef),f=e.assign||
function(){throw qe("nonassign",d.ngRef);};return function(a,b,h){var l;if(h.hasOwnProperty("ngRefRead"))if("$element"===h.ngRefRead)l=b;else{if(l=b.data("$"+h.ngRefRead+"Controller"),!l)throw qe("noctrl",h.ngRefRead,d.ngRef);}else l=b.data("$"+c+"Controller");l=l||b;f(a,l);b.on("$destroy",function(){e(a)===l&&f(a,null)})}}}}],gf=["$parse","$animate","$compile",function(a,b,d){var c=F("ngRepeat"),e=function(a,b,c,d,e,f,g){a[c]=d;e&&(a[e]=f);a.$index=b;a.$first=0===b;a.$last=b===g-1;a.$middle=!(a.$first||
a.$last);a.$odd=!(a.$even=0===(b&1))},f=function(a,b,c){return La(c)},g=function(a,b){return b};return{restrict:"A",multiElement:!0,transclude:"element",priority:1E3,terminal:!0,$$tlb:!0,compile:function(k,h){var l=h.ngRepeat,m=d.$$createComment("end ngRepeat",l),p=l.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!p)throw c("iexp",l);var n=p[1],q=p[2],w=p[3],t=p[4],p=n.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/);if(!p)throw c("iidexp",
n);var x=p[3]||p[1],v=p[2];if(w&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(w)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(w)))throw c("badident",w);var z;if(t){var A={$id:La},y=a(t);z=function(a,b,c,d){v&&(A[v]=b);A[x]=c;A.$index=d;return y(a,A)}}return function(a,d,h,k,n){var p=T();a.$watchCollection(q,function(h){var k,q,t=d[0],s,y=T(),B,C,E,D,H,F,K;w&&(a[w]=h);if(ya(h))H=h,q=z||f;else for(K in q=z||g,H=[],h)ta.call(h,K)&&"$"!==K.charAt(0)&&H.push(K);
B=H.length;K=Array(B);for(k=0;k<B;k++)if(C=h===H?k:H[k],E=h[C],D=q(a,C,E,k),p[D])F=p[D],delete p[D],y[D]=F,K[k]=F;else{if(y[D])throw r(K,function(a){a&&a.scope&&(p[a.id]=a)}),c("dupes",l,D,E);K[k]={id:D,scope:void 0,clone:void 0};y[D]=!0}A&&(A[x]=void 0);for(s in p){F=p[s];D=tb(F.clone);b.leave(D);if(D[0].parentNode)for(k=0,q=D.length;k<q;k++)D[k].$$NG_REMOVED=!0;F.scope.$destroy()}for(k=0;k<B;k++)if(C=h===H?k:H[k],E=h[C],F=K[k],F.scope){s=t;do s=s.nextSibling;while(s&&s.$$NG_REMOVED);F.clone[0]!==
s&&b.move(tb(F.clone),null,t);t=F.clone[F.clone.length-1];e(F.scope,k,x,E,v,C,B)}else n(function(a,c){F.scope=c;var d=m.cloneNode(!1);a[a.length++]=d;b.enter(a,null,t);t=d;F.clone=a;y[F.id]=F;e(F.scope,k,x,E,v,C,B)});p=y})}}}}],hf=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,d,c){b.$watch(c.ngShow,function(b){a[b?"removeClass":"addClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],$e=["$animate",function(a){return{restrict:"A",multiElement:!0,link:function(b,
d,c){b.$watch(c.ngHide,function(b){a[b?"addClass":"removeClass"](d,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],jf=Ra(function(a,b,d){a.$watchCollection(d.ngStyle,function(a,d){d&&a!==d&&r(d,function(a,c){b.css(c,"")});a&&b.css(a)})}),kf=["$animate","$compile",function(a,b){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(d,c,e,f){var g=[],k=[],h=[],l=[],m=function(a,b){return function(c){!1!==c&&a.splice(b,1)}};d.$watch(e.ngSwitch||e.on,function(c){for(var d,
e;h.length;)a.cancel(h.pop());d=0;for(e=l.length;d<e;++d){var q=tb(k[d].clone);l[d].$destroy();(h[d]=a.leave(q)).done(m(h,d))}k.length=0;l.length=0;(g=f.cases["!"+c]||f.cases["?"])&&r(g,function(c){c.transclude(function(d,e){l.push(e);var f=c.element;d[d.length++]=b.$$createComment("end ngSwitchWhen");k.push({clone:d});a.enter(d,f.parent(),f)})})})}}}],lf=Ra({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){a=d.ngSwitchWhen.split(d.ngSwitchWhenSeparator).sort().filter(function(a,
b,c){return c[b-1]!==a});r(a,function(a){c.cases["!"+a]=c.cases["!"+a]||[];c.cases["!"+a].push({transclude:e,element:b})})}}),mf=Ra({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(a,b,d,c,e){c.cases["?"]=c.cases["?"]||[];c.cases["?"].push({transclude:e,element:b})}}),zh=F("ngTransclude"),of=["$compile",function(a){return{restrict:"EAC",compile:function(b){var d=a(b.contents());b.empty();return function(a,b,f,g,k){function h(){d(a,function(a){b.append(a)})}if(!k)throw zh("orphan",
za(b));f.ngTransclude===f.$attr.ngTransclude&&(f.ngTransclude="");f=f.ngTransclude||f.ngTranscludeSlot;k(function(a,c){var d;if(d=a.length)a:{d=0;for(var f=a.length;d<f;d++){var g=a[d];if(g.nodeType!==Pa||g.nodeValue.trim()){d=!0;break a}}d=void 0}d?b.append(a):(h(),c.$destroy())},null,f);f&&!k.isSlotFilled(f)&&h()}}}}],Oe=["$templateCache",function(a){return{restrict:"E",terminal:!0,compile:function(b,d){"text/ng-template"===d.type&&a.put(d.id,b[0].text)}}}],Ah={$setViewValue:E,$render:E},Bh=["$element",
"$scope",function(a,b){function d(){g||(g=!0,b.$$postDigest(function(){g=!1;e.ngModelCtrl.$render()}))}function c(a){k||(k=!0,b.$$postDigest(function(){b.$$destroyed||(k=!1,e.ngModelCtrl.$setViewValue(e.readValue()),a&&e.ngModelCtrl.$render())}))}var e=this,f=new Hb;e.selectValueMap={};e.ngModelCtrl=Ah;e.multiple=!1;e.unknownOption=x(C.document.createElement("option"));e.hasEmptyOption=!1;e.emptyOption=void 0;e.renderUnknownOption=function(b){b=e.generateUnknownOptionValue(b);e.unknownOption.val(b);
a.prepend(e.unknownOption);Oa(e.unknownOption,!0);a.val(b)};e.updateUnknownOption=function(b){b=e.generateUnknownOptionValue(b);e.unknownOption.val(b);Oa(e.unknownOption,!0);a.val(b)};e.generateUnknownOptionValue=function(a){return"? "+La(a)+" ?"};e.removeUnknownOption=function(){e.unknownOption.parent()&&e.unknownOption.remove()};e.selectEmptyOption=function(){e.emptyOption&&(a.val(""),Oa(e.emptyOption,!0))};e.unselectEmptyOption=function(){e.hasEmptyOption&&Oa(e.emptyOption,!1)};b.$on("$destroy",
function(){e.renderUnknownOption=E});e.readValue=function(){var b=a.val(),b=b in e.selectValueMap?e.selectValueMap[b]:b;return e.hasOption(b)?b:null};e.writeValue=function(b){var c=a[0].options[a[0].selectedIndex];c&&Oa(x(c),!1);e.hasOption(b)?(e.removeUnknownOption(),c=La(b),a.val(c in e.selectValueMap?c:b),Oa(x(a[0].options[a[0].selectedIndex]),!0)):e.selectUnknownOrEmptyOption(b)};e.addOption=function(a,b){if(8!==b[0].nodeType){Ja(a,'"option value"');""===a&&(e.hasEmptyOption=!0,e.emptyOption=
b);var c=f.get(a)||0;f.set(a,c+1);d()}};e.removeOption=function(a){var b=f.get(a);b&&(1===b?(f.delete(a),""===a&&(e.hasEmptyOption=!1,e.emptyOption=void 0)):f.set(a,b-1))};e.hasOption=function(a){return!!f.get(a)};e.$hasEmptyOption=function(){return e.hasEmptyOption};e.$isUnknownOptionSelected=function(){return a[0].options[0]===e.unknownOption[0]};e.$isEmptyOptionSelected=function(){return e.hasEmptyOption&&a[0].options[a[0].selectedIndex]===e.emptyOption[0]};e.selectUnknownOrEmptyOption=function(a){null==
a&&e.emptyOption?(e.removeUnknownOption(),e.selectEmptyOption()):e.unknownOption.parent().length?e.updateUnknownOption(a):e.renderUnknownOption(a)};var g=!1,k=!1;e.registerOption=function(a,b,f,g,k){if(f.$attr.ngValue){var q,r;f.$observe("value",function(a){var d,f=b.prop("selected");w(r)&&(e.removeOption(q),delete e.selectValueMap[r],d=!0);r=La(a);q=a;e.selectValueMap[r]=a;e.addOption(a,b);b.attr("value",r);d&&f&&c()})}else g?f.$observe("value",function(a){e.readValue();var d,f=b.prop("selected");
w(q)&&(e.removeOption(q),d=!0);q=a;e.addOption(a,b);d&&f&&c()}):k?a.$watch(k,function(a,d){f.$set("value",a);var g=b.prop("selected");d!==a&&e.removeOption(d);e.addOption(a,b);d&&g&&c()}):e.addOption(f.value,b);f.$observe("disabled",function(a){if("true"===a||a&&b.prop("selected"))e.multiple?c(!0):(e.ngModelCtrl.$setViewValue(null),e.ngModelCtrl.$render())});b.on("$destroy",function(){var a=e.readValue(),b=f.value;e.removeOption(b);d();(e.multiple&&a&&-1!==a.indexOf(b)||a===b)&&c(!0)})}}],Pe=function(){return{restrict:"E",
require:["select","?ngModel"],controller:Bh,priority:1,link:{pre:function(a,b,d,c){var e=c[0],f=c[1];if(f){if(e.ngModelCtrl=f,b.on("change",function(){e.removeUnknownOption();a.$apply(function(){f.$setViewValue(e.readValue())})}),d.multiple){e.multiple=!0;e.readValue=function(){var a=[];r(b.find("option"),function(b){b.selected&&!b.disabled&&(b=b.value,a.push(b in e.selectValueMap?e.selectValueMap[b]:b))});return a};e.writeValue=function(a){r(b.find("option"),function(b){var c=!!a&&(-1!==Array.prototype.indexOf.call(a,
b.value)||-1!==Array.prototype.indexOf.call(a,e.selectValueMap[b.value]));c!==b.selected&&Oa(x(b),c)})};var g,k=NaN;a.$watch(function(){k!==f.$viewValue||va(g,f.$viewValue)||(g=ja(f.$viewValue),f.$render());k=f.$viewValue});f.$isEmpty=function(a){return!a||0===a.length}}}else e.registerOption=E},post:function(a,b,d,c){var e=c[1];if(e){var f=c[0];e.$render=function(){f.writeValue(e.$viewValue)}}}}}},Qe=["$interpolate",function(a){return{restrict:"E",priority:100,compile:function(b,d){var c,e;w(d.ngValue)||
(w(d.value)?c=a(d.value,!0):(e=a(b.text(),!0))||d.$set("value",b.text()));return function(a,b,d){var h=b.parent();(h=h.data("$selectController")||h.parent().data("$selectController"))&&h.registerOption(a,b,d,c,e)}}}}],$c=["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.hasOwnProperty("required")||a(c.ngRequired)(b);c.ngRequired||(c.required=!0);e.$validators.required=function(a,b){return!f||!e.$isEmpty(b)};c.$observe("required",function(a){f!==a&&(f=
a,e.$validate())})}}}}],Zc=["$parse",function(a){return{restrict:"A",require:"?ngModel",compile:function(b,d){var c,e;d.ngPattern&&(c=d.ngPattern,e="/"===d.ngPattern.charAt(0)&&ie.test(d.ngPattern)?function(){return d.ngPattern}:a(d.ngPattern));return function(a,b,d,h){if(h){var l=d.pattern;d.ngPattern?l=e(a):c=d.pattern;var m=he(l,c,b);d.$observe("pattern",function(a){var d=m;m=he(a,c,b);(d&&d.toString())!==(m&&m.toString())&&h.$validate()});h.$validators.pattern=function(a,b){return h.$isEmpty(b)||
z(m)||m.test(b)}}}}}}],bd=["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.maxlength||a(c.ngMaxlength)(b),g=Tb(f);c.$observe("maxlength",function(a){f!==a&&(g=Tb(a),f=a,e.$validate())});e.$validators.maxlength=function(a,b){return 0>g||e.$isEmpty(b)||b.length<=g}}}}}],ad=["$parse",function(a){return{restrict:"A",require:"?ngModel",link:function(b,d,c,e){if(e){var f=c.minlength||a(c.ngMinlength)(b),g=Tb(f)||-1;c.$observe("minlength",function(a){f!==
a&&(g=Tb(a)||-1,f=a,e.$validate())});e.$validators.minlength=function(a,b){return e.$isEmpty(b)||b.length>=g}}}}}];C.angular.bootstrap?C.console&&console.log("WARNING: Tried to load AngularJS more than once."):(Fe(),Je(ca),ca.module("ngLocale",[],["$provide",function(a){function b(a){a+="";var b=a.indexOf(".");return-1==b?0:a.length-b-1}a.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ERANAMES:["Before Christ","Anno Domini"],
ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:"January February March April May June July August September October November December".split(" "),SHORTDAY:"Sun Mon Tue Wed Thu Fri Sat".split(" "),SHORTMONTH:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),STANDALONEMONTH:"January February March April May June July August September October November December".split(" "),WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a",
"short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-\u00a4",negSuf:"",posPre:"\u00a4",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(a,c){var e=a|0,f=c;void 0===f&&(f=Math.min(b(a),3));Math.pow(10,f);return 1==e&&0==f?"one":"other"}})}]),x(function(){Ae(C.document,
Uc)}))})(window);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');
+7
View File
@@ -0,0 +1,7 @@
/*!
* Bootstrap v4.5.2 (https://getbootstrap.com/)
* Copyright 2011-2020 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery,t.Popper)}(this,(function(t,e,n){"use strict";function i(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),t}function s(){return(s=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t}).apply(this,arguments)}e=e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e,n=n&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n;function r(t){var n=this,i=!1;return e(this).one(a.TRANSITION_END,(function(){i=!0})),setTimeout((function(){i||a.triggerTransitionEnd(n)}),t),this}var a={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var n=e(t).css("transition-duration"),i=e(t).css("transition-delay"),o=parseFloat(n),s=parseFloat(i);return o||s?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger("transitionend")},supportsTransitionEnd:function(){return Boolean("transitionend")},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],s=e[i],r=s&&a.isElement(s)?"element":null===(l=s)||"undefined"==typeof l?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+r+'" but expected type "'+o+'".')}var l},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?a.findShadowRoot(t.parentNode):null},jQueryDetection:function(){if("undefined"==typeof e)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};a.jQueryDetection(),e.fn.emulateTransitionEnd=r,e.event.special[a.TRANSITION_END]={bindType:"transitionend",delegateType:"transitionend",handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var l="alert",c=e.fn[l],h=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=a.getSelectorFromElement(t),i=!1;return n&&(i=document.querySelector(n)),i||(i=e(t).closest(".alert")[0]),i},n._triggerCloseEvent=function(t){var n=e.Event("close.bs.alert");return e(t).trigger(n),n},n._removeElement=function(t){var n=this;if(e(t).removeClass("show"),e(t).hasClass("fade")){var i=a.getTransitionDurationFromElement(t);e(t).one(a.TRANSITION_END,(function(e){return n._destroyElement(t,e)})).emulateTransitionEnd(i)}else this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.alert");o||(o=new t(this),i.data("bs.alert",o)),"close"===n&&o[n](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},o(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',h._handleDismiss(new h)),e.fn[l]=h._jQueryInterface,e.fn[l].Constructor=h,e.fn[l].noConflict=function(){return e.fn[l]=c,h._jQueryInterface};var u=e.fn.button,d=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,i=e(this._element).closest('[data-toggle="buttons"]')[0];if(i){var o=this._element.querySelector('input:not([type="hidden"])');if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains("active"))t=!1;else{var s=i.querySelector(".active");s&&e(s).removeClass("active")}t&&("checkbox"!==o.type&&"radio"!==o.type||(o.checked=!this._element.classList.contains("active")),e(o).triggeLine truncated
//# sourceMappingURL=bootstrap.min.js.map
+714
View File
@@ -0,0 +1,714 @@
supersamApp.controller('CalcDoorsController', [
'$scope',
'$http',
'$timeout',
'localStorageService',
'$filter',
'config',
function($scope,
$http,
$timeout,
localStorageService,
$filter,
config) {
var calcDoorsApp;
calcDoorsApp = (function() {
class calcDoorsApp {
constructor() {
this.loadSavedOrderDataFromDB = this.loadSavedOrderDataFromDB.bind(this);
this.clearPromises = this.clearPromises.bind(this);
this.removeDoorOrderInfo = this.removeDoorOrderInfo.bind(this);
this.isArray = this.isArray.bind(this);
this.loadDoorOrderInfo = this.loadDoorOrderInfo.bind(this);
this.saveDoorOrderInfo = this.saveDoorOrderInfo.bind(this);
this.AutoSaveData = this.AutoSaveData.bind(this);
this.confirmCleanup = this.confirmCleanup.bind(this);
this.cleanup = this.cleanup.bind(this);
this.openNotifyModal = this.openNotifyModal.bind(this);
this.openSendOrderEmailModal = this.openSendOrderEmailModal.bind(this);
this.clearCalculateLayoutAjarRequestPromise = this.clearCalculateLayoutAjarRequestPromise.bind(this);
this.calculateLayout = this.calculateLayout.bind(this);
this.onDoorCountChange = this.onDoorCountChange.bind(this);
this.onDoorChange = this.onDoorChange.bind(this);
this.bindWatches = this.bindWatches.bind(this);
this.bindDoorsCountWatches = this.bindDoorsCountWatches.bind(this);
this.unBindWatches = this.unBindWatches.bind(this);
this.printOrder = this.printOrder.bind(this);
this.printOrderConfirm = this.printOrderConfirm.bind(this);
this.sendOrderEmailNotify = this.sendOrderEmailNotify.bind(this);
this.onOrderInfoChange = this.onOrderInfoChange.bind(this);
this.bindOrderInfoWatches = this.bindOrderInfoWatches.bind(this);
this.modalScrollTo = this.modalScrollTo.bind(this);
this.openSelectDoorConfigModal = this.openSelectDoorConfigModal.bind(this);
this.selectDoorId = this.selectDoorId.bind(this);
this.confirmDoorSelection = this.confirmDoorSelection.bind(this);
this.getSelectedDoorColor = this.getSelectedDoorColor.bind(this);
this.getSelectedDoorProfile = this.getSelectedDoorProfile.bind(this);
this.getSelectedDoorVertHeight = this.getSelectedDoorVertHeight.bind(this);
this.getManufacturerLimits = this.getManufacturerLimits.bind(this);
this.isActualPriceCorrect = this.isActualPriceCorrect.bind(this);
this.onFieldEnter = this.onFieldEnter.bind(this);
if (config.savedOrderData) {
this.loadSavedOrderDataFromDB();
} else {
if (localStorageService.isSupported) {
this.loadDoorOrderInfo("AutoSavedCalcDoors");
} else {
this.cleanup();
}
this.date = new Date();
}
$scope.utilities.showContentOnLoad();
}
loadSavedOrderDataFromDB() {
var order;
this.skipNextWatchTrigger = true;
order = angular.copy(config.savedOrderData);
this.orderName = (order.name ? order.name : "");
this.orderPhone = (order.phone ? order.phone : "");
this.orderEmail = (order.email ? order.email : "");
this.orderAddress = (order.address ? order.address : "");
this.orderComment = (order.comment ? order.comment : "");
this.date = new Date(order.created);
this.orderNum = (order.order_num ? order.order_num : "");
this.actualPrice = (order.order_num && order.actual_price ? order.actual_price : "");
this.selectedDoorData = {
params: angular.copy(order.params),
order_calc_results: angular.copy(order.order_calc_results)
};
if (order.order_calc_results && order.order_calc_results.price) {
} else {
return this.calculateLayout();
}
}
clearPromises() {
if (this.calculateLayoutPromise) {
$timeout.cancel(this.calculateLayoutPromise);
return this.calculateLayoutPromise = null;
}
}
removeDoorOrderInfo(id) {
var calcDoorsParams, orderInfo;
if (localStorageService.isSupported) {
calcDoorsParams = localStorageService.get("calcDoorsParams");
if (calcDoorsParams && calcDoorsParams[id]) {
delete calcDoorsParams[id];
localStorageService.set("calcDoorsParams", calcDoorsParams);
}
orderInfo = localStorageService.get("orderInfo");
if (orderInfo && orderInfo[id]) {
orderInfo[id] = {
orderName: this.orderName,
orderPhone: this.orderPhone,
orderEmail: this.orderEmail,
orderAddress: this.orderAddress,
orderComment: ""
};
return localStorageService.set("orderInfo", orderInfo);
}
}
}
isArray(value) {
return value && typeof value === 'object' && typeof value.length === 'number' && typeof value.splice === 'function' && !value.propertyIsEnumerable('length');
}
loadDoorOrderInfo(id) {
var calcDoorsParams, orderInfo;
if (localStorageService.isSupported) {
orderInfo = localStorageService.get("orderInfo");
if (orderInfo && orderInfo[id]) {
this.orderName = orderInfo[id].orderName ? angular.copy(orderInfo[id].orderName) : "";
this.orderPhone = orderInfo[id].orderPhone ? angular.copy(orderInfo[id].orderPhone) : "";
this.orderEmail = orderInfo[id].orderEmail ? angular.copy(orderInfo[id].orderEmail) : "";
this.orderAddress = orderInfo[id].orderAddress ? angular.copy(orderInfo[id].orderAddress) : "";
this.orderComment = orderInfo[id].orderComment ? angular.copy(orderInfo[id].orderComment) : "";
if (typeof orderInfo[id].skipNextWatchTrigger !== "undefined") {
this.skipNextWatchTrigger = angular.copy(orderInfo[id].skipNextWatchTrigger);
} else {
this.skipNextWatchTrigger = true;
}
}
calcDoorsParams = localStorageService.get("calcDoorsParams");
if (calcDoorsParams && calcDoorsParams[id] && calcDoorsParams[id].version && (calcDoorsParams[id].version === config.version)) {
if (calcDoorsParams[id].selectedDoorData) {
this.selectedDoorData = angular.copy(calcDoorsParams[id].selectedDoorData);
delete this.selectedDoorData.eOId;
return this.calculateLayout(true);
} else {
return this.selectedDoorData = angular.copy(this.defaultSelectedDoorData);
}
} else {
return this.cleanup();
}
}
}
saveDoorOrderInfo(id, label, skipNextWatchTrigger) {
var calcDoorsParams, orderInfo;
if (localStorageService.isSupported) {
calcDoorsParams = localStorageService.get("calcDoorsParams");
if (!calcDoorsParams) {
calcDoorsParams = {};
}
calcDoorsParams[id] = {
selectedDoorData: this.selectedDoorData,
label: label,
time: new Date(),
version: config.version
};
orderInfo = localStorageService.get("orderInfo");
if (!orderInfo) {
orderInfo = {};
}
//null means current trigger state - ie do not recount if only order info (name, email etc) changed
if ((skipNextWatchTrigger === null) && orderInfo && orderInfo[id] && (typeof orderInfo[id].skipNextWatchTrigger !== "undefined")) {
skipNextWatchTrigger = orderInfo[id].skipNextWatchTrigger;
}
orderInfo[id] = {
orderName: this.orderName,
orderPhone: this.orderPhone,
orderEmail: this.orderEmail,
orderAddress: this.orderAddress,
orderComment: this.orderComment,
skipNextWatchTrigger: skipNextWatchTrigger
};
localStorageService.set("calcDoorsParams", calcDoorsParams);
return localStorageService.set("orderInfo", orderInfo);
}
}
AutoSaveData(skipNextWatchTrigger) {
if (localStorageService.isSupported) {
return this.saveDoorOrderInfo("AutoSavedCalcDoors", "Автоматическое сохранение", skipNextWatchTrigger);
}
}
confirmCleanup() {
this.fullOrderCleanup = false;
return $timeout(() => {
return angular.element(this.confirmCleanupModalId).data("backdrop", "static").modal("show");
});
}
cleanup(cleanupUrlParams = false) {
$timeout(() => {
return angular.element(this.confirmCleanupModalId).modal("hide");
});
this.selectedDoorData = angular.copy(this.defaultSelectedDoorData);
this.errors = [];
this.isSubmitting = false;
this.warnings = [];
this.orderComment = "";
this.orderNum = "";
if (this.fullOrderCleanup) {
this.orderName = "";
this.orderPhone = "";
this.orderAddress = "";
this.orderEmail = "";
}
this.removeDoorOrderInfo("AutoSavedCalcDoors");
this.date = new Date();
if (cleanupUrlParams && (window.location.href.indexOf('oid') > -1)) {
return window.location.replace(location.pathname);
}
}
openNotifyModal() {
return $timeout(() => {
return angular.element(this.notifyModalId).modal("show");
});
}
openSendOrderEmailModal() {
return $timeout(() => {
return angular.element(this.notifySendOrderEmailModalId).data("backdrop", "static").modal("show");
});
}
clearCalculateLayoutAjarRequestPromise() {
if (this.calculateLayoutAjarRequestPromise) {
this.calculateLayoutAjarRequestPromise.abort();
this.calculateLayoutAjarRequestPromise = null;
}
if (this.calculateLayoutAjarRequestTimeoutPromise) {
$timeout.cancel(this.calculateLayoutAjarRequestTimeoutPromise);
return this.calculateLayoutAjarRequestTimeoutPromise = null;
}
}
calculateLayout(immediateSync = false) {
var dataToSend;
if (immediateSync) { //immediate sync
this.clearPromises;
}
this.AutoSaveData(false);
if (!this.selectedDoorData.params.doorId) {
return;
}
dataToSend = {
selectedDoorData: this.selectedDoorData
};
if (config.savedOrderData) {
dataToSend.selectedDoorData.eOId = config.savedOrderData.eOId;
}
this.clearCalculateLayoutAjarRequestPromise();
this.calculateLayoutAjarRequestTimeoutPromise = $timeout(() => {
this.clearCalculateLayoutAjarRequestPromise();
this.notifyMessage = "Выполнение расчет заняло слишком много времени и было отменено. Пожалуйста, уточните параметры деталей и попробуйте снова.";
return this.openNotifyModal();
}, 115000);
this.isSubmitting = true;
return this.calculateLayoutAjarRequestPromise = $http.with_abort({
method: 'POST',
url: config.calcDoorsUrl,
data: dataToSend
}).then((response) => {
var data;
this.isSubmitting = false;
this.clearCalculateLayoutAjarRequestPromise();
$timeout(() => {
return angular.element(this.confirmStartCutOptimizeModalId).modal("hide");
});
if (response.data) {
data = response.data;
if (data.warnings) {
this.warnings = data.warnings;
} else {
this.warnings = [];
}
if (data.status === "success") {
if (data.selectedDoorData) {
this.selectedDoorData = data.selectedDoorData;
return this.AutoSaveData(true);
} else {
return this.selectedDoorData = angular.copy(this.defaultSelectedDoorData);
}
} else {
if (data.message) {
this.notifyMessage = data.message;
} else {
this.notifyMessage = $scope.utilities.getConfigLabel("dataLoadingError", true);
}
return this.openNotifyModal();
}
}
}).catch(() => {
this.isSubmitting = false;
if (data.warnings) {
this.warnings = data.warnings;
} else {
this.warnings = [];
}
this.clearCalculateLayoutAjarRequestPromise();
$timeout(() => {
return angular.element(this.confirmStartCutOptimizeModalId).modal("hide");
});
this.notifyMessage = $scope.utilities.getConfigLabel("dataLoadingError", true);
return this.openNotifyModal();
});
}
onDoorCountChange() {
if (this.selectedDoorData.params.manufacturer_id === "aristo") {
if (this.selectedDoorData.params.doorsCount > 0) {
return this.selectedDoorData.params.zagimDlyaShlegelya = parseInt(this.selectedDoorData.params.doorsCount) * 4;
}
}
}
onDoorChange() {
if (this.selectedDoorData.params.discount) {
this.selectedDoorData.params.discount = parseInt(this.selectedDoorData.params.discount);
this.selectedDoorData.params.discount = Math.max(0, Math.min(this.selectedDoorData.params.discount, 100));
}
if (this.skipNextWatchTrigger && (this.skipNextWatchTrigger === true)) { //ie after immediate sync after rotate
this.skipNextWatchTrigger = false;
return;
}
this.clearPromises();
return this.calculateLayoutPromise = $timeout(() => {
this.AutoSaveData(false);
return this.calculateLayout();
}, 1500);
}
bindWatches() {
if (typeof this.doorParamsWatcher === "function") {
this.doorParamsWatcher(); //unbind first
}
return this.doorParamsWatcher = $scope.$watch('calcDoors.selectedDoorData.params', $scope.calcDoors.onDoorChange, true);
}
bindDoorsCountWatches() {
if (typeof this.doorsCountWatcher === "function") {
this.doorsCountWatcher(); //unbind first
}
return this.doorsCountWatcher = $scope.$watch('calcDoors.selectedDoorData.params.doorsCount', $scope.calcDoors.onDoorCountChange, true);
}
unBindWatches() {
if (typeof this.doorParamsWatcher === "function") {
this.doorParamsWatcher();
}
if (typeof this.doorsCountWatcher === "function") {
return this.doorsCountWatcher();
}
}
printOrder() {
if (config.additionalActionsAllowed) {
if (!config.savedOrderData) {
return this.sendOrderEmailNotify("printOnly");
} else {
return this.printOrderConfirm(config.savedOrderData.printOrderUrl);
}
}
}
printOrderConfirm(printOrderUrl) {
var printOrderWindow;
if (printOrderUrl && (printOrderUrl.length > 0)) {
printOrderWindow = window.open(printOrderUrl, '_blank');
printOrderWindow.focus();
return $timeout(() => {
return printOrderWindow.print();
}, 1000);
}
}
sendOrderEmailNotify(branchId) {
var dataToSend;
if (!this.selectedDoorData.params.doorId || $scope.calcDoorsConfigForm.$invalid || !this.isActualPriceCorrect() || this.warnings.length) {
return;
}
if (this.isSubmitting) {
this.notifyMessage = $scope.utilities.getConfigLabel("orderSendManagerCalcIsActive");
this.openNotifyModal();
return;
}
if (!this.isSendOrderEmailSubmitting) {
this.isSendOrderEmailSubmitting = true;
if ((branchId === "printOnly") || (this.orderEmail && (this.orderEmail.length > 0)) || (this.orderPhone && (this.orderPhone.length > 0))) {
dataToSend = {
selectedDoorData: this.selectedDoorData,
orderName: this.orderName,
orderPhone: this.orderPhone,
orderEmail: this.orderEmail,
orderAddress: this.orderAddress,
orderComment: this.orderComment,
branchId: branchId
};
if (branchId === "printOnly") {
dataToSend.printOnly = true;
} else {
dataToSend.orderEmailNotify = true;
}
if (this.orderNum && (this.orderNum.length > 0) && this.actualPrice) {
dataToSend.actualPrice = this.actualPrice;
}
if (config.savedOrderData) {
dataToSend.eOId = config.savedOrderData.eOId;
}
return $http({
method: 'POST',
url: config.calcDoorsUrl,
data: dataToSend,
timeout: 60000
}).then((response) => {
var data;
this.isSendOrderEmailSubmitting = false;
if (response.data) {
data = response.data;
if (branchId !== "printOnly") {
if (data.orderEmailNotifySent && (data.orderEmailNotifySent === "success")) {
return this.openSendOrderEmailModal();
} else {
if (config.savedOrderData) {
this.notifyMessage = $scope.utilities.getConfigLabel("orderSaveManagerError", true);
} else {
this.notifyMessage = $scope.utilities.getConfigLabel("orderSendManagerError", true);
}
return this.openNotifyModal();
}
} else {
if (data.printOrderUrl) {
return this.printOrderConfirm(data.printOrderUrl);
} else {
this.notifyMessage = $scope.utilities.getConfigLabel("orderSaveManagerError", true);
return this.openNotifyModal();
}
}
}
}).catch((data) => {
this.isSendOrderEmailSubmitting = false;
if (branchId !== "printOnly") {
if (!data || (data && (data !== 'canceled'))) {
if (config.savedOrderData) {
this.notifyMessage = $scope.utilities.getConfigLabel("orderSaveManagerError", true);
} else {
this.notifyMessage = $scope.utilities.getConfigLabel("orderSendManagerError", true);
}
return this.openNotifyModal();
}
}
});
}
}
}
onOrderInfoChange() {
if (this.orderInfoSaveTimeoutPromise) {
$timeout.cancel(this.orderInfoSaveTimeoutPromise);
this.orderInfoSaveTimeoutPromise = null;
}
return this.orderInfoSaveTimeoutPromise = $timeout(() => {
return this.AutoSaveData(null);
}, this.orderInfoSaveTimeout);
}
bindOrderInfoWatches() {
$scope.$watch('calcDoors.orderName', $scope.calcDoors.onOrderInfoChange, true);
$scope.$watch('calcDoors.orderEmail', $scope.calcDoors.onOrderInfoChange, true);
$scope.$watch('calcDoors.orderPhone', $scope.calcDoors.onOrderInfoChange, true);
$scope.$watch('calcDoors.orderAddress', $scope.calcDoors.onOrderInfoChange, true);
return $scope.$watch('calcDoors.orderComment', $scope.calcDoors.onOrderInfoChange, true);
}
modalScrollTo(modalId, elementId) {
return $timeout(() => {
return angular.element(modalId + " .modal-body").scrollTo(elementId, 100, {
offset: {
top: -15
}
});
});
}
openSelectDoorConfigModal() {
this.selectDoorConfigModalData = angular.copy(this.selectedDoorData);
angular.element(this.selectDoorConfigModalId).modal("show");
return angular.element(this.selectDoorConfigModalId).on('shown.bs.modal', () => {
if (this.selectDoorConfigModalData.params.doorId > 0) {
this.modalScrollTo(this.selectDoorConfigModalId, "#selectDoorId" + this.selectDoorConfigModalData.params.doorId);
} else {
this.modalScrollTo(this.selectDoorConfigModalId, 0);
}
return $timeout(() => {
return lozad('.img-lazy').observe();
});
});
}
selectDoorId(door) {
if (!this.selectDoorConfigModalData.params) {
this.selectDoorConfigModalData.params = {};
}
this.selectDoorConfigModalData.params.doorId = angular.copy(door.id);
return this.selectDoorConfigModalData.params.manufacturer_id = angular.copy(door.manufacturer_id);
}
confirmDoorSelection() {
var currentDoorData, forceLayoutUpdate;
currentDoorData = angular.copy(this.selectedDoorData);
this.selectedDoorData = angular.copy(this.selectDoorConfigModalData);
if (!this.selectedDoorData.params) {
this.selectedDoorData.params = {};
}
forceLayoutUpdate = true;
if (currentDoorData && (this.selectedDoorData.params.doorId === currentDoorData.params.doorId)) {
forceLayoutUpdate = false;
}
this.calculateLayout(forceLayoutUpdate);
return $timeout(() => {
return angular.element(this.selectDoorConfigModalId).modal("hide");
});
}
getSelectedDoorColor(id) {
var defaultLabel, i, label, len, ref, selectedDoor, v;
defaultLabel = "Не выбран";
label = {
color: defaultLabel,
colorNapravlyaushayaVerh: defaultLabel,
colorNapravlyaushayaNiz: defaultLabel
};
if (id > 0) {
ref = config.doors;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === parseInt(id)) {
selectedDoor = v;
}
}
if (selectedDoor) {
label = {
color: selectedDoor.color,
colorNapravlyaushayaVerh: selectedDoor.colorNapravlyaushayaVerh,
colorNapravlyaushayaNiz: selectedDoor.colorNapravlyaushayaNiz
};
}
}
return label;
}
getSelectedDoorProfile(id) {
var i, label, len, ref, selectedDoor, v;
label = "Не выбран";
if (id > 0) {
ref = config.doors;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === parseInt(id)) {
selectedDoor = v;
}
}
if (selectedDoor) {
label = selectedDoor.profile;
}
}
return label;
}
getSelectedDoorVertHeight(id) {
var i, label, len, ref, selectedDoor, v;
label = {
profileVertHeight: 2400,
profileVertBelowLimit: 0,
profileVertHigherLimit: 0
};
if (id > 0) {
ref = config.doors;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === parseInt(id)) {
selectedDoor = v;
}
}
if (selectedDoor) {
label = {
profileVertHeight: selectedDoor.params.profileVertHeight,
profileVertBelowLimit: selectedDoor.params.profileVertBelowLimit,
profileVertHigherLimit: selectedDoor.params.profileVertHigherLimit
};
}
}
return label;
}
getManufacturerLimits(manufacturerId) {
var i, len, limits, ref, selectedManufacturer, v;
limits = {};
if (manufacturerId > 0) {
ref = config.doorsManufacturers;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === parseInt(manufacturerId)) {
selectedManufacturer = v;
}
}
if (selectedManufacturer) {
limits = selectedManufacturer.limits;
}
}
return limits;
}
isActualPriceCorrect() {
var result;
result = true;
if (this.orderNum && (this.orderNum.length > 0) && this.actualPrice) {
if (parseFloat(this.actualPrice) < parseFloat(this.selectedDoorData.order_calc_results.price.replaceAll(" ", ""))) {
result = false;
}
}
return result;
}
onFieldEnter(nextField) {
if (nextField) {
return $timeout(() => {
return angular.element('#' + nextField).focus().select();
});
}
}
};
calcDoorsApp.prototype.calculateLayoutPromise = null;
calcDoorsApp.prototype.calculateLayoutAjarRequestPromise = null;
calcDoorsApp.calculateLayoutAjarRequestTimeoutPromise = null;
calcDoorsApp.prototype.skipNextWatchTrigger = false;
calcDoorsApp.prototype.orderInfoSaveTimeoutPromise = null;
calcDoorsApp.prototype.orderInfoSaveTimeout = 1500;
calcDoorsApp.prototype.notifyModalId = "#notifyModal";
calcDoorsApp.prototype.notifySendOrderEmailModalId = "#notifySendOrderEmailModal";
calcDoorsApp.prototype.selectDoorConfigModalId = "#selectDoorConfigModal";
calcDoorsApp.prototype.confirmCleanupModalId = "#confirmCleanupModal";
calcDoorsApp.prototype.fullOrderCleanup = false;
calcDoorsApp.prototype.selectDoorConfigModalData = {};
calcDoorsApp.prototype.manufacturersSelect = null;
calcDoorsApp.prototype.isSendOrderEmailSubmitting = false;
calcDoorsApp.prototype.warnings = [];
calcDoorsApp.prototype.isSubmitting = false;
calcDoorsApp.prototype.orderName = "";
calcDoorsApp.prototype.orderEmail = "";
calcDoorsApp.prototype.orderPhone = "";
calcDoorsApp.prototype.orderAddress = "";
calcDoorsApp.prototype.defaultSelectedDoorData = {
params: {
manufacturer_id: null,
doorId: null,
height: "",
width: "",
discount: ""
},
order_calc_results: {
price: 0
}
};
calcDoorsApp.prototype.searchFilter = "";
window.onbeforeprint = () => {
//todo block browser print?
return null;
};
return calcDoorsApp;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout);
$scope.calcDoors = new calcDoorsApp();
$scope.calcDoors.bindWatches();
$scope.calcDoors.bindDoorsCountWatches();
return $scope.calcDoors.bindOrderInfoWatches();
}
]);
+290
View File
@@ -0,0 +1,290 @@
supersamApp.controller('CalcDoorsOrdersController', [
'$scope',
'$http',
'$timeout',
'config',
'$filter',
function($scope,
$http,
$timeout,
config,
$filter) {
var calcDoorsOrders;
calcDoorsOrders = (function() {
class calcDoorsOrders {
constructor() {
this.takeOrderModal = this.takeOrderModal.bind(this);
this.takeOrder = this.takeOrder.bind(this);
this.confirmTakeOrder = this.confirmTakeOrder.bind(this);
this.getOrdersList = this.getOrdersList.bind(this);
this.adminDeleteOrder = this.adminDeleteOrder.bind(this);
this.adminTakeOrderModal = this.adminTakeOrderModal.bind(this);
this.adminTakeOrder = this.adminTakeOrder.bind(this);
this.confirmAdminTakeOrder = this.confirmAdminTakeOrder.bind(this);
this.openOrderReadyDatepicker = this.openOrderReadyDatepicker.bind(this);
this.printOrder = this.printOrder.bind(this);
$scope.utilities.showContentOnLoad();
}
takeOrderModal(action) {
$timeout(() => {
return angular.element("#takeOrderModal").modal(action);
});
return $scope.takeOrderForm.$setPristine();
}
takeOrder(order) {
this.takeOrderModalData = angular.copy(order);
this.orderReadyDatepickerOptions.minDate = new Date(order.created);
this.takeOrderModalData.ready_date = new Date();
this.takeOrderModalData.ready_date.setDate(this.takeOrderModalData.ready_date.getDate() + parseInt(config.common.orderReadyDateInterval.value));
return this.takeOrderModal("show");
}
confirmTakeOrder() {
var dataToSend;
if (!this.isTakeOrderSubmitting) {
this.isTakeOrderSubmitting = true;
dataToSend = {
id: this.takeOrderModalData.id,
ready_date: this.takeOrderModalData.ready_date
};
return $http({
method: 'POST',
url: config.urls.calcDoorsTakeOrder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, key, order, ref;
this.isTakeOrderSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.orders.list;
for (key in ref) {
order = ref[key];
if (order.id === this.takeOrderModalData.id) {
order.manager_id = data.manager_id;
order.taken_date = data.taken_date;
order.ready_date = data.ready_date;
}
}
this.takeOrderModal("hide");
toastr.success("Данный заказ взят Вами на исполнение");
return window.location = config.urls.calcDoorsDownloadOrderFiles.replace('12345', this.takeOrderModalData.id);
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isTakeOrderSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
getOrdersList() {
var dataToSend;
if (!this.isLoading) {
this.isLoading = true;
dataToSend = {
month: config.orders.month,
year: config.orders.year,
select: config.orders.select,
branchId: config.orders.branchId,
managerId: config.orders.managerId
};
return $http({
method: 'POST',
url: config.urls.calcDoorsGetOrdersList,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
this.isLoading = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
config.orders = data.orders;
return $timeout(() => {
return $('[data-toggle="popover"]').popover();
});
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isLoading = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
adminDeleteOrder(adminDeleteOrder) {
var dataToSend;
if (!this.isTakeOrderSubmitting) {
if (confirm("Вы уверены, что хотите удалить данный заказ?")) {
this.isTakeOrderSubmitting = true;
dataToSend = {
id: adminDeleteOrder.id
};
return $http({
method: 'POST',
url: config.urls.calcDoorsAdminDeleteOrder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, dupKey, dupOrderNum, key, order, ref, ref1, ref2;
this.isTakeOrderSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.orders.list;
for (key in ref) {
order = ref[key];
if (order.possibleDuplicates) {
ref1 = order.possibleDuplicates;
for (dupKey in ref1) {
dupOrderNum = ref1[dupKey];
if (dupOrderNum === adminDeleteOrder.order_num) {
order.possibleDuplicates.splice(dupKey, 1);
}
}
}
}
ref2 = config.orders.list;
for (key in ref2) {
order = ref2[key];
if (order.id === adminDeleteOrder.id) {
config.orders.list.splice(key, 1);
}
}
return toastr.success("Заказ был успешно удалён");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isTakeOrderSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
adminTakeOrderModal(action) {
$timeout(() => {
return angular.element("#adminTakeOrderModal").modal(action);
});
return $scope.adminTakeOrderForm.$setPristine();
}
adminTakeOrder(order) {
this.adminTakeOrderModalData = angular.copy(order);
this.adminTakeOrderModalData.current_manager_id = angular.copy(order.manager_id);
if (!this.adminTakeOrderModalData.ready_date) {
this.adminTakeOrderModalData.ready_date = new Date();
this.adminTakeOrderModalData.ready_date.setDate(this.adminTakeOrderModalData.ready_date.getDate() + parseInt(config.common.orderReadyDateInterval.value));
}
this.orderReadyDatepickerOptions.minDate = new Date(order.created);
return this.adminTakeOrderModal("show");
}
confirmAdminTakeOrder() {
var dataToSend;
if (!this.isTakeOrderSubmitting) {
dataToSend = {
id: this.adminTakeOrderModalData.id,
manager_id: this.adminTakeOrderModalData.manager_id,
ready_date: this.adminTakeOrderModalData.ready_date
};
return $http({
method: 'POST',
url: config.urls.calcDoorsAdminTakeOrder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, key, order, ref;
this.isTakeOrderSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.orders.list;
for (key in ref) {
order = ref[key];
if (order.id === this.adminTakeOrderModalData.id) {
order.manager_id = data.manager_id;
order.taken_date = data.taken_date;
order.ready_date = data.ready_date;
}
}
this.adminTakeOrderModal("hide");
return toastr.success("Настройки заказа были успешно изменены");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isTakeOrderSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
openOrderReadyDatepicker() {
return this.orderReadyDatepicker.opened = true;
}
printOrder(printOrderUrl) {
var printOrderWindow;
if (printOrderUrl && (printOrderUrl.length > 0)) {
printOrderWindow = window.open(printOrderUrl, '_blank');
printOrderWindow.focus();
return $timeout(() => {
return printOrderWindow.print();
}, 1000);
}
}
};
calcDoorsOrders.prototype.orderReadyDatepicker = {
opened: false
};
calcDoorsOrders.prototype.orderReadyDatepickerOptions = {
formatYear: 'yyyy',
startingDay: 1,
showWeeks: false
};
return calcDoorsOrders;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout);
return $scope.orders = new calcDoorsOrders();
}
]);
@@ -0,0 +1 @@
"use strict";function _typeof(obj){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(obj){return typeof obj}:function _typeof(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}supersamApp.controller("CalcDoorsSettingsController",["$scope","$http","$timeout","config","$filter","Upload",function($scope,$http,$timeout,config,$filter,Upload){var calcDoorsSettings;return calcDoorsSettings=function(){var calcDoorsSettings=/*#__PURE__*/function(){function calcDoorsSettings(){_classCallCheck(this,calcDoorsSettings),this.saveSettingsGroup=this.saveSettingsGroup.bind(this),this.doorModal=this.doorModal.bind(this),this.addDoor=this.addDoor.bind(this),this.isArray=this.isArray.bind(this),this.editDoor=this.editDoor.bind(this),this.confirmDoorEdit=this.confirmDoorEdit.bind(this),this.deleteDoor=this.deleteDoor.bind(this),this.uploadImage=this.uploadImage.bind(this),$scope.utilities.showContentOnLoad(),config.sortFields={doors:{field:"color",direction:"asc"}}}return _createClass(calcDoorsSettings,[{key:"saveSettingsGroup",value:function saveSettingsGroup(group){var dataToSend,settings,_this=this,subId=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"";if(!this.isSubmitting)return this.isSubmitting=!0,dataToSend={action:"saveGroup",settingsGroup:group},"prices"===group?settings={prices:config.prices}:"common"===group?settings={common:config.common}:"manufacturer"===group?(settings={},settings["prices_"+subId]=config["prices_"+subId],settings["limits_"+subId]=config["limits_"+subId]):(settings={},settings[group]=config[group]),(dataToSend.settings=settings,$http({method:"POST",url:config.urls.calcDoorsSaveSettings,data:dataToSend,timeout:3e4}).then(function(response){var data;if(_this.isSubmitting=!1,response.data)if(data=response.data,data.status&&"success"===data.status){if(toastr.success("\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0431\u044B\u043B\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B."),$scope.utilities.setUpdateDates(group,data,config.calcDoors_updates),$scope[group+"EditForm"])return $scope[group+"EditForm"].$setPristine();}else if(data.warning&&toastr.warning(data.warning),data.error)return toastr.warning(data.error)})["catch"](function(){return _this.isSubmitting=!1,toastr.error(config.global_labels.defaultErrorMessage.value)}))}},{key:"doorModal",value:function doorModal(action){return $timeout(function(){return angular.element("#doorModal").modal(action)}),this.warning="",this.error="",$scope.doorForm.$setPristine()}},{key:"addDoor",value:function addDoor(){return this.doorModalData={is_active:!0,manufacturer_id:null,params:{profileVertHeight:2400}},this.doorModal("show")}},{key:"isArray",value:function isArray(value){return value&&"object"===_typeof(value)&&"number"==typeof value.length&&"function"==typeof value.splice&&!value.propertyIsEnumerable("length")}},{key:"editDoor",value:function editDoor(door){return this.doorModalData=angular.copy(door),this.doorModal("show")}},{key:"confirmDoorEdit",value:function confirmDoorEdit(){var _this2=this;if(!this.isSubmitting)return this.isSubmitting=!0,this.warning="",this.error="",$http({method:"POST",url:config.urls.calcDoorsAddUpdateDoor,data:this.doorModalData,timeout:3e4}).then(function(response){var data,door,key,ref,results;if(_this2.isSubmitting=!1,response.data){if(data=response.data,data.status&&"success"===data.status){if(config.doors=angular.copy(data.doors),$scope.utilities.setUpdateDates("doors",data,config.calcDoors_updates),_this2.doorModalData.id)return toastr.success("\u0414\u0430\u043D\u043D\u044B\u0435 \u0434\u0432\u0435\u0440\u0438 \u0431\u044B\u043B\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B"),_this2.doorModal("hide");for(key in toastr.success("\u0414\u0432\u0435\u0440\u044C \u0431\u044B\u043B\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430"),$scope.doorForm.$setPristine(),ref=config.doors,results=[],ref)door=ref[key],door.id===data.newDoorId?results.push(_this2.doorModalData=angular.copy(door)):results.push(void 0);return results}if(data.warning&&(_this2.warning=data.warning),data.error)return _this2.error=data.error}})["caLine truncated
@@ -0,0 +1 @@
"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}supersamApp.controller("CalcDoorsStatisticsController",["$scope","$http","$timeout","config","$filter",function($scope,$http,$timeout,config,$filter){var calcDoorsStatistics;return calcDoorsStatistics=function(){var calcDoorsStatistics=/*#__PURE__*/function(){function calcDoorsStatistics(){_classCallCheck(this,calcDoorsStatistics),this.getStatisticsData=this.getStatisticsData.bind(this),$scope.utilities.showContentOnLoad(),config.sortFields={statistics_clients:{field:"name",direction:"asc"}}}return _createClass(calcDoorsStatistics,[{key:"getStatisticsData",value:function getStatisticsData(){var dataToSend,_this=this;if(!this.isLoading)return this.isLoading=!0,dataToSend={year:config.statistics.year,select:config.statistics.select},$http({method:"POST",url:config.urls.calcDoorsGetStatisticsData,data:dataToSend,timeout:3e4}).then(function(response){var data;if(_this.isLoading=!1,response.data){if(data=response.data,data.status&&"success"===data.status)return config.statistics=data.statistics;if(config.statistics.data=!1,data.warning&&toastr.warning(data.warning),data.error)return toastr.warning(data.error)}})["catch"](function(){return config.statistics.data=!1,_this.isLoading=!1,toastr.error(config.global_labels.defaultErrorMessage.value)})}}]),calcDoorsStatistics}();return calcDoorsStatistics.prototype.isLoading=!1,calcDoorsStatistics.prototype.showEmptyRows=!0,calcDoorsStatistics}.call(this),$scope.config=config,$scope.utilities=new UtilitiesClass(config,$filter,$timeout),$scope.statistics=new calcDoorsStatistics}]);
+1
View File
@@ -0,0 +1 @@
"use strict";var supersamApp;supersamApp=angular.module("supersamApp",["LocalStorageModule","ui.mask"]),supersamApp.config(["$httpProvider","localStorageServiceProvider",function($httpProvider,localStorageServiceProvider){return $httpProvider.defaults.headers.common["X-Requested-With"]="XMLHttpRequest",localStorageServiceProvider.setPrefix("supersamApp").setDefaultToCookie(!1).setStorageType("localStorage")}]).config(["uiMask.ConfigProvider",function(uiMaskConfigProvider){return uiMaskConfigProvider.clearOnBlur(!1),uiMaskConfigProvider.clearOnBlurPlaceholder(!0)}]),$(function(){return $("#notifyModal").on("shown.bs.modal",function(){return $(this).find("button").focus()}),$("[data-toggle=\"popover\"]").popover()}),String.prototype.replaceAll=function(target,replacement){return this.split(target).join(replacement)};
+1
View File
@@ -0,0 +1 @@
"use strict";var supersamApp;supersamApp=angular.module("supersamApp",["LocalStorageModule","ui.mask","ui.bootstrap"]),supersamApp.config(["$httpProvider","localStorageServiceProvider",function($httpProvider,localStorageServiceProvider){return $httpProvider.defaults.headers.common["X-Requested-With"]="XMLHttpRequest",localStorageServiceProvider.setPrefix("supersamApp").setDefaultToCookie(!1).setStorageType("localStorage")}]).config(["uiMask.ConfigProvider",function(uiMaskConfigProvider){return uiMaskConfigProvider.clearOnBlur(!1),uiMaskConfigProvider.clearOnBlurPlaceholder(!0)}]),$(function(){return $("#notifyModal").on("shown.bs.modal",function(){return $(this).find("button").focus()}),$("[data-toggle=\"popover\"]").popover()}),String.prototype.replaceAll=function(target,replacement){return this.split(target).join(replacement)};
+1
View File
@@ -0,0 +1 @@
"use strict";var supersamApp,timeClock;supersamApp=angular.module("supersamApp",["ui.mask","ngFileUpload","ui.bootstrap","summernote"]),supersamApp.config(["$httpProvider",function($httpProvider){return $httpProvider.defaults.headers.common["X-Requested-With"]="XMLHttpRequest",$httpProvider.interceptors.push("HttpInterceptor")}]).config(["uiMask.ConfigProvider",function(uiMaskConfigProvider){return uiMaskConfigProvider.clearOnBlur(!1),uiMaskConfigProvider.clearOnBlurPlaceholder(!0)}]),timeClock=function timeClock(){var f_date,minutes,monthNames,now;return setTimeout("timeClock()",1e4),now=new Date,monthNames=["\u044F\u043D\u0432","\u0444\u0435\u0432","\u043C\u0430\u0440","\u0430\u043F\u0440","\u043C\u0430\u044F","\u0438\u044E\u043D","\u0438\u044E\u043B","\u0430\u0432\u0433","\u0441\u0435\u043D","\u043E\u043A\u0442","\u043D\u043E\u044F","\u0434\u0435\u043A"],minutes=now.getMinutes(),10>minutes&&(minutes="0"+minutes),f_date=now.getDate()+" "+monthNames[now.getMonth()]+" "+now.getFullYear()+", "+now.getHours()+":"+minutes,$("span.current-time").html(f_date),$("[data-toggle=\"popover\"]").popover()},$(function(){return timeClock(),toastr.options.preventDuplicates=!0});
+1
View File
@@ -0,0 +1 @@
"use strict";var supersamApp;supersamApp=angular.module("supersamApp",[]),supersamApp.config(["$httpProvider",function($httpProvider){return $httpProvider.defaults.headers.common["X-Requested-With"]="XMLHttpRequest",$httpProvider.interceptors.push("HttpInterceptor")}]);
+41
View File
@@ -0,0 +1,41 @@
function replaceToRus(str) {
let replacer = {
"q": "й", "w": "ц", "e": "у", "r": "к", "t": "е", "y": "н", "u": "г",
"i": "ш", "o": "щ", "p": "з", "[": "х", "]": "ъ", "a": "ф", "s": "ы",
"d": "в", "f": "а", "g": "п", "h": "р", "j": "о", "k": "л", "l": "д",
";": "ж", "'": "э", "z": "я", "x": "ч", "c": "с", "v": "м", "b": "и",
"n": "т", "m": "ь", ",": "б", ".": "ю",
"/": ".", '@': '"', '#': '№', '$': ';', '^': ':', '&': '?', '?': ',',
};
for(let i=0; i < str.length; i++){
if(replacer[str[i]] != undefined){
str = str.replace(str[i], replacer[str[i]]);
}
}
return str;
}
function replaceToEng(str) {
let replacer = {
"й": "q", "ц": "w", "у": "e", "к": "r", "е": "t", "н": "y", "г": "u",
"ш": "i", "щ": "o", "з": "p", "х": "[", "ъ": "]", "ф": "a", "ы": "s",
"в": "d", "а": "f", "п": "g", "р": "h", "о": "j", "л": "k", "д": "l",
"ж": ";", "э": "'", "я": "z", "ч": "x", "с": "c", "м": "v", "и": "b",
"т": "n", "ь": "m", "б": ",", "ю": ".",
".": "/", '"': '@', '№': '#', ';': '$', ':': '^', '?': '&', ',': '?',
};
for(let i=0; i < str.length; i++){
if(replacer[str[i]] != undefined){
str = str.replace(str[i], replacer[str[i]]);
}
}
return str;
}
function escapeRegExp(str) {
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
}
File diff suppressed because it is too large. Load diff
+256
View File
@@ -0,0 +1,256 @@
supersamApp.controller('CutOrdersController', [
'$scope',
'$http',
'$timeout',
'config',
'$filter',
function($scope,
$http,
$timeout,
config,
$filter) {
var cutOrders;
cutOrders = (function() {
class cutOrders {
constructor() {
this.takeOrder = this.takeOrder.bind(this);
this.getOrdersList = this.getOrdersList.bind(this);
this.adminDeleteOrder = this.adminDeleteOrder.bind(this);
this.adminTakeOrderModal = this.adminTakeOrderModal.bind(this);
this.adminTakeOrder = this.adminTakeOrder.bind(this);
this.confirmAdminTakeOrder = this.confirmAdminTakeOrder.bind(this);
this.printOrder = this.printOrder.bind(this);
$scope.utilities.showContentOnLoad();
}
takeOrder(takeOrder) {
var dataToSend;
if (!this.isTakeOrderSubmitting) {
if (confirm("Вы уверены, что хотите взять на исполнение данный заказ?")) {
this.isTakeOrderSubmitting = true;
dataToSend = {
id: takeOrder.id
};
return $http({
method: 'POST',
url: config.urls.cutTakeOrder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, key, order, ref;
this.isTakeOrderSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.orders.list;
for (key in ref) {
order = ref[key];
if (order.id === takeOrder.id) {
order.manager_id = data.manager_id;
order.taken_date = data.taken_date;
}
}
toastr.success("Данный заказ взят Вами на исполнение");
return window.location = config.urls.cutDownloadOrderFiles.replace('12345', takeOrder.id);
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isTakeOrderSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
getOrdersList() {
var dataToSend;
if (!this.isLoading) {
this.isLoading = true;
dataToSend = {
month: config.orders.month,
year: config.orders.year,
select: config.orders.select,
branchId: config.orders.branchId,
managerId: config.orders.managerId
};
return $http({
method: 'POST',
url: config.urls.cutGetOrdersList,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
this.isLoading = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
config.orders = data.orders;
return $timeout(() => {
return $('[data-toggle="popover"]').popover();
});
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isLoading = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
adminDeleteOrder(adminDeleteOrder) {
var dataToSend;
if (!this.isTakeOrderSubmitting) {
if (confirm("Вы уверены, что хотите удалить данный заказ?")) {
this.isTakeOrderSubmitting = true;
dataToSend = {
id: adminDeleteOrder.id
};
return $http({
method: 'POST',
url: config.urls.cutAdminDeleteOrder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, dupKey, dupOrderNum, key, order, ref, ref1, ref2;
this.isTakeOrderSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.orders.list;
for (key in ref) {
order = ref[key];
if (order.possibleDuplicates) {
ref1 = order.possibleDuplicates;
for (dupKey in ref1) {
dupOrderNum = ref1[dupKey];
if (dupOrderNum === adminDeleteOrder.order_num) {
order.possibleDuplicates.splice(dupKey, 1);
}
}
}
}
ref2 = config.orders.list;
for (key in ref2) {
order = ref2[key];
if (order.id === adminDeleteOrder.id) {
config.orders.list.splice(key, 1);
}
}
return toastr.success("Заказ был успешно удалён");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isTakeOrderSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
adminTakeOrderModal(action) {
$timeout(() => {
return angular.element("#adminTakeOrderModal").modal(action);
});
return $scope.adminTakeOrderForm.$setPristine();
}
adminTakeOrder(order) {
this.adminTakeOrderModalData = angular.copy(order);
this.adminTakeOrderModalData.current_manager_id = angular.copy(order.manager_id);
return this.adminTakeOrderModal("show");
}
confirmAdminTakeOrder() {
var dataToSend;
if (!this.isTakeOrderSubmitting) {
dataToSend = {
id: this.adminTakeOrderModalData.id,
manager_id: this.adminTakeOrderModalData.manager_id
};
return $http({
method: 'POST',
url: config.urls.cutAdminTakeOrder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, key, order, ref;
this.isTakeOrderSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.orders.list;
for (key in ref) {
order = ref[key];
if (order.id === this.adminTakeOrderModalData.id) {
order.manager_id = data.manager_id;
order.taken_date = data.taken_date;
}
}
this.adminTakeOrderModal("hide");
return toastr.success("Настройки заказа были успешно изменены");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isTakeOrderSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
printOrder(printOrderUrl) {
var printOrderWindow;
if (printOrderUrl && (printOrderUrl.length > 0)) {
printOrderWindow = window.open(printOrderUrl, '_blank');
printOrderWindow.focus();
return $timeout(() => {
return printOrderWindow.print();
}, 1000);
}
}
};
cutOrders.prototype.isLoading = false;
cutOrders.prototype.isTakeOrderSubmitting = false;
cutOrders.prototype.adminTakeOrderModalData = {};
return cutOrders;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout);
return $scope.orders = new cutOrders();
}
]);
+1
View File
@@ -0,0 +1 @@
"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}supersamApp.controller("CutSettingsController",["$scope","$http","$timeout","config","$filter","Upload",function($scope,$http,$timeout,config,$filter,Upload){var cutSettings;return cutSettings=function(){var cutSettings=/*#__PURE__*/function(){function cutSettings(){_classCallCheck(this,cutSettings),this.getSheetFullDimensions=this.getSheetFullDimensions.bind(this),this.saveSettingsGroup=this.saveSettingsGroup.bind(this),this.borderDimensionModal=this.borderDimensionModal.bind(this),this.addBorderDimension=this.addBorderDimension.bind(this),this.editBorderDimension=this.editBorderDimension.bind(this),this.confirmBorderDimensionEdit=this.confirmBorderDimensionEdit.bind(this),this.deleteBorderDimension=this.deleteBorderDimension.bind(this),this.sheetDimensionModal=this.sheetDimensionModal.bind(this),this.addSheetDimension=this.addSheetDimension.bind(this),this.editSheetDimension=this.editSheetDimension.bind(this),this.confirmSheetDimensionEdit=this.confirmSheetDimensionEdit.bind(this),this.deleteSheetDimension=this.deleteSheetDimension.bind(this),this.sheetModal=this.sheetModal.bind(this),this.addSheet=this.addSheet.bind(this),this.editSheet=this.editSheet.bind(this),this.confirmSheetEdit=this.confirmSheetEdit.bind(this),this.deleteSheet=this.deleteSheet.bind(this),this.borderModal=this.borderModal.bind(this),this.addBorder=this.addBorder.bind(this),this.editBorder=this.editBorder.bind(this),this.confirmBorderEdit=this.confirmBorderEdit.bind(this),this.deleteBorder=this.deleteBorder.bind(this),this.deleteBorderAvailableDimension=this.deleteBorderAvailableDimension.bind(this),this.addBorderAvailableDimension=this.addBorderAvailableDimension.bind(this),this.isBorderDimensionAlreadyAdded=this.isBorderDimensionAlreadyAdded.bind(this),this.getBorderDimensionLabel=this.getBorderDimensionLabel.bind(this),this.uploadImage=this.uploadImage.bind(this),$scope.utilities.showContentOnLoad(),config.sortFields={sheets:{field:"label",direction:"asc"},borders:{field:"label",direction:"asc"},borderDimensions:{field:"label",direction:"asc"},sheetDimensions:{field:"id",direction:"asc"}}}return _createClass(cutSettings,[{key:"getSheetFullDimensions",value:function getSheetFullDimensions(sheetDimensionId){var i,label,len,ref,selectedSheetDimensions,v;for(label="",ref=config.sheetDimensions,(i=0,len=ref.length);i<len;i++)v=ref[i],v.id===sheetDimensionId&&(selectedSheetDimensions=v);return selectedSheetDimensions&&(label=selectedSheetDimensions.width+"x"+selectedSheetDimensions.height+"x"+selectedSheetDimensions.thick),label}},{key:"saveSettingsGroup",value:function saveSettingsGroup(group){var dataToSend,settings,_this=this;if(!this.isSubmitting)return this.isSubmitting=!0,dataToSend={action:"saveGroup",settingsGroup:group},"prices"===group?settings={prices:config.prices,groovePrices:config.groovePrices,cornerPrices:config.cornerPrices}:"common"===group?settings={common:config.common,cornerDefaults:config.cornerDefaults,grooveDefaults:config.grooveDefaults}:(settings={},settings[group]=config[group]),(dataToSend.settings=settings,$http({method:"POST",url:config.urls.cutSaveSettings,data:dataToSend,timeout:3e4}).then(function(response){var data;if(_this.isSubmitting=!1,response.data){if(data=response.data,data.status&&"success"===data.status)return toastr.success("\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0431\u044B\u043B\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B."),$scope.utilities.setUpdateDates(group,data,config.cut_updates),$scope[group+"EditForm"].$setPristine();if(data.warning&&toastr.warning(data.warning),data.error)return toastr.warning(data.error)}})["catch"](function(){return _this.isSubmitting=!1,toastr.error(config.global_labels.defaultErrorMessage.value)}))}},{key:"borderDimensionModal",value:function borderDimensionModal(action){return $timeout(function(){return angular.element("#borderDimensionModal").modal(action)}),this.warning="",this.error="",$scope.borderDimensionForm.$setPristine()}},{key:"addBorderDimension",value:function addBorderDimension(){return this.borderDimensionModalData={is_active:!0},this.borderDimensionModal("show")}},{key:"editBorderDimension",value:function editBorderDimension(borderDimension){return this.borderDimensionModalData=angular.copy(borderDimension),this.borderDimensionModalData.current_is_Line truncated
+1
View File
@@ -0,0 +1 @@
"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}supersamApp.controller("CutStatisticsController",["$scope","$http","$timeout","config","$filter",function($scope,$http,$timeout,config,$filter){var cutStatistics;return cutStatistics=function(){var cutStatistics=/*#__PURE__*/function(){function cutStatistics(){_classCallCheck(this,cutStatistics);var i,len,ref,sheet;for(this.getStatisticsData=this.getStatisticsData.bind(this),this.getBorderDimensionLabel=this.getBorderDimensionLabel.bind(this),$scope.utilities.showContentOnLoad(),config.sortFields={statistics_sheets:{field:"label",direction:"asc"},statistics_borders:{field:"label",direction:"asc"},statistics_clients:{field:"name",direction:"asc"}},ref=config.sheets,(i=0,len=ref.length);i<len;i++)sheet=ref[i],sheet.total_decimal=config.statistics.data[sheet.id]&&config.statistics.data[sheet.id].total_decimal?angular.copy(config.statistics.data[sheet.id].total_decimal):0}return _createClass(cutStatistics,[{key:"getStatisticsData",value:function getStatisticsData(){var dataToSend,_this=this;if(!this.isLoading)return this.isLoading=!0,dataToSend={year:config.statistics.year,select:config.statistics.select,showEmptyRows:this.showEmptyRows},$http({method:"POST",url:config.urls.cutGetStatisticsData,data:dataToSend,timeout:3e4}).then(function(response){var border,data,i,j,len,len1,ref,ref1,results,sheet;if(_this.isLoading=!1,response.data)if(data=response.data,data.status&&"success"===data.status){if(config.statistics=data.statistics,"sheets"===config.statistics.select)for(ref=config.sheets,i=0,len=ref.length;i<len;i++)sheet=ref[i],sheet.total_decimal=config.statistics.data[sheet.id]&&config.statistics.data[sheet.id].total_decimal?angular.copy(config.statistics.data[sheet.id].total_decimal):0;if("borders"===config.statistics.select){for(ref1=config.borders,results=[],(j=0,len1=ref1.length);j<len1;j++)border=ref1[j],config.statistics.data[border.id]&&config.statistics.data[border.id].total_decimal?results.push(border.total_decimal=angular.copy(config.statistics.data[border.id].total_decimal)):results.push(border.total_decimal=0);return results}}else if(config.statistics.data=!1,data.warning&&toastr.warning(data.warning),data.error)return toastr.warning(data.error)})["catch"](function(){return config.statistics.data=!1,_this.isLoading=!1,toastr.error(config.global_labels.defaultErrorMessage.value)})}},{key:"getBorderDimensionLabel",value:function getBorderDimensionLabel(heightId){var i,label,len,ref,selectedHeight,v;for(label="",ref=config.borderDimensions,(i=0,len=ref.length);i<len;i++)v=ref[i],v.id===heightId&&(selectedHeight=v);return selectedHeight&&(label=selectedHeight.label),label}}]),cutStatistics}();return cutStatistics.prototype.isLoading=!1,cutStatistics.prototype.showEmptyRows=!0,cutStatistics}.call(this),$scope.config=config,$scope.utilities=new UtilitiesClass(config,$filter,$timeout),$scope.statistics=new cutStatistics}]);
+713
View File
@@ -0,0 +1,713 @@
var UtilitiesClass;
(function(module) {
module.directive('clickPrevent', function() {
return function(scope, element) {
return element.on('click', function(e) {
e.preventDefault();
return e.stopPropagation();
});
};
});
module.directive('ngEnter', function() {
return function(scope, element, attrs) {
return element.bind("keydown keypress", function(event) {
if (event.which === 13) {
scope.$apply(function() {
return scope.$eval(attrs.ngEnter);
});
return event.preventDefault();
}
});
};
});
module.directive('digitsOnly', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function(inputValue) {
var transformedInput;
if (inputValue && (typeof inputValue !== "String")) {
inputValue = inputValue.toString();
}
transformedInput = inputValue ? inputValue.replace(/[^\d]/g, '') : null;
if (transformedInput !== inputValue) {
modelCtrl.$setViewValue(transformedInput);
modelCtrl.$render();
}
return transformedInput;
});
}
};
});
module.directive('numbersOnly', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function(inputValue) {
var transformedInput;
if (inputValue && (typeof inputValue !== "String")) {
inputValue = inputValue.toString();
}
transformedInput = inputValue ? inputValue.replace(/[^\d.]/g, '') : null;
if (transformedInput !== inputValue) {
modelCtrl.$setViewValue(transformedInput);
modelCtrl.$render();
}
return transformedInput;
});
}
};
});
module.directive('floatingNumberOnly', function() {
return {
require: 'ngModel',
link: function(scope, ele, attr, ctrl) {
ctrl.$parsers.push(function(inputValue) {
var dotCount, dotPattern, newInput, newInputLength, pattern, result;
pattern = new RegExp('(^[0-9]{1,9})+(.[0-9]{1,2})?$', 'g');
if (inputValue === '') {
return '';
}
dotPattern = /^[.]*$/;
if (dotPattern.test(inputValue)) {
ctrl.$setViewValue('');
ctrl.$render();
return '';
}
newInput = inputValue.replace(/[^0-9.]/g, '');
if (newInput !== inputValue) {
ctrl.$setViewValue(newInput);
ctrl.$render();
}
result = void 0;
dotCount = void 0;
newInputLength = newInput.length;
if (result = pattern.test(newInput)) {
dotCount = newInput.split('.').length - 1;
if (dotCount === 0 && newInputLength > 9) {
newInput = newInput.slice(0, newInputLength - 1);
ctrl.$setViewValue(newInput);
ctrl.$render();
}
} else {
dotCount = newInput.split('.').length - 1;
if (newInputLength > 0 && dotCount > 1) {
newInput = newInput.slice(0, newInputLength - 1);
}
if (newInput.slice(newInput.indexOf('.') + 1).length > 2) {
newInput = newInput.slice(0, newInputLength - 1);
}
ctrl.$setViewValue(newInput);
ctrl.$render();
}
return newInput;
});
}
};
});
module.directive('inputMask', function() {
return {
restrict: 'A',
link: function(scope, elem, attr, ctrl) {
if (attr.inputMask) {
elem.mask(attr.inputMask);
}
}
};
});
module.filter('trustAs', [
'$sce',
function($sce) {
return function(input,
type) {
if (typeof input === 'string') {
return $sce.trustAs(type || 'html',
input);
}
return '';
};
}
]);
module.config(function($provide) {
$provide.decorator('$http', function($delegate, $q) {
$delegate.with_abort = function(options) {
var abort_defer, do_throw_error, http_promise, mod_promise, new_options, real_then, then_function;
abort_defer = $q.defer();
new_options = angular.copy(options);
new_options.timeout = abort_defer.promise;
do_throw_error = false;
mod_promise = function(promise) {
promise.then = then_function;
promise.abort = function(do_throw_error_param = false) {
do_throw_error = do_throw_error_param;
abort_defer.resolve();
};
return promise;
};
http_promise = $delegate(new_options).then((function(response) {
return response;
}), function(error) {
if (do_throw_error) {
return $q.reject(error);
}
return $q(function() {
return null;
});
});
// prevent promise chain propagation
real_then = http_promise.then;
then_function = function() {
return mod_promise(real_then.apply(this, arguments));
};
return mod_promise(http_promise);
};
return $delegate;
});
});
module.factory('HttpInterceptor', [
'$q',
'$timeout',
function($q,
$timeout) {
return {
responseError: function(rejection) {
if (rejection.status === 403) {
toastr.warning("Пользователь не авторизован!");
$timeout(() => {
return window.location.href = "/manager/login";
},
1200);
return $q(() => {
return null;
});
}
return $q.reject(rejection);
}
};
}
]);
module.filter('orderObjectBy', function() {
return function(data, order) {
var items, objectKey;
if (!angular.isObject(data)) {
return data;
}
items = [];
for (objectKey in data) {
if (data.hasOwnProperty(objectKey)) {
items.push(data[objectKey]);
}
}
items.sort(function(a, b) {
var tmpa, tmpb;
tmpa = a[order.field];
tmpb = b[order.field];
if (tmpa > tmpb) {
return 1;
} else {
return -1;
}
});
if (order.reverse) {
items.reverse();
}
return items;
};
});
return module.filter('filterData', function() {
return function(items, filter) {
var filtered, searchTranslatedToEng, searchTranslatedToRus, searches;
filtered = [];
if (filter && (filter.length > 0)) {
searches = [filter.toLowerCase()];
searchTranslatedToRus = replaceToRus(searches[0]);
searchTranslatedToEng = replaceToEng(searches[0]);
if (searchTranslatedToRus !== searches[0]) {
searches.push(escapeRegExp(searchTranslatedToRus));
}
if (searchTranslatedToEng !== searches[0]) {
searches.push(escapeRegExp(searchTranslatedToEng));
}
searches[0] = escapeRegExp(searches[0]);
filtered = [];
angular.forEach(items, function(item) {
var i, itemFiltered, len, results, search;
itemFiltered = false;
results = [];
for (i = 0, len = searches.length; i < len; i++) {
search = searches[i];
if (!itemFiltered) {
if (item.label && item.label.toLowerCase().match(search) || item.color && item.color.toLowerCase().match(search) || item.profile && item.profile.toLowerCase().match(search)) {
filtered.push(item);
results.push(itemFiltered = true);
} else {
results.push(void 0);
}
} else {
results.push(void 0);
}
}
return results;
});
} else {
filtered = items;
}
return filtered;
};
});
})(supersamApp);
UtilitiesClass = class UtilitiesClass {
constructor(config, $filter = null, $timeout, $http = null) {
this.getLastUpdate = this.getLastUpdate.bind(this);
this.getYesNoLabel = this.getYesNoLabel.bind(this);
this.setUpdateDates = this.setUpdateDates.bind(this);
this.getBorderImageById = this.getBorderImageById.bind(this);
this.getFasadBorderImageById = this.getFasadBorderImageById.bind(this);
this.getDoorImageById = this.getDoorImageById.bind(this);
this.getSheetImageById = this.getSheetImageById.bind(this);
this.getFasadSheetImageById = this.getFasadSheetImageById.bind(this);
this.showContentOnLoad = this.showContentOnLoad.bind(this);
this.getBranchNameById = this.getBranchNameById.bind(this);
this.isAppAvailableToUser = this.isAppAvailableToUser.bind(this);
this.addAppAvailableToUser = this.addAppAvailableToUser.bind(this);
this.removeAppAvailableToUser = this.removeAppAvailableToUser.bind(this);
this.getConfigLabel = this.getConfigLabel.bind(this);
this.getDoorManufacturer = this.getDoorManufacturer.bind(this);
this.getUserNameById = this.getUserNameById.bind(this);
this.getCreatedForUserNameById = this.getCreatedForUserNameById.bind(this);
this.getAvailableToOrderManagerNameById = this.getAvailableToOrderManagerNameById.bind(this);
this.formatFileSize = this.formatFileSize.bind(this);
this.getSelectedSheetsInStock = this.getSelectedSheetsInStock.bind(this);
this.sortBy = this.sortBy.bind(this);
this.getSortByClass = this.getSortByClass.bind(this);
this.getSortParams = this.getSortParams.bind(this);
this.getSmsStatusClass = this.getSmsStatusClass.bind(this);
this.getPaymentStatusClass = this.getPaymentStatusClass.bind(this);
this.getSmsRuBalance = this.getSmsRuBalance.bind(this);
this.config = config;
this.filter = $filter;
this.timeout = $timeout;
this.http = $http;
this.smsRuBalance = null;
this.smsRuBalanceIsLoading = false;
this.smsRuBalanceIsLoaded = false;
}
getLastUpdate(app = "", group) {
var configField, i, label, len, ref, ts, user, v;
label = "";
configField = "updates";
if (app !== "") {
configField = app + "_" + configField;
}
if (this.config[configField] && this.config[configField][group + 'LastUpdateDate']) {
ts = new Date(this.config[configField][group + 'LastUpdateDate'].value * 1000);
label = 'Последнее обновление ' + this.filter('date')(ts, 'dd-MM-yyyy в HH:mm');
if (this.config[configField][group + 'LastUpdateManagerId']) {
ref = this.config.users;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === parseInt(this.config[configField][group + 'LastUpdateManagerId'].value)) {
user = v;
}
}
if (user) {
label += " пользователем " + user.name;
}
}
}
return label;
}
getYesNoLabel(data) {
if (data === true) {
return 'Да';
} else {
return 'Нет';
}
}
setUpdateDates(group, data, updates) {
if (data[group + 'LastUpdateDate']) {
if (!updates[group + 'LastUpdateDate']) {
updates[group + 'LastUpdateDate'] = {};
}
if (!updates[group + 'LastUpdateManagerId']) {
updates[group + 'LastUpdateManagerId'] = {};
}
updates[group + 'LastUpdateDate'].value = angular.copy(data[group + 'LastUpdateDate']);
return updates[group + 'LastUpdateManagerId'].value = angular.copy(data[group + 'LastUpdateManagerId']);
}
}
getBorderImageById(borderId) {
var i, image, len, ref, selectedBorder, v;
image = '';
if (borderId) {
ref = this.config.borders;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === borderId) {
selectedBorder = v;
}
}
if (selectedBorder && selectedBorder.image) {
image = '/img/borders/' + selectedBorder.image;
}
}
return image;
}
getFasadBorderImageById(borderId) {
var i, image, len, ref, selectedBorder, v;
image = '';
if (borderId) {
ref = this.config.borders;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === borderId) {
selectedBorder = v;
}
}
if (selectedBorder && selectedBorder.image) {
image = '/img/fasad_borders/' + selectedBorder.image;
}
}
return image;
}
getDoorImageById(doorId) {
var i, image, len, ref, selectedDoor, v;
image = '';
if (doorId) {
ref = this.config.doors;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === doorId) {
selectedDoor = v;
}
}
if (selectedDoor) {
if (selectedDoor.image) {
image = '/img/doors/' + selectedDoor.image;
}
}
}
return image;
}
getSheetImageById(sheetId, type = 'image') {
var i, image, len, ref, selectedSheet, v;
image = '';
if (sheetId) {
ref = this.config.sheets;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === sheetId) {
selectedSheet = v;
}
}
if (selectedSheet) {
if (type === 'image') {
if (selectedSheet.image) {
image = '/img/sheets/' + selectedSheet.image;
}
} else {
if (selectedSheet.thumb) {
image = '/img/sheet_thumbs/' + selectedSheet.thumb;
}
}
}
}
return image;
}
getFasadSheetImageById(sheetId, type = 'image') {
var i, image, len, ref, selectedSheet, v;
image = '';
if (sheetId) {
ref = this.config.sheets;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === sheetId) {
selectedSheet = v;
}
}
if (selectedSheet) {
if (type === 'image') {
if (selectedSheet.image) {
image = '/img/fasad_sheets/' + selectedSheet.image;
}
} else {
if (selectedSheet.thumb) {
image = '/img/fasad_sheet_thumbs/' + selectedSheet.thumb;
}
}
}
}
return image;
}
showContentOnLoad() {
return this.timeout(() => {
return angular.element('.hidden-on-load').removeClass('hidden-on-load');
});
}
getBranchNameById(branchId) {
var branch, i, len, ref, selectedBranch, v;
branch = '';
if (branchId) {
ref = this.config.branches;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === branchId) {
selectedBranch = v;
}
}
if (selectedBranch && selectedBranch.label) {
branch = selectedBranch.label;
}
}
return branch;
}
isAppAvailableToUser(availableApps, appId) {
var result;
result = false;
if (availableApps && (availableApps.indexOf(appId) !== -1)) {
result = true;
}
return result;
}
addAppAvailableToUser(user, appId, isDisabled) {
if (isDisabled) {
return;
}
if (!user.available_apps) {
user.available_apps = [];
}
if (user.available_apps.indexOf(appId) < 0) {
return user.available_apps.push(appId);
}
}
removeAppAvailableToUser(user, appId, isDisabled) {
var pos;
if (isDisabled) {
return;
}
if (!user.available_apps) {
user.available_apps = [];
}
if (user.available_apps.length > 1) {
pos = user.available_apps.indexOf(appId);
if (pos !== -1) {
return user.available_apps.splice(pos, 1);
}
}
}
getConfigLabel(key, global = false) {
var label;
label = '';
if (!global) {
if (this.config.labels[key]) {
label = this.config.labels[key].value;
}
} else {
if (this.config.global_labels[key]) {
label = this.config.global_labels[key].value;
}
}
return label;
}
getDoorManufacturer(manufacturerId) {
var key, label, manufacturer, ref;
label = '';
if (manufacturerId) {
ref = this.config.doorsManufacturers;
for (key in ref) {
manufacturer = ref[key];
if (manufacturer.id === manufacturerId) {
label = manufacturer.label;
break;
}
}
}
return label;
}
getUserNameById(id) {
var i, label, len, ref, user, v;
label = "";
ref = this.config.users;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === parseInt(id)) {
user = v;
}
}
if (user) {
label = user.name;
}
return label;
}
getCreatedForUserNameById(id) {
var i, label, len, ref, user, v;
label = "";
ref = this.config.users;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === parseInt(id)) {
user = v;
}
}
if (user) {
label = user.availableToOrderName;
}
return label;
}
getAvailableToOrderManagerNameById(id) {
var i, label, len, ref, user, v;
label = "";
ref = this.config.availableToOrderManagers;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === parseInt(id)) {
user = v;
}
}
if (user) {
label = user.name;
}
return label;
}
formatFileSize(bytes) {
var thresh, u, units;
thresh = 1024;
if (Math.abs(bytes) < thresh) {
return bytes + ' B';
}
units = ['KB', 'MB'];
u = -1;
while (true) {
bytes /= thresh;
++u;
if (!(Math.abs(bytes) >= thresh && u < units.length - 1)) {
break;
}
}
return bytes.toFixed(u > 0 ? u + 1 : 0) + ' ' + units[u];
}
getSelectedSheetsInStock(sheetId) {
var i, len, ref, result, selectedSheet, v;
result = null;
if (sheetId) {
ref = this.config.sheets;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === sheetId) {
selectedSheet = v;
}
}
if (selectedSheet.quantityIn1C) {
result = parseInt(selectedSheet.quantityIn1C);
}
}
return result;
}
sortBy(group, field, defaultDirectionForField = 'asc') {
if (this.config.sortFields[group].field === field) {
this.config.sortFields[group].direction = angular.copy((this.config.sortFields[group].direction === 'desc' ? 'asc' : 'desc'));
} else {
this.config.sortFields[group].direction = angular.copy(defaultDirectionForField);
}
return this.config.sortFields[group].field = angular.copy(field);
}
getSortByClass(group, field) {
var result;
result = "";
if (this.config.sortFields[group].field === field) {
result = this.config.sortFields[group].direction;
}
return result;
}
getSortParams(group) {
var currSortDirection;
currSortDirection = ((this.config.sortFields[group].direction === "asc") ? false : true);
return {
reverse: currSortDirection,
field: this.config.sortFields[group].field
};
}
getSmsStatusClass(status) {
var result;
result = "";
if (status && (status.length > 0) && this.config.smsStatusList[status] && this.config.smsStatusList[status].class) {
result = this.config.smsStatusList[status].class;
}
return result;
}
getPaymentStatusClass(status) {
var result;
result = "";
if (status && (status.length > 0) && this.config.paymentStatusList[status] && this.config.paymentStatusList[status].class) {
result = this.config.paymentStatusList[status].class;
}
return result;
}
getSmsRuBalance() {
if (this.config.isAdmin && !this.smsRuBalanceIsLoading) {
this.smsRuBalanceIsLoading = true;
return this.http({
method: 'POST',
url: this.config.urls.subscribes,
data: {
action: 'getSmsRuBalance'
},
timeout: 30000
}).then((response) => {
var data, error, i, len, ref, results;
this.smsRuBalanceIsLoading = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
this.smsRuBalanceIsLoaded = true;
return this.smsRuBalance = data.balance;
} else {
if (data.errors && data.errors.length) {
ref = data.errors;
results = [];
for (i = 0, len = ref.length; i < len; i++) {
error = ref[i];
results.push(toastr.error(error));
}
return results;
} else {
return toastr.error(this.config.global_labels.defaultErrorMessage.value);
}
}
}
}).catch(() => {
this.smsRuBalanceIsLoading = false;
return toastr.error('Произошла ошибка при запросе баланса, повторите позднее!');
});
}
}
};
File diff suppressed because it is too large. Load diff
+256
View File
@@ -0,0 +1,256 @@
supersamApp.controller('FasadOrdersController', [
'$scope',
'$http',
'$timeout',
'config',
'$filter',
function($scope,
$http,
$timeout,
config,
$filter) {
var fasadOrders;
fasadOrders = (function() {
class fasadOrders {
constructor() {
this.takeOrder = this.takeOrder.bind(this);
this.getOrdersList = this.getOrdersList.bind(this);
this.adminDeleteOrder = this.adminDeleteOrder.bind(this);
this.adminTakeOrderModal = this.adminTakeOrderModal.bind(this);
this.adminTakeOrder = this.adminTakeOrder.bind(this);
this.confirmAdminTakeOrder = this.confirmAdminTakeOrder.bind(this);
this.printOrder = this.printOrder.bind(this);
$scope.utilities.showContentOnLoad();
}
takeOrder(takeOrder) {
var dataToSend;
if (!this.isTakeOrderSubmitting) {
if (confirm("Вы уверены, что хотите взять на исполнение данный заказ?")) {
this.isTakeOrderSubmitting = true;
dataToSend = {
id: takeOrder.id
};
return $http({
method: 'POST',
url: config.urls.fasadTakeOrder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, key, order, ref;
this.isTakeOrderSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.orders.list;
for (key in ref) {
order = ref[key];
if (order.id === takeOrder.id) {
order.manager_id = data.manager_id;
order.taken_date = data.taken_date;
}
}
toastr.success("Данный заказ взят Вами на исполнение");
return window.location = config.urls.fasadDownloadOrderFiles.replace('12345', takeOrder.id);
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isTakeOrderSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
getOrdersList() {
var dataToSend;
if (!this.isLoading) {
this.isLoading = true;
dataToSend = {
month: config.orders.month,
year: config.orders.year,
select: config.orders.select,
branchId: config.orders.branchId,
managerId: config.orders.managerId
};
return $http({
method: 'POST',
url: config.urls.fasadGetOrdersList,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
this.isLoading = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
config.orders = data.orders;
return $timeout(() => {
return $('[data-toggle="popover"]').popover();
});
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isLoading = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
adminDeleteOrder(adminDeleteOrder) {
var dataToSend;
if (!this.isTakeOrderSubmitting) {
if (confirm("Вы уверены, что хотите удалить данный заказ?")) {
this.isTakeOrderSubmitting = true;
dataToSend = {
id: adminDeleteOrder.id
};
return $http({
method: 'POST',
url: config.urls.fasadAdminDeleteOrder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, dupKey, dupOrderNum, key, order, ref, ref1, ref2;
this.isTakeOrderSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.orders.list;
for (key in ref) {
order = ref[key];
if (order.possibleDuplicates) {
ref1 = order.possibleDuplicates;
for (dupKey in ref1) {
dupOrderNum = ref1[dupKey];
if (dupOrderNum === adminDeleteOrder.order_num) {
order.possibleDuplicates.splice(dupKey, 1);
}
}
}
}
ref2 = config.orders.list;
for (key in ref2) {
order = ref2[key];
if (order.id === adminDeleteOrder.id) {
config.orders.list.splice(key, 1);
}
}
return toastr.success("Заказ был успешно удалён");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isTakeOrderSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
adminTakeOrderModal(action) {
$timeout(() => {
return angular.element("#adminTakeOrderModal").modal(action);
});
return $scope.adminTakeOrderForm.$setPristine();
}
adminTakeOrder(order) {
this.adminTakeOrderModalData = angular.copy(order);
this.adminTakeOrderModalData.current_manager_id = angular.copy(order.manager_id);
return this.adminTakeOrderModal("show");
}
confirmAdminTakeOrder() {
var dataToSend;
if (!this.isTakeOrderSubmitting) {
dataToSend = {
id: this.adminTakeOrderModalData.id,
manager_id: this.adminTakeOrderModalData.manager_id
};
return $http({
method: 'POST',
url: config.urls.fasadAdminTakeOrder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, key, order, ref;
this.isTakeOrderSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.orders.list;
for (key in ref) {
order = ref[key];
if (order.id === this.adminTakeOrderModalData.id) {
order.manager_id = data.manager_id;
order.taken_date = data.taken_date;
}
}
this.adminTakeOrderModal("hide");
return toastr.success("Настройки заказа были успешно изменены");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isTakeOrderSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
printOrder(printOrderUrl) {
var printOrderWindow;
if (printOrderUrl && (printOrderUrl.length > 0)) {
printOrderWindow = window.open(printOrderUrl, '_blank');
printOrderWindow.focus();
return $timeout(() => {
return printOrderWindow.print();
}, 1000);
}
}
};
fasadOrders.prototype.isLoading = false;
fasadOrders.prototype.isTakeOrderSubmitting = false;
fasadOrders.prototype.adminTakeOrderModalData = {};
return fasadOrders;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout);
return $scope.orders = new fasadOrders();
}
]);
+767
View File
@@ -0,0 +1,767 @@
supersamApp.controller('FasadSettingsController', [
'$scope',
'$http',
'$timeout',
'config',
'$filter',
'Upload',
function($scope,
$http,
$timeout,
config,
$filter,
Upload) {
var fasadSettings;
fasadSettings = (function() {
class fasadSettings {
constructor() {
this.getSheetFullDimensions = this.getSheetFullDimensions.bind(this);
this.saveSettingsGroup = this.saveSettingsGroup.bind(this);
this.borderDimensionModal = this.borderDimensionModal.bind(this);
this.addBorderDimension = this.addBorderDimension.bind(this);
this.editBorderDimension = this.editBorderDimension.bind(this);
this.confirmBorderDimensionEdit = this.confirmBorderDimensionEdit.bind(this);
this.deleteBorderDimension = this.deleteBorderDimension.bind(this);
this.sheetDimensionModal = this.sheetDimensionModal.bind(this);
this.addSheetDimension = this.addSheetDimension.bind(this);
this.editSheetDimension = this.editSheetDimension.bind(this);
this.confirmSheetDimensionEdit = this.confirmSheetDimensionEdit.bind(this);
this.deleteSheetDimension = this.deleteSheetDimension.bind(this);
this.sheetModal = this.sheetModal.bind(this);
this.addSheet = this.addSheet.bind(this);
this.editSheet = this.editSheet.bind(this);
this.confirmSheetEdit = this.confirmSheetEdit.bind(this);
this.deleteSheet = this.deleteSheet.bind(this);
this.borderModal = this.borderModal.bind(this);
this.addBorder = this.addBorder.bind(this);
this.editBorder = this.editBorder.bind(this);
this.confirmBorderEdit = this.confirmBorderEdit.bind(this);
this.deleteBorder = this.deleteBorder.bind(this);
this.deleteBorderAvailableDimension = this.deleteBorderAvailableDimension.bind(this);
this.addBorderAvailableDimension = this.addBorderAvailableDimension.bind(this);
this.isBorderDimensionAlreadyAdded = this.isBorderDimensionAlreadyAdded.bind(this);
this.getBorderDimensionLabel = this.getBorderDimensionLabel.bind(this);
this.uploadImage = this.uploadImage.bind(this);
$scope.utilities.showContentOnLoad();
config.sortFields = {
sheets: {
field: 'label',
direction: 'asc'
},
borders: {
field: 'label',
direction: 'asc'
},
borderDimensions: {
field: 'label',
direction: 'asc'
},
sheetDimensions: {
field: 'id',
direction: 'asc'
}
};
}
getSheetFullDimensions(sheetDimensionId) {
var i, label, len, ref, selectedSheetDimensions, v;
label = "";
ref = config.sheetDimensions;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === sheetDimensionId) {
selectedSheetDimensions = v;
}
}
if (selectedSheetDimensions) {
label = selectedSheetDimensions.width + 'x' + selectedSheetDimensions.height + 'x' + selectedSheetDimensions.thick;
}
return label;
}
saveSettingsGroup(group) {
var dataToSend, settings;
if (!this.isSubmitting) {
this.isSubmitting = true;
dataToSend = {
action: 'saveGroup',
settingsGroup: group
};
switch (group) {
case "prices":
settings = {
prices: config.prices,
groovePrices: config.groovePrices,
cornerPrices: config.cornerPrices
};
break;
case "common":
settings = {
common: config.common,
cornerDefaults: config.cornerDefaults,
grooveDefaults: config.grooveDefaults
};
break;
default:
settings = {};
settings[group] = config[group];
}
dataToSend.settings = settings;
return $http({
method: 'POST',
url: config.urls.fasadSaveSettings,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
toastr.success("Настройки были успешно сохранены.");
$scope.utilities.setUpdateDates(group, data, config.fasad_updates);
return $scope[group + 'EditForm'].$setPristine();
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
borderDimensionModal(action) {
$timeout(() => {
return angular.element("#borderDimensionModal").modal(action);
});
this.warning = "";
this.error = "";
return $scope.borderDimensionForm.$setPristine();
}
addBorderDimension() {
this.borderDimensionModalData = {
is_active: true
};
return this.borderDimensionModal("show");
}
editBorderDimension(borderDimension) {
this.borderDimensionModalData = angular.copy(borderDimension);
this.borderDimensionModalData.current_is_active = this.borderDimensionModalData.is_active;
return this.borderDimensionModal("show");
}
confirmBorderDimensionEdit() {
if (!this.isSubmitting) {
this.isSubmitting = true;
this.warning = "";
this.error = "";
return $http({
method: 'POST',
url: config.urls.fasadAddUpdateBorderDimension,
data: this.borderDimensionModalData,
timeout: 30000
}).then((response) => {
var data;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
if (this.borderDimensionModalData.id) {
toastr.success("Данные толщины кромки были успешно обновлены");
} else {
toastr.success("Толщина кромки была успешно добавлена");
}
if (data.borders) {
config.borders = angular.copy(data.borders);
}
if (data.sheets) {
config.sheets = angular.copy(data.sheets);
}
config.borderDimensions = angular.copy(data.borderDimensions);
$scope.utilities.setUpdateDates("borderDimensions", data, config.fasad_updates);
$scope.utilities.setUpdateDates("borders", data, config.fasad_updates);
$scope.utilities.setUpdateDates("sheets", data, config.fasad_updates);
return this.borderDimensionModal("hide");
} else {
if (data.warning) {
this.warning = data.warning;
}
if (data.error) {
return this.error = data.error;
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
deleteBorderDimension(deleteBorderDimension) {
var dataToSend;
if (!this.isSubmitting) {
if (confirm("Вы уверены, что хотите удалить данную толщину кромки?")) {
this.isSubmitting = true;
dataToSend = {
id: deleteBorderDimension.id
};
return $http({
method: 'POST',
url: config.urls.fasadDeleteBorderDimension,
data: dataToSend,
timeout: 30000
}).then((response) => {
var borderDimension, data, key, ref;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.borderDimensions;
for (key in ref) {
borderDimension = ref[key];
if (borderDimension.id === deleteBorderDimension.id) {
config.borderDimensions.splice(key, 1);
}
}
$scope.utilities.setUpdateDates("borderDimensions", data, config.fasad_updates);
return toastr.success("Толщина кромки была успешно удалена");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
sheetDimensionModal(action) {
$timeout(() => {
return angular.element("#sheetDimensionModal").modal(action);
});
this.warning = "";
this.error = "";
return $scope.sheetDimensionForm.$setPristine();
}
addSheetDimension() {
this.sheetDimensionModalData = {
is_active: true
};
return this.sheetDimensionModal("show");
}
editSheetDimension(sheetDimension) {
this.sheetDimensionModalData = angular.copy(sheetDimension);
this.sheetDimensionModalData.current_is_active = this.sheetDimensionModalData.is_active;
return this.sheetDimensionModal("show");
}
confirmSheetDimensionEdit() {
if (!this.isSubmitting) {
this.isSubmitting = true;
this.warning = "";
this.error = "";
return $http({
method: 'POST',
url: config.urls.fasadAddUpdateSheetDimension,
data: this.sheetDimensionModalData,
timeout: 30000
}).then((response) => {
var data;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
if (this.sheetDimensionModalData.id) {
toastr.success("Данные размера листа были успешно обновлены");
} else {
toastr.success("Размер листа был успешно добавлен");
}
if (data.sheets) {
config.sheets = angular.copy(data.sheets);
}
config.sheetDimensions = angular.copy(data.sheetDimensions);
$scope.utilities.setUpdateDates("sheetDimensions", data, config.fasad_updates);
$scope.utilities.setUpdateDates("sheets", data, config.fasad_updates);
return this.sheetDimensionModal("hide");
} else {
if (data.warning) {
this.warning = data.warning;
}
if (data.error) {
return this.error = data.error;
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
deleteSheetDimension(deleteSheetDimension) {
var dataToSend;
if (!this.isSubmitting) {
if (confirm("Вы уверены, что хотите удалить данные размер листа?")) {
this.isSubmitting = true;
dataToSend = {
id: deleteSheetDimension.id
};
return $http({
method: 'POST',
url: config.urls.fasadDeleteSheetDimension,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, key, ref, sheetDimension;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.sheetDimensions;
for (key in ref) {
sheetDimension = ref[key];
if (sheetDimension.id === deleteSheetDimension.id) {
config.sheetDimensions.splice(key, 1);
}
}
$scope.utilities.setUpdateDates("sheetDimensions", data, config.fasad_updates);
return toastr.success("Размер листа был успешно удален");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
sheetModal(action) {
$timeout(() => {
return angular.element("#sheetModal").modal(action);
});
this.warning = "";
this.error = "";
return $scope.sheetForm.$setPristine();
}
addSheet() {
var i, len, ref, sheetDimension;
this.sheetModalData = {
is_active: true,
sheet_dimension_id: null,
default_border_id: null
};
config.editSheetSheetDimensions = [];
ref = config.sheetDimensions;
for (i = 0, len = ref.length; i < len; i++) {
sheetDimension = ref[i];
if (sheetDimension.is_active) {
config.editSheetSheetDimensions.push(sheetDimension);
}
}
return this.sheetModal("show");
}
editSheet(sheet) {
this.sheetModalData = angular.copy(sheet);
config.editSheetSheetDimensions = angular.copy(config.sheetDimensions);
return this.sheetModal("show");
}
confirmSheetEdit() {
if (!this.isSubmitting) {
this.isSubmitting = true;
this.warning = "";
this.error = "";
return $http({
method: 'POST',
url: config.urls.fasadAddUpdateSheet,
data: this.sheetModalData,
timeout: 30000
}).then((response) => {
var data, key, ref, results, sheet;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
config.sheets = angular.copy(data.sheets);
$scope.utilities.setUpdateDates("sheets", data, config.fasad_updates);
if (this.sheetModalData.id) {
toastr.success("Данные ДСП были успешно обновлены");
return this.sheetModal("hide");
} else {
toastr.success("ДСП была успешно добавлена");
$scope.sheetForm.$setPristine();
ref = config.sheets;
results = [];
for (key in ref) {
sheet = ref[key];
if (sheet.id === data.newSheetId) {
results.push(this.sheetModalData = angular.copy(sheet));
} else {
results.push(void 0);
}
}
return results;
}
} else {
if (data.warning) {
this.warning = data.warning;
}
if (data.error) {
return this.error = data.error;
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
deleteSheet(deleteSheet) {
var dataToSend;
if (!this.isSubmitting) {
if (confirm("Вы уверены, что хотите удалить данную ДСП?")) {
this.isSubmitting = true;
dataToSend = {
id: deleteSheet.id
};
return $http({
method: 'POST',
url: config.urls.fasadDeleteSheet,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, key, ref, sheet;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.sheets;
for (key in ref) {
sheet = ref[key];
if (sheet.id === deleteSheet.id) {
config.sheets.splice(key, 1);
}
}
$scope.utilities.setUpdateDates("sheets", data, config.fasad_updates);
return toastr.success("ДСП была успешно удалена");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
borderModal(action) {
$timeout(() => {
return angular.element("#borderModal").modal(action);
});
this.warning = "";
this.error = "";
this.addBorderAvailableDimensionId = config.borderDimensions[0].id;
return $scope.borderForm.$setPristine();
}
addBorder() {
this.borderModalData = {
is_active: true,
available_dimensions: []
};
return this.borderModal("show");
}
editBorder(border) {
this.borderModalData = angular.copy(border);
return this.borderModal("show");
}
confirmBorderEdit() {
if (!this.isSubmitting) {
this.isSubmitting = true;
this.warning = "";
this.error = "";
return $http({
method: 'POST',
url: config.urls.fasadAddUpdateBorder,
data: this.borderModalData,
timeout: 30000
}).then((response) => {
var border, data, key, ref, results;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
config.borders = angular.copy(data.borders);
$scope.utilities.setUpdateDates("borders", data, config.fasad_updates);
if (this.borderModalData.id) {
toastr.success("Данные кромки были успешно обновлены");
return this.borderModal("hide");
} else {
toastr.success("Кромка была успешно добавлена");
$scope.borderForm.$setPristine();
ref = config.borders;
results = [];
for (key in ref) {
border = ref[key];
if (border.id === data.newBorderId) {
results.push(this.borderModalData = angular.copy(border));
} else {
results.push(void 0);
}
}
return results;
}
} else {
if (data.warning) {
this.warning = data.warning;
}
if (data.error) {
return this.error = data.error;
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
deleteBorder(deleteBorder) {
var dataToSend;
if (!this.isSubmitting) {
if (confirm("Вы уверены, что хотите удалить данную кромку?")) {
this.isSubmitting = true;
dataToSend = {
id: deleteBorder.id
};
return $http({
method: 'POST',
url: config.urls.fasadDeleteBorder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var border, data, key, ref;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.borders;
for (key in ref) {
border = ref[key];
if (border.id === deleteBorder.id) {
config.borders.splice(key, 1);
}
}
$scope.utilities.setUpdateDates("borders", data, config.fasad_updates);
return toastr.success("Кромка была успешно удалена");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
deleteBorderAvailableDimension(deleteAvailableDimension) {
var availableDimension, key, ref, results;
ref = this.borderModalData.available_dimensions;
results = [];
for (key in ref) {
availableDimension = ref[key];
if (availableDimension.border_dimension_id === deleteAvailableDimension.border_dimension_id) {
this.borderModalData.available_dimensions.splice(key, 1);
results.push($scope.borderForm.$setDirty());
} else {
results.push(void 0);
}
}
return results;
}
addBorderAvailableDimension() {
if (!this.isBorderDimensionAlreadyAdded()) {
return this.borderModalData.available_dimensions.push({
border_dimension_id: this.addBorderAvailableDimensionId
});
}
}
isBorderDimensionAlreadyAdded() {
var availableDimension, borderDimensionAlreadyAdded, i, len, ref;
borderDimensionAlreadyAdded = false;
if (this.borderModalData.available_dimensions) {
ref = this.borderModalData.available_dimensions;
for (i = 0, len = ref.length; i < len; i++) {
availableDimension = ref[i];
if (availableDimension.border_dimension_id === this.addBorderAvailableDimensionId) {
borderDimensionAlreadyAdded = true;
}
}
}
return borderDimensionAlreadyAdded;
}
getBorderDimensionLabel(borderDimensionId) {
var i, label, len, ref, selectedBorderDimension, v;
label = "";
ref = config.borderDimensions;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === borderDimensionId) {
selectedBorderDimension = v;
}
}
if (selectedBorderDimension) {
label = selectedBorderDimension.label;
}
return label;
}
uploadImage(files, id, type) {
if (!this.isSubmitting) {
if (files && files[0]) {
this.isSubmitting = true;
return Upload.upload({
url: config.urls.fasadUploadImage,
data: {
file: files[0],
id: id,
type: type
}
}).then((response) => {
var border, data, key, ref, ref1, ref2, results, results1, results2, sheet;
this.isSubmitting = false;
data = response.data;
if (data.status && data.status === "success") {
switch (type) {
case 'sheetImage':
$scope.utilities.setUpdateDates("sheets", data, config.fasad_updates);
this.sheetModalData.image = data.image;
ref = config.sheets;
results = [];
for (key in ref) {
sheet = ref[key];
if (sheet.id === id) {
results.push(sheet.image = data.image);
} else {
results.push(void 0);
}
}
return results;
break;
case 'sheetThumb':
$scope.utilities.setUpdateDates("sheets", data, config.fasad_updates);
this.sheetModalData.thumb = data.image;
ref1 = config.sheets;
results1 = [];
for (key in ref1) {
sheet = ref1[key];
if (sheet.id === id) {
results1.push(sheet.thumb = data.image);
} else {
results1.push(void 0);
}
}
return results1;
break;
case 'borderImage':
$scope.utilities.setUpdateDates("borders", data, config.fasad_updates);
this.borderModalData.image = data.image;
ref2 = config.borders;
results2 = [];
for (key in ref2) {
border = ref2[key];
if (border.id === id) {
results2.push(border.image = data.image);
} else {
results2.push(void 0);
}
}
return results2;
}
} else {
return toastr.error('Произошла ошибка при загрузке изображения, повторите позднее!');
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error('Произошла ошибка при загрузке изображения, повторите позднее!');
});
}
}
}
};
fasadSettings.prototype.isSubmitting = false;
fasadSettings.prototype.borderModalData = {};
fasadSettings.prototype.borderDimensionModalData = {};
fasadSettings.prototype.error = "";
fasadSettings.prototype.warning = "";
fasadSettings.prototype.addBorderAvailableDimensionId = null;
return fasadSettings;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout);
return $scope.settings = new fasadSettings();
}
]);
+139
View File
@@ -0,0 +1,139 @@
supersamApp.controller('FasadStatisticsController', [
'$scope',
'$http',
'$timeout',
'config',
'$filter',
function($scope,
$http,
$timeout,
config,
$filter) {
var fasadStatistics;
fasadStatistics = (function() {
class fasadStatistics {
constructor() {
var i, len, ref, sheet;
this.getStatisticsData = this.getStatisticsData.bind(this);
this.getBorderDimensionLabel = this.getBorderDimensionLabel.bind(this);
$scope.utilities.showContentOnLoad();
config.sortFields = {
statistics_sheets: {
field: 'label',
direction: 'asc'
},
statistics_borders: {
field: 'label',
direction: 'asc'
},
statistics_clients: {
field: 'name',
direction: 'asc'
}
};
ref = config.sheets;
for (i = 0, len = ref.length; i < len; i++) {
sheet = ref[i];
if (config.statistics.data[sheet.id] && config.statistics.data[sheet.id].total_decimal) {
sheet.total_decimal = angular.copy(config.statistics.data[sheet.id].total_decimal);
} else {
sheet.total_decimal = 0;
}
}
}
getStatisticsData() {
var dataToSend;
if (!this.isLoading) {
this.isLoading = true;
dataToSend = {
year: config.statistics.year,
select: config.statistics.select,
showEmptyRows: this.showEmptyRows
};
return $http({
method: 'POST',
url: config.urls.fasadGetStatisticsData,
data: dataToSend,
timeout: 30000
}).then((response) => {
var border, data, i, j, len, len1, ref, ref1, results, sheet;
this.isLoading = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
config.statistics = data.statistics;
if (config.statistics.select === 'sheets') {
ref = config.sheets;
for (i = 0, len = ref.length; i < len; i++) {
sheet = ref[i];
if (config.statistics.data[sheet.id] && config.statistics.data[sheet.id].total_decimal) {
sheet.total_decimal = angular.copy(config.statistics.data[sheet.id].total_decimal);
} else {
sheet.total_decimal = 0;
}
}
}
if (config.statistics.select === 'borders') {
ref1 = config.borders;
results = [];
for (j = 0, len1 = ref1.length; j < len1; j++) {
border = ref1[j];
if (config.statistics.data[border.id] && config.statistics.data[border.id].total_decimal) {
results.push(border.total_decimal = angular.copy(config.statistics.data[border.id].total_decimal));
} else {
results.push(border.total_decimal = 0);
}
}
return results;
}
} else {
config.statistics.data = false;
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
config.statistics.data = false;
this.isLoading = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
getBorderDimensionLabel(heightId) {
var i, label, len, ref, selectedHeight, v;
label = "";
ref = config.borderDimensions;
for (i = 0, len = ref.length; i < len; i++) {
v = ref[i];
if (v.id === heightId) {
selectedHeight = v;
}
}
if (selectedHeight) {
label = selectedHeight.label;
}
return label;
}
};
fasadStatistics.prototype.isLoading = false;
fasadStatistics.prototype.showEmptyRows = true;
return fasadStatistics;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout);
return $scope.statistics = new fasadStatistics();
}
]);
+5
View File
@@ -0,0 +1,5 @@
/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */
!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.3",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b="length"in a&&a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^Line truncated
return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?m.queue(this[0],a):void 0===b?this:this.each(function(){var c=m.queue(this,a,b);m._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&m.dequeue(this,a)})},dequeue:function(a){return this.each(function(){m.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=m.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=m._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=["Top","Right","Bottom","Left"],U=function(a,b){return a=b||a,"none"===m.css(a,"display")||!m.contains(a.ownerDocument,a)},V=m.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===m.type(c)){e=!0;for(h in c)m.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,m.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(m(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav></:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function aa(){return!0}function ba(){return!1}function ca(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var Line truncated
return new Za.prototype.init(a,b,c,d,e)}m.Tween=Za,Za.prototype={constructor:Za,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(m.cssNumber[c]?"":"px")},cur:function(){var a=Za.propHooks[this.prop];return a&&a.get?a.get(this):Za.propHooks._default.get(this)},run:function(a){var b,c=Za.propHooks[this.prop];return this.options.duration?this.pos=b=m.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Za.propHooks._default.set(this),this}},Za.prototype.init.prototype=Za.prototype,Za.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=m.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){m.fx.step[a.prop]?m.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[m.cssProps[a.prop]]||m.cssHooks[a.prop])?m.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Za.propHooks.scrollTop=Za.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},m.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},m.fx=Za.prototype.init,m.fx.step={};var $a,_a,ab=/^(?:toggle|show|hide)$/,bb=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),cb=/queueHooks$/,db=[ib],eb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=bb.exec(b),f=e&&e[3]||(m.cssNumber[a]?"":"px"),g=(m.cssNumber[a]||"px"!==f&&+d)&&bb.exec(m.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,m.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function fb(){return setTimeout(function(){$a=void 0}),$a=m.now()}function gb(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=T[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function hb(a,b,c){for(var d,e=(eb[b]||[]).concat(eb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function ib(a,b,c){var d,e,f,g,h,i,j,l,n=this,o={},p=a.style,q=a.nodeType&&U(a),r=m._data(a,"fxshow");c.queue||(h=m._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,n.always(function(){n.always(function(){h.unqueued--,m.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=m.css(a,"display"),l="none"===j?m._data(a,"olddisplay")||Fa(a.nodeName):j,"inline"===l&&"none"===m.css(a,"float")&&(k.inlineBlockNeedsLayout&&"inline"!==Fa(a.nodeName)?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",k.shrinkWrapBlocks()||n.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],ab.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||m.style(a,d)}else j=void 0;if(m.isEmptyObject(o))"inline"===("none"===j?Fa(a.nodeName):j)&&(p.display=j);else{r?"hidden"in r&&(q=r.hidden):r=m._data(a,"fxshow",{}),f&&(r.hidden=!q),q?m(a).show():n.done(function(){m(a).hide()}),n.done(function(){var b;m._removeData(a,"fxshow");for(b in o)m.style(a,b,o[b])});for(d in o)g=hb(q?r[d]:0,d,n),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function jb(a,b){var c,d,e,f,g;for(c in a)if(d=m.camelCase(c),e=b[d],f=a[c],m.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=m.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function kb(a,b,c){var d,e,f=0,g=db.length,h=m.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=$a||fb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:m.extend({},b),opts:m.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:$a||fb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=m.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(jb(k,j.opts.specialEasing);g>f;f++)if(d=db[f].call(j,a,k,j.opts))return d;return m.map(k,hb,j),m.isFunction(j.opts.start)&&j.opts.start.call(a,j),m.fx.timer(m.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}m.Animation=m.extend(kb,{tweener:function(a,b){m.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],eb[cLine truncated
+2
View File
@@ -0,0 +1,2 @@
/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */
!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-lLine truncated
+13
View File
@@ -0,0 +1,13 @@
(function() {
$(function() {
return $.reject({
reject: {
all: true
},
close: false,
closeESC: false,
imagePath: '/img/jReject/',
display: ['chrome', 'firefox', 'opera']
});
});
}).call(this);
+578
View File
@@ -0,0 +1,578 @@
/*!
* jReject (jQuery Browser Rejection Plugin)
* Version 1.1.x
* URL: http://jreject.turnwheel.com/
* Description: jReject is a easy method of rejecting specific browsers on your site
* Author: Steven Bower (TurnWheel Designs) http://turnwheel.com/
* Copyright: Copyright (c) 2009-2014 Steven Bower under dual MIT/GPLv2 license.
*/
(function($) {
$.reject = function(options) {
var opts = $.extend(true, {
// Specifies which browsers/versions will be blocked
reject : {
all: false, // Covers Everything (Nothing blocked)
msie: 6 // Covers MSIE <= 6 (Blocked by default)
},
display: [], // What browsers to display and their order (default set below)
browserShow: true, // Should the browser options be shown?
browserInfo: { // Settings for which browsers to display
chrome: {
// Text below the icon
text: 'Google Chrome',
// URL For icon/text link
url: 'http://www.google.com/chrome/'
// (Optional) Use "allow" to customized when to show this option
// Example: to show chrome only for IE users
// allow: { all: false, msie: true }
},
firefox: {
text: 'Mozilla Firefox',
url: 'http://www.mozilla.com/firefox/'
},
safari: {
text: 'Safari',
url: 'http://www.apple.com/safari/download/'
},
opera: {
text: 'Opera',
url: 'http://www.opera.com/download/'
},
msie: {
text: 'Internet Explorer',
url: 'http://www.microsoft.com/windows/Internet-explorer/'
}
},
// Pop-up Window Text
header: 'Знаете ли Вы, что Ваш интернет-браузер устарел?',
paragraph1: 'Используя старый браузер, Вы можете лишить себя некоторых возможностей этого сайта. ',
paragraph2: 'Список наиболее популярных браузеров представле ниже. Просто щёлкните по любой иконке, чтобы перейти на страницу загрузки браузера.',
// Allow closing of window
close: true,
// Message displayed below closing link
closeMessage: 'By closing this window you acknowledge that your experience '+
'on this website may be degraded',
closeLink: 'Close window',
closeURL: '#',
// Allows closing of window with esc key
closeESC: true,
// Use cookies to remmember if window was closed previously?
closeCookie: false,
// Cookie settings are only used if closeCookie is true
cookieSettings: {
// Path for the cookie to be saved on
// Should be root domain in most cases
path: '/',
// Expiration Date (in seconds)
// 0 (default) means it ends with the current session
expires: 0
},
// Path where images are located
imagePath: '/img/jReject/',
// Background color for overlay
overlayBgColor: '#000',
// Background transparency (0-1)
overlayOpacity: 1,
// Fade in time on open ('slow','medium','fast' or integer in ms)
fadeInTime: 'fast',
// Fade out time on close ('slow','medium','fast' or integer in ms)
fadeOutTime: 'fast',
// Google Analytics Link Tracking (Optional)
// Set to true to enable
// Note: Analytics tracking code must be added separately
analytics: false
}, options);
// Set default browsers to display if not already defined
if (opts.display.length < 1) {
opts.display = [ 'chrome','firefox','safari','opera','msie' ];
}
// beforeRject: Customized Function
if ($.isFunction(opts.beforeReject)) {
opts.beforeReject();
}
// Disable 'closeESC' if closing is disabled (mutually exclusive)
if (!opts.close) {
opts.closeESC = false;
}
// This function parses the advanced browser options
var browserCheck = function(settings) {
// Check 1: Look for 'all' forced setting
// Check 2: Browser+major version (optional) (eg. 'firefox','msie','{msie: 6}')
// Check 3: Browser+major version (eg. 'firefox3','msie7','chrome4')
// Check 4: Rendering engine+version (eg. 'webkit', 'gecko', '{webkit: 537.36}')
// Check 5: Operating System (eg. 'win','mac','linux','solaris','iphone')
var layout = settings[$.layout.name],
browser = settings[$.browser.name];
return !!(settings['all']
|| (browser && (browser === true || $.browser.versionNumber <= browser))
|| settings[$.browser.className]
|| (layout && (layout === true || $.layout.versionNumber <= layout))
|| settings[$.os.name]);
};
// Determine if we need to display rejection for this browser, or exit
if (!browserCheck(opts.reject)) {
// onFail: Optional Callback
if ($.isFunction(opts.onFail)) {
opts.onFail();
}
return false;
}
// If user can close and set to remmember close, initiate cookie functions
if (opts.close && opts.closeCookie) {
// Local global setting for the name of the cookie used
var COOKIE_NAME = 'jreject-close';
// Cookies Function: Handles creating/retrieving/deleting cookies
// Cookies are only used for opts.closeCookie parameter functionality
var _cookie = function(name, value) {
// Save cookie
if (typeof value != 'undefined') {
var expires = '';
// Check if we need to set an expiration date
if (opts.cookieSettings.expires !== 0) {
var date = new Date();
date.setTime(date.getTime()+(opts.cookieSettings.expires*1000));
expires = "; expires="+date.toGMTString();
}
// Get path from settings
var path = opts.cookieSettings.path || '/';
// Set Cookie with parameters
document.cookie = name+'='+
encodeURIComponent((!value) ? '' : value)+expires+
'; path='+path;
return true;
}
// Get cookie
else {
var cookie,val = null;
if (document.cookie && document.cookie !== '') {
var cookies = document.cookie.split(';');
// Loop through all cookie values
var clen = cookies.length;
for (var i = 0; i < clen; ++i) {
cookie = $.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0,name.length+1) == (name+'=')) {
var len = name.length;
val = decodeURIComponent(cookie.substring(len+1));
break;
}
}
}
// Returns cookie value
return val;
}
};
// If cookie is set, return false and don't display rejection
if (_cookie(COOKIE_NAME)) {
return false;
}
}
// Load background overlay (jr_overlay) + Main wrapper (jr_wrap) +
// Inner Wrapper (jr_inner) w/ opts.header (jr_header) +
// opts.paragraph1/opts.paragraph2 if set
var html = '<div id="jr_overlay"></div><div id="jr_wrap"><div id="jr_inner">'+
'<h1 id="jr_header">'+opts.header+'</h1>'+
(opts.paragraph1 === '' ? '' : '<p>'+opts.paragraph1+'</p>')+
(opts.paragraph2 === '' ? '' : '<p>'+opts.paragraph2+'</p>');
var displayNum = 0;
if (opts.browserShow) {
html += '<ul>';
// Generate the browsers to display
for (var x in opts.display) {
var browser = opts.display[x]; // Current Browser
var info = opts.browserInfo[browser] || false; // Browser Information
// If no info exists for this browser
// or if this browser is not suppose to display to this user
// based on "allow" flag
if (!info || (info['allow'] != undefined && !browserCheck(info['allow']))) {
continue;
}
var url = info.url || '#'; // URL to link text/icon to
// Generate HTML for this browser option
html += '<li id="jr_'+browser+'"><div class="jr_icon"></div>'+
'<div><a href="'+url+'">'+(info.text || 'Unknown')+'</a>'+
'</div></li>';
++displayNum;
}
html += '</ul>';
}
// Close list and #jr_list
html += '<div id="jr_close">'+
// Display close links/message if set
(opts.close ? '<a href="'+opts.closeURL+'">'+opts.closeLink+'</a>'+
'<p>'+opts.closeMessage+'</p>' : '')+'</div>'+
// Close #jr_inner and #jr_wrap
'</div></div>';
var element = $('<div>'+html+'</div>'); // Create element
var size = _pageSize(); // Get page size
var scroll = _scrollSize(); // Get page scroll
// This function handles closing this reject window
// When clicked, fadeOut and remove all elements
element.bind('closejr', function() {
// Make sure the permission to close is granted
if (!opts.close) {
return false;
}
// Customized Function
if ($.isFunction(opts.beforeClose)) {
opts.beforeClose();
}
// Remove binding function so it
// doesn't get called more than once
$(this).unbind('closejr');
// Fade out background and modal wrapper
$('#jr_overlay,#jr_wrap').fadeOut(opts.fadeOutTime,function() {
$(this).remove(); // Remove element from DOM
// afterClose: Customized Function
if ($.isFunction(opts.afterClose)) {
opts.afterClose();
}
});
// Show elements that were hidden for layering issues
var elmhide = 'embed.jr_hidden, object.jr_hidden, select.jr_hidden, applet.jr_hidden';
$(elmhide).show().removeClass('jr_hidden');
// Set close cookie for next run
if (opts.closeCookie) {
_cookie(COOKIE_NAME, 'true');
}
return true;
});
// Tracks clicks in Google Analytics (category 'External Links')
// only if opts.analytics is enabled
var analytics = function(url) {
if (!opts.analytics) {
return false;
}
// Get just the hostname
var host = url.split(/\/+/g)[1];
// Send external link event to Google Analaytics
// Attempts both versions of analytics code. (Newest first)
try {
// Newest analytics code
ga('send', 'event', 'External', 'Click', host, url);
} catch (e) {
try {
_gaq.push([ '_trackEvent', 'External Links', host, url ]);
} catch (e) { }
}
};
// Called onClick for browser links (and icons)
// Opens link in new window
var openBrowserLinks = function(url) {
// Send link to analytics if enabled
analytics(url);
// Open window, generate random id value
window.open(url, 'jr_'+ Math.round(Math.random()*11));
return false;
};
/*
* Trverse through element DOM and apply JS variables
* All CSS elements that do not require JS will be in
* css/jquery.jreject.css
*/
// Creates 'background' (div)
element.find('#jr_overlay').css({
width: size[0],
height: size[1],
background: opts.overlayBgColor,
opacity: opts.overlayOpacity
});
// Wrapper for our pop-up (div)
element.find('#jr_wrap').css({
top: scroll[1]+(size[3]/4),
left: scroll[0]
});
// Wrapper for inner centered content (div)
element.find('#jr_inner').css({
minWidth: displayNum*100,
maxWidth: displayNum*140,
// min/maxWidth not supported by IE
width: $.layout.name == 'trident' ? displayNum*155 : 'auto'
});
element.find('#jr_inner li').css({ // Browser list items (li)
background: 'transparent url("'+opts.imagePath+'background_browser.gif") '+
'no-repeat scroll left top'
});
element.find('#jr_inner li .jr_icon').each(function() {
// Dynamically sets the icon background image
var self = $(this);
self.css('background','transparent url('+opts.imagePath+'browser_'+
(self.parent('li').attr('id').replace(/jr_/,''))+'.gif)'+
' no-repeat scroll left top');
// Send link clicks to openBrowserLinks
self.click(function () {
var url = $(this).next('div').children('a').attr('href');
openBrowserLinks(url);
});
});
element.find('#jr_inner li a').click(function() {
openBrowserLinks($(this).attr('href'));
return false;
});
// Bind closing event to trigger closejr
// to be consistant with ESC key close function
element.find('#jr_close a').click(function() {
$(this).trigger('closejr');
// If plain anchor is set, return false so there is no page jump
if (opts.closeURL === '#') {
return false;
}
});
// Set focus (fixes ESC key issues with forms and other focus bugs)
$('#jr_overlay').focus();
// Hide elements that won't display properly
$('embed, object, select, applet').each(function() {
if ($(this).is(':visible')) {
$(this).hide().addClass('jr_hidden');
}
});
// Append element to body of document to display
$('body').append(element.hide().fadeIn(opts.fadeInTime));
// Handle window resize/scroll events and update overlay dimensions
$(window).bind('resize scroll',function() {
var size = _pageSize(); // Get size
// Update overlay dimensions based on page size
$('#jr_overlay').css({
width: size[0],
height: size[1]
});
var scroll = _scrollSize(); // Get page scroll
// Update modal position based on scroll
$('#jr_wrap').css({
top: scroll[1] + (size[3]/4),
left: scroll[0]
});
});
// Add optional ESC Key functionality
if (opts.closeESC) {
$(document).bind('keydown',function(event) {
// ESC = Keycode 27
if (event.keyCode == 27) {
element.trigger('closejr');
}
});
}
// afterReject: Customized Function
if ($.isFunction(opts.afterReject)) {
opts.afterReject();
}
return true;
};
// Based on compatibility data from quirksmode.com
// This is used to help calculate exact center of the page
var _pageSize = function() {
var xScroll = window.innerWidth && window.scrollMaxX ?
window.innerWidth + window.scrollMaxX :
(document.body.scrollWidth > document.body.offsetWidth ?
document.body.scrollWidth : document.body.offsetWidth);
var yScroll = window.innerHeight && window.scrollMaxY ?
window.innerHeight + window.scrollMaxY :
(document.body.scrollHeight > document.body.offsetHeight ?
document.body.scrollHeight : document.body.offsetHeight);
var windowWidth = window.innerWidth ? window.innerWidth :
(document.documentElement && document.documentElement.clientWidth ?
document.documentElement.clientWidth : document.body.clientWidth);
var windowHeight = window.innerHeight ? window.innerHeight :
(document.documentElement && document.documentElement.clientHeight ?
document.documentElement.clientHeight : document.body.clientHeight);
return [
xScroll < windowWidth ? xScroll : windowWidth, // Page Width
yScroll < windowHeight ? windowHeight : yScroll, // Page Height
windowWidth,windowHeight
];
};
// Based on compatibility data from quirksmode.com
var _scrollSize = function() {
return [
// scrollSize X
window.pageXOffset ? window.pageXOffset : (document.documentElement &&
document.documentElement.scrollTop ?
document.documentElement.scrollLeft : document.body.scrollLeft),
// scrollSize Y
window.pageYOffset ? window.pageYOffset : (document.documentElement &&
document.documentElement.scrollTop ?
document.documentElement.scrollTop : document.body.scrollTop)
];
};
})(jQuery);
/*
* jQuery Browser Plugin
* Version 2.4 / jReject 1.0.x
* URL: http://jquery.thewikies.com/browser
* Description: jQuery Browser Plugin extends browser detection capabilities and
* can assign browser selectors to CSS classes.
* Author: Nate Cavanaugh, Minhchau Dang, Jonathan Neal, & Gregory Waxman
* Updated By: Steven Bower for use with jReject plugin
* Copyright: Copyright (c) 2008 Jonathan Neal under dual MIT/GPL license.
*/
(function ($) {
$.browserTest = function (a, z) {
var u = 'unknown',
x = 'X',
m = function (r, h) {
for (var i = 0; i < h.length; i = i + 1) {
r = r.replace(h[i][0], h[i][1]);
}
return r;
}, c = function (i, a, b, c) {
var r = {
name: m((a.exec(i) || [u, u])[1], b)
};
r[r.name] = true;
if (!r.opera) {
r.version = (c.exec(i) || [x, x, x, x])[3];
}
else {
r.version = window.opera.version();
}
if (/safari/.test(r.name)) {
var safariversion = /(safari)(\/|\s)([a-z0-9\.\+]*?)(\;|dev|rel|\s|$)/;
var res = safariversion.exec(i);
if (res && res[3] && res[3] < 400) {
r.version = '2.0';
}
}
else if (r.name === 'presto') {
r.version = ($.browser.version > 9.27) ? 'futhark' : 'linear_b';
}
if (/msie/.test(r.name) && r.version === x) {
var ieVersion = /rv:(\d+\.\d+)/.exec(i);
r.version = ieVersion[1];
}
r.versionNumber = parseFloat(r.version, 10) || 0;
var minorStart = 1;
if (r.versionNumber < 100 && r.versionNumber > 9) {
minorStart = 2;
}
r.versionX = (r.version !== x) ? r.version.substr(0, minorStart) : x;
r.className = r.name + r.versionX;
return r;
};
a = (/Opera|Navigator|Minefield|KHTML|Chrome|CriOS/.test(a) ? m(a, [
[/(Firefox|MSIE|KHTML,\slike\sGecko|Konqueror)/, ''],
['Chrome Safari', 'Chrome'],
['CriOS', 'Chrome'],
['KHTML', 'Konqueror'],
['Minefield', 'Firefox'],
['Navigator', 'Netscape']
]) : a).toLowerCase();
$.browser = $.extend((!z) ? $.browser : {}, c(a,
/(camino|chrome|crios|firefox|netscape|konqueror|lynx|msie|trident|opera|safari)/,
[
['trident', 'msie']
],
/(camino|chrome|crios|firefox|netscape|netscape6|opera|version|konqueror|lynx|msie|rv|safari)(:|\/|\s)([a-z0-9\.\+]*?)(\;|dev|rel|\s|$)/));
$.layout = c(a, /(gecko|konqueror|msie|trident|opera|webkit)/, [
['konqueror', 'khtml'],
['msie', 'trident'],
['opera', 'presto']
], /(applewebkit|rv|konqueror|msie)(\:|\/|\s)([a-z0-9\.]*?)(\;|\)|\s)/);
$.os = {
name: (/(win|mac|linux|sunos|solaris|iphone|ipad)/.
exec(navigator.platform.toLowerCase()) || [u])[0].replace('sunos', 'solaris')
};
if (!z) {
$('html').addClass([$.os.name, $.browser.name, $.browser.className,
$.layout.name, $.layout.className].join(' '));
}
};
$.browserTest(navigator.userAgent);
}(jQuery));
+7
View File
@@ -0,0 +1,7 @@
/**
* Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler
* Licensed under MIT
* @author Ariel Flesler
* @version 2.1.2
*/
;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/=2);b.offset=h(b.offset);b.over=h(b.over);return this.each(function(){function k(a){var k=$.extend({},b,{queue:!0,duration:d,complete:a&&function(){a.call(q,e,b)}});r.animate(f,k)}if(null!==a){var l=n(this),q=l?this.contentWindow||window:this,r=$(q),e=a,f={},t;switch(typeof e){case "number":case "string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(e)){e= h(e);break}e=l?$(e):$(e,q);case "object":if(e.length===0)return;if(e.is||e.style)t=(e=$(e)).offset()}var v=$.isFunction(b.offset)&&b.offset(q,e)||b.offset;$.each(b.axis.split(""),function(a,c){var d="x"===c?"Left":"Top",m=d.toLowerCase(),g="scroll"+d,h=r[g](),n=p.max(q,c);t?(f[g]=t[m]+(l?0:h-r.offset()[m]),b.margin&&(f[g]-=parseInt(e.css("margin"+d),10)||0,f[g]-=parseInt(e.css("border"+d+"Width"),10)||0),f[g]+=v[m]||0,b.over[m]&&(f[g]+=e["x"===c?"width":"height"]()*b.over[m])):(d=e[m],f[g]=d.slice&& "%"===d.slice(-1)?parseFloat(d)/100*n:d);b.limit&&/^\d+$/.test(f[g])&&(f[g]=0>=f[g]?0:Math.min(f[g],n));!a&&1<b.axis.length&&(h===f[g]?f={}:u&&(k(b.onAfterFirst),f={}))});k(b.onAfter)}})};p.max=function(a,d){var b="x"===d?"Width":"Height",h="scroll"+b;if(!n(a))return a[h]-$(a)[b.toLowerCase()]();var b="client"+b,k=a.ownerDocument||a.document,l=k.documentElement,k=k.body;return Math.max(l[h],k[h])-Math.min(l[b],k[b])};$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(a){return $(a.elem)[a.prop]()}, set:function(a){var d=this.get(a);if(a.options.interrupt&&a._last&&a._last!==d)return $(a.elem).stop();var b=Math.round(a.now);d!==b&&($(a.elem)[a.prop](b),a._last=this.get(a))}};return p});
+14
View File
@@ -0,0 +1,14 @@
/*!
* Lightbox v2.10.0
* by Lokesh Dhakar
*
* More info:
* http://lokeshdhakar.com/projects/lightbox2/
*
* Copyright 2007, 2018 Lokesh Dhakar
* Released under the MIT license
* https://github.com/lokesh/lightbox2/blob/master/LICENSE
*
* @preserve
*/
!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],b):"object"==typeof exports?module.exports=b(require("jquery")):a.lightbox=b(a.jQuery)}(this,function(a){function b(b){this.album=[],this.currentImageIndex=void 0,this.init(),this.options=a.extend({},this.constructor.defaults),this.option(b)}return b.defaults={albumLabel:"Image %1 of %2",alwaysShowNavOnTouchDevices:!1,fadeDuration:600,fitImagesInViewport:!0,imageFadeDuration:600,positionFromTop:50,resizeDuration:700,showImageNumberLabel:!0,wrapAround:!1,disableScrolling:!1,sanitizeTitle:!1},b.prototype.option=function(b){a.extend(this.options,b)},b.prototype.imageCountLabel=function(a,b){return this.options.albumLabel.replace(/%1/g,a).replace(/%2/g,b)},b.prototype.init=function(){var b=this;a(document).ready(function(){b.enable(),b.build()})},b.prototype.enable=function(){var b=this;a("body").on("click","a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]",function(c){return b.start(a(c.currentTarget)),!1})},b.prototype.build=function(){if(!(a("#lightbox").length>0)){var b=this;a('<div id="lightboxOverlay" class="lightboxOverlay"></div><div id="lightbox" class="lightbox"><div class="lb-outerContainer"><div class="lb-container"><img class="lb-image" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" /><div class="lb-nav"><a class="lb-prev" href="" ></a><a class="lb-next" href="" ></a></div><div class="lb-loader"><a class="lb-cancel"></a></div></div></div><div class="lb-dataContainer"><div class="lb-data"><div class="lb-details"><span class="lb-caption"></span><span class="lb-number"></span></div><div class="lb-closeContainer"><a class="lb-close"></a></div></div></div></div>').appendTo(a("body")),this.$lightbox=a("#lightbox"),this.$overlay=a("#lightboxOverlay"),this.$outerContainer=this.$lightbox.find(".lb-outerContainer"),this.$container=this.$lightbox.find(".lb-container"),this.$image=this.$lightbox.find(".lb-image"),this.$nav=this.$lightbox.find(".lb-nav"),this.containerPadding={top:parseInt(this.$container.css("padding-top"),10),right:parseInt(this.$container.css("padding-right"),10),bottom:parseInt(this.$container.css("padding-bottom"),10),left:parseInt(this.$container.css("padding-left"),10)},this.imageBorderWidth={top:parseInt(this.$image.css("border-top-width"),10),right:parseInt(this.$image.css("border-right-width"),10),bottom:parseInt(this.$image.css("border-bottom-width"),10),left:parseInt(this.$image.css("border-left-width"),10)},this.$overlay.hide().on("click",function(){return b.end(),!1}),this.$lightbox.hide().on("click",function(c){return"lightbox"===a(c.target).attr("id")&&b.end(),!1}),this.$outerContainer.on("click",function(c){return"lightbox"===a(c.target).attr("id")&&b.end(),!1}),this.$lightbox.find(".lb-prev").on("click",function(){return 0===b.currentImageIndex?b.changeImage(b.album.length-1):b.changeImage(b.currentImageIndex-1),!1}),this.$lightbox.find(".lb-next").on("click",function(){return b.currentImageIndex===b.album.length-1?b.changeImage(0):b.changeImage(b.currentImageIndex+1),!1}),this.$nav.on("mousedown",function(a){3===a.which&&(b.$nav.css("pointer-events","none"),b.$lightbox.one("contextmenu",function(){setTimeout(function(){this.$nav.css("pointer-events","auto")}.bind(b),0)}))}),this.$lightbox.find(".lb-loader, .lb-close").on("click",function(){return b.end(),!1})}},b.prototype.start=function(b){function c(a){d.album.push({alt:a.attr("data-alt"),link:a.attr("href"),title:a.attr("data-title")||a.attr("title")})}var d=this,e=a(window);e.on("resize",a.proxy(this.sizeOverlay,this)),a("select, object, embed").css({visibility:"hidden"}),this.sizeOverlay(),this.album=[];var f,g=0,h=b.attr("data-lightbox");if(h){f=a(b.prop("tagName")+'[data-lightbox="'+h+'"]');for(var i=0;i<f.length;i=++i)c(a(f[i])),f[i]===b[0]&&(g=i)}else if("lightbox"===b.attr("rel"))c(b);else{f=a(b.prop("tagName")+'[rel="'+b.attr("rel")+'"]');for(var j=0;j<f.length;j=++j)c(a(f[j])),f[j]===b[0]&&(g=j)}var k=e.scrollTop()+this.options.positionFromTop,l=e.scrollLeft();this.$lightbox.css({top:k+"px",left:l+"px"}).fadeIn(this.options.fadeDuration),this.options.disableScrolling&&a("html").addClass("lb-disable-scrolling"),this.changeImage(g)},b.prototype.changeImage=function(b){var c=this;this.disableKeyboardNav();var d=this.$lightbox.find(".lb-image");this.$overlay.fadeIn(this.options.fadeDuration),a(".lb-loader").fadeIn("slow"),this.$lightbox.find(".lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption").hide(),this.$outerContainer.addClass("animating");var e=new Image;e.onload=function(){var f,g,h,i,j,k;d.attr({alt:c.album[b].alt,src:c.album[b].link}),a(e),d.width(e.width),d.height(e.height),c.options.fitImagesInViewport&&(k=a(window).width(),j=a(window).height(),i=k-c.containerPadding.left-c.containerPadding.right-c.imageBorderWidth.left-c.imageBorderWidth.right-20,h=j-c.containerPadding.top-c.containerPadding.bottom-c.imageBorderWidth.top-c.imageBorderWLine truncated
+15
View File
@@ -0,0 +1,15 @@
/*! lozad.js - v1.16.0 - 2020-09-10
* https://github.com/ApoorvSaxena/lozad.js
* Copyright (c) 2020 Apoorv Saxena; Licensed MIT */
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.lozad=e()}(this,function(){"use strict";
/**
* Detect IE browser
* @const {boolean}
* @private
*/var g="undefined"!=typeof document&&document.documentMode,v=function(t){return window&&window[t]},h=["data-iesrc","data-alt","data-src","data-srcset","data-background-image","data-toggle-class"],p={rootMargin:"0px",threshold:0,enableAutoReload:!1,load:function(t){if("picture"===t.nodeName.toLowerCase()){var e=t.querySelector("img"),r=!1;null===e&&(e=document.createElement("img"),r=!0),g&&t.getAttribute("data-iesrc")&&(e.src=t.getAttribute("data-iesrc")),t.getAttribute("data-alt")&&(e.alt=t.getAttribute("data-alt")),r&&t.append(e)}if("video"===t.nodeName.toLowerCase()&&!t.getAttribute("data-src")&&t.children){for(var a=t.children,o=void 0,i=0;i<=a.length-1;i++)(o=a[i].getAttribute("data-src"))&&(a[i].src=o);t.load()}t.getAttribute("data-poster")&&(t.poster=t.getAttribute("data-poster")),t.getAttribute("data-src")&&(t.src=t.getAttribute("data-src")),t.getAttribute("data-srcset")&&t.setAttribute("srcset",t.getAttribute("data-srcset"));var n=",";if(t.getAttribute("data-background-delimiter")&&(n=t.getAttribute("data-background-delimiter")),t.getAttribute("data-background-image"))t.style.backgroundImage="url('"+t.getAttribute("data-background-image").split(n).join("'),url('")+"')";else if(t.getAttribute("data-background-image-set")){var d=t.getAttribute("data-background-image-set").split(n),u=d[0].substr(0,d[0].indexOf(" "))||d[0];// Substring before ... 1x
u=-1===u.indexOf("url(")?"url("+u+")":u,1===d.length?t.style.backgroundImage=u:t.setAttribute("style",(t.getAttribute("style")||"")+"background-image: "+u+"; background-image: -webkit-image-set("+d+"); background-image: image-set("+d+")")}t.getAttribute("data-toggle-class")&&t.classList.toggle(t.getAttribute("data-toggle-class"))},loaded:function(){}};
/**
*
* @param {string} type
*
*/function k(t){t.setAttribute("data-loaded",!0)}var y=function(t){return"true"===t.getAttribute("data-loaded")},w=function(t){var e=1<arguments.length&&void 0!==arguments[1]?arguments[1]:document;return t instanceof Element?[t]:t instanceof NodeList?t:e.querySelectorAll(t)};return function(){var r,a,e,o=0<arguments.length&&void 0!==arguments[0]?arguments[0]:".lozad",t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},i=Object.assign({},p,t),n=i.root,d=i.rootMargin,u=i.threshold,g=i.enableAutoReload,s=i.load,c=i.loaded,l=void 0,b=void 0;v("IntersectionObserver")&&(l=new IntersectionObserver((r=s,a=c,function(t,e){t.forEach(function(t){(0<t.intersectionRatio||t.isIntersecting)&&(e.unobserve(t.target),y(t.target)||(r(t.target),k(t.target),a(t.target)))})}),{root:n,rootMargin:d,threshold:u})),v("MutationObserver")&&g&&(b=new MutationObserver((e=s,function(t){t.forEach(function(t){y(t.target)&&"attributes"===t.type&&-1<h.indexOf(t.attributeName)&&e(t.target)})})));for(var f,m=w(o,n),A=0;A<m.length;A++)(f=m[A]).getAttribute("data-placeholder-background")&&(f.style.background=f.getAttribute("data-placeholder-background"));return{observe:function(){for(var t=w(o,n),e=0;e<t.length;e++)y(t[e])||(l?(b&&g&&b.observe(t[e],{subtree:!0,attributes:!0,attributeFilter:h}),l.observe(t[e])):(s(t[e]),k(t[e]),c(t[e])))},triggerLoad:function(t){y(t)||(s(t),k(t),c(t))},observer:l,mutationObserver:b}}});
+1
View File
@@ -0,0 +1 @@
"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}supersamApp.controller("ManagerLoginController",["$scope","$http","$timeout","config","$filter",function($scope,$http,$timeout,config,$filter){var managerLogin;return managerLogin=function managerLogin(){_classCallCheck(this,managerLogin),$scope.utilities.showContentOnLoad()},$scope.utilities=new UtilitiesClass(config,$filter,$timeout),$scope.managerLogin=new managerLogin,$scope.config=config}]);
+1
View File
@@ -0,0 +1 @@
"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}supersamApp.controller("NavController",["$scope","$http","$timeout","config","$filter","Upload",function($scope,$http,$timeout,config,$filter,Upload){var managerNavBar;return managerNavBar=function(){var managerNavBar=/*#__PURE__*/function(){function managerNavBar(){_classCallCheck(this,managerNavBar),this.convertAstraToBazis=this.convertAstraToBazis.bind(this)}return _createClass(managerNavBar,[{key:"convertAstraToBazis",value:function convertAstraToBazis(){var _this=this;if(!this.isSubmitting&&this.convertAstraToBazisFile)return this.isSubmitting=!0,this.errors=[],Upload.upload({url:config.urls.convertAstraToBazis,data:{file:this.convertAstraToBazisFile}}).then(function(response){var data,error,i,len,ref,results;if(data=response.data,_this.isSubmitting=!1,_this.convertAstraToBazisFile=null,data.status&&"success"===data.status)return toastr.success("\u041A\u043E\u043D\u0432\u0435\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430 "+data.originalName+" \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E \u0443\u0441\u043F\u0435\u0448\u043D\u043E"),window.location.href=config.urls.getConvertedAstraToBazisFile.replace("filename",data.convertedFilename).replace("name",data.convertedName);if(data.errors&&data.errors.length){for(ref=data.errors,results=[],(i=0,len=ref.length);i<len;i++)error=ref[i],results.push(toastr.error(error));return results}return toastr.error(config.global_labels.defaultErrorMessage.value)})["catch"](function(response){var error,i,len,ref;if(response.data&&response.data.errors)for(ref=response.data.errors,i=0,len=ref.length;i<len;i++)error=ref[i],toastr.error(error);else _this.subscribeModalErrors=["\u041E\u0448\u0438\u0431\u043A\u0430 \u043A\u043E\u043D\u0432\u0435\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F, \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435!"];return _this.isSubmitting=!1,_this.convertAstraToBazisFile=null})}}]),managerNavBar}();return managerNavBar.prototype.isSubmitting=!1,managerNavBar.prototype.errors=[],managerNavBar.prototype.convertAstraToBazisFile=null,managerNavBar}.call(this),$scope.utilities=new UtilitiesClass(config,$filter,$timeout),$scope.nav=new managerNavBar,$scope.config=config}]);
+3
View File
@@ -0,0 +1,3 @@
/*! 12.2.3 */
!window.XMLHttpRequest||window.FileAPI&&FileAPI.shouldLoad||(window.XMLHttpRequest.prototype.setRequestHeader=function(a){return function(b,c){if("__setXHR_"===b){var d=c(this);d instanceof Function&&d(this)}else a.apply(this,arguments)}}(window.XMLHttpRequest.prototype.setRequestHeader));var ngFileUpload=angular.module("ngFileUpload",[]);ngFileUpload.version="12.2.3",ngFileUpload.service("UploadBase",["$http","$q","$timeout",function(a,b,c){function d(d){function e(a){j.notify&&j.notify(a),k.progressFunc&&c(function(){k.progressFunc(a)})}function h(a){return null!=d._start&&g?{loaded:a.loaded+d._start,total:d._file&&d._file.size||a.total,type:a.type,config:d,lengthComputable:!0,target:a.target}:a}function i(){a(d).then(function(a){if(g&&d._chunkSize&&!d._finished&&d._file){var b=d._file&&d._file.size||0;e({loaded:Math.min(d._end,b),total:b,config:d,type:"progress"}),f.upload(d,!0)}else d._finished&&delete d._finished,j.resolve(a)},function(a){j.reject(a)},function(a){j.notify(a)})}d.method=d.method||"POST",d.headers=d.headers||{};var j=d._deferred=d._deferred||b.defer(),k=j.promise;return d.disableProgress||(d.headers.__setXHR_=function(){return function(a){a&&a.upload&&a.upload.addEventListener&&(d.__XHR=a,d.xhrFn&&d.xhrFn(a),a.upload.addEventListener("progress",function(a){a.config=d,e(h(a))},!1),a.upload.addEventListener("load",function(a){a.lengthComputable&&(a.config=d,e(h(a)))},!1))}}),g?d._chunkSize&&d._end&&!d._finished?(d._start=d._end,d._end+=d._chunkSize,i()):d.resumeSizeUrl?a.get(d.resumeSizeUrl).then(function(a){d._start=d.resumeSizeResponseReader?d.resumeSizeResponseReader(a.data):parseInt((null==a.data.size?a.data:a.data.size).toString()),d._chunkSize&&(d._end=d._start+d._chunkSize),i()},function(a){throw a}):d.resumeSize?d.resumeSize().then(function(a){d._start=a,d._chunkSize&&(d._end=d._start+d._chunkSize),i()},function(a){throw a}):(d._chunkSize&&(d._start=0,d._end=d._start+d._chunkSize),i()):i(),k.success=function(a){return k.then(function(b){a(b.data,b.status,b.headers,d)}),k},k.error=function(a){return k.then(null,function(b){a(b.data,b.status,b.headers,d)}),k},k.progress=function(a){return k.progressFunc=a,k.then(null,null,function(b){a(b)}),k},k.abort=k.pause=function(){return d.__XHR&&c(function(){d.__XHR.abort()}),k},k.xhr=function(a){return d.xhrFn=function(b){return function(){b&&b.apply(k,arguments),a.apply(k,arguments)}}(d.xhrFn),k},f.promisesCount++,k["finally"]&&k["finally"]instanceof Function&&k["finally"](function(){f.promisesCount--}),k}function e(a){var b={};for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c]);return b}var f=this;f.promisesCount=0,this.isResumeSupported=function(){return window.Blob&&window.Blob.prototype.slice};var g=this.isResumeSupported();this.isUploadInProgress=function(){return f.promisesCount>0},this.rename=function(a,b){return a.ngfName=b,a},this.jsonBlob=function(a){null==a||angular.isString(a)||(a=JSON.stringify(a));var b=new window.Blob([a],{type:"application/json"});return b._ngfBlob=!0,b},this.json=function(a){return angular.toJson(a)},this.isFile=function(a){return null!=a&&(a instanceof window.Blob||a.flashId&&a.name&&a.size)},this.upload=function(a,b){function c(b,c){if(b._ngfBlob)return b;if(a._file=a._file||b,null!=a._start&&g){a._end&&a._end>=b.size&&(a._finished=!0,a._end=b.size);var d=b.slice(a._start,a._end||b.size);return d.name=b.name,d.ngfName=b.ngfName,a._chunkSize&&(c.append("_chunkSize",a._chunkSize),c.append("_currentChunkSize",a._end-a._start),c.append("_chunkNumber",Math.floor(a._start/a._chunkSize)),c.append("_totalSize",a._file.size)),d}return b}function h(b,d,e){if(void 0!==d)if(angular.isDate(d)&&(d=d.toISOString()),angular.isString(d))b.append(e,d);else if(f.isFile(d)){var g=c(d,b),i=e.split(",");i[1]&&(g.ngfName=i[1].replace(/^\s+|\s+$/g,""),e=i[0]),a._fileKey=a._fileKey||e,b.append(e,g,g.ngfName||g.name)}else if(angular.isObject(d)){if(d.$$ngfCircularDetection)throw"ngFileUpload: Circular reference in config.data. Make sure specified data for Upload.upload() has no circular reference: "+e;d.$$ngfCircularDetection=!0;try{for(var j in d)if(d.hasOwnProperty(j)&&"$$ngfCircularDetection"!==j){var k=null==a.objectKey?"[i]":a.objectKey;d.length&&parseInt(j)>-1&&(k=null==a.arrayKey?k:a.arrayKey),h(b,d[j],e+k.replace(/[ik]/g,j))}}finally{delete d.$$ngfCircularDetection}}else b.append(e,d)}function i(){a._chunkSize=f.translateScalars(a.resumeChunkSize),a._chunkSize=a._chunkSize?parseInt(a._chunkSize.toString()):null,a.headers=a.headers||{},a.headers["Content-Type"]=void 0,a.transformRequest=a.transformRequest?angular.isArray(a.transformRequest)?a.transformRequest:[a.transformRequest]:[],a.transformRequest.push(function(b){var c,d=new window.FormData;b=b||a.fields||{},a.file&&(b.file=a.file);for(c in b)if(b.hasOwnProperty(c)){var e=b[c];a.formDataAppender?a.formDataAppender(d,c,e):h(d,e,c)}return d})}return b||(a=e(a)),a._isDigested||(a._isDigested=!0,i()),d(a)},this.http=function(b){return b=e(b),b.transformRequest=b.transformRequeLine truncated
!l()&&i.shouldUpdateOn("paste",d,a)){var c=[],e=b.clipboardData||b.originalEvent.clipboardData;if(e&&e.items)for(var f=0;f<e.items.length;f++)-1!==e.items[f].type.indexOf("image")&&c.push(e.items[f].getAsFile());c.length?m(c,b):n("pasteUrl",e).then(function(a){m(a,b)})}},!1),navigator.userAgent.toLowerCase().indexOf("firefox")>-1&&r("ngfEnableFirefoxPaste",a)&&(c.attr("contenteditable",!0),c.on("keypress",function(a){a.metaKey||a.ctrlKey||a.preventDefault()}))}function b(){var a=document.createElement("div");return"draggable"in a&&"ondrop"in a&&!/Edge\/12./i.test(navigator.userAgent)}ngFileUpload.directive("ngfDrop",["$parse","$timeout","$window","Upload","$http","$q",function(b,c,d,e,f,g){return{restrict:"AEC",require:"?ngModel",link:function(h,i,j,k){a(h,i,j,k,b,c,d,e,f,g)}}}]),ngFileUpload.directive("ngfNoFileDrop",function(){return function(a,c){b()&&c.css("display","none")}}),ngFileUpload.directive("ngfDropAvailable",["$parse","$timeout","Upload",function(a,c,d){return function(e,f,g){if(b()){var h=a(d.attrGetter("ngfDropAvailable",g));c(function(){h(e),h.assign&&h.assign(e,!0)})}}}])}(),ngFileUpload.service("UploadExif",["UploadResize","$q",function(a,b){function c(a,b,c,d){switch(b){case 2:return a.transform(-1,0,0,1,c,0);case 3:return a.transform(-1,0,0,-1,c,d);case 4:return a.transform(1,0,0,-1,0,d);case 5:return a.transform(0,1,1,0,0,0);case 6:return a.transform(0,1,-1,0,d,0);case 7:return a.transform(0,-1,-1,0,d,c);case 8:return a.transform(0,-1,1,0,0,c)}}function d(a){for(var b="",c=new Uint8Array(a),d=c.byteLength,e=0;d>e;e++)b+=String.fromCharCode(c[e]);return window.btoa(b)}var e=a;return e.isExifSupported=function(){return window.FileReader&&(new FileReader).readAsArrayBuffer&&e.isResizeSupported()},e.readOrientation=function(a){var c=b.defer(),d=new FileReader,e=a.slice?a.slice(0,65536):a;return d.readAsArrayBuffer(e),d.onerror=function(a){return c.reject(a)},d.onload=function(a){var b={orientation:1},d=new DataView(this.result);if(65496!==d.getUint16(0,!1))return c.resolve(b);for(var e=d.byteLength,f=2;e>f;){var g=d.getUint16(f,!1);if(f+=2,65505===g){if(1165519206!==d.getUint32(f+=2,!1))return c.resolve(b);var h=18761===d.getUint16(f+=6,!1);f+=d.getUint32(f+4,h);var i=d.getUint16(f,h);f+=2;for(var j=0;i>j;j++)if(274===d.getUint16(f+12*j,h)){var k=d.getUint16(f+12*j+8,h);return k>=2&&8>=k&&(d.setUint16(f+12*j+8,1,h),b.fixedArrayBuffer=a.target.result),b.orientation=k,c.resolve(b)}}else{if(65280!==(65280&g))break;f+=d.getUint16(f,!1)}}return c.resolve(b)},c.promise},e.applyExifRotation=function(a){if(0!==a.type.indexOf("image/jpeg"))return e.emptyPromise(a);var f=b.defer();return e.readOrientation(a).then(function(b){return b.orientation<2||b.orientation>8?f.resolve(a):void e.dataUrl(a,!0).then(function(g){var h=document.createElement("canvas"),i=document.createElement("img");i.onload=function(){try{h.width=b.orientation>4?i.height:i.width,h.height=b.orientation>4?i.width:i.height;var g=h.getContext("2d");c(g,b.orientation,i.width,i.height),g.drawImage(i,0,0);var j=h.toDataURL(a.type||"image/WebP",.934);j=e.restoreExif(d(b.fixedArrayBuffer),j);var k=e.dataUrltoBlob(j,a.name);f.resolve(k)}catch(l){return f.reject(l)}},i.onerror=function(){f.reject()},i.src=g},function(a){f.reject(a)})},function(a){f.reject(a)}),f.promise},e.restoreExif=function(a,b){var c={};return c.KEY_STR="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c.encode64=function(a){var b,c,d,e,f,g="",h="",i="",j=0;do b=a[j++],c=a[j++],h=a[j++],d=b>>2,e=(3&b)<<4|c>>4,f=(15&c)<<2|h>>6,i=63&h,isNaN(c)?f=i=64:isNaN(h)&&(i=64),g=g+this.KEY_STR.charAt(d)+this.KEY_STR.charAt(e)+this.KEY_STR.charAt(f)+this.KEY_STR.charAt(i),b=c=h="",d=e=f=i="";while(j<a.length);return g},c.restore=function(a,b){a.match("data:image/jpeg;base64,")&&(a=a.replace("data:image/jpeg;base64,",""));var c=this.decode64(a),d=this.slice2Segments(c),e=this.exifManipulation(b,d);return"data:image/jpeg;base64,"+this.encode64(e)},c.exifManipulation=function(a,b){var c=this.getExifArray(b),d=this.insertExif(a,c);return new Uint8Array(d)},c.getExifArray=function(a){for(var b,c=0;c<a.length;c++)if(b=a[c],255===b[0]&225===b[1])return b;return[]},c.insertExif=function(a,b){var c=a.replace("data:image/jpeg;base64,",""),d=this.decode64(c),e=d.indexOf(255,3),f=d.slice(0,e),g=d.slice(e),h=f;return h=h.concat(b),h=h.concat(g)},c.slice2Segments=function(a){for(var b=0,c=[];;){if(255===a[b]&218===a[b+1])break;if(255===a[b]&216===a[b+1])b+=2;else{var d=256*a[b+2]+a[b+3],e=b+d+2,f=a.slice(b,e);c.push(f),b=e}if(b>a.length)break}return c},c.decode64=function(a){var b,c,d,e,f,g="",h="",i=0,j=[],k=/[^A-Za-z0-9\+\/\=]/g;k.exec(a)&&console.log("There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, NaNExpect errors in decoding."),a=a.replace(/[^A-Za-z0-9\+\/\=]/g,"");do d=this.KEY_STR.indexOf(a.charAt(i++)),e=this.KEY_STR.indexOf(a.charAt(i++)),f=this.KEY_STR.indexOf(a.charAt(i++)),h=this.KEY_STR.indexOf(a.charAt(i++)),b=d<<Line truncated
+257
View File
@@ -0,0 +1,257 @@
supersamApp.controller('OrderPaymentController', [
'$scope',
'$http',
'$timeout',
'$interval',
'$filter',
'config',
function($scope,
$http,
$timeout,
$interval,
$filter,
config) {
var orderPaymentApp;
orderPaymentApp = (function() {
class orderPaymentApp {
constructor() {
this.showPaymentInfoModal = this.showPaymentInfoModal.bind(this);
this.showPaymentSuccessModal = this.showPaymentSuccessModal.bind(this);
this.pageReload = this.pageReload.bind(this);
this.pay = this.pay.bind(this);
this.payQr = this.payQr.bind(this);
this.showElplatPaymentModal = this.showElplatPaymentModal.bind(this);
this.startEplatPaymentStatusCheck = this.startEplatPaymentStatusCheck.bind(this);
this.openElpatQrCodeUrl = this.openElpatQrCodeUrl.bind(this);
$scope.utilities.showContentOnLoad();
}
showPaymentInfoModal() {
return $timeout(() => {
return angular.element("#paymentInfoModal").modal("show");
});
}
showPaymentSuccessModal() {
var dataToSend;
$timeout(() => {
return angular.element("#paymentSuccessModal").modal("show");
});
angular.element("#paymentSuccessModal").on("hidden.bs.modal", () => {
return $scope.orderPayment.pageReload();
});
dataToSend = {
encOrderId: config.savedOrderData.encOrderId
};
return $http({
method: 'POST',
url: config.getPaymentStatusUrl,
data: dataToSend,
timeout: 60000
}).then((response) => {
var data;
data = response.data;
if (data.status) {
return config.savedOrderData.payment = data.payment;
}
});
}
pageReload() {
return window.location.reload();
}
pay() {
var dataToSend;
if (!this.isSubmitting && !this.isStatusChecking) {
this.isSubmitting = true;
this.isStatusChecking = true;
dataToSend = {
encOrderId: config.savedOrderData.encOrderId
};
return $http({
method: 'POST',
url: config.getPaymentStatusUrl,
data: dataToSend,
timeout: 60000
}).then((response) => {
var data, params, widget;
this.isStatusChecking = false;
if (response.data) {
data = response.data;
if (data.status) {
config.savedOrderData.payment = data.payment;
return this.pageReload();
} else {
params = {
publicId: config.paymentPublicId,
description: 'Оплата счета ' + config.savedOrderData.data.invoice_no + ', СуперСам',
amount: parseFloat(config.savedOrderData.data.summa_order_decimal),
currency: 'RUB',
invoiceId: config.savedOrderData.data.invoice_no,
data: {
encOrderId: config.savedOrderData.encOrderId
},
skin: 'mini',
requireEmail: false
};
if (config.savedOrderData.data.email && config.savedOrderData.data.email.length) {
params.accountId = config.savedOrderData.data.email;
}
this.isSubmitting = true;
widget = new cp.CloudPayments();
return widget.charge(params, (function(options) {
angular.element("#orderPaymentButton").hide();
$scope.orderPayment.showPaymentSuccessModal();
}), function() {
$scope.orderPayment.pageReload();
});
}
}
}).catch(() => {
return this.isStatusChecking = false;
});
}
}
payQr() {
var dataToSend;
if (!this.isSubmitting && !this.isStatusQrChecking) {
this.isSubmitting = true;
this.isStatusQrChecking = true;
dataToSend = {
encOrderId: config.savedOrderData.encOrderId
};
return $http({
method: 'POST',
url: config.getPaymentStatusUrl,
data: dataToSend,
timeout: 60000
}).then((response) => {
var data;
this.isStatusQrChecking = false;
if (response.data) {
data = response.data;
if (data.status) {
config.savedOrderData.payment = data.payment;
return this.pageReload();
} else {
return $http({
method: 'POST',
url: config.createElplatPaymentQrUrl,
data: dataToSend,
timeout: 60000
}).then((response) => {
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status) {
this.elplatQRcode = data.qrInfo.qrData;
this.elplatQrcId = data.qrInfo.qrcId;
this.elplatQrPaymentPurposeL1 = data.paymentPurposeL1;
this.elplatQrPaymentPurposeL2 = data.paymentPurposeL2;
this.elplatQrPaymentAmount = data.paymentAmount;
new QRCode(document.getElementById("elplatQRcode"), {
text: this.elplatQRcode,
width: 300,
height: 300,
correctLevel: QRCode.CorrectLevel.M
});
return this.showElplatPaymentModal();
}
}
}).catch(() => {
return this.isSubmitting = false;
});
}
}
}).catch(() => {
return this.isStatusQrChecking = false;
});
}
}
showElplatPaymentModal() {
$timeout(() => {
return angular.element("#elplat-payment-modal").modal("show");
});
angular.element("#elplat-payment-modal").on("hidden.bs.modal", () => {
return $scope.orderPayment.pageReload();
});
return this.startEplatPaymentStatusCheck();
}
startEplatPaymentStatusCheck() {
if (this.elplatStatusCheckPromise) {
$interval.cancel(this.elplatStatusCheckPromise);
this.elplatStatusCheckPromise = null;
}
return this.elplatStatusCheckPromise = $interval(() => {
var dataToSend;
dataToSend = {
qrcId: this.elplatQrcId
};
return $http({
method: 'POST',
url: config.getElplatPaymentStatusUrl,
data: dataToSend,
timeout: 60000
}).then((response) => {
var data;
if (response.data) {
data = response.data;
if (data.status !== 'pending') {
$interval.cancel(this.elplatStatusCheckPromise);
this.elplatStatusCheckPromise = null;
if (data.status === 'failure') {
angular.element(".elplatFailureIcon").addClass('visible');
angular.element(".elplatInfo").hide();
angular.element(".elplatFailureStatus").show();
angular.element('.mobile-pay-button-wrap').hide();
}
if (data.status === 'success') {
angular.element(".elplatOkIcon").addClass('visible');
angular.element(".elplatInfo").hide();
angular.element(".elplatSuccessStatus").show();
return angular.element('.mobile-pay-button-wrap').hide();
}
}
}
});
}, 5000);
}
openElpatQrCodeUrl() {
return window.open(this.elplatQRcode, '_blank');
}
};
orderPaymentApp.prototype.isSubmitting = false;
orderPaymentApp.prototype.isStatusChecking = false;
orderPaymentApp.prototype.isStatusQrChecking = false;
orderPaymentApp.prototype.elplatQRcode = "";
orderPaymentApp.prototype.elplatQrcId = "";
orderPaymentApp.prototype.elplatQrPaymentPurposeL1 = "";
orderPaymentApp.prototype.elplatQrPaymentPurposeL2 = "";
orderPaymentApp.prototype.elplatQrPaymentAmount = "";
orderPaymentApp.prototype.elplatStatusCheckPromise = null;
return orderPaymentApp;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout);
return $scope.orderPayment = new orderPaymentApp();
}
]);
+442
View File
@@ -0,0 +1,442 @@
supersamApp.controller('OrderPaymentController', [
'$scope',
'$http',
'$timeout',
'$filter',
'config',
'$interval',
function($scope,
$http,
$timeout,
$filter,
config,
$interval) {
var orderPaymentApp;
orderPaymentApp = (function() {
class orderPaymentApp {
constructor() {
this.openDateFromDatepicker = this.openDateFromDatepicker.bind(this);
this.openDateToDatepicker = this.openDateToDatepicker.bind(this);
this.processSearchResponse = this.processSearchResponse.bind(this);
this.searchOrders = this.searchOrders.bind(this);
this.adminDeleteOrder = this.adminDeleteOrder.bind(this);
this.openElplatPaymentHistoryModal = this.openElplatPaymentHistoryModal.bind(this);
this.adminShowElplatPaymentHistory = this.adminShowElplatPaymentHistory.bind(this);
this.makeElplatRefund = this.makeElplatRefund.bind(this);
this.openCloudPaymentsPaymentHistoryModal = this.openCloudPaymentsPaymentHistoryModal.bind(this);
this.adminShowCloudPaymentsPaymentHistory = this.adminShowCloudPaymentsPaymentHistory.bind(this);
this.makeCloudPaymentsRefund = this.makeCloudPaymentsRefund.bind(this);
this.getPaymentGatewayLabel = this.getPaymentGatewayLabel.bind(this);
$scope.utilities.showContentOnLoad();
$timeout(() => {
return angular.element("#orderPaymentSearch").focus();
});
this.dateFrom = new Date();
this.dateFrom.setDate(this.dateFrom.getDate() - 7);
this.dateTo = new Date(); //+7 days
config.sortFields = {
ordersList: {
field: 'expiry_date',
direction: 'desc'
}
};
}
openDateFromDatepicker() {
return this.dateFromDatepicker.opened = true;
}
openDateToDatepicker() {
return this.dateToDatepicker.opened = true;
}
processSearchResponse(data) {
this.errors = [];
this.ordersList = data.ordersList;
this.totalOrders = data.totalOrders;
this.paidCount = data.paidCount;
this.paidTotal = data.paidTotal;
this.unpaidCount = data.unpaidCount;
this.unpaidTotal = data.unpaidTotal;
this.pagination.totalItems = data.totalOrders;
this.pagination.totalPages = this.pagination.numPerPage < 1 ? 1 : Math.ceil(this.pagination.totalItems / this.pagination.numPerPage);
this.pagination.totalPages = Math.max(this.pagination.totalPages || 0, 1);
return $timeout(() => {
$('[data-toggle="tooltip"]').tooltip();
return angular.element("body").scrollTo('#table-order-payment-head', 50, {
offset: {
top: -300
}
});
});
}
searchOrders() {
var dataToSend;
this.search = angular.copy(this.search.trim());
$timeout(() => {
return angular.element("#orderPaymentSearch").val(this.search);
});
if (!this.isSubmitting) {
this.isSubmitting = true;
$timeout(() => {
return $('[data-toggle="tooltip"]').tooltip('dispose');
});
dataToSend = {
action: "searchOrders",
search: this.search,
paymentStatus: this.paymentStatus,
paymentGateway: this.paymentGateway,
currentPage: this.pagination.currentPage,
numPerPage: this.pagination.numPerPage,
sortFields: config.sortFields.ordersList,
dateFrom: this.dateFrom,
dateTo: this.dateTo
};
return $http.post(config.urls.orderPayment, dataToSend).then((response) => {
var data;
data = response.data;
this.isSubmitting = false;
this.usedSearch = angular.copy(this.search);
if (data) {
if (data.status && (data.status === "success")) {
return this.processSearchResponse(data);
} else {
if (data.errors && data.errors.length) {
return this.errors = data.errors;
} else {
return toastr.error(config.global_labels.defaultErrorMessage.value);
}
}
}
}).catch((response) => {
if (response.data && response.data.errors) {
this.errors = response.data.errors;
} else {
toastr.error(config.global_labels.defaultErrorMessage.value);
}
this.usedSearch = angular.copy(this.search);
return this.isSubmitting = false;
});
}
}
adminDeleteOrder(adminDeleteOrder) {
var dataToSend;
if (!this.isDeleteOrderSubmitting) {
if (confirm("Вы уверены, что хотите удалить данный счет?")) {
this.isDeleteOrderSubmitting = true;
dataToSend = {
id: adminDeleteOrder.id,
search: this.search,
paymentStatus: this.paymentStatus,
paymentGateway: this.paymentGateway,
currentPage: this.pagination.currentPage,
numPerPage: this.pagination.numPerPage,
sortFields: config.sortFields.ordersList
};
return $http({
method: 'POST',
url: config.urls.orderPaymentAdminDeleteOrder,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
this.isDeleteOrderSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
this.processSearchResponse(data);
return toastr.success("Счет был успешно удалён");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isDeleteOrderSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
openElplatPaymentHistoryModal() {
return $timeout(() => {
return angular.element("#elplatPaymentHistoryModal").modal("show");
});
}
adminShowElplatPaymentHistory(orderId, order_num, showElplatHistoryModalOnSuccess = true) {
var dataToSend;
dataToSend = {
id: orderId
};
return $http({
method: 'POST',
url: config.urls.getElplatPaymentHistory,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
this.elplatPaymentModalData = {
orderId: orderId,
order_num: order_num,
history: data.history,
refundDescription: data.refundDescription,
refundAmount: data.refundAmount
};
if (showElplatHistoryModalOnSuccess) {
return this.openElplatPaymentHistoryModal();
}
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
makeElplatRefund() {
var dataToSend;
if (!this.isMakingElplatRefundInProgress) {
if (confirm("Вы уверены, что хотите вернуть средства по данному счету?")) {
this.isMakingElplatRefundInProgress = true;
dataToSend = {
id: this.elplatPaymentModalData.orderId,
refundDescription: this.elplatPaymentModalData.refundDescription,
refundAmount: this.elplatPaymentModalData.refundAmount
};
return $http({
method: 'POST',
url: config.urls.makeElplatRefund,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
this.isMakingElplatRefundInProgress = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
toastr.success("Возврат средств был произведен успешно.");
return this.adminShowElplatPaymentHistory(this.elplatPaymentModalData.orderId, "", false);
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isMakingElplatRefundInProgress = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
openCloudPaymentsPaymentHistoryModal() {
$timeout(() => {
return angular.element("#cloudPaymentsPaymentHistoryModal").modal("show");
});
return angular.element("#cloudPaymentsPaymentHistoryModal").on("hidden.bs.modal", () => {
if ($scope.orderPayment.cloudPaymentsPaymentModalDataPromise) {
$interval.cancel($scope.orderPayment.cloudPaymentsPaymentModalDataPromise);
return $scope.orderPayment.cloudPaymentsPaymentModalDataPromise = null;
}
});
}
adminShowCloudPaymentsPaymentHistory(orderId, order_num, showCloudPaymentsHistoryModalOnSuccess = true) {
var dataToSend;
dataToSend = {
id: orderId
};
return $http({
method: 'POST',
url: config.urls.getCloudPaymentsPaymentHistory,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
this.cloudPaymentsPaymentModalData = {
orderId: orderId,
order_num: order_num,
history: data.history,
refundAmount: data.refundAmount
};
if (showCloudPaymentsHistoryModalOnSuccess) {
return this.openCloudPaymentsPaymentHistoryModal();
}
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
makeCloudPaymentsRefund() {
var dataToSend;
if (!this.isMakingCloudPaymentsRefundInProgress) {
if (confirm("Вы уверены, что хотите вернуть средства по данному счету?")) {
this.isMakingCloudPaymentsRefundInProgress = true;
dataToSend = {
id: this.cloudPaymentsPaymentModalData.orderId,
refundAmount: this.cloudPaymentsPaymentModalData.refundAmount
};
return $http({
method: 'POST',
url: config.urls.makeCloudPaymentsRefund,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data;
this.isMakingCloudPaymentsRefundInProgress = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
toastr.success("Возврат средств был произведен успешно.");
this.adminShowCloudPaymentsPaymentHistory(this.cloudPaymentsPaymentModalData.orderId, "", false);
return this.cloudPaymentsPaymentModalDataPromise = $interval(() => {
return this.adminShowCloudPaymentsPaymentHistory(this.cloudPaymentsPaymentModalData.orderId, "", false);
}, 2000);
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isMakingCloudPaymentsRefundInProgress = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
getPaymentGatewayLabel(paymentGateway) {
var result;
result = "";
if (paymentGateway && (paymentGateway.length > 0)) {
switch (paymentGateway) {
case "Elplat":
return result = "СБП";
case "CloudPayments":
return result = "РНКБ";
}
}
}
};
orderPaymentApp.prototype.isSubmitting = false;
orderPaymentApp.prototype.isDeleteOrderSubmitting = false;
orderPaymentApp.prototype.errors = [];
orderPaymentApp.prototype.search = "";
orderPaymentApp.prototype.paymentStatus = "";
orderPaymentApp.prototype.paymentGateway = "";
orderPaymentApp.prototype.usedSearch = null;
orderPaymentApp.prototype.ordersList = [];
orderPaymentApp.prototype.elplatPaymentModalData = {};
orderPaymentApp.prototype.isMakingElplatRefundInProgress = false;
orderPaymentApp.prototype.cloudPaymentsPaymentModalData = {};
orderPaymentApp.prototype.isMakingCloudPaymentsRefundInProgress = false;
orderPaymentApp.prototype.cloudPaymentsPaymentModalDataPromise = null;
orderPaymentApp.prototype.dateFromDatepicker = {
opened: false
};
orderPaymentApp.prototype.dateFromDatepickerOptions = {
formatYear: 'yyyy',
startingDay: 1,
showWeeks: false
};
orderPaymentApp.prototype.dateToDatepicker = {
opened: false
};
orderPaymentApp.prototype.dateToDatepickerOptions = {
formatYear: 'yyyy',
startingDay: 1,
showWeeks: false
};
orderPaymentApp.prototype.pagination = {
currentPage: 1,
numPerPage: 25,
totalItems: 0,
onWatchChange: (newValue,
oldValue) => {
if (newValue !== oldValue) {
return $scope.orderPayment.searchOrders();
}
},
setPage: (page) => {
if (page !== $scope.orderPayment.pagination.currentPage) {
$scope.orderPayment.pagination.currentPage = page;
}
$scope.orderPayment.pagination.totalPages = 0;
$scope.orderPayment.ordersList = [];
return $scope.orderPayment.searchOrders();
}
};
return orderPaymentApp;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout);
$scope.orderPayment = new orderPaymentApp();
$scope.orderPayment.searchOrders();
$scope.$watch("orderPayment.pagination.currentPage",
$scope.orderPayment.pagination.onWatchChange);
$scope.$watch("config.sortFields.ordersList.field",
$scope.orderPayment.pagination.onWatchChange);
return $scope.$watch("config.sortFields.ordersList.direction",
$scope.orderPayment.pagination.onWatchChange);
}
]);
+1
View File
@@ -0,0 +1 @@
"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}supersamApp.controller("OrdersInfoController",["$scope","$http","$timeout","localStorageService","$filter","config","$interval",function($scope,$http,$timeout,localStorageService,$filter,config,$interval){var ordersInfoApp;return ordersInfoApp=function(){var ordersInfoApp=/*#__PURE__*/function(){function ordersInfoApp(){_classCallCheck(this,ordersInfoApp),this.cleanup=this.cleanup.bind(this),this.changePhone=this.changePhone.bind(this),this.processSearchResponse=this.processSearchResponse.bind(this),this.pageReload=this.pageReload.bind(this),this.setCookie=this.setCookie.bind(this),this.searchOrders=this.searchOrders.bind(this),this.clearConfirmCodeResendTimeoutPromise=this.clearConfirmCodeResendTimeoutPromise.bind(this),this.startConfirmCodeResendTimeout=this.startConfirmCodeResendTimeout.bind(this),this.tryToAuthorizePhone=this.tryToAuthorizePhone.bind(this),$scope.utilities.showContentOnLoad(),config.isPhoneAuthorized&&(config.sortFields={ordersList:{field:"created",direction:"desc"}},this.searchOrders())}return _createClass(ordersInfoApp,[{key:"cleanup",value:function cleanup(){return this.errors=[],this.isSubmitting=!1,this.warnings=[]}},{key:"changePhone",value:function changePhone(){return this.setCookie("oip","",-1),this.pageReload()}},{key:"processSearchResponse",value:function processSearchResponse(data){var _Mathmax=Math.max,_Mathceil=Math.ceil;return this.errors=[],this.ordersList=data.ordersList,this.totalOrders=data.totalOrders,this.ordersTotalSum=data.ordersTotalSum,this.pagination.totalItems=data.totalOrders,this.pagination.totalPages=1>this.pagination.numPerPage?1:_Mathceil(this.pagination.totalItems/this.pagination.numPerPage),this.pagination.totalPages=_Mathmax(this.pagination.totalPages||0,1),$timeout(function(){return angular.element("body").scrollTo("#table-order-payment-head",50,{offset:{top:-300}})})}},{key:"pageReload",value:function pageReload(){return window.location.reload()}},{key:"setCookie",value:function setCookie(name,value,days){var date,expires;return expires="",days&&(date=new Date,date.setTime(date.getTime()+1e3*(60*(60*(24*days)))),expires="; expires="+date.toUTCString()),document.cookie=name+"="+(value||"")+expires+"; path=/"}},{key:"searchOrders",value:function searchOrders(){var dataToSend,_this=this;if(!this.isSubmitting)return this.isSubmitting=!0,dataToSend={action:"searchOrders",currentPage:this.pagination.currentPage,numPerPage:this.pagination.numPerPage,sortFields:config.sortFields.ordersList},$http.post(config.ordersInfoUrl,dataToSend).then(function(response){var data;if(data=response.data,_this.isSubmitting=!1,data)return data.isPhoneAuthorized?data.status&&"success"===data.status?_this.processSearchResponse(data):data.errors&&data.errors.length?_this.errors=data.errors:_this.errors=[config.global_labels.defaultErrorMessage.value]:(toastr.warning("\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C \u043D\u0435 \u0430\u0432\u0442\u043E\u0440\u0438\u0437\u043E\u0432\u0430\u043D!"),$timeout(function(){return _this.setCookie("oip","",-1),_this.pageReload()},1200))})["catch"](function(response){return _this.errors=response.data&&response.data.errors?response.data.errors:[config.global_labels.defaultErrorMessage.value],_this.isSubmitting=!1})}},{key:"clearConfirmCodeResendTimeoutPromise",value:function clearConfirmCodeResendTimeoutPromise(){if(this.confirmCodeResendTimeoutPromise)return $interval.cancel(this.confirmCodeResendTimeoutPromise),this.confirmCodeResendTimeoutPromise=null}},{key:"startConfirmCodeResendTimeout",value:function startConfirmCodeResendTimeout(){var _this2=this;return this.confirmCodeResendTimeoutPromise=$interval(function(){if(_this2.confirmCodeResendTimeout--,0>=_this2.confirmCodeResendTimeout)return _this2.clearConfirmCodeResendTimeoutPromise()},1e3)}},{key:"tryToAuthorizePhone",value:function tryToAuthorizePhone(step){var dataToSend,_this3=this,cleanupConfirmCodeHash=!(1<arguments.length&&void 0!==arguments[1])||arguments[1];switch(step){case"enterPhone":if(!this.isSubmitting)return this.isSubmitting=!0,this.errors=[],this.confirmCode="",cleanupConfirmCodeHash&&(this.confirmCodeHash=""),this.tooManyCodeInputRetries=!1,this.confirmCodeResendTimeout=0,this.clearConfirmCodeResendTimeoutPromise(),dataToSend={action:"sendConfirmCode",phoneToAuthorize:this.phoneToAuthorize,confirmCodeHash:this.confirmCoLine truncated
@@ -0,0 +1 @@
"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}supersamApp.controller("OrdersInfoController",["$scope","$http","$timeout","$filter","config",function($scope,$http,$timeout,$filter,config){var ordersInfoApp;return ordersInfoApp=function(){var ordersInfoApp=/*#__PURE__*/function(){function ordersInfoApp(){_classCallCheck(this,ordersInfoApp),this.processSearchResponse=this.processSearchResponse.bind(this),this.searchOrders=this.searchOrders.bind(this),this.adminDeleteOrder=this.adminDeleteOrder.bind(this),this.showOrderDetails=this.showOrderDetails.bind(this),$scope.utilities.showContentOnLoad(),$timeout(function(){return angular.element("#ordersInfoSearch").focus()}),config.sortFields={ordersList:{field:"created",direction:"desc"}}}return _createClass(ordersInfoApp,[{key:"processSearchResponse",value:function processSearchResponse(data){var _Mathmax=Math.max,_Mathceil=Math.ceil;return this.errors=[],this.ordersList=data.ordersList,this.totalOrders=data.totalOrders,this.ordersTotalSum=data.ordersTotalSum,this.pagination.totalItems=data.totalOrders,this.pagination.totalPages=1>this.pagination.numPerPage?1:_Mathceil(this.pagination.totalItems/this.pagination.numPerPage),this.pagination.totalPages=_Mathmax(this.pagination.totalPages||0,1),$timeout(function(){return $("[data-toggle=\"tooltip\"]").tooltip(),angular.element("body").scrollTo("#table-order-payment-head",50,{offset:{top:-300}})})}},{key:"searchOrders",value:function searchOrders(){var dataToSend,_this=this;if(this.search=angular.copy(this.search.trim()),$timeout(function(){return angular.element("#ordersInfoSearch").val(_this.search)}),!this.isSubmitting)return this.isSubmitting=!0,$timeout(function(){return $("[data-toggle=\"tooltip\"]").tooltip("dispose")}),dataToSend={action:"searchOrders",search:this.search,currentPage:this.pagination.currentPage,numPerPage:this.pagination.numPerPage,sortFields:config.sortFields.ordersList},$http.post(config.urls.ordersInfo,dataToSend).then(function(response){var data;if(data=response.data,_this.isSubmitting=!1,_this.usedSearch=angular.copy(_this.search),data)return data.status&&"success"===data.status?_this.processSearchResponse(data):data.errors&&data.errors.length?_this.errors=data.errors:toastr.error(config.global_labels.defaultErrorMessage.value)})["catch"](function(response){return response.data&&response.data.errors?_this.errors=response.data.errors:toastr.error(config.global_labels.defaultErrorMessage.value),_this.usedSearch=angular.copy(_this.search),_this.isSubmitting=!1})}},{key:"adminDeleteOrder",value:function adminDeleteOrder(_adminDeleteOrder){var dataToSend,_this2=this;if(!this.isDeleteOrderSubmitting&&confirm("\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0434\u0430\u043D\u043D\u044B\u0439 \u0441\u0447\u0435\u0442?"))return this.isDeleteOrderSubmitting=!0,dataToSend={id:_adminDeleteOrder.id,search:this.search,currentPage:this.pagination.currentPage,numPerPage:this.pagination.numPerPage,sortFields:config.sortFields.ordersList},$http({method:"POST",url:config.urls.ordersInfoAdminDeleteOrder,data:dataToSend,timeout:3e4}).then(function(response){var data;if(_this2.isDeleteOrderSubmitting=!1,response.data){if(data=response.data,data.status&&"success"===data.status)return _this2.processSearchResponse(data),toastr.success("\u0421\u0447\u0435\u0442 \u0431\u044B\u043B \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0443\u0434\u0430\u043B\u0451\u043D");if(data.warning&&toastr.warning(data.warning),data.error)return toastr.warning(data.error)}})["catch"](function(){return _this2.isDeleteOrderSubmitting=!1,toastr.error(config.global_labels.defaultErrorMessage.value)})}},{key:"showOrderDetails",value:function showOrderDetails(order){return this.orderDetailsModalData=angular.copy(order),$timeout(function(){return angular.element("#orderDetailsModal").modal("show")})}}]),ordersInfoApp}();return ordersInfoApp.prototype.isSubmitting=!1,ordersInfoApp.prototype.isDeleteOrderSubmitting=!1,ordersInfoApp.prototype.errors=[],ordersInfoApp.prototype.search="",ordersInfoApp.prototype.usedSearch=null,ordersInfoApp.prototype.ordersList=[],ordersInfoApp.prototype.orderDetailsModalData={},ordersInfoApp.prototype.pagination={currentPage:1,numPerPage:25,totalItems:0,onWatchChange:function onWatchChange(newValue,oldValue){if(newValue!==oldValue)reLine truncated
@@ -0,0 +1 @@
"use strict";function _typeof(obj){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function _typeof(obj){return typeof obj}:function _typeof(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}supersamApp.controller("OrdersInfoSettingsController",["$scope","$http","$timeout","config","$filter","Upload",function($scope,$http,$timeout,config,$filter){var ordersInfoSettings;return ordersInfoSettings=function(){var ordersInfoSettings=/*#__PURE__*/function(){function ordersInfoSettings(){_classCallCheck(this,ordersInfoSettings),this.saveSettingsGroup=this.saveSettingsGroup.bind(this),this.isArray=this.isArray.bind(this),$scope.utilities.showContentOnLoad()}return _createClass(ordersInfoSettings,[{key:"saveSettingsGroup",value:function saveSettingsGroup(group){var dataToSend,settings,_this=this,subId=1<arguments.length&&void 0!==arguments[1]?arguments[1]:"";if(!this.isSubmitting)return this.isSubmitting=!0,dataToSend={action:"saveGroup",settingsGroup:group},"common"===group?settings={common:config.common}:(settings={},settings[group]=config[group]),(dataToSend.settings=settings,$http({method:"POST",url:config.urls.ordersInfoSaveSettings,data:dataToSend,timeout:3e4}).then(function(response){var data;if(_this.isSubmitting=!1,response.data)if(data=response.data,data.status&&"success"===data.status){if(toastr.success("\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0431\u044B\u043B\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B."),$scope.utilities.setUpdateDates(group,data,config.ordersInfo_updates),$scope[group+"EditForm"])return $scope[group+"EditForm"].$setPristine();}else if(data.warning&&toastr.warning(data.warning),data.error)return toastr.warning(data.error)})["catch"](function(){return _this.isSubmitting=!1,toastr.error(config.global_labels.defaultErrorMessage.value)}))}},{key:"isArray",value:function isArray(value){return value&&"object"===_typeof(value)&&"number"==typeof value.length&&"function"==typeof value.splice&&!value.propertyIsEnumerable("length")}}]),ordersInfoSettings}();return ordersInfoSettings.prototype.isSubmitting=!1,ordersInfoSettings.prototype.error="",ordersInfoSettings.prototype.warning="",ordersInfoSettings.prototype.manufacturersSelect=null,ordersInfoSettings}.call(this),$scope.config=config,$scope.utilities=new UtilitiesClass(config,$filter,$timeout),$scope.settings=new ordersInfoSettings}]);
+4
View File
@@ -0,0 +1,4 @@
/*
Copyright (C) Federico Zivolo 2017
Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
*/(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=window.getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var f=a.commonAncestorContainer;if(e!==f&&t!==f||i.contains(n))return p(f)?f:r(f);var l=s(e);return l.host?d(l.host,t):d(e,s(t).host)}function a(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',i=e.nodeName;if('BODY'===i||'HTML'===i){var n=window.document.documentElement,r=window.document.scrollingElement||n;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=a(t,'top'),n=a(t,'left'),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}function l(e,t){var o='x'===t?'Left':'Top',i='Left'==o?'Right':'Bottom';return+e['border'+o+'Width'].split('px')[0]+ +e['border'+i+'Width'].split('px')[0]}function m(e,t,o,i){return _(t['offset'+e],o['client'+e],o['offset'+e],ie()?o['offset'+e]+i['margin'+('Height'===e?'Top':'Left')]+i['margin'+('Height'===e?'Bottom':'Right')]:0)}function h(){var e=window.document.body,t=window.document.documentElement,o=ie()&&window.getComputedStyle(t);return{height:m('Height',e,t,o),width:m('Width',e,t,o)}}function c(e){return se({},e,{right:e.left+e.width,bottom:e.top+e.height})}function g(e){var o={};if(ie())try{o=e.getBoundingClientRect();var i=a(e,'top'),n=a(e,'left');o.top+=i,o.left+=n,o.bottom+=i,o.right+=n}catch(e){}else o=e.getBoundingClientRect();var r={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},p='HTML'===e.nodeName?h():{},s=p.width||e.clientWidth||r.right-r.left,d=p.height||e.clientHeight||r.bottom-r.top,f=e.offsetWidth-s,m=e.offsetHeight-d;if(f||m){var g=t(e);f-=l(g,'x'),m-=l(g,'y'),r.width-=f,r.height-=m}return c(r)}function u(e,o){var i=ie(),r='HTML'===o.nodeName,p=g(e),s=g(o),d=n(e),a=t(o),l=+a.borderTopWidth.split('px')[0],m=+a.borderLeftWidth.split('px')[0],h=c({top:p.top-s.top-l,left:p.left-s.left-m,width:p.width,height:p.height});if(h.marginTop=0,h.marginLeft=0,!i&&r){var u=+a.marginTop.split('px')[0],b=+a.marginLeft.split('px')[0];h.top-=l-u,h.bottom-=l-u,h.left-=m-b,h.right-=m-b,h.marginTop=u,h.marginLeft=b}return(i?o.contains(d):o===d&&'BODY'!==d.nodeName)&&(h=f(h,o)),h}function b(e){var t=window.document.documentElement,o=u(e,t),i=_(t.clientWidth,window.innerWidth||0),n=_(t.clientHeight,window.innerHeight||0),r=a(t),p=a(t,'left'),s={top:r-o.top+o.marginTop,left:p-o.left+o.marginLeft,width:i,height:n};return c(s)}function y(e){var i=e.nodeName;return'BODY'===i||'HTML'===i?!1:'fixed'===t(e,'position')||y(o(e))}function w(e,t,i,r){var p={top:0,left:0},s=d(e,t);if('viewport'===r)p=b(s);else{var a;'scrollParent'===r?(a=n(o(e)),'BODY'===a.nodeName&&(a=window.document.documentElement)):'window'===r?a=window.document.documentElement:a=r;var f=u(a,s);if('HTML'===a.nodeName&&!y(s)){var l=h(),m=l.height,c=l.width;p.top+=f.top-f.marginTop,p.bottom=m+f.top,p.left+=f.left-f.marginLeft,p.right=c+f.left}else p=f}return p.left+=i,p.top+=i,p.right-=i,p.bottom-=i,p}function v(e){var t=e.width,o=e.height;return t*o}function E(e,t,o,i,n){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=w(o,i,r,n),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return se({key:e},s[e],{area:v(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),f=0<a.length?a[0].key:d[0].key,l=e.split('-')[1];return f+(l?'-'+l:'')}function x(e,t,o){var i=d(t,o);return u(o,i)}function O(e){var t=window.getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight),n={width:e.offsetWidth+i,height:e.offsetHeight+o};return n}function L(e){var t={left:'rightLine truncated
+3
View File
@@ -0,0 +1,3 @@
var QRCode;!function(){function t(t){this.mode=o.MODE_8BIT_BYTE,this.data=t,this.parsedData=[];for(let t=0,e=this.data.length;t<e;t++){let e=[],o=this.data.charCodeAt(t);o>65536?(e[0]=240|(1835008&o)>>>18,e[1]=128|(258048&o)>>>12,e[2]=128|(4032&o)>>>6,e[3]=128|63&o):o>2048?(e[0]=224|(61440&o)>>>12,e[1]=128|(4032&o)>>>6,e[2]=128|63&o):o>128?(e[0]=192|(1984&o)>>>6,e[1]=128|63&o):e[0]=o,this.parsedData.push(e)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function e(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}t.prototype={getLength:function(t){return this.parsedData.length},write:function(t){for(let e=0,o=this.parsedData.length;e<o;e++)t.put(this.parsedData[e],8)}},e.prototype={addData:function(e){let o=new t(e);this.dataList.push(o),this.dataCache=null},isDark:function(t,e){if(t<0||this.moduleCount<=t||e<0||this.moduleCount<=e)throw new Error(t+","+e);return this.modules[t][e]},getModuleCount:function(){return this.moduleCount},make:function(){this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(t,o){this.moduleCount=4*this.typeNumber+17,this.modules=new Array(this.moduleCount);for(let t=0;t<this.moduleCount;t++){this.modules[t]=new Array(this.moduleCount);for(let e=0;e<this.moduleCount;e++)this.modules[t][e]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(t,o),this.typeNumber>=7&&this.setupTypeNumber(t),null==this.dataCache&&(this.dataCache=e.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,o)},setupPositionProbePattern:function(t,e){for(let o=-1;o<=7;o++)if(!(t+o<=-1||this.moduleCount<=t+o))for(let i=-1;i<=7;i++)e+i<=-1||this.moduleCount<=e+i||(this.modules[t+o][e+i]=0<=o&&o<=6&&(0==i||6==i)||0<=i&&i<=6&&(0==o||6==o)||2<=o&&o<=4&&2<=i&&i<=4)},getBestMaskPattern:function(){let t=0,e=0;for(let o=0;o<8;o++){this.makeImpl(!0,o);let i=f.getLostPoint(this);(0==o||t>i)&&(t=i,e=o)}return e},createMovieClip:function(t,e,o){let i=t.createEmptyMovieClip(e,o);this.make();for(let t=0;t<this.modules.length;t++){let e=1*t;for(let o=0;o<this.modules[t].length;o++){let n=1*o;this.modules[t][o]&&(i.beginFill(0,100),i.moveTo(n,e),i.lineTo(n+1,e),i.lineTo(n+1,e+1),i.lineTo(n,e+1),i.endFill())}}return i},setupTimingPattern:function(){for(let t=8;t<this.moduleCount-8;t++)null==this.modules[t][6]&&(this.modules[t][6]=t%2==0);for(let t=8;t<this.moduleCount-8;t++)null==this.modules[6][t]&&(this.modules[6][t]=t%2==0)},setupPositionAdjustPattern:function(){let t=f.getPatternPosition(this.typeNumber);for(let e=0;e<t.length;e++)for(let o=0;o<t.length;o++){let i=t[e],n=t[o];if(null==this.modules[i][n])for(let t=-2;t<=2;t++)for(let e=-2;e<=2;e++)this.modules[i+t][n+e]=-2==t||2==t||-2==e||2==e||0==t&&0==e}},setupTypeNumber:function(t){let e=f.getBCHTypeNumber(this.typeNumber);for(let o=0;o<18;o++){let i=!t&&1==(e>>o&1);this.modules[Math.floor(o/3)][o%3+this.moduleCount-8-3]=i}for(let o=0;o<18;o++){let i=!t&&1==(e>>o&1);this.modules[o%3+this.moduleCount-8-3][Math.floor(o/3)]=i}},setupTypeInfo:function(t,e){let o=this.errorCorrectLevel<<3|e,i=f.getBCHTypeInfo(o);for(let e=0;e<15;e++){let o=!t&&1==(i>>e&1);e<6?this.modules[e][8]=o:e<8?this.modules[e+1][8]=o:this.modules[this.moduleCount-15+e][8]=o}for(let e=0;e<15;e++){let o=!t&&1==(i>>e&1);e<8?this.modules[8][this.moduleCount-e-1]=o:e<9?this.modules[8][15-e-1+1]=o:this.modules[8][15-e-1]=o}this.modules[this.moduleCount-8][8]=!t},mapData:function(t,e){let o=-1,i=this.moduleCount-1,n=7,r=0;for(let l=this.moduleCount-1;l>0;l-=2)for(6==l&&l--;;){for(let o=0;o<2;o++)if(null==this.modules[i][l-o]){let s=!1;r<t.length&&(s=1==(t[r]>>>n&1)),f.getMask(e,i,l-o)&&(s=!s),this.modules[i][l-o]=s,n--,-1==n&&(r++,n=7)}if(i+=o,i<0||this.moduleCount<=i){i-=o,o=-o;break}}}},e.PAD0=236,e.PAD1=17,e.createData=function(t,o,i){let n=p.getRSBlocks(t,o),r=new m;for(let e=0;e<i.length;e++){let o=i[e];r.put(o.mode,4),r.put(o.getLength(),f.getLengthInBits(o.mode,t)),o.write(r)}let l=0;for(let t=0;t<n.length;t++)l+=n[t].dataCount;if(r.getLengthInBits()>8*l)throw new Error("code length overflow. ("+r.getLengthInBits()+">"+8*l+")");for(r.getLengthInBits()+4<=8*l&&r.put(0,4);r.getLengthInBits()%8!=0;)r.putBit(!1);for(;!(r.getLengthInBits()>=8*l||(r.put(e.PAD0,8),r.getLengthInBits()>=8*l));)r.put(e.PAD1,8);return e.createBytes(r,n)},e.createBytes=function(t,e){let o=0,i=0,n=0,r=new Array(e.length),l=new Array(e.length);for(let s=0;s<e.length;s++){let h=e[s].dataCount,a=e[s].totalCount-h;i=Math.max(i,h),n=Math.max(n,a),r[s]=new Array(h);for(let e=0;e<r[s].length;e++)r[s][e]=255&t.buffer[e+o];o+=h;let u=f.getErrorCorrectPolynomial(a),g=new c(r[s],u.getLength()-1).mod(u);l[Line truncated
//used var instead of let!!
+1
View File
@@ -0,0 +1 @@
"use strict";function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}function _defineProperties(target,props){for(var descriptor,i=0;i<props.length;i++)descriptor=props[i],descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}function _createClass(Constructor,protoProps,staticProps){return protoProps&&_defineProperties(Constructor.prototype,protoProps),staticProps&&_defineProperties(Constructor,staticProps),Constructor}supersamApp.controller("SettingsController",["$scope","$http","$timeout","config","$filter","Upload",function($scope,$http,$timeout,config,$filter){var commonSettings;return commonSettings=function(){var commonSettings=/*#__PURE__*/function(){function commonSettings(){_classCallCheck(this,commonSettings),this.saveSettingsGroup=this.saveSettingsGroup.bind(this),this.branchModal=this.branchModal.bind(this),this.addBranch=this.addBranch.bind(this),this.editBranch=this.editBranch.bind(this),this.confirmBranchEdit=this.confirmBranchEdit.bind(this),this.deleteBranch=this.deleteBranch.bind(this),this.deliveryModal=this.deliveryModal.bind(this),this.addDelivery=this.addDelivery.bind(this),this.editDelivery=this.editDelivery.bind(this),this.confirmDeliveryEdit=this.confirmDeliveryEdit.bind(this),this.deleteDelivery=this.deleteDelivery.bind(this),$scope.utilities.showContentOnLoad(),config.sortFields={branches:{field:"label",direction:"asc"},delivery:{field:"label",direction:"asc"}}}return _createClass(commonSettings,[{key:"saveSettingsGroup",value:function saveSettingsGroup(group){var dataToSend,settings,_this=this;if(!this.isSubmitting)return this.isSubmitting=!0,dataToSend={action:"saveGroup",settingsGroup:group},"common"===group?settings={common:config.common}:(settings={},settings[group]=config[group]),(dataToSend.settings=settings,$http({method:"POST",url:config.urls.saveSettings,data:dataToSend,timeout:3e4}).then(function(response){var data;if(_this.isSubmitting=!1,response.data)if(data=response.data,data.status&&"success"===data.status){if(toastr.success("\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0431\u044B\u043B\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B."),$scope.utilities.setUpdateDates(group,data,config.updates),$scope[group+"EditForm"])return $scope[group+"EditForm"].$setPristine();}else if(data.warning&&toastr.warning(data.warning),data.error)return toastr.warning(data.error)})["catch"](function(){return _this.isSubmitting=!1,toastr.error(config.global_labels.defaultErrorMessage.value)}))}},{key:"branchModal",value:function branchModal(action){return $timeout(function(){return angular.element("#branchModal").modal(action)}),this.warning="",this.error="",$scope.branchForm.$setPristine()}},{key:"addBranch",value:function addBranch(){return this.branchModalData={is_default:!1},this.branchModal("show")}},{key:"editBranch",value:function editBranch(branch){return this.branchModalData=angular.copy(branch),this.branchModal("show")}},{key:"confirmBranchEdit",value:function confirmBranchEdit(){var _this2=this;if(!this.isSubmitting)return this.isSubmitting=!0,this.warning="",this.error="",$http({method:"POST",url:config.urls.addUpdateBranch,data:this.branchModalData,timeout:3e4}).then(function(response){var data;if(_this2.isSubmitting=!1,response.data){if(data=response.data,data.status&&"success"===data.status)return _this2.branchModalData.id?toastr.success("\u0414\u0430\u043D\u043D\u044B\u0435 \u043A\u043E\u043D\u0442\u0430\u043A\u0442-\u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u0430 \u0431\u044B\u043B\u0438 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u044B"):toastr.success("\u041A\u043E\u043D\u0442\u0430\u043A\u0442-\u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440 \u0431\u044B\u043B \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D"),config.branches=angular.copy(data.branches),$scope.utilities.setUpdateDates("branches",data,config.updates),_this2.branchModal("hide");if(data.warning&&(_this2.warning=data.warning),data.error)return _this2.error=data.error}})["catch"](function(){return _this2.isSubmitting=!1,toastr.error(config.global_labels.defaultErrorMessage.value)})}},{key:"deleteBranch",value:function deleteBranch(_deleteBranch){var dataToSend,_this3=this;if(!this.isSubmitting&&confirm("\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B, \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0434\u0430\u043D\u043D\u043E\u0433\u043E \u043A\u043E\u043D\u0442\u0430\u043A\u0442-\u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u0430?"))return this.isSubmitting=!0,dataToSend={id:_deleteBranch.id},$http({method:"POST",url:config.urls.deleteBranch,data:dataToSend,timeout:3e4})Line truncated
File diff suppressed because it is too large. Load diff
+155
View File
@@ -0,0 +1,155 @@
(function($) {
$.extend($.summernote.lang, {
'ru-RU': {
font: {
bold: 'Полужирный',
italic: 'Курсив',
underline: 'Подчёркнутый',
clear: 'Убрать стили шрифта',
height: 'Высота линии',
name: 'Шрифт',
strikethrough: 'Зачёркнутый',
subscript: 'Нижний индекс',
superscript: 'Верхний индекс',
size: 'Размер шрифта',
},
image: {
image: 'Картинка',
insert: 'Вставить картинку',
resizeFull: 'Восстановить размер',
resizeHalf: 'Уменьшить до 50%',
resizeQuarter: 'Уменьшить до 25%',
floatLeft: 'Расположить слева',
floatRight: 'Расположить справа',
floatNone: 'Расположение по-умолчанию',
shapeRounded: 'Форма: Закругленная',
shapeCircle: 'Форма: Круг',
shapeThumbnail: 'Форма: Миниатюра',
shapeNone: 'Форма: Нет',
dragImageHere: 'Перетащите сюда картинку',
dropImage: 'Перетащите картинку',
selectFromFiles: 'Выбрать из файлов',
maximumFileSize: 'Максимальный размер файла',
maximumFileSizeError: 'Превышен максимальный размер файла',
url: 'URL картинки',
remove: 'Удалить картинку',
original: 'Оригинал',
},
video: {
video: 'Видео',
videoLink: 'Ссылка на видео',
insert: 'Вставить видео',
url: 'URL видео',
providers: '(YouTube, Vimeo, Vine, Instagram, DailyMotion или Youku)',
},
link: {
link: 'Ссылка',
insert: 'Вставить ссылку',
unlink: 'Убрать ссылку',
edit: 'Редактировать',
textToDisplay: 'Отображаемый текст',
url: 'URL для перехода',
openInNewWindow: 'Открывать в новом окне',
},
table: {
table: 'Таблица',
addRowAbove: 'Добавить строку выше',
addRowBelow: 'Добавить строку ниже',
addColLeft: 'Добавить столбец слева',
addColRight: 'Добавить столбец справа',
delRow: 'Удалить строку',
delCol: 'Удалить столбец',
delTable: 'Удалить таблицу',
},
hr: {
insert: 'Вставить горизонтальную линию',
},
style: {
style: 'Стиль',
p: 'Нормальный',
blockquote: 'Цитата',
pre: 'Код',
h1: 'Заголовок 1',
h2: 'Заголовок 2',
h3: 'Заголовок 3',
h4: 'Заголовок 4',
h5: 'Заголовок 5',
h6: 'Заголовок 6',
},
lists: {
unordered: 'Маркированный список',
ordered: 'Нумерованный список',
},
options: {
help: 'Помощь',
fullscreen: 'На весь экран',
codeview: 'Исходный код',
},
paragraph: {
paragraph: 'Параграф',
outdent: 'Уменьшить отступ',
indent: 'Увеличить отступ',
left: 'Выровнять по левому краю',
center: 'Выровнять по центру',
right: 'Выровнять по правому краю',
justify: 'Растянуть по ширине',
},
color: {
recent: 'Последний цвет',
more: 'Еще цвета',
background: 'Цвет фона',
foreground: 'Цвет шрифта',
transparent: 'Прозрачный',
setTransparent: 'Сделать прозрачным',
reset: 'Сброс',
resetToDefault: 'Восстановить умолчания',
},
shortcut: {
shortcuts: 'Сочетания клавиш',
close: 'Закрыть',
textFormatting: 'Форматирование текста',
action: 'Действие',
paragraphFormatting: 'Форматирование параграфа',
documentStyle: 'Стиль документа',
extraKeys: 'Дополнительные комбинации',
},
help: {
'insertParagraph': 'Новый параграф',
'undo': 'Отменить последнюю команду',
'redo': 'Повторить последнюю команду',
'tab': 'Tab',
'untab': 'Untab',
'bold': 'Установить стиль "Жирный"',
'italic': 'Установить стиль "Наклонный"',
'underline': 'Установить стиль "Подчеркнутый"',
'strikethrough': 'Установить стиль "Зачеркнутый"',
'removeFormat': 'Сборсить стили',
'justifyLeft': 'Выровнять по левому краю',
'justifyCenter': 'Выровнять по центру',
'justifyRight': 'Выровнять по правому краю',
'justifyFull': 'Растянуть на всю ширину',
'insertUnorderedList': 'Включить/отключить маркированный список',
'insertOrderedList': 'Включить/отключить нумерованный список',
'outdent': 'Убрать отступ в текущем параграфе',
'indent': 'Вставить отступ в текущем параграфе',
'formatPara': 'Форматировать текущий блок как параграф (тег P)',
'formatH1': 'Форматировать текущий блок как H1',
'formatH2': 'Форматировать текущий блок как H2',
'formatH3': 'Форматировать текущий блок как H3',
'formatH4': 'Форматировать текущий блок как H4',
'formatH5': 'Форматировать текущий блок как H5',
'formatH6': 'Форматировать текущий блок как H6',
'insertHorizontalRule': 'Вставить горизонтальную черту',
'linkDialog.show': 'Показать диалог "Ссылка"',
},
history: {
undo: 'Отменить',
redo: 'Повтор',
},
specialChar: {
specialChar: 'SPECIAL CHARACTERS',
select: 'Select Special characters',
},
},
});
})(jQuery);
+1
View File
@@ -0,0 +1 @@
!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return g({type:O.error,iconClass:m().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=m()),v=e("#"+t.containerId),v.length?v:(n&&(v=d(t)),v)}function o(e,t,n){return g({type:O.info,iconClass:m().iconClasses.info,message:e,optionsOverride:n,title:t})}function s(e){C=e}function i(e,t,n){return g({type:O.success,iconClass:m().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return g({type:O.warning,iconClass:m().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e,t){var o=m();v||n(o),u(e,o,t)||l(o)}function c(t){var o=m();return v||n(o),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function l(t){for(var n=v.children(),o=n.length-1;o>=0;o--)u(e(n[o]),t)}function u(t,n,o){var s=!(!o||!o.force)&&o.force;return!(!t||!s&&0!==e(":focus",t).length)&&(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0)}function d(t){return v=e("<div/>").attr("id",t.containerId).addClass(t.positionClass),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,closeMethod:!1,closeDuration:!1,closeEasing:!1,closeOnHover:!0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",escapeHtml:!1,target:"body",closeHtml:'<button type="button">&times;</button>',closeClass:"toast-close-button",newestOnTop:!0,preventDuplicates:!1,progressBar:!1,progressClass:"toast-progress",rtl:!1}}function f(e){C&&C(e)}function g(t){function o(e){return null==e&&(e=""),e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function s(){c(),u(),d(),p(),g(),C(),l(),i()}function i(){var e="";switch(t.iconClass){case"toast-success":case"toast-info":e="polite";break;default:e="assertive"}I.attr("aria-live",e)}function a(){E.closeOnHover&&I.hover(H,D),!E.onclick&&E.tapToDismiss&&I.click(b),E.closeButton&&j&&j.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),E.onCloseClick&&E.onCloseClick(e),b(!0)}),E.onclick&&I.click(function(e){E.onclick(e),b()})}function r(){I.hide(),I[E.showMethod]({duration:E.showDuration,easing:E.showEasing,complete:E.onShown}),E.timeOut>0&&(k=setTimeout(b,E.timeOut),F.maxHideTime=parseFloat(E.timeOut),F.hideEta=(new Date).getTime()+F.maxHideTime,E.progressBar&&(F.intervalId=setInterval(x,10)))}function c(){t.iconClass&&I.addClass(E.toastClass).addClass(y)}function l(){E.newestOnTop?v.prepend(I):v.append(I)}function u(){if(t.title){var e=t.title;E.escapeHtml&&(e=o(t.title)),M.append(e).addClass(E.titleClass),I.append(M)}}function d(){if(t.message){var e=t.message;E.escapeHtml&&(e=o(t.message)),B.append(e).addClass(E.messageClass),I.append(B)}}function p(){E.closeButton&&(j.addClass(E.closeClass).attr("role","button"),I.prepend(j))}function g(){E.progressBar&&(q.addClass(E.progressClass),I.prepend(q))}function C(){E.rtl&&I.addClass("rtl")}function O(e,t){if(e.preventDuplicates){if(t.message===w)return!0;w=t.message}return!1}function b(t){var n=t&&E.closeMethod!==!1?E.closeMethod:E.hideMethod,o=t&&E.closeDuration!==!1?E.closeDuration:E.hideDuration,s=t&&E.closeEasing!==!1?E.closeEasing:E.hideEasing;if(!e(":focus",I).length||t)return clearTimeout(F.intervalId),I[n]({duration:o,easing:s,complete:function(){h(I),clearTimeout(k),E.onHidden&&"hidden"!==P.state&&E.onHidden(),P.state="hidden",P.endTime=new Date,f(P)}})}function D(){(E.timeOut>0||E.extendedTimeOut>0)&&(k=setTimeout(b,E.extendedTimeOut),F.maxHideTime=parseFloat(E.extendedTimeOut),F.hideEta=(new Date).getTime()+F.maxHideTime)}function H(){clearTimeout(k),F.hideEta=0,I.stop(!0,!0)[E.showMethod]({duration:E.showDuration,easing:E.showEasing})}function x(){var e=(F.hideEta-(new Date).getTime())/F.maxHideTime*100;q.width(e+"%")}var E=m(),y=t.iconClass||E.iconClass;if("undefined"!=typeof t.optionsOverride&&(E=e.extend(E,t.optionsOverride),y=t.optionsOverride.iconClass||y),!O(E,t)){T++,v=n(E,!0);var k=null,I=e("<div/>"),M=e("<div/>"),B=e("<div/>"),q=e("<div/>"),j=e(E.closeHtml),F={intervalId:null,hideEta:null,maxHideTime:null},P={toastId:T,state:"visible",startTime:new Date,options:E,map:t};return s(),r(),a(),f(P),E.debug&&console&&console.log(P),I}}function m(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),w=void 0))}var v,C,w,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:c,error:t,getContainer:n,info:o,options:{},subscribe:s,successLine truncated
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+169
View File
@@ -0,0 +1,169 @@
supersamApp.controller('UsersController', [
'$scope',
'$http',
'$timeout',
'config',
'$filter',
function($scope,
$http,
$timeout,
config,
$filter) {
var cutUsers;
cutUsers = (function() {
class cutUsers {
constructor() {
this.getUserRoleLabel = this.getUserRoleLabel.bind(this);
this.userModal = this.userModal.bind(this);
this.addUser = this.addUser.bind(this);
this.editUser = this.editUser.bind(this);
this.confirmUserEdit = this.confirmUserEdit.bind(this);
this.deleteUser = this.deleteUser.bind(this);
$scope.utilities.showContentOnLoad();
config.sortFields = {
users: {
field: 'name',
direction: 'asc'
}
};
}
getUserRoleLabel(role) {
var label;
label = "";
if (config.userRoles[role]) {
label = config.userRoles[role].label;
}
return label;
}
userModal(action) {
$timeout(() => {
return angular.element("#userModal").modal(action);
});
this.warning = "";
this.error = "";
return $scope.userForm.$setPristine();
}
addUser() {
this.userModalData = {
role: 'manager',
is_active: true,
available_apps: [],
availableToOrder: false,
availableToOrderDefault: false
};
return this.userModal("show");
}
editUser(user) {
this.userModalData = angular.copy(user);
return this.userModal("show");
}
confirmUserEdit() {
if (!this.isSubmitting) {
this.isSubmitting = true;
this.warning = "";
this.error = "";
return $http({
method: 'POST',
url: config.urls.addUpdateUser,
data: this.userModalData,
timeout: 30000
}).then((response) => {
var data;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
if (this.userModalData.id) {
toastr.success("Данные пользователя были успешно обновлены");
} else {
toastr.success("Пользователь был успешно добавлен");
}
config.users = angular.copy(data.users);
$scope.utilities.setUpdateDates("users", data, config.updates);
return this.userModal("hide");
} else {
if (data.warning) {
this.warning = data.warning;
}
if (data.error) {
return this.error = data.error;
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
deleteUser(deleteUser) {
var dataToSend;
if (!this.isSubmitting) {
if (confirm("Вы уверены, что хотите удалить данного пользователя?")) {
this.isSubmitting = true;
dataToSend = {
id: deleteUser.id
};
return $http({
method: 'POST',
url: config.urls.deleteUser,
data: dataToSend,
timeout: 30000
}).then((response) => {
var data, key, ref, user;
this.isSubmitting = false;
if (response.data) {
data = response.data;
if (data.status && (data.status === "success")) {
ref = config.users;
for (key in ref) {
user = ref[key];
if (user.id === deleteUser.id) {
config.users.splice(key, 1);
}
}
$scope.utilities.setUpdateDates("users", data, config.updates);
return toastr.success("Пользователь был успешно удалён");
} else {
if (data.warning) {
toastr.warning(data.warning);
}
if (data.error) {
return toastr.warning(data.error);
}
}
}
}).catch(() => {
this.isSubmitting = false;
return toastr.error(config.global_labels.defaultErrorMessage.value);
});
}
}
}
};
cutUsers.prototype.isSubmitting = false;
cutUsers.prototype.userModalData = {};
cutUsers.prototype.warning = "";
cutUsers.prototype.error = "";
return cutUsers;
}).call(this);
$scope.config = config;
$scope.utilities = new UtilitiesClass(config,
$filter,
$timeout);
return $scope.users = new cutUsers();
}
]);