').appendTo('body');\r\n }\r\n\r\n var errorsListHtml = errors.map(error => `
${error}`).join(''),\r\n content = [\r\n '
',\r\n '',\r\n '
',\r\n errorsListHtml,\r\n '
',\r\n '
'\r\n ].join('');\r\n\r\n $container.empty().show().noty({\r\n text: content,\r\n timeout: 15 * 1000,\r\n layout: 'top',\r\n type: 'error',\r\n killer: true,\r\n animation: {\r\n open: 'animated fadeInDown',\r\n close: 'animated fadeOutUp'\r\n }\r\n });\r\n },\r\n _getFieldTitle =\r\n ($field) => {\r\n\r\n // handle default bootstrap markup\r\n return $field.closest('.form-group').find('.form-label').text();\r\n },\r\n _getFieldSectionName =\r\n ($field) => {\r\n\r\n var $fieldsetParent = $field.parentsUntil('fieldset').last();\r\n var $nearestToSectionNameSibling = $fieldsetParent.prevUntil('.form-legend').last();\r\n if ($nearestToSectionNameSibling.length === 0) {\r\n $nearestToSectionNameSibling = $fieldsetParent;\r\n }\r\n\r\n var $sectionName = $nearestToSectionNameSibling.prev();\r\n return $sectionName.text();\r\n },\r\n _getVisibleElement =\r\n ($field) => {\r\n\r\n if ($field.is('select') && $field.data('selectpicker')) {\r\n return $field.data('selectpicker').$button;\r\n }\r\n\r\n if ($field.is('[type=\"hidden\"]')) {\r\n var $formGroup = $field.closest('.form-group');\r\n return $formGroup.length ? $formGroup : $field.parent();\r\n }\r\n\r\n return $field;\r\n },\r\n _getFormValidationErrors =\r\n ($form) => {\r\n\r\n var errors = [],\r\n validator = _getFormValidator($form);\r\n\r\n if (!validator) {\r\n return errors;\r\n }\r\n\r\n $.each(validator.errorList, function (i, item) {\r\n\r\n var $element = $(item.element),\r\n fieldName = _getFieldTitle($element),\r\n sectionName = _getFieldSectionName($element),\r\n errorMessage = '';\r\n\r\n if (fieldName) {\r\n errorMessage += fieldName;\r\n }\r\n\r\n if (sectionName) {\r\n errorMessage += ` (${sectionName.capitalize()})`;\r\n }\r\n\r\n errorMessage = $.trim(errorMessage);\r\n if (errorMessage) {\r\n errorMessage += ' - ';\r\n }\r\n\r\n errorMessage += item.message;\r\n\r\n errors.push(errorMessage);\r\n });\r\n\r\n return errors;\r\n },\r\n _setFocusOnField =\r\n ($field) => {\r\n\r\n if ($field.is(':input:visible')) {\r\n $field.focus();\r\n }\r\n },\r\n _gotoField =\r\n ($element) => {\r\n\r\n var $visibleElement = _getVisibleElement($element);\r\n if ($visibleElement.length == 0) {\r\n return;\r\n }\r\n\r\n scrollToElement($visibleElement, 1000, function () {\r\n _setFocusOnField($visibleElement);\r\n });\r\n },\r\n _showFirstErrorField =\r\n ($form) => {\r\n\r\n var validator = _getFormValidator($form);\r\n if (!validator) {\r\n return;\r\n }\r\n\r\n var $firstErrorElem = $(validator.errorList.length ? validator.errorList[0].element : []);\r\n _gotoField($firstErrorElem);\r\n },\r\n _showFormErrors =\r\n ($form, globalErrors) => {\r\n\r\n var formErrors = _getFormValidationErrors($form),\r\n errors = (globalErrors || []).concat(formErrors);\r\n\r\n if (errors.length == 0) {\r\n return;\r\n }\r\n\r\n _showErrorsBanner(errors);\r\n _showFirstErrorField($form);\r\n },\r\n _getFieldsErrorsFromFailures =\r\n (failures) => {\r\n\r\n if (!failures) {\r\n return null;\r\n }\r\n\r\n var fieldsErrors = {};\r\n\r\n // convert errors array to string\r\n for (var field in failures) {\r\n\r\n if (field == '') { // skip global errors\r\n continue;\r\n }\r\n\r\n // take field 1st error, because jQueryValidation supports one error at a time\r\n var errors = failures[field],\r\n error = errors && errors.length > 0 && errors[0];\r\n\r\n // TODO: think if it is better to show all errors or the 1st\r\n if (error) {\r\n fieldsErrors[field] = error;\r\n }\r\n }\r\n\r\n return fieldsErrors;\r\n },\r\n _getGlobalErrorsFromFailures =\r\n (failures) => {\r\n\r\n if (!failures) {\r\n return [];\r\n }\r\n\r\n return failures[''];\r\n },\r\n _setFormFailures =\r\n ($form, failures) => {\r\n\r\n if (!failures) {\r\n return;\r\n }\r\n\r\n var globalErrors = _getGlobalErrorsFromFailures(failures),\r\n fieldsErrors = _getFieldsErrorsFromFailures(failures),\r\n validator = _getFormValidator($form);\r\n\r\n if (validator && fieldsErrors) {\r\n\r\n validator.showErrors(fieldsErrors); // update validator.errorList\r\n }\r\n\r\n _showFormErrors($form, globalErrors);\r\n };\r\n\r\n $(document).on('invalid-form', 'form[data-validate-show-errors=\"true\"]', function (e, validator) {\r\n\r\n $(validator.currentForm)\r\n .off('onpost submit:success', _hideErrors)\r\n .on('onpost submit:success', _hideErrors);\r\n\r\n _showFormErrors($(this));\r\n });\r\n\r\n\r\n\r\n dls.extend({\r\n validation: {\r\n showErrorsBanner: _showErrorsBanner,\r\n showFirstErrorField: _showFirstErrorField,\r\n showFormErrors: _showFormErrors,\r\n setFormFailures: _setFormFailures\r\n }\r\n });\r\n\r\n})(jQuery, window.dls);\r\n\r\nfunction isEmailValid(str) {\r\n return /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[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])?)*$/.test(str);\r\n}\r\n\r\nfunction isUsaZipValid(str) {\r\n return /^\\d{5}(-\\d{4})?$/.test(str);\r\n}\r\n\r\nfunction isCanadaZipValid(str) {\r\n return /^[ABCEGHJKLMNPRSTVXY]{1}\\d{1}[A-Z]{1} *\\d{1}[A-Z]{1}\\d{1}$/.test(str);\r\n}\r\n\r\n// requiredIfVisible\r\n$.validator.addMethod('requiredIfVisible', function (value, element) {\r\n\r\n return !$(element).is(':visible') || $.validator.methods.required.call(this, value, element);\r\n}, 'This field is required.');\r\n\r\n// equalToValue\r\n$.validator.addMethod('equalToValue', function (value, element, params) {\r\n\r\n var equalToValue = params;\r\n\r\n return this.optional(element) || value == equalToValue;\r\n}, function (params, element) {\r\n return 'Please enter value equals to {0}.'.format(params);\r\n});\r\n\r\n// positive\r\n$.validator.addMethod('positive', function (value, element) {\r\n\r\n return this.optional(element) || unformatNumber(value) >= 0;\r\n}, 'Please specify a positive value.');\r\n\r\n// conditional max\r\n$.validator.addMethod('minIf', function (value, element, params) {\r\n\r\n var expectedLimit = params[0],\r\n condition = Boolean(params[1]);\r\n\r\n return !condition || +value >= +expectedLimit;\r\n}, function (params, element) {\r\n return `Please enter a value greater than or equal to ${params[0]}.`;\r\n});\r\n\r\n// conditional max\r\n$.validator.addMethod('maxIf', function (value, element, params) {\r\n\r\n var expectedLimit = params[0],\r\n condition = Boolean(params[1]);\r\n\r\n return !condition || +value <= +expectedLimit;\r\n}, function (params, element) {\r\n return `Please enter a value less than or equal to ${params[0]}.`;\r\n});\r\n\r\n// money\r\n$.validator.addMethod('money', function (value, element) {\r\n\r\n let max = Money.max().getAmount(),\r\n min = -max,\r\n money = unformatNumber(value);\r\n\r\n return this.optional(element) || min <= money && money <= max;\r\n}, 'Please specify a valid money amount.');\r\n\r\n// ratio\r\n$.validator.addMethod('ratio', function (value, element) {\r\n\r\n var ratio = unformatNumber(value);\r\n\r\n return this.optional(element) || (ratio >= 0 && ratio <= 1);\r\n}, 'Please specify a valid commission.');\r\n\r\n// commission\r\n$.validator.addMethod('commission', function (value, element) {\r\n\r\n var ratio = unformatNumber(value);\r\n\r\n return this.optional(element) || (ratio >= 0 && ratio <= 100);\r\n}, 'Please specify a valid commission.');\r\n\r\n// rate\r\n$.validator.addMethod('rate', function (value, element) {\r\n\r\n var rate = unformatNumber(value);\r\n\r\n return this.optional(element) || (rate >= 0 && rate <= 100);\r\n}, 'Please specify a valid rate.');\r\n\r\n// unit\r\n$.validator.addMethod('unit', function (value, element) {\r\n return this.optional(element) || /^[\\da-zA-Z \\-/\\\\\\&]+$/.test(value);\r\n}, 'Please specify a valid unit.');\r\n\r\n// term\r\n$.validator.addMethod('term', function (value, element) {\r\n return this.optional(element) || /^[0-9]+(\\.[0-9]{1,2})?$/.test(value);\r\n}, 'Please specify a valid term.');\r\n\r\n// city\r\n$.validator.addMethod('city', function (value, element) {\r\n return true;\r\n //return this.optional(element) || /^[a-z \\-_]+$/i.test(value);\r\n}, 'Please specify a valid city name.');\r\n\r\n// streetAddress\r\n$.validator.addMethod('streetAddress', function (value, element) {\r\n return true;\r\n //return this.optional(element) || /^[\\w ,\\.]+$/i.test(value);\r\n}, 'Please specify a valid address.');\r\n\r\n// zip\r\n$.validator.addMethod('zip', function (value, element) {\r\n return this.optional(element) || isUsaZipValid(value);\r\n}, 'Please specify a valid zip.\\nValid examples: 12345, 12345-1234');\r\n\r\n// zip-usa\r\n$.validator.addMethod('zip-usa', function (value, element, params) {\r\n var $state = $(params),\r\n isUsa = ($state.find('option:selected').closest('optgroup').attr('data-group-id') || '').toLowerCase() === 'usa';\r\n\r\n return this.optional(element) || !isUsa || isUsaZipValid(value);\r\n}, 'Please specify a valid zip.\\nValid examples: 12345, 12345-1234');\r\n\r\n// zip-ca\r\n$.validator.addMethod('zip-ca', function (value, element, params) {\r\n var $state = $(params),\r\n isCanada = ($state.find('option:selected').closest('optgroup').attr('data-group-id') || '').toLowerCase() === 'can';\r\n\r\n return this.optional(element) || !isCanada || isCanadaZipValid(value);\r\n}, 'Please specify a valid postal code.\\nValid examples: T2X1V4, T2X 1V4');\r\n\r\n// personName\r\n$.validator.addMethod('personName', function (value, element) {\r\n return true;\r\n //return this.optional(element) || /^[a-z ]+$/i.test(value);\r\n}, 'Please specify a valid name.');\r\n\r\n// companyName\r\n$.validator.addMethod('companyName', function (value, element) {\r\n return true;\r\n //return this.optional(element) || /^[\\w\\s\\-\\/]+$/i.test(value);\r\n}, 'Please specify a valid company name.');\r\n\r\n// phone\r\n$.validator.addMethod('phone', function (value, element) {\r\n return true;\r\n //return this.optional(element) || /^(\\d{3})-(\\d{3})-(\\d{4})$/i.test(value);\r\n}, 'Please specify a valid phone number.');\r\n\r\n// phone\r\n$.validator.addMethod('phone-us', function (value, element) {\r\n return this.optional(element) || /^(\\d{3})-(\\d{3})-(\\d{4})$/i.test(value);\r\n}, 'Please specify a valid phone number.\\nValid example: 123-123-1234');\r\n\r\n// phone extension\r\n$.validator.addMethod('phone-ext', function (value, element) {\r\n return this.optional(element) || /^(\\d{1,4})$/i.test(value);\r\n}, 'Please specify a valid phone number extension.\\nValid example: 1234');\r\n\r\n// percentage\r\n$.validator.addMethod('percentage', function (value, element) {\r\n return this.optional(element) || (value >= 0 && value <= 100);\r\n}, 'Please specify a value between 0 and 100.');\r\n\r\n// broker-external\r\n//$.validator.addMethod('broker-external', function (value, element) {\r\n// var $broker = $(element).closest('.broker-item'),\r\n// data = $broker.data('broker'),\r\n// brokerId = +ko.unwrap(data.ContactID),\r\n// email = ko.unwrap(data.Email) || '';\r\n\r\n// // validate if broker is valid\r\n// return brokerId > 0 || email;\r\n//}, 'Please specify a valid outside broker.');\r\n\r\n// broker-internal\r\n//$.validator.addMethod('broker-internal', function (value, element) {\r\n// var $broker = $(element).closest('.broker-item'),\r\n// data = $broker.data('broker'),\r\n// brokerId = +ko.unwrap(data.ContactID);\r\n\r\n// // validate if broker is selected\r\n// return brokerId > 0;\r\n//}, 'Please specify a valid internal broker.');\r\n\r\n// commission-total\r\n$.validator.addMethod('commission-total', function (value, element, params) {\r\n\r\n var itemsCount = +params,\r\n totalRatio = +value,\r\n possibleError = RatioCollection.getPossibleError(itemsCount, 10),\r\n diff = Decimal.sub(100, totalRatio).abs().toNumber();\r\n\r\n return itemsCount == 0 || diff <= possibleError;\r\n}, 'Total commission should be 100%.');\r\n\r\n// commission-total-amount\r\n$.validator.addMethod('commission-total-amount', function (value, element, params) {\r\n\r\n var itemsCount = +params[0],\r\n totalMoneyActual = +params[1],\r\n totalMoneyExpected = +value;\r\n\r\n return !itemsCount || roundMoney(totalMoneyExpected) === roundMoney(totalMoneyActual);\r\n}, function (params, element) {\r\n return `Total commission amount should be ${formatMoney(params[1])}.`;\r\n});\r\n\r\n// squareFootage\r\n$.validator.addMethod('squareFootage', function (value, element) {\r\n return this.optional(element) || /^\\d+$/.test(value.replace(',', ''));\r\n}, 'Please specify a valid square footage.');\r\n\r\n// acres\r\n$.validator.addMethod('acres', function (value, element) {\r\n return this.optional(element) || /^(\\d+)?(\\.\\d{1,2})?$/.test(value.replace(',', ''));\r\n}, 'Please specify a valid acres. Allowed only 2 digits after the point.');\r\n\r\n// units\r\n$.validator.addMethod('units', function (value, element) {\r\n return this.optional(element) || /^\\d+$/.test(value);\r\n}, 'Please specify a valid number of units.');\r\n\r\n// website\r\n$.validator.addMethod('website', function (value, element) {\r\n return this.optional(element) || /^(?:https?:\\/\\/)?(?:www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b(?:[-a-zA-Z0-9()@:%_\\+.~#?&\\/=]*)$/i.test(value);\r\n}, 'Please specify a valid website.\\nValid examples:\\ndomain.com\\nwww.domain.com\\nhttp://domain.com');\r\n\r\n// linkedin\r\n$.validator.addMethod('linkedin', function (value, element) {\r\n return this.optional(element) || /^(https:\\/\\/)(www\\.)?linkedin\\.com\\/.+$/i.test(value);\r\n}, 'Please specify a valid linkedin link.\\nValid examples:\\nhttps://linkedin.com/profile');\r\n\r\n// twitter\r\n$.validator.addMethod('twitter', function (value, element) {\r\n return this.optional(element) || /^(https:\\/\\/)?(www\\.)?(twitter|x)\\.com\\/(#!\\/)?.+$/i.test(value);\r\n}, 'Please specify a valid twitter link.\\nValid examples:\\nhttps://x.com/profile');\r\n\r\n// facebook\r\n$.validator.addMethod('facebook', function (value, element) {\r\n return this.optional(element) || /^(https:\\/\\/)?(www\\.)?facebook\\.com\\/[\\w\\-]{5,}$/i.test(value);\r\n}, 'Please specify a valid facebook link.\\nValid examples:\\nfacebook.com/profile\\nhttps://facebook.com/profile');\r\n\r\n$.validator.addMethod('social-media-profile', function (value, element) {\r\n return this.optional(element) || /^(http\\:\\/\\/|https\\:\\/\\/)?([a-z0-9][a-z0-9\\-]*\\.)+[a-z0-9][a-z0-9\\-]*\\/.+$/i.test(value);\r\n}, 'Please specify a valid social media profile.\\nValid examples:\\ndomain.com/profile\\nwww.domain.com/profile\\nhttps://domain.com/profile');\r\n\r\n$.validator.addMethod('positive-number', function (value, element) {\r\n return this.optional(element) || (value >= 0);\r\n}, 'Please specify a valid positive number.');\r\n\r\n//probability\r\n$.validator.addMethod('probability', function (value, element) {\r\n return this.optional(element) || (value >= 0 && value <= 100);\r\n}, 'Please specify a valid probability.');\r\n\r\n$.validator.addMethod(\r\n \"dlspassword\",\r\n function (value, element) {\r\n return this.optional(element) || /((?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])).{8,8}/.test(value);\r\n },\r\n \"Password must contain a lower and upper letter, a number and a symbol.\"\r\n);\r\n\r\n$.validator.addMethod('longitude', function (value, element) {\r\n return this.optional(element) || (value >= -180 && value <= 180);\r\n}, 'Please specify a valid longitude.');\r\n\r\n$.validator.addMethod('latitude', function (value, element) {\r\n return this.optional(element) || (value >= -90 && value <= 90);\r\n}, 'Please specify a valid latitude.');\r\n\r\n$.validator.addMethod('minDate', function (value, element, param) {\r\n\r\n var $elem = $(element),\r\n //datepicker = $elem.data('datepicker'),\r\n //valueDate = datepicker && datepicker.getDate(),\r\n valueDate = $elem.datepicker('getDate'),\r\n minDate = param && moment(param).toDate();\r\n\r\n if (!valueDate) {\r\n return this.optional(element);\r\n }\r\n\r\n if (!minDate) {\r\n return false;\r\n }\r\n\r\n return moment(valueDate).startOf('day')\r\n .isSameOrAfter(\r\n moment(minDate).startOf('day'));\r\n}, function (param, element) {\r\n\r\n var minDate = moment(param).format('MMM D, YYYY');\r\n return `Date must be on or after the ${minDate}.`;\r\n});\r\n\r\n$.validator.addMethod('positive-int', function (value, element) {\r\n return this.optional(element) || /^\\d+$/.test(value.replace(',', ''));\r\n}, 'Please specify a valid positive number.');\r\n\r\n$.validator.addMethod('not-empty', function (value, element) {\r\n return this.optional(element) || !!value.trim();\r\n}, 'This field is required.');\r\n","$.postJSON = function (url, data, ajaxOptions) {\r\n\r\n let _options = {\r\n url: url,\r\n type: 'post',\r\n dataType: 'json',\r\n contentType: 'application/json',\r\n data: typeof data !== 'string' ? JSON.stringify(data) : data\r\n };\r\n\r\n if ($.isFunction(ajaxOptions)) {\r\n\r\n _options.success = ajaxOptions;\r\n\r\n } else if (ajaxOptions != null) {\r\n\r\n _options = $.extend({}, _options, ajaxOptions);\r\n }\r\n\r\n return $.ajax(_options);\r\n};\r\n\r\n/*** ajax global handlers ***/\r\n(function ($, dls) {\r\n\r\n const _ = 1,\r\n _convertFailuresToErrors = (failures) => {\r\n\r\n var errors = [];\r\n\r\n for (var p in failures) {\r\n\r\n // iterate errors for empty field name separately\r\n if (p == '') {\r\n for (var i = 0; i < failures[p].length; i++) {\r\n errors.push(failures[p][i]);\r\n }\r\n\r\n continue;\r\n }\r\n\r\n // error format: `{field} - error 1; error 2`\r\n var error = p || '';\r\n if (error) {\r\n error += ' - ';\r\n }\r\n\r\n error += `${failures[p].join('; ')}`;\r\n errors.push(error);\r\n }\r\n\r\n return errors;\r\n },\r\n _handleBadRequest = (jxhr, textStatus, textError) => {\r\n\r\n var response = jxhr && jxhr.responseJSON,\r\n errorMessage = response && response['Error'],\r\n failures = response && response['Failures'];\r\n\r\n // show validation errors\r\n if (failures) {\r\n var errors = _convertFailuresToErrors(failures);\r\n dls.validation.showErrorsBanner(errors);\r\n } else if (errorMessage) { // otherwise show error message\r\n dls.showError(errorMessage);\r\n }\r\n },\r\n _handleUnauthorized = (jxhr, textStatus, textError) => {\r\n\r\n document.location.reload();\r\n },\r\n _handleForbidden = (jxhr, textStatus, textError) => {\r\n\r\n var response = jxhr && jxhr.responseJSON,\r\n errorMessage = response && response['Error'];\r\n\r\n if (errorMessage) {\r\n\r\n dls.notify(errorMessage)\r\n .always(() => _handleRedirect(response, textStatus, jxhr));\r\n\r\n } else {\r\n\r\n _handleRedirect(response, textStatus, jxhr)\r\n }\r\n },\r\n _handleNotFound = (jxhr, textStatus, textError) => {\r\n\r\n var response = jxhr && jxhr.responseJSON,\r\n errorMessage = response && response['Error'];\r\n\r\n if (errorMessage) {\r\n dls.showError(errorMessage);\r\n }\r\n },\r\n _handleError = (jxhr, textStatus, textError) => {\r\n\r\n var response = jxhr && jxhr.responseJSON,\r\n errorMessage = response && response['Error'];\r\n\r\n if (errorMessage) {\r\n dls.showError(errorMessage);\r\n }\r\n },\r\n _handleRedirect = (response, textStatus, jxhr) => {\r\n\r\n const redirectUrl = response\r\n && typeof response === 'object'\r\n && response['RedirectUrl'];\r\n\r\n if (redirectUrl) {\r\n dls.redirect(redirectUrl);\r\n }\r\n };\r\n\r\n // setup default error handlers\r\n $.ajaxSetup({\r\n statusCode: {\r\n 400: _handleBadRequest,\r\n 401: _handleUnauthorized,\r\n 403: _handleForbidden,\r\n 404: _handleNotFound,\r\n 500: _handleError,\r\n }\r\n });\r\n\r\n $.ajaxPrefilter('json', (requestOptions, globalOptions, jxhr) => {\r\n\r\n jxhr.done(_handleRedirect);\r\n });\r\n\r\n})(jQuery, window.dls);\r\n\r\n\r\n// append front-end version header to each ajax request\r\n(function ($, dls) {\r\n\r\n var _notificationShown = false,\r\n _showNotification = () => {\r\n\r\n if (_notificationShown) {\r\n return;\r\n }\r\n\r\n _notificationShown = true;\r\n\r\n return dls.confirm('Application has been updated, please refresh the page.', {\r\n title: 'NOTIFICATION',\r\n buttonYesText: 'REFRESH',\r\n buttonNoText: 'CANCEL'\r\n })\r\n .done(() => setTimeout(() => location.reload(), 500)) // 500ms to close modal, so no freezed UI\r\n .always(() => _notificationShown = false);\r\n };\r\n\r\n $.ajaxPrefilter(function (ajaxOptions, ajaxOptionsOriginal, jxhr) {\r\n\r\n if (typeof dls.version !== 'undefined') {\r\n jxhr.setRequestHeader('x-dealius-version', dls.version);\r\n jxhr.statusCode({\r\n 406: function (jqXHR, textStatus, errorThrown) {\r\n _showNotification();\r\n }\r\n });\r\n }\r\n });\r\n\r\n})(jQuery, window.dls);\r\n\r\n\r\n(function ($) {\r\n\r\n function AjaxPool() {\r\n\r\n var _runningRequests = {},\r\n _cancellableRequests = [],\r\n _addRequest = (url, jqXHR) => _runningRequests[url] = jqXHR,\r\n _removeRequest = (url) => delete _runningRequests[url],\r\n _getRequest = (url) => _runningRequests[url],\r\n _cancelRequest = (url) => {\r\n\r\n var xhr = _getRequest(url);\r\n if (xhr && xhr.state() == 'pending') {\r\n\r\n xhr.abort();\r\n dls.log.debug(\"AjaxPool: request aborted: \" + url);\r\n }\r\n\r\n _addRequest(url, null);\r\n },\r\n _getRequestUrl = (ajaxOptions) => ajaxOptions.url,\r\n _isSingletonRequest = (ajaxOptions) => ajaxOptions.singleton === true,\r\n _cancelSingletonRequest = (ajaxOptions) => {\r\n\r\n if (_isSingletonRequest(ajaxOptions)) {\r\n\r\n _cancelRequest(_getRequestUrl(ajaxOptions));\r\n }\r\n };\r\n\r\n\r\n\r\n this.cancelRequest = _cancelRequest;\r\n\r\n\r\n\r\n $(document).ajaxSend(function (event, jqXHR, ajaxOptions) {\r\n\r\n //_cancelSingletonRequest(ajaxOptions);\r\n\r\n var url = ajaxOptions.url;\r\n if (url in _runningRequests) {\r\n\r\n dls.log.debug(\"AjaxPool: request started: \" + url);\r\n _addRequest(url, jqXHR);\r\n }\r\n });\r\n\r\n $(document).ajaxComplete(function (event, jqXHR, ajaxOptions) {\r\n\r\n var url = ajaxOptions.url;\r\n if (url in _runningRequests) {\r\n\r\n dls.log.debug(\"AjaxPool: request completed: \" + url);\r\n _removeRequest(url);\r\n }\r\n });\r\n }\r\n\r\n window['ajaxPool'] = new AjaxPool();\r\n\r\n})(jQuery);","(($) => {\r\n\r\n $(document).on('keyup', 'input, select', function (e) {\r\n\r\n if (e.which == 13 && !(e.ctrlKey && e.shiftKey)) {\r\n\r\n $(e.target).trigger('onenter');\r\n }\r\n });\r\n\r\n})(jQuery);\r\n\r\n\r\n/*** asTemplate ***/\r\n(function ($) {\r\n\r\n $.fn.asTemplate = function (data) {\r\n return $($(this).html().template(data));\r\n };\r\n\r\n})(jQuery);\r\n\r\n\r\n(function () {\r\n\r\n $.fn.formDisable = function (disable) {\r\n if (arguments.length == 0) {\r\n disable = true;\r\n }\r\n\r\n return this.each(function (i, item) {\r\n var $form = $(item);\r\n\r\n $form.find('fieldset').prop('disabled', disable);\r\n });\r\n };\r\n\r\n})();\r\n\r\n\r\n// loading mask\r\n(($) => {\r\n\r\n let _template = `
`,\r\n _selector = '.b-loading',\r\n _btnLoadingClass = 'btn-loading',\r\n _findLoader = ($elem) => {\r\n\r\n return $elem.find(`> ${_selector}`);\r\n },\r\n _addLoadingMask = ($elem) => {\r\n\r\n const loaderExists = _findLoader($elem).length > 0;\r\n if (loaderExists) {\r\n return;\r\n }\r\n\r\n const $loader = $(_template);\r\n $elem.append($loader);\r\n },\r\n _removeLoadingMask = ($elem) => {\r\n\r\n _findLoader($elem).remove();\r\n },\r\n _toggleLoadingMask = ($elem, toggle) => {\r\n\r\n if (toggle) {\r\n _addLoadingMask($elem);\r\n } else {\r\n _removeLoadingMask($elem);\r\n }\r\n },\r\n _toggleButtonLoader = ($btn, toggle) => {\r\n\r\n if (toggle) {\r\n $btn.addClass(_btnLoadingClass);\r\n } else {\r\n $btn.removeClass(_btnLoadingClass);\r\n }\r\n };\r\n\r\n\r\n $.fn.toggleLoadingMask = function toggleLoadingMask(toggle) {\r\n\r\n return this.each(function() {\r\n\r\n _toggleLoadingMask($(this), toggle);\r\n });\r\n };\r\n $.fn.toggleBtnProgress = function toggleBtnProgress(toggle) {\r\n\r\n return this.each(function() {\r\n\r\n _toggleButtonLoader($(this), toggle);\r\n });\r\n };\r\n $.fn.toggleSelectPickerProgress = function toggleBtnProgress(toggle) {\r\n\r\n return this.each(function() {\r\n\r\n const $this = $(this),\r\n isSelectPicker = !!$this.data('selectpicker');\r\n \r\n if (isSelectPicker) {\r\n _toggleButtonLoader($this.parent('.bootstrap-select').find('button'), toggle);\r\n }\r\n });\r\n };\r\n\r\n})(jQuery);\r\n\r\n\r\n/*** fill container's inputs with provided data ***/\r\n(function () {\r\n\r\n function _getKey(key, prefix) {\r\n var result = key;\r\n if (prefix) {\r\n result = `${prefix}[${key}]`;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n $.fn.fillWithData = function (data) {\r\n\r\n function fill($container, d, prefix) {\r\n\r\n $.each(d, function (key, value) {\r\n var $elem = $container.find('[name=\"' + _getKey(key, prefix) + '\"]');\r\n\r\n if ($elem.data('datepicker') && value) {\r\n $elem.datepicker('update', moment(dls.trimTime(value)).toDate());\r\n return;\r\n }\r\n\r\n if ($elem.data('selectpicker')) {\r\n $elem.selectpicker('val', value);\r\n return;\r\n }\r\n\r\n if ($elem.attr('type') == 'checkbox') {\r\n\r\n (value ? $elem.attr('checked', 'checked') : $elem.removeAttr('checked'))\r\n .prop('checked', value)\r\n .trigger('change')\r\n ;\r\n\r\n return;\r\n }\r\n\r\n if ($.isArray(value) && !$elem.size()) {\r\n $elem = $container.find('[name=\"' + _getKey(key, prefix) + '[]\"]');\r\n }\r\n\r\n if ($.isPlainObject(value)) {\r\n fill($container, value, key);\r\n }\r\n\r\n $elem.val(value);\r\n });\r\n }\r\n\r\n return this.each(function () {\r\n var $container = $(this);\r\n\r\n fill($container, data);\r\n });\r\n };\r\n\r\n})();\r\n\r\n(function () {\r\n\r\n var defaults = {\r\n method: 'text'\r\n };\r\n\r\n $.fn.displayData = function (data, options) {\r\n\r\n options = $.extend({}, defaults, options);\r\n\r\n return this.each(function () {\r\n var $container = $(this);\r\n $.each(data, function (key, value) {\r\n $container.find('[data-name=\"' + key + '\"]')[options.method](value);\r\n });\r\n });\r\n };\r\n\r\n})();\r\n\r\n/*** checkbox group (like radio buttons) ***/\r\n(function () {\r\n\r\n $(document).on('click', ':checkbox[data-group]', function () {\r\n var $self = $(this),\r\n groupName = $self.attr('data-group'),\r\n checked = $self.is(':checked'),\r\n $group = $(':checkbox[data-group=\"' + groupName + '\"]');\r\n\r\n if (!checked && !$group.filter(':checked').size()) { // allow be checked at least one checkbox only\r\n $self.prop('checked', true);\r\n }\r\n else if (checked) { // uncheck all other checkboxes in same group\r\n //$group.not($self).prop('checked', false);\r\n $group.not($self).filter(':checked').trigger('click');\r\n }\r\n });\r\n\r\n})();\r\n\r\n/*** noUiSlider plugin wrapper ***/\r\n(function () {\r\n\r\n $.fn.noUiSlider = function (options) {\r\n var defaultOptions = {\r\n connect: true,\r\n step: 1,\r\n range: {\r\n 'min': 0,\r\n 'max': 100\r\n },\r\n pips: {\r\n mode: 'range',\r\n density: 10\r\n }\r\n };\r\n\r\n return this.each(function () {\r\n var slider = this,\r\n sliderOptions = $.extend({}, defaultOptions, options || {});\r\n\r\n noUiSlider.create(slider, sliderOptions);\r\n if ($.isFunction(options.onchange)) {\r\n slider.noUiSlider.on('change', options.onchange);\r\n }\r\n\r\n slider.noUiSlider.on('update', function (valuesText, handle, values) {\r\n var handleValue = Array.isArray(values) ? values[handle] : values;\r\n var handleValueHtml = '
' + handleValue + '';\r\n\r\n if (!handle) {\r\n $(slider).find('.noUi-handle-lower').html(handleValueHtml);\r\n } else {\r\n $(slider).find('.noUi-handle-upper').html(handleValueHtml);\r\n }\r\n });\r\n });\r\n };\r\n\r\n})();\r\n\r\n/*** fontautosize ***/\r\n(function ($) {\r\n\r\n $.fn.fontautosize = function () {\r\n\r\n return this.each(function () {\r\n\r\n var $elem = $(this),\r\n options = {\r\n minFontPixels: 8,\r\n widthOnly: true\r\n };\r\n\r\n function originalFontSize($e) {\r\n if (!$e.data('originalFontSize')) {\r\n $e.data('originalFontSize', parseInt($e.css('fontSize'), 10));\r\n }\r\n\r\n return $e.data('originalFontSize');\r\n }\r\n\r\n options.maxFontPixels = originalFontSize($elem);\r\n $elem.textfill(options);\r\n });\r\n };\r\n\r\n $.fn.textAutosize = function (text) {\r\n\r\n return this.each(function () {\r\n\r\n var $self = $(this),\r\n $text = $self.find('>span');\r\n\r\n if ($text.length === 0) {\r\n $text = $('
');\r\n $self.html($text);\r\n }\r\n\r\n $text.text(text);\r\n $self.fontautosize();\r\n });\r\n };\r\n\r\n function applyFontAutoSize() {\r\n $('[data-fontautosize=\"true\"]').fontautosize();\r\n }\r\n\r\n // bind to global events\r\n $(window).on('resize', applyFontAutoSize);\r\n $(applyFontAutoSize);\r\n\r\n})(jQuery);\r\n\r\n/*** asHTML ***/\r\n(function ($) {\r\n\r\n $.fn.asHtml = function () {\r\n return $('
').html(this).html();\r\n };\r\n\r\n $.fn.toHtml = function () {\r\n return $('
').html(this).html();\r\n };\r\n\r\n})(jQuery);\r\n\r\n\r\n/*** bootstrap datepicker getSafeDate ***/\r\n(function($) {\r\n\r\n $.fn.getUtcDateISO8601 = function() {\r\n var $self = $(this);\r\n if (!$self.data('datepicker')) {\r\n return null;\r\n }\r\n\r\n var date = $self.datepicker('getUTCDate');\r\n return date && moment.utc(date).startOf('day').format(); // \"2014-09-08T08:02:17-05:00\"\r\n };\r\n\r\n $.fn.getISODate = function() {\r\n var $self = $(this);\r\n if (!$self.data('datepicker')) {\r\n return null;\r\n }\r\n\r\n var date = $self.datepicker('getDate');\r\n return date && moment(date).format('YYYY-MM-DD'); // \"2019-07-25\"\r\n };\r\n\r\n})(jQuery);\r\n","(function (dls, $) {\r\n\r\n var _stack = [],\r\n _events = {\r\n INIT: 'init.dls.modal',\r\n SHOW: 'show.dls.modal',\r\n SHOWING: 'showing.dls.modal',\r\n SHOWN: 'shown.dls.modal',\r\n HIDE: 'hide.dls.modal',\r\n HIDING: 'hiding.dls.modal',\r\n HIDDEN: 'hidden.dls.modal',\r\n RESOLVE: 'resolve.dls.modal',\r\n REJECT: 'reject.dls.modal'\r\n },\r\n _behaviorOnResolve = {\r\n NONE: 'none',\r\n CLOSE: 'close',\r\n },\r\n _confirmationTemplate = [\r\n ''\r\n ].join(''),\r\n _notificationTemplate = [\r\n ''\r\n ].join(''),\r\n \r\n _handleEscape = (e) => e.keyCode === 27,\r\n \r\n _stackPush = ($modals) => $modals.each((i, elem) => _stack.push($(elem))),\r\n\r\n _stackPop = () => _stack.pop(),\r\n\r\n _getVisibleModals = () => $('.popup:visible'),\r\n\r\n _hideAllNoty = () => dls.hideAllNoty(),\r\n\r\n _getModalsContainer = () => $('#popup-layout'),\r\n\r\n _showOverlay = () => $('body').addClass('popup-showed'),\r\n\r\n _hideOverlay = () => $('body').removeClass('popup-showed'),\r\n\r\n _isModalVisible = ($modal) => $modal.is(':visible'),\r\n\r\n _showPriorModal = () => {\r\n\r\n var $priorModal = _stackPop();\r\n\r\n if ($priorModal != null) {\r\n\r\n $priorModal.fadeIn('fast');\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n _showModal = ($modal, speed) => {\r\n\r\n if (speed == null) {\r\n speed = 'fast';\r\n }\r\n\r\n _showOverlay();\r\n\r\n _stackPush(_getVisibleModals().hide());\r\n\r\n $modal.trigger(_events.SHOW);\r\n _hideAllNoty();\r\n\r\n $modal.fadeIn(speed, function () {\r\n\r\n $modal.trigger(_events.SHOWN);\r\n _hideAllNoty();\r\n });\r\n\r\n $modal.trigger(_events.SHOWING);\r\n },\r\n _hideModal = ($modal, speed) => {\r\n\r\n if (_isModalVisible($modal) == false) {\r\n return;\r\n }\r\n\r\n if (speed == null) {\r\n speed = 0;//'fast';\r\n }\r\n\r\n $modal.trigger(_events.HIDE);\r\n _hideAllNoty();\r\n\r\n $modal.fadeOut(speed, function () {\r\n\r\n $modal.trigger(_events.HIDDEN);\r\n\r\n if (_showPriorModal() == false) {\r\n _hideOverlay();\r\n }\r\n });\r\n\r\n $modal.trigger(_events.HIDING);\r\n },\r\n _loadModal = (url) => {\r\n\r\n if (!url) {\r\n throw 'Remote url not provided';\r\n }\r\n\r\n let ajax = $.getJSON(url);\r\n return ajax;\r\n },\r\n _getDlsModal = (modalSelector, options) => {\r\n\r\n var $modal = $(modalSelector);\r\n if ($modal.length === 0) {\r\n throw `Modal '${$modal.selector}' not found`;\r\n }\r\n\r\n var modal = $modal.data('dls.modal');\r\n if (modal == null) {\r\n modal = new DlsModal($modal, options);\r\n } else {\r\n modal.setOptions(options);\r\n }\r\n\r\n _build(modal);\r\n\r\n return modal;\r\n },\r\n _detectSubmitAction = ($form) => {\r\n\r\n let submit = $form.find(':submit').filter((_, x) => x.dataset.clicked === \"true\")[0],\r\n result = {};\r\n \r\n if (submit != null) {\r\n result[submit.name] = submit.value;\r\n delete submit.dataset.clicked;\r\n }\r\n \r\n return result;\r\n },\r\n _createModalAction = (() => {\r\n\r\n const _normalizeOptions = (options) => {\r\n\r\n // assume action content\r\n if (typeof options === 'string') {\r\n options = {\r\n content: options\r\n };\r\n }\r\n \r\n return options ?? {};\r\n },\r\n _createButton = (options) => {\r\n\r\n let opts = _normalizeOptions(options),\r\n content = opts.content,\r\n $action = $('
').html(content);\r\n\r\n delete opts.content;\r\n\r\n $action.attr(opts);\r\n\r\n return $action;\r\n },\r\n _createCancelAction = (actionOptions) => {\r\n\r\n return _createButton({\r\n type: 'button',\r\n class: 'btn btn-default popup-cancel',\r\n ..._normalizeOptions(actionOptions)\r\n });\r\n },\r\n _createSubmitAction = (actionName, actionOptions) => {\r\n\r\n return _createButton({\r\n type: 'submit',\r\n class: 'btn btn-primary',\r\n name: 'action',\r\n value: actionName,\r\n onclick: 'this.dataset.clicked=\"true\"',\r\n ..._normalizeOptions(actionOptions)\r\n });\r\n },\r\n _knownActions = {\r\n 'cancel': _createCancelAction,\r\n };\r\n\r\n return (actionName, actionOptions) => {\r\n\r\n if (actionName in _knownActions) {\r\n\r\n return _knownActions[actionName](actionOptions);\r\n }\r\n\r\n return _createSubmitAction(actionName, actionOptions);\r\n };\r\n })(),\r\n _triggerModalEvent = ($modal, e, argsArray) => {\r\n\r\n $modal.trigger(e, argsArray);\r\n },\r\n _triggerInitModal = (modal) => {\r\n\r\n _triggerModalEvent(modal.$modal, $.Event(_events.INIT), [modal]);\r\n //var initEvent = $.Event(_events.INIT);\r\n //modal.$modal.trigger($.Event(_events.INIT), [modal]);\r\n };\r\n\r\n\r\n function _build(modal) {\r\n\r\n var $modal = modal.$modal,\r\n options = modal.options;\r\n\r\n _buildModalActions($modal, options.actions);\r\n }\r\n\r\n function _buildModalActions($modal, actions) {\r\n\r\n // check if actions were provided\r\n if (!actions) {\r\n return;\r\n }\r\n\r\n // check if actions container exists\r\n var $actions = $modal.find('.modal-actions');\r\n if ($actions.length == 0) {\r\n return;\r\n }\r\n\r\n // clear actions container\r\n $actions.empty();\r\n\r\n // create actions\r\n for (var actionName in actions) {\r\n\r\n var actionOptions = actions[actionName];\r\n if (actionOptions !== false) {\r\n\r\n var $action = _createModalAction(actionName, actionOptions);\r\n $actions.append($action);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n // constructor DlsModal\r\n function DlsModal($modal, options) {\r\n\r\n var _dfd = $.Deferred(),\r\n _prepareOptions =\r\n (opts) => {\r\n\r\n let r = $.extend({}, DlsModal.defaults, opts);\r\n return r;\r\n };\r\n\r\n this.$modal = $($modal).data('dls.modal', this);\r\n this.options = _prepareOptions(options);\r\n\r\n this.refreshResolver = () => {\r\n\r\n _dfd = $.Deferred();\r\n return _dfd.promise();\r\n };\r\n\r\n this.setOptions = (opts) => {\r\n\r\n this.options = _prepareOptions(opts);\r\n };\r\n \r\n this.$modal\r\n .on(_events.INIT, (e) => {\r\n\r\n if (this.options.init) {\r\n this.options.init(this);\r\n }\r\n })\r\n .on(_events.SHOWING, (e) => {\r\n\r\n this.$modal.find('form')\r\n .trigger('reset-form-validator')\r\n .trigger('reset');\r\n })\r\n .on(_events.RESOLVE, (e, data) => {\r\n\r\n this.hide();\r\n _dfd.resolveWith(this, [data]);\r\n })\r\n .on(_events.REJECT, (e) => {\r\n\r\n this.hide();\r\n _dfd.rejectWith(this);\r\n });\r\n\r\n _triggerInitModal(this);\r\n }\r\n\r\n // DlsModal.prototype\r\n $.extend(DlsModal.prototype, {\r\n\r\n show: function (speed) {\r\n\r\n var promise = this.refreshResolver();\r\n\r\n _showModal(this.$modal, speed);\r\n\r\n return promise;\r\n },\r\n\r\n load: function (url) {\r\n\r\n let promise = _loadModal(url)\r\n .then(() => this.show());\r\n\r\n return promise;\r\n },\r\n \r\n hide: function (speed) {\r\n\r\n _hideModal(this.$modal, speed);\r\n }\r\n });\r\n\r\n // DlsModal static\r\n $.extend(DlsModal, {\r\n\r\n defaults: {\r\n\r\n // Function raised on first time DlsModal initialization only.\r\n init: $.noop,\r\n\r\n // Object where key - action name, value - action options e.g. content, styles etc.\r\n // Requires .modal-actions container\r\n actions: false,\r\n },\r\n\r\n events: _events,\r\n\r\n extend: function (modals) {\r\n\r\n $.extend(this, modals);\r\n },\r\n\r\n confirm: function (text, options) {\r\n\r\n if ($.isFunction(options)) {\r\n\r\n options = {\r\n onYes: options\r\n };\r\n }\r\n\r\n options = $.extend({\r\n onYes: $.noop,\r\n onNo: $.noop,\r\n onCancel: undefined,\r\n title: 'CONFIRM',\r\n buttonYesText: 'YES',\r\n buttonNoText: 'NO'\r\n }, options);\r\n\r\n if (options.onCancel === undefined) {\r\n options.onCancel = options.onNo;\r\n }\r\n\r\n const deferred = $.Deferred(),\r\n $modal = $(_confirmationTemplate).appendTo(_getModalsContainer()),\r\n yesClick = () => {\r\n\r\n _hideModal($modal);\r\n callAsync(options.onYes);\r\n deferred.resolve(true);\r\n },\r\n noClick = () => {\r\n\r\n _hideModal($modal);\r\n callAsync(options.onNo);\r\n deferred.reject(false);\r\n },\r\n cancelClick = () => {\r\n\r\n _hideModal($modal);\r\n callAsync(options.onCancel);\r\n deferred.reject(false);\r\n },\r\n cancelOnEsc = (e) => {\r\n\r\n _handleEscape(e) && cancelClick();\r\n };\r\n\r\n $modal.find('.js-title').html(options.title);\r\n $modal.find('.js-text').html(text);\r\n $modal.find('.js-yes').text(options.buttonYesText);\r\n $modal.find('.js-no').text(options.buttonNoText);\r\n\r\n $modal.find('.popup-close').click(cancelClick);\r\n $modal.find('.js-no').click(noClick);\r\n $modal.find('.js-yes').click(yesClick);\r\n $(document).on('keyup', cancelOnEsc);\r\n\r\n $modal.on(_events.HIDDEN, () => {\r\n\r\n $(document).off('keyup', cancelOnEsc);\r\n $modal.remove();\r\n });\r\n\r\n // show modal\r\n _showModal($modal);\r\n\r\n let promise = deferred.promise();\r\n return promise;\r\n },\r\n\r\n notify: function (content, options) {\r\n\r\n if ($.isFunction(options)) {\r\n\r\n options = {\r\n onClose: options\r\n };\r\n }\r\n\r\n options = $.extend({\r\n onClose: $.noop,\r\n title: 'NOTIFICATION',\r\n buttonOKText: 'OK',\r\n delay: 0\r\n }, options);\r\n\r\n const deferred = $.Deferred(),\r\n $modal = $(_notificationTemplate).appendTo(_getModalsContainer()),\r\n closeModal = () => {\r\n\r\n _hideModal($modal);\r\n callAsync(options.onClose);\r\n deferred.resolve();\r\n },\r\n closeOnEsc = (e) => {\r\n\r\n _handleEscape(e) && closeModal();\r\n };\r\n\r\n $modal.find('.js-title').html(options.title);\r\n $modal.find('.js-text').html(content);\r\n $modal.find('.js-ok').text(options.buttonOKText);\r\n\r\n $modal.find('.popup-close, .js-ok').on('click', closeModal);\r\n $(document).on('keyup', closeOnEsc);\r\n\r\n $modal.on(_events.HIDDEN, () => {\r\n\r\n $(document).off('keyup', closeOnEsc);\r\n $modal.remove();\r\n });\r\n\r\n // show modal\r\n _showModal($modal);\r\n\r\n if (options.delay > 0) {\r\n\r\n setTimeout(closeModal, options.delay);\r\n }\r\n\r\n let promise = deferred.promise();\r\n return promise;\r\n },\r\n\r\n show: function (modalSelector, data, options) {\r\n\r\n var modal = _getDlsModal(modalSelector, options);\r\n\r\n if (data) {\r\n modal.$modal.one(_events.SHOWN, function () {\r\n \r\n modal.$modal.fillWithData(data);\r\n });\r\n }\r\n\r\n let promise = modal.show();\r\n return promise;\r\n },\r\n\r\n load: function (modalSelector, url, onDataLoaded, options) {\r\n\r\n var modal = _getDlsModal(modalSelector, options);\r\n\r\n let promise = _loadModal(url)\r\n .done(response => {\r\n\r\n modal.$modal.one(_events.SHOWN, function () {\r\n\r\n modal.$modal.trigger('dataLoaded', [response]);\r\n\r\n var fillWithData = true;\r\n\r\n if (onDataLoaded) {\r\n fillWithData = onDataLoaded.apply(modal.$modal, [response]) !== false;\r\n }\r\n\r\n if (fillWithData && response) {\r\n modal.$modal.fillWithData(response);\r\n }\r\n });\r\n })\r\n .then(() => {\r\n\r\n return modal.show();\r\n });\r\n\r\n return promise;\r\n },\r\n\r\n hide: function (selector) {\r\n\r\n var $modal = $(selector);\r\n if ($modal.length == 0) {\r\n $modal = _getVisibleModals();\r\n }\r\n\r\n _hideModal($modal);\r\n }\r\n });\r\n \r\n $(document).on(\r\n 'click',\r\n '.popup-close, .popup-cancel',\r\n function () {\r\n\r\n var $modal = $(this).closest('.popup'),\r\n rejectEvent = $.Event(_events.REJECT);\r\n\r\n $modal.trigger(rejectEvent);\r\n });\r\n\r\n $(() => {\r\n\r\n if ($.fn.ajaxSubmit == null) {\r\n\r\n $(document).on(\r\n 'submit',\r\n '.popup form',\r\n function () {\r\n\r\n const $form = $(this),\r\n $modal = $form.closest('.popup'),\r\n formURL = $form.attr('action');\r\n\r\n // trigger resolve event if form has no action URL\r\n if (!formURL) {\r\n\r\n _triggerModalEvent($modal, $.Event(_events.RESOLVE));\r\n return false;\r\n }\r\n });\r\n\r\n } else {\r\n\r\n $(document).on(\r\n 'submit',\r\n '.popup form[data-ajax=\"false\"]',\r\n (e) => {\r\n\r\n _triggerModalEvent(\r\n $(e.target).closest('.popup'),\r\n $.Event(_events.RESOLVE));\r\n });\r\n\r\n $(document).on(\r\n 'onpost',\r\n '.popup form',\r\n (e, formData) => {\r\n\r\n const $modal = e.$form.closest('.popup'),\r\n formURL = e.$form.attr('action');\r\n\r\n // trigger resolve event if form has no action URL\r\n if (!formURL) {\r\n\r\n formData.extend(_detectSubmitAction(e.$form));\r\n _triggerModalEvent(\r\n $modal,\r\n $.Event(_events.RESOLVE),\r\n [formData]);\r\n //$modal.trigger(resolveEvent, [formData]);\r\n }\r\n });\r\n\r\n $(document).on(\r\n 'submit:success',\r\n '.popup form',\r\n (e, response) => {\r\n\r\n _triggerModalEvent(\r\n e.$form.closest('.popup'),\r\n $.Event(_events.RESOLVE),\r\n [response]);\r\n //$modal.trigger(resolveEvent, [response]);\r\n });\r\n }\r\n });\r\n\r\n\r\n\r\n dls.extend({\r\n modal: DlsModal,\r\n showModal: DlsModal.show,\r\n loadModal: DlsModal.load,\r\n hideModal: DlsModal.hide,\r\n confirm: DlsModal.confirm,\r\n notify: DlsModal.notify,\r\n });\r\n\r\n\r\n var _confirm = window.confirm;\r\n\r\n window['modal'] = DlsModal;\r\n window['confirm'] = (text, options) => {\r\n\r\n dls.log.obsolete('window.confirm', 'dls.confirm');\r\n\r\n let m = DlsModal.confirm(text, options);\r\n return m;\r\n };\r\n window['_confirm'] = _confirm;\r\n\r\n})(window['dls'], jQuery);","(() => {\r\n\r\n var _extend = $.extend,\r\n _isNan = isNaN,\r\n _add = (a, b) => Decimal.add(a, b).toNumber(),\r\n _sub = (a, b) => Decimal.sub(a, b).toNumber(),\r\n _mul = (a, b) => Decimal.mul(a, b).toNumber(),\r\n _div = (a, b) => Decimal.div(a, b).toNumber(),\r\n _getValueOrZero = (value) => value == null ? 0 : value,\r\n _share =\r\n (ratio, count) => {\r\n\r\n count = _isNan(count) || count < 0 ? 0 : count;\r\n\r\n if (ratio.isNull()) {\r\n\r\n return Ratio.array(null, count);\r\n }\r\n\r\n if (count == 0) {\r\n\r\n return Ratio.array(0, count);\r\n }\r\n\r\n var shares = Ratio.array(0, count),\r\n balance = new Ratio(ratio);\r\n\r\n for (var i = 0; i < count; i++) {\r\n\r\n var share = new Ratio(_div(balance.value, count - i), ratio.scale);\r\n shares[i] = share;\r\n\r\n balance = new Ratio(_sub(balance.value, share.value), ratio.scale);\r\n }\r\n\r\n return shares;\r\n };\r\n\r\n\r\n\r\n function RatioCollection(ratios) {\r\n\r\n var _getError = (items) =>\r\n RatioCollection.getPossibleError(\r\n items.length,\r\n Math.max(items.max(x => x.scale), 1)\r\n );\r\n\r\n\r\n this.ratios = ratios.select(x => new Ratio(x));\r\n\r\n this.total = () =>\r\n this.ratios.sumDecimals(x => x.value);\r\n\r\n this.isOne = () => {\r\n\r\n var _total = this.total(),\r\n _possibleError = _getError(this.ratios),\r\n _diff = Decimal.sub(1, _total).abs().toNumber();\r\n\r\n return _diff > _possibleError;\r\n };\r\n }\r\n\r\n _extend(RatioCollection, {\r\n\r\n 'getPossibleError': function (itemsCount, scale) {\r\n\r\n scale = arguments.length > 1 ? scale : dls.defaults.ratioScale;\r\n\r\n var error = Decimal.div(1, Math.pow(10, scale))\r\n .mul(itemsCount)\r\n .toNumber();\r\n\r\n return error;\r\n }\r\n\r\n });\r\n\r\n\r\n\r\n function Ratio(percent, scale) {\r\n\r\n var _toDecimal =\r\n (value, precision) => {\r\n\r\n if (value instanceof Ratio) {\r\n return value.value;\r\n }\r\n\r\n if (_isNan(value)) {\r\n return null;\r\n }\r\n\r\n try {\r\n return new Decimal(value).toDecimalPlaces(precision).toNumber();\r\n } catch (e) {\r\n return null;\r\n }\r\n };\r\n\r\n this.scale = scale || dls.defaults.ratioScale;\r\n\r\n this.value = _toDecimal(percent, this.scale);\r\n\r\n this.hasValue = () => this.value != null;\r\n\r\n this.isNull = () => this.value == null;\r\n }\r\n\r\n Ratio.prototype = _extend(true, {}, Ratio.prototype, {\r\n\r\n 'share': function share(length) {\r\n\r\n return _share(this, +length);\r\n },\r\n\r\n 'getValueOrZero': function getValueOrZero() {\r\n\r\n return _getValueOrZero(this.value);\r\n },\r\n \r\n 'add': function add(ratio) {\r\n\r\n return new Ratio(\r\n _add(this.getValueOrZero(), new Ratio(ratio).getValueOrZero()));\r\n },\r\n\r\n 'sub': function sub(ratio) {\r\n\r\n return new Ratio(\r\n _sub(this.getValueOrZero(), new Ratio(ratio).getValueOrZero()));\r\n }\r\n\r\n });\r\n\r\n _extend(Ratio, {\r\n\r\n 'array': function array(value, length) {\r\n\r\n return new Array(length).fill(new Ratio(value));\r\n },\r\n\r\n 'from100': function (value) {\r\n\r\n return new Ratio(_div(value, 100));\r\n },\r\n\r\n 'share': function share(value, length, scale) {\r\n\r\n var result = new Ratio(value, scale)\r\n .share(length)\r\n .select(x => x.value);\r\n\r\n return result;\r\n },\r\n\r\n 'toRatios': function toRatios(values, scale) {\r\n\r\n var numbers = values.select(x => +x),\r\n totalBalance = numbers.sumDecimals(),\r\n totalRatioBalance = 1,\r\n ratios = numbers\r\n .select(x => {\r\n\r\n var ratio = totalBalance == 0\r\n ? Ratio.zero()\r\n : new Ratio(_mul(_div(x, totalBalance), totalRatioBalance), scale);\r\n\r\n totalBalance = _sub(totalBalance, x);\r\n totalRatioBalance = _sub(totalRatioBalance, ratio.value);\r\n\r\n return ratio;\r\n });\r\n\r\n return ratios;\r\n },\r\n\r\n 'getRatioFrom': function getRatioFrom(value, baseValue, scale) {\r\n\r\n return new Ratio(\r\n _div(_getValueOrZero(value), _getValueOrZero(baseValue)), scale);\r\n },\r\n\r\n 'zero': function zero() {\r\n\r\n return new Ratio(0);\r\n },\r\n\r\n 'one': function one() {\r\n\r\n return new Ratio(1);\r\n }\r\n\r\n });\r\n\r\n\r\n\r\n window['Ratio'] = Ratio;\r\n window['RatioCollection'] = RatioCollection;\r\n\r\n})();","(function () {\r\n\r\n let _max = 99999999999999.99,\r\n _isNumber = $.isNumeric,\r\n _extend = $.extend,\r\n _add = (a, b) => Decimal.add(a, b).toNumber(),\r\n _sub = (a, b) => Decimal.sub(a, b).toNumber(),\r\n _mul = (a, b) => Decimal.mul(a, b).toNumber(),\r\n _div = (a, b) => Decimal.div(a, b).toNumber(),\r\n _getValueOrZero = (value) =>\r\n value == null ? 0 : value,\r\n _normalizeRatio = (number) =>\r\n isNaN(number) || number == null ? 0 : +number,\r\n _normalizeRatios = (ratios, rateKind) => {\r\n\r\n return [].concat(ratios)\r\n .select(x => {\r\n\r\n var ratio = _normalizeRatio(x);\r\n switch (rateKind) {\r\n case '1':\r\n return ratio;\r\n case '100':\r\n return _isNumber(ratio) ? _div(ratio, 100) : null;\r\n default:\r\n throw `Unsupported rateKind '${rateKind}' provided. Available values: 1, 100.`;\r\n }\r\n });\r\n },\r\n _getMoneyByRatio = (money, ratio) =>\r\n new Money(_mul(money.value, ratio)),\r\n _executeSmartAllocation = (allocatable, ratios) => {\r\n\r\n var allocatableBalance = new Money(allocatable),\r\n ratioBalance = 1,\r\n allocations = ratios\r\n .select(ratio => {\r\n\r\n var allocation = ratioBalance == 0\r\n ? Money.zero()\r\n : _getMoneyByRatio(allocatableBalance, _div(ratio, ratioBalance));\r\n\r\n allocatableBalance = allocatableBalance.sub(allocation);\r\n ratioBalance = _sub(ratioBalance, ratio);\r\n\r\n return allocation;\r\n });\r\n\r\n return allocations;\r\n },\r\n _executeSimpleAllocation = (allocatable, ratios) => {\r\n\r\n var allocations = ratios\r\n .select(x => _getMoneyByRatio(allocatable, x));\r\n\r\n return allocations;\r\n },\r\n _allocate = (allocatable, ratios) => {\r\n\r\n if (allocatable.isNull()) {\r\n\r\n return Money.array(null, ratios.length);\r\n }\r\n\r\n if (ratios.length == 0) {\r\n\r\n return Money.array(0, ratios.length);\r\n }\r\n\r\n const totalRatio = ratios.sumDecimals(),\r\n possibleError = RatioCollection.getPossibleError(ratios.length),\r\n diff = Decimal.sub(1, totalRatio).abs().toNumber();\r\n\r\n if (diff <= possibleError) {\r\n\r\n return _executeSmartAllocation(allocatable, ratios);\r\n }\r\n\r\n return _executeSimpleAllocation(allocatable, ratios);\r\n },\r\n _share = (allocatable, count) => {\r\n\r\n count = isNaN(count) || count < 0 ? 0 : +count;\r\n\r\n if (allocatable.isNull()) {\r\n\r\n return Money.array(null, count);\r\n }\r\n\r\n if (count == 0) {\r\n\r\n return Money.array(0, count);\r\n }\r\n\r\n var allocations = Money.array(0, count),\r\n balance = new Money(allocatable);\r\n\r\n for (var i = 0; i < count; i++) {\r\n\r\n var share = new Money(_div(balance.value, count - i));\r\n allocations[i] = share;\r\n\r\n balance = new Money(_sub(balance.value, share.value));\r\n }\r\n\r\n return allocations;\r\n },\r\n _crossAllocate = (allocatables, toAllocate) => {\r\n\r\n if (allocatables.length == 0 ||\r\n toAllocate.length == 0) {\r\n\r\n return Money.array(0, 0);\r\n }\r\n\r\n let totalLength = allocatables.length * toAllocate.length;\r\n\r\n if (allocatables.all(x => x.isNull()) ||\r\n toAllocate.all(x => x.isNull())) {\r\n\r\n return Money.array(null, totalLength);\r\n }\r\n\r\n // TODO: think how to handle different totals\r\n //if (Money.total(allocatables).value != Money.total(toAllocate).value) {\r\n\r\n // return Money.array();\r\n //}\r\n\r\n let _allocatables = allocatables.select(x => new Money(x)),\r\n _toAllocate = toAllocate.select(x => new Money(x)),\r\n rows = _allocatables.length,\r\n cols = _toAllocate.length,\r\n allocations = Money.array(0, totalLength),\r\n totalBalance = Money.total(allocatables);\r\n\r\n for (let row = 0; row < rows; row++) {\r\n var rowBalance = new Money(_allocatables[row]);\r\n var runningTotalBalance = new Money(totalBalance);\r\n\r\n for (let col = 0; col < cols; col++) {\r\n if (runningTotalBalance.isZero()) {\r\n break;\r\n }\r\n\r\n var colBalance = _toAllocate[col];\r\n var allocatedPortion = new Money(\r\n rowBalance.value / runningTotalBalance.value * colBalance.value);\r\n allocations[row * cols + col] = allocatedPortion;\r\n\r\n rowBalance = rowBalance.sub(allocatedPortion);\r\n _toAllocate[col] = _toAllocate[col].sub(allocatedPortion);\r\n runningTotalBalance = runningTotalBalance.sub(colBalance);\r\n }\r\n\r\n totalBalance = totalBalance.sub(_allocatables[row]);\r\n }\r\n\r\n return allocations;\r\n };\r\n\r\n\r\n\r\n // Money constructor\r\n function Money(amount) {\r\n\r\n var _toDecimal =\r\n (value) => {\r\n\r\n if (value instanceof Money) {\r\n return value.value;\r\n }\r\n\r\n try {\r\n return new Decimal(value).toDecimalPlaces(2).toNumber();\r\n } catch (e) {\r\n return null;\r\n }\r\n };\r\n\r\n this.value = _toDecimal(amount);\r\n\r\n this.hasValue = () => this.value != null;\r\n\r\n this.isNull = () => this.value == null;\r\n }\r\n\r\n Money.prototype = _extend(true, {}, Money.prototype, {\r\n\r\n getAmount: function getAmount() {\r\n\r\n return this.value;\r\n },\r\n \r\n getValueOrZero: function () {\r\n\r\n return _getValueOrZero(this.value);\r\n },\r\n\r\n isZero: function isZero() {\r\n\r\n return this.value == 0;\r\n },\r\n \r\n add: function add(other) {\r\n\r\n return new Money(\r\n _add(this.getValueOrZero(), new Money(other).getValueOrZero())\r\n );\r\n },\r\n \r\n sub: function sub(other) {\r\n\r\n return new Money(\r\n _sub(this.getValueOrZero(), new Money(other).getValueOrZero())\r\n );\r\n },\r\n\r\n allocate: function allocate(ratios, options) {\r\n\r\n options = $.extend({}, Money.DEFAULTS, options);\r\n ratios = _normalizeRatios(ratios, options.rateKind);\r\n\r\n return _allocate(this, ratios);\r\n },\r\n\r\n share: function share(count, options) {\r\n\r\n options = $.extend({}, Money.DEFAULTS, options);\r\n count = +count;\r\n\r\n return _share(this, count);\r\n }\r\n });\r\n\r\n\r\n _extend(Money, {\r\n\r\n DEFAULTS: {\r\n rateKind: '1'\r\n },\r\n \r\n max: function max() {\r\n\r\n return new Money(_max);\r\n },\r\n\r\n array: function array(value, length) {\r\n\r\n return new Array(length).fill(new Money(value));\r\n },\r\n\r\n allocate: function allocate(amount, ratios, options) {\r\n\r\n var result = new Money(amount)\r\n .allocate(ratios, options)\r\n .select(x => x.value);\r\n\r\n return result;\r\n },\r\n \r\n crossAllocate: function crossAllocate(allocatablesArray, toAllocateArray) {\r\n\r\n var allocatables = allocatablesArray.select(x => new Money(x)),\r\n toAllocate = toAllocateArray.select(x => new Money(x)),\r\n allocation = _crossAllocate(allocatables, toAllocate),\r\n result = allocation.select(x => x.value);\r\n\r\n return result;\r\n },\r\n\r\n share: function share(amount, count, options) {\r\n\r\n var result = new Money(amount)\r\n .share(count, options)\r\n .select(x => x.value);\r\n\r\n return result;\r\n },\r\n\r\n round: function round(amount) {\r\n\r\n return new Money(amount).value;\r\n },\r\n\r\n zero: function zero() {\r\n\r\n return new Money(0);\r\n },\r\n\r\n total: function total(moneys) {\r\n\r\n let result = new Money(null);\r\n\r\n moneys.forEach((value, i) => result = result.add(value));\r\n\r\n return result;\r\n }\r\n });\r\n\r\n\r\n window['Money'] = Money;\r\n window['roundMoney'] = Money.round;\r\n})();","(function($) {\r\n\r\n function Address(addressLine1, addressLine2, city, state, zip) {\r\n this.addressLine1 = addressLine1;\r\n this.addressLine2 = addressLine2;\r\n this.city = city;\r\n this.state = state;\r\n this.zip = zip;\r\n }\r\n\r\n $.extend(Address.prototype, {\r\n toInlineString: function () {\r\n var result = '';\r\n\r\n if (this.addressLine1) {\r\n result = this.addressLine1;\r\n }\r\n\r\n if (this.addressLine2) {\r\n result += (result && ', ') + this.addressLine2;\r\n }\r\n\r\n if (this.city) {\r\n result += (result && ', ') + this.city;\r\n }\r\n\r\n if (this.state) {\r\n result += (result && ', ') + this.state;\r\n }\r\n\r\n if (this.zip) {\r\n result += (result && ' ') + this.zip;\r\n }\r\n\r\n return result;\r\n }\r\n });\r\n\r\n window['Address'] = Address;\r\n\r\n}) (jQuery);","(function ($) {\r\n\r\n function PhoneNumber(number, ext) {\r\n this.number = number;\r\n this.ext = ext;\r\n }\r\n\r\n function formatPhoneNumber(number, ext) {\r\n if (!number) {\r\n return '';\r\n }\r\n\r\n var result = number.replace(/[^\\d]+/g, '');\r\n if (result.length > 3) {\r\n result = result.substring(0, 3) + '-' + result.substring(3);\r\n }\r\n if (result.length > 7) {\r\n result = result.substring(0, 7) + '-' + result.substring(7);\r\n }\r\n\r\n if (!ext) {\r\n return result;\r\n }\r\n\r\n return result + ' (' + ext.replace(/[^\\d]+/g, '') + ')';\r\n }\r\n\r\n $.extend(PhoneNumber.prototype, {\r\n\r\n toFormatted: function () {\r\n return formatPhoneNumber(this.number, this.ext);\r\n }\r\n\r\n });\r\n\r\n $.extend(PhoneNumber, {\r\n\r\n format: formatPhoneNumber\r\n\r\n });\r\n\r\n window['PhoneNumber'] = PhoneNumber;\r\n\r\n})(jQuery);","(function (dls) {\r\n\r\n function Calc() {\r\n\r\n }\r\n\r\n var _getFeePercentage =\r\n (baseAmount, feeAmount) => {\r\n\r\n if (dls.isNum(baseAmount) === false || dls.isNum(feeAmount) === false) {\r\n return null;\r\n }\r\n\r\n return roundPercent(new Decimal(+feeAmount).percent(+baseAmount));\r\n },\r\n _getFeeAmount =\r\n (baseAmount, options) => {\r\n\r\n if (dls.isNum(baseAmount) === false) {\r\n return null;\r\n }\r\n\r\n var feeType = options['feeType'],\r\n fee = options['fee'],\r\n feePerSf = options['feePerSf'],\r\n sf = options['sf'],\r\n leaseTerm = options['leaseTerm'];\r\n\r\n switch (feeType) {\r\n\r\n case dls.enums.RepFeeType['Percentage']:\r\n\r\n if (dls.isNumber(fee)) {\r\n\r\n return Money.round(\r\n new Decimal(+fee).percentOf(+baseAmount)\r\n );\r\n }\r\n\r\n case dls.enums.RepFeeType['AmountPerSf']:\r\n\r\n if (dls.isNumber(sf) &&\r\n dls.isNumber(feePerSf)) {\r\n\r\n return Money.round(\r\n Decimal.mul(+sf, +feePerSf)\r\n .toNumber()\r\n );\r\n }\r\n\r\n case dls.enums.RepFeeType['AnnualAmountPerSf']:\r\n\r\n if (dls.isNumber(sf) &&\r\n dls.isNumber(feePerSf) &&\r\n dls.isNumber(leaseTerm)) {\r\n\r\n return Money.round(\r\n Decimal.mul(+sf, +feePerSf)\r\n .div(12)\r\n .mul(+leaseTerm)\r\n .toNumber()\r\n );\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n Calc.prototype.getFeePercentage = _getFeePercentage;\r\n Calc.prototype.getFeeAmount = _getFeeAmount;\r\n\r\n dls.extend({\r\n calc: new Calc()\r\n });\r\n\r\n})(window['dls']);","/*** setup temp storage ***/\r\n(function () {\r\n var storage = {\r\n get: function (key) {\r\n return $.cookie(key);\r\n },\r\n set: function (key, value, opts) {\r\n $.cookie(key, value, $.extend({ path: '/' }, opts || {}));\r\n },\r\n del: function (key) {\r\n $.removeCookie(key, { path: '/' });\r\n }\r\n };\r\n window['storage'] = storage;\r\n\r\n var userSession = {\r\n _getKey: function (orig) {\r\n return 'usrssn_' + orig;\r\n },\r\n get: function (key) {\r\n var result = null;\r\n try {\r\n var json = $.cookie(this._getKey(key));\r\n result = JSON.parse(json);\r\n } catch (e) { }\r\n\r\n return result;\r\n },\r\n set: function (key, value, opts) {\r\n var json = JSON.stringify(value);\r\n $.cookie(this._getKey(key), json, $.extend({ path: '/', expires: 999 }, opts || {}));\r\n },\r\n del: function (key) {\r\n $.removeCookie(this._getKey(key), { path: '/' });\r\n },\r\n clear: function (prefix) {\r\n if (!prefix) {\r\n return;\r\n }\r\n var key = this._getKey(prefix + '_');\r\n var keys = Object.keys($.cookie()).filter(k => k.startsWith(key));\r\n keys.forEach(k => $.removeCookie(k, { path: '/' }));\r\n },\r\n };\r\n window['userSession'] = userSession;\r\n})();","$(window).on('scroll', function () {\r\n var wScrollTop = $(this).scrollTop();\r\n $('#wrapper')[wScrollTop > 1 ? 'addClass' : 'removeClass']('page-scrolled');\r\n});\r\n\r\n\r\n(function () {\r\n // Page header\r\n function pageHeaderHeightResize() {\r\n var $pageHeader = $('.page-header'),\r\n ww = $(window).width(),\r\n landscapePhonesWidth = 576,\r\n tabletsWidth = 768;\r\n\r\n if ($pageHeader.length > 0 && ww > landscapePhonesWidth) {\r\n var pageHeaderH = $pageHeader.outerHeight(true);\r\n $pageHeader.next().css({\r\n \"margin-top\": pageHeaderH\r\n });\r\n\r\n var $mainSidebar = $pageHeader.nextAll('.main-sidebar');\r\n if ($mainSidebar.length > 0) {\r\n if (ww > tabletsWidth) {\r\n $mainSidebar.eq(0).css({\r\n \"margin-top\": pageHeaderH\r\n });\r\n } else {\r\n $mainSidebar.eq(0).removeAttr('style');\r\n }\r\n }\r\n }\r\n }\r\n\r\n $(function () {\r\n pageHeaderHeightResize();\r\n\r\n // Subscribe for parent size changed\r\n var $pageHeader = $('.page-header'),\r\n headerParent = $pageHeader.parent().get(0);\r\n if (!headerParent) {\r\n return;\r\n }\r\n\r\n var resizeObserver = new ResizeObserver(function (entries) {\r\n // Note: workaround to avoid errors like 'ResizeObserver loop limit exceeded'\r\n window.requestAnimationFrame(() => {\r\n if (!Array.isArray(entries) || !entries.length) {\r\n return;\r\n }\r\n\r\n pageHeaderHeightResize();\r\n });\r\n });\r\n resizeObserver.observe(headerParent);\r\n });\r\n\r\n $(window).on('resize', function () {\r\n pageHeaderHeightResize();\r\n });\r\n})();\r\n\r\n\r\n$(function () {\r\n\r\n const $main = $('#main'),\r\n _sectionSelector = '.form-fieldset',\r\n _getAllSections = () => $main.find(_sectionSelector),\r\n _activateSection = ($section) => {\r\n\r\n _getAllSections().removeClass('active');\r\n $section.first().addClass('active');\r\n },\r\n _toggleSection = ($section) => {\r\n\r\n const collapsed = $section.hasClass('collapsed');\r\n if (collapsed) {\r\n _expandSection($section);\r\n } else {\r\n _collapseSection($section);\r\n }\r\n },\r\n _expandSection = ($section) => {\r\n\r\n $section.removeClass('collapsed');\r\n $section.find('.form-fieldset-hidden').slideDown();\r\n _activateSection($section);\r\n\r\n _triggerSectionExpand($section);\r\n },\r\n _collapseSection = ($section) => {\r\n\r\n $section.addClass('collapsed');\r\n $section.find('.form-fieldset-hidden').slideUp();\r\n },\r\n _triggerSectionExpand = ($section) => {\r\n\r\n $section.trigger('section:expand', []);\r\n };\r\n\r\n $(document).on('click', _sectionSelector, (e) => {\r\n\r\n _activateSection($(e.currentTarget));\r\n });\r\n\r\n $(document).on('click', `${_sectionSelector} .form-toggle-link`, (e) => {\r\n\r\n const $section = $(e.currentTarget).closest(_sectionSelector);\r\n _toggleSection($section);\r\n\r\n return false;\r\n });\r\n\r\n $(document).on('click', '.expand-all-link', function () {\r\n\r\n _expandSection(_getAllSections());\r\n\r\n return false;\r\n });\r\n\r\n $(document).on('click', '.collapse-all-link', function () {\r\n\r\n _collapseSection(_getAllSections());\r\n\r\n return false;\r\n });\r\n\r\n $.fn.expandSection = function () {\r\n\r\n var $section = this.filter(_sectionSelector);\r\n _expandSection($section);\r\n\r\n return this;\r\n };\r\n\r\n $.fn.collapseSection = function () {\r\n\r\n var $section = this.filter(_sectionSelector);\r\n _collapseSection($section);\r\n\r\n return this;\r\n };\r\n\r\n});","/**\r\n * jQuery serializeObject\r\n * @copyright 2014, macek
\r\n * @link https://github.com/macek/jquery-serialize-object\r\n * @license BSD\r\n * @version 2.5.0\r\n */\r\n(function (root, factory) {\r\n\r\n // AMD\r\n if (typeof define === \"function\" && define.amd) {\r\n define([\"exports\", \"jquery\"], function (exports, $) {\r\n return factory(exports, $);\r\n });\r\n }\r\n\r\n // CommonJS\r\n else if (typeof exports !== \"undefined\") {\r\n var $ = require(\"jquery\");\r\n factory(exports, $);\r\n }\r\n\r\n // Browser\r\n else {\r\n factory(root, (root.jQuery || root.Zepto || root.ender || root.$));\r\n }\r\n\r\n}(this, function (exports, $) {\r\n\r\n var patterns = {\r\n validate: /^[a-z_][a-z0-9_]*(?:\\[(?:\\d*|[a-z0-9_]+)\\]|(?:\\.[a-z0-9_]+))*$/i,\r\n key: /[a-z0-9_]+|(?=\\[\\])/gi,\r\n push: /^$/,\r\n fixed: /^\\d+$/,\r\n named: /^[a-z0-9_]+$/i\r\n },\r\n options = {\r\n ignore: '.submit-ignore'\r\n };\r\n\r\n function FormSerializer(helper, $form) {\r\n\r\n // private variables\r\n var data = {},\r\n pushes = {};\r\n\r\n // private API\r\n function build(base, key, value) {\r\n base[key] = value;\r\n return base;\r\n }\r\n\r\n function makeObject(root, value) {\r\n\r\n var keys = root.match(patterns.key), k;\r\n\r\n // nest, nest, ..., nest\r\n while ((k = keys.pop()) !== undefined) {\r\n // foo[]\r\n if (patterns.push.test(k)) {\r\n var idx = incrementPush(root.replace(/\\[\\]$/, ''));\r\n value = build([], idx, value);\r\n }\r\n\r\n // foo[n]\r\n else if (patterns.fixed.test(k)) {\r\n value = build([], k, value);\r\n }\r\n\r\n // foo; foo[bar]\r\n else if (patterns.named.test(k)) {\r\n value = build({}, k, value);\r\n }\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function incrementPush(key) {\r\n if (pushes[key] === undefined) {\r\n pushes[key] = 0;\r\n }\r\n return pushes[key]++;\r\n }\r\n\r\n function encode(pair) {\r\n switch ($('[name=\"' + pair.name + '\"]', $form).attr(\"type\")) {\r\n case \"checkbox\":\r\n return pair.value === \"on\" ? true : pair.value;\r\n default:\r\n return pair.value;\r\n }\r\n }\r\n\r\n function addPair(pair) {\r\n if (!patterns.validate.test(pair.name)) return this;\r\n var obj = makeObject(pair.name, encode(pair));\r\n data = helper.extend(true, data, obj);\r\n return this;\r\n }\r\n\r\n function addPairs(pairs) {\r\n if (!helper.isArray(pairs)) {\r\n throw new Error(\"formSerializer.addPairs expects an Array\");\r\n }\r\n for (var i = 0, len = pairs.length; i < len; i++) {\r\n this.addPair(pairs[i]);\r\n }\r\n return this;\r\n }\r\n\r\n function serialize() {\r\n return data;\r\n }\r\n\r\n function serializeJSON() {\r\n return JSON.stringify(serialize());\r\n }\r\n\r\n // public API\r\n this.addPair = addPair;\r\n this.addPairs = addPairs;\r\n this.serialize = serialize;\r\n this.serializeJSON = serializeJSON;\r\n }\r\n\r\n FormSerializer.patterns = patterns;\r\n FormSerializer.options = options;\r\n\r\n FormSerializer.serializeObject = function serializeObject(includeDisabled) {\r\n return new FormSerializer($, this)\r\n .addPairs(getSerializedData(this, includeDisabled))\r\n .serialize();\r\n };\r\n\r\n FormSerializer.serializeJSON = function serializeJSON(includeDisabled) {\r\n return new FormSerializer($, this)\r\n .addPairs(getSerializedData(this, includeDisabled))\r\n .serializeJSON();\r\n };\r\n\r\n function serializeArrayIncludeDisabled($elem) {\r\n return $elem.map(function() {\r\n // Can add propHook for \"elements\" to filter or add form elements\r\n var elements = $.prop(this, \"elements\");\r\n return elements ? $.makeArray(elements) : this;\r\n })\r\n .filter(function() {\r\n var type = this.type;\r\n\r\n return this.name &&\r\n /^(?:input|select|textarea|keygen)/i.test(this.nodeName) &&\r\n !/^(?:submit|button|image|reset|file)$/i.test(type);\r\n })\r\n .map(function(i, elem) {\r\n var $this = $(this),\r\n val = $this.val(),\r\n type = $this.attr('type'),\r\n getValue = function(val) {\r\n return /^(?:checkbox|radio)$/i.test(type)\r\n ? ($this.is(':checked') ? val : false)\r\n : val.replace(/\\r?\\n/g, \"\\r\\n\");\r\n };\r\n\r\n return val == null ?\r\n { name: elem.name, value: null } :\r\n $.isArray(val) ?\r\n $.map(val, function(val) {\r\n return { name: elem.name, value: getValue(val) };\r\n }) :\r\n { name: elem.name, value: getValue(val) };\r\n }).get();\r\n }\r\n\r\n function getSerializedData($form, includeDisabled) {\r\n\r\n return includeDisabled === true\r\n ? serializeArrayIncludeDisabled($form)\r\n : $form.serializeArray();\r\n }\r\n\r\n if (typeof $.fn !== \"undefined\") {\r\n $.fn.serializeObject = FormSerializer.serializeObject;\r\n $.fn.serializeJSON = FormSerializer.serializeJSON;\r\n }\r\n\r\n exports.FormSerializer = FormSerializer;\r\n\r\n return FormSerializer;\r\n}));\r\n","\r\n/*** ajax form submit ***/\r\n/*\r\n Available data-* attributes:\r\n\r\n data-ajax=\"false\" - do not apply default ajax submit (default: true)\r\n data-submit=\"[selector]\" - jQuery object|selector to that will be applied .button('loading') function\r\n data-submit-behavior - submit behavior type that will be applied to submit element\r\n data-submit-visibility - submit visibility behavior that will be applied to submit element\r\n data-success-redirect - url where user will be redirected after SUCCESS submit (default: empty)\r\n data-success-notify=\"false\" - do not notify user with server message after SUCCESS submit (default: true)\r\n\r\n also you can set options using .data()\r\n*/\r\n(($) => {\r\n\r\n\r\n const\r\n _equal =\r\n (value1, value2) => {\r\n\r\n return value1.toUpperCase() === value2.toUpperCase();\r\n },\r\n _getData =\r\n ($elem, key) => {\r\n\r\n return $elem.attr('data-' + key) || $elem.data(key);\r\n },\r\n _getSubmit =\r\n ($form) => {\r\n\r\n var $submit = $form.find(':submit'),\r\n $submitCustom = $(_getData($form, 'submit'));\r\n\r\n if ($submitCustom.length > 0) {\r\n $submit = $submitCustom;\r\n }\r\n\r\n return $submit;\r\n },\r\n _getSubmitBehavior =\r\n ($form) => {\r\n\r\n return _getData($form, 'submit-behavior') || SubmitBehavior.RESET_ON_COMPLETE;\r\n },\r\n _getSubmitVisibility =\r\n ($form) => {\r\n\r\n return _getData($form, 'submit-visibility') || SubmitVisibility.VISIBLE_ALWAYS;\r\n };\r\n\r\n\r\n function SubmitBehavior($submit, resetBehavior) {\r\n\r\n var _$submit = $submit,\r\n _currentResetBehavior = resetBehavior,\r\n _setButtonState =\r\n (state) => {\r\n\r\n if (_$submit.button) {\r\n _$submit.button(state);\r\n }\r\n },\r\n _toggleProgress =\r\n (toggle) => {\r\n\r\n if (_$submit.toggleBtnProgress) {\r\n _$submit.toggleBtnProgress(toggle);\r\n }\r\n };\r\n\r\n\r\n this.setState = (state, progress) => {\r\n\r\n _setButtonState(state);\r\n _toggleProgress(progress);\r\n };\r\n\r\n this.setLoading = () => this.setState('loading', true);\r\n\r\n this.reset = () => this.setState('reset', false);\r\n\r\n this.resetWhen = (expectedBehaviour) => {\r\n\r\n if (_equal(_currentResetBehavior, expectedBehaviour)) {\r\n this.reset();\r\n }\r\n };\r\n\r\n this.resetOnSuccess = () => this.resetWhen(SubmitBehavior.RESET_ON_SUCCESS);\r\n this.resetOnError = () => this.resetWhen(SubmitBehavior.RESET_ON_ERROR);\r\n this.resetOnComplete = () => this.resetWhen(SubmitBehavior.RESET_ON_COMPLETE);\r\n }\r\n\r\n $.extend(SubmitBehavior, {\r\n RESET_ON_SUCCESS: 'ResetOnSuccess',\r\n RESET_ON_ERROR: 'ResetOnError',\r\n RESET_ON_COMPLETE: 'ResetOnComplete'\r\n });\r\n\r\n\r\n function SubmitVisibility($submit) {\r\n\r\n let _$submit = $submit,\r\n _toggleVisibility =\r\n (visible, speed) => {\r\n\r\n _$submit\r\n .stop(true, true)\r\n [visible ? 'fadeIn' : 'fadeOut'](speed);\r\n };\r\n\r\n this.show = (speed) => _toggleVisibility(true, speed);\r\n\r\n this.hide = (speed) => _toggleVisibility(false, speed);\r\n\r\n this.toggleVisibility = _toggleVisibility;\r\n }\r\n\r\n $.extend(SubmitVisibility, {\r\n VISIBLE_ALWAYS: 'VisibleAlways',\r\n VISIBLE_ON_DIRTY: 'VisibleOnDirty'\r\n });\r\n\r\n\r\n function FormProgress($elem) {\r\n\r\n var _$elem = $elem,\r\n _mode = $elem.attr('data-show-progress') || 'auto',\r\n _enabled = ['auto', 'true'].indexOf(_mode) >= 0,\r\n _toggleProgress =\r\n (toggle) => {\r\n\r\n _$elem.toggleLoadingMask(toggle);\r\n };\r\n\r\n this.show = () => _enabled && _toggleProgress(true);\r\n this.hide = () => _enabled && _toggleProgress(false);\r\n }\r\n\r\n\r\n function FormState($form) {\r\n \r\n let _key = '__submitting',\r\n _$form = $form.data(_key, false);\r\n\r\n this.submit = () => _$form.data(_key, true);\r\n \r\n this.reset = () => _$form.data(_key, false);\r\n\r\n this.isSubmitting = () => _$form.data(_key) === true;\r\n }\r\n\r\n\r\n\r\n function DlsFormData(data) {\r\n\r\n if (!(this instanceof DlsFormData)) {\r\n return new DlsFormData(data);\r\n }\r\n\r\n this.extend(data);\r\n }\r\n\r\n Object.defineProperties(DlsFormData.prototype, {\r\n\r\n 'extend': {\r\n value: function extend(data) {\r\n\r\n $.extend(this, data);\r\n return this;\r\n }\r\n },\r\n\r\n 'clear': {\r\n value: function clear() {\r\n\r\n Object.keys(this).forEach(key => delete this[key]);\r\n return this;\r\n }\r\n },\r\n\r\n 'remove': {\r\n value: function clear(key) {\r\n\r\n [].concat(key).forEach(key => delete this[key]);\r\n return this;\r\n }\r\n },\r\n\r\n 'replace': {\r\n value: function replace(data) {\r\n\r\n this.clear();\r\n this.extend(data);\r\n return this;\r\n }\r\n }\r\n\r\n });\r\n\r\n\r\n function FormSerializer($form) {\r\n\r\n var _$form = $form,\r\n _getFormData =\r\n ($form) => DlsFormData($form.serializeObject());\r\n\r\n this.serialize = () => {\r\n\r\n var formData = _getFormData(_$form),\r\n serializeEvent = $.Event('serialize', { $form: _$form, formData: formData });\r\n\r\n _$form.trigger(serializeEvent, [formData]);\r\n\r\n if (typeof serializeEvent.result !== 'undefined') {\r\n formData = serializeEvent.result;\r\n }\r\n\r\n return formData;\r\n };\r\n }\r\n\r\n\r\n function FormValidator($form) {\r\n\r\n const _$form = $form;\r\n\r\n this.isValid = () => _$form.valid();\r\n }\r\n\r\n\r\n function FormTransport($form) {\r\n\r\n const\r\n _getUrl = () => $form.attr('action'),\r\n _postFormData =\r\n (url, formData, ajaxOptions) => {\r\n\r\n var opts = $.extend(ajaxOptions, {\r\n url: url,\r\n contentType: false,\r\n processData: false,\r\n type: 'post',\r\n dataType: 'json',\r\n data: formData\r\n });\r\n\r\n return $.ajax(opts);\r\n },\r\n _postJSON =\r\n (url, data, ajaxOptions) => {\r\n\r\n return $.postJSON(url, data, ajaxOptions);\r\n },\r\n _getXHR =\r\n (url, data, ajaxOptions) => {\r\n\r\n if (data instanceof FormData) {\r\n return _postFormData(url, data, ajaxOptions);\r\n }\r\n\r\n return _postJSON(url, data, ajaxOptions);\r\n };\r\n\r\n this.isSupported = () => Boolean(_getUrl());\r\n\r\n this.send = (data, ajaxOptions) => {\r\n\r\n return _getXHR(_getUrl(), data, ajaxOptions);\r\n };\r\n }\r\n\r\n\r\n function DlsForm(form, ajaxOptions) {\r\n\r\n let $form = $(form),\r\n $submit = _getSubmit($form),\r\n ajaxOpts = $.extend({}, ajaxOptions),\r\n formSubmit = new SubmitBehavior($submit, _getSubmitBehavior($form)),\r\n formProgress = new FormProgress($form),\r\n formState = new FormState($form),\r\n formSerializer = new FormSerializer($form),\r\n formValidator = new FormValidator($form),\r\n formTransport = new FormTransport($form);\r\n\r\n const\r\n _getRejectedResult = () => dls.rejectedPromise(),\r\n _triggerOnPost =\r\n ($f, formData) => {\r\n\r\n const e = $.Event('onpost', { $form: $f, formData: formData });\r\n $f.trigger(e, [formData]);\r\n\r\n return e.isDefaultPrevented() === false;\r\n },\r\n _triggerSubmitStart =\r\n ($f, formData, xhr) => {\r\n\r\n const e = $.Event('submit:start', { $form: $f, formData: formData, xhr: xhr });\r\n $f.trigger(e, [formData, xhr]);\r\n },\r\n _triggerSubmitSuccess =\r\n ($f, response) => {\r\n\r\n const e = $.Event('submit:success', { $form: $f });\r\n $f.trigger(e, [response]);\r\n },\r\n _triggerSubmitError =\r\n ($f) => {\r\n\r\n const e = $.Event('submit:error', { $form: $f });\r\n $f.trigger(e);\r\n };\r\n\r\n\r\n this.submit = () => {\r\n\r\n if (formState.isSubmitting()) {\r\n dls.log.debug('DlsForm: submit is already in progress.');\r\n return _getRejectedResult();\r\n }\r\n\r\n formState.submit();\r\n\r\n if (formValidator.isValid() === false) {\r\n formState.reset();\r\n return _getRejectedResult();\r\n }\r\n\r\n let formData = formSerializer.serialize();\r\n\r\n if (_triggerOnPost($form, formData) === false) {\r\n formState.reset();\r\n return _getRejectedResult();\r\n }\r\n\r\n if (formTransport.isSupported() === false) {\r\n formState.reset();\r\n return _getRejectedResult();\r\n }\r\n\r\n let sender = formTransport.send(formData, ajaxOpts);\r\n\r\n _triggerSubmitStart($form, formData, sender);\r\n \r\n formSubmit.setLoading();\r\n formProgress.show();\r\n\r\n return sender\r\n .done([\r\n (responseJSON) => {\r\n formSubmit.resetOnSuccess();\r\n _triggerSubmitSuccess($form, responseJSON);\r\n }\r\n ])\r\n .fail([\r\n () => {\r\n formSubmit.resetOnError();\r\n _triggerSubmitError($form);\r\n }\r\n ])\r\n .always([\r\n () => {\r\n formState.reset();\r\n formSubmit.resetOnComplete();\r\n formProgress.hide();\r\n }\r\n ]);\r\n };\r\n }\r\n\r\n\r\n\r\n $.fn.ajaxSubmit = function (ajaxOptions) {\r\n\r\n let $this = $(this),\r\n dlsForm = $this.data('dls.ajaxForm');\r\n \r\n if (dlsForm == null) {\r\n $this.data('dls.ajaxForm', dlsForm = new DlsForm(this, ajaxOptions));\r\n }\r\n\r\n return dlsForm.submit();\r\n };\r\n\r\n \r\n\r\n $(document).on(\r\n 'submit',\r\n 'form:not([data-ajax=\"false\"])',\r\n function (e) {\r\n\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n\r\n dls.hideAllNoty();\r\n\r\n let $form = $(this);\r\n\r\n $form.ajaxSubmit({\r\n statusCode: {\r\n 400: (xhr) => {\r\n\r\n let response = xhr && xhr.responseJSON,\r\n errorMessage = response && response['Error'],\r\n failures = response && response['Failures'];\r\n\r\n // show validation errors\r\n if (failures) {\r\n\r\n dls.validation.setFormFailures($form, failures);\r\n\r\n } else if (errorMessage) { // otherwise show error message\r\n\r\n dls.showError(errorMessage);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n\r\n\r\n $(document).on(\r\n 'submit:success',\r\n 'form:not([data-success-notify=\"false\"])',\r\n function (e, response) {\r\n\r\n let staticText = $(this).attr('data-success-notify'),\r\n responseText = typeof response === 'string' && response,\r\n text = $('').text(responseText || staticText).html(); // escape html\r\n\r\n if (text) {\r\n dls.showNoty(text);\r\n }\r\n });\r\n\r\n\r\n\r\n $(document).on(\r\n 'submit:success',\r\n 'form[data-success-redirect]',\r\n function (e, response) {\r\n\r\n let $form = $(this),\r\n redirectUrl = $form.attr('data-success-redirect'),\r\n delay = $form.filter('[data-success-notify=\"false\"]').length ? 500 : 1000; // set delay if showing notification\r\n\r\n setTimeout(() => dls.redirect(redirectUrl), delay);\r\n });\r\n\r\n\r\n\r\n $(document).on(\r\n 'reset',\r\n 'form',\r\n function () {\r\n \r\n let $form = $(this),\r\n $submit = _getSubmit($form),\r\n submitBehavior = new SubmitBehavior($submit, SubmitBehavior.RESET_ON_COMPLETE);\r\n \r\n submitBehavior.reset();\r\n });\r\n\r\n\r\n\r\n $(document).on(\r\n 'dirty',\r\n 'form',\r\n function (e, dirty) {\r\n \r\n let $form = $(this),\r\n $submit = _getSubmit($form),\r\n visibilityBehavior = _getSubmitVisibility($form),\r\n submitVisibility = new SubmitVisibility($submit);\r\n \r\n if (_equal(visibilityBehavior, SubmitVisibility.VISIBLE_ON_DIRTY)) {\r\n \r\n submitVisibility.toggleVisibility(dirty);\r\n }\r\n });\r\n\r\n\r\n\r\n $(document).on(\r\n 'resetDirty',\r\n 'form',\r\n function () {\r\n \r\n let $form = $(this),\r\n $submit = _getSubmit($form),\r\n visibilityBehavior = _getSubmitVisibility($form),\r\n submitVisibility = new SubmitVisibility($submit);\r\n\r\n if (_equal(visibilityBehavior, SubmitVisibility.VISIBLE_ON_DIRTY)) {\r\n\r\n submitVisibility.toggleVisibility(false, 0);\r\n }\r\n });\r\n\r\n})(jQuery);\r\n\r\n/*** form dirty ***/\r\n(($) => {\r\n\r\n function applyPlugin(form) {\r\n\r\n var $form = $(form),\r\n data = $form.data('dls.dirty');\r\n\r\n if (!data) {\r\n $form.data('dls.dirty', data = new Plugin(form));\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function Plugin(form) {\r\n\r\n var $form = $(form),\r\n _hashKey = '__form_hash',\r\n _dirty = false,\r\n _getHash = (json) => json.hashCode(),\r\n _getFormJSON = () => $form.serializeJSON(true),\r\n _getFormOriginalHash = () => $form.data(_hashKey),\r\n _getFormCurrentHash = () => _getHash(_getFormJSON()),\r\n _hasFormChanged =\r\n () => {\r\n\r\n var originalHash = _getFormOriginalHash(),\r\n currentHash = _getFormCurrentHash();\r\n\r\n return originalHash !== currentHash;\r\n },\r\n _triggerDirtyChanged =\r\n (oldValue, newValue) => {\r\n\r\n if (oldValue !== newValue) {\r\n $form.trigger('dirty', [newValue]);\r\n }\r\n },\r\n _setDirty =\r\n (value) => {\r\n\r\n var oldValue = _dirty;\r\n\r\n _dirty = value;\r\n\r\n if (false === value) {\r\n $form.data(_hashKey, _getFormCurrentHash());\r\n }\r\n\r\n _triggerDirtyChanged(oldValue, value);\r\n\r\n return _dirty;\r\n },\r\n _onFormChange =\r\n () => {\r\n\r\n var hasChanges = _hasFormChanged(),\r\n dirtyChanged = _dirty !== hasChanges,\r\n oldValue = _dirty;\r\n\r\n if (dirtyChanged) {\r\n var value = _setDirty(!_dirty);\r\n _triggerDirtyChanged(oldValue, value);\r\n }\r\n },\r\n _onSubmitSuccess = () => {\r\n _setDirty(false);\r\n },\r\n _onSubmitError = () => $form.off('submit:success', _onSubmitSuccess),\r\n _onSubmitStart = () => $form.one('submit:success', _onSubmitSuccess),\r\n _init =\r\n () => {\r\n\r\n _setDirty(false);\r\n\r\n $form\r\n .on('change', _onFormChange)\r\n .on('submit:start', _onSubmitStart)\r\n .on('submit:error', _onSubmitError);\r\n };\r\n\r\n\r\n this.isDirty = function () {\r\n\r\n if (arguments.length === 1) {\r\n\r\n _setDirty(!!arguments[0]);\r\n }\r\n\r\n return _dirty;\r\n };\r\n \r\n this.resetDirty = function () {\r\n\r\n _setDirty(false);\r\n $form.trigger('resetDirty');\r\n };\r\n\r\n _init();\r\n }\r\n\r\n $.fn.dirty = function (value) {\r\n\r\n const data = applyPlugin(this);\r\n\r\n if (arguments.length === 1) {\r\n data.isDirty(value);\r\n }\r\n\r\n return data.isDirty();\r\n };\r\n\r\n $.fn.resetDirty = function () {\r\n\r\n const data = applyPlugin(this);\r\n\r\n data.resetDirty();\r\n };\r\n\r\n $.expr[':'].dirty = function (form, index, match) {\r\n\r\n return $(form).dirty();\r\n };\r\n\r\n $(() => {\r\n\r\n $('form').each(function () {\r\n\r\n applyPlugin(this);\r\n });\r\n });\r\n\r\n})(jQuery);","((dls) => {\r\n\r\n const _defaultOptions = {\r\n width: 240,\r\n height: 240,\r\n format: 'image/jpeg',\r\n quality: 0.95,\r\n };\r\n\r\n function DlsThumbnails() {\r\n }\r\n\r\n\r\n Object.defineProperties(DlsThumbnails, {\r\n\r\n 'extend': {\r\n value: dls.extend.bind(DlsThumbnails)\r\n },\r\n\r\n 'forImageFile': {\r\n value: (file, opts, callback) => {\r\n\r\n if (file == null) {\r\n return undefined;\r\n }\r\n\r\n let options = $.extend({}, _defaultOptions, opts);\r\n\r\n var reader = new FileReader();\r\n reader.onload = function (event) {\r\n var img = document.createElement('img'),\r\n imgDataUrl = reader.result,\r\n buildThumbnail = function () {\r\n\r\n var imgWidth = img.width,\r\n imgHeight = img.height,\r\n lowest = Math.min(imgWidth, imgHeight);\r\n\r\n var canvas = document.createElement('canvas');\r\n canvas.width = options.width;\r\n canvas.height = options.height;\r\n canvas.getContext('2d').drawImage(img, (imgWidth - lowest) / 2, (imgHeight - lowest) / 2, lowest, lowest, 0, 0, canvas.width, canvas.height);\r\n\r\n var thumbailImage = canvas.toDataURL(options.format, options.quality);\r\n\r\n callback && callback(thumbailImage);\r\n },\r\n imageLoaded = function() {\r\n buildThumbnail();\r\n img.removeEventListener('load', imageLoaded);\r\n };\r\n\r\n img.addEventListener('load', imageLoaded);\r\n img.src = imgDataUrl;\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n }\r\n },\r\n\r\n 'forVideoFile': {\r\n value: (file, opts, callback) => {\r\n\r\n if (file == null) {\r\n return undefined;\r\n }\r\n\r\n let options = $.extend({}, _defaultOptions, opts);\r\n\r\n var reader = new FileReader();\r\n reader.onload = function (event) {\r\n\r\n var video = document.createElement('video'),\r\n videoDataUrl = reader.result,\r\n buildThumbnail = function () {\r\n\r\n var videoWidth = video.videoWidth,\r\n videoHeight = video.videoHeight,\r\n lowest = Math.min(videoWidth, videoHeight);\r\n\r\n var canvas = document.createElement('canvas');\r\n canvas.width = options.width;\r\n canvas.height = options.height;\r\n canvas.getContext('2d').drawImage(video, (videoWidth - lowest) / 2, (videoHeight - lowest) / 2, lowest, lowest, 0, 0, canvas.width, canvas.height);\r\n var thumbailImage = canvas.toDataURL(options.format, options.quality);\r\n var success = thumbailImage.length > 20000;\r\n if (success) {\r\n callback && callback(thumbailImage);\r\n }\r\n\r\n return success;\r\n };\r\n\r\n var timeupdate = function () {\r\n if (buildThumbnail()) {\r\n video.removeEventListener('timeupdate', timeupdate);\r\n video.pause();\r\n }\r\n };\r\n\r\n video.addEventListener('loadeddata', function () {\r\n if (buildThumbnail()) {\r\n video.removeEventListener('timeupdate', timeupdate);\r\n }\r\n });\r\n\r\n video.addEventListener('timeupdate', timeupdate);\r\n video.preload = 'metadata';\r\n video.src = videoDataUrl;\r\n video.muted = true;\r\n video.playsInline = true;\r\n video.play();\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n\r\n });\r\n\r\n\r\n\r\n dls.extend({\r\n thumbnails: DlsThumbnails\r\n });\r\n\r\n})(window.dls);","(function (dls, $) {\r\n\r\n const _extend = $.extend;\r\n\r\n function HiddenForm($form) {\r\n\r\n const\r\n _isArray = $.isArray,\r\n _isObject = function (x) {\r\n\r\n return typeof x === 'object' && x !== null && !_isArray(x);\r\n },\r\n _setFormURL = function(url) {\r\n\r\n $form.attr('action', url || '');\r\n },\r\n _removeFormInputs = function() {\r\n\r\n $form.find('input[type=hidden]').remove();\r\n },\r\n _setFormInputs = function(params) {\r\n\r\n _removeFormInputs();\r\n $form.append(_toHiddenInputsArray(params));\r\n },\r\n _toHiddenInput = function(name, value) {\r\n\r\n const attributes = {\r\n type: 'hidden',\r\n name,\r\n value,\r\n };\r\n\r\n return $('', attributes);\r\n },\r\n _toHiddenInputsArray = function(data, formatName) {\r\n\r\n let _defaultFormatName = function(x) {\r\n return x;\r\n },\r\n $inputs = [];\r\n\r\n formatName = formatName || _defaultFormatName;\r\n\r\n for (const name of Object.keys(data)) {\r\n\r\n const value = data[name];\r\n\r\n if (_isArray(value)) {\r\n\r\n const inputList = value.map(function(x) {\r\n return _toHiddenInput(formatName(name), x);\r\n });\r\n $inputs = $inputs.concat(inputList);\r\n\r\n } else if (value !== null && _isObject(value)) {\r\n\r\n $inputs = $inputs.concat(\r\n _toHiddenInputsArray(value, x => `${name}.${x}`)\r\n );\r\n\r\n } else {\r\n\r\n $inputs.push(_toHiddenInput(formatName(name), value));\r\n }\r\n }\r\n\r\n return $inputs;\r\n };\r\n\r\n this.setUrl = _setFormURL;\r\n this.setData = _setFormInputs;\r\n }\r\n\r\n _extend(HiddenForm, {\r\n\r\n create: function (form, url) {\r\n\r\n const result = new HiddenForm(form);\r\n result.setUrl(url);\r\n return result;\r\n }\r\n\r\n });\r\n\r\n dls.extend({\r\n HiddenForm: HiddenForm\r\n });\r\n\r\n})(window['dls'], jQuery);","(function (dls, $) {\r\n\r\n const _extend = $.extend;\r\n\r\n function SearchCriteria(queryStringPrefix) {\r\n\r\n const\r\n _extractQueryStringFilters = function () {\r\n\r\n const\r\n _arrayKeyRegex = new RegExp('^([^\\\\[]+)\\\\[\\\\d+\\\\]$'),\r\n urlSearchParams = new URLSearchParams(window.location.search),\r\n params = Object.fromEntries(urlSearchParams.entries()),\r\n targetKeys = Object.keys(params).where(x => x.startsWith(queryStringPrefix));\r\n\r\n if (targetKeys.length == 0) {\r\n return null;\r\n }\r\n\r\n let result = {};\r\n\r\n targetKeys.each(function (key) {\r\n\r\n const\r\n name = key.replace(queryStringPrefix, ''),\r\n value = isNaN(params[key]) ? params[key] : +params[key];\r\n\r\n const arrayCheck = _arrayKeyRegex.exec(name);\r\n if (arrayCheck) {\r\n\r\n const arrayName = arrayCheck[1]; // take first group of regex\r\n\r\n if (result[arrayName]) {\r\n\r\n result[arrayName].push(value);\r\n } else {\r\n\r\n result[arrayName] = [value];\r\n }\r\n\r\n } else {\r\n result[name] = value;\r\n }\r\n });\r\n\r\n return result;\r\n };\r\n\r\n this.fromQueryString = _extractQueryStringFilters;\r\n }\r\n\r\n _extend(SearchCriteria, {\r\n\r\n create: function (queryStringPrefix) {\r\n\r\n return new SearchCriteria(queryStringPrefix);;\r\n }\r\n\r\n });\r\n\r\n dls.extend({\r\n SearchCriteria: SearchCriteria\r\n });\r\n\r\n})(window['dls'], jQuery);"],"names":["dls","$","extend","window","_init","_getIconName","fileExtension","fileMimeType","startsWith","_makeUrlAbsolute","url","protocol","result","indexOf","format","_deepEqual","object1","object2","keys1","Object","keys","keys2","length","let","i","key","val1","val2","areObjects","_isObject","object","init","originalVal","storedOffset","currentOffset","fn","val","arguments","prev","apply","this","change","valOriginal","each","$img","res","data","devicePixelRatio","attr","cookie","Date","getTimezoneOffset","path","expires","fadeIn","noty","defaults","theme","isFunction","validate","forEach","defineProperty","value","enumerable","isFn","isNum","isNumeric","isNumber","toNumber","number","parseFloat","isNaN","toGeoCoordinate","Decimal","toDecimalPlaces","trim","trimTime","dateTime","split","formatDateOnly","date","moment","utc","deepEqual","resolvedPromise","args","Deferred","resolve","promise","rejectedPromise","reject","crossTabEvent","publish","localStorage","setItem","removeItem","bind","callback","addEventListener","e","newValue","redirect","location","openWindow","open","params","_toKeyValuePair","Array","pname","pvalue","isPlainObject","p","push","join","encodeURIComponent","toLocaleDateString","locale","downloadFile","onload","getIconUrl","fileType","mimeType","iconName","iconsUrl","getFileSvgIconUrl","getIconUrls","asString","attrSrc","attrSrcSet","src","srcset","showError","errors","timeToShow","output","concat","escapeHtml","map","error","showNoty","timeout","layout","type","killer","animation","close","console","text","options","opts","hideAllNoty","closeAll","social","twitter","linkedin","facebook","loadJs","jsToLoad","nomalizeLoadOptions","_onload","defaultLoadOptions","then","addScript","jsLoadOpts","callAsync","el","document","createElement","id","async","body","getElementsByTagName","appendChild","toLoad","isArray","appendStyles","cssString","head","style","styleSheet","cssText","createTextNode","makeUrlAbsolute","on","jqe","originalEvent","message","row","lineno","col","colno","debug","color","gray","darkGray","purple","green","yellow","orange","darkOrange","red","blue","getClosingDateColor","now","startOf","daysDiff","diff","deals","getStatusColor","probability","getLabelStatus","statusName","$label","css","getLabelDealType","repTypeName","dealTypeName","toUpperCase","getLabelDealTypeHtml","labelText","getLastModifiedLabel","lastModifiedDate","lastModifier","toFriendlyDateTimeString","getLabelDealImportedHtml","imported","applyColumnUserSettings","columnSettingsBase","columnName","gridSettings","columnSettings","columns","name","title","attributes","data-column","hidden","visible","getCountyForName","stateId","onReady","get","route","Query","StateId","Limit","_logger","_log","log","_warn","warn","DlsLogger","defineProperties","obsolete","oldUsage","newUsage","msg","_events","SIGNED_IN","_cookieKeys","SignedInCookie","_getCookie","_removeCookie","removeCookie","_publishCrossTabEvent","_bindToCrossTabEvent","DlsAuth","events","triggerSignedIn","triggerSignedOut","onSignIn","onSignOut","auth","MAX_TIMEOUT_MS","_confirmationTimer","_logoutTimer","_keys","EXTENDED","_parseDate","_getConfirmationDurationMs","extendUserSessionConfirmationDurationMs","_getExpirationMs","expirationDate","_supportsSessionExtension","_logout","postJSON","always","href","substring","origin","_getSessionExpiration","getJSON","_onExpirationDateChange","expirationDateUtc","_hideConfirmation","_scheduleConfirmation","_scheduleLogout","_cancelScheduledConfirmation","_cancelScheduledLogout","_extendSession","toISOString","expirationMs","setTimeout","clearTimeout","_showConfirmation","modal","confirmUserSessionExtension","hide","delay","DlsEnums","enums","DlsLookups","getName","lookupName","lookup","found","find","x","Name","lookups","String","prototype","array","replace","match","template","RegExp","capitalize","html","escapeRegEx","escapeQuotes","escapeSlash","replaceAll","search","replacement","hashCode","hash","charCodeAt","unique","u","a","l","hasOwnProperty","count","undefined","filter","max","propertyNameOrFn","Math","select","min","avg","sum","div","sumMoney","round","sumDecimals","plus","item","selectMany","notEmpty","where","one","first","last","contains","writable","except","exclude","includes","anyOf","values","slice","call","self","any","all","until","index","skip","take","removeWhere","splice","groupBy","propertyName","reduce","rv","toArray","withGroupKeys","groupKey","sortBy","dynamicSort","property","exec","isDesc","substr","obj1","obj2","p1","p2","sort","props","numberOfProperties","difference","hasDifference","getDaysInMonth","getFullYear","getMonth","getDate","getPercent","total","precision","num","pow","toFixed","Number","countDecimals","str","floor","valueOf","toString","toISODateString","HTML5_FMT","DATE","isUtc","diffDays","isToday","isYesterday","localSelf","local","time","numeral","origHookGet","origHookSet","fallbackValue","defaultValue","formatNumber","currency","maskTextMoney","currencyFormat","appendPercentSymbol","maskTextPercent","maskTextRatio","multiple","digits","precisionPercent","numbersOnly","keydown","event","target","keyCode","ctrlKey","metaKey","preventDefault","shiftKey","markAsFormattedNumber","elem","formattedNumber","$input","skipFormatting","v","$self","jQuery","valHooks","set","element","unformatNumber","$elem","scrollDown","pos","animationTime","onAnimationComplete","height","stop","animate","scrollTop","scrollToElement","oncomplete","elemOffset","is","parents","offset","fixedHeaderHeight","top","imgError","imgElement","fallbackImageUrl","onerror","areObjectEquals","extractSignificantProps","obj","rootPath","currentPath","JSON","stringify","ID","random","isEmailValid","test","isUsaZipValid","isCanadaZipValid","percentOf","amount","times","percent","amountFrom","getRatio","value1","value2","ajaxOptions","_options","dataType","contentType","success","ajax","_handleRedirect","response","textStatus","jxhr","redirectUrl","ajaxSetup","statusCode","400","textError","responseJSON","errorMessage","failures","validation","showErrorsBanner","401","reload","403","notify","404","500","ajaxPrefilter","requestOptions","globalOptions","done","_notificationShown","ajaxOptionsOriginal","version","setRequestHeader","406","jqXHR","errorThrown","confirm","buttonYesText","buttonNoText","_runningRequests","_addRequest","_getRequest","_cancelRequest","xhr","state","abort","cancelRequest","ajaxSend","ajaxComplete","which","trigger","asTemplate","formDisable","disable","prop","_template","_selector","_findLoader","_toggleLoadingMask","toggle","$loader","append","remove","_toggleButtonLoader","$btn","addClass","removeClass","toggleLoadingMask","toggleBtnProgress","toggleSelectPickerProgress","$this","parent","_getKey","prefix","fillWithData","fill","$container","d","datepicker","toDate","selectpicker","removeAttr","size","method","displayData","groupName","checked","$group","not","noUiSlider","defaultOptions","connect","step","range","pips","mode","density","slider","sliderOptions","create","onchange","valuesText","handle","handleValueHtml","applyFontAutoSize","fontautosize","$e","minFontPixels","widthOnly","maxFontPixels","parseInt","textfill","textAutosize","$text","asHtml","toHtml","getUtcDateISO8601","getISODate","_stack","INIT","SHOW","SHOWING","SHOWN","HIDE","HIDING","HIDDEN","RESOLVE","REJECT","_confirmationTemplate","_notificationTemplate","_stackPop","pop","_hideAllNoty","_showModal","$modal","speed","_hideModal","fadeOut","$priorModal","_loadModal","_getDlsModal","modalSelector","selector","DlsModal","setOptions","actions","$actions","actionName","empty","actionOptions","$action","_createModalAction","_normalizeOptions","content","_createButton","_knownActions","cancel","class","onclick","_triggerModalEvent","argsArray","_dfd","_prepareOptions","refreshResolver","resolveWith","rejectWith","Event","show","load","noop","modals","onYes","onNo","onCancel","deferred","appendTo","cancelClick","cancelOnEsc","click","off","onClose","buttonOKText","closeModal","closeOnEsc","onDataLoaded","closest","rejectEvent","ajaxSubmit","$form","formData","submit","_","dataset","clicked","showModal","loadModal","hideModal","_confirm","_extend","_isNan","_sub","b","sub","_div","_getValueOrZero","RatioCollection","ratios","Ratio","isOne","_total","getPossibleError","items","scale","abs","ratioScale","hasValue","isNull","itemsCount","mul","share","ratio","shares","balance","getValueOrZero","add","from100","toRatios","numbers","totalBalance","totalRatioBalance","zero","getRatioFrom","baseValue","_isNumber","_mul","_normalizeRatios","rateKind","_getMoneyByRatio","money","Money","_allocate","allocatable","totalRatio","possibleError","allocatableBalance","ratioBalance","allocation","getAmount","isZero","other","allocate","DEFAULTS","allocations","crossAllocate","allocatablesArray","toAllocateArray","allocatables","toAllocate","totalLength","_allocatables","_toAllocate","rows","cols","rowBalance","runningTotalBalance","colBalance","allocatedPortion","moneys","Address","addressLine1","addressLine2","city","zip","toInlineString","PhoneNumber","ext","formatPhoneNumber","toFormatted","Calc","getFeePercentage","baseAmount","feeAmount","roundPercent","getFeeAmount","feeType","fee","feePerSf","sf","leaseTerm","RepFeeType","calc","del","orig","json","parse","clear","k","formatArgs","opera","postError","queryString","query_string","vars","arr","pair","decodeURIComponent","wScrollTop","pageHeaderHeightResize","pageHeaderH","$pageHeader","ww","width","outerHeight","next","margin-top","$mainSidebar","nextAll","eq","headerParent","ResizeObserver","entries","requestAnimationFrame","observe","$main","_sectionSelector","_getAllSections","_activateSection","$section","_expandSection","slideDown","_triggerSectionExpand","_collapseSection","slideUp","currentTarget","hasClass","expandSection","collapseSection","_getElementForPopover","$element","$button","_unhighlightElem","errorClass","validClass","_hideErrors","$elements","settings","popover","removeData","_resetFormValidator","validator","invalidElements","resetForm","setDefaults","ignore","ignoreTitle","focusInvalid","onfocusin","lastActive","focusCleanup","unhighlight","hideThese","errorsFor","checkable","submitted","optional","showErrors","errorMap","errorList","validElements","highlight","$visibleElement","placement","container","tip","children","detach","end","invalidHandler","valid","elements","_getFormValidator","_showErrorsBanner","_getFieldTitle","$field","_getFieldSectionName","$fieldsetParent","parentsUntil","$nearestToSectionNameSibling","prevUntil","_getVisibleElement","$formGroup","_setFocusOnField","focus","_gotoField","_showFirstErrorField","$firstErrorElem","_showFormErrors","globalErrors","formErrors","fieldName","sectionName","currentForm","showFirstErrorField","showFormErrors","setFormFailures","fieldsErrors","field","addMethod","methods","required","equalToValue","expectedLimit","Boolean","rate","isUsa","toLowerCase","isCanada","totalMoneyActual","roundMoney","formatMoney","param","valueDate","minDate","isSameOrAfter","root","factory","define","amd","exports","require","Zepto","ender","patterns","fixed","named","FormSerializer","helper","pushes","build","base","makeObject","serialize","addPair","addPairs","pairs","Error","len","serializeJSON","serializeArrayIncludeDisabled","makeArray","nodeName","getValue","getSerializedData","includeDisabled","serializeArray","serializeObject","_equal","_getData","_getSubmit","$submit","$submitCustom","_getSubmitVisibility","SubmitVisibility","VISIBLE_ALWAYS","SubmitBehavior","resetBehavior","_$submit","_currentResetBehavior","setState","progress","button","setLoading","reset","resetWhen","expectedBehaviour","resetOnSuccess","RESET_ON_SUCCESS","resetOnError","RESET_ON_ERROR","resetOnComplete","RESET_ON_COMPLETE","_toggleVisibility","toggleVisibility","FormProgress","_$elem","_mode","_enabled","_toggleProgress","FormState","_key","_$form","isSubmitting","DlsFormData","serializeEvent","FormValidator","isValid","FormTransport","_getUrl","_getXHR","FormData","processData","isSupported","send","DlsForm","form","ajaxOpts","formSubmit","formProgress","formState","formSerializer","formValidator","formTransport","_getRejectedResult","sender","$f","isDefaultPrevented","fail","VISIBLE_ON_DIRTY","dlsForm","stopImmediatePropagation","staticText","responseText","dirty","visibilityBehavior","submitVisibility","applyPlugin","Plugin","_hashKey","_dirty","_getHash","_getFormJSON","_getFormOriginalHash","_getFormCurrentHash","_hasFormChanged","_triggerDirtyChanged","oldValue","_setDirty","_onFormChange","hasChanges","_onSubmitSuccess","_onSubmitError","_onSubmitStart","isDirty","resetDirty","expr","_defaultOptions","quality","DlsThumbnails","forImageFile","file","reader","FileReader","imageLoaded","imgWidth","imgHeight","lowest","canvas","img","getContext","drawImage","thumbailImage","toDataURL","removeEventListener","imgDataUrl","readAsDataURL","forVideoFile","buildThumbnail","videoWidth","video","videoHeight","timeupdate","pause","videoDataUrl","preload","muted","playsInline","play","thumbnails","HiddenForm","_isArray","_toHiddenInput","_toHiddenInputsArray","formatName","$inputs","inputList","setUrl","setData","SearchCriteria","queryStringPrefix","fromQueryString","_arrayKeyRegex","urlSearchParams","URLSearchParams","fromEntries","targetKeys","arrayCheck","arrayName"],"mappings":"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"}