{"version":3,"sources":["./node_modules/@angular-devkit/build-angular/node_modules/regenerator-runtime/runtime.js","./src/$_lazy_route_resource lazy namespace object","./src/app/_directives/analytic/analytic.component.ts","./src/app/_directives/analytic/analytic.component.html","./src/app/_directives/analytic/analytic.service.ts","./src/app/_pipes/no-decimal.pipe.ts","./src/app/_services/dynamic-component.service.ts","./src/app/_services/general.service.ts","./src/app/_services/utilities.service.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/authentication/404/not-found.component.ts","./src/app/authentication/404/not-found.component.html","./src/app/authentication/authentication.module.ts","./src/app/authentication/authentication.routing.ts","./src/app/authentication/login/login.component.ts","./src/app/authentication/login/login.component.html","./src/app/authentication/signup/signup.component.ts","./src/app/authentication/signup/signup.component.html","./src/app/core/authentication/authentication.guard.ts","./src/app/core/authentication/authentication.service.ts","./src/app/core/authentication/index.ts","./src/app/core/class/baseAPI.class.ts","./src/app/core/class/index.ts","./src/app/core/constants.ts","./src/app/core/core.module.ts","./src/app/core/http/api-prefix.interceptor.ts","./src/app/core/http/error-handler.interceptor.ts","./src/app/core/http/http.service.ts","./src/app/core/http/index.ts","./src/app/core/index.ts","./src/app/core/local-storage.service.ts","./src/app/core/route-reusable-strategy.ts","./src/app/core/service/error-message.service.ts","./src/app/core/service/index.ts","./src/app/core/service/user.service.ts","./src/app/core/service/util.service.ts","./src/app/dashboard/dashboard.module.ts","./src/app/dashboard/dashboard.routing.ts","./src/app/dashboard/dashboard/dashboard.component.ts","./src/app/dashboard/dashboard/dashboard.component.html","./src/app/modules/button-loading/button-loading.component.ts","./src/app/modules/button-loading/button-loading.directive.ts","./src/app/modules/button-loading/button-loading.module.ts","./src/app/shared/breadcrumb/breadcrumb.component.ts","./src/app/shared/breadcrumb/index.ts","./src/app/shared/button-loader/button-loader.component.ts","./src/app/shared/button-loader/button-loader.component.html","./src/app/shared/button-loader/index.ts","./src/app/shared/form-error-wrapper/form-error-wrapper.component.ts","./src/app/shared/form-error-wrapper/form-error-wrapper.component.html","./src/app/shared/index.ts","./src/app/shared/layouts/blank/blank.component.ts","./src/app/shared/layouts/blank/blank.component.html","./src/app/shared/layouts/blank/index.ts","./src/app/shared/layouts/full/full.component.ts","./src/app/shared/layouts/full/full.component.html","./src/app/shared/layouts/full/index.ts","./src/app/shared/layouts/index.ts","./src/app/shared/layouts/partials/footer/footer.component.ts","./src/app/shared/layouts/partials/footer/footer.component.html","./src/app/shared/layouts/partials/header/header.component.ts","./src/app/shared/layouts/partials/header/header.component.html","./src/app/shared/shared.module.ts","./src/app/shared/spinner.component.ts","./src/app/stripe/stripe-pay-button/stripe-pay-button.component.ts","./src/app/stripe/stripe-pay-button/stripe-pay-button.component.html","./src/app/stripe/stripe.module.ts","./src/app/survey/page-survey/page-survey.component.ts","./src/app/survey/page-survey/page-survey.component.html","./src/app/survey/survey-routing.module.ts","./src/app/survey/survey.module.ts","./src/app/survey/survey.service.ts","./src/app/survey/survey/survey.component.ts","./src/app/survey/survey/survey.component.html","./src/environments/environment.ts","./src/main.ts"],"names":["runtime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","undefined","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","makeInvokeMethod","tryCatch","fn","obj","arg","type","call","err","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","constructor","displayName","defineIteratorMethods","forEach","method","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","__await","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","value","then","unwrapped","error","previousPromise","enqueue","callInvokeWithMethodAndArg","async","Promise","iter","next","done","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","info","resultName","nextLoc","toString","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","keys","object","key","reverse","length","pop","iterable","iteratorMethod","isNaN","i","skipTempReset","prev","charAt","slice","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","Function"],"mappings":"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","file":"main.77c1c704e5ceaa8fc284.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 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 GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\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 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 if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\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 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","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-analytic',\n templateUrl: './analytic.component.html',\n styleUrls: ['./analytic.component.css']\n})\nexport class AnalyticComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

analytic works!

\n","declare const gtag: any;\ndeclare const _paq: any;\n\nimport { Injectable } from '@angular/core';\n\n// import { ServerService } from './../../_services/server.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AnalyticService {\n\n\n\n constructor(\n // private ServerService: ServerService,\n ) { }\n\n\n\n public process(input: string): boolean {\n\n var action, category, extractedInput, label, value;\n\n if (input.indexOf('-') !== -1) {\n extractedInput = input.split('-');\n action = extractedInput[0];\n category = extractedInput[1] || '';\n label = extractedInput[2] || '';\n value = extractedInput[3] || '';\n }\n\n this.send(action, category, label, value);\n\n return true;\n\n }\n\n\n\n public sendPageviewToGoogle(): void {\n // gtag.pageview();\n\n // // or with custom params\n\n // gtag.pageview({\n // page_title: 'Lesson Feed',\n // page_path: '/lessons',\n // page_location: 'https://angularfirebase.com/lessons'\n // });\n }\n\n\n\n public send(action: string, category: string, label?: string, value?: string): void {\n // https://developers.google.com/analytics/devguides/collection/gtagjs/events\n\n // Because this is a service, I can programmatically call this OR use the appAnalytics directive\n\n // Due to the way the the data shows in GA and the\n // way I want to use the appAnalytic tag...switch action and category\n // appAnalytic=\"CallAdvisor-{{ ( !user ) ? 'NotLoggedIn' : 'LoggedIn' }}-{{ ( user && user.UserCSCEntityID ) ? user.UserCSCEntityID : '' }}\"\n // OR easier,\n\n // gtag('event', action, {\n // gtag('event', category, {\n // // event_category: category,\n // event_category: action,\n // event_label: label,\n // // value: value // is a non-negative integer that will appear as the event value.\n // });\n\n // Can't have empty values, so we have to create an array like this to send\n let sendArray = ['trackEvent', action, category];\n if (label)\n sendArray.push(label);\n if (value)\n sendArray.push(value);\n\n _paq.push(sendArray);\n\n // Is this stressing the server too much?\n // this.ServerService.post('/general/addAnalytic', { ActivityType: action, Data1: category, Data2: label }).subscribe();\n }\n\n\n\n public sendToYosemite(): void {\n\n }\n\n\n\n}\n\n\n\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'noDecimal'\n})\nexport class NoDecimalPipe implements PipeTransform {\n\n transform(value, args?) {\n return value.toString().replace(/\\./g, '');\n }\n\n}\n","import { Observable } from 'rxjs';\nimport { Injectable, ComponentFactoryResolver, ViewContainerRef } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { StripePayButtonComponent } from './../stripe/stripe-pay-button/stripe-pay-button.component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicComponentService {\n\n\n\n private classMappings = {\n StripePayButtonComponent: StripePayButtonComponent,\n };\n\n\n\n constructor(\n private ComponentFactoryResolver: ComponentFactoryResolver,\n ) { }\n\n\n\n public AddDynamicComponentToViewContainerRef(TemporaryViewContainerRef: ViewContainerRef, Element: Element) {\n const ComponentClass = Element.getAttribute('id');\n const Options = JSON.parse(Element.getAttribute('data-options'));\n\n if (TemporaryViewContainerRef !== null) {\n const componentFactory = this.ComponentFactoryResolver.resolveComponentFactory(this.classMappings[ComponentClass]);\n const componentRef = TemporaryViewContainerRef.createComponent(componentFactory);\n document.querySelector('#' + ComponentClass).appendChild(componentRef.location.nativeElement); // If you don't do this, then the component just stays in the TemporaryViewContainerRef element\n\n if (Options)\n for (let key in Options)\n componentRef.instance[key] = Options[key];\n\n return componentRef;\n }\n\n }\n\n\n\n}\n","import { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GeneralService {\n\n\n\n constructor(\n private HttpClient: HttpClient,\n ) { }\n\n\n\n public checkVersion(version): Observable {\n return this.HttpClient.get('/general/checkVersion', { params: { version: version } });\n }\n\n\n\n}\n","import { BehaviorSubject, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\n// import * as html2pdf from 'html2pdf.js'\n// import { IMultiSelectOption } from 'angular-2-dropdown-multiselect';\nimport { addDays, addMonths, differenceInDays, differenceInMonths } from 'date-fns';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UtilitiesService {\n\n\n\n constructor() { }\n\n\n\n public cloneObject(obj, deep = true) {\n let that = this;\n\n var result = {};\n for (let key in obj) {\n if (obj[key] instanceof Date) {\n result[key] = new Date(obj[key].getTime());\n } else if (deep && obj[key] instanceof Object) {\n if (obj[key] instanceof Array) {\n result[key] = [];\n\n obj[key].forEach(function (item) {\n if (item instanceof Date) {\n result[key].push(new Date(item.getTime()));\n } else if (item instanceof Object) {\n result[key].push(that.cloneObject(item, true));\n } else {\n result[key].push(item);\n }\n });\n } else {\n result[key] = that.cloneObject(obj[key], deep);\n }\n } else {\n result[key] = obj[key];\n }\n }\n return result;\n }\n\n\n\n public DeepGet(obj, properties) {\n // USAGE - console.log(this.UtilitiesService.DeepGet({ abc: { def: 123 } }, ['abc', 'def']));\n\n // If we have reached an undefined/null property\n // then stop executing and return undefined.\n if (obj === undefined || obj === null)\n return;\n\n // If the path array has no more elements, we've reached\n // the intended property and return its value.\n if (properties.length === 0)\n return obj;\n\n // Prepare our found property and path array for recursion\n var foundSoFar = obj[properties[0]];\n var remainingProperties = properties.slice(1);\n\n return this.DeepGet(foundSoFar, remainingProperties);\n }\n\n\n\n /**\n * Deep merge two objects.\n * @param target\n * @param ...sources\n */\n public DeepMerge(target, ...sources) {\n if (!sources.length) return target;\n const source = sources.shift();\n\n if (this.IsObject(target) && this.IsObject(source)) {\n for (const key in source) {\n if (this.IsObject(source[key])) {\n if (!target[key]) Object.assign(target, { [key]: {} });\n this.DeepMerge(target[key], source[key]);\n } else {\n Object.assign(target, { [key]: source[key] });\n }\n }\n }\n\n return this.DeepMerge(target, ...sources);\n }\n\n\n\n /**\n * Retrieve a fixed number of elements from an array, evenly distributed but\n * always including the first and last elements.\n *\n * @param {Array} items - The array to operate on.\n * @param {number} n - The number of elements to extract.\n * @returns {Array}\n */\n public DistributedCopy(items, n) {\n var elements = [items[0]];\n var totalItems = items.length - 2;\n var interval = Math.floor(totalItems / (n - 2));\n for (var i = 1; i < n - 1; i++)\n elements.push(items[i * interval]);\n elements.push(items[items.length - 1]);\n return elements;\n }\n\n\n\n /**\n * Method is used to download file.\n * @param data - Array Buffer data\n * @param type - type of the document.\n * \n * @example this.UtilitiesService.DownLoadFile(response, 'application/ms-excel');\n */\n public DownloadFile(data: any, type: string) {\n let blob = new Blob([data], { type: type });\n let url = window.URL.createObjectURL(blob);\n let pwa = window.open(url);\n if (!pwa || pwa.closed || typeof pwa.closed == 'undefined')\n alert('Please disable your Pop-up blocker and try again.');\n }\n\n\n\n // public FormatForMultiSelect(data, IDLabel, NameLabel, ParentID?) {\n // let DataFormatted: IMultiSelectOption[] = [];\n\n // for (let i = 0; i < data.length; i++) {\n\n // let ID = Number.isInteger(data[i][IDLabel]) ? parseInt(data[i][IDLabel]) : data[i][IDLabel];\n // ParentID = Number.isInteger(data[i][ParentID]) ? parseInt(data[i][ParentID]) : data[i][ParentID];\n\n // DataFormatted.push(\n // {\n // id: ID,\n // name: data[i][NameLabel],\n // parentId: ParentID,\n // }\n // );\n\n // }\n\n // return DataFormatted;\n // }\n\n\n\n public IsEmptyObject(object) {\n for (var key in object) {\n if (object.hasOwnProperty(key))\n return false;\n }\n return true;\n }\n\n\n\n /**\n * Simple object check.\n * @param item\n * @returns {boolean}\n */\n public IsObject(item) {\n return (item && typeof item === 'object' && !Array.isArray(item));\n }\n\n\n\n public NumberInWords(num): string {\n num = num.toString();\n\n const a = [\n '',\n 'one ',\n 'two ',\n 'three ',\n 'four ',\n 'five ',\n 'six ',\n 'seven ',\n 'eight ',\n 'nine ',\n 'ten ',\n 'eleven ',\n 'twelve ',\n 'thirteen ',\n 'fourteen ',\n 'fifteen ',\n 'sixteen ',\n 'seventeen ',\n 'eighteen ',\n 'nineteen ',\n ];\n const b = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];\n\n if ((num = num.toString()).length > 9) {\n return 'overflow';\n }\n const n = ('000000000' + num).substr(-9).match(/^(\\d{2})(\\d{2})(\\d{2})(\\d{1})(\\d{2})$/);\n if (!n) {\n return '';\n }\n let str = '';\n // str += (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]] + ' ' + a[n[1][1]]) + 'crore ' : '';\n // str += (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]] + ' ' + a[n[2][1]]) + 'lakh ' : '';\n // str += (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]] + ' ' + a[n[3][1]]) + 'thousand ' : '';\n // str += (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]] + ' ' + a[n[4][1]]) + 'hundred ' : '';\n // str += (n[5] != 0) ? ((str != '') ? 'and ' : '') + (a[Number(n[5])] || b[n[5][0]] + ' ' + a[n[5][1]]) + 'only ' : '';\n str += n[5] !== '0' ? (str !== '' ? 'and ' : '') + (a[n[5]] || b[n[5][0]] + ' ' + a[n[5][1]]) + ' ' : '';\n return str;\n }\n\n\n\n public parse_url(query?) {\n if (!query && window && window.location && window.location.search) query = window.location.search.substring(1); // substring to remove the ? from the .search property\n\n var url = {\n query_string: location.search,\n query_string_object: {},\n url: location.pathname, // If no query string, this will be the only item in the object that's returned\n };\n\n if (!query)\n // If there's still nothing to parse\n return url;\n\n var vars = query.split('&');\n\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split('=');\n var key = decodeURIComponent(pair[0]);\n var value = decodeURIComponent(pair[1]);\n // If first entry with this name\n if (typeof url.query_string_object[key] === 'undefined') {\n url.query_string_object[key] = decodeURIComponent(value);\n // If second entry with this name\n } else if (typeof url.query_string_object[key] === 'string') {\n var arr = [url.query_string_object[key], decodeURIComponent(value)];\n url.query_string_object[key] = arr;\n // If third or later entry with this name\n } else {\n url.query_string_object[key].push(decodeURIComponent(value));\n }\n }\n\n return url;\n }\n\n\n\n public PDF = {\n /* ======================================================\n USAGE:\n const PDFElement = document.querySelector('.net-worth-pdf-report');\n const PDFStyles = this.UtilitiesService.PDF.ExtractCSS(PDFElement);\n this.UtilitiesService.PDF.Generate('Some name', PDFElement, PDFStyles.stylesheet);\n \n https://stackoverflow.com/questions/53613045/how-get-all-computed-css-properties-of-element-and-its-children-in-javascript\n \n FROM ARTICLE\n \n Here is something I came up with, basically pass the element you want to extract the styles of and ones of its children, and it will return you the stylesheet as a string. Open your console before running the snippet and you will see the output from the console.log.\n\n Because I wanted to support the extraction of every element even those without a selector, I had to replace each element id by a unique uuid specifically generated for them in order to facilitate the styling of your output. The problem with this approach is in case you are using ids for styling or for user interaction, you are going to loose such functionality on concerned elements after calling extractCSS.\n \n However, it is pretty trivial to use the oldId I'm passing to change back once your pdfKit process finished the generation. Simply call swapBackIds passing the elements returned by the function. You can see the difference of behavior if you uncomment the call in my snippet: the #root pink background would disappear because the styling targets an element id.\n \n All in all, you need to:\n \n Call extractCSS with the element you want to extract\n Generate your pdf using res.stylesheet\n Call swapBackIds with res.elements\n ====================================================== */\n\n // AddFSILogo: (PDF, InsertFSILogoBefore) => {\n // WORKS - but use the PDF.addImage (below)\n // var FSILogo = document.createElement('img');\n // FSILogo.setAttribute('src', 'data:image/png;base64,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');\n // FSILogo.setAttribute('width', '300px');\n\n // return InsertFSILogoBefore.parentNode.insertBefore(FSILogo, InsertFSILogoBefore);\n // },\n\n ExtractCSS: (element) => {\n if (!element) return { elements: [], stylesheet: '' }\n\n var raw = this.PDF.RecursiveExtract(element);\n var flat = this.PDF.Flatten(raw);\n\n this.PDF.SwapBackIDs(flat); // Automatically call\n\n return {\n elements: flat,\n stylesheet: flat.reduce(function (acc, cur) {\n var style = '#' + cur.id + ' {\\n' + cur.style + '\\n}\\n\\n'\n return acc + style\n }, ''),\n };\n },\n\n Flatten: (arr) => {\n // Flatten an array\n // https://stackoverflow.com/a/15030117/2054072\n return arr.reduce((flat, toFlatten) => {\n return flat.concat(Array.isArray(toFlatten) ? this.PDF.Flatten(toFlatten) : toFlatten);\n }, []);\n },\n\n Generate: (Data) => {\n /* ======================================================\n USAGE\n \n this.UtilitiesService.PDF.Generate({\n // AddPageNumbers: true,\n // Download: false,\n InsertFSILogoBefore: PDFElement.querySelector('.card-body'),\n // FileName: 'file.pdf',\n PDFElement: PDFElement,\n });\n ====================================================== */\n\n // this.PDF._Loaded.next(false);\n\n // const $uniqid = (new Date().getTime()).toString(16);\n\n // // if (Data.InsertFSILogoBefore)\n // // this.PDF.AddFSILogo(Data.PDFElement, Data.InsertFSILogoBefore);\n // // console.log(Data.PDFElement);\n // let GeneratedPDF = html2pdf()\n // .from(Data.PDFElement.innerHTML)\n // .set({\n // dpi: 300,\n // // enableLinks: true,\n // filename: Data.FileName || $uniqid,\n // html2canvas: { scale: 2, letterRendering: true, },\n // image: { type: 'png' },\n // jsPDF: { unit: 'mm', format: 'letter', orientation: 'portrait' },\n // margin: [20, 10, 25, 10], // top, left, bottom, right\n // pagebreak: { mode: ['all'], before: Data.PageBreaksBefore },\n // })\n // .toPdf()\n // .get('pdf')\n // .then((PDF) => {\n\n // var FSILogo = 'data:image/png;base64,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';\n // console.log(PDF);\n // if (Data.AddPageNumbers === undefined || Data.AddPageNumbers === true) {\n\n // var totalPages = PDF.internal.getNumberOfPages();\n\n // for (let i = 1; i <= totalPages; i++) {\n // PDF.setPage(i);\n // PDF.setFontSize(10);\n // PDF.setTextColor(150);\n // PDF.text('' + i + ' of ' + totalPages,\n // ((PDF.internal.pageSize.getWidth() / 2) - 5), // left // -10 for spacing of \"# of #\"\n // (PDF.internal.pageSize.getHeight() - 10) // bottom, When using mm // (PDF.internal.pageSize.getHeight() - 0.3) // When using inches, works well\n // );\n\n // if (Data.AddLogo)\n // PDF.addImage(FSILogo, 'png', 10, 5, 75, 15);\n\n // // PDF.text('text 2 I am on page' + i, 10, 10);\n // }\n\n // }\n\n // if (!Data.Download)\n // window.open(PDF.output('bloburl'), '_blank');\n\n // if (Data.OnComplete)\n // Data.OnComplete(Data.Input); // Not passing anything now, but I can do something PDF-specific here - like hiding elements before sending it, then showing them when the PDF is done (we know that when this is called)\n\n // this.PDF._Loaded.next(true);\n // })\n\n // if (Data.Download === true)\n // GeneratedPDF.save()\n\n },\n\n // Generate: (APIURL, Name, HTML, Styles) => {\n // // Take the styles generated from a previous call to this.UtilitiesService.PDF.ExtractCSS\n\n // /* ======================================================\n // This is how we can get the PDF to open in a new window\n // but using POST, so we can send all the HTML to the back end\n // ====================================================== */\n\n // const data = { Name: Name, HTML: HTML.innerHTML, Styles: Styles };\n\n // const tempForm = document.createElement('form');\n // tempForm.target = '_blank';\n // tempForm.method = 'POST';\n // tempForm.action = APIURL; // this.ServerService.GetAPIURL + '/general/toPDF'; (Circular Dependency)\n\n // Object.keys(data).forEach(function (param) {\n // var tempInput = document.createElement('input');\n // tempInput.type = 'hidden';\n // tempInput.name = param;\n // tempInput.setAttribute('value', data[param]);\n // tempForm.appendChild(tempInput);\n // });\n\n // document.body.appendChild(tempForm);\n // tempForm.submit();\n // },\n\n _Loaded: new BehaviorSubject(true),\n\n Loaded$: (): Observable => {\n return this.PDF._Loaded.asObservable();\n },\n\n SwapBackIDs: (elements) => {\n elements.forEach(function (e) {\n var element = document.getElementById(e.id)\n element.setAttribute('id', e.oldId)\n });\n },\n\n RecursiveExtract: (element) => {\n var id = this.PDF.UniqueID();\n var oldId = element.id;\n\n var computed = window.getComputedStyle(element);\n var style = computed.cssText;\n\n element.setAttribute('id', id);// Now that we get the style, we can swap the id\n\n var children = Array.prototype.slice.call(element.children);// The children are not a real array but a NodeList, we need to convert them so we can map over them easily\n return [{ id: id, style: style, oldId: oldId }].concat(children.map(this.PDF.RecursiveExtract));\n },\n\n UniqueID: () => {\n // Generate an unique id for your element\n // From https://stackoverflow.com/a/2117523/2054072\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n },\n\n /* ======================================================\n Not related to the PDF from HTML (methods above)\n ====================================================== */\n // FromTemplate: () => {\n // // call general PDFFromTemplate\n // // this\n // // window.open(PDFURL, '_blank');\n // // Adding ServerService - circular dependency\n // },\n\n };\n\n\n\n // public IterateObject(obj) {\n // const keys = Object.keys(obj)\n // const values = keys.map(key => `${key}: ${Reflect.get(obj, key)}`)\n // return values;\n // }\n\n\n\n public RemoveDuplicates(OriginalArray, FilterProperty) {\n let NewArray = [];\n let LookupObject = {};\n\n for (let i = 0; i < OriginalArray.length; i++)\n LookupObject[OriginalArray[i][FilterProperty]] = OriginalArray[i];\n\n for (let i in LookupObject)\n NewArray.push(LookupObject[i]);\n\n return NewArray;\n }\n\n\n\n public RemoveNulls(tempData) {\n for (let k in tempData)\n if (Array.isArray(tempData[k]))\n tempData[k] = tempData[k].filter(function (el) {\n return el != null;\n });\n\n return tempData;\n }\n\n\n\n public smoothScrollToTop(element, offset?, speedOverride?) {\n if (!offset) offset = 0;\n\n var currentYPosition = function () {\n // Firefox, Chrome, Opera, Safari\n if (self.pageYOffset) return self.pageYOffset;\n // Internet Explorer 6 - standards mode\n if (document.documentElement && document.documentElement.scrollTop)\n return document.documentElement.scrollTop;\n // Internet Explorer 6, 7 and 8\n if (document.body.scrollTop) return document.body.scrollTop;\n return 0;\n };\n\n var elmYPosition = function (elm) {\n var y = elm.offsetTop;\n var node = elm;\n while (node.offsetParent && node.offsetParent != document.body) {\n node = node.offsetParent;\n y += node.offsetTop;\n } return y;\n };\n\n var scrollTo = function (yPoint: number, duration: number) {\n setTimeout(() => {\n window.scrollTo(0, yPoint)\n }, duration);\n return;\n };\n\n let startY = currentYPosition();\n // let stopY = scrollToY || 0;\n var stopY = elmYPosition(element) + offset;\n let distance = stopY > startY ? stopY - startY : startY - stopY;\n console.log(startY, stopY, distance);\n if (distance < 100) {\n window.scrollTo(0, stopY);\n return;\n }\n let speed = speedOverride || Math.round(distance / 100);\n let step = speed;\n speed = Math.max(9, speed); //min 9 otherwise it won't look smooth\n let leapY = stopY > startY ? startY + step : startY - step;\n let timer = 0;\n if (stopY > startY) {\n for (let i = startY; i < stopY; i += step) {\n // since setTimeout is asynchronous, the for-loop will will fire all scrolls\n // nearly simoultaniously. Therefore, we need to multiply the speed with\n // a counter which lets the scrolls start with a growing offset which lets the\n // setTimeout wait for a growing time till it scrolls there\n // that way, we prevent the window to scroll instantly to the target Yposition\n scrollTo(leapY, timer * speed);\n leapY += step; if (leapY > stopY) leapY = stopY; timer++;\n }\n return;\n } else {\n for (let i = startY; i > stopY; i -= step) {\n scrollTo(leapY, timer * speed);\n leapY -= step; if (leapY < stopY) leapY = stopY; timer++;\n }\n }\n }\n\n\n\n}\n","import { ActivatedRoute, Router, Event as RouterEvent, NavigationStart, NavigationEnd, NavigationCancel, NavigationError, RoutesRecognized } from '@angular/router';\nimport { Component } from '@angular/core';\n\nimport { GeneralService } from './_services/general.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'NevTec New Framework';\n\n\n\n constructor(\n private Router: Router,\n private GeneralService: GeneralService,\n ) { }\n\n\n\n private CheckVersion() {\n this.GeneralService.checkVersion('1.1.1').subscribe(response => {\n let VersionRefreshCount = parseInt(localStorage.getItem('VersionRefreshCount')) || 0;\n\n VersionRefreshCount = VersionRefreshCount += 1;\n\n if (response.refresh && VersionRefreshCount < 3) {\n localStorage.setItem('VersionRefreshCount', VersionRefreshCount.toString());\n\n setTimeout(() => {\n location.reload();\n }, 250);\n } else if (!response.Refresh) {\n localStorage.removeItem('VersionRefreshCount');\n }\n });\n }\n\n\n\n private NavigationInterceptor(e: RouterEvent) {\n\n if (e instanceof NavigationEnd) {\n // this.AuthService.SetLocked('false');\n\n // console.log('app.component navigationInterceptor', e);\n\n // this.user = this.UserService.getUser();\n\n this.CheckVersion();\n\n setTimeout(() => {\n try {\n // New browsers\n window.scrollTo({ left: 0, top: 0, behavior: 'smooth' });\n } catch (e) {\n // Fallback for incompatible browsers\n window.scrollTo(0, 0);\n }\n });\n }\n\n // if (e instanceof NavigationEnd || e instanceof NavigationCancel || e instanceof NavigationError) {\n\n // /* ======================================================\n // New feature - Remember the last URL client was on, always\n // So if they get to the /locked screen, after they log back\n // in, they will continue where they left off\n // ====================================================== */\n // if (this.UserService.isLoggedIn()) {\n // // console.log('CALLED LandingURL SET');\n // this.UserService.LandingURL.set();\n // }\n\n // // Remove initial splash screen\n // setTimeout(() => {\n // const splashScreen = document.querySelector('.app-splash-screen');\n // if (splashScreen && splashScreen.parentNode) {\n // splashScreen['style'].opacity = 0;\n // splashScreen.parentNode.removeChild(splashScreen);\n // }\n // }, 100);\n\n // }\n\n }\n\n\n\n ngOnInit() {\n this.Router.events.subscribe(this.NavigationInterceptor.bind(this));\n }\n\n\n\n}","\"Pre-Plan\n\n
Pets at Peace is here to treat your\n loved\n one\n with care and make this\n process as simple as possible for you. Start by filling out the pre-planning form below.
\n\n\n \n","import * as $ from 'jquery';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\n\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ShowdownModule } from 'ngx-showdown';\n\nimport { AppRoutes } from '@app/app.routing';\nimport { AuthenticationModule } from './authentication/authentication.module';\nimport { CoreModule } from '@app/core';\nimport { DashboardModule } from './dashboard/dashboard.module';\nimport { SharedModule } from '@app/shared';\nimport { SurveyModule } from './survey/survey.module';\n\nimport { AppComponent } from '@app/app.component';\nimport { AnalyticComponent } from './_directives/analytic/analytic.component';\nimport { NoDecimalPipe } from './_pipes/no-decimal.pipe';\n\n@NgModule({\n declarations: [\n AppComponent,\n\n AnalyticComponent,\n NoDecimalPipe,\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule,\n CommonModule,\n CoreModule,\n HttpClientModule,\n RouterModule.forRoot(AppRoutes),\n\n NgbModule,\n ShowdownModule,\n\n AuthenticationModule,\n DashboardModule,\n SharedModule,\n SurveyModule,\n ],\n providers: [\n NoDecimalPipe, // THis allows the pipe to be used in code\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Routes } from '@angular/router';\n\nimport { BlankComponent, FullComponent } from '@app/shared';\n\nexport const AppRoutes: Routes = [\n // {\n // path: '',\n // component: FullComponent,\n // children: [\n // // Default\n // // {\n // // path: '',\n // // redirectTo: '/home',\n // // pathMatch: 'full'\n // // },\n // {\n // path: 'dashboard',\n // loadChildren: () =>\n // import('./dashboard/dashboard.module').then(m => m.DashboardModule)\n // }\n // ]\n // },\n // {\n // path: '',\n // component: BlankComponent,\n // children: [\n // {\n // path: '',\n // loadChildren: () =>\n // import('./authentication/authentication.module').then(\n // m => m.AuthenticationModule\n // )\n // }\n // ]\n // },\n\n // {\n // path: '**',\n // redirectTo: '/404'\n // }\n];\n","import { Component, AfterViewInit } from '@angular/core';\n\n@Component({\n selector: 'app-not-found',\n templateUrl: './not-found.component.html',\n styleUrls: ['not-found.component.css']\n})\nexport class NotFoundComponent implements AfterViewInit {\n ngAfterViewInit() {\n $(function () {\n $('.preloader').fadeOut();\n });\n }\n}\n","
\n
\n

404

\n

Page Not Found !

\n

YOU SEEM TO BE TRYING TO FIND HIS WAY HOME

\n Back to home
\n
","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\nimport { NotFoundComponent } from '@app/authentication/404/not-found.component';\nimport { AuthenticationRoutes } from '@app/authentication/authentication.routing';\nimport { LoginComponent } from '@app/authentication/login/login.component';\nimport { SignupComponent } from '@app/authentication/signup/signup.component';\nimport { SharedModule } from '@app/shared';\n\nimport * as Authentication from './../core/model/authentication.model';\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgbModule,\n SharedModule,\n RouterModule.forChild(AuthenticationRoutes)\n ],\n declarations: [NotFoundComponent, SignupComponent, LoginComponent]\n})\nexport class AuthenticationModule {}\n","import { Routes } from '@angular/router';\n\nimport { NotFoundComponent } from '@app/authentication/404/not-found.component';\nimport { LoginComponent } from '@app/authentication/login/login.component';\nimport { SignupComponent } from '@app/authentication/signup/signup.component';\n\nexport const AuthenticationRoutes: Routes = [\n// {\n// path: '',\n// children: [\n// {\n// path: '404',\n// component: NotFoundComponent\n// },\n// // {\n// // path: '/',\n// // component: LoginComponent\n// // },\n// {\n// path: 'login',\n// component: LoginComponent\n// },\n// {\n// path: 'signup',\n// component: SignupComponent\n// }\n// ]\n// }\n\n{\n path: '404',\n component: NotFoundComponent\n },\n // {\n // path: '/',\n // component: LoginComponent\n // },\n {\n path: 'login',\n component: LoginComponent\n },\n {\n path: 'signup',\n component: SignupComponent\n }\n\n];\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { AuthenticationService } from '@app/core';\nimport { finalize } from 'rxjs/operators';\n\nimport { Authentication } from './../../core/model/authentication.model';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.css']\n})\nexport class LoginComponent implements OnInit {\n loginForm: FormGroup;\n resetPasswordForm: FormGroup;\n isLoading = false;\n constructor(\n public router: Router,\n private formBuilder: FormBuilder,\n private authenticationService: AuthenticationService\n ) {\n this.createForm();\n }\n\n ngOnInit() {}\n\n login() {\n this.isLoading = true;\n this.authenticationService\n .login(this.loginForm.value)\n .pipe(\n finalize(() => {\n this.loginForm.markAsPristine();\n this.isLoading = false;\n })\n )\n .subscribe(\n (credentials: Authentication.Credentials) => {\n console.log(credentials);\n this.router.navigate(['/'], {\n replaceUrl: true\n });\n },\n (error: any) => {\n console.log(`Login error:`, error);\n }\n );\n }\n\n resetPassword() {\n // TODO: Implement Reset Password\n }\n\n private createForm() {\n this.loginForm = this.formBuilder.group({\n email: ['', [Validators.required]],\n password: ['', Validators.required]\n });\n this.resetPasswordForm = this.formBuilder.group({\n email: ['', [Validators.required, Validators.email]]\n });\n }\n}\n","
\n
\n
\n \n \n

Sign In

\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n \n \n
\n \n Forgot\n Password?\n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n

\n Don't have an account?\n \n Sign Up\n \n

\n
\n
\n \n \n
\n
\n

Recover Password

\n

\n Enter your Email and instructions will be sent to you!\n

\n
\n
\n
\n
\n \n
\n
\n
\n
\n Reset\n
\n
\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { AuthenticationService } from '@app/core';\nimport { finalize } from 'rxjs/operators';\n\nimport { Authentication } from './../../core/model/authentication.model';\n\n@Component({\n selector: 'app-signup',\n templateUrl: './signup.component.html',\n styleUrls: ['./signup.component.css']\n})\nexport class SignupComponent implements OnInit {\n signupForm: FormGroup;\n isLoading = false;\n\n constructor(\n public router: Router,\n private formBuilder: FormBuilder,\n private authenticationService: AuthenticationService\n ) {\n this.createForm();\n }\n\n ngOnInit() {}\n\n signup() {\n this.isLoading = true;\n this.authenticationService\n .signup(this.signupForm.value)\n .pipe(\n finalize(() => {\n this.signupForm.markAsPristine();\n this.isLoading = false;\n })\n )\n .subscribe(\n (user: Authentication.User) => {\n console.log(user);\n this.router.navigate(['/login']);\n },\n (error: any) => {\n console.log(`Signup error: ${error}`);\n }\n );\n }\n\n private createForm() {\n this.signupForm = this.formBuilder.group({\n firstName: ['', [Validators.required]],\n lastName: ['', [Validators.required]],\n email: ['', [Validators.required, Validators.email]],\n phone: ['', [Validators.required]],\n password: ['', Validators.required],\n cPassword: ['', Validators.required]\n });\n }\n}\n","
\n
\n
\n
\n \n \n

Register Now

\n Create your account and enjoy\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n

Already have an account?\n \n Sign In\n \n

\n
\n
\n
\n
\n
\n
","import { Injectable } from '@angular/core';\nimport { CanActivate, Router } from '@angular/router';\n\nimport { AuthenticationService } from '@app/core/authentication/authentication.service';\n\n@Injectable()\nexport class AuthenticationGuard implements CanActivate {\n constructor(\n private router: Router,\n private authenticationService: AuthenticationService\n ) {}\n\n canActivate(): boolean {\n if (this.authenticationService.isAuthenticated()) {\n return true;\n }\n\n console.log('Not authenticated, redirecting...');\n this.router.navigate(['/login'], {\n replaceUrl: true\n });\n return false;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, EventEmitter } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { LocalStorageService } from '@app/core/local-storage.service';\n\nimport { Authentication } from './../model/authentication.model';\n\nconst credentialsKey = 'credentials';\n\n/**\n * Provides a base for authentication workflow.\n * The Credentials interface as well as login/logout methods should be replaced with proper implementation.\n */\n@Injectable()\nexport class AuthenticationService {\n private _credentials: Authentication.Credentials | null;\n public credentials$ = new EventEmitter();\n\n constructor(\n private httpClient: HttpClient,\n private localStorageService: LocalStorageService\n ) {\n const savedCredentials = this.localStorageService.getItem(credentialsKey);\n if (savedCredentials) {\n this._credentials = JSON.parse(savedCredentials);\n }\n }\n\n login(\n payload: Authentication.LoginPayload\n ): Observable {\n return this.httpClient.post('/login', payload).pipe(\n map((body: Authentication.Credentials) => {\n this.setCredentials(body);\n return body;\n })\n );\n }\n\n signup(\n payload: Authentication.SignupPayload\n ): Observable {\n return this.httpClient.post('/register', payload).pipe(\n map((body: Authentication.User) => {\n return body;\n })\n );\n }\n\n /**\n * Logs out the user and clear credentials.\n * @return {Observable} True if the user was logged out successfully.\n */\n logout(): Observable {\n return this.httpClient.get('/logout').pipe(\n map(() => {\n this.setCredentials();\n return true;\n })\n );\n }\n\n /**\n * Checks is the user is authenticated.\n * @return {boolean} True if the user is authenticated.\n */\n isAuthenticated(): boolean {\n return !!this.credentials;\n }\n\n /**\n * Gets the user credentials.\n * @return {Credentials} The user credentials or null if the user is not authenticated.\n */\n get credentials(): Authentication.Credentials | null {\n return this._credentials;\n }\n\n /**\n * Get the auth token.\n * @return {string} The auth token is null if user is not authenticated.\n */\n get accessToken(): string | null {\n return this.credentials ? this.credentials.accessToken : null;\n }\n\n /**\n * Sets the user credentials.\n * @param {Credentials=} Authentication.Credentials The user credentials.\n */\n private setCredentials(credentials?: Authentication.Credentials) {\n this._credentials = credentials || null;\n if (credentials) {\n this.localStorageService.setItem(\n credentialsKey,\n JSON.stringify(credentials)\n );\n this.credentials$.emit(this._credentials);\n } else {\n this.localStorageService.clearItem(credentialsKey);\n }\n }\n}\n","// start:ng42.barrel\nexport * from './authentication.guard';\nexport * from './authentication.service';\n// end:ng42.barrel\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport abstract class BaseAPIClass {\n baseUrl: string;\n constructor(protected httpClient: HttpClient) { }\n\n getAll(filterObject?: any): Observable {\n let queryString = '';\n if (filterObject) {\n const fitlerKeys: any[] = Object.keys(filterObject);\n if (fitlerKeys.length > 0) {\n queryString = '?';\n }\n fitlerKeys.forEach((key: any, index) => {\n if (filterObject[key] !== undefined && filterObject[key] !== null) {\n if (filterObject[key].toString().length) {\n queryString += `${key}=${filterObject[key]}&`;\n }\n }\n });\n if (\n fitlerKeys.length > 0 &&\n queryString[queryString.length - 1] === '&'\n ) {\n queryString = queryString.slice(0, -1);\n }\n }\n return this.httpClient.get(`${this.baseUrl}${queryString}`).pipe(\n map((body: any) => {\n return body;\n })\n );\n }\n\n getById(id: string, filterObject?: any): Observable {\n let queryString = '';\n if (filterObject) {\n const fitlerKeys: any[] = Object.keys(filterObject);\n if (fitlerKeys.length > 0) {\n queryString = '?';\n }\n fitlerKeys.forEach((key: any, index) => {\n if (filterObject[key] !== undefined && filterObject[key] !== null) {\n if (filterObject[key].toString().length) {\n queryString += `${key}=${filterObject[key]}&`;\n }\n }\n });\n if (\n fitlerKeys.length > 0 &&\n queryString[queryString.length - 1] === '&'\n ) {\n queryString = queryString.slice(0, -1);\n }\n }\n return this.httpClient.get(`${this.baseUrl}/${id}${queryString}`).pipe(\n map((body: any) => {\n return body;\n })\n );\n }\n\n create(payload: any): Observable {\n return this.httpClient.post(this.baseUrl, payload).pipe(\n map((body: any) => {\n return body;\n })\n );\n }\n\n update(id: string, payload: any): Observable {\n return this.httpClient.put(`${this.baseUrl}/${id}`, payload).pipe(\n map((body: any) => {\n return body;\n })\n );\n }\n\n // delete(id: string): Observable {\n // return this.httpClient.delete(`${this.baseUrl}/${id}`).pipe(\n // map((body: any) => {\n // return body;\n // })\n // );\n // }\n\n // deleteAll(): Observable {\n // return this.httpClient.delete(`${this.baseUrl}/all`).pipe(\n // map((body: any) => {\n // return body;\n // })\n // );\n // }\n}\n","// start:ng42.barrel\nexport * from './baseAPI.class';\n// end:ng42.barrel\n","export const API_ENDPOINT: any = [];\n\nexport const ERROR_OBJECTS: Object = {\n required: '{{field}} is required',\n email: 'Please enter valid email'\n};\n","import { CommonModule } from '@angular/common';\nimport {\n HTTP_INTERCEPTORS,\n HttpClient,\n HttpClientModule\n} from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { RouteReuseStrategy, RouterModule } from '@angular/router';\nimport {\n AuthenticationGuard,\n AuthenticationService\n} from '@app/core/authentication';\nimport {\n ApiPrefixInterceptor,\n ErrorHandlerInterceptor,\n HttpService\n} from '@app/core/http';\nimport { LocalStorageService } from '@app/core/local-storage.service';\nimport { RouteReusableStrategy } from '@app/core/route-reusable-strategy';\nimport {\n ErrorMessageService,\n UserService,\n UtilService\n} from '@app/core/service';\n\nimport * as Authentication from './../core/model/authentication.model';\n\n@NgModule({\n imports: [CommonModule, HttpClientModule, RouterModule],\n declarations: [],\n providers: [\n LocalStorageService,\n AuthenticationService,\n AuthenticationGuard,\n ApiPrefixInterceptor,\n ErrorHandlerInterceptor,\n UserService,\n UtilService,\n ErrorMessageService,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: ApiPrefixInterceptor,\n multi: true\n },\n {\n provide: HttpClient,\n useClass: HttpService\n },\n {\n provide: RouteReuseStrategy,\n useClass: RouteReusableStrategy\n }\n ]\n})\nexport class CoreModule {}\n","import {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from '@env/environment';\nimport { Observable } from 'rxjs';\n\n/**\n * Prefixes all requests with `environment.serverUrl`.\n */\n@Injectable()\nexport class ApiPrefixInterceptor implements HttpInterceptor {\n constructor() {}\n\n intercept(\n request: HttpRequest,\n next: HttpHandler\n ): Observable> {\n request = request.clone({\n url: environment.serverUrl + request.url\n });\n\n return next.handle(request);\n }\n}\n","import {\n HttpEvent,\n HttpHandler,\n HttpInterceptor,\n HttpRequest,\n HttpResponse\n} from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LocalStorageService } from '@app/core/local-storage.service';\nimport { ErrorMessageService } from '@app/core/service';\nimport { environment } from '@env/environment';\nimport { Observable } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { ToastrService } from 'ngx-toastr';\n\nconst credentialsKey = 'credentials';\n\n/**\n * Adds a default error handler to all requests.\n */\n@Injectable()\nexport class ErrorHandlerInterceptor implements HttpInterceptor {\n constructor(\n private router: Router,\n private localStorageService: LocalStorageService,\n private errorMessageService: ErrorMessageService,\n private toastrService: ToastrService\n ) { }\n\n intercept(\n request: HttpRequest,\n next: HttpHandler\n ): Observable> {\n return next\n .handle(request)\n .pipe(catchError(error => this.errorHandler(error)));\n }\n\n // Customize the default error handler here if needed\n private errorHandler(\n response: HttpResponse\n ): Observable> {\n if (response.status === 401) {\n this.localStorageService.clearItem(credentialsKey);\n this.router.navigate(['/login'], {\n replaceUrl: true\n });\n } else if (response.status === 400) {\n const errorResponse: any = response;\n if (errorResponse.error) {\n if (errorResponse.error.validation) {\n errorResponse.error.validation.keys.forEach((key: string) => {\n this.errorMessageService.set(\n errorResponse.error.validation.errors[key],\n key,\n response.url\n );\n });\n } else {\n this.errorMessageService.set(\n errorResponse.error.error,\n '_GLOBAL_',\n response.url\n );\n }\n }\n }\n\n if (!environment.production) {\n // Do something with the error\n console.error('Request error', response);\n }\n\n // Either dev or prodution\n const r: any = response; // To get away from Property 'message' does not exist on type 'HttpResponse'. error\n\n /* ======================================================\n Look for a pretty error message first\n \n {\n \"headers\": {\n \"normalizedNames\": {},\n \"lazyUpdate\": null\n },\n \"status\": 409,\n \"statusText\": \"Conflict\",\n \"url\": \"http://localhost:3000/login\",\n \"ok\": false,\n \"name\": \"HttpErrorResponse\",\n \"message\": \"Http failure response for http://localhost:3000/login: 409 Conflict\",\n \"error\": {\n \"errors\": {\n \"msg\": \"Incorrect password\"\n }\n }\n }\n ====================================================== */\n\n const errorMessage =\n r.error && r.error.errors && r.error.errors.msg\n ? r.error.errors.msg\n : r.message;\n\n if (typeof errorMessage === 'object' && errorMessage.length > 0) {\n for (let i = 0; i < errorMessage.length; i++) {\n this.toastrService.error(\n errorMessage[i].msg,\n 'Error'\n // , { disableTimeOut: true }\n );\n }\n } else {\n this.toastrService.error(\n errorMessage,\n 'Error'\n // , { disableTimeOut: true }\n );\n }\n\n throw response;\n }\n}\n","import {\n Inject,\n Injectable,\n InjectionToken,\n Injector,\n Optional\n} from '@angular/core';\nimport {\n HttpClient,\n HttpEvent,\n HttpInterceptor,\n HttpHandler,\n HttpRequest\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nimport { ErrorHandlerInterceptor } from '@app/core/http/error-handler.interceptor';\n\n// From @angular/common/http/src/interceptor: allows to chain interceptors\nclass HttpInterceptorHandler implements HttpHandler {\n constructor(\n private next: HttpHandler,\n private interceptor: HttpInterceptor\n ) {}\n\n handle(request: HttpRequest): Observable> {\n return this.interceptor.intercept(request, this.next);\n }\n}\n\n/**\n * Allows to override default dynamic interceptors that can be disabled with the HttpService extension.\n * Except for very specific needs, you should better configure these interceptors directly in the constructor below\n * for better readability.\n *\n * For static interceptors that should always be enabled (like ApiPrefixInterceptor), use the standard\n * HTTP_INTERCEPTORS token.\n */\nexport const HTTP_DYNAMIC_INTERCEPTORS = new InjectionToken(\n 'HTTP_DYNAMIC_INTERCEPTORS'\n);\n\n/**\n * Extends HttpClient with per request configuration using dynamic interceptors.\n */\n@Injectable()\nexport class HttpService extends HttpClient {\n constructor(\n private httpHandler: HttpHandler,\n private injector: Injector,\n @Optional()\n @Inject(HTTP_DYNAMIC_INTERCEPTORS)\n private interceptors: HttpInterceptor[] = []\n ) {\n super(httpHandler);\n\n if (!this.interceptors) {\n // Configure default interceptors that can be disabled here\n this.interceptors = [this.injector.get(ErrorHandlerInterceptor)];\n }\n }\n\n skipErrorHandler(): HttpClient {\n return this.removeInterceptor(ErrorHandlerInterceptor);\n }\n\n // Override the original method to wire interceptors when triggering the request.\n request(method?: any, url?: any, options?: any): any {\n const handler = this.interceptors.reduceRight(\n (next, interceptor) => new HttpInterceptorHandler(next, interceptor),\n this.httpHandler\n );\n return new HttpClient(handler).request(method, url, options);\n }\n\n private removeInterceptor(interceptorType: Function): HttpService {\n return new HttpService(\n this.httpHandler,\n this.injector,\n this.interceptors.filter(i => !(i instanceof interceptorType))\n );\n }\n\n private addInterceptor(interceptor: HttpInterceptor): HttpService {\n return new HttpService(\n this.httpHandler,\n this.injector,\n this.interceptors.concat([interceptor])\n );\n }\n}\n","// start:ng42.barrel\nexport * from './api-prefix.interceptor';\nexport * from './error-handler.interceptor';\nexport * from './http.service';\n// end:ng42.barrel\n","// start:ng42.barrel\nexport * from './constants';\nexport * from './core.module';\nexport * from './local-storage.service';\nexport * from './route-reusable-strategy';\nexport * from './authentication';\nexport * from './class';\nexport * from './http';\nexport * from './service';\n// end:ng42.barrel\n","import { Injectable } from '@angular/core';\n\nfunction createCookie(name: any, value: any, days: any) {\n let date: any, expires;\n\n if (days) {\n date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = '; expires=' + date.toGMTString();\n } else {\n expires = '';\n }\n document.cookie = name + '=' + value + expires + '; path=/';\n}\n\nfunction readCookie(name: any) {\n const nameEQ = name + '=',\n ca = document.cookie.split(';');\n let i, c;\n\n for (i = 0; i < ca.length; i++) {\n c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEQ) === 0) {\n return c.substring(nameEQ.length, c.length);\n }\n }\n return null;\n}\nfunction setData(type: any, data: any) {\n // Convert data into JSON and encode to accommodate for special characters.\n data = encodeURIComponent(JSON.stringify(data));\n // Create cookie.\n if (type === 'session') {\n createCookie(getSessionName(), data, 365);\n } else {\n createCookie('localStorage', data, 365);\n }\n}\n\nfunction clearData(type: any) {\n if (type === 'session') {\n createCookie(getSessionName(), '', 365);\n } else {\n createCookie('localStorage', '', 365);\n }\n}\n\nfunction getData(type: any) {\n // Get cookie data.\n const data =\n type === 'session'\n ? readCookie(getSessionName())\n : readCookie('localStorage');\n // If we have some data decode, parse and return it.\n return data ? JSON.parse(decodeURIComponent(data)) : {};\n}\n\nfunction getSessionName() {\n // If there is no name for this window, set one.\n // To ensure it's unquie use the current timestamp.\n if (!window.name) {\n window.name = new Date().getTime().toString();\n }\n return 'sessionStorage' + window.name;\n}\n\n@Injectable()\nexport class LocalStorageService {\n localStorage: any;\n sessionStorage: any;\n constructor() {\n try {\n // Test webstorage existence.\n if (!window.localStorage || !window.sessionStorage) {\n throw new Error('exception');\n }\n // Test webstorage accessibility - Needed for Safari private browsing.\n window.localStorage.setItem('storage_test', '1');\n window.localStorage.removeItem('storage_test');\n this.localStorage = window.localStorage;\n } catch (e) {\n class CustomStorage {\n type: any;\n data: any;\n length = 0;\n constructor(type: any) {\n this.type = type;\n // Init data, if already present\n this.data = getData(type);\n }\n public clear() {\n this.data = {};\n this.length = 0;\n clearData(this.type);\n }\n public getItem(key: any) {\n return this.data[key] === undefined ? null : this.data[key];\n }\n public key(i: any) {\n // not perfect, but works\n let ctr = 0;\n for (const k in this.data) {\n if (ctr === i) {\n return k;\n } else {\n ctr++;\n }\n }\n return null;\n }\n public removeItem(key: any) {\n delete this.data[key];\n this.length--;\n setData(this.type, this.data);\n }\n public setItem(key: any, value: any) {\n this.data[key] = value + ''; // forces the value to a string\n this.length++;\n setData(this.type, this.data);\n }\n }\n\n // Replace window.localStorage and window.sessionStorage with out custom\n // implementation.\n\n const localStorage = new CustomStorage('local');\n const sessionStorage = new CustomStorage('session');\n Object.defineProperty(window, 'localStorage', {\n get: () => localStorage\n });\n this.localStorage = localStorage;\n this.sessionStorage = sessionStorage;\n }\n }\n public setItem(key: string, value: any) {\n return this.localStorage.setItem(key, value);\n }\n public getItem(key: string) {\n return this.localStorage.getItem(key);\n }\n public clearItem(key: string) {\n return this.localStorage.removeItem(key);\n }\n public clearAll() {\n return this.localStorage.clear();\n }\n}\n","import {\n ActivatedRouteSnapshot,\n DetachedRouteHandle,\n RouteReuseStrategy\n} from '@angular/router';\nimport { Injectable } from '@angular/core';\n\n/**\n * A route strategy allowing for explicit route reuse.\n * Used as a workaround for https://github.com/angular/angular/issues/18374\n * To reuse a given route, add `data: { reuse: true }` to the route definition.\n */\n@Injectable()\nexport class RouteReusableStrategy extends RouteReuseStrategy {\n public shouldDetach(route: ActivatedRouteSnapshot): boolean {\n return false;\n }\n\n public store(\n route: ActivatedRouteSnapshot,\n detachedTree: DetachedRouteHandle | null\n ): void {}\n\n public shouldAttach(route: ActivatedRouteSnapshot): boolean {\n return false;\n }\n\n public retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\n return null;\n }\n\n public shouldReuseRoute(\n future: ActivatedRouteSnapshot,\n curr: ActivatedRouteSnapshot\n ): boolean {\n return future.routeConfig === curr.routeConfig || future.data.reuse;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\nimport { ErrorModel } from './../model/error.model';\n\n@Injectable()\nexport class ErrorMessageService {\n private _errors: ErrorModel.ErrorMessageObject[] = [];\n public errors$ = new EventEmitter();\n\n constructor() {}\n\n get errors(): ErrorModel.ErrorMessageObject[] {\n return this._errors;\n }\n\n public set(error: string, type: string, serviceUrl: string) {\n this._errors.push({\n id: Date.now(),\n error: error,\n type: type,\n serviceUrl: serviceUrl\n });\n console.log(this._errors);\n this.errors$.emit(this._errors);\n }\n\n public clear() {\n this._errors = [];\n this.errors$.emit(this._errors);\n }\n}\n","// start:ng42.barrel\nexport * from './user.service';\nexport * from './util.service';\nexport * from './error-message.service';\n// end:ng42.barrel\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseAPIClass } from '@app/core/class/baseAPI.class';\n\n@Injectable()\nexport class UserService extends BaseAPIClass {\n constructor(protected httpClient: HttpClient) {\n super(httpClient);\n this.baseUrl = '/user';\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable()\nexport class UtilService {\n constructor() {}\n\n removeEmpty(obj: any): any {\n for (const propName in obj) {\n if (\n obj[propName] === null ||\n obj[propName] === undefined ||\n obj[propName] === '' ||\n (Array.isArray(obj[propName]) && !obj[propName].length)\n ) {\n delete obj[propName];\n }\n }\n return obj;\n }\n\n copyToClipboard(value: string) {\n const selBox = document.createElement('textarea');\n selBox.style.position = 'fixed';\n selBox.style.left = '0';\n selBox.style.top = '0';\n selBox.style.opacity = '0';\n selBox.value = value;\n document.body.appendChild(selBox);\n selBox.focus();\n selBox.select();\n document.execCommand('copy');\n document.body.removeChild(selBox);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\n\nimport { DashboardRoutes } from '@app/dashboard/dashboard.routing';\nimport { DashboardComponent } from '@app/dashboard/dashboard/dashboard.component';\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n NgbModule,\n RouterModule.forChild(DashboardRoutes)\n ],\n declarations: [DashboardComponent]\n})\nexport class DashboardModule { }\n","import { Routes } from '@angular/router';\nimport { AuthenticationGuard } from '@app/core';\n\nimport { DashboardComponent } from '@app/dashboard/dashboard/dashboard.component';\n\nexport const DashboardRoutes: Routes = [\n {\n path: 'dashboard',\n canActivate: [AuthenticationGuard],\n children: [\n {\n path: '',\n component: DashboardComponent,\n data: {\n title: 'Dashboard'\n }\n }\n ]\n }\n];\n","import { Router } from '@angular/router';\nimport { Component } from '@angular/core';\n\nimport { ToastrService } from 'ngx-toastr';\n\nimport { AuthenticationService } from '@app/core';\n\n@Component({\n templateUrl: './dashboard.component.html',\n styleUrls: ['./dashboard.component.css']\n})\nexport class DashboardComponent {\n constructor(\n public router: Router,\n private authenticationService: AuthenticationService,\n private ToastrService: ToastrService\n ) {}\n\n public logout() {\n this.authenticationService.logout().subscribe(response => {\n this.router.navigate(['/login']);\n this.ToastrService.success('Successfully logged out');\n });\n }\n}\n","

Dashboard!

\n\n\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'app-button-loading',\n template: `\n
\n \n \n \n
\n \n `,\n styleUrls: ['./button-loading.scss'],\n})\nexport class ButtonLoadingComponent {\n \n // https://stackoverflow.com/questions/48410996/dynamically-append-component-to-div-in-angular-5\n // https://stackoverflow.com/questions/40060498/angular-2-1-0-create-child-component-on-the-fly-dynamically/40080290#40080290\n _ColorOverride: string = '';\n\n @Input() loading: boolean;\n @Input() ColorOverride: string = '';\n\n constructor() { }\n \n \n \n}","import {\n ComponentRef,\n ComponentFactoryResolver,\n Directive,\n Input,\n OnDestroy,\n ViewContainerRef,\n OnInit\n} from '@angular/core';\n\nimport { ButtonLoadingComponent } from './button-loading.component';\n\n@Directive({\n selector: '[appButtonLoading]'\n})\nexport class ButtonLoadingDirective implements OnDestroy, OnInit {\n /* ======================================================\n This @Input is the same name as the directive! That way there's no second property we need to get the input\n We'll also use .loading on the component for *ngIf - only seem to need @Input for tslint? It seems to work just setting this property\n ====================================================== */\n\n /* ======================================================\n \n ====================================================== */\n\n private _ColorOverride: string = '';\n\n @Input()\n set appButtonLoading(loading: boolean) {\n this.toggleLoader(loading);\n }\n @Input() ColorOverride: string = '';\n\n private componentInstance: ComponentRef = null;\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n ) { }\n\n\n\n toggleLoader(loading: boolean) {\n if (!this.componentInstance) {\n this.createLoaderComponent();\n this.makeComponentAChild();\n }\n\n // When using this as a loading button - like when the page loads\n // and the button text is loading (or something), set the loading\n // value to true - in other cases it won't matter\n this.componentInstance.instance.loading = loading;\n }\n\n\n\n private createLoaderComponent() {\n // Try to add disabled? Couldn't get it to work\n // console.log( loaderComponentElement.parentElement, loaderComponentElement.parentElement.attributes, loaderComponentElement.parentElement.disabled = 'disabled' );\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(ButtonLoadingComponent);\n this.componentInstance = this.viewContainerRef.createComponent(componentFactory);\n\n // console.log('createLoaderComponent', componentFactory, 'this.componentInstance', this.componentInstance,\n // this.componentInstance.instance, this.componentInstance.instance.loading,\n // 'abc123', componentFactory.inputs);\n }\n\n\n\n private makeComponentAChild() {\n const loaderComponentElement = this.componentInstance.location.nativeElement;\n const sibling: HTMLElement = loaderComponentElement.previousSibling;\n sibling.insertBefore(loaderComponentElement, sibling.firstChild);\n }\n\n\n\n ngOnDestroy(): void {\n if (this.componentInstance)\n this.componentInstance.destroy();\n }\n\n\n\n ngOnInit(): void {\n this.componentInstance.instance.ColorOverride = this.ColorOverride; // It wouldn't work if I tried setting this where I'm setting .loading\n }\n\n \n\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { ButtonLoadingComponent } from './button-loading.component';\nimport { ButtonLoadingDirective } from './button-loading.directive';\n\n\n\n@NgModule({\n declarations: [\n ButtonLoadingComponent,\n ButtonLoadingDirective,\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n ButtonLoadingComponent,\n ButtonLoadingDirective,\n ],\n entryComponents: [\n ButtonLoadingComponent,\n ]\n})\nexport class ButtonLoadingModule { }","import { Component, Input, OnInit } from '@angular/core';\nimport { Title } from '@angular/platform-browser';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, map, mergeMap } from 'rxjs/operators';\n\n@Component({\n selector: 'app-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n styleUrls: ['./breadcrumb.component.scss']\n})\nexport class BreadcrumbComponent implements OnInit {\n @Input()\n layout: any;\n pageInfo: any;\n\n constructor(\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private titleService: Title\n ) {\n this.router.events\n .pipe(\n filter(event => event instanceof NavigationEnd),\n map(() => this.activatedRoute),\n map(route => {\n while (route.firstChild) {\n route = route.firstChild;\n }\n return route;\n }),\n filter(route => route.outlet === 'primary'),\n mergeMap(route => route.data)\n )\n .subscribe(event => {\n this.titleService.setTitle(event['title']);\n this.pageInfo = event;\n });\n }\n ngOnInit() {}\n}\n","// start:ng42.barrel\nexport * from './breadcrumb.component';\n// end:ng42.barrel\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-button-loader',\n templateUrl: './button-loader.component.html',\n styleUrls: ['./button-loader.component.css']\n})\nexport class ButtonLoaderComponent implements OnInit {\n @Input()\n isLoading: boolean;\n @Input()\n label: string;\n\n constructor() {}\n\n ngOnInit() {}\n}\n"," {{label}}\n","// start:ng42.barrel\nexport * from './button-loader.component';\n// end:ng42.barrel\n","import {\n Component,\n Input,\n OnChanges,\n OnInit,\n AfterViewInit\n} from '@angular/core';\nimport { ERROR_OBJECTS, ErrorMessageService } from '@app/core';\n\nimport { ErrorModel } from './../../core/model/error.model';\n\n@Component({\n selector: 'app-form-error-wrapper',\n templateUrl: './form-error-wrapper.component.html'\n})\nexport class FormErrorWrapperComponent\n implements OnInit, OnChanges, AfterViewInit {\n @Input()\n public control: any;\n @Input()\n public controlName: string;\n @Input()\n public apiErrorType?: string;\n // TODO : How to pass apiServiceUrl\n @Input()\n public apiServiceUrl?: string;\n\n public errorObject: Object = ERROR_OBJECTS;\n public errorKeys: string[];\n public apiErrorMessage: string;\n\n constructor(private errorMessageService: ErrorMessageService) {\n errorMessageService.errors$.subscribe(\n (errors: ErrorModel.ErrorMessageObject[]) => {\n errors\n .filter(\n e => e.type === this.apiErrorType\n // && e.serviceUrl == this.apiServiceUrl\n )\n .map(e => {\n this.apiErrorMessage = e.error;\n });\n }\n );\n }\n\n ngOnInit() {}\n\n ngOnChanges() {\n this.errorKeys = Object.keys(this.errorObject);\n }\n\n ngAfterViewInit() {\n this.control.valueChanges.subscribe(() => {\n this.apiErrorMessage = '';\n });\n }\n\n formateError(errorMessage: string, errorObj: any): string {\n const types = ['min', 'max', 'requiredLength'];\n\n types.forEach(type => {\n if (!!errorObj[type]) {\n errorMessage = errorMessage.replace(/{{value}}/g, errorObj[type]);\n }\n });\n return errorMessage.replace(/{{field}}/g, this.controlName);\n }\n\n hasError() {\n return (\n (this.control.errors && this.control.touched) || this.apiErrorMessage\n );\n }\n}\n","
\n \n \n \n {{formateError(errorObject[errorKey],control.errors[errorKey])}}\n \n \n \n {{apiErrorMessage}}\n \n
\n","// start:ng42.barrel\nexport * from './shared.module';\nexport * from './spinner.component';\nexport * from './breadcrumb';\nexport * from './button-loader';\nexport * from './layouts';\nexport * from './layouts/blank';\nexport * from './layouts/full';\n// end:ng42.barrel\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-blank-layout',\n templateUrl: './blank.component.html',\n styleUrls: []\n})\nexport class BlankComponent {}\n","\n\n\n\n","// start:ng42.barrel\nexport * from './blank.component';\n// end:ng42.barrel\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-full-layout',\n templateUrl: './full.component.html',\n styleUrls: ['./full.component.scss']\n})\nexport class FullComponent implements OnInit {\n\n constructor(public router: Router) { }\n\n\n\n onActivate(componentRef) {\n // componentRef.works();\n }\n\n\n\n ngOnInit() {\n // if (this.router.url === '/') {\n // this.router.navigate(['/dashboard']);\n // }\n }\n\n\n\n}\n","\n\n\n\n\n
\n \n \n \n
\n \n \n \n
\n \n \n \n \n \n \n \n \n
\n \n \n \n
\n \n \n \n \n \n \n\n \n \n \n\n
\n\n","// start:ng42.barrel\nexport * from './full.component';\n// end:ng42.barrel\n","// start:ng42.barrel\nexport * from './blank';\nexport * from './full';\n// end:ng42.barrel\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n styleUrls: ['./footer.component.css']\n})\nexport class FooterComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n

© NotifyPetsAtPeace.com. All right Reversed.

\n
\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.css']\n})\nexport class HeaderComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","
\n
\n

Pre-Plan

\n

Pets at Peace is here to treat your loved one with care and make this process as simple as\n possible for you.

\n
\n
","import { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrModule } from 'ngx-toastr';\n\nimport { ButtonLoadingModule } from './../modules/button-loading/button-loading.module';\nimport { StripeModule } from './../stripe/stripe.module';\n\nimport { BlankComponent } from '@app/shared/layouts/blank/blank.component';\nimport { BreadcrumbComponent } from '@app/shared/breadcrumb/breadcrumb.component';\nimport { ButtonLoaderComponent } from '@app/shared/button-loader';\nimport { FooterComponent } from './layouts/partials/footer/footer.component';\nimport { FormErrorWrapperComponent } from '@app/shared/form-error-wrapper/form-error-wrapper.component';\nimport { FullComponent } from '@app/shared/layouts/full/full.component';\nimport { HeaderComponent } from './layouts/partials/header/header.component';\nimport { SpinnerComponent } from '@app/shared/spinner.component';\n\n\n@NgModule({\n imports: [\n BrowserModule,\n CommonModule,\n FormsModule,\n RouterModule,\n NgbModule,\n ReactiveFormsModule,\n ToastrModule.forRoot({\n progressBar: true\n }),\n\n ButtonLoadingModule,\n StripeModule,\n ],\n declarations: [\n BlankComponent,\n BreadcrumbComponent,\n ButtonLoaderComponent,\n FooterComponent,\n FormErrorWrapperComponent,\n FullComponent,\n HeaderComponent,\n SpinnerComponent,\n ],\n exports: [\n BlankComponent,\n BreadcrumbComponent,\n ButtonLoaderComponent,\n ButtonLoadingModule,\n FullComponent,\n FormErrorWrapperComponent,\n SpinnerComponent,\n\n StripeModule,\n ],\n entryComponents: [],\n providers: []\n})\nexport class SharedModule { }\n","import {\n Component,\n Input,\n OnDestroy,\n Inject,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n Router,\n NavigationStart,\n NavigationEnd,\n NavigationCancel,\n NavigationError\n} from '@angular/router';\nimport { DOCUMENT } from '@angular/common';\n\n@Component({\n selector: 'app-spinner',\n template: `
\n
\n
\n
\n
\n
`,\n encapsulation: ViewEncapsulation.None\n})\nexport class SpinnerComponent implements OnDestroy {\n public isSpinnerVisible = true;\n\n @Input()\n public backgroundColor = 'rgba(0, 115, 170, 0.69)';\n\n constructor(\n private router: Router,\n @Inject(DOCUMENT) private document: Document\n ) {\n this.router.events.subscribe(\n event => {\n if (event instanceof NavigationStart) {\n this.isSpinnerVisible = true;\n } else if (\n event instanceof NavigationEnd ||\n event instanceof NavigationCancel ||\n event instanceof NavigationError\n ) {\n this.isSpinnerVisible = false;\n }\n },\n () => {\n this.isSpinnerVisible = false;\n }\n );\n }\n\n ngOnDestroy(): void {\n this.isSpinnerVisible = false;\n }\n}\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { HttpClient } from '@angular/common/http';\nimport { switchMap } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\n\nimport { NoDecimalPipe } from './../../_pipes/no-decimal.pipe';\n\nimport { StripeService, StripeCardComponent } from 'ngx-stripe';\nimport { StripeCardElementOptions, StripeElementsOptions, StripeCardElementChangeEvent, PaymentIntent } from '@stripe/stripe-js';\n\n@Component({\n selector: 'app-stripe-pay-button',\n templateUrl: './stripe-pay-button.component.html',\n styleUrls: ['./stripe-pay-button.component.scss']\n})\nexport class StripePayButtonComponent implements OnInit {\n @Input() charge;\n @Input() clientInfo;\n @Input() id;\n @Output() eventListener = new EventEmitter();\n @ViewChild(StripeCardComponent) card: StripeCardComponent;\n\n public loading = false;\n // private _paymentSuccess: boolean = false;\n\n public cardOptions: StripeCardElementOptions = {\n style: {\n base: {\n // backgroundColor: '#028ee1',\n color: 'white',\n fontWeight: '400',\n fontFamily: '\"Alegreya\", \"Helvetica Neue\", Helvetica, sans-serif',\n fontSize: '18px',\n '::placeholder': {\n color: '#999',\n },\n iconColor: '#fff',\n },\n },\n };\n public elementsOptions: StripeElementsOptions = {\n locale: 'en',\n };\n // private privateKey: string = 'sk_test_51Hjn8wA7zjkr2lYuM1lfesGCKm4cwNY2aDBIL7mYAHPWKSgY5DJegi9fJ9vX4nIAnPIwy8NWVReTt9JIOao7CLT30085a5WrlW'; // TJNevis@gmail.com - sk_test_zJ7MYjtW5rxuhDqY9bXCNjui | rick@harrisfuneralhome.com - sk_test_51Hjn8wA7zjkr2lYuM1lfesGCKm4cwNY2aDBIL7mYAHPWKSgY5DJegi9fJ9vX4nIAnPIwy8NWVReTt9JIOao7CLT30085a5WrlW\n private stripeTest: FormGroup;\n\n\n\n constructor(\n private HttpClient: HttpClient,\n private FormBuilder: FormBuilder,\n private StripeService: StripeService,\n private NoDecimalPipe: NoDecimalPipe,\n ) { }\n\n\n\n public createPaymentIntent(amount: number): Observable { //: Observable {\n return Observable.create(observer => {\n observer.next(true);\n });\n // return this.HttpClient.post(\n // ''\n // );\n // return this.http.post(\n // `${env.apiUrl}/create-payment-intent`,\n // { amount }\n // );\n }\n\n\n\n public createToken(): void {\n this.loading = true;\n\n this.StripeService\n .createToken(this.card.element, { name: this.clientInfo.name }) // Creating the token (ngx-stipe) didn't like me sending email and phone\n .subscribe((result) => {\n if (result.token) {\n this.charge = this.NoDecimalPipe.transform((this.charge * 100)); // Stripe doesn't want the decimal\n\n this.HttpClient.post('/payment/submit', { charge: this.charge, client: this.clientInfo, id: this.id, token: result.token }).subscribe((response: any) => {\n this.loading = false;\n\n if (response.stripe && response.stripe.paid) // We can assume it has gone successfully\n this.eventListener.emit({ paymentSuccess: true })\n else\n this.eventListener.emit({ paymentSuccess: false })\n });\n\n } else if (result.error) {\n this.loading = false;\n // Error creating the token\n const cardErrors = document.getElementById('card-errors');\n cardErrors.textContent = (result.error) ? result.error.message : '';\n console.log(result.error.message);\n }\n });\n }\n\n\n\n\n public onChange(e: StripeCardElementChangeEvent) {\n const cardErrors = document.getElementById('card-errors');\n cardErrors.textContent = (e.error) ? e.error.message : '';\n }\n\n\n\n // public pay(): void {\n // if (this.stripeTest.valid) {\n // this.createPaymentIntent(this.stripeTest.get('amount').value)\n // .pipe(\n // switchMap((pi) =>\n // this.StripeService.confirmCardPayment(this.privateKey, {\n // payment_method: {\n // card: this.card.element,\n // // meta_data: {\n // // order_id: 456,\n // // }\n // // billing_details: {\n // // email: 'tjnevis@gmail.com',\n // // name: 'Test Client',\n // // order: 123,\n // // phone: '5853057627',\n // // },\n // },\n // })\n // )\n // )\n // .subscribe((result) => {\n // if (result.error) {\n // // Show error to your customer (e.g., insufficient funds)\n // console.log(result.error.message);\n // } else {\n // // The payment has been processed!\n // if (result.paymentIntent.status === 'succeeded') {\n // // Show a success message to your customer\n // }\n // }\n // });\n // } else {\n // console.log(this.stripeTest);\n // }\n // }\n\n\n\n ngOnInit(): void {\n // https://stackoverflow.com/questions/46039315/how-can-i-style-a-stripe-elements-input-with-bootstrap\n\n // this.stripeTest = this.FormBuilder.group({\n // name: ['', [Validators.required]]\n // });\n\n // this.stripeTest = this.FormBuilder.group({\n // name: ['Angular v10', [Validators.required]],\n // amount: [1000, [Validators.required, Validators.pattern(/\\d+/)]],\n // });\n }\n\n\n\n}\n","
\n
Credit Card Details
\n
\n\n \n \n\n \n\n \n
","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NgxStripeModule } from 'ngx-stripe';\n\nimport { ButtonLoadingModule } from './../modules/button-loading/button-loading.module';\n\nimport { StripePayButtonComponent } from './stripe-pay-button/stripe-pay-button.component';\n\n\n\n@NgModule({\n declarations: [\n StripePayButtonComponent,\n ],\n imports: [\n CommonModule,\n\n NgxStripeModule.forRoot('pk_live_51Hjn8wA7zjkr2lYuxvBX5HIRmQLLUsyxbnMXKfwbtvGeOI0lKb3CSp1Y4nZ1ejXHCzsVRe0J6T5y0tTDixFS6Xky00NQf0C7NA'), // TJNevis@gmail.com - pk_test_yaZD3rZ1J0Hg9LFlOmPlbFlQ /. rick@harrisfuneralhome.com - pk_test_51Hjn8wA7zjkr2lYudyP3KGzimCDYR5U7t0w570olFxX5Lh1MvJT8Q68573X8oQ0B17WTnTV8HnlKomSutuZL9sAL00oolHDKg9 - Also in server/app/controllers/payment.js\n\n ButtonLoadingModule,\n ],\n exports: [\n StripePayButtonComponent,\n ],\n})\nexport class StripeModule { }\n","import { formatCurrency } from '@angular/common';\nimport { Component, OnInit } from '@angular/core';\n\nimport { SurveyService } from './../survey.service';\nimport { UtilitiesService } from './../../_services/utilities.service';\n\n@Component({\n selector: 'app-page-survey',\n templateUrl: './page-survey.component.html',\n styleUrls: ['./page-survey.component.scss']\n})\nexport class PageSurveyComponent implements OnInit {\n\n public ClientAnswers: any = {};\n public Finished = false;\n public LoadingSurvey = false;\n public OrderPricingData: any = {};\n public PaymentSuccess = false;\n public QuestionnaireID = '';\n public SelectedProductsServices = {};\n public ShowStripe = false;\n public ShowSurvey = false;\n public SurveyJSON: any = {};\n public Subtotal: number = 0;\n public TotalPriceWithTax: number = 0;\n public TotalTax: number = 0;\n\n constructor(\n private SurveyService: SurveyService,\n private UtilitiesService: UtilitiesService,\n ) { }\n\n\n\n private AddPricesToData(currentPage) {\n /* ======================================================\n Remove any previously set value - really only an issue on\n page 1 with the dynamic cremation pricing\n ====================================================== */\n document.querySelectorAll('.price-placeholder').forEach(e => e.parentNode.removeChild(e));\n\n for (let page = 0; page < this.SurveyJSON.pages.length; page++) {\n\n /* ======================================================\n Let's only do the replacement stuff on the current page because\n we need to use document.querySelector - haven't been able to do the model dynamically\n ====================================================== */\n if (page !== currentPage)\n continue;\n\n for (let q = 0; q < this.SurveyJSON.pages[page].elements.length; q++) {\n const question = this.SurveyJSON.pages[page].elements[q];\n\n /* ======================================================\n Check if there is pricing for this question\n ====================================================== */\n\n if (this.PriceLookup[question.name]) {\n\n for (let c = 0; c < question.choices.length; c++) {\n const questionAnswer = question.choices[c].value;\n const questionPriceInfo = this.PriceLookup[question.name][questionAnswer];\n const hasWeightPricing = (typeof questionPriceInfo === 'object');\n let displayPrice = 0;\n let weightPrices;\n\n if (hasWeightPricing) {\n // Assume we have the pet weight from page 1\n const petWeight = parseFloat(this.ClientAnswers['pets_weight']);\n weightPrices = questionPriceInfo.weightPrices;\n\n for (let i = 0; i < weightPrices.length; i++) {\n let currentPriceParameters = weightPrices[i];\n\n if (petWeight >= currentPriceParameters.minWeight && petWeight <= currentPriceParameters.maxWeight) {\n const productPrice = currentPriceParameters.price;\n displayPrice = productPrice;\n }\n }\n\n } else {\n displayPrice = questionPriceInfo;\n }\n\n // if (displayPrice > 0) { // Included / standard will be $0 - still display that\n\n let priceElement = document.createElement('div');\n priceElement.classList.add('price-placeholder');\n if (typeof displayPrice === 'number') {\n priceElement.innerHTML = formatCurrency(displayPrice, 'EN', '$');\n } else if (typeof displayPrice === 'string') { // When it's not available - show that text\n // Keep the \"Not Available\" text so I can evaluate and get to this block\n const maxAllowedWeight = weightPrices.slice(-2, -1)[0].maxWeight; // Get the second to last array (the one before this \"not available\" option) which will have the maxWeight we want\n priceElement.innerHTML = '' + displayPrice + maxAllowedWeight + ' pounds.';\n document.querySelector('[name=\"' + question.name + '\"] [value=\"' + questionAnswer + '\"]').setAttribute('disabled', 'disabled'); // Visible but not selectable\n // document.querySelector('[name=\"' + question.name + '\"] [value=\"' + questionAnswer + '\"]').parentNode.parentNode.classList.add('d-none'); //div.sv_q_radiogroup > label.custom-control.custom-radio > input[type=\"radio\"] - Hidden\n }\n\n let currentAnswerHTML = document.querySelector('[name=\"' + question.name + '\"] [value=\"' + questionAnswer + '\"]').parentNode;\n currentAnswerHTML.appendChild(priceElement)\n\n // Trying to update the model after it had been \"registered\" didn't work\n // console.log(this.SurveyJSON.pages[page].elements[q].choices[c].text)\n // Append to description\n // this.SurveyJSON.pages[page].elements[q].choices[c].text += '
' + formatCurrency(displayPrice, 'EN', '$') + '
'\n // }\n\n }\n\n }\n\n }\n\n }\n }\n\n\n\n // public CalculateMatrixRowTotal(matrixRow, addKeyValues) {\n\n // /* ======================================================\n // We'll get an object like\n // {\n // 'Classic Pet': {\n // Add: ['Add'],\n // Size: 'Small',\n // Quantity: 2,\n // },\n // }\n // ====================================================== */\n\n // Object.keys(matrixRow).forEach(productName => {\n // console.log(productName);\n\n // /* ======================================================\n // Find product name in the lookup table\n // ====================================================== */\n // if (this.PriceLookup[productName]) {\n\n // /* ======================================================\n // addKeyValues are also considered required fields - let's\n // make sure we have them all before we try to add\n // ====================================================== */\n // // for (let i = 0; i < addKeyValues.length; i++) {\n\n // // if (matrixRow[productName].hasOwnProperty(addKeyValues[i]) === false)\n // // return false; // Not ready\n\n // // }\n\n // /* ======================================================\n // Now we know we have all the properties, let's add them\n // ====================================================== */\n // let quantity = 0;\n // let productPrice = 0;\n\n // for (let i = 0; i < addKeyValues.length; i++) {\n // const productSubSelection = matrixRow[productName][addKeyValues[i]];\n\n // if (addKeyValues[i] === 'Quantity') { // Special exception\n // quantity = parseFloat(matrixRow[productName][addKeyValues[i]]);\n // } else {\n // productPrice = this.PriceLookup[productName][addKeyValues[i]][productSubSelection]; // Product sub-selection price (like small, medium, large)\n // console.log(addKeyValues[i])\n // }\n\n // console.log(addKeyValues);\n\n // }\n\n // this.SelectedProductsServices[productName] = quantity * productPrice;\n\n // } else {\n // console.log('Product does not have a price set');\n // return false;\n // }\n\n // });\n\n // }\n\n\n\n // TODO - NOT CALCULATING IF YOU SELECT CREMATION TYPE BEFORE PET WEIGHT\n public CalculateSelectedProducts($event) {\n // if ($event.options.question.getType() !== 'matrixdropdown') {\n\n // Regular - though test checkbox...? or not needed now with matrix?\n /* ======================================================\n Correct the total price for a multi-select option\n This updated total (and others) will be calculated below for TotalPrice\n ====================================================== */\n this.OrderPricingData[$event.options.name] = []; // Reset\n\n if (Array.isArray($event.options.value)) {\n /* ======================================================\n Single price items like keepsakes and memorial items\n ====================================================== */\n this.SelectedProductsServices[$event.options.name] = 0; // Reset\n let totalOptionPrice = 0;\n for (let i = 0; i < $event.options.value.length; i++) {\n const currentItem = $event.options.value[i];\n const currentItemPrice = this.PriceLookup[$event.options.name][$event.options.value[i]];\n totalOptionPrice += parseFloat(currentItemPrice);\n this.OrderPricingData[$event.options.name].push({ item: currentItem, price: currentItemPrice });\n }\n\n this.SelectedProductsServices[$event.options.name] = totalOptionPrice;\n } else if (this.PriceLookup[$event.options.name] && this.PriceLookup[$event.options.name][$event.options.value]) {\n /* ======================================================\n Weight prices like the type of cremation and urn\n ====================================================== */\n\n const selectedProductPricesByWeight = this.PriceLookup[$event.options.name][$event.options.value].weightPrices;\n\n if (selectedProductPricesByWeight) {\n const petWeight = parseFloat(this.ClientAnswers['pets_weight']);\n\n for (let i = 0; i < selectedProductPricesByWeight.length; i++) {\n let currentPriceParameters = selectedProductPricesByWeight[i];\n\n if (petWeight >= currentPriceParameters.minWeight && petWeight <= currentPriceParameters.maxWeight)\n this.SelectedProductsServices[$event.options.name] = currentPriceParameters.price; // this.PriceLookup[$event.options.name][$event.options.value].weightPrices[i].price\n }\n\n this.OrderPricingData[$event.options.name].push({ item: $event.options.value, price: this.SelectedProductsServices[$event.options.name] });\n\n } else {\n // this.SelectedProductsServices[$event.options.name]\n // // Like Memorial Items and Keepsakes / Jewelry?\n // this.SelectedProductsServices[$event.options.name] = this.PriceLookup[$event.options.name][$event.options.value];\n }\n\n }\n\n // } else {\n // // this.CalculateMatrixRowTotal($event.options.value, ['Size', 'Quantity']);\n // }\n }\n\n\n\n public CalculateTotal() {\n this.Subtotal = 0; // Start over\n\n /* ======================================================\n Update / re-evaluate the cremation price\n ====================================================== */\n // if (\n // this.ClientAnswers['type_of_cremation']\n // && this.ClientAnswers['type_of_cremation'] === 'Semi-Private'\n // && this.ClientAnswers['pets_weight']\n // && parseFloat(this.ClientAnswers['pets_weight']) < 3\n // )\n // this.SelectedProductsServices['type_of_cremation'] = 85;\n\n Object.keys(this.SelectedProductsServices).forEach((key) => {\n if (!isNaN(parseFloat(this.SelectedProductsServices[key])))\n this.Subtotal += parseFloat(this.SelectedProductsServices[key]);\n });\n\n // console.log(this.SelectedProductsServices)\n\n if (!isNaN(this.Subtotal)) {\n this.TotalTax = parseFloat((this.Subtotal * 0.08).toFixed(2)); // The method toFixed() converts a number to a string. You have to parse the variables to numbers:\n this.TotalPriceWithTax = parseFloat((this.Subtotal * 1.08).toFixed(2)); // Tax\n }\n\n // console.log('Total price with tax', this.Subtotal, this.TotalPriceWithTax);\n }\n\n\n\n public MicroSurveyEvents($event) {\n\n // console.log($event);\n\n if ($event.survey && $event.survey.data) // Won't have any property when initializing\n this.ClientAnswers = $event.survey.data;\n\n if ($event.eventName === 'ModelCreated') {\n\n setTimeout(() => {\n for (let p = 0; p < this.SurveyJSON.pages.length; p++) {\n\n for (let e = 0; e < this.SurveyJSON.pages[p].elements.length; e++) {\n const question = this.SurveyJSON.pages[p].elements[e];\n if (question.defaultValue)\n $event.model.setValue(question.name, question.defaultValue); // Hard set this - not working out of the box? Maybe because of pretty checkboxes, but I'm not sure...\n }\n }\n })\n }\n\n if ($event.eventName === 'onComplete') {\n this.Finished = true; // Evaluate here (if items selected)\n // console.log($event.survey.data)\n let updatedData: any = this.UtilitiesService.cloneObject($event.survey.data);\n updatedData.completed = true;\n updatedData.current_pricing = this.PriceLookup;\n updatedData.current_pricing.tax = this.TotalTax;\n updatedData.current_pricing.subtotal = this.Subtotal;\n updatedData.current_pricing.totalPriceWithTax = this.TotalPriceWithTax;\n updatedData.order_pricing_data = this.OrderPricingData;\n this.SurveyService.Survey.Save(updatedData).subscribe((response: any) => {\n // console.log(response);\n this.QuestionnaireID = response._id;\n });\n }\n\n\n if ($event.eventName === 'onCurrentPageChanged') {\n // $event.model.setValue('type_of_cremation', 'Semi-Private')\n\n // document.querySelector('input[name=\"type_of_cremation_sq_104\"][value=\"Semi-Private\"]').click()\n\n /* ======================================================\n To save as you page, I need an identifier, so I'd need\n to ask for the pet parent info on the first page and\n use the email address as the identifier for upsert\n ====================================================== */\n // this.SurveyService.Survey.Save($event.survey.data).subscribe(response => {\n // console.log(response);\n // });\n\n // Doing form after completion now\n // if (($event.survey.currentPageNo + 1) === $event.survey.PageCount) // Last page\n // document.getElementById('surveysummary').innerHTML = document.getElementById('summarytemp').innerHTML; // Grab the dynamic text and put it in the position we want it\n\n this.CalculateSelectedProducts($event);\n\n this.AddPricesToData($event.survey.currentPageNo);\n }\n\n if ($event.eventName === 'onValueChanged') {\n\n /* ======================================================\n In the event the client has added the pet weight, let's dynamically\n update the cremation pricing\n ====================================================== */\n if ($event.survey.currentPageNo === 0 && this.ClientAnswers.pets_weight)\n this.AddPricesToData(0);\n\n if ($event.options && $event.options.name) {\n\n this.CalculateSelectedProducts($event);\n\n this.CalculateTotal(); // Either regular or matrix\n\n }\n\n }\n\n // if ($event.eventName === 'onMatrixCellValueChanged') {\n // I couldn't find how to get the product name, like 'Classic Pet'...I could only find \"memorial_items\"\n // this.CalculateMatrixRowTotal($event.options.rowValue, ['Size', 'Quantity']);\n // }\n\n }\n\n\n\n public PriceLookup = {\n\n // Order that questions are asked\n\n type_of_cremation: {\n Communal: {\n weightPrices: [\n {\n maxWeight: 2,\n minWeight: 0,\n price: 55,\n },\n {\n maxWeight: 35,\n minWeight: 3,\n price: 65,\n },\n {\n maxWeight: 200,\n minWeight: 36,\n price: 105,\n },\n ]\n },\n 'Semi-Private': {\n weightPrices: [\n {\n maxWeight: 2,\n minWeight: 0,\n price: 85,\n },\n {\n maxWeight: 35,\n minWeight: 3,\n price: 165,\n },\n {\n maxWeight: 200,\n minWeight: 36,\n price: 215,\n },\n ]\n },\n Private:\n {\n weightPrices: [\n {\n maxWeight: 2,\n minWeight: 0,\n price: 195,\n },\n {\n maxWeight: 35,\n minWeight: 3,\n price: 295,\n },\n {\n maxWeight: 200,\n minWeight: 36,\n price: 395,\n },\n ]\n },\n },\n\n chosen_urn: {\n 'Black Photo Box': {\n weightPrices: [\n {\n maxWeight: 15,\n minWeight: 0,\n price: 45,\n },\n {\n maxWeight: 30,\n minWeight: 16,\n price: 65,\n },\n {\n maxWeight: 75,\n minWeight: 31,\n price: 85,\n },\n {\n maxWeight: 180,\n minWeight: 76,\n price: 95,\n },\n {\n maxWeight: 999,\n minWeight: 61,\n price: 'Not available for pets over the weight of ',\n },\n ]\n },\n 'Ceramic - Blue': {\n weightPrices: [\n {\n maxWeight: 15,\n minWeight: 0,\n price: 55,\n },\n {\n maxWeight: 30,\n minWeight: 16,\n price: 70,\n },\n {\n maxWeight: 60,\n minWeight: 31,\n price: 85,\n },\n {\n maxWeight: 999,\n minWeight: 61,\n price: 'Not available for pets over the weight of ',\n },\n ]\n },\n 'Classic Paw - Slate': {\n weightPrices: [\n {\n maxWeight: 15,\n minWeight: 0,\n price: 60,\n },\n {\n maxWeight: 30,\n minWeight: 16,\n price: 65,\n },\n {\n maxWeight: 75,\n minWeight: 31,\n price: 90,\n },\n {\n maxWeight: 200,\n minWeight: 76,\n price: 135,\n },\n {\n maxWeight: 999,\n minWeight: 201,\n price: 'Not available for pets over the weight of ',\n },\n ]\n },\n 'Laser Engraved Photo Urn': {\n weightPrices: [\n {\n maxWeight: 200,\n minWeight: 0,\n price: 95,\n },\n {\n maxWeight: 999,\n minWeight: 201,\n price: 'Not available for pets over the weight of ',\n },\n ]\n },\n 'Maus - Granite': {\n weightPrices: [\n {\n maxWeight: 30,\n minWeight: 0,\n price: 55,\n },\n {\n maxWeight: 70,\n minWeight: 31,\n price: 60,\n },\n {\n maxWeight: 180,\n minWeight: 71,\n price: 130,\n },\n {\n maxWeight: 999,\n minWeight: 181,\n price: 'Not available for pets over the weight of ',\n },\n ]\n },\n 'Odyssey - Crimson': {\n weightPrices: [\n {\n maxWeight: 15,\n minWeight: 0,\n price: 65,\n },\n {\n maxWeight: 30,\n minWeight: 16,\n price: 75,\n },\n {\n maxWeight: 60,\n minWeight: 31,\n price: 90,\n },\n {\n maxWeight: 999,\n minWeight: 61,\n price: 'Not available for pets over the weight of ',\n },\n ]\n },\n 'Odyssey - Pearl': {\n weightPrices: [\n {\n maxWeight: 15,\n minWeight: 0,\n price: 65,\n },\n {\n maxWeight: 30,\n minWeight: 16,\n price: 75,\n },\n {\n maxWeight: 60,\n minWeight: 31,\n price: 90,\n },\n {\n maxWeight: 999,\n minWeight: 61,\n price: 'Not available for pets over the weight of ',\n },\n ]\n },\n 'Photo Cube - Navy': {\n weightPrices: [\n {\n maxWeight: 15,\n minWeight: 0,\n price: 45,\n },\n {\n maxWeight: 35,\n minWeight: 16,\n price: 65,\n },\n {\n maxWeight: 75,\n minWeight: 36,\n price: 85,\n },\n {\n maxWeight: 999,\n minWeight: 76,\n price: 'Not available for pets over the weight of ',\n },\n ]\n },\n 'Photo Urn - Black': {\n weightPrices: [\n {\n maxWeight: 15,\n minWeight: 0,\n price: 45,\n },\n {\n maxWeight: 30,\n minWeight: 16,\n price: 65,\n },\n {\n maxWeight: 75,\n minWeight: 31,\n price: 85,\n },\n {\n maxWeight: 180,\n minWeight: 76,\n price: 95,\n },\n {\n maxWeight: 999,\n minWeight: 181,\n price: 'Not available for pets over the weight of ',\n },\n ]\n },\n 'Standard (included)': {\n weightPrices: [\n {\n maxWeight: 200,\n minWeight: 0,\n price: 0,\n },\n {\n maxWeight: 999,\n minWeight: 201,\n price: 'Not available for pets over the weight of ',\n },\n ]\n },\n },\n\n memorial_items: {\n 'Clay Paw Print': 26.50,\n 'Fur Clipping': 10,\n 'Rainbow Bridge Candle': 25,\n },\n\n keepsake_options: {\n 'No Keepsakes': 0,\n 'Onyx Paw Print Cylinder': 85,\n 'Stainless Steel Paw Bracelet with Paw Charm': 100,\n 'Stainless Steel Paw Print Dog Tag': 135,\n 'Stainless Steel Paw Prints Keychain': 50,\n 'Stainless Steel Pewter Hinged Paw Pendant': 110,\n 'Sterling Silver Paw Print Heart Pendant': 190,\n },\n\n // final_goodbye: {\n // No: 0,\n // Yes: 50,\n // },\n\n // create_memorial: {\n // No: 0,\n // Yes: 500,\n // },\n\n // 'Classic Pet': {\n\n // Size: {\n // Small: 1,\n // Medium: 2,\n // Large: 3,\n // },\n\n // },\n\n };\n\n\n\n public StripeEvents($event) {\n if ($event && $event.paymentSuccess) {\n this.ShowStripe = !$event.paymentSuccess;\n this.PaymentSuccess = $event.paymentSuccess;\n }\n }\n\n\n\n ngOnInit(): void {\n this.LoadingSurvey = true;\n\n this.SurveyService.PrePlanSurvey.GetJSON().subscribe(response => {\n this.SurveyJSON = response.JSON;\n this.LoadingSurvey = false;\n });\n }\n\n\n\n}\n","
\n\n \n\n \n\n \n \n\n
Total\n (with\n tax):\n  {{TotalPriceWithTax | currency}}\n
\n\n
\n\n
\n\n \n \n\n

{{ClientAnswers?.pets_name}}'s Legacy

\n\n
\n\n
\n
\n
    \n
  • You have selected a {{ClientAnswers?.type_of_cremation | lowercase}} cremation.
  • \n
  • You have selected the {{ClientAnswers?.chosen_urn | titlecase}} urn.
  • \n\n
  • You\n do not wish to order any memorial items.
  • \n 0\">\n
  • \n You have ordered a {{m | titlecase}}.\n
  • \n
    \n
  • \n You do not wish\n to order any keepsakes.
  • \n 0\">\n
  • \n You have ordered a {{k | titlecase}}.\n
  • \n
    \n \n
\n\n

Would you like to process payment now?

\n
\n \n \n
\n\n \n
Total:\n  {{TotalPriceWithTax | currency}}\n
\n
\n
\n
\n\n
\n\n
\n\n
\n\n
Payment Received
Thank\n you
\n\n \n\n
","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { FullComponent } from '@app/shared';\n\nimport { PageSurveyComponent } from './page-survey/page-survey.component';\n\nconst routes: Routes = [\n {\n path: '', // 'preplan',\n component: FullComponent,\n children: [\n {\n path: '',\n component: PageSurveyComponent,\n outlet: 'LayoutRouterOutlet',\n // loadChildren: () =>\n // import('./authentication/authentication.module').then(\n // m => m.AuthenticationModule\n // )\n },\n ]\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class SurveyRoutingModule { }","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SharedModule } from '@app/shared';\nimport { SurveyRoutingModule } from './survey-routing.module';\n\nimport { SurveyComponent } from './survey/survey.component';\nimport { PageSurveyComponent } from './page-survey/page-survey.component';\n\n\n\n@NgModule({\n declarations: [\n SurveyComponent,\n PageSurveyComponent,\n ],\n imports: [\n CommonModule,\n\n SharedModule,\n SurveyRoutingModule,\n ],\n exports: [\n SurveyRoutingModule,\n ]\n})\nexport class SurveyModule { }\n","import { Observable, BehaviorSubject, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, CanDeactivate } from '@angular/router';\nimport { HttpClient } from '@angular/common/http';\n\nimport { AnalyticService } from './../_directives/analytic/analytic.service';\n// import { ServerService } from './../../_services/server.service';\n// import { UserService } from './../../_auth/user.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SurveyService implements CanDeactivate {\n private BehaviorSubjects = {\n _Loaded: new BehaviorSubject(false),\n _SurveyEvents: new BehaviorSubject({}),\n };\n\n public Observables = {\n Loaded$: this.BehaviorSubjects._Loaded.asObservable(),\n SurveyEvents$: this.BehaviorSubjects._SurveyEvents.asObservable(),\n };\n\n private AdvisorList;\n private IsInFinsym = false;\n private SurveyName;\n\n constructor(\n private HttpClient: HttpClient,\n private AnalyticService: AnalyticService,\n // private ServerService: ServerService,\n // private UserService: UserService,\n ) { }\n\n\n\n public canDeactivate(component, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState: RouterStateSnapshot): boolean {\n // const user = this.UserService.getUser();\n\n // return (\n // !user // Not logged in, can't get to authenticated areas anyway\n // ||\n // (user && user.SystemGeneratedPassword !== 1) // Already reset their password and logged in- allow them to go to dashboard and stuff\n // ||\n // nextState.url === '/login' // If the route is /login, they can go there\n // ||\n // !this.Survey.IsFrom('new-client') // We call Finish for new-client right before navigating, so IsFrom should be false - we don't want user.SystemGeneratedPassword = 1 to naviate unless they aren't from the wealth profile\n // );\n\n return true;\n }\n\n\n\n public CheckIfExistsByEmailAddress(surveyName, emailAddress) {\n // this.AnalyticService.send('SurveyService', surveyName + ' CheckIfExistsByEmailAddress', emailAddress);\n // return this.ServerService.post('/questionnaire/CheckIfExistsByEmailAddress/' + surveyName + '/' + emailAddress);\n }\n\n\n\n public Continue(surveyName, data?) {\n // return this.ServerService.post('/questionnaire/Continue/' + surveyName, data).map(response => {\n // if (response.Success) // If false - don't worry...like when we load the goals summary, this will execute but let's not count it as a \"check\" unless there is data\n // this.AnalyticService.send('SurveyService', surveyName + ' Continue / Check'); // Only if there is data to actually continue - the actual loading (and contiuing of the questionnaire) will be in the survey.component.ts LoadSurvey()...we'll send another analytic then\n\n // if (response.Questionnaire && response.Questionnaire.ClientID && response.Questionnaire.ClientID < 1000000)\n // this.IsInFinsym = true;\n\n // return response;\n // });\n }\n\n\n\n public FindAdvisorPropertyByCSCEntityID(property, CSCEntityID) {\n let AdvisorName = '';\n if (CSCEntityID)\n // NOTE: Structure changed from AdvisorName and CSCEntityID to text and value - in survey.service.ts - from database to CC data structure\n for (let i = 0; i < this.AdvisorList.length; i++)\n if (this.AdvisorList[i].value === CSCEntityID)\n AdvisorName = this.AdvisorList[i][property];\n\n return AdvisorName;\n }\n\n\n\n public Modal(show) {\n const body = document.querySelector('body');\n if (show)\n body.classList.add('micro-survey-active');\n else\n body.classList.remove('micro-survey-active');\n };\n\n\n\n public PrePlanSurvey = {\n\n GetJSON: (): Observable => {\n // https://blog.angular-university.io/angular-debugging/\n // this.BehaviorSubjects._Loaded.next(false); // This, when calling GetJSONFlattened() caused \"expression has changed\" issues\n\n // return this.ServerService.get('/questionnaire/GetWealthProfileOptions').map(response => {\n return new Observable(observer => {\n this.BehaviorSubjects._Loaded.next(true);\n\n observer.next({\n\n JSON: {\n // \"completedHtml\": \"

Our thoughts are with you during this difficult time.

Healing Poems of Love and Loss\",\n \"completedHtml\": \"

Thank you for your pre-plan submission.

A confirmation has been sent to your e-mail. If you need immediate assistance, please contact us at (585) 544-2041.

\",\n \"completeText\": \"Submit\",\n \"pages\": [\n {\n \"name\": \"page1\",\n \"title\": \"\",\n \"elements\": [\n {\n \"type\": \"html\",\n \"name\": \"question10\",\n \"html\": \"

Please tell us about your pet.

\"\n },\n {\n \"type\": \"text\",\n \"name\": \"pets_name\",\n \"title\": \"Pet's Name\",\n \"isRequired\": true\n },\n {\n \"type\": \"dropdown\",\n \"name\": \"type_of_pet\",\n \"startWithNewLine\": false,\n \"title\": \"Type of Pet\",\n \"isRequired\": true,\n \"choices\": [\n \"Cat\",\n \"Dog\",\n \"Bird\",\n \"Other\"\n ]\n },\n {\n \"type\": \"text\",\n \"name\": \"pets_weight\",\n \"title\": \"Pet's Weight (in lbs)\",\n \"isRequired\": true,\n \"inputType\": \"number\"\n },\n {\n \"startWithNewLine\": false,\n \"type\": \"dropdown\",\n \"name\": \"pets_gender\",\n \"title\": \"Pet's Gender\",\n \"choices\": [\n \"Female\",\n \"Male\",\n \"Other\"\n ]\n },\n {\n \"type\": \"radiogroup\",\n \"name\": \"type_of_cremation\",\n \"title\": \"What type of cremation would you like?\",\n // \"defaultValue\": \"Private\",\n \"choices\": [\n {\n \"value\": \"Private\",\n \"text\": \"![](/assets/images/private-cremation.jpg)\"\n },\n {\n \"value\": \"Semi-Private\",\n \"text\": \"![](/assets/images/semi-private-cremation.jpg)\"\n },\n {\n \"value\": \"Communal\",\n \"text\": \"![](/assets/images/communal-cremation.jpg)\"\n }\n ],\n \"isRequired\": true,\n \"colCount\": 3\n },\n {\n \"type\": \"html\",\n \"name\": \"question2\",\n \"html\": `
Private Cremation
\n
    \n
  • A true private cremation – Your pet is the ONLY pet in our cremation unit.
  • \n
  • You have the option to witness a portion of your pet’s cremation. An appointment is required.
  • \n
  • We use a 100% guaranteed ID pet tracking system. Our method is the only one recommended by the Cremation Association of North America.
  • \n
  • We guarantee that your pet’s cremated remains will be available within 72 hours of receiving your pet into our care. (Excludes weekends and holidays).
  • \n
  • Your pet’s cremated remains are gently placed in a custom embroidered velvet pouch and then returned to you in a beautiful wooden urn.
  • \n
  • A cherished ink paw print impression, cremation certificate, and a “Grieving the Lost of Your Pet” guide are included.
  • \n
\n
    \n
  • 0-2 lbs: $195
  • \n
  • 3-35 lbs: $295
  • \n
  • 36-200 lbs: $395
  • \n
\n `\n },\n {\n \"type\": \"html\",\n \"name\": \"question4\",\n \"startWithNewLine\": false,\n \"html\": `
Semi-Private Cremation
\n
    \n
  • Your pet is placed in the cremation unit along with other pets. However, our unique stainless steel dividers ensure that your pet is completely segregated from the others. Pets are NEVER touching. We guarantee you will receive your pet’s cremated remains only.
  • \n
  • We use a 100% guaranteed ID pet tracking system. Our method is the only one recommended by the Cremation Association of North America.
  • \n
  • We guarantee that your pet’s cremated remains will be available within 72 hours of receiving your pet into our care. (Excludes weekends and holidays).
  • \n
  • You’re pet’s cremated remains are gently placed in a custom embroidered velvet pouch and then returned to you in a beautiful wooden urn.
  • \n
  • A cherished ink paw print impression, cremation certificate, and a “Grieving the Loss of Your Pet” guide are included.
  • \n
\n
    \n
  • 0-2 lbs: $85
  • \n
  • 3-35 lbs: $165
  • \n
  • 36-200 lbs: $215
  • \n
\n `\n },\n {\n \"type\": \"html\",\n \"name\": \"question3\",\n \"startWithNewLine\": false,\n \"html\": `
Communal Cremation
\n
    \n
  • Communal cremation is the process of cremating multiple pets together without any form of separation. The commingled cremated remains are not returned to the pet owners(s) and will be disposed of in a non-recoverable manner.
  • \n
  • Your pet will be transferred from your Veterinary Hospital or home in a timely manner.
  • \n
  • Payment in full is required at the time of death.
  • \n
  • Once you have selected the cremation option that is best for your pet, it is important to determine the best way to get your pet into our care.
  • \n
\n
    \n
  • 0-2 lbs: $55
  • \n
  • 3-35 lbs: $65
  • \n
  • 36-200 lbs: $105
  • \n
\n `\n },\n {\n \"type\": \"radiogroup\",\n \"name\": \"witness_cremation\",\n \"title\": \"Would you like opportunity to witness the cremation?\",\n \"visibleIf\": \"{type_of_cremation} = 'Private'\",\n \"isRequired\": true,\n \"choices\": [\n {\n \"value\": \"Yes\",\n \"text\": \"Yes\"\n },\n {\n \"value\": \"No\",\n \"text\": \"No\"\n }\n ],\n \"colCount\": 3\n }\n ],\n \"description\": \"\"\n },\n {\n \"name\": \"page2\",\n \"title\": \"Urn Selection\",\n \"elements\": [\n {\n \"type\": \"radiogroup\",\n \"name\": \"chosen_urn\",\n \"title\": \"Which urn would you like?\",\n \"description\": \"Engraving is available at an additional cost. Please contact us with special requests or to discuss options and pricing.\",\n \"defaultValue\": \"Standard (included)\",\n \"isRequired\": true,\n \"choices\": [\n {\n \"value\": \"Classic Paw - Slate\",\n \"text\": \"![](assets/images/urns/classic-paw-slate.jpg) The Slate Classic Paw has a slate finish and features a ring of pewter paw prints encircling the urn.\"\n },\n {\n \"value\": \"Maus - Granite\",\n \"text\": \"![](assets/images/urns/maus-granite.jpg) The Maus Granite has a speckled black and gray-blue finish combined beautifully with a bronze accent ring beneath the lid.\"\n },\n {\n \"value\": \"Odyssey - Crimson\",\n \"text\": \"![](assets/images/urns/odyssey-crimson.jpg) The Odyssey® Crimson pet urn has a high gloss beautiful red finish with bronze accents and paw prints encircling the urn.\"\n },\n {\n \"value\": \"Odyssey - Pearl\",\n \"text\": \"![](assets/images/urns/odyssey-pearl.jpg) The Odyssey® Pearl pet urn has a high gloss pearl white finish with pewter accents and paw prints encircling the urn.\"\n },\n {\n \"value\": \"Photo Cube - Navy\",\n \"text\": \"![](assets/images/urns/photo-cube-navy.jpg) The Navy Photo Cube accommodates three pictures and has a separate cremation compartment.\"\n },\n {\n \"value\": \"Ceramic - Blue\",\n \"text\": \"![](assets/images/urns/ceramic-blue.jpg) This urn features a deep blue finish with a natural band of hand-painted paw prints that encircle the urn.\"\n },\n {\n \"value\": \"Laser Engraved Photo Urn\",\n \"text\": \"![](assets/images/urns/engraved-urn.png) We will engrave your pet’s name, dates, and a photo on the top of one of our beautiful wooden urns.\"\n },\n {\n \"value\": \"Black Photo Box\",\n \"text\": \"![](assets/images/urns/urn-black.jpg) The Black Photo box features a black finish and one photo slot which is separate from the cremation compartment.\"\n },\n {\n \"value\": \"Standard (included)\",\n \"text\": \"![](assets/images/urns/standard.jpg) This urn comes standard with our Private and Semi-Private cremation options.\"\n },\n ],\n \"colCount\": 3\n }\n ],\n \"visibleIf\": \"{type_of_cremation} <> 'Communal'\",\n },\n {\n \"name\": \"page3\",\n \"title\": \"Memorial Items\",\n \"elements\": [\n {\n \"type\": \"checkbox\",\n \"name\": \"memorial_items\",\n \"title\": \"Would you like any memorial items?\",\n \"defaultValue\": \"none\",\n \"hasNone\": true,\n \"noneText\": \"No Memorial Items\",\n \"choices\": [\n {\n \"value\": \"Clay Paw Print\",\n \"text\": \"![](assets/images/memorial-items/clay-paw-print.jpg) An everlasting impression of your pet’s paw print and name.\"\n },\n {\n \"value\": \"Fur Clipping\",\n \"text\": \"![](assets/images/memorial-items/fur-clipping.jpg) A clipping of your beloved pet’s fur in our “Forever in My Heart” holder.\"\n },\n {\n \"value\": \"Rainbow Bridge Candle\",\n \"text\": \"![](assets/images/memorial-items/rainbow-bridge-candle.jpg) We will create a glass-sided memorial candle with your pet’s name and photo.\"\n },\n ],\n \"colCount\": 3\n },\n\n // https://surveyjs.io/Documentation/Survey-Creator?id=Create-Custom-Widget\n\n // {\n // \"type\": \"matrixdropdown\",\n // \"name\": \"memorial_items\",\n // \"title\": \"Do you want any Memorial Items?\",\n // \"columns\": [\n // {\n // \"name\": \"Size\",\n // \"cellType\": \"dropdown\",\n // \"choices\": [\n // {\n // \"value\": \"Small\",\n // \"text\": \"Small\"\n // },\n // {\n // \"value\": \"Medium\",\n // \"text\": \"Medium\"\n // },\n // {\n // \"value\": \"Large\",\n // \"text\": \"Large\"\n // }\n // ]\n // },\n // {\n // \"name\": \"Quantity\",\n // \"cellType\": \"text\",\n // \"width\": \"100px\"\n // },\n // {\n // \"name\": \"Add\",\n // \"cellType\": \"checkbox\"\n // }\n // ],\n // \"choices\": [\n // \"Add\"\n // ],\n // \"rows\": [\n // {\n // \"value\": \"Classic Pet\",\n // \"text\": \"![](https://petsatpeace.harrisfuneralhome.com/8750/High/Ceramic_Blue.jpg)\"\n // },\n // {\n // \"value\": \"Another\",\n // \"text\": \"![](https://petsatpeace.harrisfuneralhome.com/8750/High/Ceramic_Blue.jpg)\"\n // }\n // ]\n // }\n\n ]\n },\n {\n \"name\": \"page4\",\n \"title\": \"Keepsakes\",\n \"elements\": [\n // {\n // \"type\": \"radiogroup\",\n // \"name\": \"keepsake_yes_no\",\n // \"title\": \"Would you like any keepsakes?\",\n // \"choices\": [\n // \"Yes\",\n // \"No\"\n // ],\n // \"colCount\": 2\n // },\n {\n \"type\": \"checkbox\",\n \"name\": \"keepsake_options\",\n // \"visibleIf\": \"{keepsake_yes_no} = 'Yes'\",\n \"title\": \"Would you like any keepsakes?\",\n \"defaultValue\": \"none\",\n \"hasNone\": true,\n \"noneText\": \"No Keepsakes\",\n \"choices\": [\n {\n \"value\": \"Stainless Steel Paw Bracelet with Paw Charm\",\n \"text\": \"![](assets/images/keepsakes/paw-bracelet-with-paw-charm.jpg)
Stainless Steel Paw Bracelet with Paw Charm
\"\n },\n {\n \"value\": \"Stainless Steel Paw Print Dog Tag\",\n \"text\": \"![](assets/images/keepsakes/dog-tag-with-actual-paw-print.png)
Stainless Steel Paw Print Dog Tag with 24 inch Chain
\"\n },\n {\n \"value\": \"Stainless Steel Paw Prints Keychain\",\n \"text\": \"![](assets/images/keepsakes/stainless-steel-paw-prints-pet-keychain.png)
Stainless Steel Paw Prints Keychain
\"\n },\n {\n \"value\": \"Onyx Paw Print Cylinder\",\n \"text\": \"![](assets/images/keepsakes/onyx-cylinder-with-paw-prints.jpg)
Onyx Paw Print Cylinder with 19 inch Chain
\"\n },\n {\n \"value\": \"Sterling Silver Paw Print Heart Pendant\",\n \"text\": \"![](assets/images/keepsakes/heart-pendant-with-actual-paw-print.png)
Sterling Silver Paw Print Heart Pendant with 20 inch Chain
\"\n },\n {\n \"value\": \"Stainless Steel Pewter Hinged Paw Pendant\",\n \"text\": \"![](assets/images/keepsakes/pewter-hinged-paw-pendant.jpg)
Stainless Steel Pewter Hinged Paw Pendant with 19 inch Chain
\"\n },\n ],\n \"colCount\": 3\n },\n // {\n // \"type\": \"text\",\n // \"name\": \"keepsake_quantity\",\n // \"title\": \"Keepsake Quantity\",\n // // \"visibleIf\": \"{keepsake_yes_no} = 'Yes'\"\n // }\n ]\n },\n // {\n // \"name\": \"page5\",\n // \"title\": \"Final Goodbye\",\n // \"elements\": [\n // {\n // \"type\": \"radiogroup\",\n // \"name\": \"final_goodbye\",\n // \"title\": \"I would like a final goodbye\",\n // \"choices\": [\n // \"Yes\",\n // \"No\"\n // ],\n // \"colCount\": 2\n // }\n // ],\n // \"description\": \"Many pet parents along with their families want to have a one last final goodbye after the death of their pet. In most families, the death of a pet can be everyone's first experience. We encourage everyone, including other pets, to participate in the final goodbye. It is proven that by having a private goodbye helps many families through grief and with closure. Please know that our staff has been trained in the proper procedures and care techniques to ensure that your pet is groomed and presentable for the final goodbye. Please know that our staff has been trained in the proper procedures and care techniques to ensure that your pet is groomed and presentable for the final goodbye.\"\n // },\n // {\n // \"name\": \"page6\",\n // \"title\": \"Your Pet's Memorial\",\n // \"elements\": [\n // {\n // \"type\": \"radiogroup\",\n // \"name\": \"create_memorial\",\n // \"title\": \"Do you wish to create a memorial of your pet?\",\n // \"choices\": [\n // \"Yes\",\n // \"No\"\n // ],\n // \"colCount\": 2\n // }\n // ],\n // \"description\": \"There are many ways to memorialize & remember your pet when they pass. We offer many different products, such as Laser Photo Urns, Clay Paw Prints, Fur Clippings & Rainbow Bridge Candles etc. We also offer free On line Memorials or Pet Obituaries. Our on line memorials allow you to write your own remembrance and upload photos. This lifetime archive will always be visible on our website, you can even share it on Facebook for family and friends to see it.\"\n // },\n {\n \"name\": \"page7\",\n \"title\": \"Summary\",\n \"elements\": [\n {\n \"type\": \"radiogroup\",\n \"name\": \"time_frame\",\n \"title\": \"Time Frame\",\n \"choices\": [\n \"Contact me to answer any further questions or schedule an appointment.\",\n \"Place my pet's information on file.\"\n ]\n },\n {\n \"type\": \"text\",\n \"name\": \"pet_owner_first_name\",\n \"title\": \"First Name\",\n \"isRequired\": true\n },\n {\n \"type\": \"text\",\n \"name\": \"pet_owner_last_name\",\n \"startWithNewLine\": false,\n \"title\": \"Last Name\",\n \"isRequired\": true\n },\n {\n \"type\": \"text\",\n \"name\": \"pet_owner_email\",\n \"title\": \"Your Email\",\n \"isRequired\": true,\n \"inputType\": \"email\"\n },\n {\n \"type\": \"text\",\n \"name\": \"pet_owner_phone_number\",\n \"startWithNewLine\": false,\n \"title\": \"Your Phone Number\",\n \"isRequired\": true,\n \"inputType\": \"text\",\n \"inputFormat\": \"(999) 999-9999\"\n },\n {\n \"type\": \"text\",\n \"name\": \"address\",\n \"title\": \"Address\",\n \"isRequired\": true\n },\n {\n \"type\": \"text\",\n \"name\": \"city\",\n \"startWithNewLine\": false,\n \"title\": \"City\",\n \"isRequired\": true\n },\n {\n \"type\": \"text\",\n \"name\": \"state\",\n \"title\": \"State\",\n \"isRequired\": true\n },\n {\n \"type\": \"text\",\n \"startWithNewLine\": false,\n \"name\": \"zip\",\n \"title\": \"Zip\",\n \"isRequired\": true\n },\n {\n \"type\": \"html\",\n \"name\": \"question9\",\n \"html\": \"
\", //
\n // \"html\": \"
Summary
\"\n }\n ]\n },\n // {\n // \"name\": \"page8\",\n // \"elements\": [\n // {\n // \"type\": \"html\",\n // \"name\": \"question9\",\n // \"html\": \"
Summary
Question

{type_of_cremation} {chosen_urn}

Healing Poems of Love and Loss
\"\n // }\n // ]\n // }\n ]\n }\n\n });\n\n // };\n\n });\n\n },\n\n GetJSONFlattened: (existing?): Observable => {\n return this.PrePlanSurvey.GetJSON()\n .pipe(\n map(response => {\n\n const pages = response.JSON.pages;\n let newPages = [\n {\n name: '',\n title: '',\n elements: [],\n },\n ];\n\n for (let i = 0; i < pages.length; i++) {\n if (i === 0 && existing && this.IsInFinsym) // If an existing client, remove \"Basic Information\", page 1, from the wealth profile questions\n continue;\n\n for (let x = 0; x < pages[i].elements.length; x++)\n newPages[0].elements.push(pages[i].elements[x]);\n }\n\n response.JSON.pages = newPages;\n\n return response;\n })\n );\n },\n\n }\n\n\n\n public Register = {\n\n // Client: (surveyName, data) => {\n // if (data && data.QuestionnaireData && data.QuestionnaireData.preferred_advisor) // Will only have preferred_advisor at this stage for super users (clients won't get this question until later pages...they don't START with one long page like a super user does)\n // data.QuestionnaireData.preferred_advisor_text = this.FindAdvisorPropertyByCSCEntityID('text', data.QuestionnaireData.preferred_advisor); // In Survey.Save too\n // this.SurveyName = surveyName;\n // this.AnalyticService.send('SurveyService', this.SurveyName + ' Register Client', this.Survey.FindEmailAddress(data));\n // // return this.ServerService.post('/questionnaire/RegisterClient/' + surveyName, data);\n // },\n\n // Sharefile: (data) => {\n // this.AnalyticService.send('SurveyService', this.SurveyName, 'Register Sharefile', this.Survey.FindEmailAddress(data));\n // // return this.ServerService.post('/questionnaire/RegisterSharefile', data);\n // },\n\n // Yodlee: (data) => { // only passing data for analytics\n // this.AnalyticService.send('SurveyService', this.SurveyName, 'Register Yodlee', this.Survey.FindEmailAddress(data));\n // // return this.ServerService.post('/questionnaire/RegisterYodlee', data);\n // },\n\n };\n\n\n\n public SendEvent(data) {\n // So you can subscribe to these events with more than just the event emitter from micro-survey.component.ts (listen at a global level) (but I'll have them fire the same)\n this.BehaviorSubjects._SurveyEvents.next(data);\n }\n\n\n\n public Survey = {\n\n // FindEmailAddress: (data) => {\n // return (data && data.PII && data.PII.client_1_email_address) ? data.PII.client_1_email_address : '';\n // },\n\n // Finish: (SurveyName) => {\n // this.AnalyticService.send('SurveyService', this.SurveyName, 'Finish');\n // localStorage.removeItem(SurveyName + 'Start');\n // },\n\n // IsFrom: (SurveyName) => {\n // const IsFrom = localStorage.getItem(SurveyName + 'Start') === 'true';\n // if (IsFrom)\n // this.AnalyticService.send('SurveyService', this.SurveyName, 'IsFrom');\n // return IsFrom;\n // },\n\n Save: (data) => {\n // this.AnalyticService.send('SurveyService', this.SurveyName, 'Save', this.Survey.FindEmailAddress(data));\n return this.HttpClient.post('/questionnaire', { data: data });\n },\n\n // Start: (SurveyName) => {\n // this.AnalyticService.send('SurveyService', this.SurveyName, 'Start');\n // localStorage.setItem(SurveyName + 'Start', 'true');\n // },\n\n }\n\n\n\n}\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ViewContainerRef, ComponentFactoryResolver, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core';\nimport { formatCurrency } from '@angular/common';\n\nimport * as $ from 'jquery';\nimport * as Showdown from 'showdown';\nimport * as Survey from 'survey-angular';\nimport * as widgets from 'surveyjs-widgets';\nimport { ToastrService } from 'ngx-toastr';\n\nimport { AnalyticService } from './../../_directives/analytic/analytic.service';\nimport { DynamicComponentService } from './../../_services/dynamic-component.service';\nimport { SurveyService } from './../survey.service';\n// import { UserService } from './../../../_auth/user.service';\nimport { UtilitiesService } from './../../_services/utilities.service';\n\n/* ======================================================\nTODO - Implement previous and next browser or mouse button navigation\nlocalstorage and/or hash\nhttps://github.com/surveyjs/survey-library/issues/751\n====================================================== */\n\n@Component({\n selector: 'app-survey',\n templateUrl: './survey.component.html',\n styleUrls: ['./survey.component.scss']\n})\nexport class SurveyComponent implements OnInit, AfterViewInit, OnChanges {\n\n @Input() data;\n @Input()\n set handleCustomOnComplete(value) {\n this._handleCustomOnComplete = (value === true || value === 'true');\n }\n @Input()\n set handleCustomSave(value) {\n this._handleCustomSave = (value === true || value === 'true');\n }\n @Input() json;\n @Input()\n set popup(value) {\n this._popup = (value === true || value === 'true');\n }\n // @Input() QuestionnaireID;\n @Input() QuestionnaireName;\n @Input()\n set show(value) {\n\n if (this._popup) {\n this._show = value;\n this.SurveyService.Modal((value || value === 'true'));\n }\n\n }\n private _surveyCSS = {\n\n body: '',\n\n checkbox: {\n controlLabel: 'custom-control-label',\n itemControl: 'custom-control-input',\n label: 'custom-control custom-checkbox',\n },\n\n // comment: 'form-control w-100',\n\n completedPage: 'micro-survey-completed',\n\n container: '',\n\n footer: 'px-2 py-4',\n\n navigation: {\n complete: 'btn-info',\n next: 'btn-primary',\n prev: 'btn-default',\n start: 'btn-primary',\n },\n\n navigationButton: 'btn-questionnaire mt-2',\n\n page: {\n description: 'mb-3 p-1',\n // root: 'page-root',\n title: 'mt-4 mb-0 p-1',\n },\n\n // paneldynamic: {\n // button: 'btn-primary btn-sm',\n // },\n\n progress: 'p-1',\n\n question: {\n header: 'mb-2',\n mainRoot: 'sv_qstn p-2 overflow-hidden text-serif', // overflow-hidden for IE\n // title: 'font-weight-bold mb-2', // Only takes effect once you've selected an option for the question - probably a bug\n headerTop: 'font-weight-bold mb-2', // Works but it's a level higher than the h5 title, so I have a CSS rule to force the classes\n },\n\n radiogroup: {\n controlLabel: 'custom-control-label',\n itemControl: 'custom-control-input',\n label: 'custom-control custom-radio',\n },\n\n // window: {\n // body: 'px-2 pb-3 overflow-auto',\n // header: {\n // buttonCollapsed: 'pull-right fa fa-chevron-down',\n // buttonExpanded: 'pull-right fa fa-chevron-up',\n // root: 'p-2 bg-primary text-white font-weight-bold shadow1 title-click', // mb-4\n // },\n // root: 'survey-modal modal-content shadow3 expanded', // .expanded when *ngIf\n // },\n\n };\n @Input()\n set surveyCSS(input) {\n this._surveyCSS = this.UtilitiesService.DeepMerge(this._surveyCSS, input);\n }\n @Input() private showProgressBar = 'none';\n @Output() public surveyEvents = new EventEmitter();\n @ViewChild('TemporaryViewContainerRef', { read: ViewContainerRef }) public TemporaryViewContainerRef: ViewContainerRef;\n\n private _handleCustomOnComplete: boolean = false;\n private _handleCustomSave: boolean = false;\n private _popup: boolean = true;\n private _show: boolean = false;\n private surveyModel;\n private user;\n\n\n\n constructor(\n private AnalyticService: AnalyticService,\n // // private ComponentFactoryResolver: ComponentFactoryResolver,\n private DynamicComponentService: DynamicComponentService, // Issue with circular dependency\n private SurveyService: SurveyService,\n private ToastrService: ToastrService,\n // private UserService: UserService,\n private UtilitiesService: UtilitiesService,\n ) { }\n\n\n\n public CustomFunctions = {\n\n EsimatedNetWorthCalculation(EsimatedAnnualIncome) {\n return formatCurrency(EsimatedAnnualIncome, 'EN', '$') || null;\n },\n\n isDateLessThanCurrent(params) {\n if (params.length < 1) return false;\n var date = params[0];\n // debugger;\n if (typeof date == \"string\") date = Date.parse(date);\n return date <= new Date();\n },\n\n };\n\n\n\n private ProcessDynamicComponents() {\n // Process dynamic placeholders\n let DynamicComponentContainers = document.querySelectorAll('.survey-dynamic-component-container:not(.loaded)');\n if (DynamicComponentContainers) {\n DynamicComponentContainers.forEach((element, key) => {\n let componentRef = this.DynamicComponentService.AddDynamicComponentToViewContainerRef(\n this.TemporaryViewContainerRef,\n element\n );\n\n element.classList.add('loaded');\n let componentInstace: any = componentRef.instance; // To get rid of \"Property 'EventListener' does not exist on type '{}'.\"\n\n if (componentInstace.EventListener) // Let's use a standard name of \"EventListener\" as an EventEmitter on the component we dynamically added\n componentInstace.EventListener.subscribe(response => {\n // console.log(element, key, response);\n })\n });\n\n }\n }\n\n\n\n private RegisterQuestionnaireJSON(value) {\n\n /* ======================================================\n For some reason, with the popups (maybe non-popups too)\n this is getting called twice and 2 windows are popping up\n \n I guess that's because ngAfterViewInit and ngOnChanges is calling RegisterQuestionnaireJSON\n But it's not really noticeable (but maybe speed?) on the non-popup version\n \n For now, I've disabled calling RegisterQuestionnaireJSON in ngAfterViewInit, so I won't need this\n ====================================================== */\n // if (this.surveyModel && this._popup)\n // return;\n\n /* ======================================================\n Custom function registration\n ====================================================== */\n // Works, just not in use right now\n // Survey\n // .FunctionFactory\n // .Instance\n // .register('EsimatedNetWorthCalculation', this.CustomFunctions.EsimatedNetWorthCalculation);\n\n Survey.FunctionFactory.Instance.register('isDateLessThanCurrent', this.CustomFunctions.isDateLessThanCurrent);\n\n\n if (!this.UtilitiesService.IsEmptyObject(value)) {\n this.surveyModel = new Survey.Model(value);\n\n this.surveyModel.showProgressBar = this.showProgressBar;\n\n // Custom widget example - https://embed.plnkr.co/l6uF1U/\n this.surveyEvents.emit({ eventName: 'ModelCreated', model: this.surveyModel, surveyModel: this.surveyModel, QuestionnaireName: this.QuestionnaireName, });\n\n // Now that we have the JSON, use the [data]\n if (this.data) {\n this.surveyModel.data = this.data;\n this.surveyEvents.emit({ eventName: 'DataAdded', model: this.surveyModel, surveyModel: this.surveyModel, QuestionnaireName: this.QuestionnaireName, });\n }\n\n /* ======================================================\n Animation\n ====================================================== */\n this.surveyModel\n .onCurrentPageChanging\n .add((survey, options) => {\n $('#surveyElement, #windowSurveyJS').css({ opacity: 0 }); // .animate({ opacity: 0 }, 50);\n });\n\n this.surveyModel\n .onCurrentPageChanged\n .add((survey, options) => {\n setTimeout(() => {\n $('#surveyElement, #windowSurveyJS').animate({ opacity: 1 }, 250);\n }, 150)\n });\n\n /* ======================================================\n Regular events\n ====================================================== */\n // this.surveyModel.onAfterRenderQuestion.add((survey, options) => {\n // // if (!options.question.popupdescription) { return; }\n // // // Add a button;\n // // const btn = document.createElement('button');\n // // btn.className = 'btn btn-info btn-xs';\n // // btn.innerHTML = 'More Info';\n // // btn.onclick = function () {\n // // // showDescription(question);\n // // alert(options.question.popupdescription);\n // // };\n // // const header = options.htmlElement.querySelector('h5');\n // // const span = document.createElement('span');\n // // span.innerHTML = ' ';\n // // header.appendChild(span);\n // // header.appendChild(btn);\n\n // // console.log(survey, options);\n // });\n\n this.surveyModel\n .onComplete\n .add((survey, options) => {\n this.SurveyService.Modal(false);\n\n this.surveyEvents.emit({ eventName: 'onComplete', model: this.surveyModel, options: options, QuestionnaireName: this.QuestionnaireName, survey: survey, });\n // this.SurveyService.SendEvent({ eventName: 'onComplete', options: options, QuestionnaireName: this.QuestionnaireName, survey: survey, });\n\n // if (!this._handleCustomOnComplete)\n // this.SurveyService.Survey.Save({ completed: true, insert: true, questionnaire_name: this.QuestionnaireName, survey: survey, }).subscribe(response => {\n // this.surveyEvents.emit({ eventName: 'onComplete', isExpanded: survey.isExpanded, options: options, Questionnaire: this.QuestionnaireName, });\n // this.SurveyService.SendEvent({ eventName: 'onComplete', isExpanded: survey.isExpanded, options: options, QuestionnaireName: this.QuestionnaireName, survey: survey, });\n // this.ToastrService.success('Successfully saved your answers', 'Success');\n // });\n\n });\n\n this.surveyModel\n .onCurrentPageChanged\n .add((survey, options) => {\n // this.user = this.UserService.getUser();\n // const UserCSCEntityID = (this.user && this.user.UserCSCEntityID) ? this.user.UserCSCEntityID.toString() : '';\n // this.AnalyticService.send('Questionnaire', this.QuestionnaireName + UserCSCEntityID, 'Page', survey.currentPageNo.toString());\n\n // const NextButton = (document.querySelector('.btn-questionnaire.btn-primary[value=\"Next\"]'))\n // if (NextButton)\n // NextButton.value = 'Skip'; // survey.pageNextText = 'Skip';\n\n // this.ProcessDynamicComponents();\n\n this.surveyEvents.emit({ eventName: 'onCurrentPageChanged', model: this.surveyModel, options: options, QuestionnaireName: this.QuestionnaireName, survey: survey });\n });\n\n this.surveyModel\n .onCurrentPageChanging\n .add((survey, options) => {\n // let tempData = this.UtilitiesService.RemoveNulls(survey.data);\n // if (!this._handleCustomSave)\n // this.SurveyService.Survey.Save({ data: tempData, eventName: 'onCurrentPageChanging', options: options, questionnaire_name: this.QuestionnaireName, survey: survey, }).subscribe();\n this.surveyEvents.emit({ eventName: 'onCurrentPageChanging', model: this.surveyModel, options: options, QuestionnaireName: this.QuestionnaireName, survey: survey, });\n });\n\n /* ======================================================\n MARKDOWN\n ====================================================== */\n var converter = new Showdown.Converter();\n this.surveyModel\n .onTextMarkdown\n .add(function (survey, options) {\n var str = converter.makeHtml(options.text); // Convert the mardown text to html\n str = str.substring(3); // Remove root paragraphs

\n str = str.substring(0, str.length - 4);\n options.html = str; // Set html\n });\n\n /* ======================================================\n QUESTION NUMBERING - \"on\", \"onPage\", \"off\"\n https://surveyjs.io/Documentation/Library/?id=surveymodel#showQuestionNumbers\n ====================================================== */\n this.surveyModel.showQuestionNumbers = 'off';\n\n // this.surveyModel\n // .onStarted\n // .add((survey) => {\n // // console.log('onStarted')\n // });\n\n // this.surveyModel\n // .onSurveyWindowExpandedChange // TJ\n // .add((survey, options) => {\n // let surveyWindowRoot = document.querySelector('[data-bind=\"css: css.window.root\"]');\n // if (survey.isExpanded)\n // surveyWindowRoot.classList.add('expanded');\n // else\n // surveyWindowRoot.classList.remove('expanded');\n // // Only really want .expanded (which sets top: 0) to be like the max...I want it to be lower if it can, but if it grows, I want the max to be at 0 instead of negative and it going offscreen if there are a lot of questions on that survey page\n\n // if (!survey.isExpanded)\n // survey.hide();\n // else {\n // setTimeout(() => {\n // // this.ProcessDynamicComponents();\n // }, 500);\n // }\n\n // this.surveyEvents.emit({ eventName: 'onSurveyWindowExpandedChange', isExpanded: survey.isExpanded, options: options, QuestionnaireName: this.QuestionnaireName, survey: survey, });\n // });\n\n this.surveyModel\n .onMatrixCellValueChanged\n .add((survey, options) => {\n this.surveyEvents.emit({ eventName: 'onMatrixCellValueChanged', model: this.surveyModel, options: options, QuestionnaireName: this.QuestionnaireName, survey: survey, });\n });\n\n this.surveyModel\n .onValueChanged\n .add((survey, options) => {\n this.surveyEvents.emit({ eventName: 'onValueChanged', isExpanded: survey.isExpanded, model: this.surveyModel, options: options, QuestionnaireName: this.QuestionnaireName, survey: survey, });\n\n const NextButton = (document.querySelector('.btn-questionnaire.btn-primary[value=\"Skip\"]'))\n if (NextButton)\n NextButton.value = 'Next';\n\n // const surveySummary = document.querySelector('#surveysummary')\n // if (surveySummary)\n // surveySummary.textContent = 'Result JSON:\\n' + JSON.stringify(survey.data, null, 3);\n\n // this.ProcessDynamicComponents();\n });\n\n\n /* ======================================================\n Start up\n ====================================================== */\n let SurveyObject = (this._popup) ? Survey.SurveyWindowNG : Survey.SurveyNG;\n SurveyObject.render('surveyElement', {\n css: this._surveyCSS, // Make sure to wait for passed [surveyCSS]\n isExpanded: true, // (this._popup) ? this._show : true,\n model: this.surveyModel,\n });\n\n // this.ProcessDynamicComponents();\n }\n\n }\n\n\n\n ngOnInit() {\n /* ======================================================\n Not really an issue - but when advisors tried to test the client logging in,\n going to /new-client would redirect them to /login because it was\n (and if the session expired? / they were locked?)\n reading the landing URL...but this wouldn't happen for an\n actual client who hasn't yet been in to Client Center\n ====================================================== */\n // this.UserService.LandingURL.reset();\n }\n\n\n\n ngAfterViewInit() {\n if (!this.UtilitiesService.IsEmptyObject(this.json)) {\n // this.RegisterQuestionnaireJSON(this.json);\n this.ProcessDynamicComponents();\n }\n }\n\n\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes && changes.json && changes.json.currentValue) // It has changed from the original - like when continuing a wealth profile...let's change the display from paged to one page\n this.RegisterQuestionnaireJSON(changes.json.currentValue);\n }\n\n\n\n}\n","
\n\n
\n
\n
","export const environment = {\n env: 'PROD',\n production: true,\n serverBaseUrl: 'https://api.preplan.notifypetsatpeace.com',\n serverUrl: 'https://api.preplan.notifypetsatpeace.com'\n};\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n if (window) {\n window.console.log = function () { };\n }\n /**\n * To enable PWA Service worker uncomment this code\n */\n if ('serviceWorker' in navigator) {\n window.addEventListener('load', function () {\n navigator.serviceWorker.register('ngsw-worker.js');\n });\n }\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch((err: any) => console.log(err));\n"],"sourceRoot":"webpack:///"}