File: /home/tv1channel/www/tv1.bg/tv1olddatabase/js/ew.js.map
{"version":3,"file":"ew.js","sources":["../../node_modules/regenerator-runtime/runtime.js","../../node_modules/@babel/runtime/regenerator/index.js","../../build/js/FormData.js","../../build/js/multipage.js","../../build/js/Validators.js","../../node_modules/@babel/runtime/helpers/createClass.js","../../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../node_modules/@babel/runtime/helpers/inheritsLoose.js","../../node_modules/@babel/runtime/helpers/defineProperty.js","../../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../../build/js/FormBase.js","../../build/js/Field.js","../../build/js/Form.js","../../build/js/AjaxLookup.js","../../build/js/SelectionListOption.js","../../build/js/AutoSuggest.js","../../build/js/Forms.js","../../build/js/Select2CustomOption.js","../../build/js/functions.js","../../build/js/main.js","../../build/js/jquery.js","../../build/js/fields.js","../../build/js/adminlte.js"],"sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","module.exports = require(\"regenerator-runtime\");\n","/* global FormData self Blob File */\r\n/* eslint-disable no-inner-declarations */\r\n\r\nif (typeof Blob !== 'undefined' && (typeof FormData === 'undefined' || !FormData.prototype.keys)) {\r\n const global = typeof window === 'object'\r\n ? window\r\n : typeof self === 'object' ? self : this\r\n\r\n // keep a reference to native implementation\r\n const _FormData = global.FormData\r\n\r\n // To be monkey patched\r\n const _send = global.XMLHttpRequest && global.XMLHttpRequest.prototype.send\r\n const _fetch = global.Request && global.fetch\r\n const _sendBeacon = global.navigator && global.navigator.sendBeacon\r\n\r\n // Unable to patch Request constructor correctly\r\n // const _Request = global.Request\r\n // only way is to use ES6 class extend\r\n // https://github.com/babel/babel/issues/1966\r\n\r\n const stringTag = global.Symbol && Symbol.toStringTag\r\n\r\n // Add missing stringTags to blob and files\r\n if (stringTag) {\r\n if (!Blob.prototype[stringTag]) {\r\n Blob.prototype[stringTag] = 'Blob'\r\n }\r\n\r\n if ('File' in global && !File.prototype[stringTag]) {\r\n File.prototype[stringTag] = 'File'\r\n }\r\n }\r\n\r\n // Fix so you can construct your own File\r\n try {\r\n new File([], '') // eslint-disable-line\r\n } catch (a) {\r\n global.File = function File (b, d, c) {\r\n const blob = new Blob(b, c)\r\n const t = c && void 0 !== c.lastModified ? new Date(c.lastModified) : new Date()\r\n\r\n Object.defineProperties(blob, {\r\n name: {\r\n value: d\r\n },\r\n lastModifiedDate: {\r\n value: t\r\n },\r\n lastModified: {\r\n value: +t\r\n },\r\n toString: {\r\n value () {\r\n return '[object File]'\r\n }\r\n }\r\n })\r\n\r\n if (stringTag) {\r\n Object.defineProperty(blob, stringTag, {\r\n value: 'File'\r\n })\r\n }\r\n\r\n return blob\r\n }\r\n }\r\n\r\n function normalizeValue ([value, filename]) {\r\n if (value instanceof Blob) {\r\n // Should always returns a new File instance\r\n // console.assert(fd.get(x) !== fd.get(x))\r\n value = new File([value], filename, {\r\n type: value.type,\r\n lastModified: value.lastModified\r\n })\r\n }\r\n\r\n return value\r\n }\r\n\r\n function ensureArgs (args, expected) {\r\n if (args.length < expected) {\r\n throw new TypeError(`${expected} argument required, but only ${args.length} present.`)\r\n }\r\n }\r\n\r\n function normalizeArgs (name, value, filename) {\r\n return value instanceof Blob\r\n // normalize name and filename if adding an attachment\r\n ? [String(name), value, filename !== undefined\r\n ? filename + '' // Cast filename to string if 3th arg isn't undefined\r\n : typeof value.name === 'string' // if name prop exist\r\n ? value.name // Use File.name\r\n : 'blob'] // otherwise fallback to Blob\r\n\r\n // If no attachment, just cast the args to strings\r\n : [String(name), String(value)]\r\n }\r\n\r\n // normalize linefeeds for textareas\r\n // https://html.spec.whatwg.org/multipage/form-elements.html#textarea-line-break-normalisation-transformation\r\n function normalizeLinefeeds (value) {\r\n return value.replace(/\\r\\n/g, '\\n').replace(/\\n/g, '\\r\\n')\r\n }\r\n\r\n function each (arr, cb) {\r\n for (let i = 0; i < arr.length; i++) {\r\n cb(arr[i])\r\n }\r\n }\r\n\r\n /**\r\n * @implements {Iterable}\r\n */\r\n class FormDataPolyfill {\r\n /**\r\n * FormData class\r\n *\r\n * @param {HTMLElement=} form\r\n */\r\n constructor (form) {\r\n this._data = Object.create(null)\r\n\r\n if (!form) return this\r\n\r\n const self = this\r\n\r\n each(form.elements, elm => {\r\n if (!elm.name || elm.disabled || elm.type === 'submit' || elm.type === 'button') return\r\n\r\n if (elm.type === 'file') {\r\n const files = elm.files && elm.files.length\r\n ? elm.files\r\n : [new File([], '', { type: 'application/octet-stream' })] // #78\r\n\r\n each(files, file => {\r\n self.append(elm.name, file)\r\n })\r\n } else if (elm.type === 'select-multiple' || elm.type === 'select-one') {\r\n each(elm.options, opt => {\r\n !opt.disabled && opt.selected && self.append(elm.name, opt.value)\r\n })\r\n } else if (elm.type === 'checkbox' || elm.type === 'radio') {\r\n if (elm.checked) self.append(elm.name, elm.value)\r\n } else {\r\n const value = elm.type === 'textarea' ? normalizeLinefeeds(elm.value) : elm.value\r\n self.append(elm.name, value)\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Append a field\r\n *\r\n * @param {string} name field name\r\n * @param {string|Blob|File} value string / blob / file\r\n * @param {string=} filename filename to use with blob\r\n * @return {undefined}\r\n */\r\n append (name, value, filename) {\r\n ensureArgs(arguments, 2)\r\n ;[name, value, filename] = normalizeArgs.apply(null, arguments)\r\n const map = this._data\r\n\r\n if (!map[name]) map[name] = []\r\n\r\n map[name].push([value, filename])\r\n }\r\n\r\n /**\r\n * Delete all fields values given name\r\n *\r\n * @param {string} name Field name\r\n * @return {undefined}\r\n */\r\n delete (name) {\r\n ensureArgs(arguments, 1)\r\n delete this._data[String(name)]\r\n }\r\n\r\n /**\r\n * Iterate over all fields as [name, value]\r\n *\r\n * @return {Iterator}\r\n */\r\n * entries () {\r\n const map = this._data\r\n\r\n for (const name in map) {\r\n for (const value of map[name]) {\r\n yield [name, normalizeValue(value)]\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Iterate over all fields\r\n *\r\n * @param {Function} callback Executed for each item with parameters (value, name, thisArg)\r\n * @param {Object=} thisArg `this` context for callback function\r\n * @return {undefined}\r\n */\r\n forEach (callback, thisArg) {\r\n ensureArgs(arguments, 1)\r\n for (const [name, value] of this) {\r\n callback.call(thisArg, value, name, this)\r\n }\r\n }\r\n\r\n /**\r\n * Return first field value given name\r\n * or null if non existen\r\n *\r\n * @param {string} name Field name\r\n * @return {string|File|null} value Fields value\r\n */\r\n get (name) {\r\n ensureArgs(arguments, 1)\r\n const map = this._data\r\n name = String(name)\r\n return map[name] ? normalizeValue(map[name][0]) : null\r\n }\r\n\r\n /**\r\n * Return all fields values given name\r\n *\r\n * @param {string} name Fields name\r\n * @return {Array} [{String|File}]\r\n */\r\n getAll (name) {\r\n ensureArgs(arguments, 1)\r\n return (this._data[String(name)] || []).map(normalizeValue)\r\n }\r\n\r\n /**\r\n * Check for field name existence\r\n *\r\n * @param {string} name Field name\r\n * @return {boolean}\r\n */\r\n has (name) {\r\n ensureArgs(arguments, 1)\r\n return String(name) in this._data\r\n }\r\n\r\n /**\r\n * Iterate over all fields name\r\n *\r\n * @return {Iterator}\r\n */\r\n * keys () {\r\n for (const [name] of this) {\r\n yield name\r\n }\r\n }\r\n\r\n /**\r\n * Overwrite all values given name\r\n *\r\n * @param {string} name Filed name\r\n * @param {string} value Field value\r\n * @param {string=} filename Filename (optional)\r\n * @return {undefined}\r\n */\r\n set (name, value, filename) {\r\n ensureArgs(arguments, 2)\r\n const args = normalizeArgs.apply(null, arguments)\r\n this._data[args[0]] = [[args[1], args[2]]]\r\n }\r\n\r\n /**\r\n * Iterate over all fields\r\n *\r\n * @return {Iterator}\r\n */\r\n * values () {\r\n for (const [, value] of this) {\r\n yield value\r\n }\r\n }\r\n\r\n /**\r\n * Return a native (perhaps degraded) FormData with only a `append` method\r\n * Can throw if it's not supported\r\n *\r\n * @return {FormData}\r\n */\r\n ['_asNative'] () {\r\n const fd = new _FormData()\r\n\r\n for (const [name, value] of this) {\r\n fd.append(name, value)\r\n }\r\n\r\n return fd\r\n }\r\n\r\n /**\r\n * [_blob description]\r\n *\r\n * @return {Blob} [description]\r\n */\r\n ['_blob'] () {\r\n const boundary = '----formdata-polyfill-' + Math.random()\r\n const chunks = []\r\n\r\n for (const [name, value] of this) {\r\n chunks.push(`--${boundary}\\r\\n`)\r\n\r\n if (value instanceof Blob) {\r\n chunks.push(\r\n `Content-Disposition: form-data; name=\"${name}\"; filename=\"${value.name}\"\\r\\n`,\r\n `Content-Type: ${value.type || 'application/octet-stream'}\\r\\n\\r\\n`,\r\n value,\r\n '\\r\\n'\r\n )\r\n } else {\r\n chunks.push(\r\n `Content-Disposition: form-data; name=\"${name}\"\\r\\n\\r\\n${value}\\r\\n`\r\n )\r\n }\r\n }\r\n\r\n chunks.push(`--${boundary}--`)\r\n\r\n return new Blob(chunks, {\r\n type: 'multipart/form-data; boundary=' + boundary\r\n })\r\n }\r\n\r\n /**\r\n * The class itself is iterable\r\n * alias for formdata.entries()\r\n *\r\n * @return {Iterator}\r\n */\r\n [Symbol.iterator] () {\r\n return this.entries()\r\n }\r\n\r\n /**\r\n * Create the default string description.\r\n *\r\n * @return {string} [object FormData]\r\n */\r\n toString () {\r\n return '[object FormData]'\r\n }\r\n }\r\n\r\n if (stringTag) {\r\n /**\r\n * Create the default string description.\r\n * It is accessed internally by the Object.prototype.toString().\r\n */\r\n FormDataPolyfill.prototype[stringTag] = 'FormData'\r\n }\r\n\r\n // Patch xhr's send method to call _blob transparently\r\n if (_send) {\r\n const setRequestHeader = global.XMLHttpRequest.prototype.setRequestHeader\r\n\r\n /**\r\n * @param {string} name\r\n * @param {string} value\r\n * @returns {undefined}\r\n * @see https://xhr.spec.whatwg.org/#dom-xmlhttprequest-setrequestheader\r\n */\r\n global.XMLHttpRequest.prototype.setRequestHeader = function (name, value) {\r\n setRequestHeader.call(this, name, value)\r\n if (name.toLowerCase() === 'content-type') this._hasContentType = true\r\n }\r\n\r\n /**\r\n * @param {ArrayBuffer|ArrayBufferView|Blob|Document|FormData|string=} data\r\n * @return {undefined}\r\n * @see https://xhr.spec.whatwg.org/#the-send()-method\r\n */\r\n global.XMLHttpRequest.prototype.send = function (data) {\r\n // need to patch send b/c old IE don't send blob's type (#44)\r\n if (data instanceof FormDataPolyfill) {\r\n const blob = data['_blob']()\r\n if (!this._hasContentType) this.setRequestHeader('Content-Type', blob.type)\r\n _send.call(this, blob)\r\n } else {\r\n _send.call(this, data)\r\n }\r\n }\r\n }\r\n\r\n // Patch fetch's function to call _blob transparently\r\n if (_fetch) {\r\n const _fetch = global.fetch\r\n\r\n global.fetch = function (input, init) {\r\n if (init && init.body && init.body instanceof FormDataPolyfill) {\r\n init.body = init.body['_blob']()\r\n }\r\n\r\n return _fetch.call(this, input, init)\r\n }\r\n }\r\n\r\n // Patch navigator.sendBeacon to use native FormData\r\n if (_sendBeacon) {\r\n global.navigator.sendBeacon = function (url, data) {\r\n if (data instanceof FormDataPolyfill) {\r\n data = data['_asNative']()\r\n }\r\n return _sendBeacon.call(this, url, data)\r\n }\r\n }\r\n\r\n global['FormData'] = FormDataPolyfill\r\n}\r\n","import $ from \"jquery\";\r\n\r\nexport default function MultiPage(formid) {\r\n\tvar self = this;\r\n\tthis.$form = null;\r\n\tthis.formID = formid;\r\n\tthis.pageIndex = 1;\r\n\tthis.maxPageIndex = 0;\r\n\tthis.minPageIndex = 0;\r\n\tthis.pageIndexes = [];\r\n\tthis.$pages = null;\r\n\tthis.$collapses = null;\r\n\tthis.isTab = false; // Is tabs\r\n\tthis.isCollapse = false; // Is collapses (accordion)\r\n\tthis.lastPageSubmit = false; // Enable submit button for the last page only\r\n\tthis.hideDisabledButton = false; // Hide disabled submit button\r\n\tthis.hideInactivePages = false; // Hide inactive pages\r\n\tthis.lockTabs = false; // Set inactive tabs as disabled\r\n\tthis.hideTabs = false; // Hide all tabs\r\n\tthis.showPagerTop = false; // Show pager at top\r\n\tthis.showPagerBottom = false; // Show pager at bottom\r\n\tthis.pagerTemplate = '<nav><ul class=\"pagination\"><li class=\"page-item previous ew-prev\"><a href=\"#\" class=\"page-link\"><span class=\"icon-prev\"></span> {Prev}</a></li><li class=\"page-item next ew-next\"><a href=\"#\" class=\"page-link\">{Next} <span class=\"icon-next\"></span></a></li></ul></nav>'; // Pager template\r\n\r\n\t// \"show\" handler (for disabled tabs)\r\n\tvar _show = function(e) {\r\n\t\te.preventDefault();\r\n\t};\r\n\r\n\t// Set properties\r\n\tvar _properties = [\"lastPageSubmit\", \"hideDisabledButton\", \"hideInactivePages\", \"lockTabs\",\r\n\t\t\"hideTabs\", \"showPagerTop\", \"showPagerBottom\", \"pagerTemplate\"];\r\n\r\n\tthis.set = function() {\r\n\t\tif (arguments.length == 1 && $.isObject(arguments[0])) {\r\n\t\t\tvar obj = arguments[0];\r\n\t\t\tfor (var i in obj) {\r\n\t\t\t\tvar p = i[0].toLowerCase() + i.substr(1); // Camel case\r\n\t\t\t\tif (_properties.includes(p))\r\n\t\t\t\t\tthis[p] = obj[i];\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// DOM loaded\r\n\tthis.init = function() {\r\n\t\tvar tpl = this.pagerTemplate.replace(/\\{prev\\}/i, ew.language.phrase(\"Prev\")).replace(/\\{next\\}/i, ew.language.phrase(\"Next\"));\r\n\t\tif (this.isTab) {\r\n\t\t\tif (this.showPagerTop)\r\n\t\t\t\tthis.$pages.closest(\".tabbable, .ew-nav-tabs\").before(tpl);\r\n\t\t\tif (this.showPagerBottom)\r\n\t\t\t\tthis.$pages.closest(\".tabbable, .ew-nav-tabs\").after(tpl);\r\n\t\t\tthis.$form.find(\".ew-prev\").click(function(e) {\r\n\t\t\t\tself.$pages.off(\"show.bs.tab\", _show).filter(\".active\").parent()\r\n\t\t\t\t\t.prev(\":has([data-toggle=tab]:not(.ew-hidden):not(.ew-disabled))\")\r\n\t\t\t\t\t.find(\"[data-toggle=tab]\").toggleClass(\"disabled d-none\", false).click();\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t\tthis.$form.find(\".ew-next\").click(function(e) {\r\n\t\t\t\tself.$pages.off(\"show.bs.tab\", _show).filter(\".active\").parent()\r\n\t\t\t\t\t.next(\":has([data-toggle=tab]:not(.ew-hidden):not(.ew-disabled))\")\r\n\t\t\t\t\t.find(\"[data-toggle=tab]\").toggleClass(\"disabled d-none\", false).click();\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t\tif (this.hideTabs)\r\n\t\t\t\tthis.$form.find(\".ew-multi-page > .tabbable > .nav-tabs, .ew-multi-page > .ew-nav-tabs > .nav-tabs\").hide();\r\n\t\t} else if (this.isCollapse) {\r\n\t\t\tif (this.showPagerTop)\r\n\t\t\t\tthis.$collapses.closest(\".ew-accordion\").before(tpl);\r\n\t\t\tif (this.showPagerBottom)\r\n\t\t\t\tthis.$collapses.closest(\".ew-accordion\").after(tpl);\r\n\t\t\tthis.$form.find(\".ew-prev\").click(function(e) {\r\n\t\t\t\tself.$pages.closest(\".card\").filter(\":has(.collapse.show)\")\r\n\t\t\t\t\t.prev(\":has([data-toggle=collapse]:not(.ew-hidden):not(.ew-disabled))\")\r\n\t\t\t\t\t.toggleClass(\"disabled d-none\", false)\r\n\t\t\t\t\t.find(\"[data-toggle=collapse]\").click();\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t\tthis.$form.find(\".ew-next\").click(function(e) {\r\n\t\t\t\tself.$pages.closest(\".card\").filter(\":has(.collapse.show)\")\r\n\t\t\t\t\t.next(\":has([data-toggle=collapse]:not(.ew-hidden):not(.ew-disabled))\")\r\n\t\t\t\t\t.toggleClass(\"disabled d-none\", false)\r\n\t\t\t\t\t.find(\"[data-toggle=collapse]\").click();\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.pageShow();\r\n\t}\r\n\r\n\t// Page show\r\n\tthis.pageShow = function() {\r\n\t\tif (this.isTab) {\r\n\t\t\tif (this.lockTabs)\r\n\t\t\t\tthis.$pages.on(\"show.bs.tab\", _show);\r\n\t\t\tthis.$pages.each(function() {\r\n\t\t\t\tvar $this = $(this);\r\n\t\t\t\tif (self.hideInactivePages)\r\n\t\t\t\t\t$this.toggleClass(\"d-none\", !$this.hasClass(\"active\"));\r\n\t\t\t\tif (self.lockTabs)\r\n\t\t\t\t\t$this.toggleClass(\"disabled\", !$this.hasClass(\"active\"));\r\n\t\t\t});\r\n\t\t} else if (this.isCollapse) {\r\n\t\t\tthis.$pages.closest(\".card\").each(function() {\r\n\t\t\t\tvar $this = $(this);\r\n\t\t\t\tif (self.hideInactivePages)\r\n\t\t\t\t\t$this.toggleClass(\"d-none\", !$this.find(\".collapse.show\")[0]);\r\n\t\t\t});\r\n\t\t}\r\n\t\tvar disabled = this.lastPageSubmit && this.pageIndex != this.maxPageIndex;\r\n\t\tvar $btn = this.$form.closest(\".content, .modal-content\").find(\"#btn-action, button.ew-submit\").prop(\"disabled\", disabled).toggle(!this.hideDisabledButton || !disabled);\r\n\t\t$(\".ew-captcha\").toggle($btn.is(\":visible:not(:disabled)\")); // Re-captcha uses class \"disabled\", not \"disabled\" property.\r\n\t\tdisabled = this.pageIndex <= this.minPageIndex;\r\n\t\tthis.$form.find(\".ew-prev\").toggleClass(\"disabled\", disabled);\r\n\t\tdisabled = this.pageIndex >= this.maxPageIndex;\r\n\t\tthis.$form.find(\".ew-next\").toggleClass(\"disabled\", disabled);\r\n\t}\r\n\r\n\t// Go to page by index\r\n\tthis.gotoPage = function(i) {\r\n\t\tif (i <= 0 || i < this.minPageIndex || i > this.maxPageIndex)\r\n\t\t\treturn;\r\n\t\tif (this.pageIndex != i) {\r\n\t\t\tvar $page = this.$pages.eq(i - 1);\r\n\t\t\tif (this.isTab) {\r\n\t\t\t\tif ($page.is(\":not(.d-none):not(.disabled)\"))\r\n\t\t\t\t\t$page.click();\r\n\t\t\t\telse\r\n\t\t\t\t\t$page.parent().next(\":has([data-toggle=tab]):not(.d-none):not(.disabled)\")\r\n\t\t\t\t\t\t.find(\"[data-toggle=tab]\").toggleClass(\"disabled\", false).click();\r\n\t\t\t} else if (this.isCollapse) {\r\n\t\t\t\tvar $p = $page.closest(\".card\");\r\n\t\t\t\tif ($p.is(\":not(.d-none)\"))\r\n\t\t\t\t\t$page.click();\r\n\t\t\t\telse\r\n\t\t\t\t\t$p.next(\":has([data-toggle=collapse]):not(.d-none)\").find(\"[data-toggle=collapse]\").click();\r\n\t\t\t}\r\n\t\t\tthis.pageIndex = i;\r\n\t\t}\r\n\t}\r\n\r\n\tthis.gotoPageByIndex = this.gotoPage;\r\n\r\n\t// Go to page by element\r\n\tthis.gotoPageByElement = function(el) {\r\n\t\tthis.gotoPage(parseInt($(el).data(\"page\"), 10) || -1);\r\n\t}\r\n\r\n\t// Go to page by element's id or name or data-field attribute\r\n\tthis.gotoPageByElementId = function(id) {\r\n\t\tvar $el = this.$form.find(\"[data-page]\").filter(\"[id='\" + id + \"'],[name='\" + id + \"'],[data-field='\" + id + \"']\");\r\n\t\tthis.gotoPageByElement($el);\r\n\t}\r\n\r\n\t// Toggle page\r\n\tthis.togglePage = function(i, show) {\r\n\t\tif (this.isTab) {\r\n\t\t\tthis.$pages.eq(i - 1).toggleClass(\"d-none\", !show);\r\n\t\t} else if (this.isCollapse) {\r\n\t\t\tthis.$pages.eq(i - 1).closest(\".card\").toggle(\"d-none\", !show);\r\n\t\t}\r\n\t}\r\n\r\n\t// Render\r\n\tthis.render = function() {\r\n\t\tthis.$form = $(\"#\" + formid);\r\n\t\tthis.pageIndexes = this.$form.find(\"[data-page]\").map(function() {\r\n\t\t\tvar index = parseInt($(this).data(\"page\"), 10);\r\n\t\t\treturn (index > 0) ? index : null;\r\n\t\t}).get();\r\n\t\tthis.pageIndexes.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t});\r\n\t\tthis.minPageIndex = this.pageIndexes[0];\r\n\t\tthis.maxPageIndex = this.pageIndexes[this.pageIndexes.length - 1];\r\n\t\tvar $tabs = this.$form.find(\"[data-toggle=tab]\");\r\n\t\tif ($tabs[0]) {\r\n\t\t\tthis.$pages = $tabs;\r\n\t\t\tthis.isTab = true;\r\n\t\t\t$tabs.on(\"shown.bs.tab\", function(e) {\r\n\t\t\t\tself.pageIndex = $tabs.index(e.target) + 1;\r\n\t\t\t\tself.pageShow();\r\n\t\t\t\t$($(this).attr(\"href\")).find(\".ew-google-map\").each(function() {\r\n\t\t\t\t\tvar m = ew.googleMaps[this.id];\r\n\t\t\t\t\tif (m && m[\"map\"]) {\r\n\t\t\t\t\t\tgoogle.maps.event.trigger(m[\"map\"], \"resize\");\r\n\t\t\t\t\t\tm[\"map\"].setCenter(m[\"latlng\"]);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tthis.pageIndex = $tabs.index($tabs.parent(\".active\")) + 1;\r\n\t\t} else {\r\n\t\t\tthis.$collapses = this.$form.find(\"[data-toggle=collapse]\");\r\n\t\t\tif (this.$collapses[0]) {\r\n\t\t\t\tthis.$pages = this.$collapses;\r\n\t\t\t\tthis.isCollapse = true;\r\n\t\t\t\tvar $bodies = this.$collapses.closest(\".card-header\").next();\r\n\t\t\t\t$bodies.on(\"shown.bs.collapse\", function(e) {\r\n\t\t\t\t\tself.pageIndex = $bodies.index(e.target) + 1;\r\n\t\t\t\t\tself.pageShow();\r\n\t\t\t\t\t$(this).find(\".ew-google-map\").each(function() {\r\n\t\t\t\t\t\tvar m = ew.googleMaps[this.id];\r\n\t\t\t\t\t\tif (m && m[\"map\"]) {\r\n\t\t\t\t\t\t\tgoogle.maps.event.trigger(m[\"map\"], \"resize\");\r\n\t\t\t\t\t\t\tm[\"map\"].setCenter(m[\"latlng\"]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\tthis.pageIndex = $bodies.index($bodies.hasClass(\"show\")) + 1;\r\n\t\t\t}\r\n\t\t}\r\n\t\t$(function() {\r\n\t\t\tself.init();\r\n\t\t});\r\n\t}\r\n}","import $ from 'jquery';\r\n\r\n/**\r\n * User level ID validator\r\n */\r\nexport function userLevelId(el) {\r\n if (el && !ew.checkInteger(el.value))\r\n return { userLevelId: ew.language.phrase(\"UserLevelIDInteger\") };\r\n var level = parseInt(el.value, 10);\r\n if (level < 1)\r\n return { userLevelId: ew.language.phrase(\"UserLevelIDIncorrect\") };\r\n return false;\r\n}\r\n\r\n/**\r\n * User level name validator\r\n * @param {string} id User ID Field input element ID\r\n */\r\nexport function userLevelName(id) {\r\n return function(el) {\r\n let elId = document.getElementById(\"x_\" + id);\r\n if (elId && el) {\r\n let name = el.value.trim(),\r\n level = parseInt(elId.value.trim(), 10);\r\n if (level === 0 && !ew.sameText(name, \"Default\")) {\r\n return { userLevelName: ew.language.phrase(\"UserLevelDefaultName\") };\r\n } else if (level === -1 && !ew.sameText(name, \"Administrator\")) {\r\n return { userLevelName: ew.language.phrase(\"UserLevelAdministratorName\") };\r\n } else if (level === -2 && !ew.sameText(name, \"Anonymous\")) {\r\n return { userLevelName: ew.language.phrase(\"UserLevelAnonymousName\") };\r\n } else if (level > 0 && [\"anonymous\", \"administrator\", \"default\"].includes(name.toLowerCase())) {\r\n return { userLevelName: ew.language.phrase(\"UserLevelNameIncorrect\") };\r\n }\r\n }\r\n return false;\r\n };\r\n}\r\n\r\n/**\r\n * Required validator\r\n */\r\nexport function required(fieldName) {\r\n return function(el) {\r\n let $el = $(el),\r\n $p = $el.closest(\"#r_\" + $el.data(\"field\")?.substr(2)); // Find the row\r\n if (!$p[0])\r\n $p = $el.closest(\"[id^=el]\"); // Find the span\r\n if ($p.css(\"display\") == \"none\") { // Hidden by .visible()\r\n return false;\r\n }\r\n if (el && !ew.hasValue(el)) {\r\n return { required: ew.language.phrase(\"EnterRequiredField\").replace(\"%s\", fieldName) };\r\n }\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * File required validator\r\n */\r\nexport function fileRequired(fieldName) {\r\n return function(el) {\r\n let elFn = document.getElementById(\"fn_\" + el.id);\r\n if (elFn && !ew.hasValue(elFn)) {\r\n return { fileRequired: ew.language.phrase(\"EnterRequiredField\").replace(\"%s\", fieldName) };\r\n }\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * Mismatch password validator\r\n */\r\nexport function mismatchPassword(el) {\r\n let id;\r\n if (el.id.startsWith(\"c_\")) // Confirm Password field in Register page\r\n id = el.id.replace(/^c_/, \"x_\");\r\n else if (el.id == \"cpwd\") // Change Password page\r\n id = \"npwd\";\r\n let elPwd = document.getElementById(id);\r\n if (el.value !== elPwd.value) {\r\n return { mismatchPassword: ew.language.phrase(\"MismatchPassword\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Between validator\r\n */\r\nexport function between(el) {\r\n let x, z;\r\n if (el.id.startsWith(\"y_\")) {\r\n x = document.getElementById(el.id.replace(/^y_/, \"x_\"));\r\n z = document.getElementById(el.id.replace(/^y_/, \"z_\"));\r\n }\r\n if (ew.hasValue(x) && $(z).val() == \"BETWEEN\" && !ew.hasValue(el)) {\r\n return { between: ew.language.phrase(\"EnterValue2\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Password strength validator\r\n */\r\nexport function passwordStrength(el) {\r\n let $el = $(el);\r\n if (!ew.isMaskedPassword(el) && $el.hasClass(\"ew-password-strength\") && !$el.data(\"validated\")) {\r\n return { passwordStrength: ew.language.phrase(\"PasswordTooSimple\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * User name validator\r\n */\r\nexport function username(raw) {\r\n return function(el) {\r\n if (!raw && el.value.match(new RegExp('[' + ew.escapeRegExChars(ew.INVALID_USERNAME_CHARACTERS) + ']')))\r\n return { username: ew.language.phrase(\"InvalidUsernameChars\") };\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * Password validator\r\n */\r\nexport function password(raw) {\r\n return function(el) {\r\n if (!raw && !ew.ENCRYPTED_PASSWORD && el.value.match(new RegExp('[' + ew.escapeRegExChars(ew.INVALID_PASSWORD_CHARACTERS) + ']')))\r\n return { password: ew.language.phrase(\"InvalidPasswordChars\") };\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * Email validator\r\n */\r\nexport function email(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkEmail(value)) {\r\n return { email: ew.language.phrase(\"IncorrectEmail\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Emails validator\r\n */\r\nexport function emails(cnt, err) {\r\n return function(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkEmails(value, cnt)) {\r\n return { email: err };\r\n }\r\n return false;\r\n }\r\n}\r\n\r\n/**\r\n * DateTime validator\r\n * @param {number} dateFormat DateTime format ID\r\n */\r\nexport function datetime(dateFormat) {\r\n return function(el) {\r\n let fn,\r\n phraseId,\r\n value = ew.getValue(el),\r\n newSubStr = ew.DATE_SEPARATOR;\r\n if ([12, 15, 115].includes(dateFormat)) {\r\n fn = ew.checkShortDate;\r\n phraseId = \"IncorrectShortDateYMD\";\r\n } else if ([5, 9, 109].includes(dateFormat)) {\r\n fn = ew.checkDate;\r\n phraseId = \"IncorrectDateYMD\";\r\n } else if ([14, 17, 117].includes(dateFormat)) {\r\n fn = ew.checkShortEuroDate;\r\n phraseId = \"IncorrectShortDateDMY\";\r\n } else if ([7, 11, 111].includes(dateFormat)) {\r\n fn = ew.checkEuroDate;\r\n phraseId = \"IncorrectDateDMY\";\r\n } else if ([13, 16, 116].includes(dateFormat)) {\r\n fn = ew.checkShortUSDate;\r\n phraseId = \"IncorrectShortDateMDY\";\r\n } else if ([6, 10, 110].includes(dateFormat)) {\r\n fn = ew.checkUSDate;\r\n phraseId = \"IncorrectDateMDY\";\r\n } else { // Default date format\r\n fn = ew.checkDateDef;\r\n phraseId = \"IncorrectDate\";\r\n newSubStr = ew.DATE_FORMAT;\r\n }\r\n if (fn && !fn(value)) {\r\n return { datetime: ew.language.phrase(phraseId).replace(/%s/g, newSubStr) };\r\n }\r\n return false;\r\n };\r\n}\r\n\r\n/**\r\n * Time validator\r\n */\r\nexport function time(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkTime(value)) {\r\n return { time: ew.language.phrase(\"IncorrectTime\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Float validator\r\n */\r\nexport function float(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkNumber(value)) {\r\n return { time: ew.language.phrase(\"IncorrectFloat\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Range validator\r\n * @param {number} min Min value\r\n * @param {number} max Max value\r\n */\r\nexport function range(min, max) {\r\n return function(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkRange(value, min, max)) {\r\n return { range: ew.language.phrase(\"IncorrectRange\").replace(\"%1\", min).replace(\"%2\", max) };\r\n }\r\n return false;\r\n };\r\n}\r\n\r\n/**\r\n * Integer validator\r\n */\r\nexport function integer(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkInteger(value)) {\r\n return { integer: ew.language.phrase(\"IncorrectInteger\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * US phone validator\r\n */\r\nexport function phone(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkPhone(value)) {\r\n return { phone: ew.language.phrase(\"IncorrectPhone\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * US ZIP validator\r\n */\r\nexport function zip(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkZip(value)) {\r\n return { zip: ew.language.phrase(\"IncorrectZip\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Credit card validator\r\n */\r\nexport function creditCard(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkCreditCard(value)) {\r\n return { creditCard: ew.language.phrase(\"IncorrectCreditCard\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * US SSN validator\r\n */\r\nexport function ssn(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkSsn(value)) {\r\n return { ssn: ew.language.phrase(\"IncorrectSSN\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * GUID validator\r\n */\r\nexport function guid(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkGuid(value)) {\r\n return { guid: ew.language.phrase(\"IncorrectGUID\") };\r\n }\r\n return false;\r\n}\r\n/**\r\n * Regular expression validator\r\n * @param {string} pattern Regular expression pattern\r\n */\r\nexport function regex(pattern) {\r\n return function(el) {\r\n let value = ew.getValue(el);\r\n if (!ew.checkByRegEx(value, pattern)) {\r\n return { regex: ew.language.phrase(\"IncorrectField\") };\r\n }\r\n return false;\r\n };\r\n}\r\n\r\n/**\r\n * Custom validator\r\n * @param {*} fn Function(value, ...args)\r\n * @param {...any} args Additional arguments for the function\r\n */\r\nexport function custom(fn, ...args) {\r\n return function(el) {\r\n if (typeof fn == \"function\") {\r\n let value = ew.getValue(el);\r\n if (fn(value, ...args))\r\n return { custom: ew.language.phrase(\"IncorrectField\") };\r\n }\r\n return false;\r\n };\r\n}\r\n\r\n/**\r\n * Captcha validator\r\n */\r\nexport function captcha(el) {\r\n if (el && !ew.hasValue(el)) {\r\n return { captcha: ew.language.phrase(\"EnterValidateCode\") };\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * reCaptcha validator\r\n * @param {number} id reCaptcha ID\r\n */\r\nexport function recaptcha(el) {\r\n if (el && !ew.hasValue(el) && grecaptcha?.getResponse(el.dataset.id) === \"\") {\r\n return { recaptcha: ew.language.phrase(\"ClickReCaptcha\") };\r\n }\r\n return false;\r\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","import $ from 'jquery';\r\n\r\n// Form class\r\nexport default function FormBase(id, pageId) {\r\n var self = this;\r\n\r\n this._initiated = false;\r\n this.id = id; // Same ID as the form\r\n this.pageId = pageId;\r\n this.$element = null; // jQuery object of the form or div\r\n this.htmlForm = null; // HTML form element\r\n this.initSearchPanel = false; // Expanded by default\r\n this.modified = false;\r\n this.validateRequired = true;\r\n this.validate = null;\r\n this.emptyRow = null; // Check empty row\r\n this.multiPage = null; // Multi-page\r\n this.autoSuggests = {}; // AutoSuggests\r\n this.lists = {}; // Dynamic selection lists\r\n\r\n // Disable form\r\n this.disableForm = function() {\r\n var form = this.getForm();\r\n $(form).find(\":submit:not(.dropdown-toggle)\").prop(\"disabled\", true).addClass(\"disabled\");\r\n }\r\n\r\n // Enable form\r\n this.enableForm = function() {\r\n var form = this.getForm(),\r\n $form = $(form);\r\n $form.find(\".ew-disabled-element\").removeClass(\"ew-disabled-element\").prop(\"disabled\", false);\r\n $form.find(\".ew-enabled-element\").removeClass(\"ew-enabled-element\").prop(\"disabled\", true);\r\n $form.find(\":submit:not(.dropdown-toggle)\").prop(\"disabled\", false).removeClass(\"disabled\");\r\n }\r\n\r\n // Append hidden element with form name\r\n this.appendHidden = function(el) {\r\n var form = this.getForm(), $form = $(form), $dp = $(el).closest(\".ew-form\"), name = $dp.attr(\"id\") + \"$\" + el.name;\r\n if ($form.find(\"input:hidden[name='\" + name + \"']\")[0]) // Already appended\r\n return;\r\n var ar = $dp.find('[name=\"' + el.name + '\"]').serializeArray();\r\n if (ar.length) {\r\n ar.forEach(function(o, i) {\r\n $('<input type=\"hidden\" name=\"' + name + '\">').val(o.value).appendTo($form);\r\n });\r\n } else {\r\n $('<input type=\"hidden\" name=\"' + name + '\">').val(\"\").appendTo($form);\r\n }\r\n }\r\n\r\n // Can submit\r\n this.canSubmit = function() {\r\n var form = this.getForm(),\r\n $form = $(form);\r\n this.disableForm();\r\n this.updateTextArea();\r\n if (!this.validate || this.validate() && !$form.find(\".is-invalid\")[0]) {\r\n $form.find(\"input[name^=sv_], input[name^=p_], .ew-template input\") // Do not submit these values\r\n .prop(\"disabled\", true)\r\n .addClass(\"ew-disabled-element\");\r\n $form.find(\"[data-readonly=1][disabled]\")\r\n .prop(\"disabled\", false)\r\n .addClass(\"ew-enabled-element\"); // Submit readonly values\r\n var $dps = $($form.find(\"input[name='detailpage']\").map(function(i, el) {\r\n return $form.find(\"#\" + el.value).get();\r\n }));\r\n if ($dps.length > 1) { // Multiple Master/Detail, check element names\r\n $dps.each(function(i, dp) {\r\n $(dp).find(\":input\").each(function(j, el) {\r\n if (/^(fn_)?(x|o)\\d*_/.test(el.name)) {\r\n var $els = $dps.not(dp).find(\":input[name='\" + el.name + \"']\");\r\n if ($els.length) { // Elements with same name found\r\n self.appendHidden(el); // Append element with form name\r\n $els.each(function() {\r\n self.appendHidden(this); // Append elements with same name and form name\r\n });\r\n }\r\n }\r\n });\r\n });\r\n }\r\n return true;\r\n } else {\r\n this.enableForm();\r\n }\r\n return false;\r\n }\r\n\r\n // Submit\r\n this.submit = async function(e, action) {\r\n var form = this.getForm();\r\n if (this.canSubmit()) {\r\n if (action)\r\n form.action = action;\r\n let args = { f: this, form: form, result: true };\r\n $(form).trigger(\"beforesubmit\", [args]);\r\n let result = await args.result; // Support Promise\r\n if ($.isBoolean(result) && result || $.isObject(result) && result.value) // Support Swal.fire()\r\n form.submit();\r\n } else {\r\n this.enableForm();\r\n }\r\n }\r\n\r\n // Get dynamic selection list by element name or id\r\n this.getList = function(name) {\r\n name = name.replace(/^(sv_)?[xy](\\d*|\\$rowindex\\$)_|\\[\\]$/g, \"\"); // Remove element name prefix/suffix\r\n return this.lists[name];\r\n }\r\n\r\n // Compile templates\r\n this.compileTemplates = function() {\r\n let lists = Object.values(this.lists);\r\n for (let list of lists) {\r\n if (list.template && $.isString(list.template))\r\n list.template = $.templates(list.template);\r\n }\r\n }\r\n\r\n // Get the HTML form element\r\n this.getForm = function() {\r\n if (!this.htmlForm) {\r\n this.$element = $(\"#\" + this.id);\r\n if (this.$element.is(\"form\")) { // HTML form\r\n this.htmlForm = this.$element[0];\r\n } else if (this.$element.is(\"div\")) { // HTML div => Grid page\r\n this.htmlForm = this.$element.closest(\"form\")[0];\r\n }\r\n }\r\n return this.htmlForm;\r\n }\r\n\r\n // Get form element as single element\r\n this.getElement = function(name) {\r\n if (!this.$element)\r\n this.$element = $(\"#\" + this.id);\r\n return (name) ? ew.getElement(name, this.$element) : this.$element[0];\r\n }\r\n\r\n // Get form element(s) as single element or array of radio/checkbox\r\n this.getElements = function(name) {\r\n if (!this.$element)\r\n this.$element = $(\"#\" + this.id);\r\n var selector = \"[name='\" + name + \"']\";\r\n selector = \"input\" + selector + \",select\" + selector + \",textarea\" + selector + \",button\" + selector;\r\n var $els = this.$element.find(selector);\r\n return ($els.length == 0) ? null : ($els.length == 1 && $els.is(\":not([type=checkbox]):not([type=radio])\")) ? $els[0] : $els.get();\r\n }\r\n\r\n // Update selection lists\r\n // @param {(null|undefined|number)*} rowindex Row index\r\n this.updateLists = function(rowindex) {\r\n if (rowindex === null) // rowindex == $rowindex$ == null\r\n return;\r\n if (!$.isNumber(rowindex) && this.pageId == \"grid\")\r\n return;\r\n var form = this.getForm(), // Set up $element and htmlForm\r\n confirm = form.querySelector(\"input#confirm\");\r\n if (confirm && confirm.value == \"confirm\") { // Confirm page\r\n ew.removeSpinner();\r\n return;\r\n }\r\n var fixId = (id, multiple) => {\r\n var t = \"\",\r\n i = rowindex,\r\n ar = id.split(\" \");\r\n if (ar.length > 1) {\r\n t = ar[0];\r\n i = \"\";\r\n id = ar[1];\r\n }\r\n let prefix = $.isNumber(i) ? \"x\" + i + \"_\" : \"x_\"; // Add row index\r\n if (id.startsWith(\"x_\")) // Field element name\r\n id = id.replace(/^x_/, prefix);\r\n else // Field var\r\n id = prefix + id;\r\n if (multiple && !id.endsWith(\"[]\")) // Add [] if select-multiple\r\n id += \"[]\";\r\n return t ? t + \" \" + id : id;\r\n };\r\n var selector = Object.entries(this.lists).map(([id, list]) => {\r\n return \"[name='\" + fixId(id, list.multiple) + \"']\";\r\n }).join();\r\n if (!selector || !form.querySelector(selector)) { // Lists not found\r\n ew.removeSpinner();\r\n return;\r\n }\r\n var actions = [],\r\n promises = [];\r\n this.compileTemplates(); // For grid where updateList() called before init()\r\n for (let [id, list] of Object.entries(this.lists)) {\r\n let parents = list.parentFields.slice().map(parent => fixId(parent)), // Clone and fix index\r\n ajax = list.ajax;\r\n id = fixId(id, list.multiple);\r\n if ($.isBoolean(ajax)) { // Ajax\r\n let pvalues = parents.map(parent => ew.getOptionValues(parent, form)); // Save the initial values of the parent lists\r\n actions.push([id, pvalues, ajax, false]);\r\n } else { // Non-Ajax\r\n ew.updateOptions.call(this, id, parents, null, false);\r\n }\r\n }\r\n // Update the Ajax lists\r\n for (var i = 0; i < actions.length; i++) {\r\n promises.push(new Promise(function(resolve, reject) {\r\n setTimeout(function() {\r\n resolve(ew.updateOptions.apply(self, actions.shift()));\r\n }, ew.AJAX_DELAY * i); // Delay a little in case of large number of lists\r\n }));\r\n }\r\n Promise.all(promises).then(function() {\r\n $(document).trigger(\"updatedone\", [{source: self, target: form}]);\r\n }).catch(function(error) {\r\n console.log(error);\r\n });\r\n }\r\n\r\n // Create AutoSuggest\r\n this.createAutoSuggest = function(settings) {\r\n var options = Object.assign({\r\n limit: ew.AUTO_SUGGEST_MAX_ENTRIES,\r\n form: this\r\n }, ew.autoSuggestSettings, settings); // Global settings + field specific settings\r\n self.autoSuggests[settings.id] = new ew.AutoSuggest(options);\r\n }\r\n\r\n // Init editors\r\n this.initEditors = function() {\r\n var form = this.getForm();\r\n $(form.elements).filter(\"textarea.editor\").each(function(i, el) {\r\n var ed = $(el).data(\"editor\");\r\n if (ed && !ed.active && !ed.name.includes(\"$rowindex$\"))\r\n ed.create();\r\n });\r\n }\r\n\r\n // Update textareas\r\n this.updateTextArea = function(name) {\r\n var form = this.getForm();\r\n $(form.elements).filter(\"textarea.editor\").each(function(i, el) {\r\n var ed = $(el).data(\"editor\");\r\n if (!ed || name && ed.name != name)\r\n return true; // Continue\r\n ed.save();\r\n if (name)\r\n return false; // Break\r\n });\r\n }\r\n\r\n // Destroy editor(s)\r\n this.destroyEditor = function(name) {\r\n var form = this.getForm();\r\n $(form.elements).filter(\"textarea.editor\").each(function(i, el) {\r\n var ed = $(el).data(\"editor\");\r\n if (!ed || name && ed.name != name)\r\n return true; // Continue\r\n ed.destroy();\r\n if (name)\r\n return false; // Break\r\n });\r\n }\r\n\r\n // Show error message\r\n this.onError = function(el, msg) {\r\n return ew.onError(this, el, msg);\r\n }\r\n\r\n // Init file upload\r\n this.initUpload = function() {\r\n var form = this.getForm();\r\n $(form.elements).filter(\"input:file:not([name*='$rowindex$'],[id='importfiles'])\").each(function(index) {\r\n $.later(ew.AJAX_DELAY * index, null, ew.upload, this); // Delay a little in case of large number of upload fields\r\n });\r\n }\r\n\r\n // Set up filters\r\n this.setupFilters = function(e, filters) {\r\n var id = this.id, data = this.filterList ? this.filterList.data : null, $sf = $(\".ew-save-filter[data-form=\" + id + \"]\").toggleClass(\"disabled\", !data),\r\n $df = $(\".ew-delete-filter[data-form=\" + id + \"]\").toggleClass(\"disabled\", !filters.length).toggleClass(\"dropdown-toggle\", !!filters.length),\r\n $delete = $df.parent(\"li\").toggleClass(\"dropdown-submenu dropdown-hover\", !!filters.length).toggleClass(\"disabled\", !filters.length),\r\n $save = $sf.parent(\"li\").toggleClass(\"disabled\", !data),\r\n $btn = $(e.target);\r\n var saveFilters = function(id, filters) {\r\n if (ew.SEARCH_FILTER_OPTION == \"Client\") {\r\n window.localStorage.setItem(id + \"_filters\", JSON.stringify(filters));\r\n } else if (ew.SEARCH_FILTER_OPTION == \"Server\") {\r\n var $body = $(\"body\");\r\n $body.css(\"cursor\", \"wait\");\r\n $.ajax(ew.currentPage(), {\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: { \"ajax\": \"savefilters\", \"filters\": JSON.stringify(filters) }\r\n }).done(function(result) {\r\n if (result[0] && result[0].success)\r\n self.filterList.filters = filters; // Save filters\r\n }).always(function() {\r\n $body.css(\"cursor\", \"default\");\r\n });\r\n }\r\n }\r\n $save.off(\"click.ew\").on(\"click.ew\", function(e) { // Save filter\r\n if ($save.hasClass(\"disabled\"))\r\n return false;\r\n ew.prompt(ew.language.phrase(\"EnterFilterName\"), (name) => {\r\n name = ew.sanitize(name);\r\n if (name) {\r\n filters.push([name, data]);\r\n saveFilters(id, filters);\r\n }\r\n }, true);\r\n }).prevAll().remove();\r\n $df.next(\"ul.dropdown-menu\").remove();\r\n if (filters.length) {\r\n var $submenu = $(\"<ul class='dropdown-menu'></ul>\");\r\n for (var i in filters) {\r\n if (!Array.isArray(filters[i]))\r\n continue;\r\n $('<li><a class=\"dropdown-item\" data-index=\"' + i + '\" href=\"#\" onclick=\"return false;\">' + filters[i][0] + '</a></li>').on(\"click\", function(e) { // Delete\r\n var i = $(this).find(\"a[data-index]\").data(\"index\");\r\n ew.prompt(ew.language.phrase(\"DeleteFilterConfirm\").replace(\"%s\", filters[i][0]), (result) => {\r\n if (result) {\r\n filters.splice(i, 1);\r\n saveFilters(id, filters);\r\n }\r\n });\r\n }).appendTo($submenu);\r\n $('<li><a class=\"dropdown-item ew-filter-list\" data-index=\"' + i + '\" href=\"#\" onclick=\"return false;\">' + filters[i][0] + '</a></li>').insertBefore($save).on(\"click\", function(e) {\r\n var i = $(this).find(\"a[data-index]\").data(\"index\");\r\n $(\"<form>\").attr({method: \"post\", action: ew.currentPage()})\r\n .append($(\"<input type='hidden'>\").attr({name: \"cmd\", value: \"resetfilter\"}),\r\n $(\"<input type='hidden'>\").attr({name: ew.TOKEN_NAME_KEY, value: ew.TOKEN_NAME}), // PHP\r\n $(\"<input type='hidden'>\").attr({name: ew.ANTIFORGERY_TOKEN_KEY, value: ew.ANTIFORGERY_TOKEN}), // PHP\r\n $(\"<input type='hidden'>\").attr({name: \"filter\", value: JSON.stringify(filters[i][1])}))\r\n .appendTo(\"body\").trigger(\"submit\");\r\n });\r\n }\r\n $(\"<li class='dropdown-divider'></li>\").insertBefore($save);\r\n $delete.append($submenu);\r\n }\r\n }\r\n\r\n // Init form\r\n this.init = function() {\r\n if (this._initiated)\r\n return;\r\n\r\n // Filters button\r\n if (ew.SEARCH_FILTER_OPTION == \"Client\" && window.localStorage || ew.SEARCH_FILTER_OPTION == \"Server\" && ew.IS_LOGGEDIN && !ew.IS_SYS_ADMIN && ew.CURRENT_USER_NAME != \"\") {\r\n $(\".ew-filter-option.\" + this.id + \" .ew-btn-dropdown\").on(\"show.bs.dropdown\", function(e) {\r\n var filters = [];\r\n if (ew.SEARCH_FILTER_OPTION == \"Client\") {\r\n var item = window.localStorage.getItem(self.id + \"_filters\");\r\n if (item)\r\n filters = ew.parseJson(item) || [];\r\n } else if (ew.SEARCH_FILTER_OPTION == \"Server\")\r\n filters = self.filterList && self.filterList.filters ? self.filterList.filters : [];\r\n var ar = $.grep(filters, function(val) {\r\n if (Array.isArray(val) && val.length == 2)\r\n return val;\r\n });\r\n self.setupFilters(e, ar);\r\n });\r\n $(\".ew-filter-option\").show();\r\n } else {\r\n $(\".ew-filter-option\").hide();\r\n }\r\n\r\n // Check form\r\n var form = this.getForm(),\r\n $form = $(form);\r\n if (!form)\r\n return;\r\n\r\n // Compile templates\r\n this.compileTemplates();\r\n\r\n // Check if Search panel\r\n var isSearch = /s(ea)?rch$/.test(this.id);\r\n\r\n // Search panel\r\n if (isSearch && this.initSearchPanel && !ew.hasFormData(form))\r\n $(\"#\" + this.id + \"-search-panel\").removeClass(\"show\");\r\n\r\n // Search panel toggle\r\n $(\".ew-search-toggle[data-form=\" + this.id + \"]\").on(\"click.bs.button\", function() {\r\n $(\"#\" + $(this).data(\"form\") + \"-search-panel\").collapse(\"toggle\");\r\n });\r\n\r\n // Hide search operator column\r\n if (!$(\".ew-table .ew-search-operator\").text().trim())\r\n $(\".ew-table .ew-search-operator\").parent(\"td\").hide();\r\n\r\n // Highlight button\r\n if (isSearch) {\r\n $(\".ew-highlight[data-form=\" + this.id + \"]\").on(\"click.bs.button\", function() {\r\n $(\"span.\" + $(this).data(\"name\")).toggleClass(\"ew-highlight-search\");\r\n });\r\n }\r\n\r\n // Search operators\r\n if (isSearch) { // Search form\r\n $form.find(\"select[id^=z_]\").each(function() {\r\n var $this = $(this).trigger(\"change\");\r\n if ($this.val() != \"BETWEEN\")\r\n $form.find(\"#w_\" + this.id.substr(2)).trigger(\"change\");\r\n });\r\n }\r\n\r\n // Multi-page\r\n if (this.multiPage)\r\n this.multiPage.render();\r\n\r\n // HTML editors\r\n loadjs.ready([\"editor\"], this.initEditors.bind(this));\r\n\r\n // Dynamic selection lists\r\n this.updateLists();\r\n\r\n // Init file upload\r\n this.initUpload();\r\n\r\n // Submit/Cancel\r\n if (this.$element.is(\"form\")) { // Not Grid page\r\n // Detail pages\r\n this.$element.find(\".ew-detail-pages .ew-nav-tabs a[data-toggle=tab]\").on(\"shown.bs.tab\", function(e) {\r\n var $tab = $(e.target.getAttribute(\"href\")),\r\n $panel = $tab.find(\".table-responsive.ew-grid-middle-panel\"),\r\n $container = $tab.closest(\".container-fluid\");\r\n if ($panel.width() >= $container.width())\r\n $panel.width($container.width() + \"px\");\r\n else\r\n $panel.width(\"auto\");\r\n });\r\n $form.on(\"submit\", function(e) { // Bind submit event\r\n self.submit(e);\r\n return false; // Disable normal submission\r\n });\r\n $form.find(\"[data-field], .ew-priv\").on(\"change\", function() {\r\n if (ew.CONFIRM_CANCEL)\r\n self.modified = true;\r\n });\r\n $form.find(\"#btn-cancel[data-href]\").on(\"click\", function() { // Cancel\r\n self.updateTextArea();\r\n var href = $(this).data(\"href\");\r\n if (self.modified && ew.hasFormData(form)) {\r\n ew.prompt(ew.language.phrase(\"ConfirmCancel\"), (result) => {\r\n if (result) {\r\n $form.find(\"#btn-action\").prop(\"disabled\", true); // Disable the save button\r\n window.location = href;\r\n }\r\n });\r\n } else {\r\n $form.find(\"#btn-action\").prop(\"disabled\", true); // Disable the save button\r\n window.location = href;\r\n }\r\n });\r\n }\r\n\r\n this._initiated = true;\r\n\r\n // Store form object as data\r\n this.$element.data(\"form\", this);\r\n }\r\n\r\n // Add to the global forms object\r\n ew.forms.add(this);\r\n}","/**\r\n * Class Field\r\n */\r\nexport default class Field {\r\n name = \"\";\r\n validators = [];\r\n _error;\r\n _element;\r\n _checkbox;\r\n _validate = true;\r\n list;\r\n invalid;\r\n\r\n /**\r\n * Constructor\r\n * @param {string} fldvar Field variable name\r\n * @param {Function[]|Function} validators Validators\r\n * @param {bool} invalid Initial valid status (e.g. server side)\r\n */\r\n constructor(fldvar, validators, invalid) {\r\n this.name = fldvar;\r\n if (Array.isArray(validators)) {\r\n for (let validator of validators)\r\n this.addValidator(validator);\r\n } else if (typeof validators === \"function\") {\r\n this.addValidator(validators);\r\n }\r\n this.invalid = invalid;\r\n }\r\n\r\n /**\r\n * Add validator\r\n * @param {Function} validator Validator function\r\n */\r\n addValidator(validator) {\r\n if (typeof validator === \"function\")\r\n this.validators.push(validator);\r\n }\r\n\r\n /**\r\n * Get error\r\n * @returns {Object}\r\n */\r\n get error() {\r\n return this._error;\r\n }\r\n\r\n /**\r\n * Add error\r\n * @param {Object} err Error\r\n */\r\n addError(err) {\r\n if (err) {\r\n let error = this._error ?? {};\r\n this._error = { ...error, ...err };\r\n this.invalid = true;\r\n }\r\n }\r\n\r\n /**\r\n * Clear all errors\r\n */\r\n clearErrors() {\r\n this._error = null;\r\n this.invalid = false;\r\n }\r\n\r\n /**\r\n * Clear all validators\r\n */\r\n clearValidators() {\r\n this.validators = [];\r\n }\r\n\r\n /**\r\n * Get error message\r\n * @returns {string} HTML\r\n */\r\n get errorMessage() {\r\n if (this._error) {\r\n return Array.from(Object.values(this._error)).join(\"<br>\");\r\n }\r\n return \"\";\r\n }\r\n\r\n /**\r\n * Check if the field should be validated\r\n */\r\n get shouldValidate() {\r\n return !this._checkbox || this._checkbox.checked;\r\n }\r\n\r\n /**\r\n * Set form element\r\n */\r\n set element(el) {\r\n this._element = el;\r\n this._checkbox = this._element?.id?.match(/^[xy]_/) ? document.getElementById(this._element.id.replace(/^[xy]_/, \"u_\")) : null; // Find the checkbox for the field in Update page\r\n }\r\n\r\n /**\r\n * Get form element\r\n * @returns {HTMLElement|HTMLElement[]}\r\n */\r\n get element() {\r\n return this._element;\r\n }\r\n\r\n /**\r\n * Get field value from form element\r\n * @returns {string|Array}\r\n */\r\n get value() {\r\n return this._element ? ew.getValue(this._element) : \"\";\r\n }\r\n\r\n /**\r\n * Validate field value\r\n * @returns {boolean}\r\n */\r\n validate() {\r\n let result = true;\r\n this.clearErrors(); // Reset error\r\n if (this._element && this.shouldValidate) {\r\n if (Array.isArray(this.validators)) {\r\n for (let validator of this.validators) {\r\n let err = validator(this._element);\r\n if (err !== false) {\r\n this.addError(err);\r\n result = false;\r\n }\r\n }\r\n this.updateFeedback();\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n /**\r\n * Update the error message to feedback element\r\n */\r\n updateFeedback() {\r\n let err = this.errorMessage;\r\n if (this._element && err) {\r\n jQuery(this._element).closest(\"[id^=el_], .form-group\").find(\".invalid-feedback\").html(err);\r\n ew.setInvalid(this._element);\r\n }\r\n }\r\n\r\n /**\r\n * Set focus\r\n */\r\n focus() {\r\n if (this._element)\r\n ew.setFocus(this._element);\r\n }\r\n}","import FormBase from \"./FormBase\";\r\nimport Field from \"./Field\";\r\n\r\n/**\r\n * Class Form\r\n */\r\nexport default class Form extends FormBase {\r\n row = {};\r\n fields = {};\r\n rowIndex;\r\n value;\r\n _error;\r\n\r\n /**\r\n * Constructor\r\n * @param {string} id Form ID\r\n * @param {string} pageId Page ID\r\n */\r\n constructor(id, pageId) {\r\n super(id, pageId);\r\n }\r\n\r\n /**\r\n * Add field\r\n * @param {string} fldvar Field variable name\r\n * @param {Function[]} validators Validators\r\n * @param {bool} invalid Invalid\r\n */\r\n addField(fldvar, validators, invalid) {\r\n if (!(fldvar in this.fields))\r\n this.fields[fldvar] = new Field(fldvar, validators, invalid);\r\n }\r\n\r\n /**\r\n * Get field\r\n * @param {string} fldvar Field variable name\r\n * @returns Field\r\n */\r\n getField(fldvar) {\r\n return this.fields[fldvar];\r\n }\r\n\r\n /**\r\n * Add fields by field definitions\r\n * @param {Array} fields\r\n */\r\n addFields(fields) {\r\n if (Array.isArray(fields)) {\r\n for (let field of fields) {\r\n if (Array.isArray(field)) {\r\n this.addField.apply(this, field);\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Add error\r\n * @param {string} fldvar Field variable name\r\n * @param {Object} err Error\r\n */\r\n addError(fldvar, err) {\r\n if (err) {\r\n this._error = this._error ?? {};\r\n this._error[fldvar] = err;\r\n }\r\n }\r\n\r\n /**\r\n * Add custom error\r\n * @param {string} fldvar Field variable name \r\n * @param {string} msg Error message \r\n */\r\n addCustomError(fldvar, msg) {\r\n if (fldvar in this.fields) {\r\n let field = this.fields[fldvar],\r\n err = { custom: msg };\r\n field.addError(err);\r\n field.updateFeedback();\r\n this.addError(fldvar, err);\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Get error\r\n */\r\n get error() {\r\n return this._error;\r\n }\r\n\r\n /**\r\n * Set focus to the first field with error\r\n */\r\n focus() {\r\n for (let [fldvar, field] of Object.entries(this.fields)) {\r\n if (field.invalid || this._error && this._error[fldvar]) {\r\n field.focus();\r\n this.makeVisible(field.element);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Make the form visible\r\n * @param {HTMLElement} el Focused element \r\n */\r\n makeVisible(el) {\r\n if (this.multiPage) { // Multi-page\r\n this.multiPage.gotoPageByElement(el);\r\n } else if (this.$element.is(\"div\")) { // Multiple Master/Detail\r\n let $pane = this.$element.closest(\".tab-pane\");\r\n if ($pane[0] && !$pane.hasClass(\"active\"))\r\n $pane.closest(\".tabbable, .ew-nav-tabs\").find(\"a[data-toggle=tab][href='#\" + $pane.attr(\"id\") + \"']\").click();\r\n }\r\n }\r\n\r\n /**\r\n * Validate all fields of the specified row\r\n * @param {number} rowIndex Row index\r\n */\r\n validateFields(rowIndex) {\r\n this.rowIndex = rowIndex ?? \"\";\r\n this.row = {};\r\n this._error = null; // Reset\r\n let result = true;\r\n for (let field of Object.values(this.fields)) {\r\n field.element = this.getElements(`x${this.rowIndex}_${field.name}`); // Set element\r\n if (!field.element)\r\n field.element = this.getElements(`x${this.rowIndex}_${field.name}[]`); // Field with []\r\n if (!field.element)\r\n field.element = this.getElements(field.name); // Field by name directly (e.g. email form)\r\n this.row[field.name] = field.value; // Get field value\r\n if (field.element && !field.validate()) { // Invalid field value\r\n this.addError(field.name, field.error);\r\n result = false;\r\n }\r\n }\r\n // Save the field values of the row\r\n if (!this.value) {\r\n this.value = { ...this.row };\r\n } else {\r\n if (!Array.isArray(this.value))\r\n this.value = [this.value];\r\n let index = parseInt(rowIndex, 10) || 0;\r\n index = (index > 1) ? index - 1 : 0;\r\n this.value[index] = { ...this.row };\r\n }\r\n this.focus();\r\n\r\n return result;\r\n }\r\n\r\n /**\r\n * Set invalid fields of the specified row\r\n * @param {number} rowIndex Row index\r\n */\r\n setInvalid(rowIndex) {\r\n this.rowIndex = rowIndex ?? \"\";\r\n for (let field of Object.values(this.fields)) {\r\n if (!field.invalid)\r\n continue;\r\n field.element = this.getElements(`x${this.rowIndex}_${field.name}`); // Set element\r\n if (!field.element)\r\n field.element = this.getElements(`x${this.rowIndex}_${field.name}[]`); // Fields with []\r\n if (!field.element)\r\n field.element = this.getElements(field.name); // Fields without prefix (e.g. email form)\r\n ew.setInvalid(field.element);\r\n }\r\n }\r\n}","import $ from 'jquery';\r\n\r\n// AjaxLookup class\r\nexport default class AjaxLookup {\r\n _isAutoSuggest = null;\r\n\r\n /**\r\n * Constructor\r\n * @param {Object} settings Settings\r\n * @param {string} settings.id - Input element ID\r\n * @param {string|Form} settings.form - Form of the input element\r\n * @param {Number} settings.limit - Options per page\r\n * @param {Object} settings.data - Data submitted by Ajax\r\n */\r\n constructor(settings) {\r\n this.elementId = settings.id; // Id\r\n this.form = settings.form; // Form\r\n if ($.isString(this.form)) // Form is string => Form id\r\n this.form = ew.forms.get(this.form);\r\n this.element = this.form.getElement(this.elementId); // Actual HTML element\r\n this.formElement = this.form.getElement(); // HTML form or DIV\r\n this.list = this.form.getList(this.elementId);\r\n let m = this.elementId.match(/^[xy](\\d*|\\$rowindex\\$)_/),\r\n rowindex = m ? m[1] : \"\";\r\n this.parentFields = this.list.parentFields.slice() // Clone\r\n .map(pf => (pf.split(\" \").length == 1) ? pf.replace(/^x_/, \"x\" + rowindex + \"_\") : pf); // Parent field in the same table, add row index\r\n this.limit = settings.limit;\r\n this.debounce = settings.debounce;\r\n this.data = settings.data;\r\n this.recordCount = 0;\r\n }\r\n\r\n /**\r\n * Is AutoSuggest\r\n */\r\n get isAutoSuggest() {\r\n if (this._isAutoSuggest === null)\r\n this._isAutoSuggest = ew.isAutoSuggest(this.element);\r\n return this._isAutoSuggest;\r\n }\r\n\r\n /**\r\n * Format display value\r\n * @param {Array} opt Option\r\n */\r\n formatResult(opt) {\r\n if (this.list.template && !this.isAutoSuggest) {\r\n return this.list.template.render(opt, ew.jsRenderHelpers);\r\n } else {\r\n return ew.displayValue(opt, this.element) || opt[0];\r\n }\r\n }\r\n\r\n /**\r\n * Generate request\r\n */\r\n generateRequest() {\r\n var data = Object.assign({}, this.data, {\r\n name: this.element.name,\r\n page: this.list.page,\r\n field: this.list.field,\r\n ajax: \"autosuggest\",\r\n language: ew.LANGUAGE_ID\r\n }, ew.getUserParams(\"#p_\" + this.elementId, this.formElement));\r\n if (this.parentFields.length > 0) {\r\n this.parentFields.forEach((pf, i) => {\r\n let arp = ew.getOptionValues(pf, this.formElement);\r\n data[\"v\" + (i + 1)] = arp.join(ew.MULTIPLE_OPTION_SEPARATOR);\r\n });\r\n }\r\n return data;\r\n }\r\n\r\n /**\r\n * Get URL\r\n */\r\n getUrl(query, start) {\r\n let params = new URLSearchParams({\r\n q: query,\r\n n: this.limit,\r\n rnd: ew.random(),\r\n start: $.isNumber(start) ? start : -1\r\n });\r\n return ew.getApiUrl(ew.API_LOOKUP_ACTION, params.toString());\r\n }\r\n\r\n /**\r\n * Prepare URL and data for sending request\r\n * @param {string} query Search term\r\n * @param {Number} start Start page\r\n */\r\n prepare(query, start) {\r\n return {\r\n url: this.getUrl(query, start),\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: this.generateRequest()\r\n };\r\n }\r\n\r\n /**\r\n * Transform options (virtual)\r\n * @param {Object[]} data Data from server\r\n */\r\n transform(data) {\r\n let results = [];\r\n if (data && data.result == \"OK\") {\r\n this.recordCount = data.totalRecordCount;\r\n results = data.records;\r\n }\r\n return results;\r\n }\r\n\r\n}\r\n","/**\r\n * Class selection list option\r\n */\r\nexport default class SelectionListOption {\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor(value, text, selected) {\r\n this.value = String(value || \"\");\r\n this.text = String(text || \"\");\r\n this.selected = !!selected;\r\n }\r\n\r\n}","import $ from 'jquery';\r\nimport SelectionListOption from './SelectionListOption';\r\nimport AjaxLookup from './AjaxLookup';\r\n\r\n// AutoSuggest class\r\nfunction AutoSuggest(settings) {\r\n AjaxLookup.call(this, settings); // Extends AjaxLookup\r\n\r\n var emptyObj = { typeahead: {} }; // Empty Auto-Suggest object\r\n\r\n if (this.elementId.includes(\"$rowindex$\"))\r\n return emptyObj;\r\n\r\n this.input = this.form.getElement(\"sv_\" + this.elementId); // User input\r\n if (!this.input)\r\n return emptyObj;\r\n\r\n var self = this,\r\n $input = $(this.input),\r\n $element = $(this.element),\r\n timer;\r\n\r\n // Properties\r\n this.minWidth = settings.minWidth;\r\n this.maxHeight = settings.maxHeight;\r\n this.highlight = settings.highlight;\r\n this.hint = settings.hint;\r\n this.minLength = settings.minLength;\r\n this.templates = Object.assign({}, settings.templates); // Clone\r\n this.trigger = settings.trigger; // For loading more results\r\n this.delay = settings.delay; // For loading more results\r\n this.debounce = settings.debounce;\r\n this.display = settings.display || \"text\";\r\n this.forceSelection = settings.forceSelect;\r\n this.$input = $input;\r\n this.$element = $element;\r\n\r\n // Save initial option\r\n if ($input.val() && $element.val())\r\n this.element.add($element.val(), $input.val(), true);\r\n\r\n // Set the selected item to the actual field\r\n this.setValue = function(v) {\r\n v = v || $input.val();\r\n let index = this.element.options.findIndex(option => option.text == v);\r\n if (index < 0) { // Not found in results\r\n if (this.forceSelection && v) { // Force selection and query not empty => error\r\n $input.typeahead(\"val\", \"\").attr(\"placeholder\", ew.language.phrase(\"ValueNotExist\")).addClass(\"is-invalid\");\r\n $element.val(\"\").trigger(\"change\");\r\n return;\r\n }\r\n } else { // Found in results\r\n this.element.options[index].selected = true;\r\n if (!/s(ea)?rch$/.test(this.formElement.id) || this.forceSelection) // Force selection or not search form\r\n v = this.element.options[index].value; // Replace the display value by Link Field value\r\n }\r\n if (v !== $element.attr(\"value\"))\r\n $element.attr(\"value\", v).trigger(\"change\"); // Set value to the actual field\r\n };\r\n\r\n // Transform suggestion\r\n this.transform = function(data) {\r\n let results = AjaxLookup.prototype.transform.call(this, data);\r\n this.element.options = results.map(item => new SelectionListOption(item.lf || item[0], self.formatResult(item)));\r\n return this.element.options;\r\n };\r\n\r\n // Get suggestions by Ajax\r\n this.source = function(query, syncResults, asyncResults) {\r\n if (timer)\r\n timer.cancel();\r\n timer = $.later(self.debounce, null, function() {\r\n self.recordCount = 0; // Reset\r\n var settings = self.prepare(query);\r\n $.ajax(settings).done(function(data) {\r\n asyncResults(self.transform(data));\r\n });\r\n });\r\n };\r\n\r\n // Get current suggestion count\r\n this.count = function() {\r\n return self.typeahead.menu.$node.find(\".tt-suggestion.tt-selectable\").length;\r\n };\r\n\r\n // Get more suggestions by Ajax\r\n this.more = function() {\r\n var $body = $(\"body\");\r\n $body.css(\"cursor\", \"wait\");\r\n var ta = self.typeahead, query = ta.menu.query, dataset = ta.menu.datasets[0];\r\n var start = self.count();\r\n var settings = self.prepare(query, start);\r\n $.ajax(settings).done(function(data) {\r\n data = self.transform(data);\r\n dataset._append(query, data);\r\n ta.menu.$node.find(\".tt-dataset\").scrollTop(dataset.$lastSuggestion.outerHeight() * start);\r\n }).always(function() {\r\n $body.css(\"cursor\", \"default\");\r\n });\r\n };\r\n\r\n // Add events\r\n $input.on(\"typeahead:select\", function(e, d) {\r\n self.setValue(d[self.display]);\r\n }).on(\"change\", function(e) {\r\n var ta = $input.data(\"tt-typeahead\");\r\n if (ta && ta.isOpen() && !ta.menu.empty()) {\r\n var $item = ta.menu.getActiveSelectable();\r\n if ($item) { // A suggestion is highlighted\r\n let i = $item.index(),\r\n val = self.element.options[i].text;\r\n $input.typeahead(\"val\", val);\r\n }\r\n }\r\n self.setValue();\r\n }).on(\"blur\", function(e) { // \"change\" fires before blur\r\n var ta = $input.data(\"tt-typeahead\");\r\n if (ta && ta.isOpen())\r\n ta.menu.close();\r\n }).on(\"focus\", function(e) {\r\n $input.attr(\"placeholder\", $input.data(\"placeholder\")).removeClass(\"is-invalid\");\r\n });\r\n\r\n // Option template (\"suggestion\" template)\r\n var tpl = self.list.template || self.templates[\"suggestion\"];\r\n if (tpl && $.isString(tpl))\r\n tpl = $.templates(tpl);\r\n if (tpl)\r\n self.templates[\"suggestion\"] = tpl.render.bind(tpl);\r\n\r\n // Save\r\n $element.data(\"autosuggest\", this);\r\n\r\n // Create Typeahead\r\n $(function() {\r\n // Typeahead options and dataset\r\n var options = {\r\n highlight: self.highlight,\r\n minLength: self.minLength,\r\n hint: self.hint,\r\n trigger: self.trigger,\r\n delay: self.delay\r\n };\r\n var dataset = {\r\n name: self.form.id + \"-\" + self.elementId,\r\n source: self.source,\r\n templates: self.templates,\r\n display: self.display,\r\n limit: self.limit,\r\n async: true\r\n };\r\n var args = [options, dataset];\r\n // Trigger \"typeahead\" event\r\n $element.trigger(\"typeahead\", [args]);\r\n self.limit = dataset.limit;\r\n // Create Typeahead\r\n $input.typeahead.apply($input, args);\r\n $input.on(\"typeahead:rendered\", function() {\r\n var $node = self.typeahead.menu.$node;\r\n var $more = $node.find(\".tt-more\").html(ew.language.phrase(\"More\"));\r\n if (arguments.length > 1 && // Arguments: event, suggestion, suggestion, ...\r\n self.recordCount > self.count()) {\r\n $more.one(options.trigger, function(e) {\r\n setTimeout(function() {\r\n self.more();\r\n }, options.delay);\r\n e.preventDefault();\r\n e.stopPropagation();\r\n });\r\n } else {\r\n $more.hide();\r\n }\r\n });\r\n $input.off(\"blur.tt\");\r\n self.typeahead = $input.data(\"tt-typeahead\");\r\n var $menu = self.typeahead.menu.$node.css(\"z-index\", 1000);\r\n if (self.minWidth)\r\n $menu.css(\"min-width\", self.minWidth);\r\n var $dataset = $menu.find(\".tt-dataset\");\r\n var maxHeight = self.maxHeight ||\r\n (parseInt($dataset.css(\"line-height\"), 10) + 6) * (dataset.limit + 1); // Match .tt-suggestion padding\r\n $dataset.css({ \"max-height\": maxHeight, \"overflow-y\": \"auto\" });\r\n });\r\n}\r\n\r\nAutoSuggest.prototype = Object.create(AjaxLookup.prototype);\r\n\r\nexport default AutoSuggest;","import $ from 'jquery';\r\n\r\n/**\r\n * Class Forms\r\n */\r\nexport default class Forms {\r\n _forms = {};\r\n\r\n /**\r\n * Get form by element or id\r\n * @param {HTMLElement|string} el Element or id\r\n */\r\n get(el) {\r\n let id = ($.isString(el)) ? el : ew.getForm(el).id;\r\n return this._forms[id];\r\n }\r\n\r\n /**\r\n * Add form\r\n * @param {Form} f Form\r\n */\r\n add(f) {\r\n this._forms[f.id] = f;\r\n }\r\n\r\n /**\r\n * Get all ids\r\n * @returns {string[]}\r\n */\r\n ids() {\r\n return Object.keys(this._forms);\r\n }\r\n\r\n}","import $ from 'jquery';\r\n\r\n/**\r\n * Select2 decorator for results adapter\r\n */\r\nexport default function(Utils) {\r\n\r\n class Select2CustomOption {\r\n\r\n render(decorated) {\r\n var $results = $(\r\n '<div class=\"select2-results__options ' + this.options.get('containerClass') + '\" role=\"listbox\"></div>'\r\n ); //***\r\n\r\n if (this.options.get('multiple')) {\r\n $results.attr('aria-multiselectable', 'true');\r\n }\r\n\r\n this.$results = $results;\r\n\r\n return $results;\r\n };\r\n\r\n displayMessage(decorated, params) {\r\n var escapeMarkup = this.options.get('escapeMarkup');\r\n\r\n this.clear();\r\n this.hideLoading();\r\n\r\n var $message = $(\r\n '<div role=\"alert\" aria-live=\"assertive\"' +\r\n ' class=\"select2-results__option\"></div>'\r\n ); //***\r\n\r\n if (params.message.includes(\"<\") && params.message.includes(\">\")) { // HTML //***\r\n $message.append(params.message);\r\n } else {\r\n var message = this.options.get('translations').get(params.message);\r\n $message.append(\r\n escapeMarkup(\r\n message(params.args)\r\n )\r\n );\r\n }\r\n\r\n $message[0].className += ' select2-results__message';\r\n\r\n this.$results.append($message);\r\n };\r\n\r\n append(decorated, data) {\r\n this.hideLoading();\r\n\r\n var $options = [];\r\n\r\n if (data.results == null || data.results.length === 0) {\r\n if (this.$results.children().length === 0) {\r\n if (this.$element.data(\"updating\")) {\r\n this.trigger('results:message', {\r\n message: '<div class=\"spinner-border spinner-border-sm text-primary ew-select-spinner\" role=\"status\"><span class=\"sr-only\">' + ew.language.phrase('Loading') + '</span></div> ' + ew.language.phrase('Loading')\r\n });\r\n this.$element.one(\"updatedone\", () => this.$element.select2(\"close\").select2(\"open\"));\r\n } else {\r\n this.trigger('results:message', {\r\n message: 'noResults'\r\n });\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n data.results = this.sort(data.results);\r\n\r\n //***\r\n var cols = this.options.get('columns'),\r\n len = data.results.length,\r\n $row = this.$results.find(\".\" + this.options.get('rowClass')).last();\r\n\r\n for (var d = 0; d < data.results.length; d++) {\r\n var item = data.results[d];\r\n\r\n var $option = this.option(item);\r\n\r\n if (!$row.length || $row.children().length == cols) { // Add new row\r\n $row = $('<div class=\"' + this.options.get('rowClass') + '\"></div>');\r\n this.$results.append($row);\r\n }\r\n\r\n $row.append($option);\r\n\r\n if (d == len - 1) { // Last\r\n var cnt = cols - $row.children().length;\r\n for (var i = 0; i < cnt ; i++)\r\n $row.append('<div class=\"' + this.options.get('colClass') + '\"></div>');\r\n }\r\n }\r\n\r\n };\r\n\r\n option(decorated, data) {\r\n // var option = document.createElement('li');\r\n var option = document.createElement('div'); //***\r\n option.className = 'select2-results__option ' + this.options.get('cellClass'); //***\r\n\r\n var attrs = {\r\n 'role': 'option',\r\n 'aria-selected': 'false'\r\n };\r\n\r\n var matches = window.Element.prototype.matches ||\r\n window.Element.prototype.msMatchesSelector ||\r\n window.Element.prototype.webkitMatchesSelector;\r\n\r\n if ((data.element != null && matches.call(data.element, ':disabled')) ||\r\n (data.element == null && data.disabled)) {\r\n delete attrs['aria-selected'];\r\n attrs['aria-disabled'] = 'true';\r\n }\r\n\r\n if (data.id == null) {\r\n delete attrs['aria-selected'];\r\n }\r\n\r\n if (data._resultId != null) {\r\n option.id = data._resultId;\r\n }\r\n\r\n if (data.title) {\r\n option.title = data.title;\r\n }\r\n\r\n // if (data.children) { //***\r\n // attrs.role = 'group';\r\n // attrs['aria-label'] = data.text;\r\n // delete attrs['aria-selected'];\r\n // }\r\n\r\n for (var attr in attrs) {\r\n var val = attrs[attr];\r\n\r\n option.setAttribute(attr, val);\r\n }\r\n\r\n // if (data.children) { //***\r\n // var $option = $(option);\r\n\r\n // var label = document.createElement('strong');\r\n // label.className = 'select2-results__group';\r\n\r\n // var $label = $(label);\r\n // this.template(data, label);\r\n\r\n // var $children = [];\r\n\r\n // for (var c = 0; c < data.children.length; c++) {\r\n // var child = data.children[c];\r\n\r\n // var $child = this.option(child);\r\n\r\n // $children.push($child);\r\n // }\r\n\r\n // var $childrenContainer = $('<ul></ul>', {\r\n // 'class': 'select2-results__options select2-results__options--nested'\r\n // });\r\n\r\n // $childrenContainer.append($children);\r\n\r\n // $option.append(label);\r\n // $option.append($childrenContainer);\r\n // } else {\r\n this.template(data, option);\r\n // }\r\n\r\n Utils.StoreData(option, 'data', data);\r\n\r\n return option;\r\n };\r\n\r\n }\r\n\r\n return Select2CustomOption;\r\n}","import $ from 'jquery';\r\nimport AjaxLookup from './AjaxLookup';\r\nimport AutoSuggest from './AutoSuggest';\r\nimport Form from './Form';\r\nimport Forms from './Forms';\r\nimport Field from './Field';\r\nimport SelectionListOption from './SelectionListOption';\r\nimport getSelect2CustomOptionClass from './Select2CustomOption';\r\n\r\nexport let currentUrl = new URL(window.location);\r\nexport let forms = new Forms();\r\nexport { AjaxLookup, AutoSuggest, Form, SelectionListOption };\r\n\r\nlet $document = $(document),\r\n $body = $(\"body\");\r\n\r\n// Remove spinner (immediately)\r\nlet _removeSpinner = ew.removeSpinner;\r\n\r\n// Remove spinner\r\nexport function removeSpinner() {\r\n var timer = $body.data(\"_spinner\");\r\n if (timer)\r\n timer.cancel();\r\n timer = $.later(500, null, function() {\r\n if ($document.data(\"_ajax\") !== true) { // Ajax not running\r\n _removeSpinner();\r\n $(\"form.ew-form\").each(function() {\r\n var frm = forms.get(this.id);\r\n if (frm) {\r\n frm.focus();\r\n return false;\r\n }\r\n });\r\n }\r\n });\r\n $body.data(\"_spinner\", timer);\r\n}\r\n\r\n// Create select2\r\nexport function createSelect(options) {\r\n if (options.selectId.includes(\"$rowindex$\"))\r\n return;\r\n $.fn.select2.amd.require(\r\n [\"select2/utils\", \"select2/results\", \"select2/dropdown/infiniteScroll\", \"select2/dropdown/hidePlaceholder\", \"select2/dropdown/selectOnClose\"],\r\n (function(opts) {\r\n return function (Utils, ResultsList, InfiniteScroll, HidePlaceholder, SelectOnClose) {\r\n let options = Object.assign({}, ew.selectOptions, opts);\r\n if (options.resultsAdapter == null) {\r\n options.resultsAdapter = ResultsList;\r\n if (options.dropdown && options.columns && options.customOption) {\r\n options.resultsAdapter = Utils.Decorate(\r\n options.resultsAdapter,\r\n getSelect2CustomOptionClass(Utils)\r\n );\r\n if (options.iconClass && options.multiple && !options.templateResult) {\r\n options.templateResult = (result) => '<label class=\"' + options.iconClass + ' ew-dropdown-label\">' + result.text + '</label>';\r\n }\r\n }\r\n if (options.ajax != null) {\r\n options.resultsAdapter = Utils.Decorate(\r\n options.resultsAdapter,\r\n InfiniteScroll\r\n );\r\n }\r\n if (options.placeholder != null) {\r\n options.resultsAdapter = Utils.Decorate(\r\n options.resultsAdapter,\r\n HidePlaceholder\r\n );\r\n }\r\n if (options.selectOnClose) {\r\n options.resultsAdapter = Utils.Decorate(\r\n options.resultsAdapter,\r\n SelectOnClose\r\n );\r\n }\r\n }\r\n if ($.isObject(options.ajax)) {\r\n let lookup = new ew.AjaxLookup(options.ajax)\r\n options.ajax = {\r\n url: (params) => {\r\n let start = params.page ? (params.page - 1) * (settings.limit || ew.AUTO_SUGGEST_MAX_ENTRIES) : -1;\r\n return lookup.getUrl(params.term, start);\r\n },\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: lookup.generateRequest.bind(lookup),\r\n delay: options.debounce,\r\n processResults: (data) => {\r\n return {\r\n results: lookup.transform(data).map(item => {\r\n return {\r\n id: item.lf,\r\n text: lookup.formatResult({ lf: item.lf, df: item.df, df2: item.df2, df3: item.df3, df4: item.df4 })\r\n };\r\n }),\r\n pagination: {\r\n more: data.length < lookup.recordCount\r\n }\r\n }\r\n }\r\n };\r\n }\r\n $(\"select[data-select2-id='\" + options.selectId + \"']\").select2(options);\r\n if (options.multiple && options.minimumResultsForSearch === Infinity) {\r\n $(\"select[id='\" + options.name + \"']\").on(\"select2:opening select2:closing\", function(event) {\r\n $(this).parent().find(\".select2-search__field\").prop(\"disabled\", true);\r\n });\r\n }\r\n };\r\n })(options)\r\n );\r\n}\r\n\r\n// Init icon tooltip\r\nexport function initIcons(e) {\r\n var el = (e && e.target) ? e.target : document;\r\n $(el).find(\".ew-icon\").closest(\"a, button\").add(\".ew-tooltip\").tooltip({\r\n container: \"body\",\r\n trigger: (ew.IS_MOBILE) ? \"manual\" : \"hover\",\r\n placement: \"bottom\",\r\n sanitizeFn: ew.sanitizeFn\r\n });\r\n}\r\n\r\n// Init password options\r\nexport function initPasswordOptions(e) {\r\n var el = (e && e.target) ? e.target : document;\r\n if ($.fn.pStrength && typeof ew.MIN_PASSWORD_STRENGTH != \"undefined\") {\r\n $(el).find(\".ew-password-strength\").each(function() {\r\n var $this = $(this);\r\n if (!$this.data(\"pStrength\"))\r\n $this.pStrength({\r\n \"changeBackground\": false,\r\n \"backgrounds\": [],\r\n \"passwordValidFrom\": ew.MIN_PASSWORD_STRENGTH,\r\n \"onPasswordStrengthChanged\": function(strength, percentage) {\r\n var $this = $(this), $pst = $(\"[id='\" + $this.attr(\"data-password-strength\") + \"']\"), // Do not use #\r\n $pb = $pst.find(\".progress-bar\");\r\n $pst.width($this.outerWidth());\r\n if ($this.val() && !ew.isMaskedPassword(this)) {\r\n var pct = percentage + \"%\";\r\n if (percentage < 25) {\r\n $pb.addClass(\"bg-danger\").removeClass(\"bg-warning bg-info bg-success\");\r\n } else if (percentage < 50) {\r\n $pb.addClass(\"bg-warning\").removeClass(\"bg-danger bg-info bg-success\");\r\n } else if (percentage < 75) {\r\n $pb.addClass(\"bg-info\").removeClass(\"bg-danger bg-warning bg-success\");\r\n } else {\r\n $pb.addClass(\"bg-success\").removeClass(\"bg-danger bg-warning bg-info\");\r\n }\r\n $pb.css(\"width\", pct);\r\n if (percentage > 25)\r\n pct = ew.language.phrase(\"PasswordStrength\").replace(\"%p\", pct);\r\n $pb.html(pct);\r\n $pst.removeClass(\"d-none\").show();\r\n $this.data(\"validated\", percentage >= ew.MIN_PASSWORD_STRENGTH);\r\n } else {\r\n $pst.addClass(\"d-none\").hide();\r\n $this.data(\"validated\", null);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n if ($.fn.pGenerator) {\r\n $(el).find(\".ew-password-generator\").each(function() {\r\n var $this = $(this);\r\n if (!$this.data(\"pGenerator\"))\r\n $this.pGenerator({\r\n \"passwordLength\": ew.GENERATE_PASSWORD_LENGTH,\r\n \"uppercase\": ew.GENERATE_PASSWORD_UPPERCASE,\r\n \"lowercase\": ew.GENERATE_PASSWORD_LOWERCASE,\r\n \"numbers\": ew.GENERATE_PASSWORD_NUMBER,\r\n \"specialChars\": ew.GENERATE_PASSWORD_SPECIALCHARS,\r\n \"onPasswordGenerated\": function(pwd) {\r\n var $this = $(this);\r\n $(\"#\" + $this.attr(\"data-password-field\")).val(pwd).trigger(\"change\").trigger(\"focus\").triggerHandler(\"click\"); // Trigger click to remove \"is-invalid\" class (Do not use $this.data)\r\n $(\"#\" + $this.attr(\"data-password-confirm\")).val(pwd);\r\n $(\"#\" + $this.attr(\"data-password-strength\")).addClass(\"d-none\").hide();\r\n }\r\n });\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Get API action URL\r\n * @param {string|string[]} action Route as string or array, e.g. \"foo\", [\"foo\", \"1\"]\r\n * @param {string|string[]|object} query Search params, e.g. \"foo=1&bar=2\", [[\"foo\", \"1\"], [\"bar\", \"2\"]], {\"foo\": \"1\", \"bar\": \"2\"}\r\n */\r\nexport function getApiUrl(action, query) {\r\n var url = ew.PATH_BASE + ew.API_URL,\r\n params = new URLSearchParams(query),\r\n qs = params.toString();\r\n if ($.isString(action)) { // Route as string\r\n url += action ? action : \"\";\r\n } else if (Array.isArray(action)) { // Route as array\r\n var route = action.map(function(v) {\r\n return encodeURIComponent(v);\r\n }).join(\"/\");\r\n url += route ? route : \"\";\r\n }\r\n return url + (qs ? \"?\" + qs : \"\");\r\n}\r\n\r\n// Sanitize URL\r\nexport function sanitizeUrl(url) {\r\n var ar = url.split(\"?\"),\r\n search = ar[1];\r\n if (search) {\r\n var searchParams = new URLSearchParams(search);\r\n searchParams.forEach((value, key) => searchParams.set(key, ew.sanitize(value)));\r\n search = searchParams.toString();\r\n }\r\n return ar[0] + (search ? \"?\" + search : \"\");\r\n}\r\n\r\n// Set session timer\r\nexport function setSessionTimer() {\r\n var timeoutTime, timer, keepAliveTimer, counter,\r\n useKeepAlive = (ew.SESSION_KEEP_ALIVE_INTERVAL > 0 || ew.IS_LOGGEDIN && ew.IS_AUTOLOGIN);\r\n // Keep alive\r\n var keepAlive = () => {\r\n $.get(getApiUrl(ew.API_SESSION_ACTION), { \"rnd\": random() }, (token) => {\r\n if (token && $.isObject(token)) { // PHP\r\n ew.TOKEN_NAME = token[ew.TOKEN_NAME_KEY];\r\n ew.ANTIFORGERY_TOKEN = token[ew.ANTIFORGERY_TOKEN_KEY];\r\n if (token[\"JWT\"])\r\n ew.API_JWT_TOKEN = token[\"JWT\"];\r\n }\r\n });\r\n };\r\n // Reset timer\r\n var resetTimer = () => {\r\n counter = ew.SESSION_TIMEOUT_COUNTDOWN;\r\n timeoutTime = ew.SESSION_TIMEOUT - ew.SESSION_TIMEOUT_COUNTDOWN;\r\n if (timeoutTime < 0) { // Timeout now\r\n timeoutTime = 0;\r\n counter = ew.SESSION_TIMEOUT;\r\n }\r\n if (timer)\r\n timer.cancel(); // Clear timer\r\n };\r\n // Timeout\r\n var timeout = () => {\r\n if (keepAliveTimer)\r\n keepAliveTimer.cancel(); // Stop keep alive\r\n if (counter > 0) {\r\n let timerInterval;\r\n let message = '<p class=\"text-danger\">' + ew.language.phrase(\"SessionWillExpire\") + '</p>';\r\n if (message.includes(\"%m\") && message.includes(\"%s\")) {\r\n message = message.replace(\"%m\", '<span class=\"ew-session-counter-minute\">' + Math.floor(counter / 60) + '</span>')\r\n message = message.replace(\"%s\", '<span class=\"ew-session-counter-second\">' + (counter % 60) + '</span>')\r\n } else if (message.includes(\"%s\")) {\r\n message = message.replace(\"%s\", '<span class=\"ew-session-counter-second\">' + counter + '</span>');\r\n }\r\n Swal.fire({\r\n ...ew.sweetAlertSettings,\r\n html: message,\r\n showConfirmButton: true,\r\n confirmButtonText: ew.language.phrase(\"OKBtn\"),\r\n timer: counter * 1000,\r\n timerProgressBar: true,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n onBeforeOpen: () => {\r\n timerInterval = setInterval(() => {\r\n let content = Swal.getContent(),\r\n min = content.querySelector(\".ew-session-counter-minute\"),\r\n sec = content.querySelector(\".ew-session-counter-second\"),\r\n timeleft = Math.round(Swal.getTimerLeft() / 1000);\r\n if (min && sec) {\r\n min.textContent = Math.floor(timeleft / 60);\r\n sec.textContent = timeleft % 60;\r\n } else if (sec) {\r\n sec.textContent = timeleft;\r\n }\r\n }, 1000)\r\n },\r\n onClose: () => {\r\n clearInterval(timerInterval);\r\n }\r\n }).then((result) => {\r\n if (result.value) { // OK button pressed\r\n keepAlive();\r\n if (!useKeepAlive && ew.SESSION_TIMEOUT > 0)\r\n setTimer();\r\n } else if (result.dismiss === Swal.DismissReason.timer) { // Timeout\r\n resetTimer();\r\n window.location = sanitizeUrl(ew.TIMEOUT_URL + \"?expired=1\");\r\n }\r\n });\r\n }\r\n };\r\n // Set timer\r\n var setTimer = () => {\r\n resetTimer(); // Reset timer first\r\n timer = $.later(timeoutTime * 1000, null, timeout);\r\n };\r\n if (useKeepAlive) { // Keep alive\r\n var keepAliveInterval = (ew.SESSION_KEEP_ALIVE_INTERVAL > 0) ? ew.SESSION_KEEP_ALIVE_INTERVAL : ew.SESSION_TIMEOUT - ew.SESSION_TIMEOUT_COUNTDOWN;\r\n if (keepAliveInterval <= 0)\r\n keepAliveInterval = 60;\r\n keepAliveTimer = $.later(keepAliveInterval * 1000, null, keepAlive, null, true); // Periodic\r\n } else {\r\n if (ew.SESSION_TIMEOUT > 0) // Set session timeout\r\n setTimer();\r\n }\r\n}\r\n\r\n// Init export links\r\nexport function initExportLinks(e) {\r\n var el = (e && e.target) ? e.target : document;\r\n $(el).find(\".ew-export-link[href]:not(.ew-email):not(.ew-print):not(.ew-xml)\").on(\"click\", function(e) {\r\n var href = $(this).attr(\"href\");\r\n if (href && href != \"#\")\r\n fileDownload(href);\r\n e.preventDefault();\r\n });\r\n}\r\n\r\n// Init multi-select checkboxes\r\nexport function initMultiSelectCheckboxes(e) {\r\n var el = (e && e.target) ? e.target : document,\r\n $el = $(el),\r\n $cbs = $el.find(\"input[type=checkbox].ew-multi-select\");\r\n var _update = function(id) {\r\n var $els = $cbs.filter(\"[name^='\" + id + \"_']\"), cnt = $els.length, len = $els.filter(\":checked\").length;\r\n $els.closest(\"form\").find(\"input[type=checkbox]#\" + id)\r\n .prop(\"checked\", len == cnt).prop(\"indeterminate\", len != cnt && len != 0);\r\n };\r\n $cbs.on(\"click\", function(e) {\r\n _update(this.name.split(\"_\")[0]);\r\n });\r\n $el.find(\"input[type=checkbox].ew-priv:not(.ew-multi-select)\").each(function() {\r\n _update(this.id); // Init\r\n });\r\n}\r\n\r\n// Download file\r\nexport function fileDownload(href, data) {\r\n let win = window,\r\n jq = win.jQuery,\r\n swal = win.Swal,\r\n doc = win.document,\r\n $doc = jq(doc),\r\n method = data ? \"POST\" : \"GET\",\r\n isHtml = href.includes(\"export=html\");\r\n return swal.fire({\r\n ...ew.sweetAlertSettings,\r\n html: \"<p>\" + ew.language.phrase(\"Exporting\") + \"</p>\",\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n onBeforeOpen: () => {\r\n swal.showLoading(),\r\n jq.ajax({\r\n url: href,\r\n type: method,\r\n cache: false,\r\n data: data || null,\r\n xhrFields: {\r\n responseType: isHtml ? \"text\" : \"blob\"\r\n }\r\n }).done((data, textStatus, jqXHR) => {\r\n var url = win.URL.createObjectURL(isHtml ? new Blob([data], { type: \"text/html\" }) : data),\r\n a = doc.createElement(\"a\"),\r\n cd = jqXHR.getResponseHeader(\"Content-Disposition\"),\r\n m = cd.match(/\\bfilename=((['\"])(.+)\\2|([^;]+))/i);\r\n a.style.display = \"none\";\r\n a.href = url;\r\n if (m)\r\n a.download = m[3] || m[4];\r\n doc.body.appendChild(a);\r\n a.click();\r\n $doc.trigger(\"export\", [{ \"type\": \"done\", \"url\": href, \"objectUrl\": url }]);\r\n win.URL.revokeObjectURL(url);\r\n swal.close();\r\n }).fail(() => {\r\n swal.showValidationMessage(\"<div class='text-danger'><h4>\" + ew.language.phrase(\"FailedToExport\") + \"</h4>\" + response + \"</div>\");\r\n $doc.trigger(\"export\", [{ \"type\": \"fail\", \"url\": href }]);\r\n }).always(() => {\r\n $doc.trigger(\"export\", [{ \"type\": \"always\", \"url\": href }]);\r\n });\r\n }\r\n });\r\n}\r\n\r\n// Lazy load images\r\nexport function lazyLoad(e) {\r\n if (!ew.LAZY_LOAD)\r\n return;\r\n var el = (e && e.target) ? e.target : document;\r\n $(el).find(\"img.ew-lazy\").each(function () {\r\n this.src = this.dataset.src;\r\n });\r\n $document.trigger(\"lazyload\"); // All images loaded\r\n}\r\n\r\n// Update select2 dropdown position\r\nexport function updateDropdownPosition() {\r\n var select = $(\".select2-container--open\").prev(\".ew-select\").data(\"select2\");\r\n if (select) {\r\n select.dropdown._positionDropdown();\r\n select.dropdown._resizeDropdown();\r\n }\r\n}\r\n\r\n// Colorboxes\r\nexport function initLightboxes(e) {\r\n if (!ew.USE_COLORBOX)\r\n return;\r\n var el = (e && e.target) ? e.target : document;\r\n var settings = Object.assign({}, ew.lightboxSettings, {\r\n title: ew.language.phrase(\"LightboxTitle\"),\r\n current: ew.language.phrase(\"LightboxCurrent\"),\r\n previous: ew.language.phrase(\"LightboxPrevious\"),\r\n next: ew.language.phrase(\"LightboxNext\"),\r\n close: ew.language.phrase(\"LightboxClose\"),\r\n xhrError: ew.language.phrase(\"LightboxXhrError\"),\r\n imgError: ew.language.phrase(\"LightboxImgError\")\r\n });\r\n $(el).find(\".ew-lightbox\").each(function() {\r\n var $this = $(this);\r\n $this.colorbox(Object.assign({ rel: $this.data(\"rel\") }, settings));\r\n });\r\n}\r\n\r\n// PDFObjects\r\nexport function initPdfObjects(e) {\r\n if (!ew.EMBED_PDF)\r\n return;\r\n var el = (e && e.target) ? e.target : document,\r\n options = Object.assign({}, ew.PDFObjectOptions);\r\n $(el).find(\".ew-pdfobject\").not(\":has(.pdfobject)\").each(function() { // Not already embedded\r\n var $this = $(this), url = $this.data(\"url\"), html = $this.html();\r\n if (url)\r\n PDFObject.embed(url, this, Object.assign(options, { fallbackLink: html }));\r\n });\r\n}\r\n\r\n// Tooltips and popovers\r\nexport function initTooltips(e) {\r\n var el = (e && e.target) ? e.target : document, $el = $(el);\r\n $el.find(\"input[data-toggle=tooltip],textarea[data-toggle=tooltip],select[data-toggle=tooltip]\").each(function() {\r\n var $this = $(this);\r\n $this.tooltip(Object.assign({ html: true, placement: \"bottom\", sanitizeFn: ew.sanitizeFn }, $this.data()));\r\n });\r\n $el.find(\"a.ew-tooltip-link\").each(tooltip); // Init tooltips\r\n $el.find(\".ew-tooltip\").tooltip({ placement: \"bottom\", sanitizeFn: ew.sanitizeFn });\r\n $el.find(\".ew-popover\").popover({ sanitizeFn: ew.sanitizeFn });\r\n}\r\n\r\n// Parse JSON\r\nexport function parseJson(data) {\r\n if ($.isString(data)) {\r\n try {\r\n return JSON.parse(data);\r\n } catch(e) {\r\n return undefined;\r\n }\r\n }\r\n return data;\r\n}\r\n\r\n// Change search operator\r\nexport function searchOperatorChanged(el) {\r\n var $el = $(el),\r\n $p = $el.closest(\"[id^=r_], [id^=xsc_]\"),\r\n parm = el.id.substr(2),\r\n $fld = $p.find(\".ew-search-field\"),\r\n $fld2 = $p.find(\".ew-search-field2\"),\r\n $y = $fld2.find(\"[name='y_\" + parm + \"'], [name='y_\" + parm + \"[]']\"),\r\n hasY = $y.length,\r\n $cond = $p.find(\".ew-search-cond\"),\r\n hasCond = $cond.length, // Has condition and operator 2\r\n $and = $p.find(\".ew-search-and\"),\r\n $opr = $p.find(\".ew-search-operator\"),\r\n opr = $opr.find(\"[name='z_\" + parm + \"']\").val(),\r\n $opr2 = $p.find(\".ew-search-operator2\"),\r\n opr2 = $opr2.find(\"[name='w_\" + parm + \"']\").val(),\r\n isBetween = opr == \"BETWEEN\", // Can only be operator 1\r\n isNullOpr = [\"IS NULL\", \"IS NOT NULL\"].includes(opr),\r\n isNullOpr2 = [\"IS NULL\", \"IS NOT NULL\"].includes(opr2),\r\n hideOpr2 = !hasY || isBetween,\r\n hideX = isNullOpr,\r\n hideY = !isBetween && (!hasCond || isNullOpr2);\r\n $cond.toggleClass(\"d-none\", hideOpr2).find(\":input\").prop(\"disabled\", hideOpr2);\r\n $and.toggleClass(\"d-none\", !isBetween);\r\n $opr2.toggleClass(\"d-none\", hideOpr2).find(\":input\").prop(\"disabled\", hideOpr2);\r\n $fld.toggleClass(\"d-none\", hideX).find(\":input\").prop(\"disabled\", hideX);\r\n $fld2.toggleClass(\"d-none\", hideY).find(\":input\").prop(\"disabled\", hideY);\r\n}\r\n\r\n// Init forms\r\nfunction initForms(e) {\r\n let el = (e && e.target) ? e.target : document,\r\n $el = $(el),\r\n ids = ew.forms.ids();\r\n for (let id of ids) {\r\n if ($el.find(\"#\" + id))\r\n forms.get(id).init();\r\n }\r\n}\r\n\r\n// Is function\r\nexport function isFunction(x) {\r\n return typeof x === \"function\";\r\n}\r\n\r\n// Prompt/Confirm/Alert\r\nfunction _prompt(text, cb, input, validator) {\r\n if (input) { // Prompt\r\n return Swal.fire({\r\n ...ew.sweetAlertSettings,\r\n html: text,\r\n input: \"text\",\r\n confirmButtonText: ew.language.phrase(\"OKBtn\"),\r\n showCancelButton: isFunction(cb),\r\n cancelButtonText: ew.language.phrase(\"CancelBtn\"),\r\n inputValidator: validator || ((value) => {\r\n if (!value)\r\n return ew.language.phrase(\"EnterValue\");\r\n })\r\n }).then(result => {\r\n if (isFunction(cb))\r\n cb(result.value);\r\n });\r\n } else { // Confirm or Alert\r\n return Swal.fire({\r\n ...ew.sweetAlertSettings,\r\n html: \"<div>\" + text + \"</div>\",\r\n confirmButtonText: ew.language.phrase(\"OKBtn\"),\r\n showCancelButton: isFunction(cb),\r\n cancelButtonText: ew.language.phrase(\"CancelBtn\"),\r\n }).then(result => {\r\n if (isFunction(cb))\r\n cb(result.value);\r\n });\r\n }\r\n}\r\n\r\nexport { _prompt as prompt };\r\n\r\n// Toast\r\nexport function toast(options) {\r\n options = Object.assign({}, ew.toastOptions, options);\r\n $document.Toasts(\"create\", options);\r\n var position = options.position,\r\n $container = $(\"#toastsContainer\" + position[0].toUpperCase() + position.substring(1));\r\n return $container.children().first();\r\n}\r\n\r\n/**\r\n * Show toast\r\n *\r\n * @param {string} msg - Message\r\n * @param {string} type - CSS class: \"muted|primary|success|info|warning|danger\"\r\n */\r\nexport function showToast(msg, type) {\r\n type = type || \"danger\";\r\n return toast({\r\n class: \"ew-toast bg-\" + type,\r\n title: ew.language.phrase(type),\r\n body: msg,\r\n autohide: (type == \"success\") ? ew.autoHideSuccessMessage : false, // Autohide for success message\r\n delay: (type == \"success\") ? ew.autoHideSuccessMessageDelay: 500\r\n });\r\n}\r\n\r\n// Get form.ew-form or div.ew-form HTML element\r\nexport function getForm(el) {\r\n if (el instanceof Form)\r\n return el.$element[0];\r\n var $el = $(el), $f = $el.closest(\".ew-form\");\r\n if (!$f[0]) // Element not inside form\r\n $f = $el.closest(\".ew-grid, .ew-multi-column-grid\").find(\".ew-form\").not(\".ew-pager-form\");\r\n return $f[0];\r\n}\r\n\r\n// Check form data\r\nexport function hasFormData(form) {\r\n var selector = \"[name^=x_],[name^=y_],[name^=z_],[name^=w_],[name=psearch]\",\r\n els = $(form).find(selector).filter(\":enabled\").get();\r\n for (var i = 0, len = els.length; i < len; i++) {\r\n var el = els[i];\r\n if (/^(z|w)_/.test(el.name)) {\r\n if (/^IS/.test($(el).val()))\r\n return true;\r\n } else if (el.type == \"checkbox\" || el.type == \"radio\") {\r\n if (el.checked)\r\n return true;\r\n } else if (el.type == \"select-one\" || el.type == \"select-multiple\") {\r\n if (!!$(el).val())\r\n return true;\r\n } else if (el.type == \"text\" || el.type == \"hidden\" || el.type == \"textarea\") {\r\n if (el.value)\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\n// Set search type\r\nexport function setSearchType(el, val) {\r\n var $this = $(el), $form = $this.closest(\"form\"), text = \"\";\r\n $form.find(\"input[name=psearchtype]\").val(val || \"\");\r\n if (val == \"=\") {\r\n text = ew.language.phrase(\"QuickSearchExactShort\");\r\n } else if (val == \"AND\") {\r\n text = ew.language.phrase(\"QuickSearchAllShort\");\r\n } else if (val == \"OR\") {\r\n text = ew.language.phrase(\"QuickSearchAnyShort\");\r\n } else {\r\n text = ew.language.phrase(\"QuickSearchAutoShort\");\r\n }\r\n $form.find(\"#searchtype\").html(text + ((text) ? \" \" : \"\"));\r\n $this.closest(\"ul\").find(\"li\").removeClass(\"active\");\r\n $this.closest(\"li\").addClass(\"active\");\r\n return false;\r\n}\r\n\r\n/**\r\n * Update a dynamic selection list\r\n *\r\n * @param {(HTMLElement|HTMLElement[]|string|string[])} obj - Target HTML element(s) or the ID of the element(s)\r\n * @param {(string[]|array[])} parentId - Parent field element names or data\r\n * @param {(boolean|null)} async - async(true) or sync(false) or non-Ajax(null)\r\n * @param {boolean} change - Trigger onchange event\r\n * @returns\r\n */\r\nexport function updateOptions(obj, parentId, async, change) {\r\n var f = (this.$element) ? this.$element[0] : (this.form) ? this.form : null; // Get form/div element from this\r\n if (!f)\r\n return;\r\n var frm = (this.htmlForm) ? this : forms.get(f.id); // Get Form object\r\n if (!frm)\r\n return;\r\n if (this.form && $.isUndefined(obj)) // Target unspecified\r\n obj = forms.get(this).getList(this.name).childFields.slice(); // Clone\r\n else if ($.isString(obj))\r\n obj = getElements(obj, f);\r\n if (!obj || Array.isArray(obj) && obj.length == 0)\r\n return;\r\n var self = this, promise = Promise.resolve();\r\n if (Array.isArray(obj) && $.isString(obj[0])) { // Array of id (onchange/onclick event)\r\n var els = [];\r\n for (var i = 0, len = obj.length; i < len; i++) {\r\n var ar = obj[i].split(\" \");\r\n if (ar.length == 1 && self.form) { // Parent/Child fields in the same table\r\n var m = getId(self, false).match(/^([xy]\\d*_)/);\r\n if (m)\r\n obj[i] = obj[i].replace(/^([xy]\\d*_)/, m[1]);\r\n }\r\n var el = getElements(obj[i], f), names = [];\r\n els.push(el);\r\n if (ar.length == 2 && Array.isArray(el)) { // Check if id is \"tblvar fldvar\" and multiple inputs\r\n var $el = $(el);\r\n $el.each(function() {\r\n if (!names.includes(this.name)) {\r\n names.push(this.name);\r\n var $elf = $el.filter(\"[name='\" + this.name + \"']\"), typ = $elf.attr(\"type\"),\r\n elf = [\"radio\", \"checkbox\"].includes(typ) ? $elf.get() : $elf[0];\r\n promise = promise.then(_updateOptions.bind(self, elf, parentId, async, change));\r\n }\r\n });\r\n } else {\r\n promise = promise.then(_updateOptions.bind(self, el, parentId, async, change));\r\n }\r\n }\r\n obj = els;\r\n var list = forms.get(self).getList(self.name);\r\n if (list && Array.isArray(list.autoFillTargetFields) && list.autoFillTargetFields[0]) // AutoFill\r\n promise = promise.then(autoFill.bind(null, self));\r\n } else {\r\n promise = promise.then(_updateOptions.bind(self, obj, parentId, async, change));\r\n }\r\n return promise.then(function() {\r\n $document.trigger(\"updatedone\", [{ source: self, target: obj }]); // Document \"updatedone\" event fired after all the target elements are updated\r\n });\r\n}\r\n\r\n/**\r\n * Update a dynamic selection list\r\n *\r\n * @param {(HTMLElement|HTMLElement[]} obj - Target HTML element(s) or the ID of the element(s)\r\n * @param {(string[]|array[])} parentId - Parent field element names or data\r\n * @param {(boolean|null)} async - async(true) or sync(false) or non-Ajax(null)\r\n * @param {boolean} change - Trigger onchange event\r\n * @returns Promise\r\n */\r\nfunction _updateOptions(obj, parentId, async, change) {\r\n var id = getId(obj, false);\r\n if (!id)\r\n return;\r\n var fo = getForm(obj); // Get form/div element from obj\r\n if (!fo || !fo.id)\r\n return;\r\n var frmo = forms.get(fo.id);\r\n if (!frmo)\r\n return;\r\n var self = this,\r\n args = Array.from(arguments),\r\n ar = getOptionValues(obj),\r\n m = id.match(/^([xy])(\\d*)_/),\r\n prefix = m ? m[1] : \"\",\r\n rowindex = m ? m[2] : \"\",\r\n arp = [],\r\n list = frmo.getList(id),\r\n $obj = $(obj).data(\"updating\", true);\r\n if ($obj.data(\"hidden\")) // Skip data-hidden field, e.g. detail key\r\n return;\r\n if ($.isUndefined(parentId)) { // Parent IDs not specified, use default\r\n parentId = list.parentFields.slice(); // Clone\r\n if (rowindex != \"\") {\r\n for (var i = 0, len = parentId.length; i < len; i++) {\r\n var arr = parentId[i].split(\" \");\r\n if (arr.length == 1) // Parent field in the same table, add row index\r\n parentId[i] = parentId[i].replace(/^x_/, \"x\" + rowindex + \"_\");\r\n }\r\n }\r\n }\r\n if (Array.isArray(parentId) && parentId.length > 0) {\r\n if (Array.isArray(parentId[0])) { // Array of array => data\r\n arp = parentId;\r\n } else if ($.isString(parentId[0])) { // Array of string => Parent IDs\r\n for (var i = 0, len = parentId.length; i < len; i++)\r\n arp.push(getOptionValues(parentId[i], fo));\r\n }\r\n }\r\n if (!isAutoSuggest(obj)) // Do not clear Auto-Suggest\r\n clearOptions(obj);\r\n var addOpt = function(results) {\r\n var name = getId(obj);\r\n results.forEach(function(result) {\r\n let args = {\"data\": result, \"parents\": arp, \"valid\": true, \"name\": name, \"form\": fo};\r\n $document.trigger(\"addoption\", [args]);\r\n if (args.valid)\r\n newOption(obj, result, fo);\r\n });\r\n if (obj.list)\r\n obj.render();\r\n selectOption(obj, ar);\r\n if (change !== false) {\r\n if (!obj.options && obj.length)\r\n $obj.first().triggerHandler(\"click\");\r\n else\r\n $obj.first().trigger(\"change\");\r\n }\r\n }\r\n if ($.isUndefined(async)) // Async not specified, use default\r\n async = list.ajax;\r\n var _updateSibling = function() { // Update the y_* element\r\n if (/s(ea)?rch$/.test(fo.id) && prefix == \"x\") { // Search form\r\n args[0] = id.replace(/^x_/, \"y_\");\r\n updateOptions.apply(self, args); // args[0] is string, use updateOptions()\r\n }\r\n }\r\n if (!$.isBoolean(async) || Array.isArray(list.lookupOptions) && list.lookupOptions.length > 0) { // Non-Ajax or Options loaded\r\n var ds = list.lookupOptions;\r\n addOpt(ds);\r\n _updateSibling();\r\n return ds;\r\n } else { // Ajax\r\n var name = getId(obj), data = Object.assign({\r\n page: list.page,\r\n field: list.field,\r\n ajax: \"updateoption\",\r\n language: ew.LANGUAGE_ID,\r\n name: name // Name of the target element\r\n }, getUserParams(\"#p_\" + id, fo)); // Add user parameters\r\n if (isAutoSuggest(obj) && self.htmlForm) // Auto-Suggest (init form or auto-fill)\r\n data[\"v0\"] = ar[0] || random(); // Filter by the current value\r\n else if (isModalLookup(obj)) // Modal-Lookup\r\n data[\"v0\"] = ar[0] ? (obj.multiple ? ar.join(ew.MULTIPLE_OPTION_SEPARATOR) : ar[0]) : random(); // Filter by the current value\r\n for (var i = 0, cnt = arp.length; i < cnt; i++) // Filter by parent fields\r\n data[\"v\" + (i + 1)] = arp[i].join(ew.MULTIPLE_OPTION_SEPARATOR);\r\n return $.ajax(getApiUrl(ew.API_LOOKUP_ACTION), {\r\n \"type\": \"POST\", \"dataType\": \"json\", \"data\": data, \"async\": async\r\n }).done((result) => {\r\n var ds = result.records || [];\r\n addOpt(ds);\r\n _updateSibling();\r\n $obj.first().trigger(\"updated\", [Object.assign({}, result, { target: obj })]); // Object \"updatedone\" event fired after the object is updated\r\n return ds;\r\n }).always(() => $obj.data(\"updating\", false));\r\n }\r\n}\r\n\r\n// Get user parameters from id\r\nexport function getUserParams(id, root) {\r\n var id = id.replace(/\\[\\]$/, \"\"), o = {};\r\n var root = !$.isString(root) ? root : /^#/.test(root) ? root : \"#\" + root;\r\n var $els = (root) ? $(root).find(id) : $(id);\r\n var val = $els.val();\r\n if (val) {\r\n var params = new URLSearchParams(val);\r\n params.forEach(function(value, key) {\r\n o[key] = value;\r\n });\r\n }\r\n return o;\r\n}\r\n\r\n// Apply client side template to a DIV\r\nexport function applyTemplate(divId, tmplId, classId, exportType, data) { // Note: classId = fileName\r\n var args = {\"data\": data || {}, \"id\": divId, \"template\": tmplId, \"class\": classId, \"export\": exportType, \"enabled\": true};\r\n $document.trigger(\"rendertemplate\", [args]);\r\n if (args.enabled) {\r\n if (document.body.replaceWith) { // Not IE\r\n var template = document.getElementById(tmplId).content;\r\n template.querySelectorAll(\".ew-slot\").forEach(el => {\r\n var subtmpl = document.getElementById(el.name || el.id);\r\n if (subtmpl && subtmpl.content) {\r\n if (el.dataset.rowspan > 1)\r\n Array.prototype.slice.call(subtmpl.content.childNodes).forEach(node => node.rowSpan = el.dataset.rowspan);\r\n el.replaceWith(subtmpl.content);\r\n } else {\r\n el.remove();\r\n }\r\n });\r\n if ($.views) {\r\n var textContent = template.textContent,\r\n hasTag = textContent.includes(\"{{\") && textContent.includes(\"}}\");\r\n if (!hasTag) {\r\n var selector = ew.jsRenderAttributes.map(attr => \"[\" + attr + \"*='{{'][\" + attr + \"*='}}']\").join(\",\");\r\n hasTag = template.querySelector(selector);\r\n }\r\n if (hasTag) { // Includes JsRender template\r\n var scripts = Array.prototype.slice.call(template.querySelectorAll(\"script\")); // Extract scripts\r\n scripts.forEach(item => item.remove());\r\n var div = document.createElement(\"div\");\r\n div.appendChild(template);\r\n var html = div.innerHTML, tmpl = $.templates(html);\r\n document.getElementById(divId).innerHTML = tmpl.render(args.data, ew.jsRenderHelpers);\r\n scripts.forEach(item => document.body.appendChild(item)); // Add scripts\r\n } else {\r\n document.getElementById(divId).appendChild(template);\r\n }\r\n } else {\r\n document.getElementById(divId).appendChild(template);\r\n }\r\n } else { // IE\r\n _alert(ew.language.phrase(\"UnsupportedBrowser\") || \"Your browser is not supported by this page.\");\r\n }\r\n }\r\n if (exportType && exportType != \"print\") { // Export custom\r\n $(function() {\r\n var $meta = $(\"meta[http-equiv='Content-Type']\"),\r\n html = \"<html><head>\",\r\n $div = $(\"#\" + divId);\r\n if ($div.children(0).is(\"div[id^=ct_]\")) // Remove first div tag\r\n $div = $div.children(0);\r\n if ($meta[0])\r\n html += \"<meta http-equiv='Content-Type' content='\" + $meta.attr(\"content\") + \"'>\";\r\n if (exportType == \"pdf\") {\r\n html += \"<link rel='stylesheet' href='\" + ew.PDF_STYLESHEET_FILENAME + \"'>\";\r\n } else {\r\n html += \"<style>\" + $.ajax({async: false, type: \"GET\", url: ew.PROJECT_STYLESHEET_FILENAME}).responseText + \"</style>\";\r\n }\r\n html += \"</\" + \"head><body>\";\r\n $(\".ew-chart-top\").each(function() {\r\n html += $(this).html();\r\n });\r\n html += $div.html();\r\n $(\".ew-chart-bottom\").each(function() {\r\n html += $(this).html();\r\n });\r\n html += \"</body></html>\";\r\n var url = currentPage(),\r\n data = { \"customexport\": exportType, \"data\": html, \"filename\": args.class };\r\n data[ew.TOKEN_NAME] = ew.ANTIFORGERY_TOKEN;\r\n if (exportType == \"email\") {\r\n var str = currentUrl.searchParams.toString() + \"&\" + $.param(data); // Add data\r\n $.post(url, str, function(result) {\r\n showMessage(result);\r\n });\r\n } else {\r\n fileDownload(url, data);\r\n }\r\n window.parent.jQuery(\"body\").css(\"cursor\", \"default\"); // Use window.parent in case in iframe\r\n });\r\n }\r\n}\r\n\r\n// Toggle group\r\nexport function toggleGroup(el) {\r\n var $el = $(el), $tr = $el.closest(\"tr\"), selector = \"tr\", level;\r\n for (var i = 1; i <= 6; i++) {\r\n var idx = (i == 1) ? \"\" : \"-\" + i;\r\n var data = $tr.data(\"group\" + idx);\r\n if ($.isValue(data)) {\r\n level = i;\r\n if (data != \"\")\r\n selector += \"[data-group\" + idx + \"='\" + String(data).replace(/'/g, \"\\\\'\") + \"']\";\r\n }\r\n }\r\n if ($el.hasClass(\"icon-collapse\")) { // Hide\r\n $(selector).slice(1).addClass(\"ew-rpt-grp-hide-\" + level);\r\n $el.toggleClass(\"icon-expand icon-collapse\");\r\n } else {\r\n $(selector).slice(1).removeClass(\"ew-rpt-grp-hide-\" + level);\r\n $el.toggleClass(\"icon-expand icon-collapse\");\r\n }\r\n}\r\n\r\n// Check if boolean value is true\r\nexport function convertToBool(value) {\r\n return value && [\"1\", \"y\", \"t\", \"true\"].includes(value.toLowerCase());\r\n}\r\n\r\n// Check if element value changed\r\nexport function valueChanged(fobj, infix, fld, bool) {\r\n var nelm = getElements(\"x\" + infix + \"_\" + fld, fobj);\r\n var oelm = getElement(\"o\" + infix + \"_\" + fld, fobj); // Hidden element\r\n var fnelm = getElement(\"fn_x\" + infix + \"_\" + fld, fobj); // Hidden element\r\n if (nelm?.type == \"hidden\" && !oelm) // For example, detail key\r\n return false;\r\n if (!oelm && (!nelm || Array.isArray(nelm) && nelm.length == 0))\r\n return false;\r\n var getValue = (obj) => getOptionValues(obj).join();\r\n if (oelm && nelm) {\r\n if (bool) {\r\n if (convertToBool(getValue(oelm)) === convertToBool(getValue(nelm)))\r\n return false;\r\n } else {\r\n var oldvalue = getValue(oelm);\r\n var newvalue = (fnelm) ? getValue(fnelm) : getValue(nelm);\r\n if (oldvalue == newvalue)\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\n// Set language\r\nexport function setLanguage(el) {\r\n var $el = $(el),\r\n val = $el.val() || $el.data(\"language\");\r\n if (!val)\r\n return;\r\n currentUrl.searchParams.set(\"language\", val);\r\n window.location = sanitizeUrl(currentUrl.toString());\r\n}\r\n\r\n/**\r\n * Submit action\r\n *\r\n * @param {Event} e\r\n * @param {Object} args - Arguments\r\n * @param {HTMLElement} args.f - HTML form (default is the form of the source element)\r\n * @param {string} args.url - URL to which the request is sent (default is current page)\r\n * @param {Object} args.key - Key as object (for single record only)\r\n * @param {string} args.msg - Confirm message\r\n * @param {string} args.action - Custom action name\r\n * @param {string} args.select - \"single\"|\"s\" (single record) or \"multiple\"|\"m\" (multiple records, default)\r\n * @param {string} args.method - \"ajax\"|\"a\" (Ajax by HTTP POST) or \"post\"|\"p\" (HTTP POST, default)\r\n * @param {Object} args.data - Object of user data that is sent to the server\r\n * @param {string|callback|Object} success - Function to be called if the request succeeds, or settings for jQuery.ajax() (for Ajax only)\r\n * @returns\r\n */\r\nexport function submitAction(e, args) {\r\n var el = e.target || e.srcElement, $el = $(el),\r\n f = args.f || $el.closest(\"form\")[0] || currentForm, $f = $(f),\r\n key = args.key, action = args.action, url = args.url || currentPage(),\r\n msg = args.msg, data = args.data, success = args.success,\r\n isPost = !args.method || sameText(args.method[0], \"p\"),\r\n isMultiple = !args.select && !args.key || args.select && sameText(args.select[0], \"m\");\r\n if (isMultiple && !$f[0])\r\n return false;\r\n if (isMultiple && !keySelected($f[0])) {\r\n _prompt(\"<p class=\\\"text-danger\\\">\" + ew.language.phrase(\"NoRecordSelected\") + \"</p>\");\r\n return false;\r\n }\r\n var _success = function(result) {\r\n showMessage(result);\r\n };\r\n var _submit = function() {\r\n if (isPost) { // Post back\r\n if (action) // Action\r\n $(\"<input>\").attr({type: \"hidden\", name: \"useraction\", value: action}).appendTo($f);\r\n if ($.isObject(data)) { // User data\r\n for (var k in data) {\r\n var $input = $f.find(\"input[type=hidden][name='\" + k + \"']\");\r\n if ($input[0])\r\n $input.val(data[k]);\r\n else\r\n $(\"<input>\").attr({type: \"hidden\", name: k, value: data[k]}).appendTo($f);\r\n }\r\n }\r\n if (!isMultiple && $.isObject(key)) { // Key\r\n for (var k in key)\r\n $(\"<input>\").attr({type: \"hidden\", name: k, value: key[k]}).appendTo($f);\r\n }\r\n $f.prop(\"action\", url).trigger(\"submit\");\r\n // if (action) // Action\r\n // $f.find(\"input[type=hidden][name=useraction]\").remove(); // Remove the \"useraction\" element\r\n } else { // Ajax\r\n data = $.isObject(data) ? $.param(data) : $.isString(data) ? data : \"\"; // User data\r\n if (action)\r\n data += \"&useraction=\" + action + \"&ajax=\" + action; // Action\r\n if (isMultiple) // Multiple records\r\n data += \"&\" + $f.find(\"input[name='key_m[]']:checked\").serialize(); // Keys\r\n else if (key) // Single record\r\n data += \"&\" + ($.isObject(key) ? $.param(key) : key); // Key\r\n if (success && $.isString(success))\r\n success = window[success];\r\n if (isFunction(success)) {\r\n $.post(url, data, success);\r\n } else if ($.isObject(success)) { // \"success\" is Ajax settings\r\n success.data = data;\r\n success.method = success.method || \"POST\";\r\n success.success = success.success || _success;\r\n $.ajax(url, success);\r\n } else {\r\n $.post(url, data, _success);\r\n }\r\n }\r\n };\r\n if (msg) {\r\n _prompt(msg, (result) => {\r\n if (result)\r\n _submit();\r\n });\r\n } else {\r\n _submit();\r\n }\r\n return false;\r\n}\r\n\r\n/**\r\n * Export with selected records and/or Custom Template\r\n *\r\n * @param {string} f - Form ID\r\n * @param {string} url - Form action\r\n * @param {string} type - Export type\r\n * @param {boolean} custom - Using Custom Template\r\n * @param {boolean} sel - Selected records only\r\n * @param {Object} fobj - email form object\r\n * @returns false\r\n */\r\nfunction _export(f, url, type, custom, sel, fobj) {\r\n if (!f)\r\n return false;\r\n var $f = $(f),\r\n target = $f.attr(\"target\"),\r\n action = $f.attr(\"action\"),\r\n cb = sel && $f.find(\"input[type=checkbox][name='key_m[]']\")[0];\r\n if (cb && !keySelected(f)) {\r\n _alert(ew.language.phrase(\"NoRecordSelected\"));\r\n return false;\r\n }\r\n if (custom) { // Use Custom Template\r\n $(\"iframe.ew-export\").remove();\r\n if (type == \"email\")\r\n url += (\"&\" + $(fobj).serialize()).replace(/&export=email/i, \"\"); // Remove duplicate export=email\r\n if (cb) {\r\n $(\"<iframe>\").attr(\"name\", \"ew-export-frame\").addClass(\"ew-export d-none\").appendTo($body);\r\n try {\r\n $f.append($(\"<input type='hidden'>\").attr({name: \"custom\", value: \"1\"}))\r\n .attr({ \"action\": url, \"target\": \"ew-export-frame\" }).find(\"input[name=exporttype]\").val(type).end().trigger(\"submit\");\r\n } finally { // Reset\r\n $f.attr({ \"target\": target || \"\", \"action\": action }).find(\"input[name=custom]\").remove();\r\n }\r\n } else {\r\n $(\"<iframe>\").attr({ name: \"ew-export-frame\", src: url }).addClass(\"ew-export d-none\").appendTo($body);\r\n }\r\n } else { // No Custom Template\r\n $f.find(\"input[name=exporttype]\").val(type);\r\n if ([\"xml\", \"print\"].includes(type))\r\n $f.trigger(\"submit\"); // Submit the form directly\r\n else\r\n fileDownload(action, $f.serialize());\r\n }\r\n return false;\r\n}\r\n\r\nexport { _export as export };\r\n\r\n/**\r\n * Remove spaces\r\n * @param {string} value\r\n * @returns {string}\r\n */\r\nexport function removeSpaces(value) {\r\n return (/^(<(p|br)\\/?>( )?(<\\/p>)?)?$/i.test(value.replace(/\\s/g, \"\"))) ? \"\" : value;\r\n}\r\n\r\n/**\r\n * Check if hidden text area (HTML editor)\r\n * @param {HTMLElement|jQuery} el HTML element or jQuery object\r\n * @returns {boolean}\r\n */\r\nexport function isHiddenTextArea(el) {\r\n var $el = $(el);\r\n return $el.is(\":hidden\") && $el.data(\"editor\");\r\n}\r\n\r\n/**\r\n * Check if modal lookup\r\n * @param {HTMLElement|jQuery} el HTML element or jQuery object\r\n * @returns {boolean}\r\n */\r\nexport function isModalLookup(el) {\r\n var $el = $(el);\r\n return $el.is(\":hidden\") && $el.data(\"lookup\");\r\n}\r\n\r\n/**\r\n * Check if hidden textbox (Auto-Suggest)\r\n * @param {HTMLElement|jQuery} el HTML element or jQuery object\r\n * @returns {boolean}\r\n */\r\nexport function isAutoSuggest(el) {\r\n var $el = $(el);\r\n return $el.is(\":hidden\") && $el.data(\"autosuggest\");\r\n}\r\n\r\n/**\r\n * Alert\r\n *\r\n * @param {string} msg - Message\r\n * @param {callback} cb - Callback function\r\n * @param {string} type - CSS class (see https://getbootstrap.com/docs/4.5/utilities/colors/#color)\r\n */\r\nfunction _alert(msg, cb, type) {\r\n return Swal.fire({\r\n ...ew.sweetAlertSettings,\r\n html: '<p class=\"text-' + (type || 'danger') + '\">' + msg + '</p>',\r\n confirmButtonText: ew.language.phrase(\"OKBtn\")\r\n }).then(result => {\r\n if (isFunction(cb))\r\n cb(result.value);\r\n });\r\n}\r\n\r\nexport { _alert as alert };\r\n\r\n/**\r\n * Clear error message\r\n * @param {HTMLElement|HTMLElement[]|jQuery} el HTML element(s) or jQuery\r\n */\r\nexport function clearError(el) {\r\n if (el.jquery) { // el is jQuery object\r\n let typ = el.attr(\"type\");\r\n el = (typ == \"checkbox\" || typ == \"radio\") ? el.get() : el[0];\r\n }\r\n $(el).closest(\"[id^=el_], .form-group\").find(\".invalid-feedback\").html(\"\");\r\n}\r\n\r\n/**\r\n * Show error message\r\n * @param {Form} frm Form object\r\n * @param {HTMLElement|HTMLElement[]|jQuery} el HTML element(s) or jQuery\r\n * @param {string} msg Error message\r\n * @param {boolean} focus Set focus\r\n */\r\nexport function onError(frm, el, msg, focus) {\r\n if (el.jquery) { // el is jQuery object\r\n let typ = el.attr(\"type\");\r\n el = (typ == \"checkbox\" || typ == \"radio\") ? el.get() : el[0];\r\n } else if (el instanceof Field) { // el is Field object\r\n el = el.element;\r\n }\r\n $(el).closest(\"[id^=el_], .form-group\").find(\".invalid-feedback\").append(\"<p>\" + msg + \"</p>\");\r\n if (focus)\r\n setFocus(el);\r\n frm?.makeVisible(el);\r\n return false;\r\n}\r\n\r\n/**\r\n * Set focus\r\n * @param {HTMLElement|HTMLElement[]} obj HTML element(s)\r\n */\r\nexport function setFocus(obj) {\r\n if (!obj)\r\n return;\r\n var $obj = $(obj);\r\n if (isHidden($obj))\r\n return;\r\n if (isHiddenTextArea(obj)) { // HTML editor\r\n return $obj.data(\"editor\").focus();\r\n } else if (isModalLookup(obj)) { // Modal lookup\r\n return $obj.parent().find(\".ew-lookup-text\").trigger(\"focus\");\r\n } else if (!obj.options && obj.length) { // Radio/Checkbox list\r\n obj = $obj[0];\r\n } else if (isAutoSuggest(obj)) { // Auto-Suggest\r\n obj = obj.input;\r\n }\r\n $(obj).trigger(\"focus\");\r\n}\r\n\r\n/**\r\n * Set invalid\r\n * @param {HTMLElement|HTMLElement[]} obj HTML element(s)\r\n */\r\nexport function setInvalid(obj) {\r\n if (!obj)\r\n return;\r\n var $obj = $(obj);\r\n if (isHidden($obj))\r\n return;\r\n if (!obj.options && obj.length) // Radio/Checkbox list\r\n obj = $obj[0];\r\n var $p = $obj.closest(\".form-group, [id^='el']\");\r\n if (isAutoSuggest(obj)) {\r\n $p.find(\".ew-auto-suggest\").addClass(\"is-invalid\").one(\"click keydown\", function() {\r\n $p.find(\".is-invalid\").removeClass(\"is-invalid\");\r\n });\r\n } else if (isModalLookup(obj)) {\r\n $p.find(\".input-group\").addClass(\"is-invalid\").one(\"click keydown\", function() {\r\n $p.find(\".is-invalid\").removeClass(\"is-invalid\");\r\n });\r\n } else {\r\n if (obj.type == \"checkbox\" || obj.type == \"radio\") {\r\n $obj.addClass(\"is-invalid\").one(\"click keydown\", function() {\r\n $p.find(\".is-invalid\").removeClass(\"is-invalid\");\r\n });\r\n } else {\r\n $obj.addClass(\"is-invalid\").parent().one(\"click keydown\", function() {\r\n $p.find(\".is-invalid\").removeClass(\"is-invalid\");\r\n })\r\n $obj.closest(\".input-group\").addClass(\"is-invalid\");\r\n }\r\n }\r\n}\r\n\r\n// Check if object has value\r\nexport function hasValue(obj) {\r\n return getOptionValues(obj).join(\"\") != \"\";\r\n}\r\n\r\n// Check if object value is a masked password\r\nexport function isMaskedPassword(obj) {\r\n var val = $(obj).val();\r\n return val && val.match(/^\\*+$/);\r\n}\r\n\r\n// Get Ctrl key for multiple column sort\r\nexport function sort(e, url, type) {\r\n if (e.shiftKey && !e.ctrlKey)\r\n url = url.split(\"?\")[0] + \"?cmd=resetsort\";\r\n else if (type == 2 && e.ctrlKey)\r\n url += \"&ctrl=1\";\r\n window.location = sanitizeUrl(url);\r\n return true;\r\n}\r\n\r\n// Confirm Delete Message\r\nexport function confirmDelete(el) {\r\n clickDelete(el);\r\n _prompt(ew.language.phrase(\"DeleteConfirmMsg\"), (result) => {\r\n (result && el.href) ? window.location = sanitizeUrl(el.href) : clearDelete(el);\r\n });\r\n return false;\r\n}\r\n\r\n// Check if any key selected // PHP\r\nexport function keySelected(f) {\r\n return $(f).find(\"input[type=checkbox][name='key_m[]']:checked\", f).length > 0;\r\n}\r\n\r\n// Select all key\r\nexport function selectAllKey(cb) {\r\n selectAll(cb);\r\n var tbl = $(cb).closest(\".ew-table\")[0];\r\n if (!tbl)\r\n return;\r\n $(tbl.tBodies).each(function() {\r\n $(this.rows).each(function(i, r) {\r\n var $r = $(r);\r\n if ($r.is(\":not(.ew-template):not(.ew-table-preview-row)\")) {\r\n $r.data({ selected: cb.checked, checked: cb.checked });\r\n setColor(i, r);\r\n }\r\n });\r\n });\r\n}\r\n\r\n// Select all related checkboxes\r\nexport function selectAll(cb) {\r\n if (!cb || !cb.form)\r\n return;\r\n $(cb.form.elements).filter(\"input[type=checkbox][name^=\" + cb.name + \"_], [type=checkbox][name=\" + cb.name + \"]\").not(cb).not(\":disabled\").prop(\"checked\", cb.checked);\r\n}\r\n\r\n// Update selected checkbox\r\nexport function updateSelected(f) {\r\n return $(f).find(\"input[type=checkbox][name^=u_]:checked,input:hidden[name^=u_][value=1]\").length > 0;\r\n}\r\n\r\n// Set row color\r\nexport function setColor(index, row) {\r\n var $row = $(row), $tbl = $row.closest(\".ew-table\");\r\n if (!$tbl[0])\r\n return;\r\n if ($row.data(\"selected\")) {\r\n $row.removeClass($tbl.data(\"rowhighlightclass\") || \"ew-table-highlight-row\")\r\n .removeClass($tbl.data(\"roweditclass\") || \"ew-table-edit-row\")\r\n .addClass($tbl.data(\"rowselectclass\") || \"ew-table-select-row\");\r\n } else if ([ew.ROWTYPE_ADD, ew.ROWTYPE_EDIT].includes($row.data(\"rowtype\"))) {\r\n $row.removeClass($tbl.data(\"rowselectclass\") || \"ew-table-select-row\")\r\n .removeClass($tbl.data(\"rowhighlightclass\") || \"ew-table-highlight-row\")\r\n .addClass($tbl.data(\"roweditclass\") || \"ew-table-edit-row\");\r\n } else {\r\n $row.removeClass($tbl.data(\"rowselectclass\") || \"ew-table-select-row\")\r\n .removeClass($tbl.data(\"roweditclass\") || \"ew-table-edit-row\")\r\n .removeClass($tbl.data(\"rowhighlightclass\") || \"ew-table-highlight-row\");\r\n }\r\n}\r\n\r\n// Clear selected rows color\r\nexport function clearSelected(tbl) {\r\n $(tbl.rows).each(function(i, r) {\r\n var $r = $(r);\r\n if (!$r.data(\"checked\") && $r.data(\"selected\")) {\r\n $r.data(\"selected\", false);\r\n setColor(i, r);\r\n }\r\n });\r\n}\r\n\r\n// Clear all row delete status\r\nexport function clearDelete(el) {\r\n var $el = $(el), tbl = $el.closest(\".ew-table\")[0];\r\n if (!tbl)\r\n return;\r\n var $tr = $el.closest(\".ew-table > tbody > tr\");\r\n $tr.siblings(\"[data-rowindex='\" + $tr.data(\"rowindex\") + \"']\").addBack().each(function(i, r) {\r\n var $r = $(r);\r\n $r.data(\"selected\", $r.data(\"checked\"));\r\n });\r\n}\r\n\r\n// Click single delete link\r\nexport function clickDelete(el) {\r\n var $el = $(el), tbl = $el.closest(\".ew-table\")[0];\r\n if (!tbl)\r\n return;\r\n clearSelected(tbl);\r\n var $tr = $el.closest(\".ew-table > tbody > tr\");\r\n $tr.siblings(\"[data-rowindex='\" + $tr.data(\"rowindex\") + \"']\").addBack().each(function(i, r) {\r\n $(r).data(\"selected\", true);\r\n setColor(i, r);\r\n });\r\n}\r\n\r\n// Click multiple checkbox\r\nexport function clickMultiCheckbox(e) {\r\n var cb = e.target || e.srcElement, $cb = $(cb), tbl = $cb.closest(\".ew-table\")[0];\r\n if (!tbl)\r\n return;\r\n clearSelected(tbl);\r\n var $tr = $cb.closest(\".ew-table > tbody > tr\");\r\n $tr.siblings(\"[data-rowindex='\" + $tr.data(\"rowindex\") + \"']\").addBack().each(function(i, r) {\r\n $(r).data(\"checked\", cb.checked).data(\"selected\", cb.checked).find(\"input[type=checkbox][name='key_m[]']\").each(function() {\r\n if (this != cb) this.checked = cb.checked;\r\n });\r\n setColor(i, r);\r\n });\r\n e.stopPropagation();\r\n}\r\n\r\n// Setup table\r\nexport function setupTable(index, tbl, force) {\r\n var $tbl = $(tbl), $rows = $(tbl.rows);\r\n if (!tbl || !tbl.rows || !force && $tbl.data(\"isset\") || tbl.tBodies.length == 0)\r\n return;\r\n\r\n // Set mouse over color\r\n var mouseOver = function(e) {\r\n var $this = $(this);\r\n if (!$this.data(\"selected\") && ![ew.ROWTYPE_ADD, ew.ROWTYPE_EDIT].includes($this.data(\"rowtype\"))) {\r\n var $tbl = $this.closest(\".ew-table\");\r\n if (!$tbl[0])\r\n return;\r\n $this.siblings(\"[data-rowindex='\" + $this.data(\"rowindex\") + \"']\").addBack().each(function(i, r) {\r\n $(r).addClass($tbl.data(\"rowhighlightclass\") || \"ew-table-highlight-row\");\r\n });\r\n }\r\n }\r\n\r\n // Set mouse out color\r\n var mouseOut = function(e) {\r\n var $this = $(this);\r\n if (!$this.data(\"selected\") && ![ew.ROWTYPE_ADD, ew.ROWTYPE_EDIT].includes($this.data(\"rowtype\")))\r\n $this.siblings(\"[data-rowindex='\" + $this.data(\"rowindex\") + \"']\").addBack().each(setColor);\r\n }\r\n\r\n // Set selected row color\r\n var click = function(e) {\r\n var $this = $(this), tbl = $this.closest(\".ew-table\")[0],\r\n $target = $(e.target);\r\n if (!tbl || $target.hasClass(\"btn\") || $target.hasClass(\"ew-preview-row-btn\") || $target.is(\":input\"))\r\n return;\r\n if (!$this.data(\"checked\")) {\r\n var selected = $this.data(\"selected\");\r\n clearSelected(tbl); // Clear all other selected rows\r\n $this.siblings(\"[data-rowindex='\" + $this.data(\"rowindex\") + \"']\").addBack().each(function(i, r) {\r\n $(r).data(\"selected\", !selected); // Toggle\r\n setColor(i, r);\r\n });\r\n }\r\n }\r\n\r\n var n = $rows.filter(\"[data-rowindex=1]\").length || $rows.filter(\"[data-rowindex=0]\").length || 1; // Alternate color every n rows\r\n var rows = $rows\r\n .filter(\":not(.ew-template)\")\r\n .each(function() {\r\n $(this.cells).removeClass(\"ew-table-last-row\").last().addClass(\"ew-table-last-col\"); // Cell of last column\r\n }).get();\r\n var div = $tbl.parentsUntil(\".ew-grid\", \".\" + ew.RESPONSIVE_TABLE_CLASS)[0];\r\n if (rows.length) {\r\n for (var i = 1; i <= n; i++) {\r\n var r = rows[rows.length - i]; // Last rows\r\n $(r.cells).each(function() {\r\n if (this.rowSpan == i) // Cell of last row\r\n $(this).addClass(\"ew-table-last-row\")\r\n .toggleClass(\"ew-table-border-bottom\", !!div && div.clientHeight > tbl.offsetHeight);\r\n });\r\n }\r\n }\r\n var form = $tbl.closest(\"form\")[0];\r\n var attach = form && $(form.elements).filter(\"input#action:not([value^=grid])\").length > 0;\r\n $(tbl.tBodies[tbl.tBodies.length - 1].rows) // Use last TBODY (avoid Opera bug)\r\n .filter(\":not(.ew-template):not(.ew-table-preview-row)\")\r\n .each(function(i) {\r\n var $r = $(this);\r\n if (attach && !$r.data(\"isset\")) {\r\n if ([ew.ROWTYPE_ADD, ew.ROWTYPE_EDIT].includes($r.data(\"rowtype\"))) // Add/Edit row\r\n $r.on(\"mouseover\", function() {this.edit = true;}).addClass(\"ew-table-edit-row\");\r\n $r.on(\"mouseover\", mouseOver).on(\"mouseout\", mouseOut).on(\"click\", click);\r\n $r.data(\"isset\", true);\r\n }\r\n var sw = i % (2 * n) < n;\r\n $r.toggleClass(\"ew-table-row\", sw).toggleClass(\"ew-table-alt-row\", !sw);\r\n });\r\n setupGrid(index, $tbl.closest(\".ew-grid\")[0], force);\r\n $tbl.data(\"isset\", true);\r\n}\r\n\r\n// Setup grid\r\nexport function setupGrid(index, grid, force) {\r\n var $grid = $(grid);\r\n if (!grid || !force && $grid.data(\"isset\"))\r\n return;\r\n var multi = $grid.find(\"table.ew-multi-column-table\").length, rowcnt;\r\n if (multi) {\r\n rowcnt = $grid.find(\"td[data-rowindex]\").length;\r\n } else {\r\n rowcnt = $grid.find(\"table.ew-table > tbody\").first().children(\"tr:not(.ew-table-preview-row, .ew-template)\").length;\r\n }\r\n if (rowcnt == 0 && !$grid.find(\".ew-grid-upper-panel, .ew-grid-lower-panel\")[0])\r\n $grid.hide();\r\n // if (!$grid.find(\".ew-grid-upper-panel:visible\")[0])\r\n // \t$grid.css({\"border-top-left-radius\": 0, \"border-top-right-radius\": 0});\r\n // if (!$grid.find(\".ew-grid-lower-panel:visible\")[0])\r\n // \t$grid.css({\"border-bottom-left-radius\": 0, \"border-bottom-right-radius\": 0});\r\n if ($grid.find(\".ew-grid-middle-panel:visible\").hasClass(ew.RESPONSIVE_TABLE_CLASS) && $grid.width() > $(\".content\").width()) {\r\n $grid.addClass(\"d-flex\");\r\n $grid.closest(\".ew-detail-pages\").addClass(\"d-block\");\r\n $grid.closest(\".ew-form\").addClass(\"w-100\");\r\n if (ew.USE_OVERLAY_SCROLLBARS)\r\n $grid.find(\".ew-grid-middle-panel:not(.ew-preview-middle-panel)\").overlayScrollbars(ew.overlayScrollbarsOptions);\r\n }\r\n $grid.data(\"isset\", true);\r\n}\r\n\r\n// Add a row to grid\r\nexport function addGridRow(el) {\r\n var $grid = $(el).closest(\".ew-grid\"),\r\n $tbl = $grid.find(\"table.ew-table\").last(), $p = $tbl.parent(\"div\"),\r\n $tpl = $tbl.find(\"tr.ew-template\");\r\n if (!el || !$grid[0] || !$tbl[0] || !$tpl[0])\r\n return false;\r\n var $lastrow = $($tbl[0].rows).last();\r\n $tbl.find(\"td.ew-table-last-row\").removeClass(\"ew-table-last-row\");\r\n var $row = $tpl.clone(true, true).removeClass(\"ew-template\");\r\n var $form = $grid.find(\"div.ew-form[id^=f][id$=grid]\");\r\n if (!$form[0])\r\n $form = $grid.find(\"form.ew-form[id^=f][id$=list]\");\r\n var suffix = ($form.is(\"div\")) ? \"_\" + $form.attr(\"id\") : \"\";\r\n var $elkeycnt = $form.find(\"#key_count\" + suffix);\r\n var keycnt = parseInt($elkeycnt.val(), 10) + 1;\r\n $row.attr({ \"id\": \"r\" + keycnt + $row.attr(\"id\").substring(2), \"data-rowindex\": keycnt });\r\n var $els = $tpl.find(\"script:contains('$rowindex$')\"); // Get scripts with rowindex\r\n $row.children(\"td\").each(function() {\r\n $(this).find(\"*\").each(function() {\r\n $.each(this.attributes, function(i, attr) {\r\n attr.value = attr.value.replace(/\\$rowindex\\$/g, keycnt); // Replace row index\r\n });\r\n });\r\n });\r\n $row.find(\".ew-icon\").closest(\"a, button\").removeData(\"bs.tooltip\").tooltip({ container: \"body\", placement: \"bottom\", trigger: \"hover\", sanitizeFn: ew.sanitizeFn });\r\n $elkeycnt.val(keycnt).after($(\"<input>\").attr({\r\n type: \"hidden\",\r\n id: \"k\" + keycnt + \"_action\" + suffix,\r\n name: \"k\" + keycnt + \"_action\" + suffix,\r\n value: \"insert\"\r\n }));\r\n $lastrow.after($row);\r\n $els.each(function() {\r\n addScript(this.text.replace(/\\$rowindex\\$/g, keycnt));\r\n });\r\n var frm = $form.data(\"form\");\r\n if (frm) {\r\n frm.initEditors();\r\n frm.initUpload();\r\n }\r\n setupTable(-1, $tbl[0], true);\r\n $p.scrollTop($p[0].scrollHeight);\r\n return false;\r\n}\r\n\r\n// Delete a row from grid\r\nexport function deleteGridRow(el, infix) {\r\n var $el = $(el).tooltip(\"hide\").removeData(\"bs.tooltip\"),\r\n $grid = $el.closest(\".ew-grid, .ew-multi-column-grid\"),\r\n $row = $el.closest(\"tr, div[data-rowindex]\"),\r\n $tbl = $row.closest(\".ew-table\");\r\n if (!el || !$grid[0] || !$row[0])\r\n return false;\r\n var rowidx = parseInt($row.data(\"rowindex\"), 10);\r\n var $form = $grid.find(\"div.ew-form[id^=f][id$=grid]\");\r\n if (!$form[0])\r\n $form = $grid.find(\"form.ew-form[id^=f][id$=list]\");\r\n var frm = $form.data(\"form\");\r\n if (!$form[0] || !frm)\r\n return false;\r\n var suffix = ($form.is(\"div\")) ? \"_\" + $form.attr(\"id\") : \"\";\r\n var keycntname = \"#key_count\" + suffix;\r\n var _delete = function() {\r\n $row.remove();\r\n if ($grid.is(\".ew-grid\"))\r\n setupTable(-1, $tbl[0], true);\r\n if (rowidx > 0) {\r\n var $keyact = $form.find(\"#k\" + rowidx + \"_action\" + suffix);\r\n if ($keyact[0]) {\r\n $keyact.val(($keyact.val() == \"insert\") ? \"insertdelete\" : \"delete\");\r\n } else {\r\n $form.find(keycntname).after($(\"<input>\").attr({\r\n type: \"hidden\",\r\n id: \"k\" + rowidx + \"_action\" + suffix,\r\n name: \"k\" + rowidx + \"_action\" + suffix,\r\n value: \"delete\"\r\n }));\r\n }\r\n }\r\n };\r\n if (isFunction(frm.emptyRow) && frm.emptyRow(infix)) { // Empty row\r\n _delete();\r\n } else { // Confirm\r\n _prompt(ew.language.phrase(\"DeleteConfirmMsg\"), (result) => {\r\n if (result)\r\n _delete();\r\n });\r\n }\r\n return false;\r\n}\r\n\r\n// HTML encode text\r\nexport function htmlEncode(text) {\r\n var str = String(text);\r\n return str.replace(/&/g, '&').replace(/\\\"/g, '"').replace(/</g, '<').replace(/>/g, '>');\r\n}\r\n\r\n// Get form element(s) as single element or array of radio/checkbox\r\nexport function getElements(el, root) {\r\n var selector;\r\n if ($.isObject(el) && el.dataset) { // HTML element (e.g. radio/checkbox)\r\n selector = \"[data-table='\" + el.dataset.table + \"'][data-field='\" + el.dataset.field + \"']:not([name^=o]):not([name^='x$'])\";\r\n } else if ($.isString(el)) {\r\n selector = \"[name='\" + el + \"']\";\r\n var ar = el.split(\" \"); // Check if \"#id name\"\r\n if (ar.length == 2)\r\n selector = \"[data-table='\" + ar[0] + \"'][data-field='\" + getId(ar[1]) + \"']:not([name^=o]):not([name^='x$'])\"; // Remove []\r\n }\r\n var root = !$.isString(root) ? root : /^#/.test(root) ? root : \"#\" + root;\r\n selector = \"input\" + selector + \",select\" + selector + \",textarea\" + selector + \",button\" + selector;\r\n var $els = (root) ? $(root).find(selector) : $(selector);\r\n if ($els.length == 1 && $els.is(\":not([type=checkbox]):not([type=radio])\"))\r\n return $els[0];\r\n return $els.get();\r\n}\r\n\r\n// Get first element (not necessarily form element)\r\nexport function getElement(name, root) {\r\n var root = $.isString(root) ? \"#\" + root : root,\r\n selector = \"#\" + name.replace(/([\\$\\[\\]])/g, \"\\\\$1\") + \",[name='\" + name + \"']\";\r\n return (root) ? $(root).find(selector)[0] : $(selector).first()[0];\r\n}\r\n\r\n// Get ancestor by function\r\nexport function getAncestorBy(node, fn) {\r\n while (node = node.parentNode) {\r\n if (node && node.nodeType == 1 && (!fn || fn(node)))\r\n return node;\r\n }\r\n return null;\r\n}\r\n\r\n// Check if an element is hidden\r\nexport function isHidden(el) {\r\n var $el = $(el);\r\n return $el.css(\"display\") == \"none\" && !$el.closest(\".dropdown-menu\")[0] && !isModalLookup(el) && !isAutoSuggest(el) && !isHiddenTextArea(el) ||\r\n getAncestorBy(el, (node) => node.style.display == \"none\" && !node.classList.contains(\"tab-pane\") && !node.classList.contains(\"collapse\")) != null;\r\n}\r\n\r\n// Check if same text\r\nexport function sameText(o1, o2) {\r\n return (String(o1).toLowerCase() == String(o2).toLowerCase());\r\n}\r\n\r\n// Check if same string\r\nexport function sameString(o1, o2) {\r\n return (String(o1) == String(o2));\r\n}\r\n\r\n// Get element value\r\nexport function getValue(el, form) {\r\n if (!el)\r\n return \"\";\r\n let obj;\r\n if ($.isString(el)) {\r\n let ar = el.split(\" \");\r\n if (ar.length == 2) { // Parent field in master table\r\n obj = getElements(el);\r\n } else {\r\n obj = getElements(el, form);\r\n }\r\n } else if (el.type == \"radio\" || el.type == \"checkbox\") { // Single radio/checkbox\r\n obj = getElements(el);\r\n } else {\r\n obj = el;\r\n }\r\n if (obj.options) { // Selection list\r\n if (obj.list) {\r\n let val = obj.values;\r\n return obj.multiple ? val : (val[0] || \"\");\r\n } else {\r\n let val = Array.prototype.filter.call(obj.options, option => option.selected && option.value !== \"\").map(option => option.value);\r\n return (obj.type == \"select-multiple\") ? val : (val[0] || \"\");\r\n }\r\n } else if ($.isNumber(obj.length)) { // Radio/Checkbox list, or element not found\r\n let val = $(obj).filter(\":checked\").map(function() {\r\n return this.value;\r\n }).get();\r\n return (obj.length == 1) ? val[0] : val;\r\n } else if (ew.isHiddenTextArea(obj)) {\r\n $(obj).data(\"editor\").save();\r\n return obj.value;\r\n } else { // text/hidden\r\n let data = $(obj).data();\r\n if (data.lookup && data.multiple) // Modal-Lookup\r\n return obj.value.split(ew.MULTIPLE_OPTION_SEPARATOR);\r\n else\r\n return obj.value;\r\n }\r\n}\r\n\r\n// Get existing selected values as an array\r\nexport function getOptionValues(el, form) {\r\n var obj;\r\n if ($.isString(el)) {\r\n var ar = el.split(\" \");\r\n if (ar.length == 2) { // Parent field in master table\r\n obj = getElements(el);\r\n } else {\r\n obj = getElements(el, form);\r\n }\r\n } else if (el.type == \"radio\" || el.type == \"checkbox\") { // Single radio/checkbox\r\n obj = getElements(el);\r\n } else {\r\n obj = el;\r\n }\r\n if (obj.options) { // Selection list\r\n if (obj.list)\r\n return obj.values;\r\n else\r\n return Array.prototype.filter.call(obj.options, option => option.selected && option.value !== \"\").map(option => option.value);\r\n } else if ($.isNumber(obj.length)) { // Radio/Checkbox list, or element not found\r\n return $(obj).filter(\":checked\").map(function() {\r\n return this.value;\r\n }).get();\r\n } else if (ew.isHiddenTextArea(obj)) {\r\n $(obj).data(\"editor\").save();\r\n return [obj.value];\r\n } else { // text/hidden\r\n var data = $(obj).data();\r\n if (data.lookup && data.multiple) // Modal-Lookup\r\n return obj.value.split(ew.MULTIPLE_OPTION_SEPARATOR);\r\n else\r\n return [obj.value];\r\n }\r\n}\r\n\r\n// Get existing text of selected values as an array\r\nexport function getOptionTexts(el, form) {\r\n var obj;\r\n if ($.isString(el)) {\r\n var ar = el.split(\" \");\r\n if (ar.length == 2) { // Parent field in master table\r\n obj = getElements(el);\r\n } else {\r\n obj = getElements(el, form);\r\n }\r\n } else {\r\n obj = el;\r\n }\r\n if (isAutoSuggest(obj)) { // AutoSuggest (before obj.options)\r\n return [obj.input.value];\r\n } else if (isModalLookup(obj)) { // Modal-Lookup (before obj.options)\r\n var $obj = $(obj);\r\n return $obj.parent().find(\".ew-lookup-text .ew-option\").map(function() {\r\n return $(this).text().trim();\r\n }).get();\r\n } else if (obj.options) { // Selection list\r\n return Array.prototype.filter.call(obj.options, option => option.selected && option.value !== \"\").map(option => option.text);\r\n } else if ($.isNumber(obj.length)) { // Radio/Checkbox list, or element not found\r\n return $(obj).filter(\":checked\").map(function() {\r\n return $(this).parent().text();\r\n }).get();\r\n } else if (ew.isHiddenTextArea(obj)) {\r\n $(obj).data(\"editor\").save();\r\n return [obj.value];\r\n } else {\r\n return [obj.value];\r\n }\r\n}\r\n\r\n// Clear existing options\r\nexport function clearOptions(obj) {\r\n if (obj.options) { // Selection list\r\n var lo = (obj.type == \"select-multiple\" || // multiple\r\n obj.hasAttribute(\"data-dropdown\") || // dropdown\r\n convertToBool(obj.getAttribute(\"data-pleaseselect\")) === false || // data-pleaseselect=\"false\"\r\n obj.length > 0 && obj.options[0].value != \"\") // non-empty first element\r\n ? 0 : 1;\r\n if (obj.list) {\r\n obj.removeAll();\r\n } else {\r\n for (var i = obj.length - 1; i >= lo; i--)\r\n obj.remove(i);\r\n }\r\n if (isAutoSuggest(obj)) {\r\n obj.input.value = \"\";\r\n obj.value = \"\";\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Get the name or id of an element\r\n *\r\n * @param {*} el - Element\r\n * @param {boolean} [remove=true] - Remove square brackets\r\n * @returns\r\n */\r\nexport function getId(el, remove) {\r\n var id = ($.isString(el)) ? el : ($(el).attr(\"name\") || $(el).attr(\"id\")); // Use name first (id may have suffix)\r\n return (remove !== false) ? id.replace(/\\[\\]$/, \"\") : id;\r\n}\r\n\r\n// Get display value separator\r\nexport function valueSeparator(index, obj) {\r\n var sep = $(obj).data(\"value-separator\");\r\n return (Array.isArray(sep)) ? sep[index - 1] : (sep || \", \");\r\n}\r\n\r\n/**\r\n * Get display value\r\n *\r\n * @param {Object} opt - Option being displayed\r\n * @param {HTMLElment} obj - HTML element\r\n * @returns {string} Display value\r\n */\r\nexport function displayValue(opt, obj) {\r\n var text = opt.df;\r\n for (var i = 2; i <= 4; i++) {\r\n if (opt[\"df\" + i] && opt[\"df\" + i] != \"\") {\r\n var sep = valueSeparator(i - 1, obj);\r\n if ($.isUndefined(sep))\r\n break;\r\n if ($.isValue(text))\r\n text += sep;\r\n text += opt[\"df\" + i];\r\n }\r\n }\r\n return text;\r\n}\r\n\r\n/**\r\n * Get HTML for a single option\r\n *\r\n * @param {*} val - Value of the option\r\n * @returns {string} HTML\r\n */\r\nexport function optionHtml(val) {\r\n return ew.OPTION_HTML_TEMPLATE.replace(/\\{value\\}/g, val);\r\n}\r\n\r\n/**\r\n * Get HTML for diplaying all options\r\n *\r\n * @param {string[]} options - Array of all options (HTML)\r\n * @param {number} max - Maximum number of options to show\r\n * @returns {string} HTML\r\n */\r\nexport function optionsHtml(options, max) {\r\n if (options.length > (max || ew.MAX_OPTION_COUNT)) { // More than max option count\r\n return ew.language.phrase(\"CountSelected\").replace(\"%s\", options.length);\r\n } else if (options.length) { // Some options\r\n var html = \"\";\r\n for (var i = 0; i < options.length; i++)\r\n html += optionHtml(options[i]);\r\n return html;\r\n } else { // No options\r\n return ew.language.phrase(\"PleaseSelect\");\r\n }\r\n}\r\n\r\n/**\r\n * Create new option\r\n *\r\n * @param {(HTMLElement|array)} obj - Selection list\r\n * @param {Object} opt - Object for the new option\r\n * @param {form} f - form object of obj\r\n * @returns\r\n */\r\nexport function newOption(obj, opt, f) {\r\n var frm = forms.get(f.id),\r\n id = getId(obj),\r\n list = frm.getList(id),\r\n value = opt.lf,\r\n item = { lf: opt.lf, df1: opt.df, df2: opt.df2, df3: opt.df3, df4: opt.df4 },\r\n text;\r\n if (list.template && !isAutoSuggest(obj)) {\r\n text = list.template.render(item, ew.jsRenderHelpers);\r\n } else {\r\n text = displayValue(opt, obj) || value;\r\n }\r\n var args = { \"data\": item, \"name\": id, \"form\": f.$element, \"value\": value, \"text\": text };\r\n if (obj.options) { // Selection list\r\n let option;\r\n if (obj.list) {\r\n option = new SelectionListOption(args.value, args.text);\r\n } else {\r\n option = document.createElement(\"option\");\r\n option.value = args.value;\r\n option.innerHTML = args.text;\r\n }\r\n args = { ...args, option };\r\n $document.trigger(\"newoption\", [args]); // Fire \"newoption\" event for selection list\r\n if (obj.list) {\r\n obj.add(args.option.value, args.option.text);\r\n } else {\r\n obj.add(args.option);\r\n }\r\n }\r\n return args.text;\r\n}\r\n\r\n// Select combobox option\r\nexport function selectOption(obj, values) {\r\n if (!obj || !values)\r\n return;\r\n var $obj = $(obj);\r\n if (Array.isArray(values)) {\r\n if (obj.options) { // Selection list\r\n if (obj.list) {\r\n obj.value = values;\r\n } else {\r\n $obj.val(values);\r\n if (obj.type == \"select-one\" && obj.selectedIndex == -1)\r\n obj.selectedIndex = 0; // Make sure an option is selected (IE)\r\n }\r\n if (isAutoSuggest(obj) && values.length == 1) {\r\n let opts = obj.options || [];\r\n for (let opt of opts) {\r\n if (opt.value == values[0]) {\r\n obj.value = opt.value;\r\n obj.input.value = opt.text;\r\n break;\r\n }\r\n }\r\n } else if (isModalLookup(obj)) {\r\n let vals = [],\r\n html = [],\r\n opts = obj.options || [];\r\n for (let value of values) {\r\n for (let opt of opts) {\r\n if (value == opt.value) {\r\n vals.push(opt.value);\r\n html.push(optionHtml(opt.text));\r\n break;\r\n }\r\n }\r\n }\r\n $obj.val(vals.join(ew.MULTIPLE_OPTION_SEPARATOR));\r\n $obj.parent().find(\".ew-lookup-text\").html(optionsHtml(html, $obj.data(\"maxcount\")));\r\n }\r\n } else if (obj.type) {\r\n obj.value = values.join(ew.MULTIPLE_OPTION_SEPARATOR);\r\n }\r\n }\r\n // Auto-select if only one option\r\n function isAutoSelect(el) {\r\n if (!$(el).data(\"autoselect\")) // data-autoselect=\"false\"\r\n return false;\r\n var form = getForm(el);\r\n if (form) {\r\n if (/s(ea)?rch$/.test(form.id)) // Search forms\r\n return false;\r\n var list = forms.get(form.id).getList(el.id);\r\n if (list && list.parentFields.length == 0) // No parent fields\r\n return false;\r\n return true;\r\n }\r\n return false;\r\n }\r\n if (!isAutoSelect(obj))\r\n return;\r\n if (obj.options) { // Selection List\r\n if (!obj.list && obj.type == \"select-one\" && obj.options.length == 2 && !obj.options[1].selected) {\r\n obj.options[1].selected = true;\r\n } else if (obj.options.length == 1 && !obj.options[0].selected) {\r\n obj.options[0].selected = true;\r\n }\r\n if (obj.list)\r\n obj.render();\r\n if (isAutoSuggest(obj)) {\r\n let opts = obj.options || [];\r\n if (opts.length == 1) {\r\n obj.value = opts[0].value;\r\n obj.input.value = opts[0].text;\r\n }\r\n }\r\n }\r\n}\r\n\r\n// Ajax send\r\n$document.ajaxSend(function(event, jqxhr, settings) {\r\n var url = settings.url;\r\n if (url.match(/\\/(\\w+preview|session)\\?/i)) // Preview/Session page\r\n _removeSpinner(); // Preview has spinner already\r\n var apiUrl = getApiUrl(),\r\n isApi = url.startsWith(apiUrl), // Is API request\r\n allowed = isApi || url.startsWith(currentPage());\r\n if (!allowed && url.match(/^http/i)) {\r\n var objUrl = new URL(url);\r\n allowed = objUrl.hostname == currentUrl.hostname; // Same host name\r\n }\r\n if (allowed) {\r\n if (isApi && ew.API_JWT_TOKEN && !ew.IS_WINDOWS_AUTHENTICATION) // Do NOT set JWT authorization header if Windows Authentication\r\n jqxhr.setRequestHeader(ew.API_JWT_AUTHORIZATION_HEADER, \"Bearer \" + ew.API_JWT_TOKEN);\r\n if (settings.type == \"GET\") { // GET\r\n var ar = settings.url.split(\"?\"), params = new URLSearchParams(ar[1]);\r\n params.set(ew.TOKEN_NAME_KEY, ew.TOKEN_NAME); // Add token name // PHP\r\n params.set(ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN); // Add antiforgery token // PHP\r\n ar[1] = params.toString();\r\n settings.url = ar[0] + (ar[1] ? \"?\" + ar[1] : \"\");\r\n } else { // POST\r\n if (settings.data instanceof FormData) { // FormData\r\n settings.data.set(ew.TOKEN_NAME_KEY, ew.TOKEN_NAME); // Add token name // PHP\r\n settings.data.set(ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN); // Add antiforgery token // PHP\r\n } else {\r\n var params = new URLSearchParams(settings.data);\r\n params.set(ew.TOKEN_NAME_KEY, ew.TOKEN_NAME); // Add token name // PHP\r\n params.set(ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN); // Add antiforgery token // PHP\r\n settings.data = params.toString();\r\n }\r\n }\r\n }\r\n});\r\n\r\n// Ajax start\r\n$document.ajaxStart(function() {\r\n $document.data(\"_ajax\", true);\r\n ew.addSpinner();\r\n $(\"form.ew-form\").addClass(\"ew-wait\").each(function() {\r\n var frm = forms.get(this.id);\r\n if (frm) {\r\n if (!frm.multiPage || !frm.multiPage.lastPageSubmit)\r\n frm.disableForm();\r\n }\r\n });\r\n});\r\n\r\n// Ajax stop (internal)\r\nfunction _ajaxStop() {\r\n $(\"form.ew-form.ew-wait\").removeClass(\"ew-wait\").each(function() {\r\n var frm = forms.get(this.id);\r\n if (frm) {\r\n if (!frm.multiPage || !frm.multiPage.lastPageSubmit) {\r\n frm.enableForm();\r\n }\r\n }\r\n });\r\n ew.removeSpinner();\r\n $document.data(\"_ajax\", false);\r\n}\r\n\r\n// Ajax stop/error\r\n$document.ajaxStop(_ajaxStop).ajaxError(_ajaxStop);\r\n\r\n// Execute JavaScript in HTML loaded by Ajax\r\nexport function executeScript(html, id) {\r\n let matches = html.replace(/<head>[\\s\\S]*<\\/head>/, \"\").matchAll(/<script([^>]*)>([\\s\\S]*?)<\\/script\\s*>/ig);\r\n Array.from(matches).forEach((ar, i) => {\r\n let text = ar[2];\r\n if (/(\\s+type\\s*=\\s*['\"]*text\\/javascript['\"]*)|^((?!\\s+type\\s*=).)*$/i.test(ar[1]) && text)\r\n addScript(text, \"scr_\" + id + \"_\" + i++);\r\n });\r\n}\r\n\r\n// Strip JavaScript in HTML loaded by Ajax\r\nexport function stripScript(html) {\r\n let matches = html.matchAll(/<script([^>]*)>([\\s\\S]*?)<\\/script\\s*>/ig);\r\n for (let ar of matches) {\r\n let text = ar[0];\r\n if (/(\\s+type\\s*=\\s*['\"]*text\\/javascript['\"]*)|^((?!\\s+type\\s*=).)*$/i.test(ar[1]))\r\n html = html.replace(text, \"\");\r\n }\r\n return html;\r\n}\r\n\r\n// Add SCRIPT tag\r\nexport function addScript(text, id) {\r\n var scr = document.createElement(\"SCRIPT\");\r\n if (id)\r\n scr.id = id;\r\n scr.text = text;\r\n return document.body.appendChild(scr); // Do not use jQuery so it can be removed\r\n}\r\n\r\n// Remove JavaScript added by Ajax\r\nexport function removeScript(id) {\r\n if (id)\r\n $(\"script[id^='scr_\" + id + \"_']\").remove();\r\n}\r\n\r\n// Clean HTML loaded by Ajax for modal dialog\r\nexport function getContent(html) {\r\n let body = stripScript(html).match(/<body[\\s\\S]*>[\\s\\S]*<\\/body>/i);\r\n return body ? $(body[0]).not(\"div[id^=ew].modal, #ew-tooltip, #ew-drilldown-panel, #cookie-consent, #template-upload, #template-download\") : $();\r\n}\r\n\r\n// Get all options of Selection list or Radio/Checkbox list as array\r\nexport function getOptions(obj) {\r\n return obj.options ? Array.prototype.map.call(obj.options, (opt) => [opt.value, opt.text]) : [];\r\n}\r\n\r\n/**\r\n * Show Add Option dialog\r\n *\r\n * @param {Object} args - Arguments\r\n * @param {Object} args.frm - form object\r\n * @param {HTMLElement} args.lnk - Add option anchor element\r\n * @param {string} args.el - Form element name\r\n * @param {string} args.url - URL of the Add form\r\n * @returns\r\n */\r\nexport function addOptionDialogShow(args) {\r\n\r\n // Hide dialog\r\n var _hide = function() {\r\n removeScript($dlg.data(\"args\").el);\r\n var frm = $dlg.removeData(\"args\").find(\".modal-body form\").data(\"form\");\r\n if (frm)\r\n frm.destroyEditor();\r\n $dlg.find(\".modal-body\").html(\"\");\r\n $dlg.find(\".modal-footer .btn-primary\").off();\r\n $dlg.data(\"showing\", false);\r\n }\r\n\r\n var $dlg = ew.addOptionDialog || $(\"#ew-add-opt-dialog\").on(\"hidden.bs.modal\", _hide);\r\n if (!$dlg[0]) {\r\n _alert(\"DIV #ew-add-opt-dialog not found.\");\r\n return;\r\n }\r\n if ($dlg.data(\"showing\"))\r\n return;\r\n $dlg.data(\"showing\", true);\r\n\r\n // Submission success\r\n var _submitSuccess = function(data) {\r\n var results = data,\r\n args = $dlg.data(\"args\"),\r\n frm = forms.get(args.lnk), // form object\r\n objName = $dlg.find(\".modal-body form input[name='\" + ew.API_OBJECT_NAME + \"']\").val(), // Get object name from form\r\n el = args.el, // HTML element name\r\n re = /^x(\\d+)_/,\r\n m = el.match(re), // Check row index\r\n prefix = m ? m[0] : \"x_\",\r\n index = m ? m[1] : -1,\r\n name = el.replace(re, \"x_\"),\r\n list = frm.getList(el);\r\n if ($.isString(data))\r\n results = parseJson(data);\r\n if (results?.success && results[objName]) { // Success\r\n $dlg.modal(\"hide\");\r\n var result = results[objName],\r\n form = frm.$element[0], // HTML form or DIV\r\n obj = getElements(el, form);\r\n if (obj) {\r\n var lf = list.linkField,\r\n dfs = list.displayFields.slice(), // Clone\r\n ffs = list.filterFields.slice(), // Clone\r\n pfs = list.parentFields.slice(); // Clone\r\n pfs.forEach((pf, i) => {\r\n if (pf.split(\" \").length == 1) // Parent field in the same table, add row index\r\n pfs[i] = pfs[i].replace(/^x_/, prefix);\r\n });\r\n var lfv = (lf != \"\") ? result[lf] : \"\",\r\n row = { lf: lfv };\r\n dfs.forEach((df, i) => {\r\n if (df in result)\r\n row[\"df\" + (i || \"\")] = result[df];\r\n });\r\n ffs.forEach((ff, i) => {\r\n if (ff in result)\r\n row[\"ff\" + (i || \"\")] = result[ff];\r\n });\r\n if (lfv && dfs.length > 0 && row[\"df\"]) {\r\n if (list.ajax === null) // Non-Ajax\r\n list.lookupOptions.push(row);\r\n var arp = pfs.map(pf => getOptionValues(pf, form)), // Get the parent field values\r\n args = {\"data\": row, \"parents\": arp, \"valid\": true, \"name\": getId(obj), \"form\": form};\r\n $document.trigger(\"addoption\", [args]);\r\n if (args.valid) { // Add the new option\r\n var ar = getOptions(obj),\r\n vals = [];\r\n var txt = newOption(obj, row, form);\r\n if (obj.options) {\r\n obj.options[obj.options.length - 1].selected = true;\r\n if (obj.list) { // Radio/Checkbox list\r\n obj.render();\r\n $(obj.target).find(\"input\").last().trigger(\"focus\");\r\n }\r\n if (isAutoSuggest(obj)) {\r\n $(obj).val(lfv).trigger(\"change\");\r\n $(obj.input).val(txt).trigger(\"focus\");\r\n } else if (isModalLookup(obj)) {\r\n var $obj = $(obj), $lu = $(getElement(\"lu_\" + args.name, form));\r\n if (obj.multiple) { // Add to existing values\r\n var val = $(obj).val(), vals = [], nv = String(lfv);\r\n if (val !== \"\")\r\n vals = val.split(ew.MULTIPLE_OPTION_SEPARATOR);\r\n if (!vals.includes(nv)) {\r\n vals.push(nv);\r\n $obj.val(vals.join()).trigger(\"change\");\r\n var html = $lu.html(), arOpt = $lu.find(\".ew-option\").map(function() {\r\n return $(this).html();\r\n }).get();\r\n if (arOpt.length) { // Some options selected\r\n arOpt.push(txt);\r\n $lu.html(optionsHtml(arOpt, $obj.data(\"maxcount\")));\r\n } else if (html == ew.language.phrase(\"PleaseSelect\")) { // No options selected\r\n $lu.html(optionHtml(txt));\r\n } else if (html) { // Many options selected\r\n $lu.html(ew.language.phrase(\"CountSelected\").replace(\"%s\", vals.length));\r\n }\r\n }\r\n } else {\r\n $obj.val(lfv).trigger(\"change\");\r\n $lu.html(txt);\r\n }\r\n } else {\r\n $(obj).trigger(\"change\").trigger(\"focus\");\r\n }\r\n }\r\n var $form = $(form), suffix = ($form.is(\"div\")) ? \"_\" + $form.attr(\"id\") : \"\";\r\n var cnt = $form.find(\"#key_count\" + suffix).val();\r\n if (cnt > 0) { // Grid-Add/Edit, update other rows\r\n for (var i = 1; i <= cnt; i++) {\r\n if (i == index)\r\n continue;\r\n var obj2 = getElements(name.replace(/^x/, \"x\" + i), form);\r\n var ar2 = getOptions(obj2), vals = [];\r\n if (JSON.stringify(ar) != JSON.stringify(ar2)) // Not same options\r\n continue;\r\n newOption(obj2, row, form);\r\n if (obj2.options && obj.list) // Radio/Checkbox list\r\n obj2.render();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n } else { // Failure\r\n if (results?.error) {\r\n if ($.isString(results.error))\r\n showToast(results.error);\r\n else if ($.isString(results.error?.description))\r\n showToast(results.error.description);\r\n } else {\r\n var msg,\r\n $div = $(\"<div></div>\").html(data).find(\"div.ew-message-dialog\");\r\n if ($div[0]) {\r\n msg = $div.html();\r\n } else {\r\n msg = results?.failureMessage || data;\r\n if (!msg || String(msg).trim() == \"\")\r\n msg = ew.language.phrase(\"InsertFailed\");\r\n }\r\n showToast(msg);\r\n }\r\n }\r\n }\r\n\r\n // Fail\r\n var _fail = function(o) {\r\n $dlg.modal(\"hide\");\r\n _alert(\"Server Error \" + o.status + \": \" + o.statusText);\r\n }\r\n\r\n // Submit\r\n var _submit = function(e) {\r\n let $dlg = ew.addOptionDialog,\r\n form = $dlg.find(\".modal-body form\")[0],\r\n frm = forms.get(form.id),\r\n btn = e ? e.target : null,\r\n $btn = $(btn);\r\n if (frm.canSubmit()) {\r\n $btn.prop(\"disabled\", false).removeClass(\"disabled\");\r\n $body.css(\"cursor\", \"wait\");\r\n $.post(getApiUrl([ew.API_ADD_ACTION, form.elements[ew.API_OBJECT_NAME].value]), $(form).serialize(), _submitSuccess).fail(_fail).always(function() {\r\n frm.enableForm();\r\n $btn.prop(\"disabled\", false).removeClass(\"disabled\");\r\n $body.css(\"cursor\", \"default\");\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n $dlg.modal(\"hide\");\r\n $dlg.data(\"args\", args);\r\n\r\n // Get form HTML\r\n var success = function(data) {\r\n var frm = forms.get(args.lnk),\r\n prefix = \"x_\",\r\n m = args.el.match(/^(x\\d+_)/);\r\n if (m) // Contains row index\r\n prefix = m[1];\r\n var list = frm.getList(args.el),\r\n pfs = list.parentFields.slice() // Clone\r\n .map(pf => (pf.split(\" \").length == 1) ? pf.replace(/^x_/, prefix) : pf), // Parent field in the same table, add row index\r\n form = frm.htmlForm,\r\n ar = pfs.map(pf => getOptionValues(pf, form)),\r\n ar2 = pfs.map(pf => getOptionTexts(pf, form)),\r\n ffs = list.filterFieldVars.slice(); // Clone\r\n $dlg.find(\".modal-title\").html($(args.lnk).closest(\".ew-add-opt-btn\").data(\"title\"));\r\n $dlg.find(\".modal-body\").html(stripScript(data));\r\n var form = $dlg.find(\".modal-body form\")[0];\r\n if (form) { // Set the filter field value\r\n $(form).on(\"keydown\", function(e) {\r\n if (e.key == \"Enter\" && e.target.nodeName != \"TEXTAREA\")\r\n return _submit();\r\n });\r\n ar.forEach((v, i) => {\r\n (function() {\r\n var obj = getElements(ffs[i], form);\r\n if (obj) {\r\n if (obj.options || obj.length) { // Selection list\r\n $(obj).first().one(\"updated\", () => selectOption(obj, v));\r\n } else {\r\n selectOption(obj, v);\r\n }\r\n }\r\n })();\r\n });\r\n }\r\n ew.addOptionDialog = $dlg.modal(\"show\");\r\n $dlg.find(\".modal-footer .btn-primary\").click(_submit).focus();\r\n executeScript(data, args.el);\r\n if (form) { // Set the filter field value\r\n ar.forEach((v, i) => {\r\n var obj = getElements(ffs[i], form);\r\n if (obj) {\r\n if (isAutoSuggest(obj)) { // AutoSuggest\r\n obj.value = v[0];\r\n obj.input.value = ar2[i][0];\r\n obj.add(v[0], ar2[i][0], true);\r\n } else if (isModalLookup(obj)) { // Modal-Lookup\r\n obj.value = v[0];\r\n updateOptions.call(forms.get(form.id), obj);\r\n } else if (obj.options || obj.length) { // Selection list\r\n // Skip\r\n } else { // Text\r\n obj.value = v[0];\r\n }\r\n }\r\n });\r\n }\r\n $dlg.trigger(\"load.ew\");\r\n };\r\n $.get(args.url, success).fail(_fail);\r\n}\r\n\r\n// Hide Modal dialog\r\nexport function modalDialogHide(e) {\r\n var $dlg = $(this), args = $dlg.data(\"args\");\r\n removeScript(\"ModalDialog\");\r\n var frm = $dlg.removeData(\"args\").find(\".modal-body form\").data(\"form\");\r\n if (frm)\r\n frm.destroyEditor();\r\n var $bd = $dlg.find(\".modal-body\").html(\"\");\r\n if ($bd.ewjtable && $bd.ewjtable(\"instance\"))\r\n $bd.ewjtable(\"destroy\");\r\n $dlg.find(\".modal-footer .btn-primary\").off();\r\n $dlg.find(\".modal-dialog\").removeClass(function(index, className) {\r\n var m = className.match(/table\\-\\w+/);\r\n return (m) ? m[0] : \"\";\r\n });\r\n $dlg.data(\"showing\", false);\r\n $dlg.data(\"url\", null);\r\n if (args && args.reload)\r\n window.location.reload();\r\n}\r\n\r\n/**\r\n * Show modal dialog\r\n *\r\n * @param {Object} args - Arguments\r\n * @param {HTMLFormElement} args.f - Form of List page\r\n * @param {HTMLElement} args.lnk - Anchor element\r\n * @param {string} args.url - URL of the form\r\n * @param {string|null} args.btn - Button phrase ID\r\n * @param {string} args.caption - Caption in dialog header\r\n * @param {boolean} args.reload - Reload page after hiding dialog or not\r\n * @param {string} args.size - Size of the dialog 'modal-sm'|''|modal-lg'|'modal-xl'(default)\r\n * @returns false\r\n */\r\nexport function modalDialogShow(args) {\r\n $(args.lnk).tooltip(\"hide\");\r\n var f = args.f;\r\n if (f && !keySelected(f)) {\r\n _prompt(\"<p class=\\\"text-danger\\\">\" + ew.language.phrase(\"NoRecordSelected\") + \"</p>\");\r\n return false;\r\n }\r\n\r\n var $dlg = ew.modalDialog || $(\"#ew-modal-dialog\").on(\"hidden.bs.modal\", modalDialogHide); // div#ew-modal-dialog always exists\r\n if ($dlg.data(\"showing\") && $dlg.data(\"url\") == args.url)\r\n return false;\r\n $dlg.data({ showing: true, url: args.url });\r\n args.reload = false;\r\n\r\n // size\r\n if (args.size === \"modal-sm\") { // 300px\r\n $dlg.find(\".modal-dialog\").toggleClass(\"modal-sm\", true).toggleClass(\"modal-lg modal-xl\", false);\r\n } else if (args.size === \"\") { // 500px\r\n $dlg.find(\".modal-dialog\").toggleClass(\"modal-sm modal-lg modal-xl\", false);\r\n } else if (args.size === \"modal-lg\") { // 800px\r\n $dlg.find(\".modal-dialog\").toggleClass(\"modal-lg\", true).toggleClass(\"modal-sm modal-xl\", false);\r\n } else { // Default = 1140px\r\n $dlg.find(\".modal-dialog\").toggleClass(\"modal-xl\", true).toggleClass(\"modal-sm modal-lg\", false);\r\n }\r\n\r\n // caption\r\n var _caption = function() {\r\n var args = $dlg.data(\"args\");\r\n var $lnk = $(args.lnk);\r\n return args.caption || $lnk.data(\"caption\") || $lnk.data(\"original-title\") || \"\";\r\n };\r\n\r\n // button text\r\n var _button = function() {\r\n var args = $dlg.data(\"args\");\r\n if ($.isNull(args.btn))\r\n return \"\";\r\n else if (args.btn && args.btn != \"\")\r\n return ew.language.phrase(args.btn);\r\n else\r\n return _caption();\r\n };\r\n\r\n // fail\r\n var _fail = function(o) {\r\n $dlg.modal(\"hide\");\r\n if (o.status)\r\n _alert(\"Server Error \" + o.status + \": \" + o.statusText);\r\n }\r\n\r\n // always\r\n var _always = function(o) {\r\n $body.css(\"cursor\", \"default\");\r\n }\r\n\r\n // check if current page\r\n var _current = function(url) {\r\n var a = $(\"<a>\", { href: url })[0];\r\n return window.location.pathname.endsWith(a.pathname);\r\n }\r\n\r\n /**\r\n * handle result\r\n *\r\n * @param {Object} result - Result object\r\n * @param {string|Object} result.error - Error message or object\r\n * @param {string} result.error.message - Error message\r\n * @param {string} result.error.description - Error message\r\n * @param {string} result.failureMessage - Failure message\r\n * @param {string} result.successMessage - Success message\r\n * @param {string} result.warningMessage - Warning message\r\n * @param {string} result.message - Message\r\n * @param {string} result.url - Redirection URL\r\n * @param {string} result.modal - Redirect to result.url in current modal dialog\r\n * @param {boolean} result.view - result.url is View page => No primary button\r\n * @param {string} result.caption - Caption of modal dialog for result.url\r\n * @param {boolean} result.reload - Reload current page\r\n */\r\n var handleResult = function(result) {\r\n var cb = null,\r\n url = result.url,\r\n reload = result.reload;\r\n if (url || reload) {\r\n cb = function() {\r\n if (url) {\r\n if (result.modal && !_current(url)) {\r\n var args = $dlg.data(\"args\");\r\n args.reload = true;\r\n if (result.caption)\r\n args.caption = result.caption;\r\n args.btn = result.view ? null : \"\";\r\n $dlg.data(\"args\", args);\r\n url += (url.split(\"?\").length > 1 ? \"&\" : \"?\") + \"modal=1&rnd=\" + random();\r\n $body.css(\"cursor\", \"wait\");\r\n $.get(url).done(success).fail(_fail).always(_always);\r\n } else {\r\n $dlg.modal(\"hide\");\r\n window.location = sanitizeUrl(url);\r\n }\r\n } else if (reload) {\r\n $dlg.modal(\"hide\");\r\n window.location.reload();\r\n }\r\n };\r\n }\r\n if ($.isString(result.failureMessage)) {\r\n _alert(result.failureMessage);\r\n } else if ($.isString(result.warningMessage)) {\r\n _alert(result.warningMessage, cb, \"warning\");\r\n } else if ($.isString(result.message)) {\r\n _alert(result.message, cb, \"body\");\r\n } else if ($.isString(result.successMessage)) {\r\n _alert(result.successMessage, cb, \"success\");\r\n } else if (result.error) {\r\n if ($.isString(result.error))\r\n _alert(result.error);\r\n else if ($.isString(result.error?.message))\r\n _alert(result.error.message);\r\n else if ($.isString(result.error?.description))\r\n _alert(result.error.description);\r\n } else if (cb) {\r\n cb();\r\n }\r\n }\r\n\r\n // submit success\r\n var _submitSuccess = function(data) {\r\n var result = parseJson(data);\r\n if ($.isObject(result)) {\r\n handleResult(result);\r\n } else {\r\n var body = getContent(data);\r\n if (body.length) { // Has HTML elements\r\n var $bd = $dlg.find(\".modal-body\").html(body);\r\n var footer = \"\";\r\n var cf = $bd.find(\"#confirm\");\r\n var ct = $bd.find(\"#conflict\");\r\n if (ct && ct.val() == \"1\") { // Conflict page\r\n footer += \"<button type=\\\"button\\\" id=\\\"btn-overwrite\\\" class=\\\"btn btn-primary ew-btn\\\">\" + ew.language.phrase(\"OverwriteBtn\") + \"</button>\";\r\n footer += \"<button type=\\\"button\\\" id=\\\"btn-reload\\\" class=\\\"btn btn-default ew-btn\\\">\" + ew.language.phrase(\"ReloadBtn\") + \"</button>\";\r\n footer += \"<button type=\\\"button\\\" class=\\\"btn btn-default ew-btn\\\" data-dismiss=\\\"modal\\\">\" + ew.language.phrase(\"CancelBtn\") + \"</button>\";\r\n $dlg.find(\".modal-footer\").html(footer);\r\n $dlg.find(\".modal-footer #btn-overwrite\").on('click', {action: 'overwrite'}, _submit);\r\n $dlg.find(\".modal-footer #btn-reload\").on('click', {action: 'show'}, _submit);\r\n } else if (cf && cf.val() == \"confirm\") { // Confirm page\r\n footer += \"<button type=\\\"button\\\" class=\\\"btn btn-primary ew-btn\\\">\" + ew.language.phrase(\"ConfirmBtn\") + \"</button>\";\r\n footer += \"<button type=\\\"button\\\" class=\\\"btn btn-default ew-btn\\\">\" + ew.language.phrase(\"CancelBtn\") + \"</button>\";\r\n $dlg.find(\".modal-footer\").html(footer);\r\n $dlg.find(\".modal-footer .btn-primary\").click(_submit).focus();\r\n $dlg.find(\".modal-footer .btn-default\").on(\"click\", {action: \"cancel\"}, _submit);\r\n } else { // Normal page\r\n var btn = _button();\r\n if (btn)\r\n footer += \"<button type=\\\"button\\\" class=\\\"btn btn-primary ew-btn\\\">\" + btn + \"</button>\";\r\n footer += \"<button type=\\\"button\\\" class=\\\"btn btn-default ew-btn\\\" data-dismiss=\\\"modal\\\">\" + ew.language.phrase(\"CancelBtn\") + \"</button>\";\r\n $dlg.find(\".modal-footer\").html(footer);\r\n $dlg.find(\".modal-footer .btn-primary\").addClass(\"ew-submit\").click(_submit).focus();\r\n }\r\n executeScript(data, \"ModalDialog\");\r\n $dlg.trigger(\"load.ew\"); // Trigger load event for, e.g. Use JavaScript popup message\r\n } else if (data) {\r\n $dlg.modal(\"hide\");\r\n ew.alert(data);\r\n }\r\n }\r\n }\r\n\r\n // submit\r\n var _submit = function(e) {\r\n var form = $dlg.find(\".modal-body form\")[0],\r\n $form = $(form),\r\n frm = forms.get(form.id),\r\n action = e && e.data ? e.data.action : null,\r\n btn = e ? e.target : null;\r\n if (btn) {\r\n if (btn.classList.contains(\"disabled\"))\r\n return false;\r\n frm.enableForm = function() {\r\n $(btn).prop(\"disabled\", false).removeClass(\"disabled\");\r\n };\r\n frm.disableForm = function() {\r\n $(btn).prop(\"disabled\", true).addClass(\"disabled\");\r\n };\r\n }\r\n var input = form.elements[\"action\"];\r\n if (action && input)\r\n input.value = action; // Update action\r\n if (action == \"cancel\") { // Cancel\r\n $.post($form.attr(\"action\"), $form.serialize(), success).fail(_fail).always(_always);\r\n } else if (frm.canSubmit()) {\r\n $body.css(\"cursor\", \"wait\");\r\n $.post($form.attr(\"action\"), $form.serialize(), _submitSuccess).fail(_fail).always(function() {\r\n frm.enableForm();\r\n _always();\r\n });\r\n }\r\n return false;\r\n }\r\n\r\n $dlg.modal(\"hide\");\r\n $dlg.data(\"args\", args);\r\n\r\n var success = function(data) {\r\n var result = parseJson(data);\r\n if ($.isObject(result)) {\r\n handleResult(result);\r\n } else {\r\n var args = $dlg.data(\"args\");\r\n var $lnk = $(args.lnk);\r\n $dlg.find(\".modal-title\").html(_caption());\r\n var footer = \"\";\r\n var btn = _button();\r\n if (btn)\r\n footer += \"<button type=\\\"button\\\" class=\\\"btn btn-primary ew-btn\\\">\" + btn + \"</button>\";\r\n if (footer != \"\")\r\n footer += \"<button type=\\\"button\\\" class=\\\"btn btn-default ew-btn\\\" data-dismiss=\\\"modal\\\">\" + ew.language.phrase(\"CancelBtn\") + \"</button>\";\r\n else\r\n footer = \"<button type=\\\"button\\\" class=\\\"btn btn-default ew-btn\\\" data-dismiss=\\\"modal\\\">\" + ew.language.phrase(\"CloseBtn\") + \"</button>\";\r\n $dlg.find(\".modal-footer\").html(footer);\r\n var body = getContent(data);\r\n $dlg.find(\".modal-body\").html(body);\r\n var table = $lnk.data(\"table\");\r\n if (table)\r\n $dlg.find(\".modal-dialog\").addClass(\"table-\" + table);\r\n var $btn = $dlg.find(\".modal-footer .btn-primary\").addClass(\"ew-submit\").click(_submit);\r\n $dlg.find(\".modal-body form\").on(\"keydown\", function(e) {\r\n if (e.key == \"Enter\" && e.target.nodeName != \"TEXTAREA\")\r\n return $btn.click();\r\n });\r\n ew.modalDialog = $dlg.modal(\"show\");\r\n executeScript(data, \"ModalDialog\");\r\n $dlg.trigger(\"load.ew\"); // Trigger load event for, e.g. YouTube videos, ReCAPTCHA and Google maps\r\n $btn.focus();\r\n }\r\n };\r\n\r\n $body.css(\"cursor\", \"wait\");\r\n\r\n var url = args.url;\r\n if (f) { // Post form\r\n var $f = $(f);\r\n if (!f.elements.modal)\r\n $(\"<input>\").attr({type: \"hidden\", name: \"modal\", value: \"1\"}).appendTo($f);\r\n $.post(url, $f.serialize(), success).fail(_fail).always(_always);\r\n } else {\r\n url += (url.split(\"?\").length > 1 ? \"&\" : \"?\") + \"modal=1&rnd=\" + random();\r\n $.get(url, success).fail(_fail).always(_always);\r\n }\r\n\r\n return false;\r\n}\r\n\r\n// Show Modal Lookup\r\nexport function modalLookupShow(args) {\r\n var el = args.el, f = getForm(args.lnk);\r\n if (!f || !el)\r\n return;\r\n\r\n var $dlg = ew.modalLookupDialog || $(\"#ew-modal-lookup-dialog\").on(\"hidden.bs.modal\", modalDialogHide);\r\n if (!$dlg[0]) {\r\n _alert(\"DIV #ew-modal-lookup-dialog not found.\");\r\n return;\r\n }\r\n if ($dlg.data(\"showing\"))\r\n return;\r\n $dlg.data(\"showing\", true);\r\n\r\n var $f = $(f),\r\n $input = $f.find(\"[id='\" + el + \"']\"), // id may contains \"[]\"\r\n $bd = $dlg.find(\".modal-body\"),\r\n $lnk = $(args.lnk),\r\n $lu = $lnk.closest(\".ew-lookup-list\").find(\".ew-lookup-text\").trigger(\"focus\"),\r\n oid = getId(el, false),\r\n m = oid.match(/^([xy])(\\d*)_/),\r\n rowindex = m ? m[2] : \"\",\r\n list = forms.get(f.id).getList(el);\r\n\r\n // Format data\r\n var _format = function(data) {\r\n if (data.result == \"OK\" && Array.isArray(data.records)) {\r\n data.records.forEach(function(ar, index) {\r\n var item;\r\n if (Array.isArray(ar))\r\n item = { \"lf\": ar[0], \"df1\": ar[1], \"df2\": ar[2], \"df3\": ar[3], \"df4\": ar[4] };\r\n else if ($.isObject(ar))\r\n item = { lf: ar.lf, df1: ar.df, df2: ar.df2, df3: ar.df3, df4: ar.df4 };\r\n var txt = displayValue(ar, $input);\r\n if (list.template) {\r\n item[\"df\"] = list.template.render(item, ew.jsRenderHelpers);\r\n } else {\r\n item[\"df\"] = txt;\r\n }\r\n item[\"txt\"] = txt;\r\n data.records[index] = item;\r\n });\r\n }\r\n return data;\r\n }\r\n\r\n // Set AutoSuggest\r\n var setAutoSuggest = function(value, text) {\r\n if (!isAutoSuggest($input))\r\n return;\r\n let el = $input[0];\r\n el.add(value, text, true);\r\n el.input.value = text;\r\n }\r\n\r\n // Add option\r\n var addOpt = function(ar) {\r\n // Check if selected records are in the current page\r\n var vals = [], html = [], opts = [], txts = [], useText = !args.m && args.srch;\r\n $bd.ewjtable(\"selectedRows\").each(function() {\r\n var record = $(this).data(\"record\");\r\n vals.push(record.lf);\r\n html.push(record.df);\r\n opts.push(record.df);\r\n txts.push(record.txt); // Text for Auto-Suggest\r\n });\r\n if (ar.sort().join() === vals.sort().join()) { // All selected records are from the current page\r\n $lu.html(optionsHtml(opts, $input.data(\"maxcount\")));\r\n setAutoSuggest(vals.join(), txts.join(\", \"));\r\n $input.val(useText ? html.join(\", \") : vals.join()).trigger(\"change\");\r\n } else { // Get selected records from server\r\n var data = Object.assign({ page: list.page, field: list.field, ajax: \"modal\", keys: ar }, getUserParams('#p_' + oid, f));\r\n $body.css(\"cursor\", \"wait\");\r\n $.ajax(getApiUrl(ew.API_LOOKUP_ACTION), {\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: data\r\n }).done(_format).then(function(data) {\r\n if (data.result == \"OK\" && Array.isArray(data.records)) {\r\n var vals = [], html = [], opts = [], txts = [], results = data.records;\r\n for (let result of results) {\r\n vals.push(result.lf);\r\n html.push(result.df)\r\n opts.push(result.df);\r\n txts.push(result.txt); // Text for Auto-Suggest\r\n }\r\n $lu.html(optionsHtml(opts, $input.data(\"maxcount\")));\r\n setAutoSuggest(vals.join(), txts.join(\", \"));\r\n $input.val(useText ? html.join(\", \") : vals.join()).trigger(\"change\");\r\n }\r\n }).always(function() {\r\n $body.css(\"cursor\", \"default\");\r\n });\r\n }\r\n }\r\n\r\n // Submit\r\n var _submit = function() {\r\n addOpt(arLinkValue);\r\n $dlg.modal(\"hide\");\r\n return false;\r\n }\r\n\r\n // Hide\r\n $dlg.modal(\"hide\");\r\n $dlg.data(\"args\", args);\r\n var _timer, $search;\r\n\r\n // Success\r\n var success = function(data) {\r\n if (data.result == \"OK\") {\r\n $dlg.find(\".modal-title\").html($lnk.attr(\"title\") || $lnk.data(\"original-title\"));\r\n $dlg.find(\".modal-body .ewjtable thead\").toggle(!!args.m);\r\n $dlg.find(\".modal-footer\").html('<button type=\"button\" id=\"btn-select\" class=\"btn btn-primary ew-btn\">' + ew.language.phrase(\"SelectBtn\") + '</button>' +\r\n '<button type=\"button\" class=\"btn btn-default ew-btn\" data-dismiss=\"modal\">' + ew.language.phrase(\"CancelBtn\") + '</button>');\r\n $search = $dlg.find(\".modal-header .modal-tools input[name=sv]\").off(\"keyup.ew\").on(\"keyup.ew\", function(e) {\r\n if (_timer)\r\n _timer.cancel();\r\n _timer = $.later(ew.LOOKUP_DELAY, null, function() {\r\n $bd.ewjtable(\"load\", { \"sv\": $search.val() });\r\n });\r\n });\r\n $dlg.find(\".modal-footer #btn-select\").click(_submit); // Select\r\n ew.modalLookupDialog = $dlg.modal(\"show\");\r\n $search.focus();\r\n } else {\r\n _alert(data.message);\r\n }\r\n };\r\n\r\n var arp = [];\r\n var linkValue = $input.val(); // Link values\r\n var arLinkValue = (linkValue !== \"\") ? linkValue.split(ew.MULTIPLE_OPTION_SEPARATOR) : [];\r\n var data = Object.assign({ page: list.page, field: list.field }, getUserParams('#p_' + oid, f));\r\n\r\n // Add parent field values\r\n var parentId = list.parentFields.slice(); // Clone\r\n if (rowindex != \"\") {\r\n for (var i = 0, len = parentId.length; i < len; i++) {\r\n var ar = parentId[i].split(\" \");\r\n if (ar.length == 1) // Parent field in the same table, add row index\r\n parentId[i] = parentId[i].replace(/^x_/, \"x\" + rowindex + \"_\");\r\n }\r\n }\r\n if (parentId.length > 0) {\r\n for (var i = 0, len = parentId.length; i < len; i++)\r\n arp.push(getOptionValues(parentId[i], f));\r\n }\r\n for (var i = 0, cnt = arp.length; i < cnt; i++) // Filter by parent fields\r\n data[\"v\" + (i + 1)] = arp[i].join(ew.MULTIPLE_OPTION_SEPARATOR);\r\n\r\n $body.css(\"cursor\", \"wait\");\r\n $bd.ewjtable({\r\n paging: true,\r\n pageSize: args.n,\r\n pageSizes: [],\r\n pageSizeChangeArea: false,\r\n pageList: \"minimal\",\r\n selecting: true,\r\n selectingCheckboxes: true,\r\n multiselect: !!args.m,\r\n actions: {\r\n \"listAction\": function(postData, jtParams) {\r\n var _data = Object.assign({}, data, {\r\n ajax: \"modal\",\r\n start: jtParams.start,\r\n recperpage: jtParams.recperpage\r\n });\r\n if ($.isObject(postData)) // Search\r\n Object.assign(_data, postData);\r\n return $.ajax(getApiUrl(ew.API_LOOKUP_ACTION), {\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: _data\r\n }).done(_format).always(function() {\r\n $body.css(\"cursor\", \"default\");\r\n });\r\n }\r\n },\r\n messages: {\r\n serverCommunicationError: ew.language.phrase(\"ServerCommunicationError\"),\r\n loadingMessage: '<div class=\"' + ew.spinnerClass + ' m-3 ew-loading\" role=\"status\"><span class=\"sr-only\">' + ew.language.phrase(\"Loading\") + '</span></div>',\r\n noDataAvailable: ew.language.phrase(\"NoRecord\"),\r\n close: ew.language.phrase(\"CloseBtn\"),\r\n pagingInfo: ew.language.phrase(\"Record\") + \" {0}-{1} \" + ew.language.phrase(\"Of\") + \" {2}\",\r\n pageSizeChangeLabel: ew.language.phrase(\"RecordsPerPage\"),\r\n gotoPageLabel: ew.language.phrase(\"Page\")\r\n },\r\n fields: {\r\n \"lf\": { key: true, list: false},\r\n \"df\": {}\r\n },\r\n recordsLoaded: function(e, data) {\r\n var selectedRows = $(e.target).find(\".ewjtable-data-row\").filter(function() {\r\n return arLinkValue.includes(String($(this).data(\"record-key\")));\r\n });\r\n $(e.target).ewjtable(\"selectRows\", selectedRows);\r\n },\r\n selectionChanged: function(e, data) {\r\n var $rows = data.rows;\r\n if ($rows) {\r\n if (!args.m)\r\n arLinkValue = [];\r\n $rows.each(function() {\r\n var $row = $(this);\r\n var key = String($row.data(\"record-key\"));\r\n var index = arLinkValue.indexOf(key);\r\n var selected = $row.hasClass(\"ewjtable-row-selected\");\r\n if (selected && index == -1)\r\n arLinkValue.push(key);\r\n else if (!selected && index > -1)\r\n arLinkValue.splice(index, 1);\r\n });\r\n }\r\n }\r\n }).ewjtable(\"load\", null, success);\r\n}\r\n\r\n/**\r\n * Show dialog for import\r\n *\r\n * @param {Object} args - Arguments\r\n * @param {string} args.hdr - Dialog header\r\n * @param {HTMLElement} args.lnk - Anchor element\r\n * @returns\r\n */\r\nexport function importDialogShow(args) {\r\n $(args.lnk).tooltip(\"hide\");\r\n var $dlg = ew.importDialog || $(\"#ew-import-dialog\");\r\n if (!$dlg[0]) {\r\n _alert(\"DIV #ew-import-dialog not found.\");\r\n return false;\r\n }\r\n\r\n var $input = $dlg.find(\"#importfiles\"),\r\n $bd = $dlg.find(\".modal-body\"),\r\n $data = $bd.find(\":input[id!=importfiles]\"),\r\n $message = $bd.find(\".message\"),\r\n $progress = $bd.find(\".progress\"),\r\n timer;\r\n\r\n // Disable buttons\r\n var disableButtons = function() {\r\n $dlg.find(\".modal-footer .btn\").prop(\"disabled\", true);\r\n }\r\n\r\n // Enable buttons\r\n var enableButtons = function() {\r\n $dlg.find(\".modal-footer .btn\").prop(\"disabled\", false);\r\n }\r\n\r\n // Show message\r\n var showMessage = function(msg, classname) {\r\n var $msg = $(\"<div>\" + msg + \"</div>\");\r\n if (classname)\r\n $msg.addClass(classname);\r\n $message.removeClass(\"d-none\").html($msg);\r\n if (classname == \"text-danger\")\r\n enableButtons();\r\n }\r\n\r\n // Hide message\r\n var hideMessage = function() {\r\n $message.addClass(\"d-none\").html(\"\");\r\n }\r\n\r\n // Show progress\r\n var showProgress = function(pc, classname) {\r\n $progress.removeClass(\"d-none\").find(\".progress-bar\").removeClass(\"bg-success bg-info\").addClass(classname || \"bg-success\")\r\n .attr(\"aria-valuenow\", pc).css(\"width\", pc + \"%\").html(pc + \"%\");\r\n }\r\n\r\n // Hide progress\r\n var hideProgress = function() {\r\n $progress.addClass(\"d-none\").find(\".progress-bar\").attr(\"aria-valuenow\", 0).css(\"width\", \"0%\").html(\"0%\");\r\n }\r\n\r\n // Upload progress\r\n var uploadProgress = function(data) {\r\n var pc = parseInt(100 * data.loaded / data.total);\r\n showProgress(pc, \"bg-info\");\r\n if (pc === 100) {\r\n showMessage(ew.language.phrase(\"ImportMessageUploadComplete\"), \"text-info\");\r\n } else {\r\n showMessage(ew.language.phrase(\"ImportMessageUploadProgress\").replace(\"%p\", pc), \"text-info\");\r\n }\r\n }\r\n\r\n // Update progress (import)\r\n var updateProgress = function(result) {\r\n try {\r\n var cnt = parseInt(result.count), tcnt = parseInt(result.totalCount), filename = result.file;\r\n if (tcnt > 0 && $dlg.find(\".modal-footer .ew-close-btn\").data(\"import-progress\")) { // Show progress\r\n var pc = parseInt(100 * cnt / tcnt);\r\n showProgress(pc);\r\n showMessage(ew.language.phrase(\"ImportMessageProgress\").replace(\"%t\", tcnt).replace(\"%c\", cnt).replace(\"%f\", filename), \"text-info\");\r\n }\r\n } catch(e) {}\r\n }\r\n\r\n // Import progress\r\n var importProgress = function() {\r\n var url = getApiUrl(ew.API_PROGRESS_ACTION), data = { \"rnd\": random() };\r\n data[ew.API_FILE_TOKEN_NAME] = $input.data(ew.API_FILE_TOKEN_NAME);\r\n $.get(url, data, updateProgress, \"json\");\r\n }\r\n\r\n // Import complete\r\n var importComplete = function(result) {\r\n var maxErrorCount = 5;\r\n var msg = \"\";\r\n showProgress(100);\r\n var fileResults = result.files;\r\n $dlg.find(\".modal-footer .ew-close-btn\").data(\"import-progress\", false); // Stop import progress\r\n if (Array.isArray(fileResults)) {\r\n for (var i = 0, len = fileResults.length; i < len; i++) {\r\n var fileResult = fileResults[i],\r\n tcnt = fileResult.totalCount || 0,\r\n cnt = fileResult.count || 0,\r\n scnt = fileResult.successCount || 0,\r\n fcnt = fileResult.failCount || 0;\r\n if (msg != \"\")\r\n msg += \"<br>\";\r\n if (fileResult.success) {\r\n msg += ew.language.phrase(\"ImportMessageSuccess\").replace(\"%t\", tcnt).replace(\"%c\", cnt).replace(\"%f\", fileResult.file);\r\n } else {\r\n msg += ew.language.phrase(\"ImportMessageError1\").replace(\"%t\", tcnt).replace(\"%c\", cnt).replace(\"%f\", fileResult.file).replace(\"%s\", scnt).replace(\"%e\", fcnt);\r\n if (fileResult.error)\r\n msg += ew.language.phrase(\"ImportMessageError2\").replace(\"%e\", fileResult.error);\r\n var showLog = true;\r\n if (fileResult.failList) {\r\n var ecnt = 0;\r\n for (var i = 1; i <= cnt; i++) {\r\n if (fileResult.failList[\"row\" + i]) {\r\n ecnt += 1;\r\n msg += \"<br>\" + ew.language.phrase(\"ImportMessageError3\").replace(\"%i\", i).replace(\"%d\", fileResult.failList[\"row\" + i]);\r\n }\r\n if (ecnt >= maxErrorCount)\r\n break;\r\n }\r\n if (fcnt > maxErrorCount)\r\n msg += \"<br>\" + ew.language.phrase(\"ImportMessageMore\").replace(\"%s\", fcnt - maxErrorCount);\r\n else\r\n showLog = false;\r\n }\r\n if (fileResult.log && showLog)\r\n msg += \"<br>\" + ew.language.phrase(\"ImportMessageError4\").replace(\"%l\", fileResult.log);\r\n showMessage(msg, \"text-danger\"); // Show error message\r\n }\r\n }\r\n }\r\n if (result.success) {\r\n showMessage(msg, \"text-success\");\r\n $dlg.find(\".modal-footer .ew-close-btn\").data(\"imported\", true);\r\n } else {\r\n if (result.error)\r\n msg = result.error;\r\n showMessage(msg, \"text-danger\"); // Show error message\r\n }\r\n hideProgress();\r\n }\r\n\r\n // Import fail\r\n var importFail = function(o) {\r\n $dlg.find(\".modal-footer .ew-close-btn\").data(\"import-progress\", false); // Stop import progress\r\n showMessage(ew.language.phrase(\"ImportMessageServerError\").replace(\"%s\", o.status).replace(\"%t\", o.statusText), \"text-danger\");\r\n }\r\n\r\n // Import file\r\n var importFiles = function(filetoken) {\r\n $body.css(\"cursor\", \"wait\");\r\n $input.data(ew.API_FILE_TOKEN_NAME, filetoken);\r\n $dlg.find(\".modal-footer .ew-close-btn\").data(\"import-progress\", true); // Show import progress\r\n var data = ew.API_ACTION_NAME + \"=import&\" + ew.API_FILE_TOKEN_NAME + \"=\" + encodeURIComponent(filetoken);\r\n if ($data.length)\r\n data += \"&\" + $data.serialize();\r\n $.ajax(currentPage(), {\r\n \"data\": data,\r\n \"method\": \"POST\",\r\n \"dataType\": \"json\",\r\n \"beforeSend\": function(xhr, settings) {\r\n timer = $.later(100, null, importProgress, null, true); // Use time to show progress periodically\r\n }\r\n }).done(importComplete).fail(importFail).always(function() {\r\n $body.css(\"cursor\", \"default\");\r\n if (timer)\r\n timer.cancel(); // Clear timer\r\n });\r\n }\r\n\r\n var formData = { session: ew.SESSION_ID };\r\n formData[ew.TOKEN_NAME_KEY] = ew.TOKEN_NAME; // Add token name for $.ajax() sent by jQuery File Upload (not by ajaxSend) // PHP\r\n formData[ew.ANTIFORGERY_TOKEN_KEY] = ew.ANTIFORGERY_TOKEN; // Add antiforgery token for $.ajax() sent by jQuery File Upload (not by ajaxSend) // PHP\r\n var options = ew.importUploadOptions;\r\n if (!options.acceptFileTypes)\r\n options.acceptFileTypes = new RegExp('\\\\.(' + ew.IMPORT_FILE_ALLOWED_EXT.replace(/,/g, '|') + ')$', 'i');\r\n\r\n if (!$input.data(\"blueimpFileupload\")) {\r\n $input.fileupload(Object.assign({\r\n url: getApiUrl(ew.API_UPLOAD_ACTION),\r\n dataType: \"json\",\r\n autoUpload: true,\r\n formData: formData,\r\n singleFileUploads: false,\r\n messages: {\r\n acceptFileTypes: ew.language.phrase(\"UploadErrMsgAcceptFileTypes\"),\r\n maxFileSize: ew.language.phrase(\"UploadErrMsgMaxFileSize\"),\r\n maxNumberOfFiles: ew.language.phrase(\"UploadErrMsgMaxNumberOfFiles\"),\r\n minFileSize: ew.language.phrase(\"UploadErrMsgMinFileSize\")\r\n },\r\n beforeSend: function(jqxhr, settings) {\r\n if (ew.API_JWT_TOKEN && !ew.IS_WINDOWS_AUTHENTICATION) // Do NOT set JWT authorization header if Windows Authentication\r\n jqxhr.setRequestHeader(ew.API_JWT_AUTHORIZATION_HEADER, \"Bearer \" + ew.API_JWT_TOKEN);\r\n },\r\n done: function(e, data) {\r\n if (data.result && data.result.files && Array.isArray(data.result.files.importfiles)) {\r\n var ok = true;\r\n data.result.files.importfiles.forEach(function(file, index) {\r\n if (file.error) {\r\n showMessage(ew.language.phrase(\"ImportMessageUploadError\").replace(\"%f\", file.name).replace(\"%s\", file.error), \"text-danger\");\r\n ok = false;\r\n }\r\n }); // Show upload errors for each file\r\n if (ok)\r\n importFiles(data.result[ew.API_FILE_TOKEN_NAME]); // Import uploaded files\r\n }\r\n },\r\n change: function(e, data) {\r\n hideMessage();\r\n },\r\n processfail: function(e, data) {\r\n data.files.forEach(function(file, index) {\r\n if (file.error)\r\n showMessage(ew.language.phrase(\"ImportMessageUploadError\").replace(\"%f\", file.name).replace(\"%s\", file.error), \"text-danger\");\r\n }); // Show process errors for each file\r\n },\r\n fail: function(e, data) {\r\n showMessage(ew.language.phrase(\"ImportMessageServerError\").replace(\"%s\", data.textStatus).replace(\"%t\", data.errorThrown), \"text-danger\");\r\n },\r\n progressall: function(e, data) {\r\n uploadProgress(data);\r\n }\r\n }, options));\r\n }\r\n\r\n $dlg.modal(\"hide\").find(\".modal-title\").html(args.hdr);\r\n $dlg.find(\".modal-footer .ew-close-btn\").off(\"click.ew\").on(\"click.ew\", function() {\r\n var $this = $(this);\r\n if ($this.data(\"imported\")) {\r\n $this.data(\"imported\", false);\r\n window.location.reload();\r\n }\r\n });\r\n hideMessage();\r\n ew.importDialog = $dlg.modal(\"show\");\r\n return false;\r\n}\r\n\r\n// Auto-fill\r\nexport function autoFill(el) {\r\n var f = forms.get(el).$element[0];\r\n if (!f)\r\n return;\r\n var ar = getOptionValues(el),\r\n id = getId(el),\r\n m = id.match(/^([xy])(\\d*)_/),\r\n rowindex = (m) ? m[2] : \"\",\r\n list = forms.get(el).getList(id),\r\n dest_array = list.autoFillTargetFields;\r\n var success = function(data) {\r\n var results = data && data.records || \"\";\r\n var result = (results) ? results[0] : [];\r\n for (var j = 0; j < dest_array.length; j++) {\r\n var destEl = getElements(dest_array[j].replace(/^x_/, \"x\" + rowindex + \"_\"), f);\r\n if (destEl) {\r\n var val = ($.isValue(result[\"af\" + j])) ? String(result[\"af\" + j]) : \"\";\r\n var args = {results: results, result: result, data: val, form: f, name: id, target: dest_array[j], cancel: false, trigger: true};\r\n $(el).trigger(\"autofill\", [args]); // Fire event\r\n if (args.cancel)\r\n continue;\r\n val = args.data; // Process the value\r\n if (destEl.options) { // Selection list\r\n selectOption(destEl, val.split(\",\"));\r\n if (isAutoSuggest(destEl)) { // Auto-Suggest\r\n destEl.input.value = val;\r\n updateOptions.call(forms.get(f.id), destEl);\r\n } else if (isModalLookup(destEl)) { // Modal-Lookup\r\n //$(destEl).parent().find(\".ew-lookup-text\").html(val);\r\n updateOptions.call(forms.get(f.id), destEl);\r\n }\r\n } else if (isHiddenTextArea(destEl)) { // HTML editor\r\n destEl.value = val;\r\n $(destEl).data(\"editor\").set();\r\n } else {\r\n destEl.value = val;\r\n }\r\n if (args.trigger)\r\n $(destEl).trigger(\"change\");\r\n }\r\n }\r\n return result;\r\n };\r\n if (ar.length > 0 && ar[0] != \"\") {\r\n var data = Object.assign({\r\n page: list.page,\r\n field: list.field,\r\n ajax: \"autofill\",\r\n v0: ar[0],\r\n language: ew.LANGUAGE_ID\r\n }, getUserParams('#p_' + id, f));\r\n // Add parent field values\r\n var parentId = list.parentFields.slice(); // Clone\r\n if (rowindex != \"\") {\r\n for (var i = 0, len = parentId.length; i < len; i++) {\r\n var ar = parentId[i].split(\" \");\r\n if (ar.length == 1) // Parent field in the same table, add row index\r\n parentId[i] = parentId[i].replace(/^x_/, \"x\" + rowindex + \"_\");\r\n }\r\n }\r\n var arp = parentId.map(function(pid) {\r\n return getOptionValues(pid, f);\r\n });\r\n for (var i = 0, cnt = arp.length; i < cnt; i++) // Filter by parent fields\r\n data[\"v\" + (i + 1)] = arp[i].join(ew.MULTIPLE_OPTION_SEPARATOR);\r\n return $.post(getApiUrl(ew.API_LOOKUP_ACTION), data, success, \"json\");\r\n }\r\n return success();\r\n}\r\n\r\n// Setup tooltip links\r\nexport function tooltip(i, el) {\r\n var $this = $(el), $tt = $(\"#\" + $this.data(\"tooltip-id\")),\r\n trig = $this.data(\"trigger\") || \"hover\", dir = $this.data(\"placement\") || (ew.CSS_FLIP ? \"left\" : \"right\"); // dir = \"left|right\"\r\n if (!$tt[0] || $tt.text().trim() == \"\" && !$tt.find(\"img[src!='']\")[0])\r\n return;\r\n if (!$this.data(\"bs.popover\")) {\r\n $this.popover({\r\n html: true,\r\n placement: dir,\r\n trigger: trig,\r\n delay: 100,\r\n container: $(\"#ew-tooltip\")[0],\r\n content: $tt.html(),\r\n sanitizeFn: ew.sanitizeFn\r\n }).on(\"show.bs.popover\", function(e) {\r\n var wd, $tip = $($this.data(\"bs.popover\").getTipElement()).css(\"z-index\", 9999); // Make z-index higher than modal dialog\r\n if (wd = $this.data(\"tooltip-width\")) // Set width before show\r\n $tip.css(\"max-width\", parseInt(wd, 10) + \"px\");\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Show dialog for email sending\r\n *\r\n * @param {Object} args - Arguments\r\n * @param {string} args.lnk - Email link ID\r\n * @param {string} args.hdr - Dialog header\r\n * @param {string} args.url - URL of the email content\r\n * @param {HTMLElement} args.f - Form\r\n * @param {Object} args.key - Key as object\r\n * @param {boolean} args.sel - Exported selected\r\n * @returns false\r\n */\r\nexport function emailDialogShow(args) {\r\n var $dlg = ew.emailDialog || $(\"#ew-email-dialog\");\r\n if (!$dlg[0]) {\r\n _alert(\"DIV #ew-email-dialog not found.\");\r\n return false;\r\n }\r\n if (args.sel && !keySelected(args.f)) {\r\n _alert(ew.language.phrase(\"NoRecordSelected\"));\r\n return false;\r\n }\r\n var $f = $dlg.find(\".modal-body form\"),\r\n frm = $f.data(\"form\");\r\n if (!frm) {\r\n frm = new Form($f.attr(\"id\"));\r\n frm.addFields([\r\n [\"sender\", [ew.Validators.required(ew.language.phrase(\"Sender\")), ew.Validators.email]],\r\n [\"recipient\", [ew.Validators.required(ew.language.phrase(\"Recipient\")), ew.Validators.emails(ew.MAX_EMAIL_RECIPIENT, ew.language.phrase(\"EnterProperRecipientEmail\"))]],\r\n [\"cc\", ew.Validators.emails(ew.MAX_EMAIL_RECIPIENT, ew.language.phrase(\"EnterProperCcEmail\"))],\r\n [\"bcc\", ew.Validators.emails(ew.MAX_EMAIL_RECIPIENT, ew.language.phrase(\"EnterProperBccEmail\"))],\r\n [\"subject\", ew.Validators.required(ew.language.phrase(\"Subject\"))]\r\n ]);\r\n frm.validate = function() {\r\n return this.validateFields();\r\n };\r\n frm.submit = function(e) {\r\n if (!this.validate())\r\n return false;\r\n var qs = $f.serialize(), data = \"\";\r\n if (args.f && args.sel) // Export selected\r\n data = $(args.f).find(\"input[type=checkbox][name='key_m[]']:checked\").serialize();\r\n if (args.key)\r\n qs += \"&\" + $.param(args.key);\r\n var fobj = this.getForm();\r\n if (args.url) { // Custom Template\r\n $dlg.modal(\"hide\");\r\n if (args.exportid)\r\n ew.exportWithCharts(args.el, args.url, args.exportid, fobj);\r\n else\r\n _export(args.f, args.url, \"email\", true, args.sel, fobj);\r\n } else {\r\n $.post($(args.f).attr(\"action\"), qs + \"&\" + data, function(result) {\r\n showMessage(result);\r\n });\r\n }\r\n return true;\r\n };\r\n $f.data(\"form\", frm);\r\n }\r\n $dlg.modal(\"hide\").find(\".modal-title\").html(args.hdr);\r\n $dlg.find(\".modal-footer .btn-primary\").off().click(function(e) {\r\n e.preventDefault();\r\n if (frm.submit(e))\r\n $dlg.modal(\"hide\");\r\n });\r\n ew.emailDialog = $dlg.modal(\"show\");\r\n return false;\r\n}\r\n\r\n// Show drill down\r\nexport function showDrillDown(e, obj, url, id, hdr) {\r\n if (e && e.ctrlKey) {\r\n var arUrl = url.split(\"?\"), params = new URLSearchParams(arUrl[1]);\r\n params.set(\"d\", \"2\"); // Change d parameter to 2\r\n redirect(arUrl[0] + \"?\" + params.toString());\r\n return false;\r\n }\r\n var $obj = ($.isString(obj)) ? $(\"#\" + obj) : $(obj);\r\n var pos = $obj.data(\"drilldown-placement\") || ($obj.hasClass(\"ew-chart-canvas\") ? (ew.CSS_FLIP ? \"left\" : \"right\") : \"bottom\");\r\n $obj.tooltip(\"hide\");\r\n var args = {\"obj\": $obj[0], \"id\": id, \"url\": url, \"hdr\": hdr, \"placement\": pos};\r\n $document.trigger(\"drilldown\", [args]);\r\n var ar = args.url.split(\"?\");\r\n args.file = ar[0] || \"\";\r\n args.data = ar[1] || \"\";\r\n if (!$obj.data(\"bs.popover\")) {\r\n $obj.popover({\r\n html: true,\r\n placement: args.placement,\r\n trigger: \"manual\",\r\n template: '<div class=\"popover\"><h3 class=\"popover-header d-none\" style=\"cursor: move;\"></h3><div class=\"popover-body\"></div></div>',\r\n content: '<div class=\"' + ew.spinnerClass + ' m-3 ew-loading\" role=\"status\"><span class=\"sr-only\">' + ew.language.phrase(\"Loading\") + '</span></div>',\r\n container: $(\"#ew-drilldown-panel\"),\r\n sanitizeFn: ew.sanitizeFn,\r\n boundary: \"viewport\"\r\n }).on(\"show.bs.popover\", function(e) {\r\n $obj.attr(\"data-original-title\", \"\");\r\n }).on(\"shown.bs.popover\", function(e) {\r\n if (!$obj.data(\"args\"))\r\n return;\r\n var data = $obj.data(\"args\").data;\r\n data += (data ? \"&\" : \"\") + ew.TOKEN_NAME_KEY + \"=\" + ew.TOKEN_NAME; // Add token name // PHP\r\n data += (data ? \"&\" : \"\") + ew.ANTIFORGERY_TOKEN_KEY + \"=\" + ew.ANTIFORGERY_TOKEN; // Add antiforgery token // PHP\r\n $.ajax({\r\n cache: false,\r\n dataType: \"html\",\r\n type: \"POST\",\r\n data: data,\r\n url: $obj.data(\"args\").file,\r\n success: function(data) {\r\n var $tip = $($obj.data(\"bs.popover\").getTipElement()).on(\"mousedown\", function(e) {\r\n var $this = $(this).addClass(\"drag\"),\r\n height = $this.outerHeight(),\r\n width = $this.outerWidth(),\r\n ypos = $this.offset().top + height - e.pageY,\r\n xpos = $this.offset().left + width - e.pageX;\r\n $body.on(\"mousemove\", function(e) {\r\n var top = e.pageY + ypos - height,\r\n left = e.pageX + xpos - width;\r\n if ($this.hasClass(\"drag\"))\r\n $this.offset({top: top, left: left});\r\n }).on(\"mouseup\", function(e){\r\n $this.removeClass(\"drag\");\r\n });\r\n });\r\n if (args.hdr)\r\n $tip.find(\".popover-header\").empty().removeClass(\"d-none\")\r\n .append('<button type=\"button\" class=\"close\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button>' + args.hdr)\r\n .find(\".close\").on(\"click\", function() {\r\n $obj.popover(\"hide\");\r\n });\r\n var m = data.match(/<body[^>]*>([\\s\\S]*?)<\\/body\\s*>/i); // Use HTML in document body only\r\n data = m ? m[0] : data;\r\n var html = ew.stripScript(data);\r\n $tip.find(\".popover-body\").html($(\"<div></div>\").html(html).find(\"#ew-report\")) // Insert the container table only\r\n .find(\".ew-table\").each(ew.setupTable);\r\n ew.executeScript(data, id);\r\n $obj.popover(\"update\");\r\n },\r\n error: function(o) {\r\n if (o.responseText) {\r\n var $tip = $($el.data(\"bs.popover\").getTipElement());\r\n $tip.find(\".popover-body\").empty().append('<p class=\"text-danger\">' + o.responseText + '</p>');\r\n }\r\n }\r\n });\r\n }).on(\"hidden.bs.popover\", function(e) {\r\n $.each(ew.drillDownCharts, function(key, cht) { // Dispose charts\r\n cht.dispose();\r\n });\r\n ew.drillDownCharts = {};\r\n ew.removeScript(id);\r\n });\r\n }\r\n $obj.data(\"args\", args).popover(\"show\");\r\n}\r\n\r\n/**\r\n * Ajax query\r\n * @param {Object} data - object to passed to API\r\n * @param {callback} callback - Callback function for async request (see http://api.jquery.com/jQuery.post/), empty for sync request\r\n * @returns {string|string[]}\r\n */\r\nexport function ajax(data, callback) {\r\n if (!$.isObject(data) || !data.url && !data.action)\r\n return undefined;\r\n var action;\r\n if (data.url) {\r\n if (data.url.startsWith(getApiUrl()))\r\n action = data.url.replace(getApiUrl(), \"\").split(\"/\")[0];\r\n else if (data.url.startsWith(ew.API_URL))\r\n action = data.url.replace(ew.API_URL, \"\").split(\"/\")[0];\r\n } else { \r\n action = data.action\r\n delete data.action;\r\n }\r\n var obj = Object.assign({}, data);\r\n var _convert = (response) => {\r\n if ($.isObject(response) && response.result == \"OK\") {\r\n var results = response.records;\r\n if (Array.isArray(results) && results.length == 1) { // Single row\r\n results = results[0];\r\n if (Array.isArray(results) && results.length == 1) // Single column\r\n return results[0]; // Return a value\r\n else\r\n return results; // Return a row\r\n }\r\n return results;\r\n }\r\n return response;\r\n };\r\n var url = obj.url || getApiUrl(action), // URL\r\n type = obj.type || ([ew.API_LIST_ACTION, ew.API_VIEW_ACTION, ew.API_DELETE_ACTION].includes(action) ? \"GET\" : \"POST\");\r\n delete obj.url;\r\n delete obj.type;\r\n obj.dataType = \"json\";\r\n if (isFunction(callback)) { // Async\r\n $.ajax({\r\n url: url,\r\n type: type,\r\n data: obj,\r\n success: function (response) {\r\n callback(_convert(response));\r\n }\r\n });\r\n } else { // Sync\r\n var response = $.ajax({\r\n url: url,\r\n async: false,\r\n type: type,\r\n data: obj\r\n });\r\n return _convert(response.responseJSON);\r\n }\r\n}\r\n\r\n// Get URL of current page\r\nexport function currentPage() {\r\n return location.href.split(\"#\")[0].split(\"?\")[0];\r\n}\r\n\r\n// Toggle search operator\r\nexport function toggleSearchOperator(id, value) {\r\n var el = this.form.elements[id];\r\n if (!el)\r\n return;\r\n el.value = (el.value != value) ? value : \"=\";\r\n}\r\n\r\n// Validators\r\n// Check US Date format (mm/dd/yyyy)\r\nexport function checkUSDate(object_value) {\r\n return checkDateEx(object_value, \"us\", ew.DATE_SEPARATOR);\r\n}\r\n\r\n// Check US Date format (mm/dd/yy)\r\nexport function checkShortUSDate(object_value) {\r\n return checkDateEx(object_value, \"usshort\", ew.DATE_SEPARATOR);\r\n}\r\n\r\n// Check Date format (yyyy/mm/dd)\r\nexport function checkDate(object_value) {\r\n return checkDateEx(object_value, \"std\", ew.DATE_SEPARATOR);\r\n}\r\n\r\n// Check Date format (yy/mm/dd)\r\nexport function checkShortDate(object_value) {\r\n return checkDateEx(object_value, \"stdshort\", ew.DATE_SEPARATOR);\r\n}\r\n\r\n// Check Euro Date format (dd/mm/yyyy)\r\nexport function checkEuroDate(object_value) {\r\n return checkDateEx(object_value, \"euro\", ew.DATE_SEPARATOR);\r\n}\r\n\r\n// Check Euro Date format (dd/mm/yy)\r\nexport function checkShortEuroDate(object_value) {\r\n return checkDateEx(object_value, \"euroshort\", ew.DATE_SEPARATOR);\r\n}\r\n\r\n// Check default date format\r\nexport function checkDateDef(object_value) {\r\n if (ew.DATE_FORMAT.match(/^yyyy/))\r\n return checkDate(object_value);\r\n else if (ew.DATE_FORMAT.match(/^yy/))\r\n return checkShortDate(object_value);\r\n else if (ew.DATE_FORMAT.match(/^m/) && ew.DATE_FORMAT.match(/yyyy$/))\r\n return checkUSDate(object_value);\r\n else if (ew.DATE_FORMAT.match(/^m/) && ew.DATE_FORMAT.match(/yy$/))\r\n return checkShortUSDate(object_value);\r\n else if (ew.DATE_FORMAT.match(/^d/) && ew.DATE_FORMAT.match(/yyyy$/))\r\n return checkEuroDate(object_value);\r\n else if (ew.DATE_FORMAT.match(/^d/) && ew.DATE_FORMAT.match(/yy$/))\r\n return checkShortEuroDate(object_value);\r\n return false;\r\n}\r\n\r\n// Check date format\r\n// format: std/stdshort/us/usshort/euro/euroshort\r\nexport function checkDateEx(value, format, sep) {\r\n if (!value || value.length == \"\")\r\n return true;\r\n value = value.replace(/ +/g, \" \").trim();\r\n var arDT = value.split(\" \");\r\n if (arDT.length > 0) {\r\n var re, ar, sYear, sMonth, sDay;\r\n re = /^(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1|2]\\d|[3][0|1])$/;\r\n if (ar = re.exec(arDT[0])) {\r\n sYear = ar[1];\r\n sMonth = ar[2];\r\n sDay = ar[3];\r\n } else {\r\n var wrksep = escapeRegExChars(sep);\r\n switch (format) {\r\n case \"std\":\r\n re = new RegExp(\"^(\\\\d{4})\" + wrksep + \"([0]?[1-9]|[1][0-2])\" + wrksep + \"([0]?[1-9]|[1|2]\\\\d|[3][0|1])$\");\r\n break;\r\n case \"stdshort\":\r\n re = new RegExp(\"^(\\\\d{2})\" + wrksep + \"([0]?[1-9]|[1][0-2])\" + wrksep + \"([0]?[1-9]|[1|2]\\\\d|[3][0|1])$\");\r\n break;\r\n case \"us\":\r\n re = new RegExp(\"^([0]?[1-9]|[1][0-2])\" + wrksep + \"([0]?[1-9]|[1|2]\\\\d|[3][0|1])\" + wrksep + \"(\\\\d{4})$\");\r\n break;\r\n case \"usshort\":\r\n re = new RegExp(\"^([0]?[1-9]|[1][0-2])\" + wrksep + \"([0]?[1-9]|[1|2]\\\\d|[3][0|1])\" + wrksep + \"(\\\\d{2})$\");\r\n break;\r\n case \"euro\":\r\n re = new RegExp(\"^([0]?[1-9]|[1|2]\\\\d|[3][0|1])\" + wrksep + \"([0]?[1-9]|[1][0-2])\" + wrksep + \"(\\\\d{4})$\");\r\n break;\r\n case \"euroshort\":\r\n re = new RegExp(\"^([0]?[1-9]|[1|2]\\\\d|[3][0|1])\" + wrksep + \"([0]?[1-9]|[1][0-2])\" + wrksep + \"(\\\\d{2})$\");\r\n break;\r\n }\r\n if (!re.test(arDT[0]))\r\n return false;\r\n var arD = arDT[0].split(sep);\r\n switch (format) {\r\n case \"std\":\r\n case \"stdshort\":\r\n sYear = unformatYear(arD[0]);\r\n sMonth = arD[1];\r\n sDay = arD[2];\r\n break;\r\n case \"us\":\r\n case \"usshort\":\r\n sYear = unformatYear(arD[2]);\r\n sMonth = arD[0];\r\n sDay = arD[1];\r\n break;\r\n case \"euro\":\r\n case \"euroshort\":\r\n sYear = unformatYear(arD[2]);\r\n sMonth = arD[1];\r\n sDay = arD[0];\r\n break;\r\n }\r\n }\r\n if (!checkDay(sYear, sMonth, sDay))\r\n return false;\r\n }\r\n if (arDT.length > 1 && !checkTime(arDT[1]))\r\n return false;\r\n return true;\r\n}\r\n\r\n// Unformat 2 digit year to 4 digit year\r\nexport function unformatYear(yr) {\r\n if (yr.length == 2)\r\n return (yr > ew.UNFORMAT_YEAR) ? \"19\" + yr : \"20\" + yr;\r\n return yr;\r\n}\r\n\r\n// Check day\r\nexport function checkDay(checkYear, checkMonth, checkDay) {\r\n checkYear = parseInt(checkYear, 10);\r\n checkMonth = parseInt(checkMonth, 10);\r\n checkDay = parseInt(checkDay, 10);\r\n var maxDay = [4, 6, 9, 11].includes(checkMonth) ? 30 : 31;\r\n if (checkMonth == 2)\r\n maxDay = (checkYear % 4 > 0 || checkYear % 100 == 0 && checkYear % 400 > 0) ? 28 : 29;\r\n return checkRange(checkDay, 1, maxDay);\r\n}\r\n\r\n// Check integer\r\nexport function checkInteger(object_value) {\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n if (object_value.includes(ew.DECIMAL_POINT))\r\n return false;\r\n return checkNumber(object_value);\r\n}\r\n\r\n// Check number\r\nexport function checkNumber(object_value) {\r\n object_value = String(object_value);\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n object_value = object_value.trim();\r\n var ts = escapeRegExChars(ew.THOUSANDS_SEP), dp = escapeRegExChars(ew.DECIMAL_POINT),\r\n re = new RegExp(\"^[+-]?(\\\\d{1,3}(\" + (ts ? ts + \"?\" : \"\") + \"\\\\d{3})*(\" + dp + \"\\\\d+)?|\" + dp + \"\\\\d+)$\");\r\n return re.test(object_value);\r\n}\r\n\r\n// Convert to float\r\nexport function stringToFloat(object_value) {\r\n object_value = String(object_value);\r\n if (ew.THOUSANDS_SEP != \"\") {\r\n var re = new RegExp(escapeRegExChars(ew.THOUSANDS_SEP), \"g\");\r\n object_value = object_value.replace(re, \"\");\r\n }\r\n if (ew.DECIMAL_POINT != \"\")\r\n object_value = object_value.replace(ew.DECIMAL_POINT, \".\");\r\n return parseFloat(object_value);\r\n}\r\n\r\n// Convert string (yyyy-mm-dd hh:mm:ss) to date object\r\nexport function stringToDate(object_value) {\r\n var re = /^(\\d{4})-([0][1-9]|[1][0-2])-([0][1-9]|[1|2]\\d|[3][0|1]) (?:(0\\d|1\\d|2[0-3]):([0-5]\\d):([0-5]\\d))?$/;\r\n var ar = object_value.replace(re, \"$1 $2 $3 $4 $5 $6\").split(\" \");\r\n return new Date(ar[0], ar[1]-1, ar[2], ar[3], ar[4], ar[5]);\r\n}\r\n\r\n// Escape regular expression chars\r\nexport function escapeRegExChars(str) {\r\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\r\n}\r\n\r\n// Check range\r\nexport function checkRange(object_value, min_value, max_value) {\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n if ($.isNumber(min_value) || $.isNumber(max_value)) { // Number\r\n if (checkNumber(object_value))\r\n object_value = stringToFloat(object_value);\r\n }\r\n if (!$.isNull(min_value) && object_value < min_value)\r\n return false;\r\n if (!$.isNull(max_value) && object_value > max_value)\r\n return false;\r\n return true;\r\n}\r\n\r\n// Check time\r\nexport function checkTime(object_value) {\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n object_value = object_value.trim();\r\n var re = new RegExp('^(0\\\\d|1\\\\d|2[0-3])' + escapeRegExChars(ew.TIME_SEPARATOR) + '[0-5]\\\\d(( (' + escapeRegExChars(ew.language.phrase(\"AM\")) + '|' + escapeRegExChars(ew.language.phrase(\"PM\")) + '))|(' + escapeRegExChars(ew.TIME_SEPARATOR) + '[0-5]\\\\d(\\\\.\\\\d+|[+-][\\\\d:]+)?)?)$', 'i');\r\n return re.test(object_value);\r\n}\r\n\r\n// Check phone\r\nexport function checkPhone(object_value) {\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n return /^\\(\\d{3}\\) ?\\d{3}( |-)?\\d{4}|^\\d{3}( |-)?\\d{3}( |-)?\\d{4}$/.test(object_value.trim());\r\n}\r\n\r\n// Check zip\r\nexport function checkZip(object_value) {\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n return /^\\d{5}$|^\\d{5}-\\d{4}$/.test(object_value.trim());\r\n}\r\n\r\n// Check credit card\r\nexport function checkCreditCard(object_value) {\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n var creditcard_string = object_value.replace(/\\D/g, \"\");\r\n if (creditcard_string.length == 0)\r\n return false;\r\n var doubledigit = creditcard_string.length % 2 == 1 ? false : true;\r\n var tempdigit, checkdigit = 0;\r\n for (var i = 0, len = creditcard_string.length; i < len; i++) {\r\n tempdigit = parseInt(creditcard_string.charAt(i), 10);\r\n if (doubledigit) {\r\n tempdigit *= 2;\r\n checkdigit += (tempdigit % 10);\r\n if (tempdigit / 10 >= 1.0)\r\n checkdigit++;\r\n doubledigit = false;\r\n }\telse {\r\n checkdigit += tempdigit;\r\n doubledigit = true;\r\n }\r\n }\r\n return (checkdigit % 10 == 0);\r\n}\r\n\r\n// Check social security number\r\nexport function checkSsn(object_value) {\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n return /^(?!000)([0-6]\\d{2}|7([0-6]\\d|7[012]))([ -]?)(?!00)\\d\\d\\3(?!0000)\\d{4}$/.test(object_value.trim());\r\n}\r\n\r\n// Check emails\r\nexport function checkEmails(object_value, email_cnt) {\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n var arEmails = object_value.replace(/,/g, \";\").split(\";\");\r\n for (var i = 0, len = arEmails.length; i < len; i++) {\r\n if (email_cnt > 0 && len > email_cnt)\r\n return false;\r\n if (!checkEmail(arEmails[i]))\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\n// Check email\r\nexport function checkEmail(object_value) {\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n return /^[\\w.%+-]+@[\\w.-]+\\.[A-Z]{2,18}$/i.test(object_value.trim());\r\n}\r\n\r\n// Check GUID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\r\nexport function checkGuid(object_value) {\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n return /^(\\{\\w{8}-\\w{4}-\\w{4}-\\w{4}-\\w{12}\\}|\\w{8}-\\w{4}-\\w{4}-\\w{4}-\\w{12})$/.test(object_value.trim());\r\n}\r\n\r\n// Check by regular expression\r\nexport function checkByRegEx(object_value, pattern) {\r\n if (!object_value || object_value.length == 0)\r\n return true;\r\n return !!object_value.match(pattern);\r\n}\r\n\r\n/**\r\n * Show message dialog\r\n *\r\n * @param {Event|string} arg - Event or message\r\n * @returns\r\n */\r\nexport function showMessage(arg) {\r\n var win = window.parent, // Note: If a window does not have a parent, its parent property is a reference to itself.\r\n p = arg?.target ?? win.document,\r\n swal = win.Swal,\r\n $div = $(p).find(\"div.ew-message-dialog:hidden\").first(),\r\n msg = $div.length ? $div.text() : \"\"; // Text only\r\n if ($.isString(arg))\r\n msg = $(\"<div>\" + arg.trim() + \"</div>\").text();\r\n if (msg.trim() == \"\")\r\n return;\r\n if ($div.length) {\r\n [\"success\", \"info\", \"warning\", \"danger\"].forEach(function(value, index) {\r\n var $alert = $div.find(\".alert-\" + value).toggleClass(\"alert-\" + value),\r\n $heading = $alert.find(\".alert-heading\").detach(),\r\n $content = $alert.children(\":not(.icon)\");\r\n $alert.find(\".icon\").remove();\r\n if ($alert[0]) {\r\n var w = parseInt($content.css(\"width\"), 10); // Width specified\r\n if (w > 0)\r\n $content.first().css(\"width\", \"auto\");\r\n var $toast = toast({\r\n class: \"ew-toast bg-\" + value,\r\n title: $heading[0] ? $heading.html() : ew.language.phrase(value),\r\n body: $alert.html(),\r\n autohide: (value == \"success\") ? ew.autoHideSuccessMessage : false, // Autohide for success message\r\n delay: (value == \"success\") ? ew.autoHideSuccessMessageDelay: 500\r\n });\r\n if (w > 0)\r\n $toast.css(\"max-width\", w); // Override bootstrap .toast max-width\r\n return;\r\n }\r\n });\r\n }\r\n if ($.isString(arg)) {\r\n return swal.fire({\r\n ...ew.sweetAlertSettings,\r\n html: arg\r\n });\r\n }\r\n}\r\n\r\n// Random number\r\nexport function random() {\r\n return Math.floor(Math.random() * 100001) + 100000;\r\n}\r\n\r\n// File upload\r\nexport function upload(input) {\r\n var $input = $(input);\r\n if ($input.data(\"blueimpFileupload\"))\r\n return;\r\n var id = $input.attr(\"name\"), nid = id.replace(/\\$/g, \"\\\\$\"), tbl = $input.data(\"table\"),\r\n multiple = $input.is(\"[multiple]\"), $p = $input.closest(\".form-group, [id^='el']\"),\r\n readonly = $input.prop(\"disabled\") || $input.closest(\"form\").find(\"#confirm\").val() == \"confirm\",\r\n $ft = $p.find(\"#ft_\" + nid), $fn = $p.find(\"#fn_\" + nid), $fa = $p.find(\"#fa_\" + nid), $fs = $p.find(\"#fs_\" + nid),\r\n $exts = $p.find(\"#fx_\" + nid), $maxsize = $p.find(\"#fm_\" + nid), $maxfilecount = $p.find(\"#fc_\" + nid),\r\n $label = $p.find(\".custom-file-label\"), label = $label.html();\r\n var _done = function(e, data) {\r\n if (data.result.files[0].error)\r\n return;\r\n var name = data.result.files[0].name;\r\n var ar = (multiple) ? ($fn.val() ? $fn.val().split(ew.MULTIPLE_UPLOAD_SEPARATOR) : []) : [];\r\n ar.push(name);\r\n $fn.val(ar.join(ew.MULTIPLE_UPLOAD_SEPARATOR));\r\n $fa.val(\"0\");\r\n if (!multiple) // Remove other entries if not multiple upload\r\n $ft.children(\"tr:not(:last-child)\").remove();\r\n };\r\n var _deleted = function(e, data) {\r\n var url = $(e.originalEvent.target).data(\"url\"),\r\n param = new URLSearchParams(url.split(\"?\")[1]),\r\n fid = param.get(\"id\"),\r\n name = param.get(fid);\r\n if (name) {\r\n var ar = $fn.val() ? $fn.val().split(ew.MULTIPLE_UPLOAD_SEPARATOR) : [];\r\n var index = ar.indexOf(name);\r\n if (index > -1)\r\n ar.splice(index, 1);\r\n $fn.val(ar.join(ew.MULTIPLE_UPLOAD_SEPARATOR));\r\n $fa.val(\"0\");\r\n }\r\n };\r\n var _change = function(e, data) {\r\n $ft.toggleClass(\"ew-has-rows\", data.files?.length > 0);\r\n var ar = $fn.val() ? $fn.val().split(ew.MULTIPLE_UPLOAD_SEPARATOR) : [];\r\n for (var i = 0; i < data.files.length; i++)\r\n ar.push(data.files[i].name);\r\n var cnt = parseInt($maxfilecount.val(), 10);\r\n if ($.isNumber(cnt) && cnt > 0 && ar.length > cnt) {\r\n _alert(ew.language.phrase(\"UploadErrMsgMaxNumberOfFiles\"));\r\n return false;\r\n }\r\n var l = parseInt($fs.val(), 10);\r\n if ($.isNumber(l) && l > 0 && ar.join(ew.MULTIPLE_UPLOAD_SEPARATOR).length > l) {\r\n _alert(ew.language.phrase(\"UploadErrMsgMaxFileLength\"));\r\n return false;\r\n }\r\n };\r\n var _confirmDelete = function(e) {\r\n if (!multiple && $fn.val()) {\r\n if (!confirm(ew.language.phrase(\"UploadOverwrite\"))) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n }\r\n };\r\n var _changed = function(e, data) {\r\n $ft.toggleClass(\"ew-has-rows\", data.files?.length > 0 || data.result?.files?.length > 0);\r\n var ar = $fn.val() ? $fn.val().split(ew.MULTIPLE_UPLOAD_SEPARATOR) : [];\r\n $label.html(ar.join(\", \") || label);\r\n };\r\n var _clicked = function() {\r\n $input.closest(\"span.fileinput-button\").tooltip(\"hide\");\r\n };\r\n // var _process = function(e, data) {\r\n // $ft.toggleClass(\"ew-has-rows\", data.files?.length > 0);\r\n // };\r\n var _downloadTemplate = $.templates(\"#template-download\");\r\n var _uploadTemplate = $.templates(\"#template-upload\");\r\n var _completed = function(e, data) { // After download template rendered\r\n var e = { target: data.context };\r\n initLightboxes(e);\r\n initPdfObjects(e);\r\n ew.updateDropdownPosition();\r\n data.context.find(\"img\").on(\"load\", ew.updateDropdownPosition);\r\n }\r\n var _added = function(e, data) { // After upload template rendered\r\n $ft.toggleClass(\"ew-has-rows\", data.files?.length > 0);\r\n data.context.find(\".start\").click(_confirmDelete);\r\n };\r\n // Hide input button if readonly\r\n var form = getForm(input), $form = $(form);\r\n var readonly = $form.find(\"#confirm\").val() == \"confirm\";\r\n if (readonly)\r\n $form.find(\"span.fileinput-button\").hide();\r\n var cnt = parseInt($maxfilecount.val(), 10);\r\n var uploadUrl = getApiUrl(ew.API_JQUERY_UPLOAD_ACTION);\r\n var formData = {\r\n id: id,\r\n table: tbl,\r\n session: ew.SESSION_ID,\r\n replace: (multiple ? \"0\" : \"1\"),\r\n exts: $exts.val(),\r\n maxsize: $maxsize.val(),\r\n maxfilecount: $maxfilecount.val()\r\n };\r\n $input.fileupload({\r\n url: uploadUrl,\r\n type: \"POST\",\r\n multipart: true,\r\n autoUpload: true, // Comment out to disable auto upload\r\n loadImageFileTypes: /^image\\/(gif|jpe?g|png)$/i,\r\n loadVideoFileTypes: /^video\\/mp4$/i,\r\n loadAudioFileTypes: /^audio\\/(mpeg|mp3)$/i,\r\n acceptFileTypes: ($exts.val()) ? new RegExp('\\\\.(' + $exts.val().replace(/,/g, '|') + ')$', 'i') : null,\r\n maxFileSize: parseInt($maxsize.val(), 10),\r\n maxNumberOfFiles: (cnt > 1) ? cnt : null,\r\n filesContainer: $ft,\r\n formData: formData,\r\n uploadTemplateId: null,\r\n downloadTemplateId: null,\r\n uploadTemplate: _uploadTemplate.render.bind(_uploadTemplate),\r\n downloadTemplate: _downloadTemplate.render.bind(_downloadTemplate),\r\n previewMaxWidth: ew.UPLOAD_THUMBNAIL_WIDTH,\r\n previewMaxHeight: ew.UPLOAD_THUMBNAIL_HEIGHT,\r\n dropZone: $p,\r\n pasteZone: $p,\r\n messages: {\r\n acceptFileTypes: ew.language.phrase(\"UploadErrMsgAcceptFileTypes\"),\r\n maxFileSize: ew.language.phrase(\"UploadErrMsgMaxFileSize\"),\r\n maxNumberOfFiles: ew.language.phrase(\"UploadErrMsgMaxNumberOfFiles\"),\r\n minFileSize: ew.language.phrase(\"UploadErrMsgMinFileSize\")\r\n },\r\n readOnly: readonly // Custom\r\n }).on(\"fileuploaddone\", _done)\r\n .on(\"fileuploaddestroy\", _deleted)\r\n .on(\"fileuploadchange\", _change)\r\n .on(\"fileuploadadded fileuploadfinished fileuploaddestroyed\", _changed)\r\n //.on(\"fileuploadprocess\", _process)\r\n .on('fileuploadadded', _added)\r\n .on('fileuploadcompleted', _completed)\r\n .click(_clicked);\r\n if ($fn.val()) {\r\n $.ajax({\r\n url: uploadUrl,\r\n data: { id: id, table: tbl, session: ew.SESSION_ID },\r\n dataType: \"json\",\r\n context: this,\r\n success: function(result) {\r\n if (result && result[id]) {\r\n var done = $input.fileupload(\"option\", \"done\");\r\n if (done)\r\n done.call(input, $.Event(), { result: { files: result[id] } }); // Use \"files\"\r\n }\r\n if (readonly) // Hide delete button if readonly\r\n $ft.find(\"td.delete\").hide();\r\n }\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Convert data to number\r\n *\r\n * @param {*} data - Data being converted\r\n * @param {Object} [config] - Configuration\r\n * @param {string} config.decimalSeparator - Decimal separator\r\n * @param {string} config.thousandsSeparator - Thousands separator\r\n * @returns {(number|null)}\r\n */\r\nexport function parseNumber(data, config) {\r\n if ($.isString(data)) {\r\n config = config || {\"thousandsSeparator\": ew.THOUSANDS_SEP, \"decimalSeparator\": ew.DECIMAL_POINT};\r\n var regexBits = [], regex, separator = config.thousandsSeparator, decimal = config.decimalSeparator;\r\n if (separator)\r\n regexBits.push(escapeRegExChars(separator) + \"(?=\\\\d)\");\r\n regex = new RegExp(\"(?:\" + regexBits.join(\"|\") + \")\", \"g\");\r\n if (decimal === \".\")\r\n decimal = null;\r\n data = data.replace(regex, \"\");\r\n data = (decimal) ? data.replace(decimal, \".\") : data;\r\n }\r\n if ($.isString(data) && data.trim() !== \"\")\r\n data = +data;\r\n if (!$.isNumber || !isFinite(data)) // Catch NaN and Infinity\r\n data = null;\r\n return data;\r\n}\r\n\r\n/**\r\n * Format a Number to string for display\r\n *\r\n * @param {*} data - Data being converted\r\n * @param {Object} [config] - Configuration\r\n * @param {number} config.decimalPlaces - Number of decimal places to round. Must be a number 0 to 20.\r\n * @param {string} config.decimalSeparator - Decimal separator\r\n * @param {string} config.thousandsSeparator - Thousands separator\r\n * @returns {string} Note: null, undefined, NaN and \"\" returns as \"\".\r\n */\r\nexport function formatNumber(data, config) {\r\n if ($.isNumber(data)) {\r\n config = config || {\"thousandsSeparator\": ew.THOUSANDS_SEP, \"decimalSeparator\": ew.DECIMAL_POINT};\r\n var isNeg = (data < 0), output = data + \"\", decPlaces = config.decimalPlaces,\r\n decSep = config.decimalSeparator || \".\", thouSep = config.thousandsSeparator,\r\n decIndex, newOutput, count, i;\r\n if ($.isNumber(decPlaces) && (decPlaces >= 0) && (decPlaces <= 20)) // Decimal precision\r\n output = data.toFixed(decPlaces);\r\n if (decSep !== \".\") // Decimal separator\r\n output = output.replace(\".\", decSep);\r\n if (thouSep) { // Add the thousands separator\r\n decIndex = output.lastIndexOf(decSep); // Find the dot or where it would be\r\n decIndex = (decIndex > -1) ? decIndex : output.length;\r\n newOutput = output.substring(decIndex); // Start with the dot and everything to the right\r\n for (count = 0, i = decIndex; i > 0; i--) { // Working left, every third time add a separator, every time add a digit\r\n if (count%3 === 0 && i !== decIndex && (!isNeg || i > 1))\r\n newOutput = thouSep + newOutput;\r\n newOutput = output.charAt(i-1) + newOutput;\r\n count++;\r\n }\r\n output = newOutput;\r\n }\r\n return output;\r\n } else { // Not a Number, return as string\r\n return ($.isValue(data) && data.toString) ? data.toString() : \"\";\r\n }\r\n}\r\n\r\n/**\r\n * Convert data to Moment object (see http://momentjs.com/docs/)\r\n *\r\n * @param {*} data - Data being converted\r\n * @param {number} format - Date format matching server side FormatDateTime()\r\n * @returns {Moment}\r\n */\r\nexport function parseDate(data, format) {\r\n var args = $.makeArray(arguments);\r\n if ($.isNumber(format) && format >=0 && format <= 17) {\r\n var f, def = ew.DATE_FORMAT.toUpperCase(), sep = ew.DATE_SEPARATOR, timesep = ew.TIME_SEPARATOR;\r\n switch (format) {\r\n case 0: case 1: case 2: case 8: f = def + \" HH\" + timesep + \"mm\" + timesep + \"ss\"; break; // ew.DATE_FORMAT + \" %H:%M:%S\"\r\n case 3: f = \"hh:mm:ss A\"; break; // \"%I:%M:%S %p\"\r\n case 4: f = \"HH:mm:ss\"; break; // \"%H:%M:%S\"\r\n case 5: f = \"YYYY\" + sep + \"MM\" + sep + \"DD\"; break; // \"%Y\" + sep + \"%m\" + sep + \"%d\"\r\n case 6: f = \"MM\" + sep + \"DD\" + sep + \"YYYY\"; break; // \"%m\" + sep + \"%d\" + sep + \"%Y\"\r\n case 7: f = \"DD\" + sep + \"MM\" + sep + \"YYYY\"; break; // \"%d\" + sep + \"%m\" + sep + \"%Y\"\r\n case 9: f = \"YYYY\" + sep + \"MM\" + sep + \"DD HH\" + timesep + \"mm\" + timesep + \"ss\"; break; // \"%Y\" + sep + \"%m\" + sep + \"%d %H:%M:%S\"\r\n case 10: f = \"MM\" + sep + \"DD\" + sep + \"YYYY HH\" + timesep + \"mm\" + timesep + \"ss\"; break; // \"%m\" + sep + \"%d\" + sep + \"%Y %H:%M:%S\"\r\n case 11: f = \"DD\" + sep + \"MM\" + sep + \"YYYY HH\" + timesep + \"mm\" + timesep + \"ss\"; break; // \"%d\" + sep + \"%m\" + sep + \"%Y %H:%M:%S\"\r\n case 12: f = \"YY\" + sep + \"MM\" + sep + \"DD\"; break; // \"%y\" + sep + \"%m\" + sep + \"%d\"\r\n case 13: f = \"MM\" + sep + \"DD\" + sep + \"YY\"; break; // \"%m\" + sep + \"%d\" + sep + \"%y\"\r\n case 14: f = \"DD\" + sep + \"MM\" + sep + \"YY\"; break; // \"%d\" + sep + \"%m\" + sep + \"%y\"\r\n case 15: f = \"YY\" + sep + \"MM\" + sep + \"DD HH\" + timesep + \"mm\" + timesep + \"ss\"; break; // \"%y\" + sep + \"%m\" + sep + \"%d %H:%M:%S\"\r\n case 16: f = \"MM\" + sep + \"DD\" + sep + \"YY HH\" + timesep + \"mm\" + timesep + \"ss\"; break; // \"%m\" + sep + \"%d\" + sep + \"%y %H:%M:%S\"\r\n case 17: f = \"DD\" + sep + \"MM\" + sep + \"YY HH\" + timesep + \"mm\" + timesep + \"ss\"; break; // \"%d\" + sep + \"%m\" + sep + \"%y %H:%M:%S\"\r\n }\r\n args[1] = [f, \"YYYY-MM-DD HH\" + timesep + \"mm\" + timesep + \"ss\"];\r\n }\r\n return moment.apply(this, args);\r\n}\r\n\r\n/**\r\n * Format date time\r\n *\r\n * @param {*} data - Date being formatted\r\n * @param {string} format - Date format (see http://momentjs.com/docs/#/displaying/format/)\r\n * @returns {string}\r\n */\r\nexport function formatDate(data, format) {\r\n return moment(data).format(format || ew.DATE_FORMAT.toUpperCase());\r\n}\r\n\r\n/**\r\n * Init page\r\n *\r\n * @param {Event|undefined} e - Event\r\n */\r\nexport function initPage(e) {\r\n var el = (e && e.target) ? e.target : document,\r\n $el = $(el),\r\n $tables = $el.find(\"table.ew-table:not(.ew-export-table)\");\r\n Array.prototype.forEach.call(el.querySelectorAll(\".ew-grid-upper-panel, .ew-grid-lower-panel\"), ew.initGridPanel); // Init grid panels\r\n ew.renderJsTemplates(e);\r\n lazyLoad(e);\r\n initForms(e);\r\n initTooltips(e);\r\n initPasswordOptions(e);\r\n initIcons(e);\r\n initLightboxes(e);\r\n initPdfObjects(e);\r\n $el.find(\"[data-widget='treeview']\").each(function() {\r\n adminlte.Treeview._jQueryInterface.call($(this), \"init\");\r\n });\r\n $tables.each(setupTable); // Init tables\r\n $el.find(\".ew-btn-dropdown\").on(\"shown.bs.dropdown\", function() {\r\n var $this = $(this).removeClass(\"dropup\"),\r\n $window = $(window),\r\n $menu = $this.find(\"> .dropdown-menu\");\r\n $this.toggleClass(\"dropup\", $menu.offset().top + $menu.height() > $window.scrollTop() + $window.height());\r\n });\r\n $el.find(\"input[name=pageno]\").on(\"keydown\", function(e) {\r\n if (e.key == \"Enter\") {\r\n currentUrl.searchParams.set(this.name, parseInt(this.value));\r\n window.location = sanitizeUrl(currentUrl.toString());\r\n return false;\r\n }\r\n });\r\n if (!ew.IS_SCREEN_SM_MIN) {\r\n $el.find(\".\" + ew.RESPONSIVE_TABLE_CLASS + \" [data-toggle='dropdown']\").parent().on(\"shown.bs.dropdown\", function() {\r\n var $this = $(this),\r\n $menu = $this.find(\".dropdown-menu\"),\r\n div = $this.closest(\".\" + ew.RESPONSIVE_TABLE_CLASS)[0];\r\n if (div.scrollHeight - div.clientHeight) {\r\n var d = $menu.offset().top + $menu.outerHeight() - $(div).offset().top - div.clientHeight;\r\n if (d > 0)\r\n $menu.css(ew.CSS_FLIP ? \"right\" : \"left\", \"100%\").css(\"top\", parseFloat($menu.css(\"top\")) - d);\r\n }\r\n });\r\n }\r\n initExportLinks(e);\r\n initMultiSelectCheckboxes(e);\r\n\r\n // Report\r\n var $rpt = $el.find(\".ew-report\");\r\n if ($rpt[0]) {\r\n $rpt.find(\".card\").on(\"collapsed.lte.widget\", function() { // Fix min-height when .lte.widget is collapsed\r\n var $card = $(this), $div = $card.closest(\"[class^='col-']\"), mh = $div.css(\"min-height\");\r\n if (mh)\r\n $div.data(\"min-height\", mh);\r\n $div.css(\"min-height\", 0);\r\n }).on(\"expanded.lte.widget\", function() { // Fix min-height when .lte.widget is expanded\r\n var $card = $(this), $div = $card.closest(\"[class^='col-']\"), mh = $div.css(\"min-height\");\r\n if (mh)\r\n $div.css(\"min-height\", mh); // Restore min-height\r\n });\r\n // Group expand/collapse button\r\n $rpt.find(\"span.ew-group-toggle\").on(\"click\", function() {\r\n ew.toggleGroup(this);\r\n });\r\n }\r\n\r\n // Show message\r\n if (typeof ew.USE_JAVASCRIPT_MESSAGE != \"undefined\" && ew.USE_JAVASCRIPT_MESSAGE)\r\n showMessage(e);\r\n}\r\n\r\n// Redirect by HTTP GET or POST\r\nexport function redirect(url, f, method) {\r\n var newUrl = new URL(url),\r\n params = newUrl.searchParams;\r\n params.set(ew.TOKEN_NAME_KEY, ew.TOKEN_NAME); // PHP\r\n params.set(ew.ANTIFORGERY_TOKEN_KEY, ew.ANTIFORGERY_TOKEN); // PHP\r\n if (sameText(method, \"post\")) { // POST\r\n var $form = (f) ? $(f) : $(\"<form></form>\").appendTo(\"body\");\r\n $form.attr({ action: ar[0], method: \"post\" });\r\n params.forEach(function(value, key) {\r\n $('<input type=\"hidden\">').attr({ name: key, value: ew.sanitize(value) }).appendTo($form);\r\n });\r\n $form.trigger(\"submit\");\r\n } else { // GET\r\n window.location = sanitizeUrl(newUrl.toString());\r\n }\r\n}\r\n\r\n// Show/Hide password\r\nexport function togglePassword(e) {\r\n var $btn = $(e.currentTarget), $input = $btn.closest(\".input-group\").find(\"input\"), $i = $btn.find(\"i\");\r\n if ($input.attr(\"type\") == \"text\") {\r\n $input.attr(\"type\", \"password\");\r\n $i.toggleClass(\"fa-eye-slash fa-eye\");\r\n } else if($input.attr(\"type\") == \"password\"){\r\n $input.attr(\"type\", \"text\");\r\n $i.toggleClass(\"fa-eye-slash fa-eye\");\r\n }\r\n}\r\n\r\n// Export with charts\r\nexport function exportWithCharts(e, url, exportId, f) {\r\n var el = e.target,\r\n exportUrl = new URL(window.location.href),\r\n ar = url.split(\"?\"),\r\n $el = $(el), method = (f) ? \"post\" : \"get\";\r\n\r\n exportId += \"_\" + Date.now();\r\n exportUrl.pathname = ar[0];\r\n exportUrl.search = ar[1];\r\n exportUrl.searchParams.set(\"exportid\", exportId);\r\n\r\n if ($el.is(\".dropdown-menu a\"))\r\n $el = $el.closest(\".btn-group\");\r\n\r\n var _export = function() {\r\n var params = exportUrl.searchParams,\r\n custom = params.get(\"custom\") == \"1\";\r\n if (f && !custom) { // Not custom\r\n var data = $(f).serialize(); // Add token\r\n $.post(exportUrl, data, function(result) {\r\n showMessage(result);\r\n });\r\n } else { // Custom\r\n var exp = params.get(\"export\");\r\n if (custom && [\"word\", \"excel\", \"pdf\", \"email\"].includes(exp)) {\r\n if (exp == \"email\") {\r\n params.delete(\"export\"); // Remove duplicate export=email (exists in form)\r\n exportUrl.search = params.toString() + \"&\" + $(f).serialize();\r\n }\r\n $(\"iframe.ew-export\").remove();\r\n $(\"<iframe></iframe>\").addClass(\"ew-export d-none\").attr(\"src\", exportUrl.toString()).appendTo($body.css(\"cursor\", \"wait\"));\r\n setTimeout(function() { $body.css(\"cursor\", \"default\"); }, 5000);\r\n } else if (exp == \"print\") {\r\n redirect(exportUrl.toString(), f, method);\r\n } else {\r\n fileDownload(exportUrl.toString(), null);\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n var keys = Object.keys(window.exportCharts);\r\n if (keys.length == 0) // No charts, just submit the form\r\n return _export();\r\n\r\n // Success callback\r\n var success = function(result) {\r\n if ($.isString(result))\r\n result = parseJson(result);\r\n if (result.success) {\r\n _export();\r\n } else {\r\n ew.alert(result.error);\r\n }\r\n };\r\n\r\n // Failure callback\r\n var fail = function(xhr, status, error) {\r\n ew.alert(error + \": \" + xhr.responseText); // Show detailed export error message\r\n };\r\n\r\n // Export charts\r\n $body.css(\"cursor\", \"wait\");\r\n var charts = [];\r\n for (var i = 0; i < keys.length; i++) {\r\n var id = keys[i], o = window.exportCharts[id],\r\n params = \"exportfilename=\" + exportId + \"_\" + id + \".png|exportformat=png|exportaction=download|exportparameters=undefined\";\r\n if (o && o.toBase64Image) // Chart.js chart\r\n charts.push({ \"chart_engine\": \"Chart.js\", \"stream_type\": \"base64\", \"stream\": o.toBase64Image(), \"parameters\": params });\r\n }\r\n $.ajax({\r\n \"url\": getApiUrl(ew.API_EXPORT_CHART_ACTION),\r\n \"data\": { \"charts\": JSON.stringify(charts) },\r\n \"cache\": false,\r\n \"type\": \"POST\"\r\n }).done(success).fail(fail).always(function() {\r\n $body.css(\"cursor\", \"default\");\r\n });\r\n return false;\r\n}\r\n\r\n// Layout\r\nvar _fixLayoutHeightTimer;\r\n\r\n// Fix layout height\r\nexport function fixLayoutHeight() {\r\n if (_fixLayoutHeightTimer)\r\n _fixLayoutHeightTimer.cancel(); // Clear timer\r\n _fixLayoutHeightTimer = $.later(50, null, function () {\r\n var layout = $body.data(\"lte.layout\");\r\n if (layout)\r\n layout.fixLayoutHeight();\r\n });\r\n}\r\n\r\n// Add user event handlers\r\nexport function addEventHandlers(tblVar) {\r\n let fields = ew.events[tblVar];\r\n if (fields) {\r\n for (var [fldVar, events] of Object.entries(fields))\r\n $('[data-table=' + tblVar + '][data-field=' + fldVar + ']').on(events);\r\n }\r\n}","import $ from 'jquery';\r\nimport MultiPage from \"./multipage\";\r\nimport * as Validators from './Validators';\r\nimport Form from \"./Form\";\r\nimport * as functions from './functions';\r\n\r\new.IS_SCREEN_SM_MIN = window.matchMedia(\"(min-width: 768px)\").matches; // Should matches $screen-sm-min\r\new.MOBILE_DETECT = new MobileDetect(window.navigator.userAgent);\r\new.IS_MOBILE = !!ew.MOBILE_DETECT.mobile();\r\new.IS_IE = ew.MOBILE_DETECT.version(\"MSIE\") > 0;\r\n\r\n// Charts\r\nwindow.exportCharts = {}; // Per window\r\nwindow.drillDownCharts = {}; // Per window\r\n\r\n// Init spinner\r\new.addSpinner();\r\n\r\n// Extend\r\nObject.assign(ew, { MultiPage, Form, Validators }, functions);\r\n\r\nvar $document = $(document);\r\n\r\n// Init document\r\nloadjs.ready(\"load\", function () {\r\n\t$.views.settings.debugMode(ew.DEBUG);\r\n\tew.setSessionTimer();\r\n\tew.initPage();\r\n\t$(\"#ew-modal-dialog\").on(\"load.ew\", ew.initPage);\r\n\t$(\"#ew-add-opt-dialog\").on(\"load.ew\", ew.initPage);\r\n\tvar hash = ew.currentUrl.searchParams.get(\"hash\");\r\n\tif (hash)\r\n\t\t$(\"html, body\").animate({ scrollTop: $(\"#\" + hash).offset().top }, 800);\r\n\tew.removeSpinner();\r\n\t$document.trigger(\"load\");\r\n});\r\n\r\n// Default \"addoption\" event (fired before adding new option to selection list)\r\n$document.on(\"addoption\", function (e, args) {\r\n\tvar row = args.data; // New row to be validated\r\n\tvar arp = args.parents; // Parent field values\r\n\tfor (var i = 0, cnt = arp.length; i < cnt; i++) { // Iterate parent values\r\n\t\tvar p = arp[i];\r\n\t\tif (!p.length) // Empty parent\r\n\t\t\t//continue; // Allow\r\n\t\t\treturn args.valid = false; // Disallow\r\n\t\tvar val = row[\"ff\" + ((i > 0) ? i + 1 : \"\")]; // Filter fields start from the 6th field\r\n\t\tif (!$.isUndefined(val) && !p.includes(String(val))) // Filter field value not in parent field values\r\n\t\t\treturn args.valid = false; // Returns false if invalid\r\n\t}\r\n});\r\n\r\n// Fix z-index of multiple modals\r\n$document.on(\"show.bs.modal\", \".modal\", function () {\r\n\tvar zIndex = 1050 + $(\".modal:visible\").length;\r\n\t$(this).css(\"z-index\", zIndex);\r\n\tsetTimeout(function () {\r\n\t\t$(\".modal-backdrop\").not(\".modal-stack\").css(\"z-index\", zIndex - 1).addClass(\"modal-stack\");\r\n\t}, 0);\r\n});\r\n\r\n// Fix scrolling of multiple modals\r\n$document.on(\"hidden.bs.modal\", \".modal\", function () {\r\n\t$(\".modal:visible\").length && $(\"body\").addClass(\"modal-open\");\r\n});","import $ from 'jquery';\r\n\r\n// Extend jQuery\r\n$.extend({\r\n\tisBoolean: function(o) {\r\n\t\treturn typeof o === 'boolean';\r\n\t},\r\n\tisNull: function(o) {\r\n\t\treturn o === null;\r\n\t},\r\n\tisNumber: function(o) {\r\n\t\treturn typeof o === 'number' && isFinite(o);\r\n\t},\r\n\tisObject: function(o) {\r\n\t\treturn (o && (typeof o === 'object' || this.isFunction(o))) || false;\r\n\t},\r\n\tisString: function(o) {\r\n\t\treturn typeof o === 'string';\r\n\t},\r\n\tisUndefined: function(o) {\r\n\t\treturn typeof o === 'undefined';\r\n\t},\r\n\tisValue: function(o) {\r\n\t\treturn (this.isObject(o) || this.isString(o) || this.isNumber(o) || this.isBoolean(o));\r\n\t},\r\n\tisDate: function(o) {\r\n\t\treturn this.type(o) === 'date' && o.toString() !== 'Invalid Date' && !isNaN(o);\r\n\t},\r\n\tlater: function(when, o, fn, data, periodic) {\r\n\t\twhen = when || 0;\r\n\t\to = o || {};\r\n\t\tvar m = fn, d = data, f, r;\r\n\t\tif (this.isString(fn))\r\n\t\t\tm = o[fn];\r\n\t\tif (!m)\r\n\t\t\treturn;\r\n\t\tif (!this.isUndefined(data) && !this.isArray(d))\r\n\t\t\td = [data];\r\n\t\tf = function() {\r\n\t\t\tm.apply(o, d || []);\r\n\t\t};\r\n\t\tr = (periodic) ? setInterval(f, when) : setTimeout(f, when);\r\n\t\treturn {\r\n\t\t\tinterval: periodic,\r\n\t\t\tcancel: function() {\r\n\t\t\t\tif (this.interval) {\r\n\t\t\t\t\tclearInterval(r);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tclearTimeout(r);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n});","import $ from 'jquery';\r\n\r\n/**\r\n * jQuery.fields() plugin\r\n *\r\n * @param {string|undefined} fldvar - Field variable name or undefined\r\n * If field variable name, returns jQuery object of the specified field element(s).\r\n * If unspecified, returns object of jQuery objects of all fields.\r\n * @returns jQuery object\r\n */\r\n$.fn.fields = function(fldvar) { // Note: fldvar has NO \"x_\" prefix\r\n var rec = {},\r\n id = this.attr(\"id\"),\r\n obj = this[0],\r\n m = id.match(/^[xy](\\d*)_/),\r\n f, tbl, infix;\r\n if (m) { // \"this\" is input element\r\n f = ew.getForm(obj); // form\r\n tbl = this.data(\"table\"); // table var\r\n infix = m[1]; // row index\r\n } else if (obj && obj.htmlForm) { // \"this\" is form\r\n f = obj.$element; // form\r\n tbl = obj.id.replace(new RegExp(\"^f|\" + obj.pageId + \"$\", \"g\"), \"\"); // table var\r\n infix = $(obj.htmlForm).data(\"rowindex\"); // row index\r\n }\r\n var selector = \"[data-table\" + (tbl ? \"=\" + tbl : \"\") + \"][data-field\" + (fldvar ? \"=x_\" + fldvar : \"\") + \"]\";\r\n if ($.isValue(infix))\r\n selector += \"[name^=x\" + infix + \"_]\";\r\n if (f && selector) {\r\n $(f).find(selector).each(function() {\r\n var key = this.getAttribute(\"data-field\").substr(2), name = this.getAttribute(\"name\");\r\n key = (/^y_/.test(name)) ? \"y_\" + key : key; // Use \"y_fldvar\" as key for 2nd search input\r\n rec[key] = (rec[key]) ? rec[key].add(this) : $(this); // Create jQuery object for each field\r\n });\r\n }\r\n return (fldvar) ? rec[fldvar] : rec;\r\n};\r\n$.fn.extend({\r\n // Get jQuery object of the row (<div> or <tr>)\r\n row: function() {\r\n var $row = this.closest(\"#r_\" + this.data(\"field\")?.substr(2));\r\n if (!$row[0])\r\n $row = this.closest(\".ew-table > tbody > tr\"); // Grid page\r\n return $row;\r\n },\r\n // Show/Hide field\r\n visible: function(v) {\r\n var $p = this.closest(\"#r_\" + this.data(\"field\")?.substr(2)); // Find the row\r\n if (!$p[0])\r\n $p = this.closest(\"[id^=el]\"); // Find the span\r\n if (typeof(v) != \"undefined\") {\r\n $p.toggle(v);\r\n return this;\r\n } else {\r\n return $el.is(\":visible\");\r\n }\r\n },\r\n // Get/Set field \"readonly\" attribute\r\n // Note: This attribute is ignored if the value of the type attribute is hidden, range, color, checkbox, radio, file, or a button type\r\n readonly: function(v) {\r\n if (typeof(v) != \"undefined\") {\r\n this.prop(\"readOnly\", v);\r\n return this;\r\n } else {\r\n return this.prop(\"readOnly\");\r\n }\r\n },\r\n // Get/Set field \"disabled\" attribute\r\n // Note: A disabled control's value isn't submitted with the form\r\n disabled: function(v) {\r\n if (typeof(v) != \"undefined\") {\r\n this.prop(\"disabled\", v);\r\n return this;\r\n } else {\r\n return this.prop(\"disabled\");\r\n }\r\n },\r\n // Get/Set field value(s)\r\n // Note: Return array if select-multiple\r\n value: function(v) {\r\n var type = this.attr(\"type\");\r\n if (typeof(v) != \"undefined\") {\r\n if (!Array.isArray(v))\r\n v = [v];\r\n var type = this.attr(\"type\");\r\n var el = (type == \"radio\" || type == \"checkbox\") ? this.get() : this[0];\r\n if (ew.isHiddenTextArea(this)) {\r\n this.val(v).data(\"editor\").save();\r\n } else {\r\n ew.selectOption(el, v);\r\n if (this.hasClass(\"select2-hidden-accessible\")) { // Select2\r\n this.trigger(\"change\");\r\n }\r\n }\r\n return this;\r\n } else {\r\n if (type == \"checkbox\") {\r\n var val = ew.getOptionValues(this.get());\r\n return (this.length == 1) ? val.join() : val;\r\n } else if (type == \"radio\") {\r\n return ew.getOptionValues(this.get()).join();\r\n } else if (ew.isHiddenTextArea(this)) {\r\n this.data(\"editor\").save();\r\n return this.val();\r\n } else {\r\n return this.val();\r\n }\r\n }\r\n },\r\n // Get field value as number\r\n toNumber: function() {\r\n return ew.parseNumber(this.value());\r\n },\r\n // Get field value as moment object\r\n toDate: function() {\r\n return ew.parseDate(this.value(), this.data(\"format\"));\r\n },\r\n // Get field value as native Date object\r\n toJsDate: function() {\r\n return ew.parseDate(this.value(), this.data(\"format\")).toDate();\r\n }\r\n});","import $ from 'jquery';\r\n\r\n// Init Treeview later\r\n$(window).off(\"load.lte.treeview\");\r\n\r\n// Treeview\r\nvar Treeview = adminlte.Treeview;\r\nTreeview.prototype._toggle = Treeview.prototype.toggle;\r\nTreeview.prototype.toggle = function toggle(event) {\r\n\tvar $relativeTarget = $(event.currentTarget), treeviewMenu = $relativeTarget.next(),\r\n\t\thref = $relativeTarget.attr(\"href\"), $text = $(event.target).closest(\".menu-item-text\");\r\n\tif (!treeviewMenu.is(\".nav-treeview\") || $text[0] && href && href != \"#\" && href != \"javascript:void(0);\") // Menu text with href\r\n\t\treturn;\r\n\tthis._toggle(event);\r\n};\r\n\r\n// Dropdown menu parent item with href // Override AdminLTE\r\n$(\"ul.dropdown-menu [data-toggle=dropdown]\").on(\"click\", function(e) {\r\n\tvar href = $(this).attr(\"href\");\r\n\tif (href && href != \"#\" && e.target.nodeName == \"SPAN\")\r\n\t\twindow.location = href;\r\n});"],"names":["undefined","require$$0","Blob","FormData","prototype","keys","normalizeValue","value","filename","File","type","lastModified","ensureArgs","args","expected","length","TypeError","normalizeArgs","name","String","normalizeLinefeeds","replace","each","arr","cb","i","global","window","self","this","_FormData","_send","XMLHttpRequest","send","_fetch","Request","fetch","_sendBeacon","navigator","sendBeacon","stringTag","Symbol","toStringTag","a","b","d","c","blob","t","Date","Object","defineProperties","lastModifiedDate","toString","defineProperty","FormDataPolyfill","form","_data","create","elements","elm","disabled","files","file","append","options","opt","selected","checked","arguments","apply","map","push","delete","entries","forEach","callback","thisArg","call","get","getAll","has","set","values","fd","boundary","Math","random","chunks","iterator","setRequestHeader","toLowerCase","_hasContentType","data","input","init","body","url","MultiPage","formid","$form","formID","pageIndex","maxPageIndex","minPageIndex","pageIndexes","$pages","$collapses","isTab","isCollapse","lastPageSubmit","hideDisabledButton","hideInactivePages","lockTabs","hideTabs","showPagerTop","showPagerBottom","pagerTemplate","_show","e","preventDefault","_properties","$","isObject","obj","p","substr","includes","tpl","ew","language","phrase","closest","before","after","find","click","off","filter","parent","prev","toggleClass","next","hide","pageShow","on","$this","hasClass","$btn","prop","toggle","is","gotoPage","$page","eq","$p","gotoPageByIndex","gotoPageByElement","el","parseInt","gotoPageByElementId","id","$el","togglePage","show","render","index","sort","$tabs","target","attr","m","googleMaps","google","maps","event","trigger","setCenter","$bodies","userLevelId","checkInteger","level","userLevelName","elId","document","getElementById","trim","sameText","required","fieldName","css","hasValue","fileRequired","elFn","mismatchPassword","startsWith","elPwd","between","x","z","val","passwordStrength","isMaskedPassword","username","raw","match","RegExp","escapeRegExChars","INVALID_USERNAME_CHARACTERS","password","ENCRYPTED_PASSWORD","INVALID_PASSWORD_CHARACTERS","email","getValue","checkEmail","emails","cnt","err","checkEmails","datetime","dateFormat","fn","phraseId","newSubStr","DATE_SEPARATOR","checkShortDate","checkDate","checkShortEuroDate","checkEuroDate","checkShortUSDate","checkUSDate","checkDateDef","DATE_FORMAT","time","checkTime","float","checkNumber","range","min","max","checkRange","integer","phone","checkPhone","zip","checkZip","creditCard","checkCreditCard","ssn","checkSsn","guid","checkGuid","regex","pattern","checkByRegEx","custom","captcha","recaptcha","grecaptcha","getResponse","dataset","FormBase","pageId","_initiated","$element","htmlForm","initSearchPanel","modified","validateRequired","validate","emptyRow","multiPage","autoSuggests","lists","disableForm","getForm","addClass","enableForm","removeClass","appendHidden","$dp","ar","serializeArray","o","appendTo","canSubmit","updateTextArea","$dps","dp","j","test","$els","not","submit","action","f","result","isBoolean","getList","compileTemplates","list","template","isString","templates","getElement","getElements","selector","updateLists","rowindex","isNumber","confirm","querySelector","removeSpinner","fixId","multiple","split","prefix","endsWith","join","actions","promises","parents","parentFields","slice","ajax","pvalues","getOptionValues","updateOptions","Promise","resolve","reject","setTimeout","shift","AJAX_DELAY","all","then","source","catch","error","console","log","createAutoSuggest","settings","assign","limit","AUTO_SUGGEST_MAX_ENTRIES","autoSuggestSettings","AutoSuggest","initEditors","ed","active","save","destroyEditor","destroy","onError","msg","initUpload","later","upload","setupFilters","filters","filterList","$sf","$df","$delete","$save","saveFilters","SEARCH_FILTER_OPTION","localStorage","setItem","JSON","stringify","$body","currentPage","dataType","done","success","always","prompt","sanitize","prevAll","remove","$submenu","Array","isArray","splice","insertBefore","method","TOKEN_NAME_KEY","TOKEN_NAME","ANTIFORGERY_TOKEN_KEY","ANTIFORGERY_TOKEN","IS_LOGGEDIN","IS_SYS_ADMIN","CURRENT_USER_NAME","item","getItem","parseJson","grep","isSearch","hasFormData","collapse","text","loadjs","ready","bind","$tab","getAttribute","$panel","$container","width","CONFIRM_CANCEL","href","location","forms","add","Field","fldvar","validators","invalid","validator","addValidator","addError","_error","clearErrors","clearValidators","_element","shouldValidate","updateFeedback","errorMessage","jQuery","html","setInvalid","focus","setFocus","from","_checkbox","Form","addField","fields","getField","addFields","field","addCustomError","makeVisible","element","$pane","validateFields","rowIndex","row","AjaxLookup","elementId","formElement","pf","debounce","recordCount","formatResult","isAutoSuggest","jsRenderHelpers","displayValue","generateRequest","page","LANGUAGE_ID","getUserParams","arp","MULTIPLE_OPTION_SEPARATOR","getUrl","query","start","params","URLSearchParams","q","n","rnd","getApiUrl","API_LOOKUP_ACTION","prepare","transform","results","totalRecordCount","records","_isAutoSuggest","SelectionListOption","emptyObj","typeahead","$input","timer","minWidth","maxHeight","highlight","hint","minLength","delay","display","forceSelection","forceSelect","setValue","v","findIndex","option","lf","syncResults","asyncResults","cancel","count","menu","$node","more","ta","datasets","_append","scrollTop","$lastSuggestion","outerHeight","isOpen","empty","$item","getActiveSelectable","close","async","$more","one","stopPropagation","$menu","$dataset","Forms","_forms","ids","Utils","Select2CustomOption","decorated","$results","displayMessage","escapeMarkup","clear","hideLoading","$message","message","className","children","select2","cols","len","$row","last","$option","createElement","attrs","matches","Element","msMatchesSelector","webkitMatchesSelector","_resultId","title","setAttribute","StoreData","currentUrl","URL","$document","_removeSpinner","frm","createSelect","selectId","amd","require","opts","ResultsList","InfiniteScroll","HidePlaceholder","SelectOnClose","selectOptions","resultsAdapter","dropdown","columns","customOption","Decorate","getSelect2CustomOptionClass","iconClass","templateResult","placeholder","selectOnClose","lookup","term","processResults","df","df2","df3","df4","pagination","minimumResultsForSearch","Infinity","initIcons","tooltip","container","IS_MOBILE","placement","sanitizeFn","initPasswordOptions","pStrength","MIN_PASSWORD_STRENGTH","strength","percentage","$pst","$pb","outerWidth","pct","pGenerator","GENERATE_PASSWORD_LENGTH","GENERATE_PASSWORD_UPPERCASE","GENERATE_PASSWORD_LOWERCASE","GENERATE_PASSWORD_NUMBER","GENERATE_PASSWORD_SPECIALCHARS","pwd","triggerHandler","PATH_BASE","API_URL","qs","route","encodeURIComponent","sanitizeUrl","search","searchParams","key","setSessionTimer","timeoutTime","keepAliveTimer","counter","useKeepAlive","SESSION_KEEP_ALIVE_INTERVAL","IS_AUTOLOGIN","keepAlive","API_SESSION_ACTION","token","API_JWT_TOKEN","resetTimer","SESSION_TIMEOUT_COUNTDOWN","SESSION_TIMEOUT","timeout","timerInterval","floor","Swal","fire","sweetAlertSettings","showConfirmButton","confirmButtonText","timerProgressBar","allowOutsideClick","allowEscapeKey","onBeforeOpen","setInterval","content","getContent","sec","timeleft","round","getTimerLeft","textContent","onClose","clearInterval","setTimer","dismiss","DismissReason","TIMEOUT_URL","keepAliveInterval","initExportLinks","fileDownload","initMultiSelectCheckboxes","$cbs","_update","win","jq","swal","doc","$doc","isHtml","showLoading","cache","xhrFields","responseType","textStatus","jqXHR","createObjectURL","cd","getResponseHeader","style","download","appendChild","revokeObjectURL","fail","showValidationMessage","response","lazyLoad","LAZY_LOAD","src","updateDropdownPosition","select","_positionDropdown","_resizeDropdown","initLightboxes","USE_COLORBOX","lightboxSettings","current","previous","xhrError","imgError","colorbox","rel","initPdfObjects","EMBED_PDF","PDFObjectOptions","PDFObject","embed","fallbackLink","initTooltips","popover","parse","searchOperatorChanged","parm","$fld","$fld2","$y","hasY","$cond","hasCond","$and","$opr","opr","$opr2","opr2","isBetween","isNullOpr","isNullOpr2","hideOpr2","hideX","hideY","initForms","isFunction","_prompt","showCancelButton","cancelButtonText","inputValidator","toast","toastOptions","Toasts","position","toUpperCase","substring","first","showToast","class","autohide","autoHideSuccessMessage","autoHideSuccessMessageDelay","$f","els","setSearchType","parentId","change","isUndefined","childFields","promise","getId","names","$elf","typ","elf","_updateOptions","autoFillTargetFields","autoFill","fo","frmo","$obj","clearOptions","addOpt","valid","newOption","selectOption","_updateSibling","lookupOptions","ds","isModalLookup","root","applyTemplate","divId","tmplId","classId","exportType","enabled","replaceWith","querySelectorAll","subtmpl","rowspan","childNodes","node","rowSpan","views","hasTag","jsRenderAttributes","scripts","div","innerHTML","tmpl","_alert","$meta","$div","PDF_STYLESHEET_FILENAME","PROJECT_STYLESHEET_FILENAME","responseText","str","param","post","showMessage","toggleGroup","$tr","idx","isValue","convertToBool","valueChanged","fobj","infix","fld","bool","nelm","oelm","fnelm","oldvalue","newvalue","setLanguage","submitAction","srcElement","currentForm","isPost","isMultiple","keySelected","_success","_submit","k","serialize","_export","sel","end","removeSpaces","isHiddenTextArea","clearError","jquery","isHidden","shiftKey","ctrlKey","confirmDelete","clickDelete","clearDelete","selectAllKey","selectAll","tbl","tBodies","rows","r","$r","setColor","updateSelected","$tbl","ROWTYPE_ADD","ROWTYPE_EDIT","clearSelected","siblings","addBack","clickMultiCheckbox","$cb","setupTable","force","$rows","mouseOver","mouseOut","$target","cells","parentsUntil","RESPONSIVE_TABLE_CLASS","clientHeight","offsetHeight","attach","edit","sw","setupGrid","grid","$grid","multi","rowcnt","USE_OVERLAY_SCROLLBARS","overlayScrollbars","overlayScrollbarsOptions","addGridRow","$tpl","$lastrow","clone","suffix","$elkeycnt","keycnt","attributes","removeData","addScript","scrollHeight","deleteGridRow","rowidx","keycntname","_delete","$keyact","htmlEncode","table","getAncestorBy","parentNode","nodeType","classList","contains","o1","o2","sameString","getOptionTexts","lo","hasAttribute","removeAll","valueSeparator","sep","optionHtml","OPTION_HTML_TEMPLATE","optionsHtml","MAX_OPTION_COUNT","df1","selectedIndex","vals","isAutoSelect","ajaxSend","jqxhr","apiUrl","isApi","allowed","objUrl","hostname","IS_WINDOWS_AUTHENTICATION","API_JWT_AUTHORIZATION_HEADER","ajaxStart","addSpinner","_ajaxStop","ajaxStop","ajaxError","executeScript","matchAll","stripScript","scr","removeScript","getOptions","addOptionDialogShow","_hide","$dlg","addOptionDialog","_submitSuccess","lnk","objName","API_OBJECT_NAME","re","modal","linkField","dfs","displayFields","ffs","filterFields","pfs","lfv","ff","txt","$lu","nv","arOpt","obj2","ar2","description","failureMessage","_fail","status","statusText","btn","API_ADD_ACTION","filterFieldVars","nodeName","modalDialogHide","$bd","ewjtable","reload","modalDialogShow","modalDialog","showing","size","_caption","$lnk","caption","_button","isNull","_always","_current","pathname","handleResult","view","warningMessage","successMessage","footer","cf","ct","alert","modalLookupShow","modalLookupDialog","oid","_format","setAutoSuggest","txts","useText","srch","record","arLinkValue","_timer","$search","LOOKUP_DELAY","linkValue","paging","pageSize","pageSizes","pageSizeChangeArea","pageList","selecting","selectingCheckboxes","multiselect","postData","jtParams","recperpage","messages","serverCommunicationError","loadingMessage","spinnerClass","noDataAvailable","pagingInfo","pageSizeChangeLabel","gotoPageLabel","recordsLoaded","selectedRows","selectionChanged","indexOf","importDialogShow","importDialog","$data","$progress","enableButtons","classname","$msg","hideMessage","showProgress","pc","hideProgress","uploadProgress","loaded","total","updateProgress","tcnt","totalCount","importProgress","API_PROGRESS_ACTION","API_FILE_TOKEN_NAME","importComplete","maxErrorCount","fileResults","fileResult","scnt","successCount","fcnt","failCount","showLog","failList","ecnt","importFail","importFiles","filetoken","API_ACTION_NAME","xhr","formData","session","SESSION_ID","importUploadOptions","acceptFileTypes","IMPORT_FILE_ALLOWED_EXT","fileupload","API_UPLOAD_ACTION","autoUpload","singleFileUploads","maxFileSize","maxNumberOfFiles","minFileSize","beforeSend","importfiles","ok","processfail","errorThrown","progressall","hdr","dest_array","destEl","v0","pid","$tt","trig","dir","CSS_FLIP","wd","$tip","getTipElement","emailDialogShow","emailDialog","Validators","MAX_EMAIL_RECIPIENT","exportid","exportWithCharts","showDrillDown","arUrl","redirect","pos","height","ypos","offset","top","pageY","xpos","left","pageX","drillDownCharts","cht","dispose","_convert","API_LIST_ACTION","API_VIEW_ACTION","API_DELETE_ACTION","responseJSON","toggleSearchOperator","object_value","checkDateEx","format","arDT","sYear","sMonth","sDay","exec","wrksep","arD","unformatYear","checkDay","yr","UNFORMAT_YEAR","checkYear","checkMonth","maxDay","DECIMAL_POINT","ts","THOUSANDS_SEP","stringToFloat","parseFloat","stringToDate","min_value","max_value","TIME_SEPARATOR","creditcard_string","doubledigit","tempdigit","checkdigit","charAt","email_cnt","arEmails","arg","$alert","$heading","detach","$content","w","$toast","nid","readonly","$ft","$fn","$fa","$fs","$exts","$maxsize","$maxfilecount","$label","label","_done","MULTIPLE_UPLOAD_SEPARATOR","_deleted","originalEvent","fid","_change","l","_confirmDelete","_changed","_clicked","_downloadTemplate","_uploadTemplate","_completed","context","_added","uploadUrl","API_JQUERY_UPLOAD_ACTION","exts","maxsize","maxfilecount","multipart","loadImageFileTypes","loadVideoFileTypes","loadAudioFileTypes","filesContainer","uploadTemplateId","downloadTemplateId","uploadTemplate","downloadTemplate","previewMaxWidth","UPLOAD_THUMBNAIL_WIDTH","previewMaxHeight","UPLOAD_THUMBNAIL_HEIGHT","dropZone","pasteZone","readOnly","Event","parseNumber","config","regexBits","separator","thousandsSeparator","decimal","decimalSeparator","isFinite","formatNumber","isNeg","output","decPlaces","decimalPlaces","decSep","thouSep","decIndex","newOutput","toFixed","lastIndexOf","parseDate","makeArray","def","timesep","moment","formatDate","initPage","$tables","initGridPanel","renderJsTemplates","adminlte","Treeview","_jQueryInterface","$window","IS_SCREEN_SM_MIN","$rpt","$card","mh","USE_JAVASCRIPT_MESSAGE","newUrl","togglePassword","currentTarget","$i","exportId","exportUrl","now","exp","exportCharts","charts","toBase64Image","API_EXPORT_CHART_ACTION","_fixLayoutHeightTimer","fixLayoutHeight","layout","addEventHandlers","tblVar","events","fldVar","matchMedia","MOBILE_DETECT","MobileDetect","userAgent","mobile","IS_IE","version","functions","debugMode","DEBUG","hash","animate","zIndex","extend","isDate","isNaN","when","periodic","interval","clearTimeout","rec","visible","toNumber","toDate","toJsDate","_toggle","$relativeTarget","treeviewMenu","$text"],"mappings":"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"}