{"version":3,"sources":["node_modules/moment/moment.js","node_modules/angular-ng-autocomplete/fesm2020/angular-ng-autocomplete.mjs","node_modules/@ng-select/ng-select/fesm2022/ng-select-ng-select.mjs","src/app/support/_componentes/alterar-vendedores/_models/cotacaoSemaforoVendedor.ts","src/app/support/_componentes/alterar-vendedores/alterar-vendedores.component.ts","src/app/support/_componentes/alterar-vendedores/alterar-vendedores.component.html","src/app/support/avaliacao-vendedores/avaliacao-vendedores.service.ts","src/app/support/avaliacao-vendedores/avaliacao-vendedores.component.ts","src/app/support/avaliacao-vendedores/avaliacao-vendedores.component.html","src/app/support/cadastro-cnpj/_components/cadastro-cnpj-edicao/create.component.ts","src/app/support/cadastro-cnpj/_components/cadastro-cnpj-edicao/create.component.html","src/app/support/cadastro-cnpj/cadastro-cnpj.service.ts","src/app/_utils/validators/cnpj-duplicado.validator.ts","src/app/support/cadastro-cnpj/_models/company-model.ts","src/app/support/_models/supportGridview.ts","src/app/support/_componentes/gridview/gridview.component.ts","src/app/support/_componentes/gridview/gridview.component.html","src/app/support/cadastro-cnpj/_components/list/list.component.ts","src/app/support/cadastro-cnpj/_components/list/list.component.html","src/app/support/cadastro-gestor-whatsapp/cadastro-gestor-whatsapp.service.ts","src/app/support/cadastro-gestor-whatsapp/cadastro-gestor-whatsapp.component.ts","src/app/support/cadastro-gestor-whatsapp/cadastro-gestor-whatsapp.component.html","src/app/support/cadastro-novidades/cadastro-novidades.service.ts","src/app/support/cadastro-novidades/cadastro-novidades.component.ts","src/app/support/cadastro-novidades/cadastro-novidades.component.html","src/app/_models/simplifiedRoles.ts","src/app/support/cadastro-novidades/_components/create/create.component.ts","src/app/support/cadastro-novidades/_components/create/create.component.html","src/app/support/cadastro-novidades/_components/list/list.component.ts","src/app/support/cadastro-novidades/_components/list/list.component.html","src/app/support/contestacoes/contestacoes.service.ts","src/app/support/contestacoes/contestacoes.component.ts","src/app/support/contestacoes/contestacoes.component.html","src/app/support/cotacoes/_models/quotationPageTypeEnum.ts","src/app/support/cotacoes/cotacoes.component.ts","src/app/support/cotacoes/cotacoes.component.html","src/app/support/diario/diario.service.ts","src/app/support/diario/diario.component.ts","src/app/support/diario/diario.component.html","src/app/support/faturamento/faturamento.service.ts","src/app/support/faturamento/faturamento.component.ts","src/app/support/faturamento/faturamento.component.html","src/app/support/gerenciar-vendedores/gerenciar-vendedores.service.ts","src/app/support/gerenciar-vendedores/gerenciar-vendedores.component.ts","src/app/support/gerenciar-vendedores/gerenciar-vendedores.component.html","src/app/support/limpar-tela-vendedor/limpar-tela-vendedor.service.ts","src/app/support/limpar-tela-vendedor/limpar-tela-vendedor.component.ts","src/app/support/limpar-tela-vendedor/limpar-tela-vendedor.component.html","src/app/support/multilogin/multilogin.service.ts","src/app/support/multilogin/multilogin.component.ts","src/app/support/multilogin/multilogin.component.html","src/app/support/oficina-sem-documentacao/oficina-sem-documentacao.service.ts","src/app/support/oficina-sem-documentacao/oficina-sem-documentacao.component.ts","src/app/support/oficina-sem-documentacao/oficina-sem-documentacao.component.html","src/app/support/pedidos/pedidos.service.ts","src/app/support/pedidos/pedidos.component.ts","src/app/support/pedidos/pedidos.component.html","src/app/support/usuario-interno/usuario-interno.service.ts","src/app/support/usuario-interno/_models/validationErrors.ts","src/app/support/usuario-interno/_componentes/usuario-interno-edicao/usuario-interno-edicao.component.ts","src/app/support/usuario-interno/_componentes/usuario-interno-edicao/usuario-interno-edicao.component.html","src/app/support/usuario-interno/_componentes/usuario-interno-lista/usuario-interno-lista.component.ts","src/app/support/usuario-interno/_componentes/usuario-interno-lista/usuario-interno-lista.component.html","src/app/support/usuario-interno/usuario-interno.component.ts","src/app/support/usuario-interno/usuario-interno.component.html","src/app/support/voltar-cotacao/voltar-cotacao.service.ts","src/app/support/voltar-cotacao/voltar-cotacao.component.ts","src/app/support/voltar-cotacao/voltar-cotacao.component.html","src/app/support/cadastro-cnpj/cadastro-cnpj.component.ts","src/app/support/cadastro-cnpj/cadastro-cnpj.component.html","src/app/_services/_guards/base.guard.ts","src/app/_services/_guards/support.guard.ts","src/app/support/holdings/billing-data-management/billing-data-management.service.ts","src/app/_models/holdingPaymentType.ts","src/app/support/holdings/billing-data-management/_models/holdingSupplierForEdit.ts","src/app/_models/plans.ts","src/app/support/holdings/billing-data-management/_components/holding-custom-comission/holding-custom-comission.component.ts","src/app/support/holdings/billing-data-management/_components/holding-custom-comission/holding-custom-comission.component.html","src/app/support/holdings/billing-data-management/_components/holding-manage-payment/holding-manage-payment.component.ts","src/app/support/holdings/billing-data-management/_components/holding-manage-payment/holding-manage-payment.component.html","src/app/support/holdings/billing-data-management/_components/holding-manage/holding-manage.component.ts","src/app/support/holdings/billing-data-management/_components/holding-manage/holding-manage.component.html","src/app/support/holdings/billing-data-management/_components/holdings-list/holdings-list.component.ts","src/app/support/holdings/billing-data-management/_components/holdings-list/holdings-list.component.html","src/app/support/holdings/billing-data-management/billing-data-management.component.ts","src/app/support/holdings/billing-data-management/billing-data-management.component.html","src/app/support/support.route.ts","src/app/support/support.module.ts"],"sourcesContent":["//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n function isUndefined(input) {\n return input === void 0;\n }\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n return a;\n }\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n return false;\n };\n }\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid = flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n var deprecations = {};\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n var keys;\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n function expandFormat(format, locale) {\n var i = 5;\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n return format;\n }\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n if (format || !formatUpper) {\n return format;\n }\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n var defaultInvalidDate = 'Invalid date';\n function invalidDate() {\n return this._invalidDate;\n }\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year'\n };\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n return normalizedInput;\n }\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1\n };\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/,\n // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/,\n // 0-99\n regexes;\n regexes = {};\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n return value;\n }\n var tokens = {};\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n var d = mom._d,\n isUTC = mom._isUTC;\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN;\n // Just in case\n }\n }\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n d = mom._d;\n isUTC = mom._isUTC;\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC ? d.setUTCMilliseconds(value) : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break;\n // See below ...\n default:\n return;\n // Just in case\n }\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC ? d.setUTCFullYear(year, month, date) : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n function mod(n, x) {\n return (n % x + x) % x;\n }\n var indexOf;\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n var month = value,\n date = mom.date();\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC ? mom._d.setUTCMonth(month, date) : mom._d.setMonth(month, date));\n return mom;\n }\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n return date;\n }\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n return {\n week: resWeek,\n year: resYear\n };\n }\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n };\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n return null;\n }\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n function kFormat() {\n return this.hours() || 24;\n }\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports && isLocaleNameSane(name)) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n return globalLocale._abbr;\n }\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n if (!key) {\n return globalLocale;\n }\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n return chooseLocale(key);\n }\n function listLocales() {\n return keys(locales);\n }\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n getParsingFlags(m).overflow = overflow;\n }\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n return result;\n }\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^()]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n });\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n if (config._d) {\n return;\n }\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n configFromArray(config);\n checkOverflow(config);\n }\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n extend(config, bestMoment || tempConfig);\n }\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n return res;\n }\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n if (!isValid(config)) {\n config._d = null;\n }\n return config;\n }\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n });\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n return true;\n }\n function isValid$1() {\n return this._isValid;\n }\n function createInvalid$1() {\n return createDuration(NaN);\n }\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds + seconds * 1e3 +\n // 1000\n minutes * 6e4 +\n // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n this._bubble();\n }\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n if (matches === null) {\n return null;\n }\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n return this._isDSTShifted;\n }\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n ret = new Duration(duration);\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n return ret;\n }\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n if (!mom.isValid()) {\n // No op\n return;\n }\n updateOffset = updateOffset == null ? true : updateOffset;\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property,\n propertyLen = properties.length;\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n return objectTest && propertyTest;\n }\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n return objectTest && propertyTest;\n }\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n function clone() {\n return new Moment(this);\n }\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n if (!this.isValid()) {\n return NaN;\n }\n that = cloneWithOffset(input, this);\n if (!that.isValid()) {\n return NaN;\n }\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n return asFloat ? output : absFloor(output);\n }\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n function localeData() {\n return this._locale;\n }\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n function toDate() {\n return new Date(this.valueOf());\n }\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n function isValid$2() {\n return isValid(this);\n }\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n return '';\n }\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n return '';\n }\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n return '';\n }\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n return this.year();\n }\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday() + this.localeData()._week.dow, this.localeData()._week.dow, this.localeData()._week.doy);\n }\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n function preParsePostFormat(string) {\n return string;\n }\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n format = format || '';\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n format = format || '';\n }\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n function clone$1() {\n return createDuration(this);\n }\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n function weeks() {\n return absFloor(this.days() / 7);\n }\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n return locale.postformat(output);\n }\n var abs$1 = Math.abs;\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // \n DATE: 'YYYY-MM-DD',\n // \n TIME: 'HH:mm',\n // \n TIME_SECONDS: 'HH:mm:ss',\n // \n TIME_MS: 'HH:mm:ss.SSS',\n // \n WEEK: 'GGGG-[W]WW',\n // \n MONTH: 'YYYY-MM' // \n };\n return hooks;\n});","import * as i0 from '@angular/core';\nimport { Pipe, EventEmitter, forwardRef, TemplateRef, Component, ViewEncapsulation, ViewChild, Input, Output, ContentChild, NgModule } from '@angular/core';\nimport { fromEvent } from 'rxjs';\nimport { map, filter, debounceTime } from 'rxjs/operators';\nimport * as i2 from '@angular/forms';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nconst _c0 = [\"searchInput\"];\nconst _c1 = [\"filteredListElement\"];\nconst _c2 = [\"historyListElement\"];\nconst _c3 = a0 => ({\n \"active\": a0\n});\nconst _c4 = (a0, a1) => ({\n \"is-hidden\": a0,\n \"is-visible\": a1\n});\nconst _c5 = a0 => ({\n $implicit: a0\n});\nfunction AutocompleteComponent_div_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 14);\n i0.ɵɵlistener(\"click\", function AutocompleteComponent_div_4_Template_div_click_0_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.remove($event));\n });\n i0.ɵɵelementStart(1, \"i\", 15);\n i0.ɵɵtext(2, \"close\");\n i0.ɵɵelementEnd()();\n }\n}\nfunction AutocompleteComponent_div_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 16);\n i0.ɵɵelement(1, \"div\", 17)(2, \"div\", 18)(3, \"div\", 19)(4, \"div\", 20)(5, \"div\", 21)(6, \"div\", 22)(7, \"div\", 23)(8, \"div\", 24)(9, \"div\", 25)(10, \"div\", 26)(11, \"div\", 27)(12, \"div\", 28);\n i0.ɵɵelementEnd();\n }\n}\nfunction AutocompleteComponent_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 29)(1, \"div\", 30);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r2.heading);\n }\n}\nfunction AutocompleteComponent_li_10_div_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction AutocompleteComponent_li_10_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 33);\n i0.ɵɵlistener(\"click\", function AutocompleteComponent_li_10_div_1_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const item_r5 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.select(item_r5));\n });\n i0.ɵɵtemplate(1, AutocompleteComponent_li_10_div_1_ng_container_1_Template, 1, 0, \"ng-container\", 34);\n i0.ɵɵpipe(2, \"highlight\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext();\n const item_r5 = ctx_r5.$implicit;\n const idx_r7 = ctx_r5.index;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"complete-selected\", idx_r7 === ctx_r2.selectedIdx);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.itemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(7, _c5, i0.ɵɵpipeBind2(2, 4, item_r5, ctx_r2.toHighlight)));\n }\n}\nfunction AutocompleteComponent_li_10_div_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction AutocompleteComponent_li_10_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 33);\n i0.ɵɵlistener(\"click\", function AutocompleteComponent_li_10_div_2_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r8);\n const item_r5 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.select(item_r5));\n });\n i0.ɵɵtemplate(1, AutocompleteComponent_li_10_div_2_ng_container_1_Template, 1, 0, \"ng-container\", 34);\n i0.ɵɵpipe(2, \"highlight\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext();\n const item_r5 = ctx_r5.$implicit;\n const idx_r7 = ctx_r5.index;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"complete-selected\", idx_r7 === ctx_r2.selectedIdx);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.itemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(8, _c5, i0.ɵɵpipeBind3(2, 4, item_r5, ctx_r2.toHighlight, ctx_r2.searchKeyword)));\n }\n}\nfunction AutocompleteComponent_li_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"li\", 31);\n i0.ɵɵtemplate(1, AutocompleteComponent_li_10_div_1_Template, 3, 9, \"div\", 32)(2, AutocompleteComponent_li_10_div_2_Template, 3, 10, \"div\", 32);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r5 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isTypeString(item_r5));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.isTypeString(item_r5));\n }\n}\nfunction AutocompleteComponent_div_12_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 29)(1, \"div\", 30);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 14);\n i0.ɵɵlistener(\"click\", function AutocompleteComponent_div_12_Template_div_click_3_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.resetHistoryList($event));\n });\n i0.ɵɵelementStart(4, \"i\", 35);\n i0.ɵɵtext(5, \"delete\");\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r2.historyHeading);\n }\n}\nfunction AutocompleteComponent_li_15_div_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction AutocompleteComponent_li_15_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 33);\n i0.ɵɵlistener(\"click\", function AutocompleteComponent_li_15_div_1_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r11);\n const item_r12 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.select(item_r12));\n });\n i0.ɵɵtemplate(1, AutocompleteComponent_li_15_div_1_ng_container_1_Template, 1, 0, \"ng-container\", 34);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r12 = i0.ɵɵnextContext();\n const item_r12 = ctx_r12.$implicit;\n const idx_r14 = ctx_r12.index;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"complete-selected\", idx_r14 === ctx_r2.selectedIdx);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.itemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(4, _c5, item_r12));\n }\n}\nfunction AutocompleteComponent_li_15_div_2_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction AutocompleteComponent_li_15_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r15 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 33);\n i0.ɵɵlistener(\"click\", function AutocompleteComponent_li_15_div_2_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r15);\n const item_r12 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.select(item_r12));\n });\n i0.ɵɵtemplate(1, AutocompleteComponent_li_15_div_2_ng_container_1_Template, 1, 0, \"ng-container\", 34);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r12 = i0.ɵɵnextContext();\n const item_r12 = ctx_r12.$implicit;\n const idx_r14 = ctx_r12.index;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"complete-selected\", idx_r14 === ctx_r2.selectedIdx);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.itemTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(4, _c5, item_r12));\n }\n}\nfunction AutocompleteComponent_li_15_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"li\", 31);\n i0.ɵɵtemplate(1, AutocompleteComponent_li_15_div_1_Template, 2, 6, \"div\", 32)(2, AutocompleteComponent_li_15_div_2_Template, 2, 6, \"div\", 32);\n i0.ɵɵelementStart(3, \"div\", 14);\n i0.ɵɵlistener(\"click\", function AutocompleteComponent_li_15_Template_div_click_3_listener($event) {\n const idx_r14 = i0.ɵɵrestoreView(_r10).index;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.removeHistoryItem(idx_r14, $event));\n });\n i0.ɵɵelementStart(4, \"i\", 15);\n i0.ɵɵtext(5, \"close\");\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const item_r12 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.isTypeString(item_r12));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r2.isTypeString(item_r12));\n }\n}\nfunction AutocompleteComponent_div_16_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0);\n }\n}\nfunction AutocompleteComponent_div_16_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 36);\n i0.ɵɵtemplate(1, AutocompleteComponent_div_16_ng_container_1_Template, 1, 0, \"ng-container\", 34);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.notFoundTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c5, ctx_r2.notFoundText));\n }\n}\nfunction AutocompleteComponent_div_17_Template(rf, ctx) {\n if (rf & 1) {\n const _r16 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 37);\n i0.ɵɵlistener(\"click\", function AutocompleteComponent_div_17_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r16);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.handleOverlay());\n });\n i0.ɵɵelementEnd();\n }\n}\nlet HighlightPipe = /*#__PURE__*/(() => {\n class HighlightPipe {\n transform(text, search, searchKeyword) {\n let pattern = search.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n pattern = pattern.split(' ').filter(t => {\n return t.length > 0;\n }).join('|');\n const regex = new RegExp(pattern, 'gi');\n if (!search) {\n return text;\n }\n if (searchKeyword) {\n const name = text[searchKeyword].replace(regex, match => `${match}`);\n // copy original object\n const textCopied = {\n ...text\n };\n // set bold value into searchKeyword of copied object\n textCopied[searchKeyword] = name;\n return textCopied;\n } else {\n return search ? text.replace(regex, match => `${match}`) : text;\n }\n }\n }\n HighlightPipe.ɵfac = function HighlightPipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || HighlightPipe)();\n };\n HighlightPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"highlight\",\n type: HighlightPipe,\n pure: true,\n standalone: false\n });\n return HighlightPipe;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Keyboard events\n */\nconst isArrowUp = keyCode => keyCode === 38;\nconst isArrowDown = keyCode => keyCode === 40;\nconst isArrowUpDown = keyCode => isArrowUp(keyCode) || isArrowDown(keyCode);\nconst isEnter = keyCode => keyCode === 13;\nconst isBackspace = keyCode => keyCode === 8;\nconst isDelete = keyCode => keyCode === 46;\nconst isESC = keyCode => keyCode === 27;\nconst isTab = keyCode => keyCode === 9;\nlet AutocompleteComponent = /*#__PURE__*/(() => {\n class AutocompleteComponent {\n constructor(elementRef, renderer) {\n this.renderer = renderer;\n this.query = ''; // search query\n this.filteredList = []; // list of items\n this.historyList = []; // list of history items\n this.isHistoryListVisible = true;\n this.selectedIdx = -1;\n this.toHighlight = '';\n this.notFound = false;\n this.isFocused = false;\n this.isOpen = false;\n this.isScrollToEnd = false;\n this.overlay = false;\n this.manualOpen = undefined;\n this.manualClose = undefined;\n // @Inputs\n /**\n * Data of items list.\n * It can be array of strings or array of objects.\n */\n this.data = [];\n this.placeholder = '';\n this.heading = '';\n /**\n * Heading text of history list.\n * If it is null then history heading is hidden.\n */\n this.historyHeading = 'Recently selected';\n this.historyListMaxNumber = 15; // maximum number of items in the history list.\n this.notFoundText = 'Not found'; // set custom text when filter returns empty result\n /**\n * The minimum number of characters the user must type before a search is performed.\n */\n this.minQueryLength = 1;\n /**\n * Focus first item in the list\n */\n this.focusFirst = false;\n // @Output events\n /** Event that is emitted whenever an item from the list is selected. */\n this.selected = new EventEmitter();\n /** Event that is emitted whenever an input is changed. */\n this.inputChanged = new EventEmitter();\n /** Event that is emitted whenever an input is focused. */\n this.inputFocused = new EventEmitter();\n /** Event that is emitted whenever an input is cleared. */\n this.inputCleared = new EventEmitter();\n /** Event that is emitted when the autocomplete panel is opened. */\n this.opened = new EventEmitter();\n /** Event that is emitted when the autocomplete panel is closed. */\n this.closed = new EventEmitter();\n /** Event that is emitted when scrolled to the end of items. */\n this.scrolledToEnd = new EventEmitter();\n /**\n * Propagates new value when model changes\n */\n this.propagateChange = () => {};\n this.onTouched = () => {};\n this.elementRef = elementRef;\n }\n /**\n * Writes a new value from the form model into the view,\n * Updates model\n */\n writeValue(value = '') {\n this.query = this.selectedValueRender !== undefined ? this.selectedValueRender(value) : this.defaultWriteValue(value);\n }\n defaultWriteValue(value) {\n return value && !this.isTypeString(value) ? value[this.searchKeyword] : value;\n }\n /**\n * Registers a handler that is called when something in the view has changed\n */\n registerOnChange(fn) {\n this.propagateChange = fn;\n }\n /**\n * Registers a handler specifically for when a control receives a touch event\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Event that is called when the value of an input element is changed\n */\n onChange(event) {\n this.propagateChange(event.target.value);\n }\n /**\n * Event that is called when the control status changes to or from DISABLED\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n }\n ngOnInit() {}\n ngAfterViewInit() {\n this.initEventStream();\n this.handleScroll();\n }\n /**\n * Set initial value\n * @param value\n */\n setInitialValue(value) {\n if (this.initialValue) {\n this.select(value);\n }\n }\n /**\n * Update search results\n */\n ngOnChanges(changes) {\n this.setInitialValue(this.initialValue);\n if (changes && changes.data && Array.isArray(changes.data.currentValue)) {\n this.handleItemsChange();\n if (!changes.data.firstChange && this.isFocused) {\n this.handleOpen();\n }\n }\n }\n /**\n * Items change\n */\n handleItemsChange() {\n this.isScrollToEnd = false;\n if (!this.isOpen) {\n return;\n }\n this.filteredList = this.data;\n this.notFound = !this.filteredList || this.filteredList.length === 0;\n // Filter list when updating data and panel is open\n if (this.isOpen) {\n this.filterList();\n }\n }\n /**\n * Filter data\n */\n filterList() {\n this.selectedIdx = -1;\n this.initSearchHistory();\n if (this.query != null && this.data) {\n this.toHighlight = this.query;\n this.filteredList = this.customFilter !== undefined ? this.customFilter([...this.data], this.query) : this.defaultFilterFunction();\n // If [focusFirst]=\"true\" automatically focus the first match\n if (this.filteredList.length > 0 && this.focusFirst) {\n this.selectedIdx = 0;\n }\n } else {\n this.notFound = false;\n }\n }\n /**\n * Default filter function, used unless customFilter is provided\n */\n defaultFilterFunction() {\n return this.data.filter(item => {\n if (typeof item === 'string') {\n // string logic, check equality of strings\n return item.toLowerCase().indexOf(this.query.toLowerCase()) > -1;\n } else if (typeof item === 'object' && item instanceof Object) {\n // object logic, check property equality\n return item[this.searchKeyword] ? item[this.searchKeyword].toLowerCase().indexOf(this.query.toLowerCase()) > -1 : \"\";\n }\n });\n }\n /**\n * Check if item is a string in the list.\n * @param item\n */\n isTypeString(item) {\n return typeof item === 'string';\n }\n /**\n * Select item in the list.\n * @param item\n */\n select(item) {\n this.query = !this.isTypeString(item) ? item[this.searchKeyword] : item;\n this.isOpen = true;\n this.overlay = false;\n this.selected.emit(item);\n this.propagateChange(item);\n if (this.initialValue) {\n // check if history already exists in localStorage and then update\n const history = window.localStorage.getItem(`${this.historyIdentifier}`);\n if (history) {\n let existingHistory = JSON.parse(localStorage[`${this.historyIdentifier}`]);\n if (!(existingHistory instanceof Array)) existingHistory = [];\n // check if selected item exists in existingHistory\n if (!existingHistory.some(existingItem => !this.isTypeString(existingItem) ? existingItem[this.searchKeyword] == item[this.searchKeyword] : existingItem == item)) {\n existingHistory.unshift(item);\n localStorage.setItem(`${this.historyIdentifier}`, JSON.stringify(existingHistory));\n // check if items don't exceed max allowed number\n if (existingHistory.length >= this.historyListMaxNumber) {\n existingHistory.splice(existingHistory.length - 1, 1);\n localStorage.setItem(`${this.historyIdentifier}`, JSON.stringify(existingHistory));\n }\n } else {\n // if selected item exists in existingHistory swap to top in array\n if (!this.isTypeString(item)) {\n // object logic\n const copiedExistingHistory = existingHistory.slice(); // copy original existingHistory array\n const selectedIndex = copiedExistingHistory.map(el => el[this.searchKeyword]).indexOf(item[this.searchKeyword]);\n copiedExistingHistory.splice(selectedIndex, 1);\n copiedExistingHistory.splice(0, 0, item);\n localStorage.setItem(`${this.historyIdentifier}`, JSON.stringify(copiedExistingHistory));\n } else {\n // string logic\n const copiedExistingHistory = existingHistory.slice(); // copy original existingHistory array\n copiedExistingHistory.splice(copiedExistingHistory.indexOf(item), 1);\n copiedExistingHistory.splice(0, 0, item);\n localStorage.setItem(`${this.historyIdentifier}`, JSON.stringify(copiedExistingHistory));\n }\n }\n } else {\n this.saveHistory(item);\n }\n } else {\n this.saveHistory(item);\n }\n this.handleClose();\n }\n /**\n * Document click\n * @param e event\n */\n handleClick(e) {\n let clickedComponent = e.target;\n let inside = false;\n do {\n if (clickedComponent === this.elementRef.nativeElement) {\n inside = true;\n if (this.filteredList.length) {\n this.handleOpen();\n }\n }\n clickedComponent = clickedComponent.parentNode;\n } while (clickedComponent);\n if (!inside) {\n this.handleClose();\n }\n }\n /**\n * Handle body overlay\n */\n handleOverlay() {\n this.overlay = false;\n }\n /**\n * Scroll items\n */\n handleScroll() {\n this.renderer.listen(this.filteredListElement.nativeElement, 'scroll', () => {\n this.scrollToEnd();\n });\n }\n /**\n * Define panel state\n */\n setPanelState(event) {\n if (event) {\n event.stopPropagation();\n }\n // If controls are untouched\n if (typeof this.manualOpen === 'undefined' && typeof this.manualClose === 'undefined') {\n this.isOpen = false;\n this.handleOpen();\n }\n // If one of the controls is untouched and other is deactivated\n if (typeof this.manualOpen === 'undefined' && this.manualClose === false || typeof this.manualClose === 'undefined' && this.manualOpen === false) {\n this.isOpen = false;\n this.handleOpen();\n }\n // if controls are touched but both are deactivated\n if (this.manualOpen === false && this.manualClose === false) {\n this.isOpen = false;\n this.handleOpen();\n }\n // if open control is touched and activated\n if (this.manualOpen) {\n this.isOpen = false;\n this.handleOpen();\n this.manualOpen = false;\n }\n // if close control is touched and activated\n if (this.manualClose) {\n this.isOpen = true;\n this.handleClose();\n this.manualClose = false;\n }\n }\n /**\n * Manual controls\n */\n open() {\n this.manualOpen = true;\n this.isOpen = false;\n this.handleOpen();\n }\n close() {\n this.manualClose = true;\n this.isOpen = true;\n this.handleClose();\n }\n focus() {\n this.handleFocus(event);\n }\n clear() {\n this.remove(event);\n }\n /**\n * Remove search query\n */\n remove(e) {\n e.stopPropagation();\n this.query = '';\n this.inputCleared.emit();\n this.propagateChange(this.query);\n this.setPanelState(e);\n if (this.data && !this.data.length) {\n this.notFound = false;\n }\n }\n /**\n * Initialize historyList search\n */\n initSearchHistory() {\n this.isHistoryListVisible = false;\n if (this.historyIdentifier && !this.query) {\n const history = window.localStorage.getItem(`${this.historyIdentifier}`);\n if (history) {\n this.isHistoryListVisible = true;\n this.filteredList = [];\n this.historyList = history ? JSON.parse(history) : [];\n } else {\n this.isHistoryListVisible = false;\n }\n } else {\n this.isHistoryListVisible = false;\n }\n }\n handleOpen() {\n if (this.isOpen || this.isOpen && !this.isLoading) {\n return;\n }\n // If data exists\n if (this.data && this.data.length) {\n this.isOpen = true;\n this.overlay = true;\n this.filterList();\n this.opened.emit();\n }\n }\n handleClose() {\n if (!this.isOpen) {\n this.isFocused = false;\n return;\n }\n this.isOpen = false;\n this.overlay = false;\n this.filteredList = [];\n this.selectedIdx = -1;\n this.notFound = false;\n this.isHistoryListVisible = false;\n this.isFocused = false;\n this.closed.emit();\n }\n handleFocus(e) {\n this.searchInput.nativeElement.focus();\n if (this.isFocused) {\n return;\n }\n this.inputFocused.emit(e);\n // if data exists then open\n if (this.data && this.data.length) {\n this.setPanelState(e);\n }\n this.isFocused = true;\n }\n scrollToEnd() {\n if (this.isScrollToEnd) {\n return;\n }\n const scrollTop = this.filteredListElement.nativeElement.scrollTop;\n const scrollHeight = this.filteredListElement.nativeElement.scrollHeight;\n const elementHeight = this.filteredListElement.nativeElement.clientHeight;\n const atBottom = elementHeight != 0 && Math.abs(scrollHeight - elementHeight - scrollTop) < 1;\n if (atBottom) {\n this.scrolledToEnd.emit();\n this.isScrollToEnd = true;\n }\n }\n /**\n * Initialize keyboard events\n */\n initEventStream() {\n this.inputKeyUp$ = fromEvent(this.searchInput.nativeElement, 'keyup').pipe(map(e => e));\n this.inputKeyDown$ = fromEvent(this.searchInput.nativeElement, 'keydown').pipe(map(e => e));\n this.listenEventStream();\n }\n /**\n * Listen keyboard events\n */\n listenEventStream() {\n // key up event\n this.inputKeyUp$.pipe(filter(e => !isArrowUpDown(e.keyCode) && !isEnter(e.keyCode) && !isESC(e.keyCode) && !isTab(e.keyCode)), debounceTime(this.debounceTime)).subscribe(e => {\n this.onKeyUp(e);\n });\n // cursor up & down\n this.inputKeyDown$.pipe(filter(e => isArrowUpDown(e.keyCode))).subscribe(e => {\n e.preventDefault();\n this.onFocusItem(e);\n });\n // enter keyup\n this.inputKeyUp$.pipe(filter(e => isEnter(e.keyCode))).subscribe(e => {\n //this.onHandleEnter();\n });\n // enter keydown\n this.inputKeyDown$.pipe(filter(e => isEnter(e.keyCode))).subscribe(e => {\n this.onHandleEnter();\n });\n // ESC\n this.inputKeyUp$.pipe(filter(e => isESC(e.keyCode), debounceTime(100))).subscribe(e => {\n this.onEsc();\n });\n // TAB\n this.inputKeyDown$.pipe(filter(e => isTab(e.keyCode))).subscribe(e => {\n this.onTab();\n });\n // delete\n this.inputKeyDown$.pipe(filter(e => isBackspace(e.keyCode) || isDelete(e.keyCode))).subscribe(e => {\n this.onDelete();\n });\n }\n /**\n * on keyup == when input changed\n * @param e event\n */\n onKeyUp(e) {\n this.notFound = false; // search results are unknown while typing\n // if input is empty\n if (!this.query) {\n this.notFound = false;\n this.inputChanged.emit(e.target.value);\n this.inputCleared.emit();\n this.setPanelState(e);\n }\n // note that '' can be a valid query\n if (!this.query && this.query !== '') {\n return;\n }\n // if query >= to minQueryLength\n if (this.query.length >= this.minQueryLength) {\n this.inputChanged.emit(e.target.value);\n this.filterList();\n // If no results found\n if (!this.filteredList.length && !this.isLoading) {\n this.notFoundText ? this.notFound = true : this.notFound = false;\n }\n if (this.data && !this.data.length) {\n this.isOpen = true;\n }\n }\n }\n /**\n * Keyboard arrow top and arrow bottom\n * @param e event\n */\n onFocusItem(e) {\n // move arrow up and down on filteredList or historyList\n if (!this.historyList.length || !this.isHistoryListVisible) {\n // filteredList\n const totalNumItem = this.filteredList.length;\n if (e.key === 'ArrowDown') {\n let sum = this.selectedIdx;\n sum = this.selectedIdx === null ? 0 : sum + 1;\n this.selectedIdx = (totalNumItem + sum) % totalNumItem;\n this.scrollToFocusedItem(this.selectedIdx);\n } else if (e.key === 'ArrowUp') {\n if (this.selectedIdx == -1) {\n this.selectedIdx = 0;\n }\n this.selectedIdx = (totalNumItem + this.selectedIdx - 1) % totalNumItem;\n this.scrollToFocusedItem(this.selectedIdx);\n }\n } else {\n // historyList\n const totalNumItem = this.historyList.length;\n if (e.key === 'ArrowDown') {\n let sum = this.selectedIdx;\n sum = this.selectedIdx === null ? 0 : sum + 1;\n this.selectedIdx = (totalNumItem + sum) % totalNumItem;\n this.scrollToFocusedItem(this.selectedIdx);\n } else if (e.key === 'ArrowUp') {\n if (this.selectedIdx == -1) {\n this.selectedIdx = 0;\n }\n this.selectedIdx = (totalNumItem + this.selectedIdx - 1) % totalNumItem;\n this.scrollToFocusedItem(this.selectedIdx);\n }\n }\n }\n /**\n * Scroll to focused item\n * * @param index\n */\n scrollToFocusedItem(index) {\n let listElement = null;\n // Define list element\n if (!this.historyList.length || !this.isHistoryListVisible) {\n // filteredList element\n listElement = this.filteredListElement.nativeElement;\n } else {\n // historyList element\n listElement = this.historyListElement.nativeElement;\n }\n const items = Array.prototype.slice.call(listElement.childNodes).filter(node => {\n if (node.nodeType === 1) {\n // if node is element\n return node.className.includes('item');\n } else {\n return false;\n }\n });\n if (!items.length) {\n return;\n }\n const listHeight = listElement.offsetHeight;\n const itemHeight = items[index].offsetHeight;\n const visibleTop = listElement.scrollTop;\n const visibleBottom = listElement.scrollTop + listHeight - itemHeight;\n const targetPosition = items[index].offsetTop;\n if (targetPosition < visibleTop) {\n listElement.scrollTop = targetPosition;\n }\n if (targetPosition > visibleBottom) {\n listElement.scrollTop = targetPosition - listHeight + itemHeight;\n }\n }\n /**\n * Select item on enter click\n */\n onHandleEnter() {\n // click enter to choose item from filteredList or historyList\n if (this.selectedIdx > -1) {\n if (!this.historyList.length || !this.isHistoryListVisible) {\n // filteredList\n this.query = !this.isTypeString(this.filteredList[this.selectedIdx]) ? this.filteredList[this.selectedIdx][this.searchKeyword] : this.filteredList[this.selectedIdx];\n this.saveHistory(this.filteredList[this.selectedIdx]);\n this.select(this.filteredList[this.selectedIdx]);\n } else {\n // historyList\n this.query = !this.isTypeString(this.historyList[this.selectedIdx]) ? this.historyList[this.selectedIdx][this.searchKeyword] : this.historyList[this.selectedIdx];\n this.saveHistory(this.historyList[this.selectedIdx]);\n this.select(this.historyList[this.selectedIdx]);\n }\n }\n this.isHistoryListVisible = false;\n this.handleClose();\n }\n /**\n * Esc click\n */\n onEsc() {\n this.searchInput.nativeElement.blur();\n this.handleClose();\n }\n /**\n * Tab click\n */\n onTab() {\n this.searchInput.nativeElement.blur();\n this.handleClose();\n }\n /**\n * Delete click\n */\n onDelete() {\n this.isOpen = true;\n }\n /**\n * Select item to save in localStorage\n * @param selected\n */\n saveHistory(selected) {\n if (this.historyIdentifier) {\n // check if selected item exists in historyList\n if (!this.historyList.some(item => !this.isTypeString(item) ? item[this.searchKeyword] == selected[this.searchKeyword] : item == selected)) {\n this.saveHistoryToLocalStorage([selected, ...this.historyList]);\n // check if items don't exceed max allowed number\n if (this.historyList.length >= this.historyListMaxNumber) {\n this.historyList.splice(this.historyList.length - 1, 1);\n this.saveHistoryToLocalStorage([selected, ...this.historyList]);\n }\n } else {\n // if selected item exists in historyList swap to top in array\n if (!this.isTypeString(selected)) {\n // object logic\n const copiedHistoryList = this.historyList.slice(); // copy original historyList array\n const selectedIndex = copiedHistoryList.map(item => item[this.searchKeyword]).indexOf(selected[this.searchKeyword]);\n copiedHistoryList.splice(selectedIndex, 1);\n copiedHistoryList.splice(0, 0, selected);\n this.saveHistoryToLocalStorage([...copiedHistoryList]);\n } else {\n // string logic\n const copiedHistoryList = this.historyList.slice(); // copy original historyList array\n copiedHistoryList.splice(this.historyList.indexOf(selected), 1);\n copiedHistoryList.splice(0, 0, selected);\n this.saveHistoryToLocalStorage([...copiedHistoryList]);\n }\n }\n }\n }\n /**\n * Save item in localStorage\n * @param selected\n */\n saveHistoryToLocalStorage(selected) {\n window.localStorage.setItem(`${this.historyIdentifier}`, JSON.stringify(selected));\n }\n /**\n * Remove item from localStorage\n * @param index\n * @param e event\n */\n removeHistoryItem(index, e) {\n e.stopPropagation();\n this.historyList = this.historyList.filter((v, i) => i !== index);\n this.saveHistoryToLocalStorage(this.historyList);\n if (this.historyList.length == 0) {\n window.localStorage.removeItem(`${this.historyIdentifier}`);\n this.filterList();\n }\n }\n /**\n * Reset localStorage\n * @param e event\n */\n resetHistoryList(e) {\n e.stopPropagation();\n this.historyList = [];\n window.localStorage.removeItem(`${this.historyIdentifier}`);\n this.filterList();\n }\n }\n AutocompleteComponent.ɵfac = function AutocompleteComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutocompleteComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n AutocompleteComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: AutocompleteComponent,\n selectors: [[\"ng-autocomplete\"]],\n contentQueries: function AutocompleteComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.customTemplate = _t.first);\n }\n },\n viewQuery: function AutocompleteComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n i0.ɵɵviewQuery(_c1, 5);\n i0.ɵɵviewQuery(_c2, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.searchInput = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.filteredListElement = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.historyListElement = _t.first);\n }\n },\n hostAttrs: [1, \"ng-autocomplete\"],\n hostBindings: function AutocompleteComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"click\", function AutocompleteComponent_click_HostBindingHandler($event) {\n return ctx.handleClick($event);\n }, false, i0.ɵɵresolveDocument);\n }\n },\n inputs: {\n data: \"data\",\n searchKeyword: \"searchKeyword\",\n placeholder: \"placeholder\",\n heading: \"heading\",\n initialValue: \"initialValue\",\n historyIdentifier: \"historyIdentifier\",\n historyHeading: \"historyHeading\",\n historyListMaxNumber: \"historyListMaxNumber\",\n notFoundText: \"notFoundText\",\n isLoading: \"isLoading\",\n debounceTime: \"debounceTime\",\n disabled: \"disabled\",\n minQueryLength: \"minQueryLength\",\n focusFirst: \"focusFirst\",\n customFilter: \"customFilter\",\n selectedValueRender: \"selectedValueRender\",\n itemTemplate: \"itemTemplate\",\n notFoundTemplate: \"notFoundTemplate\"\n },\n outputs: {\n selected: \"selected\",\n inputChanged: \"inputChanged\",\n inputFocused: \"inputFocused\",\n inputCleared: \"inputCleared\",\n opened: \"opened\",\n closed: \"closed\",\n scrolledToEnd: \"scrolledToEnd\"\n },\n standalone: false,\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AutocompleteComponent),\n multi: true\n }]), i0.ɵɵNgOnChangesFeature],\n decls: 18,\n vars: 24,\n consts: [[\"searchInput\", \"\"], [\"filteredListElement\", \"\"], [\"historyListElement\", \"\"], [\"aria-owns\", \"suggestions suggestions-history\", 1, \"autocomplete-container\", 3, \"ngClass\"], [1, \"input-container\"], [\"type\", \"text\", \"aria-autocomplete\", \"list\", \"role\", \"combobox\", \"autocomplete\", \"off\", 3, \"ngModelChange\", \"input\", \"focus\", \"blur\", \"placeholder\", \"ngModel\", \"disabled\"], [\"class\", \"x\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"sk-fading-circle\", 4, \"ngIf\"], [\"id\", \"suggestions\", \"role\", \"listbox\", 1, \"suggestions-container\", 3, \"ngClass\"], [\"class\", \"heading\", 4, \"ngIf\"], [\"class\", \"item\", 4, \"ngFor\", \"ngForOf\"], [\"id\", \"suggestions-history\", \"role\", \"listbox\", 1, \"suggestions-container\", 3, \"ngClass\"], [\"class\", \"not-found\", 4, \"ngIf\"], [\"class\", \"autocomplete-overlay\", 3, \"click\", 4, \"ngIf\"], [1, \"x\", 3, \"click\"], [\"aria-label\", \"Close\", 1, \"material-icons\"], [1, \"sk-fading-circle\"], [1, \"sk-circle1\", \"sk-circle\"], [1, \"sk-circle2\", \"sk-circle\"], [1, \"sk-circle3\", \"sk-circle\"], [1, \"sk-circle4\", \"sk-circle\"], [1, \"sk-circle5\", \"sk-circle\"], [1, \"sk-circle6\", \"sk-circle\"], [1, \"sk-circle7\", \"sk-circle\"], [1, \"sk-circle8\", \"sk-circle\"], [1, \"sk-circle9\", \"sk-circle\"], [1, \"sk-circle10\", \"sk-circle\"], [1, \"sk-circle11\", \"sk-circle\"], [1, \"sk-circle12\", \"sk-circle\"], [1, \"heading\"], [1, \"text\"], [1, \"item\"], [3, \"complete-selected\", \"click\", 4, \"ngIf\"], [3, \"click\"], [4, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"aria-label\", \"Delete\", 1, \"material-icons\"], [1, \"not-found\"], [1, \"autocomplete-overlay\", 3, \"click\"]],\n template: function AutocompleteComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"div\", 4)(2, \"input\", 5, 0);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function AutocompleteComponent_Template_input_ngModelChange_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n i0.ɵɵtwoWayBindingSet(ctx.query, $event) || (ctx.query = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"input\", function AutocompleteComponent_Template_input_input_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onChange($event));\n })(\"focus\", function AutocompleteComponent_Template_input_focus_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.handleFocus($event));\n })(\"blur\", function AutocompleteComponent_Template_input_blur_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onTouched($event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, AutocompleteComponent_div_4_Template, 3, 0, \"div\", 6)(5, AutocompleteComponent_div_5_Template, 13, 0, \"div\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"div\", 8);\n i0.ɵɵtemplate(7, AutocompleteComponent_div_7_Template, 3, 1, \"div\", 9);\n i0.ɵɵelementStart(8, \"ul\", null, 1);\n i0.ɵɵtemplate(10, AutocompleteComponent_li_10_Template, 3, 2, \"li\", 10);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(11, \"div\", 11);\n i0.ɵɵtemplate(12, AutocompleteComponent_div_12_Template, 6, 1, \"div\", 9);\n i0.ɵɵelementStart(13, \"ul\", null, 2);\n i0.ɵɵtemplate(15, AutocompleteComponent_li_15_Template, 6, 2, \"li\", 10);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(16, AutocompleteComponent_div_16_Template, 2, 4, \"div\", 12);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(17, AutocompleteComponent_div_17_Template, 1, 0, \"div\", 13);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(16, _c3, ctx.isOpen));\n i0.ɵɵattribute(\"aria-expanded\", ctx.isOpen);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"placeholder\", ctx.placeholder);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx.query);\n i0.ɵɵproperty(\"disabled\", ctx.disabled);\n i0.ɵɵattribute(\"aria-label\", ctx.placeholder);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.query && !ctx.isLoading && !ctx.disabled);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isLoading);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(18, _c4, ctx.isHistoryListVisible, !ctx.isHistoryListVisible));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.filteredList.length > 0 && ctx.heading);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngForOf\", ctx.filteredList);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(21, _c4, !ctx.isHistoryListVisible, ctx.isHistoryListVisible));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.historyList.length > 0 && ctx.historyHeading);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngForOf\", ctx.historyList);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isLoading ? !ctx.isLoading && ctx.notFound : ctx.notFound);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.overlay);\n }\n },\n dependencies: [i1.NgClass, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgModel, i1.NgIf, i1.NgForOf, i1.NgTemplateOutlet, HighlightPipe],\n styles: [\"@import\\\"https://fonts.googleapis.com/icon?family=Material+Icons\\\";.ng-autocomplete{width:600px}.autocomplete-container{box-shadow:0 1px 3px #0003,0 1px 1px #00000024,0 2px 1px -1px #0000001f;position:relative;overflow:visible;height:40px}.autocomplete-container .input-container input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:none;background-color:#fff;color:#000000de;width:100%;padding:0 15px;line-height:40px;height:40px}.autocomplete-container .input-container input:disabled{background-color:#eee;color:#666}.autocomplete-container .input-container .x{position:absolute;right:10px;margin:auto;cursor:pointer;top:50%;transform:translateY(-50%)}.autocomplete-container .input-container .x i{color:#0000008a;font-size:22px;vertical-align:middle}.autocomplete-container .suggestions-container{position:absolute;width:100%;background:white;height:auto;box-shadow:0 2px 5px #00000040;box-sizing:border-box}.autocomplete-container .suggestions-container ul{padding:0;margin:0;max-height:240px;overflow-y:auto}.autocomplete-container .suggestions-container ul li{position:relative;list-style:none;padding:0;margin:0;cursor:pointer}.autocomplete-container .suggestions-container ul li a{padding:14px 15px;display:block;text-decoration:none;color:#333;cursor:pointer;color:#000000de;font-size:15px}.autocomplete-container .suggestions-container ul li:hover,.autocomplete-container .suggestions-container .complete-selected{background-color:#9e9e9e2e}.autocomplete-container .suggestions-container .heading{position:relative;padding:10px 15px;border:solid 1px #f1f1f1}.autocomplete-container .suggestions-container .heading .text{font-size:.85em}.autocomplete-container .suggestions-container .x{position:absolute;right:10px;margin:auto;cursor:pointer;top:50%;transform:translateY(-50%)}.autocomplete-container .suggestions-container .x i{color:#0000008a;font-size:18px;vertical-align:middle}.autocomplete-container .suggestions-container.is-hidden{visibility:hidden}.autocomplete-container .suggestions-container.is-visible{visibility:visible}.autocomplete-container .not-found{padding:0 .75em;border:solid 1px #f1f1f1;background:white}.autocomplete-container .not-found div{padding:.4em 0;font-size:.95em;line-height:1.4;border-bottom:1px solid rgba(230,230,230,.7)}.autocomplete-container.active{z-index:999}.highlight{font-weight:700}.autocomplete-overlay{position:fixed;background-color:transparent;width:100%;height:100%;top:0;right:0;bottom:0;left:0;z-index:50}input[type=text]::-ms-clear{display:none}.sk-fading-circle{width:20px;height:20px;position:absolute;right:10px;top:0;bottom:0;margin:auto}.sk-fading-circle .sk-circle{width:100%;height:100%;position:absolute;left:0;top:0}.sk-fading-circle .sk-circle:before{content:\\\"\\\";display:block;margin:0 auto;width:15%;height:15%;background-color:#333;border-radius:100%;animation:sk-circleFadeDelay 1.2s infinite ease-in-out both}.sk-fading-circle .sk-circle2{transform:rotate(30deg)}.sk-fading-circle .sk-circle3{transform:rotate(60deg)}.sk-fading-circle .sk-circle4{transform:rotate(90deg)}.sk-fading-circle .sk-circle5{transform:rotate(120deg)}.sk-fading-circle .sk-circle6{transform:rotate(150deg)}.sk-fading-circle .sk-circle7{transform:rotate(180deg)}.sk-fading-circle .sk-circle8{transform:rotate(210deg)}.sk-fading-circle .sk-circle9{transform:rotate(240deg)}.sk-fading-circle .sk-circle10{transform:rotate(270deg)}.sk-fading-circle .sk-circle11{transform:rotate(300deg)}.sk-fading-circle .sk-circle12{transform:rotate(330deg)}.sk-fading-circle .sk-circle2:before{animation-delay:-1.1s}.sk-fading-circle .sk-circle3:before{animation-delay:-1s}.sk-fading-circle .sk-circle4:before{animation-delay:-.9s}.sk-fading-circle .sk-circle5:before{animation-delay:-.8s}.sk-fading-circle .sk-circle6:before{animation-delay:-.7s}.sk-fading-circle .sk-circle7:before{animation-delay:-.6s}.sk-fading-circle .sk-circle8:before{animation-delay:-.5s}.sk-fading-circle .sk-circle9:before{animation-delay:-.4s}.sk-fading-circle .sk-circle10:before{animation-delay:-.3s}.sk-fading-circle .sk-circle11:before{animation-delay:-.2s}.sk-fading-circle .sk-circle12:before{animation-delay:-.1s}@keyframes sk-circleFadeDelay{0%,39%,to{opacity:0}40%{opacity:1}}\\n\"],\n encapsulation: 2\n });\n return AutocompleteComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet AutocompleteLibModule = /*#__PURE__*/(() => {\n class AutocompleteLibModule {}\n AutocompleteLibModule.ɵfac = function AutocompleteLibModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || AutocompleteLibModule)();\n };\n AutocompleteLibModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: AutocompleteLibModule\n });\n AutocompleteLibModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [[CommonModule, FormsModule]]\n });\n return AutocompleteLibModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of autocomplete-lib\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AutocompleteComponent, AutocompleteLibModule, HighlightPipe };\n","import * as i0 from '@angular/core';\nimport { Directive, Input, Injectable, EventEmitter, booleanAttribute, ElementRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Optional, Inject, Output, ViewChild, InjectionToken, numberAttribute, forwardRef, TemplateRef, Attribute, HostBinding, ContentChild, ContentChildren, HostListener, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { animationFrameScheduler, asapScheduler, Subject, fromEvent, merge } from 'rxjs';\nimport { takeUntil, auditTime, startWith, tap, debounceTime, filter, map } from 'rxjs/operators';\nimport { DOCUMENT, NgTemplateOutlet, NgClass } from '@angular/common';\nconst _c0 = [\"content\"];\nconst _c1 = [\"scroll\"];\nconst _c2 = [\"padding\"];\nconst _c3 = [\"*\"];\nconst _c4 = a0 => ({\n searchTerm: a0\n});\nfunction NgDropdownPanelComponent_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 3);\n i0.ɵɵelementContainer(1, 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.headerTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c4, ctx_r0.filterValue));\n }\n}\nfunction NgDropdownPanelComponent_Conditional_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 5);\n i0.ɵɵelementContainer(1, 6);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.footerTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c4, ctx_r0.filterValue));\n }\n}\nconst _c5 = [\"searchInput\"];\nconst _c6 = [\"clearButton\"];\nconst _c7 = (a0, a1, a2) => ({\n item: a0,\n clear: a1,\n label: a2\n});\nconst _c8 = (a0, a1) => ({\n items: a0,\n clear: a1\n});\nconst _c9 = (a0, a1, a2, a3) => ({\n item: a0,\n item$: a1,\n index: a2,\n searchTerm: a3\n});\nfunction NgSelectComponent_Conditional_2_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 19);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.placeholder);\n }\n}\nfunction NgSelectComponent_Conditional_2_ng_template_2_Template(rf, ctx) {}\nfunction NgSelectComponent_Conditional_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgSelectComponent_Conditional_2_ng_template_0_Template, 2, 1, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor)(2, NgSelectComponent_Conditional_2_ng_template_2_Template, 0, 0, \"ng-template\", 18);\n }\n if (rf & 2) {\n const defaultPlaceholderTemplate_r3 = i0.ɵɵreference(1);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.placeholderTemplate || defaultPlaceholderTemplate_r3);\n }\n}\nfunction NgSelectComponent_Conditional_3_For_1_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"span\", 22);\n i0.ɵɵlistener(\"click\", function NgSelectComponent_Conditional_3_For_1_ng_template_1_Template_span_click_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const item_r5 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.unselect(item_r5));\n });\n i0.ɵɵtext(1, \"\\xD7\");\n i0.ɵɵelementEnd();\n i0.ɵɵelement(2, \"span\", 23);\n }\n if (rf & 2) {\n const item_r5 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngItemLabel\", item_r5.label)(\"escape\", ctx_r1.escapeHTML);\n }\n}\nfunction NgSelectComponent_Conditional_3_For_1_ng_template_3_Template(rf, ctx) {}\nfunction NgSelectComponent_Conditional_3_For_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 21);\n i0.ɵɵtemplate(1, NgSelectComponent_Conditional_3_For_1_ng_template_1_Template, 3, 2, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor)(3, NgSelectComponent_Conditional_3_For_1_ng_template_3_Template, 0, 0, \"ng-template\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r5 = ctx.$implicit;\n const defaultLabelTemplate_r6 = i0.ɵɵreference(2);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"ng-value-disabled\", item_r5.disabled);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.labelTemplate || defaultLabelTemplate_r6)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction3(4, _c7, item_r5.value, ctx_r1.clearItem, item_r5.label));\n }\n}\nfunction NgSelectComponent_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵrepeaterCreate(0, NgSelectComponent_Conditional_3_For_1_Template, 4, 8, \"div\", 20, i0.ɵɵcomponentInstance().trackByOption, true);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵrepeater(ctx_r1.selectedItems);\n }\n}\nfunction NgSelectComponent_Conditional_4_ng_template_0_Template(rf, ctx) {}\nfunction NgSelectComponent_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgSelectComponent_Conditional_4_ng_template_0_Template, 0, 0, \"ng-template\", 12);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.multiLabelTemplate)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction2(2, _c8, ctx_r1.selectedValues, ctx_r1.clearItem));\n }\n}\nfunction NgSelectComponent_Conditional_8_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 24);\n }\n}\nfunction NgSelectComponent_Conditional_8_ng_template_2_Template(rf, ctx) {}\nfunction NgSelectComponent_Conditional_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgSelectComponent_Conditional_8_ng_template_0_Template, 1, 0, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor)(2, NgSelectComponent_Conditional_8_ng_template_2_Template, 0, 0, \"ng-template\", 18);\n }\n if (rf & 2) {\n const defaultLoadingSpinnerTemplate_r8 = i0.ɵɵreference(1);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.loadingSpinnerTemplate || defaultLoadingSpinnerTemplate_r8);\n }\n}\nfunction NgSelectComponent_Conditional_9_Conditional_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainer(0, 18);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.clearButtonTemplate);\n }\n}\nfunction NgSelectComponent_Conditional_9_Conditional_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\", 25, 4)(2, \"span\", 26);\n i0.ɵɵtext(3, \"\\xD7\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵpropertyInterpolate(\"title\", ctx_r1.clearAllText);\n }\n}\nfunction NgSelectComponent_Conditional_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgSelectComponent_Conditional_9_Conditional_0_Template, 1, 1, \"ng-container\", 18)(1, NgSelectComponent_Conditional_9_Conditional_1_Template, 4, 1, \"span\", 25);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵconditional(ctx_r1.clearButtonTemplate ? 0 : 1);\n }\n}\nfunction NgSelectComponent_Conditional_12_For_3_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 31);\n }\n if (rf & 2) {\n const item_r11 = i0.ɵɵnextContext().$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"ngItemLabel\", item_r11.label)(\"escape\", ctx_r1.escapeHTML);\n }\n}\nfunction NgSelectComponent_Conditional_12_For_3_ng_template_3_Template(rf, ctx) {}\nfunction NgSelectComponent_Conditional_12_For_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 30);\n i0.ɵɵlistener(\"click\", function NgSelectComponent_Conditional_12_For_3_Template_div_click_0_listener() {\n const item_r11 = i0.ɵɵrestoreView(_r10).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.toggleItem(item_r11));\n })(\"mouseover\", function NgSelectComponent_Conditional_12_For_3_Template_div_mouseover_0_listener() {\n const item_r11 = i0.ɵɵrestoreView(_r10).$implicit;\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.onItemHover(item_r11));\n });\n i0.ɵɵtemplate(1, NgSelectComponent_Conditional_12_For_3_ng_template_1_Template, 1, 2, \"ng-template\", null, 5, i0.ɵɵtemplateRefExtractor)(3, NgSelectComponent_Conditional_12_For_3_ng_template_3_Template, 0, 0, \"ng-template\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const item_r11 = ctx.$implicit;\n const defaultOptionTemplate_r12 = i0.ɵɵreference(2);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"ng-option-disabled\", item_r11.disabled)(\"ng-option-selected\", item_r11.selected)(\"ng-optgroup\", item_r11.children)(\"ng-option\", !item_r11.children)(\"ng-option-child\", !!item_r11.parent)(\"ng-option-marked\", item_r11 === ctx_r1.itemsList.markedItem);\n i0.ɵɵattribute(\"role\", item_r11.children ? \"group\" : \"option\")(\"aria-selected\", item_r11.selected)(\"id\", item_r11 == null ? null : item_r11.htmlId);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", item_r11.children ? ctx_r1.optgroupTemplate || defaultOptionTemplate_r12 : ctx_r1.optionTemplate || defaultOptionTemplate_r12)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction4(17, _c9, item_r11.value, item_r11, item_r11.index, ctx_r1.searchTerm));\n }\n}\nfunction NgSelectComponent_Conditional_12_Conditional_4_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\")(1, \"span\", 33);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.addTagText);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"\\\"\", ctx_r1.searchTerm, \"\\\"\");\n }\n}\nfunction NgSelectComponent_Conditional_12_Conditional_4_ng_template_3_Template(rf, ctx) {}\nfunction NgSelectComponent_Conditional_12_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r13 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 32);\n i0.ɵɵlistener(\"mouseover\", function NgSelectComponent_Conditional_12_Conditional_4_Template_div_mouseover_0_listener() {\n i0.ɵɵrestoreView(_r13);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.itemsList.unmarkItem());\n })(\"click\", function NgSelectComponent_Conditional_12_Conditional_4_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r13);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.selectTag());\n });\n i0.ɵɵtemplate(1, NgSelectComponent_Conditional_12_Conditional_4_ng_template_1_Template, 4, 2, \"ng-template\", null, 6, i0.ɵɵtemplateRefExtractor)(3, NgSelectComponent_Conditional_12_Conditional_4_ng_template_3_Template, 0, 0, \"ng-template\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const defaultTagTemplate_r14 = i0.ɵɵreference(2);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"ng-option-marked\", !ctx_r1.itemsList.markedItem);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.tagTemplate || defaultTagTemplate_r14)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(4, _c4, ctx_r1.searchTerm));\n }\n}\nfunction NgSelectComponent_Conditional_12_Conditional_5_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 34);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.notFoundText);\n }\n}\nfunction NgSelectComponent_Conditional_12_Conditional_5_ng_template_2_Template(rf, ctx) {}\nfunction NgSelectComponent_Conditional_12_Conditional_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgSelectComponent_Conditional_12_Conditional_5_ng_template_0_Template, 2, 1, \"ng-template\", null, 7, i0.ɵɵtemplateRefExtractor)(2, NgSelectComponent_Conditional_12_Conditional_5_ng_template_2_Template, 0, 0, \"ng-template\", 12);\n }\n if (rf & 2) {\n const defaultNotFoundTemplate_r15 = i0.ɵɵreference(1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.notFoundTemplate || defaultNotFoundTemplate_r15)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c4, ctx_r1.searchTerm));\n }\n}\nfunction NgSelectComponent_Conditional_12_Conditional_6_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 34);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.typeToSearchText);\n }\n}\nfunction NgSelectComponent_Conditional_12_Conditional_6_ng_template_2_Template(rf, ctx) {}\nfunction NgSelectComponent_Conditional_12_Conditional_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgSelectComponent_Conditional_12_Conditional_6_ng_template_0_Template, 2, 1, \"ng-template\", null, 8, i0.ɵɵtemplateRefExtractor)(2, NgSelectComponent_Conditional_12_Conditional_6_ng_template_2_Template, 0, 0, \"ng-template\", 18);\n }\n if (rf & 2) {\n const defaultTypeToSearchTemplate_r16 = i0.ɵɵreference(1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.typeToSearchTemplate || defaultTypeToSearchTemplate_r16);\n }\n}\nfunction NgSelectComponent_Conditional_12_Conditional_7_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 34);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.loadingText);\n }\n}\nfunction NgSelectComponent_Conditional_12_Conditional_7_ng_template_2_Template(rf, ctx) {}\nfunction NgSelectComponent_Conditional_12_Conditional_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgSelectComponent_Conditional_12_Conditional_7_ng_template_0_Template, 2, 1, \"ng-template\", null, 9, i0.ɵɵtemplateRefExtractor)(2, NgSelectComponent_Conditional_12_Conditional_7_ng_template_2_Template, 0, 0, \"ng-template\", 12);\n }\n if (rf & 2) {\n const defaultLoadingTextTemplate_r17 = i0.ɵɵreference(1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r1.loadingTextTemplate || defaultLoadingTextTemplate_r17)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(2, _c4, ctx_r1.searchTerm));\n }\n}\nfunction NgSelectComponent_Conditional_12_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ng-dropdown-panel\", 27);\n i0.ɵɵlistener(\"update\", function NgSelectComponent_Conditional_12_Template_ng_dropdown_panel_update_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.viewPortItems = $event);\n })(\"scroll\", function NgSelectComponent_Conditional_12_Template_ng_dropdown_panel_scroll_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.scroll.emit($event));\n })(\"scrollToEnd\", function NgSelectComponent_Conditional_12_Template_ng_dropdown_panel_scrollToEnd_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.scrollToEnd.emit($event));\n })(\"outsideClick\", function NgSelectComponent_Conditional_12_Template_ng_dropdown_panel_outsideClick_0_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.close());\n });\n i0.ɵɵelementContainerStart(1);\n i0.ɵɵrepeaterCreate(2, NgSelectComponent_Conditional_12_For_3_Template, 4, 22, \"div\", 28, i0.ɵɵcomponentInstance().trackByOption, true);\n i0.ɵɵtemplate(4, NgSelectComponent_Conditional_12_Conditional_4_Template, 4, 6, \"div\", 29);\n i0.ɵɵelementContainerEnd();\n i0.ɵɵtemplate(5, NgSelectComponent_Conditional_12_Conditional_5_Template, 3, 4)(6, NgSelectComponent_Conditional_12_Conditional_6_Template, 3, 1)(7, NgSelectComponent_Conditional_12_Conditional_7_Template, 3, 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"ng-select-multiple\", ctx_r1.multiple);\n i0.ɵɵproperty(\"virtualScroll\", ctx_r1.virtualScroll)(\"bufferAmount\", ctx_r1.bufferAmount)(\"appendTo\", ctx_r1.appendTo)(\"position\", ctx_r1.dropdownPosition)(\"headerTemplate\", ctx_r1.headerTemplate)(\"footerTemplate\", ctx_r1.footerTemplate)(\"filterValue\", ctx_r1.searchTerm)(\"items\", ctx_r1.itemsList.filteredItems)(\"markedItem\", ctx_r1.itemsList.markedItem)(\"ngClass\", ctx_r1.appendTo ? ctx_r1.ngClass ? ctx_r1.ngClass : ctx_r1.classes : null)(\"id\", ctx_r1.dropdownId);\n i0.ɵɵattribute(\"aria-label\", ctx_r1.ariaLabelDropdown);\n i0.ɵɵadvance(2);\n i0.ɵɵrepeater(ctx_r1.viewPortItems);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx_r1.showAddTag ? 4 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.showNoItemsFound() ? 5 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.showTypeToSearch() ? 6 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx_r1.loading && ctx_r1.itemsList.filteredItems.length === 0 ? 7 : -1);\n }\n}\nconst unescapedHTMLExp = /[&<>\"']/g;\nconst hasUnescapedHTMLExp = RegExp(unescapedHTMLExp.source);\nconst htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nfunction escapeHTML(value) {\n return value && hasUnescapedHTMLExp.test(value) ? value.replace(unescapedHTMLExp, chr => htmlEscapes[chr]) : value;\n}\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\nfunction isObject(value) {\n return typeof value === 'object' && isDefined(value);\n}\nfunction isPromise(value) {\n return value instanceof Promise;\n}\nfunction isFunction(value) {\n return value instanceof Function;\n}\nlet NgItemLabelDirective = /*#__PURE__*/(() => {\n class NgItemLabelDirective {\n constructor(element) {\n this.element = element;\n this.escape = true;\n }\n ngOnChanges(changes) {\n this.element.nativeElement.innerHTML = this.escape ? escapeHTML(this.ngItemLabel) : this.ngItemLabel;\n }\n static {\n this.ɵfac = function NgItemLabelDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgItemLabelDirective)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgItemLabelDirective,\n selectors: [[\"\", \"ngItemLabel\", \"\"]],\n inputs: {\n ngItemLabel: \"ngItemLabel\",\n escape: \"escape\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return NgItemLabelDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgOptionTemplateDirective = /*#__PURE__*/(() => {\n class NgOptionTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgOptionTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgOptionTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgOptionTemplateDirective,\n selectors: [[\"\", \"ng-option-tmp\", \"\"]]\n });\n }\n }\n return NgOptionTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgOptgroupTemplateDirective = /*#__PURE__*/(() => {\n class NgOptgroupTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgOptgroupTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgOptgroupTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgOptgroupTemplateDirective,\n selectors: [[\"\", \"ng-optgroup-tmp\", \"\"]]\n });\n }\n }\n return NgOptgroupTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgLabelTemplateDirective = /*#__PURE__*/(() => {\n class NgLabelTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgLabelTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgLabelTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgLabelTemplateDirective,\n selectors: [[\"\", \"ng-label-tmp\", \"\"]]\n });\n }\n }\n return NgLabelTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgMultiLabelTemplateDirective = /*#__PURE__*/(() => {\n class NgMultiLabelTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgMultiLabelTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgMultiLabelTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgMultiLabelTemplateDirective,\n selectors: [[\"\", \"ng-multi-label-tmp\", \"\"]]\n });\n }\n }\n return NgMultiLabelTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgHeaderTemplateDirective = /*#__PURE__*/(() => {\n class NgHeaderTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgHeaderTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgHeaderTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgHeaderTemplateDirective,\n selectors: [[\"\", \"ng-header-tmp\", \"\"]]\n });\n }\n }\n return NgHeaderTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgFooterTemplateDirective = /*#__PURE__*/(() => {\n class NgFooterTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgFooterTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgFooterTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgFooterTemplateDirective,\n selectors: [[\"\", \"ng-footer-tmp\", \"\"]]\n });\n }\n }\n return NgFooterTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgNotFoundTemplateDirective = /*#__PURE__*/(() => {\n class NgNotFoundTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgNotFoundTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgNotFoundTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgNotFoundTemplateDirective,\n selectors: [[\"\", \"ng-notfound-tmp\", \"\"]]\n });\n }\n }\n return NgNotFoundTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgPlaceholderTemplateDirective = /*#__PURE__*/(() => {\n class NgPlaceholderTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgPlaceholderTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgPlaceholderTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgPlaceholderTemplateDirective,\n selectors: [[\"\", \"ng-placeholder-tmp\", \"\"]]\n });\n }\n }\n return NgPlaceholderTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgTypeToSearchTemplateDirective = /*#__PURE__*/(() => {\n class NgTypeToSearchTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgTypeToSearchTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgTypeToSearchTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgTypeToSearchTemplateDirective,\n selectors: [[\"\", \"ng-typetosearch-tmp\", \"\"]]\n });\n }\n }\n return NgTypeToSearchTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgLoadingTextTemplateDirective = /*#__PURE__*/(() => {\n class NgLoadingTextTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgLoadingTextTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgLoadingTextTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgLoadingTextTemplateDirective,\n selectors: [[\"\", \"ng-loadingtext-tmp\", \"\"]]\n });\n }\n }\n return NgLoadingTextTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgTagTemplateDirective = /*#__PURE__*/(() => {\n class NgTagTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgTagTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgTagTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgTagTemplateDirective,\n selectors: [[\"\", \"ng-tag-tmp\", \"\"]]\n });\n }\n }\n return NgTagTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgLoadingSpinnerTemplateDirective = /*#__PURE__*/(() => {\n class NgLoadingSpinnerTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgLoadingSpinnerTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgLoadingSpinnerTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgLoadingSpinnerTemplateDirective,\n selectors: [[\"\", \"ng-loadingspinner-tmp\", \"\"]]\n });\n }\n }\n return NgLoadingSpinnerTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n// eslint-disable-next-line @angular-eslint/directive-selector\nlet NgClearButtonTemplateDirective = /*#__PURE__*/(() => {\n class NgClearButtonTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgClearButtonTemplateDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgClearButtonTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgClearButtonTemplateDirective,\n selectors: [[\"\", \"ng-clearbutton-tmp\", \"\"]]\n });\n }\n }\n return NgClearButtonTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction newId() {\n // First character is an 'a', it's good practice to tag id to begin with a letter\n return 'axxxxxxxxxxx'.replace(/[x]/g, () => {\n // eslint-disable-next-line no-bitwise\n const val = Math.random() * 16 | 0;\n return val.toString(16);\n });\n}\nconst diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03C9': '\\u03C9',\n '\\u03C2': '\\u03C3'\n};\nfunction stripSpecialChars(text) {\n const match = a => diacritics[a] || a;\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n}\nclass ItemsList {\n constructor(_ngSelect, _selectionModel) {\n this._ngSelect = _ngSelect;\n this._selectionModel = _selectionModel;\n this._items = [];\n this._filteredItems = [];\n this._markedIndex = -1;\n }\n get items() {\n return this._items;\n }\n get filteredItems() {\n return this._filteredItems;\n }\n get markedIndex() {\n return this._markedIndex;\n }\n get selectedItems() {\n return this._selectionModel.value;\n }\n get markedItem() {\n return this._filteredItems[this._markedIndex];\n }\n get noItemsToSelect() {\n return this._ngSelect.hideSelected && this._items.length === this.selectedItems.length;\n }\n get maxItemsSelected() {\n return this._ngSelect.multiple && this._ngSelect.maxSelectedItems <= this.selectedItems.length;\n }\n get lastSelectedItem() {\n let i = this.selectedItems.length - 1;\n for (; i >= 0; i--) {\n const item = this.selectedItems[i];\n if (!item.disabled) {\n return item;\n }\n }\n return null;\n }\n setItems(items) {\n this._items = items.map((item, index) => this.mapItem(item, index));\n if (this._ngSelect.groupBy) {\n this._groups = this._groupBy(this._items, this._ngSelect.groupBy);\n this._items = this._flatten(this._groups);\n } else {\n this._groups = new Map();\n this._groups.set(undefined, this._items);\n }\n this._filteredItems = [...this._items];\n }\n select(item) {\n if (item.selected || this.maxItemsSelected) {\n return;\n }\n const multiple = this._ngSelect.multiple;\n if (!multiple) {\n this.clearSelected();\n }\n this._selectionModel.select(item, multiple, this._ngSelect.selectableGroupAsModel);\n if (this._ngSelect.hideSelected) {\n this._hideSelected(item);\n }\n }\n unselect(item) {\n if (!item.selected) {\n return;\n }\n this._selectionModel.unselect(item, this._ngSelect.multiple);\n if (this._ngSelect.hideSelected && isDefined(item.index) && this._ngSelect.multiple) {\n this._showSelected(item);\n }\n }\n findItem(value) {\n let findBy;\n if (this._ngSelect.compareWith) {\n findBy = item => this._ngSelect.compareWith(item.value, value);\n } else if (this._ngSelect.bindValue) {\n findBy = item => !item.children && this.resolveNested(item.value, this._ngSelect.bindValue) === value;\n } else {\n findBy = item => item.value === value || !item.children && item.label && item.label === this.resolveNested(value, this._ngSelect.bindLabel);\n }\n return this._items.find(item => findBy(item));\n }\n addItem(item) {\n const option = this.mapItem(item, this._items.length);\n this._items.push(option);\n this._filteredItems.push(option);\n return option;\n }\n clearSelected(keepDisabled = false) {\n this._selectionModel.clear(keepDisabled);\n this._items.forEach(item => {\n item.selected = keepDisabled && item.selected && item.disabled;\n item.marked = false;\n });\n if (this._ngSelect.hideSelected) {\n this.resetFilteredItems();\n }\n }\n findByLabel(term) {\n term = stripSpecialChars(term).toLocaleLowerCase();\n return this.filteredItems.find(item => {\n const label = stripSpecialChars(item.label).toLocaleLowerCase();\n return label.substr(0, term.length) === term;\n });\n }\n filter(term) {\n if (!term) {\n this.resetFilteredItems();\n return;\n }\n this._filteredItems = [];\n term = this._ngSelect.searchFn ? term : stripSpecialChars(term).toLocaleLowerCase();\n const match = this._ngSelect.searchFn || this._defaultSearchFn;\n const hideSelected = this._ngSelect.hideSelected;\n for (const key of Array.from(this._groups.keys())) {\n const matchedItems = [];\n for (const item of this._groups.get(key)) {\n if (hideSelected && (item.parent && item.parent.selected || item.selected)) {\n continue;\n }\n const searchItem = this._ngSelect.searchFn ? item.value : item;\n if (match(term, searchItem)) {\n matchedItems.push(item);\n }\n }\n if (matchedItems.length > 0) {\n const [last] = matchedItems.slice(-1);\n if (last.parent) {\n const head = this._items.find(x => x === last.parent);\n this._filteredItems.push(head);\n }\n this._filteredItems.push(...matchedItems);\n }\n }\n }\n resetFilteredItems() {\n if (this._filteredItems.length === this._items.length) {\n return;\n }\n if (this._ngSelect.hideSelected && this.selectedItems.length > 0) {\n this._filteredItems = this._items.filter(x => !x.selected);\n } else {\n this._filteredItems = this._items;\n }\n }\n unmarkItem() {\n this._markedIndex = -1;\n }\n markNextItem() {\n this._stepToItem(+1);\n }\n markPreviousItem() {\n this._stepToItem(-1);\n }\n markItem(item) {\n this._markedIndex = this._filteredItems.indexOf(item);\n }\n markSelectedOrDefault(markDefault) {\n if (this._filteredItems.length === 0) {\n return;\n }\n const lastMarkedIndex = this._getLastMarkedIndex();\n if (lastMarkedIndex > -1) {\n this._markedIndex = lastMarkedIndex;\n } else {\n this._markedIndex = markDefault ? this.filteredItems.findIndex(x => !x.disabled) : -1;\n }\n }\n resolveNested(option, key) {\n if (!isObject(option)) {\n return option;\n }\n if (key.indexOf('.') === -1) {\n return option[key];\n } else {\n const keys = key.split('.');\n let value = option;\n for (let i = 0, len = keys.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[keys[i]];\n }\n return value;\n }\n }\n mapItem(item, index) {\n const label = isDefined(item.$ngOptionLabel) ? item.$ngOptionLabel : this.resolveNested(item, this._ngSelect.bindLabel);\n const value = isDefined(item.$ngOptionValue) ? item.$ngOptionValue : item;\n return {\n index,\n label: isDefined(label) ? label.toString() : '',\n value,\n disabled: item.disabled,\n htmlId: `${this._ngSelect.dropdownId}-${index}`\n };\n }\n mapSelectedItems() {\n const multiple = this._ngSelect.multiple;\n for (const selected of this.selectedItems) {\n const value = this._ngSelect.bindValue ? this.resolveNested(selected.value, this._ngSelect.bindValue) : selected.value;\n const item = isDefined(value) ? this.findItem(value) : null;\n this._selectionModel.unselect(selected, multiple);\n this._selectionModel.select(item || selected, multiple, this._ngSelect.selectableGroupAsModel);\n }\n if (this._ngSelect.hideSelected) {\n this._filteredItems = this.filteredItems.filter(x => this.selectedItems.indexOf(x) === -1);\n }\n }\n _showSelected(item) {\n this._filteredItems.push(item);\n if (item.parent) {\n const parent = item.parent;\n const parentExists = this._filteredItems.find(x => x === parent);\n if (!parentExists) {\n this._filteredItems.push(parent);\n }\n } else if (item.children) {\n for (const child of item.children) {\n child.selected = false;\n this._filteredItems.push(child);\n }\n }\n this._filteredItems = [...this._filteredItems.sort((a, b) => a.index - b.index)];\n }\n _hideSelected(item) {\n this._filteredItems = this._filteredItems.filter(x => x !== item);\n if (item.parent) {\n const children = item.parent.children;\n if (children.every(x => x.selected)) {\n this._filteredItems = this._filteredItems.filter(x => x !== item.parent);\n }\n } else if (item.children) {\n this._filteredItems = this.filteredItems.filter(x => x.parent !== item);\n }\n }\n _defaultSearchFn(search, opt) {\n const label = stripSpecialChars(opt.label).toLocaleLowerCase();\n return label.indexOf(search) > -1;\n }\n _getNextItemIndex(steps) {\n if (steps > 0) {\n return this._markedIndex >= this._filteredItems.length - 1 ? 0 : this._markedIndex + 1;\n }\n return this._markedIndex <= 0 ? this._filteredItems.length - 1 : this._markedIndex - 1;\n }\n _stepToItem(steps) {\n if (this._filteredItems.length === 0 || this._filteredItems.every(x => x.disabled)) {\n return;\n }\n this._markedIndex = this._getNextItemIndex(steps);\n if (this.markedItem.disabled) {\n this._stepToItem(steps);\n }\n }\n _getLastMarkedIndex() {\n if (this._ngSelect.hideSelected) {\n return -1;\n }\n if (this._markedIndex > -1 && this.markedItem === undefined) {\n return -1;\n }\n const selectedIndex = this._filteredItems.indexOf(this.lastSelectedItem);\n if (this.lastSelectedItem && selectedIndex < 0) {\n return -1;\n }\n return Math.max(this.markedIndex, selectedIndex);\n }\n _groupBy(items, prop) {\n const groups = new Map();\n if (items.length === 0) {\n return groups;\n }\n // Check if items are already grouped by given key.\n if (Array.isArray(items[0].value[prop])) {\n for (const item of items) {\n const children = (item.value[prop] || []).map((x, index) => this.mapItem(x, index));\n groups.set(item, children);\n }\n return groups;\n }\n const isFnKey = isFunction(this._ngSelect.groupBy);\n const keyFn = item => {\n const key = isFnKey ? prop(item.value) : item.value[prop];\n return isDefined(key) ? key : undefined;\n };\n // Group items by key.\n for (const item of items) {\n const key = keyFn(item);\n const group = groups.get(key);\n if (group) {\n group.push(item);\n } else {\n groups.set(key, [item]);\n }\n }\n return groups;\n }\n _flatten(groups) {\n const isGroupByFn = isFunction(this._ngSelect.groupBy);\n const items = [];\n for (const key of Array.from(groups.keys())) {\n let i = items.length;\n if (key === undefined) {\n const withoutGroup = groups.get(undefined) || [];\n items.push(...withoutGroup.map(x => {\n x.index = i++;\n return x;\n }));\n continue;\n }\n const isObjectKey = isObject(key);\n const parent = {\n label: isObjectKey ? '' : String(key),\n children: undefined,\n parent: null,\n index: i++,\n disabled: !this._ngSelect.selectableGroup,\n htmlId: newId()\n };\n const groupKey = isGroupByFn ? this._ngSelect.bindLabel : this._ngSelect.groupBy;\n const groupValue = this._ngSelect.groupValue || (() => {\n if (isObjectKey) {\n return key.value;\n }\n return {\n [groupKey]: key\n };\n });\n const children = groups.get(key).map(x => {\n x.parent = parent;\n x.children = undefined;\n x.index = i++;\n return x;\n });\n parent.children = children;\n parent.value = groupValue(key, children.map(x => x.value));\n items.push(parent);\n items.push(...children);\n }\n return items;\n }\n}\nlet NgDropdownPanelService = /*#__PURE__*/(() => {\n class NgDropdownPanelService {\n constructor() {\n this._dimensions = {\n itemHeight: 0,\n panelHeight: 0,\n itemsPerViewport: 0\n };\n }\n get dimensions() {\n return this._dimensions;\n }\n calculateItems(scrollPos, itemsLength, buffer) {\n const d = this._dimensions;\n const scrollHeight = d.itemHeight * itemsLength;\n const scrollTop = Math.max(0, scrollPos);\n const indexByScrollTop = scrollTop / scrollHeight * itemsLength;\n let end = Math.min(itemsLength, Math.ceil(indexByScrollTop) + (d.itemsPerViewport + 1));\n const maxStartEnd = end;\n const maxStart = Math.max(0, maxStartEnd - d.itemsPerViewport);\n let start = Math.min(maxStart, Math.floor(indexByScrollTop));\n let topPadding = d.itemHeight * Math.ceil(start) - d.itemHeight * Math.min(start, buffer);\n topPadding = !isNaN(topPadding) ? topPadding : 0;\n start = !isNaN(start) ? start : -1;\n end = !isNaN(end) ? end : -1;\n start -= buffer;\n start = Math.max(0, start);\n end += buffer;\n end = Math.min(itemsLength, end);\n return {\n topPadding,\n scrollHeight,\n start,\n end\n };\n }\n setDimensions(itemHeight, panelHeight) {\n const itemsPerViewport = Math.max(1, Math.floor(panelHeight / itemHeight));\n this._dimensions = {\n itemHeight,\n panelHeight,\n itemsPerViewport\n };\n }\n getScrollTo(itemTop, itemHeight, lastScroll) {\n const {\n panelHeight\n } = this.dimensions;\n const itemBottom = itemTop + itemHeight;\n const top = lastScroll;\n const bottom = top + panelHeight;\n if (panelHeight >= itemBottom && lastScroll === itemTop) {\n return null;\n }\n if (itemBottom > bottom) {\n return top + itemBottom - bottom;\n } else if (itemTop <= top) {\n return itemTop;\n }\n return null;\n }\n static {\n this.ɵfac = function NgDropdownPanelService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgDropdownPanelService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgDropdownPanelService,\n factory: NgDropdownPanelService.ɵfac\n });\n }\n }\n return NgDropdownPanelService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst CSS_POSITIONS = ['top', 'right', 'bottom', 'left'];\nconst SCROLL_SCHEDULER = typeof requestAnimationFrame !== 'undefined' ? animationFrameScheduler : asapScheduler;\nlet NgDropdownPanelComponent = /*#__PURE__*/(() => {\n class NgDropdownPanelComponent {\n constructor(_renderer, _zone, _panelService, _elementRef, _document) {\n this._renderer = _renderer;\n this._zone = _zone;\n this._panelService = _panelService;\n this._document = _document;\n this.items = [];\n this.position = 'auto';\n this.virtualScroll = false;\n this.filterValue = null;\n this.update = new EventEmitter();\n this.scroll = new EventEmitter();\n this.scrollToEnd = new EventEmitter();\n this.outsideClick = new EventEmitter();\n this._destroy$ = new Subject();\n this._scrollToEndFired = false;\n this._updateScrollHeight = false;\n this._lastScrollPosition = 0;\n this._dropdown = _elementRef.nativeElement;\n }\n get currentPosition() {\n return this._currentPosition;\n }\n get itemsLength() {\n return this._itemsLength;\n }\n set itemsLength(value) {\n if (value !== this._itemsLength) {\n this._itemsLength = value;\n this._onItemsLengthChanged();\n }\n }\n get _startOffset() {\n if (this.markedItem) {\n const {\n itemHeight,\n panelHeight\n } = this._panelService.dimensions;\n const offset = this.markedItem.index * itemHeight;\n return panelHeight > offset ? 0 : offset;\n }\n return 0;\n }\n ngOnInit() {\n this._select = this._dropdown.parentElement;\n this._virtualPadding = this.paddingElementRef.nativeElement;\n this._scrollablePanel = this.scrollElementRef.nativeElement;\n this._contentPanel = this.contentElementRef.nativeElement;\n this._handleScroll();\n this._handleOutsideClick();\n this._appendDropdown();\n this._setupMousedownListener();\n }\n ngOnChanges(changes) {\n if (changes.items) {\n const change = changes.items;\n this._onItemsChange(change.currentValue, change.firstChange);\n }\n }\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n this._destroy$.unsubscribe();\n if (this.appendTo) {\n this._renderer.removeChild(this._dropdown.parentNode, this._dropdown);\n }\n }\n scrollTo(option, startFromOption = false) {\n if (!option) {\n return;\n }\n const index = this.items.indexOf(option);\n if (index < 0 || index >= this.itemsLength) {\n return;\n }\n let scrollTo;\n if (this.virtualScroll) {\n const itemHeight = this._panelService.dimensions.itemHeight;\n scrollTo = this._panelService.getScrollTo(index * itemHeight, itemHeight, this._lastScrollPosition);\n } else {\n const item = this._dropdown.querySelector(`#${option.htmlId}`);\n const lastScroll = startFromOption ? item.offsetTop : this._lastScrollPosition;\n scrollTo = this._panelService.getScrollTo(item.offsetTop, item.clientHeight, lastScroll);\n }\n if (isDefined(scrollTo)) {\n this._scrollablePanel.scrollTop = scrollTo;\n }\n }\n scrollToTag() {\n const panel = this._scrollablePanel;\n panel.scrollTop = panel.scrollHeight - panel.clientHeight;\n }\n adjustPosition() {\n this._updateYPosition();\n }\n _handleDropdownPosition() {\n this._currentPosition = this._calculateCurrentPosition(this._dropdown);\n if (CSS_POSITIONS.includes(this._currentPosition)) {\n this._updateDropdownClass(this._currentPosition);\n } else {\n this._updateDropdownClass('bottom');\n }\n if (this.appendTo) {\n this._updateYPosition();\n }\n this._dropdown.style.opacity = '1';\n }\n _updateDropdownClass(currentPosition) {\n CSS_POSITIONS.forEach(position => {\n const REMOVE_CSS_CLASS = `ng-select-${position}`;\n this._renderer.removeClass(this._dropdown, REMOVE_CSS_CLASS);\n this._renderer.removeClass(this._select, REMOVE_CSS_CLASS);\n });\n const ADD_CSS_CLASS = `ng-select-${currentPosition}`;\n this._renderer.addClass(this._dropdown, ADD_CSS_CLASS);\n this._renderer.addClass(this._select, ADD_CSS_CLASS);\n }\n _handleScroll() {\n this._zone.runOutsideAngular(() => {\n fromEvent(this.scrollElementRef.nativeElement, 'scroll').pipe(takeUntil(this._destroy$), auditTime(0, SCROLL_SCHEDULER)).subscribe(e => {\n const path = e.path || e.composedPath && e.composedPath();\n if (!path || path.length === 0 && !e.target) {\n return;\n }\n const scrollTop = !path || path.length === 0 ? e.target.scrollTop : path[0].scrollTop;\n this._onContentScrolled(scrollTop);\n });\n });\n }\n _handleOutsideClick() {\n if (!this._document) {\n return;\n }\n this._zone.runOutsideAngular(() => {\n merge(fromEvent(this._document, 'touchstart', {\n capture: true\n }), fromEvent(this._document, 'click', {\n capture: true\n })).pipe(takeUntil(this._destroy$)).subscribe($event => this._checkToClose($event));\n });\n }\n _checkToClose($event) {\n if (this._select.contains($event.target) || this._dropdown.contains($event.target)) {\n return;\n }\n const path = $event.path || $event.composedPath && $event.composedPath();\n if ($event.target && $event.target.shadowRoot && path && path[0] && this._select.contains(path[0])) {\n return;\n }\n this._zone.run(() => this.outsideClick.emit());\n }\n _onItemsChange(items, firstChange) {\n this.items = items || [];\n this._scrollToEndFired = false;\n this.itemsLength = items.length;\n if (this.virtualScroll) {\n this._updateItemsRange(firstChange);\n } else {\n this._setVirtualHeight();\n this._updateItems(firstChange);\n }\n }\n _updateItems(firstChange) {\n this.update.emit(this.items);\n if (firstChange === false) {\n return;\n }\n this._zone.runOutsideAngular(() => {\n Promise.resolve().then(() => {\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(0, panelHeight);\n this._handleDropdownPosition();\n this.scrollTo(this.markedItem, firstChange);\n });\n });\n }\n _updateItemsRange(firstChange) {\n this._zone.runOutsideAngular(() => {\n this._measureDimensions().then(() => {\n if (firstChange) {\n this._renderItemsRange(this._startOffset);\n this._handleDropdownPosition();\n } else {\n this._renderItemsRange();\n }\n });\n });\n }\n _onContentScrolled(scrollTop) {\n if (this.virtualScroll) {\n this._renderItemsRange(scrollTop);\n }\n this._lastScrollPosition = scrollTop;\n this._fireScrollToEnd(scrollTop);\n }\n _updateVirtualHeight(height) {\n if (this._updateScrollHeight) {\n this._virtualPadding.style.height = `${height}px`;\n this._updateScrollHeight = false;\n }\n }\n _setVirtualHeight() {\n if (!this._virtualPadding) {\n return;\n }\n this._virtualPadding.style.height = `0px`;\n }\n _onItemsLengthChanged() {\n this._updateScrollHeight = true;\n }\n _renderItemsRange(scrollTop = null) {\n if (scrollTop && this._lastScrollPosition === scrollTop) {\n return;\n }\n scrollTop = scrollTop || this._scrollablePanel.scrollTop;\n const range = this._panelService.calculateItems(scrollTop, this.itemsLength, this.bufferAmount);\n this._updateVirtualHeight(range.scrollHeight);\n this._contentPanel.style.transform = `translateY(${range.topPadding}px)`;\n this._zone.run(() => {\n this.update.emit(this.items.slice(range.start, range.end));\n this.scroll.emit({\n start: range.start,\n end: range.end\n });\n });\n if (isDefined(scrollTop) && this._lastScrollPosition === 0) {\n this._scrollablePanel.scrollTop = scrollTop;\n this._lastScrollPosition = scrollTop;\n }\n }\n _measureDimensions() {\n if (this._panelService.dimensions.itemHeight > 0 || this.itemsLength === 0) {\n return Promise.resolve(this._panelService.dimensions);\n }\n const [first] = this.items;\n this.update.emit([first]);\n return Promise.resolve().then(() => {\n const option = this._dropdown.querySelector(`#${first.htmlId}`);\n const optionHeight = option.clientHeight;\n this._virtualPadding.style.height = `${optionHeight * this.itemsLength}px`;\n const panelHeight = this._scrollablePanel.clientHeight;\n this._panelService.setDimensions(optionHeight, panelHeight);\n return this._panelService.dimensions;\n });\n }\n _fireScrollToEnd(scrollTop) {\n if (this._scrollToEndFired || scrollTop === 0) {\n return;\n }\n const padding = this.virtualScroll ? this._virtualPadding : this._contentPanel;\n if (scrollTop + this._dropdown.clientHeight >= padding.clientHeight - 1) {\n this._zone.run(() => this.scrollToEnd.emit());\n this._scrollToEndFired = true;\n }\n }\n _calculateCurrentPosition(dropdownEl) {\n if (this.position !== 'auto') {\n return this.position;\n }\n const selectRect = this._select.getBoundingClientRect();\n const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\n const offsetTop = selectRect.top + window.pageYOffset;\n const height = selectRect.height;\n const dropdownHeight = dropdownEl.getBoundingClientRect().height;\n if (offsetTop + height + dropdownHeight > scrollTop + document.documentElement.clientHeight) {\n return 'top';\n } else {\n return 'bottom';\n }\n }\n _appendDropdown() {\n if (!this.appendTo) {\n return;\n }\n this._parent = document.querySelector(this.appendTo);\n if (!this._parent) {\n throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);\n }\n this._updateXPosition();\n this._parent.appendChild(this._dropdown);\n }\n _updateXPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const offsetLeft = select.left - parent.left;\n this._dropdown.style.left = offsetLeft + 'px';\n this._dropdown.style.width = select.width + 'px';\n this._dropdown.style.minWidth = select.width + 'px';\n }\n _updateYPosition() {\n const select = this._select.getBoundingClientRect();\n const parent = this._parent.getBoundingClientRect();\n const delta = select.height;\n if (this._currentPosition === 'top') {\n const offsetBottom = parent.bottom - select.bottom;\n this._dropdown.style.bottom = offsetBottom + delta + 'px';\n this._dropdown.style.top = 'auto';\n } else if (this._currentPosition === 'bottom') {\n const offsetTop = select.top - parent.top;\n this._dropdown.style.top = offsetTop + delta + 'px';\n this._dropdown.style.bottom = 'auto';\n }\n }\n _setupMousedownListener() {\n this._zone.runOutsideAngular(() => {\n fromEvent(this._dropdown, 'mousedown').pipe(takeUntil(this._destroy$)).subscribe(event => {\n const target = event.target;\n if (target.tagName === 'INPUT') {\n return;\n }\n event.preventDefault();\n });\n });\n }\n static {\n this.ɵfac = function NgDropdownPanelComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgDropdownPanelComponent)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(NgDropdownPanelService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(DOCUMENT, 8));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgDropdownPanelComponent,\n selectors: [[\"ng-dropdown-panel\"]],\n viewQuery: function NgDropdownPanelComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7, ElementRef);\n i0.ɵɵviewQuery(_c1, 7, ElementRef);\n i0.ɵɵviewQuery(_c2, 7, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentElementRef = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.scrollElementRef = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.paddingElementRef = _t.first);\n }\n },\n inputs: {\n items: \"items\",\n markedItem: \"markedItem\",\n position: \"position\",\n appendTo: \"appendTo\",\n bufferAmount: \"bufferAmount\",\n virtualScroll: [2, \"virtualScroll\", \"virtualScroll\", booleanAttribute],\n headerTemplate: \"headerTemplate\",\n footerTemplate: \"footerTemplate\",\n filterValue: \"filterValue\"\n },\n outputs: {\n update: \"update\",\n scroll: \"scroll\",\n scrollToEnd: \"scrollToEnd\",\n outsideClick: \"outsideClick\"\n },\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c3,\n decls: 9,\n vars: 6,\n consts: [[\"scroll\", \"\"], [\"padding\", \"\"], [\"content\", \"\"], [1, \"ng-dropdown-header\"], [\"role\", \"listbox\", 1, \"ng-dropdown-panel-items\", \"scroll-host\"], [1, \"ng-dropdown-footer\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]],\n template: function NgDropdownPanelComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵtemplate(0, NgDropdownPanelComponent_Conditional_0_Template, 2, 4, \"div\", 3);\n i0.ɵɵelementStart(1, \"div\", 4, 0);\n i0.ɵɵelement(3, \"div\", null, 1);\n i0.ɵɵelementStart(5, \"div\", null, 2);\n i0.ɵɵprojection(7);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(8, NgDropdownPanelComponent_Conditional_8_Template, 2, 4, \"div\", 5);\n }\n if (rf & 2) {\n i0.ɵɵconditional(ctx.headerTemplate ? 0 : -1);\n i0.ɵɵadvance(3);\n i0.ɵɵclassProp(\"total-padding\", ctx.virtualScroll);\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"scrollable-content\", ctx.virtualScroll && ctx.items.length);\n i0.ɵɵadvance(3);\n i0.ɵɵconditional(ctx.footerTemplate ? 8 : -1);\n }\n },\n dependencies: [NgTemplateOutlet],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return NgDropdownPanelComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgOptionComponent = /*#__PURE__*/(() => {\n class NgOptionComponent {\n constructor(elementRef) {\n this.elementRef = elementRef;\n this.disabled = false;\n this.stateChange$ = new Subject();\n }\n get label() {\n return (this.elementRef.nativeElement.textContent || '').trim();\n }\n ngOnChanges(changes) {\n if (changes.disabled) {\n this.stateChange$.next({\n value: this.value,\n disabled: this.disabled\n });\n }\n }\n ngAfterViewChecked() {\n if (this.label !== this._previousLabel) {\n this._previousLabel = this.label;\n this.stateChange$.next({\n value: this.value,\n disabled: this.disabled,\n label: this.elementRef.nativeElement.innerHTML\n });\n }\n }\n ngOnDestroy() {\n this.stateChange$.complete();\n }\n static {\n this.ɵfac = function NgOptionComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgOptionComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgOptionComponent,\n selectors: [[\"ng-option\"]],\n inputs: {\n value: \"value\",\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute]\n },\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature],\n ngContentSelectors: _c3,\n decls: 1,\n vars: 0,\n template: function NgOptionComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef();\n i0.ɵɵprojection(0);\n }\n },\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return NgOptionComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar KeyCode = /*#__PURE__*/function (KeyCode) {\n KeyCode[KeyCode[\"Tab\"] = 9] = \"Tab\";\n KeyCode[KeyCode[\"Enter\"] = 13] = \"Enter\";\n KeyCode[KeyCode[\"Esc\"] = 27] = \"Esc\";\n KeyCode[KeyCode[\"Space\"] = 32] = \"Space\";\n KeyCode[KeyCode[\"ArrowUp\"] = 38] = \"ArrowUp\";\n KeyCode[KeyCode[\"ArrowDown\"] = 40] = \"ArrowDown\";\n KeyCode[KeyCode[\"Backspace\"] = 8] = \"Backspace\";\n return KeyCode;\n}(KeyCode || {});\nfunction DefaultSelectionModelFactory() {\n return new DefaultSelectionModel();\n}\nclass DefaultSelectionModel {\n constructor() {\n this._selected = [];\n }\n get value() {\n return this._selected;\n }\n select(item, multiple, groupAsModel) {\n item.selected = true;\n if (!item.children || !multiple && groupAsModel) {\n this._selected.push(item);\n }\n if (multiple) {\n if (item.parent) {\n const childrenCount = item.parent.children.length;\n const selectedCount = item.parent.children.filter(x => x.selected).length;\n item.parent.selected = childrenCount === selectedCount;\n } else if (item.children) {\n this._setChildrenSelectedState(item.children, true);\n this._removeChildren(item);\n if (groupAsModel && this._activeChildren(item)) {\n this._selected = [...this._selected.filter(x => x.parent !== item), item];\n } else {\n this._selected = [...this._selected, ...item.children.filter(x => !x.disabled)];\n }\n }\n }\n }\n unselect(item, multiple) {\n this._selected = this._selected.filter(x => x !== item);\n item.selected = false;\n if (multiple) {\n if (item.parent && item.parent.selected) {\n const children = item.parent.children;\n this._removeParent(item.parent);\n this._removeChildren(item.parent);\n this._selected.push(...children.filter(x => x !== item && !x.disabled));\n item.parent.selected = false;\n } else if (item.children) {\n this._setChildrenSelectedState(item.children, false);\n this._removeChildren(item);\n }\n }\n }\n clear(keepDisabled) {\n this._selected = keepDisabled ? this._selected.filter(x => x.disabled) : [];\n }\n _setChildrenSelectedState(children, selected) {\n for (const child of children) {\n if (child.disabled) {\n continue;\n }\n child.selected = selected;\n }\n }\n _removeChildren(parent) {\n this._selected = [...this._selected.filter(x => x.parent !== parent), ...parent.children.filter(x => x.parent === parent && x.disabled && x.selected)];\n }\n _removeParent(parent) {\n this._selected = this._selected.filter(x => x !== parent);\n }\n _activeChildren(item) {\n return item.children.every(x => !x.disabled || x.selected);\n }\n}\nlet NgSelectConfig = /*#__PURE__*/(() => {\n class NgSelectConfig {\n constructor() {\n this.fixedPlaceholder = true;\n this.notFoundText = 'No items found';\n this.typeToSearchText = 'Type to search';\n this.addTagText = 'Add item';\n this.loadingText = 'Loading...';\n this.clearAllText = 'Clear all';\n this.disableVirtualScroll = true;\n this.openOnEnter = true;\n this.appearance = 'underline';\n }\n static {\n this.ɵfac = function NgSelectConfig_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgSelectConfig)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NgSelectConfig,\n factory: NgSelectConfig.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return NgSelectConfig;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ConsoleService = /*#__PURE__*/(() => {\n class ConsoleService {\n warn(message) {\n console.warn(message);\n }\n static {\n this.ɵfac = function ConsoleService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ConsoleService)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ConsoleService,\n factory: ConsoleService.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return ConsoleService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst SELECTION_MODEL_FACTORY = new InjectionToken('ng-select-selection-model');\nlet NgSelectComponent = /*#__PURE__*/(() => {\n class NgSelectComponent {\n constructor(classes, autoFocus, config, newSelectionModel, _elementRef, _cd, _console) {\n this.classes = classes;\n this.autoFocus = autoFocus;\n this.config = config;\n this._cd = _cd;\n this._console = _console;\n this.ariaLabelDropdown = 'Options List';\n this.markFirst = true;\n this.fixedPlaceholder = true;\n this.preventToggleOnRightClick = false;\n this.dropdownPosition = 'auto';\n this.loading = false;\n this.closeOnSelect = true;\n this.hideSelected = false;\n this.selectOnTab = false;\n this.bufferAmount = 4;\n this.selectableGroup = false;\n this.selectableGroupAsModel = true;\n this.searchFn = null;\n this.trackByFn = null;\n this.clearOnBackspace = true;\n this.labelForId = null;\n this.inputAttrs = {};\n this.readonly = false;\n this.searchWhileComposing = true;\n this.minTermLength = 0;\n this.editableSearchTerm = false;\n this.ngClass = null;\n this.multiple = false;\n this.addTag = false;\n this.searchable = true;\n this.clearable = true;\n this.isOpen = false;\n // output events\n this.blurEvent = new EventEmitter();\n this.focusEvent = new EventEmitter();\n this.changeEvent = new EventEmitter();\n this.openEvent = new EventEmitter();\n this.closeEvent = new EventEmitter();\n this.searchEvent = new EventEmitter();\n this.clearEvent = new EventEmitter();\n this.addEvent = new EventEmitter();\n this.removeEvent = new EventEmitter();\n this.scroll = new EventEmitter();\n this.scrollToEnd = new EventEmitter();\n this.useDefaultClass = true;\n this.viewPortItems = [];\n this.searchTerm = null;\n this.dropdownId = newId();\n this.escapeHTML = true;\n this._defaultLabel = 'label';\n this._pressedKeys = [];\n this._isComposing = false;\n this._destroy$ = new Subject();\n this._keyPress$ = new Subject();\n this._items = [];\n this.keyDownFn = _ => true;\n this.clearItem = item => {\n const option = this.selectedItems.find(x => x.value === item);\n this.unselect(option);\n };\n this.trackByOption = (_, item) => {\n if (this.trackByFn) {\n return this.trackByFn(item.value);\n }\n return item;\n };\n this._onChange = _ => {};\n this._onTouched = () => {};\n this._mergeGlobalConfig(config);\n this.itemsList = new ItemsList(this, newSelectionModel ? newSelectionModel() : DefaultSelectionModelFactory());\n this.element = _elementRef.nativeElement;\n }\n get filtered() {\n return !!this.searchTerm && this.searchable || this._isComposing;\n }\n get single() {\n return !this.multiple;\n }\n get items() {\n return this._items;\n }\n set items(value) {\n this._itemsAreUsed = true;\n this._items = value ?? [];\n }\n get disabled() {\n return this.readonly || this._disabled;\n }\n get compareWith() {\n return this._compareWith;\n }\n set compareWith(fn) {\n if (fn !== undefined && fn !== null && !isFunction(fn)) {\n throw Error('`compareWith` must be a function.');\n }\n this._compareWith = fn;\n }\n get clearSearchOnAdd() {\n if (isDefined(this._clearSearchOnAdd)) {\n return this._clearSearchOnAdd;\n } else if (isDefined(this.config.clearSearchOnAdd)) {\n return this.config.clearSearchOnAdd;\n }\n return this.closeOnSelect;\n }\n set clearSearchOnAdd(value) {\n this._clearSearchOnAdd = value;\n }\n get deselectOnClick() {\n if (isDefined(this._deselectOnClick)) {\n return this._deselectOnClick;\n } else if (isDefined(this.config.deselectOnClick)) {\n return this.config.deselectOnClick;\n }\n return this.multiple;\n }\n set deselectOnClick(value) {\n this._deselectOnClick = value;\n }\n get selectedItems() {\n return this.itemsList.selectedItems;\n }\n get selectedValues() {\n return this.selectedItems.map(x => x.value);\n }\n get hasValue() {\n return this.selectedItems.length > 0;\n }\n get currentPanelPosition() {\n if (this.dropdownPanel) {\n return this.dropdownPanel.currentPosition;\n }\n return undefined;\n }\n get showAddTag() {\n if (!this._validTerm) {\n return false;\n }\n const term = this.searchTerm.toLowerCase().trim();\n return this.addTag && !this.itemsList.filteredItems.some(x => x.label.toLowerCase() === term) && (!this.hideSelected && this.isOpen || !this.selectedItems.some(x => x.label.toLowerCase() === term)) && !this.loading;\n }\n get _editableSearchTerm() {\n return this.editableSearchTerm && !this.multiple;\n }\n get _isTypeahead() {\n return this.typeahead && this.typeahead.observers.length > 0;\n }\n get _validTerm() {\n const term = this.searchTerm && this.searchTerm.trim();\n return term && term.length >= this.minTermLength;\n }\n ngOnInit() {\n this._handleKeyPresses();\n this._setInputAttributes();\n }\n ngOnChanges(changes) {\n if (changes.multiple) {\n this.itemsList.clearSelected();\n }\n if (changes.items) {\n this._setItems(changes.items.currentValue || []);\n }\n if (changes.isOpen) {\n this._manualOpen = isDefined(changes.isOpen.currentValue);\n }\n }\n ngAfterViewInit() {\n if (!this._itemsAreUsed) {\n this.escapeHTML = false;\n this._setItemsFromNgOptions();\n }\n if (isDefined(this.autoFocus)) {\n this.focus();\n }\n }\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n handleKeyDown($event) {\n const keyCode = KeyCode[$event.which];\n if (keyCode) {\n if (this.keyDownFn($event) === false) {\n return;\n }\n this.handleKeyCode($event);\n } else if ($event.key && $event.key.length === 1) {\n this._keyPress$.next($event.key.toLocaleLowerCase());\n }\n }\n handleKeyCode($event) {\n const target = $event.target;\n if (this.clearButton && this.clearButton.nativeElement === target) {\n this.handleKeyCodeClear($event);\n } else {\n this.handleKeyCodeInput($event);\n }\n }\n handleKeyCodeInput($event) {\n switch ($event.which) {\n case KeyCode.ArrowDown:\n this._handleArrowDown($event);\n break;\n case KeyCode.ArrowUp:\n this._handleArrowUp($event);\n break;\n case KeyCode.Space:\n this._handleSpace($event);\n break;\n case KeyCode.Enter:\n this._handleEnter($event);\n break;\n case KeyCode.Tab:\n this._handleTab($event);\n break;\n case KeyCode.Esc:\n this.close();\n $event.preventDefault();\n break;\n case KeyCode.Backspace:\n this._handleBackspace();\n break;\n }\n }\n handleKeyCodeClear($event) {\n switch ($event.which) {\n case KeyCode.Enter:\n this.handleClearClick();\n $event.preventDefault();\n break;\n }\n }\n handleMousedown($event) {\n if (this.preventToggleOnRightClick && $event.button === 2) {\n return false;\n }\n const target = $event.target;\n if (target.tagName !== 'INPUT') {\n $event.preventDefault();\n }\n if (target.classList.contains('ng-clear-wrapper')) {\n this.handleClearClick();\n return;\n }\n if (target.classList.contains('ng-arrow-wrapper')) {\n this.handleArrowClick();\n return;\n }\n if (target.classList.contains('ng-value-icon')) {\n return;\n }\n if (!this.focused) {\n this.focus();\n }\n if (this.searchable) {\n this.open();\n } else {\n this.toggle();\n }\n }\n handleArrowClick() {\n if (this.isOpen) {\n this.close();\n } else {\n this.open();\n }\n }\n handleClearClick() {\n if (this.hasValue) {\n this.itemsList.clearSelected(true);\n this._updateNgModel();\n }\n this._clearSearch();\n this.focus();\n this.clearEvent.emit();\n this._onSelectionChanged();\n }\n clearModel() {\n if (!this.clearable) {\n return;\n }\n this.itemsList.clearSelected();\n this._updateNgModel();\n }\n writeValue(value) {\n this.itemsList.clearSelected();\n this._handleWriteValue(value);\n this._cd.markForCheck();\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n setDisabledState(state) {\n this._disabled = state;\n this._cd.markForCheck();\n }\n toggle() {\n if (!this.isOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n open() {\n if (this.disabled || this.isOpen || this._manualOpen) {\n return;\n }\n if (!this._isTypeahead && !this.addTag && this.itemsList.noItemsToSelect) {\n return;\n }\n this.isOpen = true;\n this.itemsList.markSelectedOrDefault(this.markFirst);\n this.openEvent.emit();\n if (!this.searchTerm) {\n this.focus();\n }\n this.detectChanges();\n }\n close() {\n if (!this.isOpen || this._manualOpen) {\n return;\n }\n this.isOpen = false;\n this._isComposing = false;\n if (!this._editableSearchTerm) {\n this._clearSearch();\n } else {\n this.itemsList.resetFilteredItems();\n }\n this.itemsList.unmarkItem();\n this._onTouched();\n this.closeEvent.emit();\n this._cd.markForCheck();\n }\n toggleItem(item) {\n if (!item || item.disabled || this.disabled) {\n return;\n }\n if (this.deselectOnClick && item.selected) {\n this.unselect(item);\n } else {\n this.select(item);\n }\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n }\n select(item) {\n if (!item.selected) {\n this.itemsList.select(item);\n if (this.clearSearchOnAdd && !this._editableSearchTerm) {\n this._clearSearch();\n }\n this._updateNgModel();\n if (this.multiple) {\n this.addEvent.emit(item.value);\n }\n }\n if (this.closeOnSelect || this.itemsList.noItemsToSelect) {\n this.close();\n }\n this._onSelectionChanged();\n }\n focus() {\n this.searchInput.nativeElement.focus();\n }\n blur() {\n this.searchInput.nativeElement.blur();\n }\n unselect(item) {\n if (!item) {\n return;\n }\n this.itemsList.unselect(item);\n this.focus();\n this._updateNgModel();\n this.removeEvent.emit(item.value);\n this._onSelectionChanged();\n }\n selectTag() {\n let tag;\n if (isFunction(this.addTag)) {\n tag = this.addTag(this.searchTerm);\n } else {\n tag = this._primitive ? this.searchTerm : {\n [this.bindLabel]: this.searchTerm\n };\n }\n const handleTag = item => this._isTypeahead || !this.isOpen ? this.itemsList.mapItem(item, null) : this.itemsList.addItem(item);\n if (isPromise(tag)) {\n tag.then(item => this.select(handleTag(item))).catch(() => {});\n } else if (tag) {\n this.select(handleTag(tag));\n }\n }\n showClear() {\n return this.clearable && (this.hasValue || this.searchTerm) && !this.disabled;\n }\n focusOnClear() {\n this.blur();\n if (this.clearButton) {\n this.clearButton.nativeElement.focus();\n }\n }\n showNoItemsFound() {\n const empty = this.itemsList.filteredItems.length === 0;\n return (empty && !this._isTypeahead && !this.loading || empty && this._isTypeahead && this._validTerm && !this.loading) && !this.showAddTag;\n }\n showTypeToSearch() {\n const empty = this.itemsList.filteredItems.length === 0;\n return empty && this._isTypeahead && !this._validTerm && !this.loading;\n }\n onCompositionStart() {\n this._isComposing = true;\n }\n onCompositionEnd(term) {\n this._isComposing = false;\n if (this.searchWhileComposing) {\n return;\n }\n this.filter(term);\n }\n filter(term) {\n if (this._isComposing && !this.searchWhileComposing) {\n return;\n }\n this.searchTerm = term;\n if (this._isTypeahead && (this._validTerm || this.minTermLength === 0)) {\n this.typeahead.next(term);\n }\n if (!this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n if (this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n this.searchEvent.emit({\n term,\n items: this.itemsList.filteredItems.map(x => x.value)\n });\n this.open();\n }\n onInputFocus($event) {\n if (this.focused) {\n return;\n }\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n this.element.classList.add('ng-select-focused');\n this.focusEvent.emit($event);\n this.focused = true;\n }\n onInputBlur($event) {\n this.element.classList.remove('ng-select-focused');\n this.blurEvent.emit($event);\n if (!this.isOpen && !this.disabled) {\n this._onTouched();\n }\n if (this._editableSearchTerm) {\n this._setSearchTermFromItems();\n }\n this.focused = false;\n }\n onItemHover(item) {\n if (item.disabled) {\n return;\n }\n this.itemsList.markItem(item);\n }\n detectChanges() {\n if (!this._cd.destroyed) {\n this._cd.detectChanges();\n }\n }\n _setSearchTermFromItems() {\n const selected = this.selectedItems && this.selectedItems[0];\n this.searchTerm = selected && selected.label || null;\n }\n _setItems(items) {\n const firstItem = items[0];\n this.bindLabel = this.bindLabel || this._defaultLabel;\n this._primitive = isDefined(firstItem) ? !isObject(firstItem) : this._primitive || this.bindLabel === this._defaultLabel;\n this.itemsList.setItems(items);\n if (items.length > 0 && this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n if (this.isOpen && isDefined(this.searchTerm) && !this._isTypeahead) {\n this.itemsList.filter(this.searchTerm);\n }\n if (this._isTypeahead || this.isOpen) {\n this.itemsList.markSelectedOrDefault(this.markFirst);\n }\n }\n _setItemsFromNgOptions() {\n const mapNgOptions = options => {\n this.items = options.map(option => ({\n $ngOptionValue: option.value,\n $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\n disabled: option.disabled\n }));\n this.itemsList.setItems(this.items);\n if (this.hasValue) {\n this.itemsList.mapSelectedItems();\n }\n this.detectChanges();\n };\n const handleOptionChange = () => {\n const changedOrDestroyed = merge(this.ngOptions.changes, this._destroy$);\n merge(...this.ngOptions.map(option => option.stateChange$)).pipe(takeUntil(changedOrDestroyed)).subscribe(option => {\n const item = this.itemsList.findItem(option.value);\n item.disabled = option.disabled;\n item.label = option.label || item.label;\n this._cd.detectChanges();\n });\n };\n this.ngOptions.changes.pipe(startWith(this.ngOptions), takeUntil(this._destroy$)).subscribe(options => {\n this.bindLabel = this._defaultLabel;\n mapNgOptions(options);\n handleOptionChange();\n });\n }\n _isValidWriteValue(value) {\n if (!isDefined(value) || this.multiple && value === '' || Array.isArray(value) && value.length === 0) {\n return false;\n }\n const validateBinding = item => {\n if (!isDefined(this.compareWith) && isObject(item) && this.bindValue) {\n this._console.warn(`Setting object(${JSON.stringify(item)}) as your model with bindValue is not allowed unless [compareWith] is used.`);\n return false;\n }\n return true;\n };\n if (this.multiple) {\n if (!Array.isArray(value)) {\n this._console.warn('Multiple select ngModel should be array.');\n return false;\n }\n return value.every(item => validateBinding(item));\n } else {\n return validateBinding(value);\n }\n }\n _handleWriteValue(ngModel) {\n if (!this._isValidWriteValue(ngModel)) {\n return;\n }\n const select = val => {\n let item = this.itemsList.findItem(val);\n if (item) {\n this.itemsList.select(item);\n } else {\n const isValObject = isObject(val);\n const isPrimitive = !isValObject && !this.bindValue;\n if (isValObject || isPrimitive) {\n this.itemsList.select(this.itemsList.mapItem(val, null));\n } else if (this.bindValue) {\n item = {\n [this.bindLabel]: null,\n [this.bindValue]: val\n };\n this.itemsList.select(this.itemsList.mapItem(item, null));\n }\n }\n };\n if (this.multiple) {\n ngModel.forEach(item => select(item));\n } else {\n select(ngModel);\n }\n }\n _handleKeyPresses() {\n if (this.searchable) {\n return;\n }\n this._keyPress$.pipe(takeUntil(this._destroy$), tap(letter => this._pressedKeys.push(letter)), debounceTime(200), filter(() => this._pressedKeys.length > 0), map(() => this._pressedKeys.join(''))).subscribe(term => {\n const item = this.itemsList.findByLabel(term);\n if (item) {\n if (this.isOpen) {\n this.itemsList.markItem(item);\n this._scrollToMarked();\n this._cd.markForCheck();\n } else {\n this.select(item);\n }\n }\n this._pressedKeys = [];\n });\n }\n _setInputAttributes() {\n const input = this.searchInput.nativeElement;\n const attributes = {\n type: 'text',\n autocorrect: 'off',\n autocapitalize: 'off',\n autocomplete: this.labelForId ? 'off' : this.dropdownId,\n ...this.inputAttrs\n };\n for (const key of Object.keys(attributes)) {\n input.setAttribute(key, attributes[key]);\n }\n }\n _updateNgModel() {\n const model = [];\n for (const item of this.selectedItems) {\n if (this.bindValue) {\n let value = null;\n if (item.children) {\n const groupKey = this.groupValue ? this.bindValue : this.groupBy;\n value = item.value[groupKey || this.groupBy];\n } else {\n value = this.itemsList.resolveNested(item.value, this.bindValue);\n }\n model.push(value);\n } else {\n model.push(item.value);\n }\n }\n const selected = this.selectedItems.map(x => x.value);\n if (this.multiple) {\n this._onChange(model);\n this.changeEvent.emit(selected);\n } else {\n this._onChange(isDefined(model[0]) ? model[0] : null);\n this.changeEvent.emit(selected[0]);\n }\n this._cd.markForCheck();\n }\n _clearSearch() {\n if (!this.searchTerm) {\n return;\n }\n this._changeSearch(null);\n this.itemsList.resetFilteredItems();\n }\n _changeSearch(searchTerm) {\n this.searchTerm = searchTerm;\n if (this._isTypeahead) {\n this.typeahead.next(searchTerm);\n }\n }\n _scrollToMarked() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollTo(this.itemsList.markedItem);\n }\n _scrollToTag() {\n if (!this.isOpen || !this.dropdownPanel) {\n return;\n }\n this.dropdownPanel.scrollToTag();\n }\n _onSelectionChanged() {\n if (this.isOpen && this.deselectOnClick && this.appendTo) {\n // Make sure items are rendered.\n this._cd.detectChanges();\n this.dropdownPanel.adjustPosition();\n }\n }\n _handleTab($event) {\n if (this.isOpen === false) {\n if (this.showClear() && !$event.shiftKey) {\n this.focusOnClear();\n $event.preventDefault();\n } else if (!this.addTag) {\n return;\n }\n }\n if (this.selectOnTab) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n $event.preventDefault();\n } else if (this.showAddTag) {\n this.selectTag();\n $event.preventDefault();\n } else {\n this.close();\n }\n } else {\n this.close();\n }\n }\n _handleEnter($event) {\n if (this.isOpen || this._manualOpen) {\n if (this.itemsList.markedItem) {\n this.toggleItem(this.itemsList.markedItem);\n } else if (this.showAddTag) {\n this.selectTag();\n }\n } else if (this.openOnEnter) {\n this.open();\n } else {\n return;\n }\n $event.preventDefault();\n }\n _handleSpace($event) {\n if (this.isOpen || this._manualOpen) {\n return;\n }\n this.open();\n $event.preventDefault();\n }\n _handleArrowDown($event) {\n if (this._nextItemIsTag(+1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n } else {\n this.itemsList.markNextItem();\n this._scrollToMarked();\n }\n this.open();\n $event.preventDefault();\n }\n _handleArrowUp($event) {\n if (!this.isOpen) {\n return;\n }\n if (this._nextItemIsTag(-1)) {\n this.itemsList.unmarkItem();\n this._scrollToTag();\n } else {\n this.itemsList.markPreviousItem();\n this._scrollToMarked();\n }\n $event.preventDefault();\n }\n _nextItemIsTag(nextStep) {\n const nextIndex = this.itemsList.markedIndex + nextStep;\n return this.addTag && this.searchTerm && this.itemsList.markedItem && (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length);\n }\n _handleBackspace() {\n if (this.searchTerm || !this.clearable || !this.clearOnBackspace || !this.hasValue) {\n return;\n }\n if (this.multiple) {\n this.unselect(this.itemsList.lastSelectedItem);\n } else {\n this.clearModel();\n }\n }\n _mergeGlobalConfig(config) {\n this.placeholder = this.placeholder || config.placeholder;\n this.fixedPlaceholder = this.fixedPlaceholder || config.fixedPlaceholder;\n this.notFoundText = this.notFoundText || config.notFoundText;\n this.typeToSearchText = this.typeToSearchText || config.typeToSearchText;\n this.addTagText = this.addTagText || config.addTagText;\n this.loadingText = this.loadingText || config.loadingText;\n this.clearAllText = this.clearAllText || config.clearAllText;\n this.virtualScroll = isDefined(this.virtualScroll) ? this.virtualScroll : isDefined(config.disableVirtualScroll) ? !config.disableVirtualScroll : false;\n this.openOnEnter = isDefined(this.openOnEnter) ? this.openOnEnter : config.openOnEnter;\n this.appendTo = this.appendTo || config.appendTo;\n this.bindValue = this.bindValue || config.bindValue;\n this.bindLabel = this.bindLabel || config.bindLabel;\n this.appearance = this.appearance || config.appearance;\n }\n static {\n this.ɵfac = function NgSelectComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgSelectComponent)(i0.ɵɵinjectAttribute('class'), i0.ɵɵinjectAttribute('autofocus'), i0.ɵɵdirectiveInject(NgSelectConfig), i0.ɵɵdirectiveInject(SELECTION_MODEL_FACTORY, 8), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(ConsoleService));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgSelectComponent,\n selectors: [[\"ng-select\"]],\n contentQueries: function NgSelectComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgOptionTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgOptgroupTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgLabelTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgMultiLabelTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgHeaderTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgFooterTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgNotFoundTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgPlaceholderTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgTypeToSearchTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgLoadingTextTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgTagTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgLoadingSpinnerTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgClearButtonTemplateDirective, 5, TemplateRef);\n i0.ɵɵcontentQuery(dirIndex, NgOptionComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.optionTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.optgroupTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.labelTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.multiLabelTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.headerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.footerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.notFoundTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.placeholderTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.typeToSearchTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loadingTextTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tagTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.loadingSpinnerTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearButtonTemplate = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.ngOptions = _t);\n }\n },\n viewQuery: function NgSelectComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(NgDropdownPanelComponent, 5);\n i0.ɵɵviewQuery(_c5, 7);\n i0.ɵɵviewQuery(_c6, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropdownPanel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.searchInput = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearButton = _t.first);\n }\n },\n hostVars: 20,\n hostBindings: function NgSelectComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown\", function NgSelectComponent_keydown_HostBindingHandler($event) {\n return ctx.handleKeyDown($event);\n });\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"ng-select-typeahead\", ctx.typeahead)(\"ng-select-multiple\", ctx.multiple)(\"ng-select-taggable\", ctx.addTag)(\"ng-select-searchable\", ctx.searchable)(\"ng-select-clearable\", ctx.clearable)(\"ng-select-opened\", ctx.isOpen)(\"ng-select\", ctx.useDefaultClass)(\"ng-select-filtered\", ctx.filtered)(\"ng-select-single\", ctx.single)(\"ng-select-disabled\", ctx.disabled);\n }\n },\n inputs: {\n ariaLabelDropdown: \"ariaLabelDropdown\",\n bindLabel: \"bindLabel\",\n bindValue: \"bindValue\",\n ariaLabel: \"ariaLabel\",\n markFirst: [2, \"markFirst\", \"markFirst\", booleanAttribute],\n placeholder: \"placeholder\",\n fixedPlaceholder: \"fixedPlaceholder\",\n notFoundText: \"notFoundText\",\n typeToSearchText: \"typeToSearchText\",\n preventToggleOnRightClick: \"preventToggleOnRightClick\",\n addTagText: \"addTagText\",\n loadingText: \"loadingText\",\n clearAllText: \"clearAllText\",\n appearance: \"appearance\",\n dropdownPosition: \"dropdownPosition\",\n appendTo: \"appendTo\",\n loading: [2, \"loading\", \"loading\", booleanAttribute],\n closeOnSelect: [2, \"closeOnSelect\", \"closeOnSelect\", booleanAttribute],\n hideSelected: [2, \"hideSelected\", \"hideSelected\", booleanAttribute],\n selectOnTab: [2, \"selectOnTab\", \"selectOnTab\", booleanAttribute],\n openOnEnter: [2, \"openOnEnter\", \"openOnEnter\", booleanAttribute],\n maxSelectedItems: [2, \"maxSelectedItems\", \"maxSelectedItems\", numberAttribute],\n groupBy: \"groupBy\",\n groupValue: \"groupValue\",\n bufferAmount: [2, \"bufferAmount\", \"bufferAmount\", numberAttribute],\n virtualScroll: [2, \"virtualScroll\", \"virtualScroll\", booleanAttribute],\n selectableGroup: [2, \"selectableGroup\", \"selectableGroup\", booleanAttribute],\n selectableGroupAsModel: [2, \"selectableGroupAsModel\", \"selectableGroupAsModel\", booleanAttribute],\n searchFn: \"searchFn\",\n trackByFn: \"trackByFn\",\n clearOnBackspace: [2, \"clearOnBackspace\", \"clearOnBackspace\", booleanAttribute],\n labelForId: \"labelForId\",\n inputAttrs: \"inputAttrs\",\n tabIndex: [2, \"tabIndex\", \"tabIndex\", numberAttribute],\n readonly: [2, \"readonly\", \"readonly\", booleanAttribute],\n searchWhileComposing: [2, \"searchWhileComposing\", \"searchWhileComposing\", booleanAttribute],\n minTermLength: [2, \"minTermLength\", \"minTermLength\", numberAttribute],\n editableSearchTerm: [2, \"editableSearchTerm\", \"editableSearchTerm\", booleanAttribute],\n ngClass: \"ngClass\",\n typeahead: \"typeahead\",\n multiple: [2, \"multiple\", \"multiple\", booleanAttribute],\n addTag: \"addTag\",\n searchable: [2, \"searchable\", \"searchable\", booleanAttribute],\n clearable: [2, \"clearable\", \"clearable\", booleanAttribute],\n isOpen: \"isOpen\",\n items: \"items\",\n compareWith: \"compareWith\",\n clearSearchOnAdd: \"clearSearchOnAdd\",\n deselectOnClick: \"deselectOnClick\",\n keyDownFn: \"keyDownFn\"\n },\n outputs: {\n blurEvent: \"blur\",\n focusEvent: \"focus\",\n changeEvent: \"change\",\n openEvent: \"open\",\n closeEvent: \"close\",\n searchEvent: \"search\",\n clearEvent: \"clear\",\n addEvent: \"add\",\n removeEvent: \"remove\",\n scroll: \"scroll\",\n scrollToEnd: \"scrollToEnd\"\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgSelectComponent),\n multi: true\n }, NgDropdownPanelService]), i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature],\n decls: 13,\n vars: 19,\n consts: [[\"searchInput\", \"\"], [\"defaultPlaceholderTemplate\", \"\"], [\"defaultLabelTemplate\", \"\"], [\"defaultLoadingSpinnerTemplate\", \"\"], [\"clearButton\", \"\"], [\"defaultOptionTemplate\", \"\"], [\"defaultTagTemplate\", \"\"], [\"defaultNotFoundTemplate\", \"\"], [\"defaultTypeToSearchTemplate\", \"\"], [\"defaultLoadingTextTemplate\", \"\"], [1, \"ng-select-container\", 3, \"mousedown\"], [1, \"ng-value-container\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"ng-input\"], [\"aria-autocomplete\", \"list\", \"role\", \"combobox\", 3, \"blur\", \"change\", \"compositionend\", \"compositionstart\", \"focus\", \"input\", \"disabled\", \"readOnly\", \"value\"], [1, \"ng-arrow-wrapper\"], [1, \"ng-arrow\"], [\"role\", \"listbox\", 1, \"ng-dropdown-panel\", 3, \"virtualScroll\", \"bufferAmount\", \"appendTo\", \"position\", \"headerTemplate\", \"footerTemplate\", \"filterValue\", \"items\", \"markedItem\", \"ng-select-multiple\", \"ngClass\", \"id\"], [3, \"ngTemplateOutlet\"], [1, \"ng-placeholder\"], [1, \"ng-value\", 3, \"ng-value-disabled\"], [1, \"ng-value\"], [\"aria-hidden\", \"true\", 1, \"ng-value-icon\", \"left\", 3, \"click\"], [1, \"ng-value-label\", 3, \"ngItemLabel\", \"escape\"], [1, \"ng-spinner-loader\"], [\"role\", \"button\", \"tabindex\", \"0\", 1, \"ng-clear-wrapper\", 3, \"title\"], [\"aria-hidden\", \"true\", 1, \"ng-clear\"], [\"role\", \"listbox\", 1, \"ng-dropdown-panel\", 3, \"update\", \"scroll\", \"scrollToEnd\", \"outsideClick\", \"virtualScroll\", \"bufferAmount\", \"appendTo\", \"position\", \"headerTemplate\", \"footerTemplate\", \"filterValue\", \"items\", \"markedItem\", \"ngClass\", \"id\"], [1, \"ng-option\", 3, \"ng-option-disabled\", \"ng-option-selected\", \"ng-optgroup\", \"ng-option\", \"ng-option-child\", \"ng-option-marked\"], [\"role\", \"option\", 1, \"ng-option\", 3, \"ng-option-marked\"], [1, \"ng-option\", 3, \"click\", \"mouseover\"], [1, \"ng-option-label\", 3, \"ngItemLabel\", \"escape\"], [\"role\", \"option\", 1, \"ng-option\", 3, \"mouseover\", \"click\"], [1, \"ng-tag-label\"], [1, \"ng-option\", \"ng-option-disabled\"]],\n template: function NgSelectComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 10);\n i0.ɵɵlistener(\"mousedown\", function NgSelectComponent_Template_div_mousedown_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.handleMousedown($event));\n });\n i0.ɵɵelementStart(1, \"div\", 11);\n i0.ɵɵtemplate(2, NgSelectComponent_Conditional_2_Template, 3, 1)(3, NgSelectComponent_Conditional_3_Template, 2, 0)(4, NgSelectComponent_Conditional_4_Template, 1, 5, null, 12);\n i0.ɵɵelementStart(5, \"div\", 13)(6, \"input\", 14, 0);\n i0.ɵɵlistener(\"blur\", function NgSelectComponent_Template_input_blur_6_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onInputBlur($event));\n })(\"change\", function NgSelectComponent_Template_input_change_6_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView($event.stopPropagation());\n })(\"compositionend\", function NgSelectComponent_Template_input_compositionend_6_listener() {\n i0.ɵɵrestoreView(_r1);\n const searchInput_r7 = i0.ɵɵreference(7);\n return i0.ɵɵresetView(ctx.onCompositionEnd(searchInput_r7.value));\n })(\"compositionstart\", function NgSelectComponent_Template_input_compositionstart_6_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onCompositionStart());\n })(\"focus\", function NgSelectComponent_Template_input_focus_6_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onInputFocus($event));\n })(\"input\", function NgSelectComponent_Template_input_input_6_listener() {\n i0.ɵɵrestoreView(_r1);\n const searchInput_r7 = i0.ɵɵreference(7);\n return i0.ɵɵresetView(ctx.filter(searchInput_r7.value));\n });\n i0.ɵɵelementEnd()()();\n i0.ɵɵtemplate(8, NgSelectComponent_Conditional_8_Template, 3, 1)(9, NgSelectComponent_Conditional_9_Template, 2, 1);\n i0.ɵɵelementStart(10, \"span\", 15);\n i0.ɵɵelement(11, \"span\", 16);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(12, NgSelectComponent_Conditional_12_Template, 8, 18, \"ng-dropdown-panel\", 17);\n }\n if (rf & 2) {\n i0.ɵɵclassProp(\"ng-appearance-outline\", ctx.appearance === \"outline\")(\"ng-has-value\", ctx.hasValue);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx.selectedItems.length === 0 && !ctx.searchTerm || ctx.fixedPlaceholder === true ? 2 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional((!ctx.multiLabelTemplate || !ctx.multiple) && ctx.selectedItems.length > 0 ? 3 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx.multiple && ctx.multiLabelTemplate && ctx.selectedValues.length > 0 ? 4 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"disabled\", ctx.disabled)(\"readOnly\", !ctx.searchable || ctx.itemsList.maxItemsSelected)(\"value\", ctx.searchTerm ? ctx.searchTerm : \"\");\n i0.ɵɵattribute(\"aria-activedescendant\", ctx.isOpen ? ctx.itemsList == null ? null : ctx.itemsList.markedItem == null ? null : ctx.itemsList.markedItem.htmlId : null)(\"aria-controls\", ctx.isOpen ? ctx.dropdownId : null)(\"aria-expanded\", ctx.isOpen)(\"aria-label\", ctx.ariaLabel)(\"id\", ctx.labelForId)(\"tabindex\", ctx.tabIndex);\n i0.ɵɵadvance(2);\n i0.ɵɵconditional(ctx.loading ? 8 : -1);\n i0.ɵɵadvance();\n i0.ɵɵconditional(ctx.showClear() ? 9 : -1);\n i0.ɵɵadvance(3);\n i0.ɵɵconditional(ctx.isOpen ? 12 : -1);\n }\n },\n dependencies: [NgTemplateOutlet, NgItemLabelDirective, NgDropdownPanelComponent, NgClass],\n styles: [\"@charset \\\"UTF-8\\\";.ng-select{position:relative;display:block;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ng-select div,.ng-select input,.ng-select span{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.ng-select [hidden]{display:none}.ng-select.ng-select-searchable .ng-select-container .ng-value-container .ng-input{opacity:1}.ng-select.ng-select-opened .ng-select-container{z-index:1001}.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-placeholder,.ng-select.ng-select-disabled .ng-select-container .ng-value-container .ng-value{-webkit-user-select:none;user-select:none;cursor:default}.ng-select.ng-select-disabled .ng-arrow-wrapper{cursor:default}.ng-select.ng-select-filtered .ng-placeholder{display:none}.ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}.ng-select .ng-select-container .ng-value-container{display:flex;flex:1}.ng-select .ng-select-container .ng-value-container .ng-input{opacity:0}.ng-select .ng-select-container .ng-value-container .ng-input>input{box-sizing:content-box;background:none transparent;border:0 none;box-shadow:none;outline:none;padding:0;cursor:default;width:100%}.ng-select .ng-select-container .ng-value-container .ng-input>input::-ms-clear{display:none}.ng-select .ng-select-container .ng-value-container .ng-input>input[readonly]{-webkit-user-select:unset;user-select:unset;width:0;padding:0}.ng-select.ng-select-single.ng-select-filtered .ng-select-container .ng-value-container .ng-value{visibility:hidden}.ng-select.ng-select-single .ng-select-container .ng-value-container,.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-single .ng-select-container .ng-value-container .ng-input{position:absolute;left:0;width:100%}.ng-select.ng-select-multiple.ng-select-disabled>.ng-select-container .ng-value-container .ng-value .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container{flex-wrap:wrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{position:absolute}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value{white-space:nowrap}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value.ng-value-disabled .ng-value-icon{display:none}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-value .ng-value-icon{cursor:pointer}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-input{flex:1;z-index:2}.ng-select.ng-select-multiple .ng-select-container .ng-value-container .ng-placeholder{z-index:1}.ng-select .ng-clear-wrapper{cursor:pointer;position:relative;width:17px;-webkit-user-select:none;user-select:none}.ng-select .ng-clear-wrapper .ng-clear{display:inline-block;font-size:18px;line-height:1;pointer-events:none}.ng-select .ng-spinner-loader{border-radius:50%;width:17px;height:17px;margin-right:5px;font-size:10px;position:relative;text-indent:-9999em;border-top:2px solid rgba(66,66,66,.2);border-right:2px solid rgba(66,66,66,.2);border-bottom:2px solid rgba(66,66,66,.2);border-left:2px solid #424242;transform:translateZ(0);animation:load8 .8s infinite linear}.ng-select .ng-spinner-loader:after{border-radius:50%;width:17px;height:17px}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.ng-select .ng-arrow-wrapper{cursor:pointer;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.ng-select .ng-arrow-wrapper .ng-arrow{pointer-events:none;display:inline-block;height:0;width:0;position:relative}.ng-dropdown-panel{box-sizing:border-box;position:absolute;opacity:0;width:100%;z-index:1050;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .ng-dropdown-panel-items{display:block;height:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;max-height:240px;overflow-y:auto}.ng-dropdown-panel .ng-dropdown-panel-items .ng-optgroup{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .ng-option-label:empty:before{content:\\\"\\\\200b\\\"}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option .highlighted{font-weight:700;text-decoration:underline}.ng-dropdown-panel .ng-dropdown-panel-items .ng-option.disabled{cursor:default}.ng-dropdown-panel .scroll-host{overflow:hidden;overflow-y:auto;position:relative;display:block;-webkit-overflow-scrolling:touch}.ng-dropdown-panel .scrollable-content{top:0;left:0;width:100%;height:100%;position:absolute}.ng-dropdown-panel .total-padding{width:1px;opacity:0}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return NgSelectComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgSelectModule = /*#__PURE__*/(() => {\n class NgSelectModule {\n static {\n this.ɵfac = function NgSelectModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NgSelectModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgSelectModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\n provide: SELECTION_MODEL_FACTORY,\n useValue: DefaultSelectionModelFactory\n }]\n });\n }\n }\n return NgSelectModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of ng-select\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ConsoleService, DefaultSelectionModel, DefaultSelectionModelFactory, NgClearButtonTemplateDirective, NgDropdownPanelComponent, NgDropdownPanelService, NgFooterTemplateDirective, NgHeaderTemplateDirective, NgItemLabelDirective, NgLabelTemplateDirective, NgLoadingSpinnerTemplateDirective, NgLoadingTextTemplateDirective, NgMultiLabelTemplateDirective, NgNotFoundTemplateDirective, NgOptgroupTemplateDirective, NgOptionComponent, NgOptionTemplateDirective, NgPlaceholderTemplateDirective, NgSelectComponent, NgSelectConfig, NgSelectModule, NgTagTemplateDirective, NgTypeToSearchTemplateDirective, SELECTION_MODEL_FACTORY };\n","export interface CotacaoSemaforoVendedor {\r\n quotation_id: number;\r\n supplier_name: string;\r\n seller_company_id: number;\r\n seller_name: string;\r\n situacao: string;\r\n status_id: CotacaoSemaforoVendedorStatusEnum;\r\n bloqueado: boolean;\r\n\r\n isIncluded: boolean;\r\n removeAnswer: boolean;\r\n}\r\n\r\nexport enum CotacaoSemaforoVendedorStatusEnum {\r\n NaoParticipando = 1,\r\n Participando = 2,\r\n Respondido = 3,\r\n}\r\n\r\nexport function isParticipando(statusId: CotacaoSemaforoVendedorStatusEnum): boolean {\r\n let status = [CotacaoSemaforoVendedorStatusEnum.Participando, CotacaoSemaforoVendedorStatusEnum.Respondido]\r\n return status.includes(statusId);\r\n}\r\n","import { Component, OnInit, TemplateRef, Input, OnChanges, SimpleChanges, ViewChild, EventEmitter, Output } from '@angular/core';\r\n\r\nimport { BsModalService, BsModalRef, ModalOptions } from 'ngx-bootstrap/modal';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { CotacaoSemaforoVendedor, isParticipando } from './_models/cotacaoSemaforoVendedor';\r\nimport { Globals } from 'app/_models/globals';\r\n\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { SupportCotacoesService } from 'app/support/cotacoes/cotacoes.service';\r\n\r\ndeclare const isEmpty: any;\r\n\r\n@Component({\r\n selector: 'app-alterar-vendedores', templateUrl: './alterar-vendedores.component.html', styleUrls: ['./alterar-vendedores.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportAlterarVendedoresComponent implements OnInit, OnChanges {\r\n @ViewChild('template') template: TemplateRef;\r\n @Input() cotacao: any;\r\n @Input() visivel: boolean;\r\n @Output() fechar = new EventEmitter();\r\n\r\n atualizar: boolean;\r\n loading: boolean;\r\n modalRef: BsModalRef;\r\n vendedores: CotacaoSemaforoVendedor[];\r\n\r\n constructor(\r\n private notificationService: NotificationService,\r\n private supportCotacoesService: SupportCotacoesService,\r\n private globals: Globals,\r\n private modalService: BsModalService) { }\r\n\r\n ngOnInit() {\r\n this.loading = false;\r\n this.vendedores = [];\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (!isEmpty(changes.visivel)) {\r\n if (changes.visivel.currentValue)\r\n this.abrirModal(0);\r\n else if (this.modalRef)\r\n this.modalRef.hide();\r\n }\r\n }\r\n\r\n abrirModal(nAttempts: number) {\r\n this.atualizar = false;\r\n let options: ModalOptions = { backdrop: 'static', class: 'gray modal-lg', keyboard: false };\r\n this.modalRef = this.modalService.show(this.template, options);\r\n\r\n this.loadSellers(nAttempts);\r\n }\r\n\r\n atualizarVendedor(vendedor: CotacaoSemaforoVendedor) {\r\n vendedor.isIncluded = isParticipando(vendedor.status_id);\r\n vendedor.removeAnswer = vendedor.status_id === 3;\r\n }\r\n\r\n acao_apagar_resposta(vendedor: CotacaoSemaforoVendedor, nAttempts: number) {\r\n this.loading = true;\r\n\r\n this.supportCotacoesService.deleteAnswer(vendedor.quotation_id, vendedor.seller_company_id).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n vendedor.status_id = 2;\r\n vendedor.situacao = 'Pendente';\r\n this.atualizarVendedor(vendedor);\r\n\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.cotacoes.modal.alterar-vendedores.mensagens.sucesso.apagar-resposta.corpo'));\r\n this.atualizar = true;\r\n this.loading = false;\r\n }\r\n },\r\n error: (error: any) => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.cotacoes.modal.alterar-vendedores.mensagens.erro.apagar-resposta.corpo'));\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n this.acao_apagar_resposta(vendedor, ++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n fecharModal() {\r\n this.fechar.emit({ atualizar: this.atualizar });\r\n }\r\n\r\n handleSellerInclusion(vendedor: CotacaoSemaforoVendedor) {\r\n if (vendedor.isIncluded)\r\n return this.removeSeller(vendedor);\r\n\r\n return this.includeSeller(vendedor);\r\n }\r\n\r\n includeSeller(vendedor: CotacaoSemaforoVendedor) {\r\n this.loading = true;\r\n\r\n this.supportCotacoesService.includeSeller(vendedor.quotation_id, vendedor.seller_company_id).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.loadSellers(0);\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.cotacoes.modal.alterar-vendedores.mensagens.sucesso.incluir.corpo'));\r\n this.loading = false;\r\n this.atualizar = true;\r\n }\r\n },\r\n error: () => {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.cotacoes.modal.alterar-vendedores.mensagens.erro.incluir.corpo'));\r\n this.loading = false;\r\n return;\r\n }\r\n });\r\n }\r\n\r\n loadSellers(nAttempts: number) {\r\n this.loading = true;\r\n\r\n this.supportCotacoesService.getAllSellersByQuotationId(this.cotacao.quotation_id).subscribe({\r\n next: (response: ApiResponseModel<{ vendedores: CotacaoSemaforoVendedor[] }>) => {\r\n if (response && response.success) {\r\n let vendedores = response.result.vendedores;\r\n vendedores.map(v => this.atualizarVendedor(v));\r\n\r\n this.vendedores = vendedores;\r\n this.loading = false;\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.cotacoes.modal.alterar-vendedores.mensagens.erro.listar.corpo'));\r\n this.loading = false;\r\n return;\r\n }\r\n\r\n this.loadSellers(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n removeSeller(vendedor: CotacaoSemaforoVendedor) {\r\n this.loading = true;\r\n\r\n this.supportCotacoesService.removeSeller(vendedor.quotation_id, vendedor.seller_company_id).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.loadSellers(0);\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.cotacoes.modal.alterar-vendedores.mensagens.sucesso.remover.corpo'));\r\n this.loading = false;\r\n this.atualizar = true;\r\n }\r\n },\r\n error: () => {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.cotacoes.modal.alterar-vendedores.mensagens.erro.remover.corpo'));\r\n this.loading = false;\r\n return;\r\n }\r\n });\r\n }\r\n}\r\n","\r\n
\r\n

{{ 'support.cotacoes.modal.alterar-vendedores.titulo' | translate }}{{cotacao?.quotation_id}}

\r\n \r\n
\r\n
\r\n

{{'support.cotacoes.modal.alterar-vendedores.veiculo' | translate}}: {{cotacao?.veiculo}}

\r\n\r\n
\r\n
\r\n
Empresa
\r\n
Vendedor
\r\n
Status
\r\n
Ação
\r\n
\r\n
\r\n \r\n @for (vendedor of vendedores; track vendedor) {\r\n
\r\n
{{vendedor.supplier_name}}
\r\n
{{vendedor.seller_name}}
\r\n
{{vendedor.situacao}}
\r\n
\r\n @if (!vendedor.bloqueado) {\r\n \r\n @if (vendedor.removeAnswer) {\r\n \r\n }\r\n }\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from \"app/_services/settings.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportAvaliacaoVendedoresService extends BaseService {\r\n private _domain: string = '/support/sellers-reviews';\r\n\r\n constructor(private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public getAll(seller_company_ids: number[]): Observable {\r\n const listArray = seller_company_ids.join(',');\r\n return this.config.executeGet({ url: `${this._domain}?sellerCompanyIds=${listArray}`, body: {} });\r\n }\r\n\r\n public getAllSellers(): Observable {\r\n const body = {};\r\n return this.config.executeGet({ url: `${this._domain}/sellers` });\r\n }\r\n\r\n public getAllSellersByQuotationId(quotation_id: number): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/sellers/quotations/${quotation_id}`});\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { NotificationService } from '../../_services/notification.service';\r\nimport { SupportAvaliacaoVendedoresService } from './avaliacao-vendedores.service';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { AvaliacaoVendedor } from './_models/avalicaoVendedor';\r\nimport { Globals } from '../../_models/globals';\r\nimport { FornecedorVendedor } from './_models/fornecedor-vendedor';\r\nimport { SupportAvaliacaoVendedoresGetListarAvaliacoesResponseModel } from './_models/supportAvaliacaoVendedoresGetListarAvaliacoesResponseModel';\r\nimport { SupportAvaliacaoVendedorGetAvaliacaoVendedorFornecedorResponseModel } from './_models/supportAvaliacaoVendedorGetAvaliacaoVendedorFornecedorResponseModel';\r\nimport { SupportAvaliacaoVendedoresGetListarVendedoresCotacaoResponseModel } from './_models/supportAvaliacaoVendedoresGetListarVendedoresCotacaoResponseModel';\r\n\r\ndeclare const $: any\r\ndeclare const isEmpty: any;\r\ndeclare const sort_by: any;\r\ndeclare const unique: any;\r\ndeclare const waitForElm: any\r\n\r\n@Component({\r\n selector: 'app-avaliacao-vendedores', templateUrl: './avaliacao-vendedores.component.html', styleUrls: ['./avaliacao-vendedores.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportAvaliacaoVendedoresComponent implements OnInit\r\n{\r\n public avaliacoes: AvaliacaoVendedor[] = [];\r\n public todosFornecedores: FornecedorVendedor[] = [];\r\n public fornecedoresHoldings: any[] = [];\r\n public vendedoresFornecedor: any[] = [];\r\n\r\n public cotacaoSelecionada: any;\r\n public fornecedorSelecionado: any = '0';\r\n public vendedorSelecionado: any = '0';\r\n\r\n constructor(\r\n private notificationService: NotificationService,\r\n private avaliacaoVendedoresService: SupportAvaliacaoVendedoresService,\r\n private globals: Globals,\r\n private ngxLoader: NgxUiLoaderService) { }\r\n\r\n ngOnInit(): void {\r\n this.carregarTela(0);\r\n }\r\n\r\n carregarTela(nAttempts: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.avaliacaoVendedoresService.getAllSellers().subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.todosFornecedores = response.result.avaliacaoVendedorFornecedores;\r\n\r\n const fornecedores = this.todosFornecedores.map(f => ({ holding_id: f.holding_id, fornecedor: f.fornecedor })).sort(sort_by([{ name: 'fornecedor' }]));\r\n this.fornecedoresHoldings = unique(fornecedores, 'holding_id');\r\n\r\n this.handleDropdownConfiguration();\r\n }\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.avaliacao-vendedores.lista.mensagens.erro.carregamento-fornecedor.corpo'));\r\n return;\r\n }\r\n\r\n this.carregarTela(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n changeFornecedor(holdingId: number) {\r\n this.fornecedorSelecionado = holdingId;\r\n this.cotacaoSelecionada = undefined;\r\n this.vendedorSelecionado = '0';\r\n\r\n const vendedores = this.todosFornecedores.filter(f => f.holding_id == this.fornecedorSelecionado).map(f => ({ seller_company_id: f.seller_company_id, vendedor: f.vendedor })).sort(sort_by([{ name: 'vendedor' }]));\r\n this.vendedoresFornecedor = unique(vendedores, 'seller_company_id');\r\n }\r\n\r\n changeVendedor(sellerCompanyId: number) {\r\n this.vendedorSelecionado = sellerCompanyId;\r\n }\r\n\r\n private handleDropdownConfiguration() {\r\n const global = this;\r\n this.handleSingleDropdownConfiguration('.search-holding', 'support.multilogin.labels.holding', (value) => global.changeFornecedor(value));\r\n this.handleSingleDropdownConfiguration('.search-user', 'support.multilogin.labels.usuario', (value) => global.changeVendedor(value))\r\n }\r\n\r\n private handleSingleDropdownConfiguration(className: string, translateName: string, callback: any) {\r\n waitForElm(className).then(() => {\r\n $(className).select2({\r\n language: \"pt-BR\",\r\n placeholder: this.globals.translate(translateName)\r\n });\r\n\r\n $(className).off('select2:select');\r\n\r\n if (callback)\r\n $(className).on('select2:select', function () { callback($(className).val()); });\r\n\r\n $(document).on('select2:open', () => { $('.select2-search__field').focus().select(); });\r\n });\r\n }\r\n\r\n listarAvaliacoes(seller_company_ids: number[], nAttempts: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.avaliacaoVendedoresService.getAll(seller_company_ids).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.avaliacoes = response.result.avaliacaoVendedores;\r\n }\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.avaliacao-vendedores.lista.mensagens.erro.carregamento-avaliacao.corpo'));\r\n return;\r\n }\r\n\r\n this.carregarTela(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n async pesquisar() {\r\n if ((isEmpty(this.fornecedorSelecionado) || this.fornecedorSelecionado == '0') && (isEmpty(this.cotacaoSelecionada))) {\r\n await this.notificationService.showWarning('support.avaliacao-vendedores.lista.mensagens.erro.pesquisa-invalida.corpo', 'support.avaliacao-vendedores.lista.mensagens.erro.pesquisa-invalida.titulo');\r\n return;\r\n }\r\n\r\n this.avaliacoes = [];\r\n let seller_company_ids: number[] = [];\r\n\r\n if (!isEmpty(this.cotacaoSelecionada) && this.cotacaoSelecionada > 0) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.avaliacaoVendedoresService.getAllSellersByQuotationId(this.cotacaoSelecionada).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n seller_company_ids = response.result.vendedoresCotacao;\r\n this.listarAvaliacoes(seller_company_ids, 0);\r\n }\r\n },\r\n error: () => {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.avaliacao-vendedores.lista.mensagens.erro.carregamento-cotacao.corpo'));\r\n }\r\n });\r\n\r\n return;\r\n }\r\n\r\n if (!isEmpty(this.vendedorSelecionado) && this.vendedorSelecionado > 0)\r\n seller_company_ids.push(this.vendedorSelecionado);\r\n else\r\n seller_company_ids = this.vendedoresFornecedor.map(v => v.seller_company_id);\r\n\r\n this.listarAvaliacoes(seller_company_ids, 0);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n @if (avaliacoes.length <= 0) {\r\n
\r\n {{'support.avaliacao-vendedores.lista.vazio' | translate}}\r\n
\r\n } @else {\r\n
\r\n
\r\n
{{'support.avaliacao-vendedores.lista.cabecalho.fornecedor' | translate}}
\r\n
{{'support.avaliacao-vendedores.lista.cabecalho.vendedor' | translate}}
\r\n
{{'support.avaliacao-vendedores.lista.cabecalho.pedidos' | translate}} {{'support.avaliacao-vendedores.lista.cabecalho.tipos' | translate}}
\r\n
{{'support.avaliacao-vendedores.lista.cabecalho.taxa-entrega-prazo' | translate}} {{'support.avaliacao-vendedores.lista.cabecalho.tipos' | translate}}
\r\n
{{'support.avaliacao-vendedores.lista.cabecalho.taxa-avaliacao' | translate}} {{'support.avaliacao-vendedores.lista.cabecalho.tipos' | translate}}
\r\n
\r\n \r\n @for (avaliacao of avaliacoes; track avaliacao) {\r\n
\r\n
{{avaliacao.fornecedor}}
\r\n
{{avaliacao.vendedor}}
\r\n
{{avaliacao.total_pedidos}} ({{avaliacao.total_pedidos_ultimos_90}})
\r\n
{{avaliacao.taxa_entrega_prazo}} ({{avaliacao.taxa_entrega_prazo_ultimos_90}})
\r\n
{{avaliacao.taxa_avaliacoes_positivas}} ({{avaliacao.taxa_avaliacoes_positivas_ultimos_90}})
\r\n
\r\n }\r\n
\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n\r\n\r\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChildren } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UntypedFormBuilder, FormControlName, UntypedFormGroup, Validators, FormArray, FormGroup, FormControl } from '@angular/forms';\r\n\r\nimport { NgxBrazilMASKS, NgxBrazilValidators } from 'ngx-brazil';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { v4 as uuid } from 'uuid';\r\n\r\nimport { CadastroCNPJService } from '../../cadastro-cnpj.service';\r\nimport { NotificationService } from 'app/_services/notification.service';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { CnpjDuplicadoValidator } from 'app/_utils/validators/cnpj-duplicado.validator';\r\nimport { CompanyCnpj, ManageCompanyCnpj } from '../../_models/company-model';\r\nimport { Globals } from 'app/_models/globals';\r\nimport { ValidationMessages } from 'app/_utils/generic-form-validation';\r\n\r\ndeclare const $: any;\r\ndeclare const isEmpty: any;\r\ndeclare const waitForElm: any;\r\n\r\n@Component({\r\n selector: 'app-cadastro-cnpj-edicao', templateUrl: './create.component.html', styleUrls: ['./create.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportCadastroCnpjEdicaoComponent implements OnInit {\r\n @Output() onAlterarTela = new EventEmitter();\r\n\r\n private _manageCompanyCnpj: ManageCompanyCnpj;\r\n @Input() get manageCompanyCnpj(): ManageCompanyCnpj {\r\n return this._manageCompanyCnpj;\r\n }\r\n set manageCompanyCnpj(value: ManageCompanyCnpj) {\r\n this._manageCompanyCnpj = value;\r\n\r\n this.carregarTela(this.manageCompanyCnpj.id, 0);\r\n }\r\n\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n cadastroForm: UntypedFormGroup;\r\n repairerList: FormArray;\r\n validationMessages: ValidationMessages;\r\n\r\n compradoresLocal: any[];\r\n errors: any[] = [];\r\n companiesWithoutCnpjList: ManageCompanyCnpj[];\r\n isNewCnpj: boolean = false;\r\n submitted: boolean = false;\r\n\r\n public MASKS: any = NgxBrazilMASKS;\r\n\r\n constructor(private activatedRoute: ActivatedRoute,\r\n private cadastroCnpjService: CadastroCNPJService,\r\n private notificationService: NotificationService,\r\n private globals: Globals,\r\n private fb: UntypedFormBuilder,\r\n private ngxLoader: NgxUiLoaderService,\r\n private cdr: ChangeDetectorRef)\r\n {\r\n this.cadastroForm = this.fb.group({\r\n repairers: this.fb.array([])\r\n });\r\n\r\n this.repairerList = this.cadastroForm.get('repairers') as FormArray;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.validationMessages = {\r\n cnpj: {\r\n required: this.globals.translate('support.manutencao.cadastro-cnpj.campos.cnpj.obrigatorio'),\r\n cnpj: this.globals.translate('support.manutencao.cadastro-cnpj.campos.cnpj.formato-invalido'),\r\n cnpjDuplicado: this.globals.translate('support.manutencao.cadastro-cnpj.campos.cnpj.cnpj-duplicado')\r\n },\r\n razaoSocial: {\r\n required: this.globals.translate('support.manutencao.cadastro-cnpj.campos.razao-social.obrigatorio'),\r\n maxLength: this.globals.translate('support.manutencao.cadastro-cnpj.campos.razao-social.tamanho'),\r\n pattern: this.globals.translate('support.manutencao.cadastro-cnpj.campos.razao-social.somente-letras')\r\n }\r\n };\r\n }\r\n\r\n adicionarCampoCnpj(companyCnpj: CompanyCnpj = null, disabled: boolean = false): void {\r\n this.submitted = false;\r\n\r\n if (!companyCnpj) {\r\n companyCnpj = new CompanyCnpj();\r\n this.manageCompanyCnpj.companiesCnpjs.push(companyCnpj);\r\n } else if (disabled) {\r\n this.manageCompanyCnpj.companiesCnpjs.push(companyCnpj);\r\n }\r\n\r\n const companyGroup = this.fb.group({\r\n id: [uuid()],\r\n cnpj: [{ value: companyCnpj.cnpj, disabled: disabled }, [Validators.required, NgxBrazilValidators.cnpj, CnpjDuplicadoValidator()]],\r\n razaoSocial: [{ value: companyCnpj.name, disabled: disabled }, [Validators.required, Validators.maxLength(100), Validators.pattern('^[a-zA-ZçÇáãâéíóôÁÃÂÉÍÓÔ0-9 ./-]*$')]]\r\n });\r\n\r\n this.repairerList.push(companyGroup);\r\n\r\n const className = `.razaoSocial_${this.repairerList.length - 1}`;\r\n waitForElm(className).then(() => {\r\n $(className).focus();\r\n });\r\n\r\n this.resetValidation();\r\n }\r\n\r\n private buildCompanyCnpj(cnpj: string, razaoSocial: string): CompanyCnpj {\r\n let companyCnpj = new CompanyCnpj();\r\n companyCnpj.cnpj = cnpj;\r\n companyCnpj.name = razaoSocial;\r\n\r\n return companyCnpj;\r\n }\r\n\r\n private configurarDropDownList() {\r\n const scope = this;\r\n const className = '.search-company';\r\n\r\n waitForElm(className).then(() => {\r\n $(className).select2({\r\n language: \"pt-BR\",\r\n placeholder: this.globals.translate('support.manutencao.cadastro-cnpj.campos.oficina.placeholder'),\r\n });\r\n\r\n $(className).off('select2:select');\r\n $(className).on('select2:select', function (e)\r\n {\r\n scope.showCompanyInformation($(className).val());\r\n });\r\n\r\n $(document).on('select2:open', () => { $('.select2-search__field').focus().select(); });\r\n });\r\n }\r\n\r\n excluirCampoCnpj(index: number): void {\r\n this.manageCompanyCnpj.companiesCnpjs.splice(index, 1);\r\n\r\n this.repairerList.removeAt(index);\r\n this.resetValidation();\r\n }\r\n\r\n carregarTela(companyId: number, nAttempts: number) {\r\n this.cadastroCnpjService.getAllCompaniesWithoutCnpj(companyId).subscribe({\r\n next: (response: ApiResponseModel<{ companiesCnpj: ManageCompanyCnpj[] }>) => {\r\n if (response != null && response.success && !isEmpty(response.result)) {\r\n this.companiesWithoutCnpjList = response.result.companiesCnpj;\r\n\r\n this.activatedRoute.params.subscribe(params => {\r\n this.isNewCnpj = params['id'] == 0;\r\n\r\n if (!this.isNewCnpj) {\r\n this.showCompanyInformation(params['id']);\r\n\r\n this.companiesWithoutCnpjList[0].companiesCnpjs.forEach((companyCnpj) => {\r\n this.adicionarCampoCnpj(companyCnpj);\r\n });\r\n }\r\n });\r\n\r\n this.configurarDropDownList();\r\n this.cdr.detectChanges();\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-cnpj.mensagens.listar.erro.corpo'));\r\n return;\r\n }\r\n\r\n this.carregarTela(companyId, ++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n private resetValidation() {\r\n this.submitted = false;\r\n }\r\n\r\n async salvar(nAttempts: number) {\r\n this.submitted = true;\r\n this.validateAllFormFields(this.cadastroForm);\r\n\r\n if (this.cadastroForm.invalid) {\r\n return;\r\n }\r\n\r\n let companiesCnpj: CompanyCnpj[] = Object.assign([], this.cadastroForm.value.repairers);\r\n companiesCnpj.splice(0, 1);\r\n\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.cadastroCnpjService.save(this.manageCompanyCnpj.id, companiesCnpj).subscribe({\r\n next: async (response: ApiResponseModel) => {\r\n if (response != null && response.success) {\r\n if (response.success) {\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.cadastro-cnpj.mensagens.salvar.sucesso.corpo'));\r\n this.voltar(true);\r\n }\r\n else {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n await this.notificationService.showWarning('support.manutencao.cadastro-cnpj.mensagens.salvar.cnpj-existente.corpo', 'support.manutencao.cadastro-cnpj.mensagens.salvar.cnpj-existente.titulo');\r\n }\r\n }\r\n else {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-cnpj.mensagens.salvar.erro.corpo'));\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-cnpj.mensagens.salvar.erro.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n return;\r\n }\r\n\r\n this.salvar(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n showCompanyInformation(id: number) : void {\r\n this.cadastroForm.reset();\r\n this.repairerList.clear();\r\n this.manageCompanyCnpj.companiesCnpjs = [];\r\n\r\n let selectedItem = this.companiesWithoutCnpjList.find((item)=> item.id == id);\r\n\r\n this.manageCompanyCnpj.id = id;\r\n\r\n if (this.manageCompanyCnpj.companiesCnpjs.length == 0) {\r\n const companyCnpj = this.buildCompanyCnpj(selectedItem.cnpj, selectedItem.name);\r\n\r\n this.adicionarCampoCnpj(companyCnpj, true);\r\n }\r\n }\r\n\r\n validateAllFormFields(formGroup: FormGroup) {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n control.updateValueAndValidity();\r\n } else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n control.updateValueAndValidity();\r\n } else if (control instanceof FormArray) {\r\n for (const controlGroup of control.controls) {\r\n this.validateAllFormFields(controlGroup as FormGroup);\r\n }\r\n control.updateValueAndValidity();\r\n }\r\n });\r\n\r\n formGroup.updateValueAndValidity();\r\n }\r\n\r\n voltar(atualizar: boolean)\r\n {\r\n this.onAlterarTela.emit({ atualizar: atualizar, is_listagem: true });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n @for (empresa of repairerList.controls; track empresa; let i = $index) {\r\n
\r\n
\r\n \r\n @if (submitted && empresa.get('razaoSocial')?.invalid) {\r\n
\r\n @if (empresa.get('razaoSocial').hasError('required')) {\r\n {{validationMessages['razaoSocial']['required']}}\r\n }\r\n @if (empresa.get('razaoSocial').hasError('maxlength')) {\r\n {{validationMessages['razaoSocial']['maxLength']}}\r\n }\r\n @if (empresa.get('razaoSocial').hasError('pattern')) {\r\n {{validationMessages['razaoSocial']['pattern']}}\r\n }\r\n
\r\n }\r\n
\r\n
\r\n \r\n @if (submitted && empresa.get('cnpj')?.invalid) {\r\n
\r\n @if (empresa.get('cnpj').hasError('required')) {\r\n {{validationMessages['cnpj']['required']}}\r\n }\r\n @if (empresa.get('cnpj').hasError('cnpj')) {\r\n {{validationMessages['cnpj']['cnpj']}}\r\n }\r\n @if (empresa.get('cnpj').hasError('cnpjDuplicado')) {\r\n {{validationMessages['cnpj']['cnpjDuplicado']}}\r\n }\r\n
\r\n }\r\n
\r\n
\r\n @if (i > 0) {\r\n \r\n }\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n  \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from \"app/_services/settings.service\";\r\nimport { CompanyCnpj } from \"./_models/company-model\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CadastroCNPJService extends BaseService {\r\n private _domain: string = '/support/company-cnpjs';\r\n\r\n constructor(private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public getAll(): Observable {\r\n return this.config.executeGet({ url: this._domain });\r\n }\r\n\r\n public getAllCompaniesWithoutCnpj(companyId: number): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/${companyId}/without-cnpj` });\r\n }\r\n\r\n public delete(companyId: number) {\r\n return this.config.executeDelete({ url: `${this._domain}/${companyId}` });\r\n }\r\n\r\n public save(companyId: number, companiesCnpj: CompanyCnpj[]) {\r\n const url = `${this._domain}/${companyId}`\r\n const body = { \"listaCnpjs\": companiesCnpj };\r\n return this.config.executePost({ url, body });\r\n }\r\n}\r\n","import { AbstractControl, ValidatorFn, FormArray } from '@angular/forms';\r\n\r\nexport function CnpjDuplicadoValidator(): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: boolean } | null => {\r\n if (!control.parent)\r\n return null;\r\n\r\n const cnpj = control.value;\r\n const id = control.parent.controls['id'].value;\r\n const parent = control.parent instanceof FormArray ? control.parent as FormArray : control.parent.parent as FormArray;\r\n\r\n if (!parent || !cnpj) {\r\n return null;\r\n }\r\n \r\n const allControls = parent.controls.map(c => c['controls']);\r\n\r\n const cnpjs = allControls.filter(c => c.cnpj.value === cnpj && c.id.value !== id).map(c => c.cnpj.value);\r\n const hasDuplicatedCnpj = cnpjs.length >= 1;\r\n\r\n if (hasDuplicatedCnpj) {\r\n return { 'cnpjDuplicado': true };\r\n }\r\n\r\n return null;\r\n };\r\n}","export class ManageCompanyCnpj {\r\n id: number;\r\n cnpj: string;\r\n name: string;\r\n fantasyName: string;\r\n companiesCnpjs: CompanyCnpj[];\r\n\r\n public constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\nexport class CompanyCnpj {\r\n cnpj: string;\r\n name: string;\r\n}\r\n","import { TemplateRef } from \"@angular/core\";\r\n\r\nexport class SupportGridview {\r\n actions?: SuportGridviewAction;\r\n emptyText: { isHtml: boolean; value: string; };\r\n list: any[];\r\n sort?: SuportGridviewSort;\r\n table: SupportGridviewTable;\r\n\r\n constructor() {\r\n this.actions = {\r\n edit: { enable: true, type: 'icon' },\r\n remove: { enable: false, type: 'icon' }\r\n };\r\n\r\n this.emptyText = { isHtml: false, value: '' };\r\n this.list = [];\r\n\r\n this.sort = { enabled: false, sortedBy: null, isReverse: false };\r\n }\r\n\r\n set(options: Partial<{ actions: Partial, emptyText: Partial<{ isHtml: boolean; value: string; }>, list: any[], sort: Partial, table: SupportGridviewTable }>) {\r\n if (options.actions) {\r\n if (options.actions.edit)\r\n this.actions.edit = { ...this.actions.edit, ...options.actions.edit };\r\n\r\n if (options.actions.remove)\r\n this.actions.remove = { ...this.actions.remove, ...options.actions.remove };\r\n }\r\n\r\n if (options.emptyText) {\r\n if (options.emptyText)\r\n this.emptyText = { ...this.emptyText, ...options.emptyText };\r\n }\r\n\r\n this.list = options.list;\r\n\r\n if (options.sort) {\r\n if (!options.sort.enabled) {\r\n this.sort.isReverse = false;\r\n this.sort.sortedBy = undefined;\r\n } else {\r\n this.sort.enabled = options.sort.enabled;\r\n this.sort.isReverse = options.sort.isReverse || false;\r\n this.sort.sortedBy = options.sort.sortedBy;\r\n }\r\n }\r\n\r\n this.table = options.table;\r\n }\r\n}\r\n\r\nexport interface SuportGridviewAction {\r\n edit: SuportGridviewActionItem;\r\n remove: SuportGridviewActionItem;\r\n}\r\n\r\nexport interface SuportGridviewActionItem {\r\n confirmationText?: string;\r\n disabledCondition?: (item: any) => boolean;\r\n enable: boolean;\r\n labelText?: string;\r\n type?: 'icon' | 'button';\r\n}\r\n\r\nexport interface SuportGridviewSort {\r\n enabled: boolean;\r\n isReverse: boolean;\r\n sortedBy: string;\r\n}\r\n\r\nexport interface SupportGridviewTable {\r\n body: SupportGridviewTableBodyCell[];\r\n bodyClassName?: string;\r\n header: SupportGridviewTableHeaderCell[];\r\n}\r\n\r\nexport interface SupportGridviewTableHeaderCell {\r\n className: string;\r\n sortName?: string;\r\n value: string;\r\n}\r\n\r\nexport class SupportGridviewTableBodyCell {\r\n className: string;\r\n value: string;\r\n type: 'string' | 'date' | 'number' | 'boolean' | 'html';\r\n format: string;\r\n templateName?: string;\r\n\r\n constructor(className: string, value: string, type?: 'string' | 'date' | 'number' | 'boolean' | 'html', format?: string, templateName?: string) {\r\n this.className = className;\r\n this.value = value;\r\n\r\n this.type = type ?? 'string';\r\n\r\n if (!format) {\r\n if (this.type === 'date')\r\n this.format = 'dd/MM/yyyy';\r\n }\r\n \r\n if (!this.format)\r\n this.format = format ?? '';\r\n \r\n if (!this.templateName)\r\n this.templateName = templateName;\r\n }\r\n}\r\n\r\nexport class SupportGridviewTemplateCell {\r\n name: string;\r\n template: TemplateRef;\r\n}","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { SupportGridview, SupportGridviewTemplateCell } from 'app/support/_models/supportGridview';\r\n\r\ndeclare const sort_by: any;\r\n\r\n@Component({\r\n selector: 'app-support-gridview', templateUrl: './gridview.component.html', styleUrls: ['./gridview.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportGridviewComponent {\r\n @Input() config: SupportGridview = new SupportGridview();\r\n @Input() templates: SupportGridviewTemplateCell[] = [];\r\n @Output() onEdit = new EventEmitter();\r\n @Output() onRemove = new EventEmitter();\r\n @Output() onSort = new EventEmitter();\r\n\r\n constructor(private notificationService: NotificationService) { }\r\n\r\n async edit(item: any) {\r\n let confirm = true;\r\n\r\n if (this.config.actions.edit.confirmationText)\r\n confirm = await this.notificationService.showConfirmationDialog(this.config.actions.edit.confirmationText);\r\n\r\n if (confirm)\r\n this.onEdit.emit(item);\r\n }\r\n\r\n async remove(index: number, item: any) {\r\n if (!this.config.actions.remove.enable)\r\n return;\r\n\r\n const confirm = await this.notificationService.showConfirmationDialog(this.config.actions.remove.confirmationText);\r\n\r\n if (confirm)\r\n this.onRemove.emit({ index, item });\r\n }\r\n\r\n getTemplate(templateName: string): TemplateRef {\r\n const templateObj = this.templates.find(t => t.name === templateName);\r\n return templateObj?.template;\r\n }\r\n\r\n sortTableBy(column: string) {\r\n if (!this.config.sort.enabled)\r\n return;\r\n\r\n if (this.config.sort.sortedBy === column)\r\n this.config.sort.isReverse = !this.config.sort.isReverse;\r\n else {\r\n this.config.sort.sortedBy = column;\r\n this.config.sort.isReverse = false;\r\n }\r\n\r\n this.config.list.sort(sort_by([{ name: column, reverse: this.config.sort.isReverse }]));\r\n\r\n this.onSort.emit({ enabled: true, sortedBy: column, isReverse: this.config.sort.isReverse });\r\n }\r\n}","
\r\n @if (!config.list || config.list.length == 0 || !config.table) {\r\n
\r\n @if (!config.emptyText.isHtml) {\r\n

{{config.emptyText.value | translate}}

\r\n } @else {\r\n

\r\n }\r\n
\r\n } @else {\r\n
\r\n
\r\n @for (col of config.table.header; track col) {\r\n @if (config.sort.enabled && col.sortName) {\r\n
\r\n {{ col.value | translate}}\r\n @if (config.sort.sortedBy === col.sortName) {\r\n \r\n }\r\n
\r\n } @else {\r\n
\r\n {{ col.value | translate}}\r\n
\r\n }\r\n }\r\n
\r\n \r\n @for (item of config.list; track item; let itemIndex = $index) {\r\n
\r\n @for (col of config.table.body; track col; let i = $index) {\r\n
\r\n @if (col.type === 'string') {\r\n {{ item[col.value] }}\r\n }\r\n @if (col.type === 'date') {\r\n {{ item[col.value] | date:col.format }}\r\n }\r\n @if (col.type === 'number') {\r\n {{ item[col.value] | number:col.format }}\r\n }\r\n @if (col.type === 'html' && item) {\r\n \r\n }\r\n @if (col.type === 'boolean' && item[col.value]) {\r\n \r\n }\r\n @if (col.type === 'boolean' && !item[col.value]) {\r\n \r\n }\r\n
\r\n }\r\n @if (config.actions.edit.enable || config.actions.remove.enable) {\r\n
\r\n @if (config.actions.edit.enable && config.actions.edit.type === 'icon') {\r\n \r\n }\r\n @if (config.actions.remove.enable && config.actions.remove.type === 'icon') {\r\n \r\n }\r\n @if (config.actions.edit.enable && config.actions.edit.type === 'button') {\r\n \r\n }\r\n @if (config.actions.remove.enable && config.actions.remove.type === 'button') {\r\n \r\n }\r\n
\r\n }\r\n
\r\n }\r\n
\r\n
\r\n }\r\n
","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { CadastroCNPJService } from '../../cadastro-cnpj.service';\r\nimport { NotificationService } from 'app/_services/notification.service';\r\n\r\nimport { Globals } from 'app/_models/globals';\r\nimport { ManageCompanyCnpj } from '../../_models/company-model';\r\nimport { SupportGridview, SupportGridviewTableBodyCell } from 'app/support/_models/supportGridview';\r\n\r\n@Component({\r\n selector: 'app-cadastro-cnpj-list', templateUrl: './list.component.html', styleUrls: ['./list.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportCadastroCnpjListComponent {\r\n @Output() onAlterarTela = new EventEmitter();\r\n public filter: string = '';\r\n public config: SupportGridview = new SupportGridview();\r\n\r\n @Input() get companiesCnpjList(): ManageCompanyCnpj[] {\r\n return this.config.list;\r\n }\r\n\r\n set companiesCnpjList(value: ManageCompanyCnpj[]) {\r\n this.config.list = value;\r\n }\r\n\r\n constructor(private globals: Globals,\r\n protected router: Router,\r\n private cadastroCnpjService: CadastroCNPJService,\r\n private ngxLoader: NgxUiLoaderService,\r\n private notificationService: NotificationService) {\r\n this.config.set({\r\n actions: {\r\n edit: { enable: true },\r\n remove: { confirmationText: 'support.manutencao.cadastro-cnpj.mensagens.remover.confirm', enable: true }\r\n },\r\n emptyText: { isHtml: false, value: 'support.manutencao.oficina-sem-documentacao.vazio' },\r\n list: [],\r\n table: {\r\n body: [\r\n new SupportGridviewTableBodyCell('col text-center', 'id'),\r\n new SupportGridviewTableBodyCell('col-2 truncate-gridview', 'fantasyName'),\r\n new SupportGridviewTableBodyCell('col-2 truncate-gridview', 'name'),\r\n new SupportGridviewTableBodyCell('col-2 text-center', 'cnpj')\r\n ],\r\n header: [\r\n { className: 'col text-center', value: 'support.manutencao.cadastro-cnpj.tabela.cabecalho.id' },\r\n { className: 'col-2', value: 'support.manutencao.cadastro-cnpj.tabela.cabecalho.nome-fantasia' },\r\n { className: 'col-2', value: 'support.manutencao.cadastro-cnpj.tabela.cabecalho.razao-social' },\r\n { className: 'col-2 text-center', value: 'support.manutencao.cadastro-cnpj.tabela.cabecalho.CNPJ' },\r\n { className: 'col-0-5 text-center', value: 'support.manutencao.cadastro-cnpj.tabela.cabecalho.editar' }\r\n ]\r\n }\r\n });\r\n }\r\n\r\n onEdit(company: ManageCompanyCnpj) {\r\n this.onAlterarTela.emit({ is_listagem: false, company_id: company.id });\r\n }\r\n\r\n onRemove($event: any) {\r\n const company = $event.item;\r\n\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.cadastroCnpjService.delete(company.id).subscribe({\r\n next: () => {\r\n this.onAlterarTela.emit({ atualizar: true, is_listagem: true });\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.cadastro-cnpj.mensagens.remover.sucesso.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: () => {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-cnpj.mensagens.remover.erro.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n return;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from \"app/_services/settings.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { OficinaGestorWhatsapp } from \"./_models/oficina-gestor-whatsapp\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportCadastroGestorWhatsappService extends BaseService {\r\n private _domain: string = '/support/managers-whatsapp';\r\n\r\n constructor(private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public getRepairerList(): Observable {\r\n return this.config.executeGet({ url: `${this._domain}` });\r\n }\r\n\r\n public removeRepairer(holding_id: number): Observable {\r\n return this.config.executeDelete({ url: `${this._domain}/${holding_id}` });\r\n }\r\n\r\n public saveRepairer(repairer: OficinaGestorWhatsapp): Observable {\r\n return this.config.executePost({ url: `${this._domain}`, body: repairer });\r\n }\r\n}\r\n","import { Component, ElementRef, OnInit, ViewChildren } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControlName, FormGroup, Validators } from '@angular/forms';\r\nimport { NgxBrazilMASKS, NgxBrazilValidators } from 'ngx-brazil';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { Observable, fromEvent, merge } from 'rxjs';\r\n\r\nimport { DisplayMessage, GenericValidator, ValidationMessages } from '../../_utils/generic-form-validation';\r\n\r\nimport { NotificationService } from '../../_services/notification.service';\r\nimport { SupportCadastroGestorWhatsappService } from './cadastro-gestor-whatsapp.service';\r\n\r\nimport { Globals } from '../../_models/globals';\r\nimport { OficinaGestorWhatsapp } from './_models/oficina-gestor-whatsapp';\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { SupportManagerWhatsappGetAllResponseModel } from './_models/supportManagerWhatsappGetAllResponseModel';\r\n\r\ndeclare const $: any;\r\n\r\n@Component({\r\n selector: 'app-cadastro-gestor-whatsapp', templateUrl: './cadastro-gestor-whatsapp.component.html', styleUrls: ['./cadastro-gestor-whatsapp.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportCadastroGestorWhatsappComponent implements OnInit {\r\n repairers: OficinaGestorWhatsapp[];\r\n repairerList: FormArray;\r\n repairersForm: FormGroup;\r\n displayMessage: DisplayMessage = {};\r\n errors: any[] = [];\r\n genericValidator: GenericValidator;\r\n validationMessages: ValidationMessages;\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n _searchString: string = '';\r\n\r\n public MASKS: any = NgxBrazilMASKS;\r\n\r\n constructor(\r\n private notificationService: NotificationService,\r\n private cadastroGestorWhatsappService: SupportCadastroGestorWhatsappService,\r\n private globals: Globals,\r\n private fb: FormBuilder,\r\n private ngxLoader: NgxUiLoaderService) { }\r\n\r\n ngOnInit(): void {\r\n this.repairersForm = this.fb.group({\r\n repairers: this.fb.array([])\r\n });\r\n\r\n this.repairerList = this.repairersForm.get('repairers') as FormArray;\r\n\r\n this.validationMessages = {\r\n manager_name: { required: this.globals.translate('support.manutencao.tabela.campos.manager-name.obrigatorio'), maxLength: this.globals.translate('support.manutencao.tabela.campos.manager-name.tamanho'), pattern: this.globals.translate('support.manutencao.tabela.campos.manager-name.somente-letras') },\r\n manager_whatsapp: { required: this.globals.translate('support.manutencao.tabela.campos.manager-whatsapp.obrigatorio'), celular: this.globals.translate('support.manutencao.tabela.campos.manager-whatsapp.formato-invalido') }\r\n };\r\n\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n\r\n this.getList();\r\n }\r\n\r\n addRepairer(repairer: OficinaGestorWhatsapp) {\r\n const repairerGroup = this.fb.group({\r\n user_company_id: [repairer.user_company_id],\r\n repairer_name: [repairer.repairer_name],\r\n user_fullname: [repairer.user_fullname],\r\n manager_name: [{ value: repairer.is_active ? repairer.manager_name : '', disabled: !repairer.is_active }, [Validators.required, Validators.maxLength(50), Validators.pattern('^[a-zA-ZçÇáãéíóôÁÃÉÍÓÔ ]*$')]],\r\n manager_whatsapp: [{ value: repairer.is_active ? repairer.manager_whatsapp : '', disabled: !repairer.is_active }, [Validators.required, NgxBrazilValidators.phoneNumber]],\r\n name_formated: [repairer.name_formated],\r\n is_active: [repairer.is_active],\r\n is_central: [repairer.is_central]\r\n });\r\n\r\n this.repairerList.push(repairerGroup);\r\n }\r\n\r\n buildRepairerList() {\r\n this.repairerList.clear();\r\n\r\n const term: string = this._searchString.toLowerCase();\r\n\r\n for (let repairer of this.repairers.filter(r => r.name_formated.toLowerCase().includes(term))) {\r\n this.addRepairer(repairer);\r\n }\r\n }\r\n\r\n getList() {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.cadastroGestorWhatsappService.getRepairerList().subscribe({\r\n next: (ret: ApiResponseModel) => {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n\r\n if (ret != null && ret.success) {\r\n this.repairers = ret.result.managers;\r\n\r\n this.buildRepairerList();\r\n }\r\n },\r\n error: () => {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-gestor-whatsapp.mensagens.listar.erro.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n }\r\n });\r\n }\r\n\r\n async removeRepairer(index: number) {\r\n if (!await this.notificationService.showConfirmationDialog('support.manutencao.cadastro-gestor-whatsapp.mensagens.remover.confirm'))\r\n return;\r\n\r\n this.startLoading(index);\r\n\r\n this.cadastroGestorWhatsappService.removeRepairer(this.repairers[index].user_company_id).subscribe({\r\n next: () => {\r\n this.stopLoading(index, true, false);\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.cadastro-gestor-whatsapp.mensagens.remover.sucesso.corpo'));\r\n\r\n setTimeout(() => {\r\n const listIndex = this.repairers.findIndex(r => r.user_company_id == this.repairerList.at(index).get('user_company_id').value);\r\n this.repairers.splice(listIndex, 1);\r\n this.buildRepairerList();\r\n }, 500);\r\n },\r\n error: () => {\r\n this.stopLoading(index, false, false);\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-gestor-whatsapp.mensagens.remover.erro.corpo'));\r\n }\r\n });\r\n }\r\n\r\n startLoading(index: number) {\r\n $(`.spin.repairer_${index}`).show();\r\n $(`.btn.repairer_${index}`).prop('disabled', true);\r\n }\r\n\r\n stopLoading(index: number, success: boolean, isUpdate: boolean = false) {\r\n const type = success ? 'success' : 'danger';\r\n const spinnerName = `.text-${type}.repairer_${index}`;\r\n $(`.spin.repairer_${index}`).hide();\r\n $(spinnerName).show();\r\n\r\n setTimeout(() => {\r\n $(spinnerName).hide();\r\n const repairer = this.repairerList.at(index);\r\n const isCentral = repairer.get('is_central').value;\r\n\r\n if (isUpdate) {\r\n $(`.btn.btn-primary.repairer_${index}`).prop('disabled', false);\r\n\r\n if (!isCentral)\r\n $(`.btn.btn-light.repairer_${index}`).prop('disabled', false);\r\n }\r\n }, 1000)\r\n }\r\n\r\n save(repairerControl: any, index: number) {\r\n this.displayMessage['repairersForm'] = '';\r\n\r\n if (this.repairerList.at(index).valid) {\r\n this.startLoading(index);\r\n\r\n const repairer: OficinaGestorWhatsapp = $.extend(true, {}, repairerControl.value);\r\n\r\n this.cadastroGestorWhatsappService.saveRepairer(repairer).subscribe({\r\n next: () => {\r\n this.stopLoading(index, true, true);\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.cadastro-gestor-whatsapp.mensagens.salvar.sucesso.corpo'));\r\n\r\n this.repairerList.at(index).markAsPristine();\r\n },\r\n error: (error) => {\r\n this.stopLoading(index, false, true);\r\n console.log(error);\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-gestor-whatsapp.mensagens.salvar.erro.corpo'));\r\n }\r\n });\r\n }\r\n }\r\n\r\n toggle (index: number) {\r\n const repairer = this.repairerList.at(index);\r\n const disabled = repairer.get('is_active').value;\r\n\r\n if (disabled) {\r\n repairer.get('manager_name').setValue('');\r\n repairer.get('manager_name').disable();\r\n repairer.get('manager_whatsapp').setValue('');\r\n repairer.get('manager_whatsapp').disable();\r\n } else {\r\n repairer.get('manager_name').enable();\r\n repairer.get('manager_whatsapp').enable();\r\n }\r\n }\r\n\r\n validate(): void\r\n {\r\n let controlBlur: Observable[] = this.formInputElements.map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n merge(...controlBlur).subscribe(() => { this.displayMessage = this.genericValidator.processarMensagens(this.repairersForm); });\r\n }\r\n\r\n get searchTerm(): string\r\n {\r\n return this._searchString;\r\n }\r\n\r\n set searchTerm(value: string)\r\n {\r\n this._searchString = value;\r\n this.buildRepairerList();\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n
\r\n
\r\n @if (repairerList?.controls?.length > 0) {\r\n
\r\n
\r\n
{{'support.manutencao.cadastro-gestor-whatsapp.tabela.cabecalho.oficina' | translate}}
\r\n
{{'support.manutencao.cadastro-gestor-whatsapp.tabela.cabecalho.ativo' | translate}}
\r\n
{{'support.manutencao.cadastro-gestor-whatsapp.tabela.cabecalho.gestor' | translate}}
\r\n
{{'support.manutencao.cadastro-gestor-whatsapp.tabela.cabecalho.whatsapp' | translate}}
\r\n
\r\n
\r\n \r\n @for (repairer of repairerList.controls; track repairer; let i = $index) {\r\n
\r\n
{{repairer.get('name_formated').value}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n @if (displayMessage.manager_name) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n \r\n @if (displayMessage.manager_whatsapp) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n \r\n  \r\n \r\n  \r\n
\r\n \r\n \r\n
\r\n
\r\n }\r\n
\r\n
\r\n } @else {\r\n
\r\n {{ 'support.manutencao.cadastro-gestor-whatsapp.tabela.vazio' | translate}}\r\n
\r\n }\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from \"app/_services/settings.service\";\r\nimport { Observable } from 'rxjs';\r\nimport { Update } from 'app/_models/update';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportCadastroNovidadesService extends BaseService {\r\n private _domain: string = '/support/new-features';\r\n\r\n constructor(private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public deleteUpdate(id: string): Observable {\r\n return this.config.executeDelete({ url: `${this._domain}/${id}` });\r\n }\r\n\r\n public getUpdatesList(): Observable {\r\n return this.config.executeGet({ url: `${this._domain}` });\r\n }\r\n\r\n public save(update: Update): Observable {\r\n return this.config.executePost({ url: `${this._domain}`, body: update });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { SupportCadastroNovidadesService } from './cadastro-novidades.service';\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { NewFeaturesGetRoles } from 'app/general/_models/new-features-model';\r\nimport { Update } from '../../_models/update';\r\nimport moment from 'moment';\r\n\r\ndeclare const compararStringContemString: any;\r\ndeclare const isEmpty: any;\r\n\r\n@Component({\r\n selector: 'app-cadastro-novidades', templateUrl: './cadastro-novidades.component.html', styleUrls: ['./cadastro-novidades.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportCadastroNovidadesComponent implements OnInit {\r\n public filter: string = '';\r\n updatesList: Update[];\r\n updatesListFiltered: Update[];\r\n createUpdate: boolean;\r\n selectedUpdate: Update;\r\n\r\n constructor(private supportCadastroNovidadesService: SupportCadastroNovidadesService, private ngxLoader: NgxUiLoaderService) {\r\n this.createUpdate = false;\r\n }\r\n\r\n ngOnInit() {\r\n this.loadUpdates()\r\n }\r\n\r\n closeUpdateCreation() {\r\n this.loadUpdates()\r\n this.createUpdate = false;\r\n }\r\n\r\n loadUpdates(): void {\r\n this.ngxLoader.startLoader('loader-principal')\r\n this.supportCadastroNovidadesService.getUpdatesList().subscribe({\r\n next: (response: ApiResponseModel) => {\r\n this.updatesList = this.updatesListFiltered = response.result.features;\r\n this.ngxLoader.stopLoader('loader-principal')\r\n }\r\n })\r\n }\r\n\r\n openUpdateCreation(selectedUpdate: Update) {\r\n this.selectedUpdate = selectedUpdate;\r\n this.createUpdate = true;\r\n }\r\n\r\n onSearch($event: string) {\r\n if (isEmpty(this.updatesList))\r\n return [];\r\n\r\n const term = $event.toLowerCase();\r\n\r\n this.updatesListFiltered = this.updatesList.filter(o =>\r\n compararStringContemString(o.title.toLowerCase(), term)\r\n || compararStringContemString(o.mudancas.toLowerCase(), term)\r\n || moment(o.release_date).format('DD/MM/YYYY').indexOf(term) >= 0\r\n );\r\n }\r\n\r\n get closeUpdateCreationFunc() {\r\n return this.closeUpdateCreation.bind(this);\r\n }\r\n\r\n get openUpdateCreationFunc() {\r\n return this.openUpdateCreation.bind(this);\r\n }\r\n}\r\n","
\r\n \r\n @if (!createUpdate) {\r\n \r\n }\r\n \r\n
\r\n
\r\n @if (!createUpdate) {\r\n \r\n } @else {\r\n \r\n }\r\n
\r\n
\r\n
\r\n\r\n\r\n","export enum SimplifiedRolesIdsEnum {\r\n Comprador = 1,\r\n DonoDaOficina = 2,\r\n Vendedor = 4,\r\n GestorDePecas = 16,\r\n Central = 32\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { Editor, Toolbar } from 'ngx-editor';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { Globals } from 'app/_models/globals';\r\nimport { removeHTMLTags } from 'app/_utils/general-utils';\r\nimport { SimplifiedRolesIdsEnum } from 'app/_models/simplifiedRoles';\r\nimport { Update } from 'app/_models/update';\r\n\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { SupportCadastroNovidadesService } from '../../cadastro-novidades.service';\r\n\r\ndeclare const $: any;\r\n\r\n@Component({\r\n selector: 'app-cadastro-novidades-create', templateUrl: './create.component.html', styleUrls: ['./create.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportCadastroNovidadesCreateComponent implements OnInit, OnDestroy {\r\n simplifiedRolesIdsEnum: typeof SimplifiedRolesIdsEnum = SimplifiedRolesIdsEnum;\r\n\r\n calendarMaxDate: { year: number, month: number, day: number };\r\n calendarMinDate: { year: number, month: number, day: number };\r\n datePicked: { year: number, month: number, day: number };\r\n\r\n bugsEditor: Editor;\r\n bugsHtml: string = '';\r\n featuresEditor: Editor;\r\n featuresHtml: string = '';\r\n isEditMode: boolean;\r\n\r\n rolesSelected = {\r\n central: false,\r\n comprador: false,\r\n vendedor: false,\r\n dono: false,\r\n gestor: false\r\n }\r\n\r\n toolbar: Toolbar = [\r\n [{ heading: ['h3', 'h4'] }],\r\n ['text_color', 'background_color'],\r\n ['bold', 'italic', 'underline', 'strike'],\r\n ['code', 'blockquote'],\r\n ['link', 'image'],\r\n ['align_left', 'align_center', 'align_right', 'align_justify'],\r\n ['ordered_list', 'bullet_list'],\r\n ];\r\n\r\n removeHTMLTags: any = removeHTMLTags;\r\n\r\n @Output() closeUpdateCreation = new EventEmitter();\r\n @Input() selectedUpdate?: Update;\r\n\r\n constructor(\r\n private supportCadastroNovidadesService: SupportCadastroNovidadesService,\r\n private notificationService: NotificationService,\r\n private globals: Globals,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n var date = new Date();\r\n\r\n this.datePicked = { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\r\n this.calendarMinDate = { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\r\n this.calendarMaxDate = { year: date.getFullYear(), month: date.getMonth() + 2, day: date.getDate() };\r\n }\r\n\r\n ngOnInit(): void {\r\n this.featuresEditor = new Editor();\r\n this.bugsEditor = new Editor();\r\n\r\n this.isEditMode = this.selectedUpdate != null;\r\n\r\n if (this.isEditMode) {\r\n this.selectedUpdate.release_date = new Date(this.selectedUpdate.release_date);\r\n this.datePicked = { year: this.selectedUpdate.release_date.getFullYear(), month: this.selectedUpdate.release_date.getMonth() + 1, day: this.selectedUpdate.release_date.getDate() }\r\n\r\n this.rolesSelected = {\r\n central: (this.selectedUpdate.role & SimplifiedRolesIdsEnum.Central) == SimplifiedRolesIdsEnum.Central,\r\n comprador: (this.selectedUpdate.role & SimplifiedRolesIdsEnum.Comprador) == SimplifiedRolesIdsEnum.Comprador,\r\n vendedor: (this.selectedUpdate.role & SimplifiedRolesIdsEnum.Vendedor) == SimplifiedRolesIdsEnum.Vendedor,\r\n dono: (this.selectedUpdate.role & SimplifiedRolesIdsEnum.DonoDaOficina) == SimplifiedRolesIdsEnum.DonoDaOficina,\r\n gestor: (this.selectedUpdate.role & SimplifiedRolesIdsEnum.GestorDePecas) == SimplifiedRolesIdsEnum.GestorDePecas\r\n };\r\n\r\n return;\r\n }\r\n\r\n this.selectedUpdate = {\r\n id: null,\r\n role: 0,\r\n bugs_info: '',\r\n features_info: '',\r\n title: '',\r\n release_date: new Date(this.datePicked.year, this.datePicked.month - 1, this.datePicked.day),\r\n is_active: true\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.featuresEditor.destroy();\r\n this.bugsEditor.destroy();\r\n }\r\n\r\n close() {\r\n this.closeUpdateCreation.emit();\r\n }\r\n\r\n saveUpdate() {\r\n this.selectedUpdate.release_date = new Date(this.datePicked.year, this.datePicked.month - 1, this.datePicked.day)\r\n this.notificationService.clearToastr();\r\n let hasErrors = false;\r\n\r\n if (this.selectedUpdate.release_date.toString() == 'Invalid Date') {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-novidades.criacao.mensagens.data-invalida.corpo'));\r\n hasErrors = true;\r\n }\r\n\r\n if (this.selectedUpdate.role == 0) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-novidades.criacao.mensagens.falta-publico.corpo'));\r\n hasErrors = true;\r\n }\r\n\r\n if (this.selectedUpdate.title == '') {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-novidades.criacao.mensagens.falta-titulo.corpo'));\r\n hasErrors = true;\r\n }\r\n\r\n if (this.removeHTMLTags(this.selectedUpdate.features_info) == '' && this.removeHTMLTags(this.selectedUpdate.bugs_info) == '') {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-novidades.criacao.mensagens.falta-conteudo.corpo'));\r\n hasErrors = true;\r\n }\r\n\r\n if (hasErrors)\r\n return;\r\n\r\n this.ngxLoader.startLoader('loader-principal')\r\n\r\n this.supportCadastroNovidadesService.save(this.selectedUpdate).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if(response.success)\r\n this.close();\r\n\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.cadastro-novidades.criacao.mensagens.sucesso.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal')\r\n },\r\n error: () => {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-novidades.criacao.mensagens.desconhecido.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n }\r\n })\r\n }\r\n\r\n selectPublic($event) {\r\n var input = $($event.target);\r\n\r\n if (input.is(\":checked\"))\r\n this.selectedUpdate.role += Number(input.val())\r\n else\r\n this.selectedUpdate.role -= Number(input.val())\r\n }\r\n}\r\n","
\r\n \r\n

{{ 'support.manutencao.cadastro-novidades.criacao.subtitulo' | translate}}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n @if (isEditMode) {\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n

{{ 'support.manutencao.cadastro-novidades.criacao.labels.titulo' | translate}}

\r\n \r\n
\r\n \r\n

{{ 'support.manutencao.cadastro-novidades.criacao.labels.features.titulo' | translate}}

\r\n
\r\n \r\n \r\n
\r\n\r\n

{{ 'support.manutencao.cadastro-novidades.criacao.labels.bug-fixes.titulo' | translate}}

\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { SupportCadastroNovidadesService } from '../../cadastro-novidades.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { SupportGridview, SupportGridviewTableBodyCell } from 'app/support/_models/supportGridview';\r\nimport { Update } from 'app/_models/update';\r\n\r\n@Component({\r\n selector: 'app-cadastro-novidades-list', templateUrl: './list.component.html', styleUrls: ['./list.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportCadastroNovidadesListComponent {\r\n public filter: string = '';\r\n\r\n @Output() editUpdate: EventEmitter = new EventEmitter();\r\n @Output() updatesListChange: EventEmitter = new EventEmitter();\r\n\r\n private _updatesList: Update[];\r\n @Input() get updatesList(){\r\n return this._updatesList;\r\n }\r\n\r\n set updatesList(updatesList: Update[]){\r\n this.updatesListChange.emit(updatesList);\r\n this._updatesList = updatesList;\r\n\r\n if (this._updatesList) {\r\n this._updatesList.forEach(u => u.mudancas =\r\n `${u.has_features ? this.translateService.instant('support.manutencao.cadastro-novidades.listagem.corpo.possui-features') : ''}\r\n ${u.has_features && u.has_bugs_fixes ? \" | \" : ''}\r\n ${u.has_bugs_fixes ? this.translateService.instant('support.manutencao.cadastro-novidades.listagem.corpo.possui-bug-fixes') : ''}`\r\n );\r\n }\r\n\r\n this.config.list = this._updatesList;\r\n }\r\n\r\n public config: SupportGridview = new SupportGridview();\r\n\r\n constructor(\r\n private supportCadastroNovidadesService: SupportCadastroNovidadesService,\r\n private ngxLoader: NgxUiLoaderService,\r\n private translateService: TranslateService\r\n ) {\r\n this.config.set({\r\n actions: {\r\n edit: { enable: true },\r\n remove: { confirmationText: 'support.manutencao.cadastro-novidades.listagem.confirm-remover', enable: true }\r\n },\r\n emptyText: { isHtml: false, value: 'support.manutencao.cadastro-novidades.listagem.vazio' },\r\n list: [],\r\n table: {\r\n body: [\r\n new SupportGridviewTableBodyCell('col-0-5', 'release_date', 'date'),\r\n new SupportGridviewTableBodyCell('col-2 truncate-gridview', 'title'),\r\n new SupportGridviewTableBodyCell('col-1-5', 'mudancas'),\r\n new SupportGridviewTableBodyCell('col-0-5 d-flex flex-wrap align-items-center justify-content-center', 'is_active', 'boolean')\r\n ],\r\n header: [\r\n { className: 'col-0-5', value: 'support.manutencao.cadastro-novidades.listagem.cabecalho.data' },\r\n { className: 'col-2', value: 'support.manutencao.cadastro-novidades.listagem.cabecalho.titulo' },\r\n { className: 'col-1-5', value: 'support.manutencao.cadastro-novidades.listagem.cabecalho.mudancas' },\r\n { className: 'col-0-5 text-center white-space-nowrap', value: 'support.manutencao.cadastro-novidades.listagem.cabecalho.publicado' },\r\n { className: 'col-0-5', value: 'support.manutencao.cadastro-cnpj.tabela.cabecalho.editar' }\r\n ]\r\n }\r\n });\r\n }\r\n\r\n onEdit(update: Update) {\r\n this.editUpdate.emit(update)\r\n }\r\n\r\n onRemove(novidade: any): void {\r\n this.ngxLoader.startLoader('loader-principal')\r\n this.supportCadastroNovidadesService.deleteUpdate(novidade.item.id).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response.success)\r\n this.updatesList = this.updatesList.filter(update => update.id !== novidade.item.id);\r\n\r\n this.ngxLoader.stopLoader('loader-principal')\r\n }\r\n })\r\n }\r\n}\r\n","","import { Injectable } from '@angular/core';\r\nimport { EMPTY, Observable } from 'rxjs';\r\nimport { AccountService } from 'app/account/account.service';\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from 'app/_services/settings.service';\r\n\r\ndeclare const isEmpty: any;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportContestacoesService extends BaseService {\r\n private _domain: string = '/support/contestacoes';\r\n\r\n constructor(private accountService: AccountService, private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public approve(contestacoes: any): Observable {\r\n const body = { contestacoes };\r\n return this.config.executePost({ url: `${this._domain}/approve`, body });\r\n }\r\n\r\n public getAll(): Observable {\r\n if (isEmpty(this.usuarioLocal)) {\r\n this.accountService.logout();\r\n return EMPTY;\r\n }\r\n\r\n return this.config.executeGet({ url: `${this._domain}` });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { SupportContestacoesService } from './contestacoes.service';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { Contestacao } from './_models/contestacao';\r\nimport { Globals } from 'app/_models/globals';\r\nimport { SupportContestacoesGetAllContestacoesResponseModel } from './_models/supportContestacoesGetAllContestacoesResponseModel';\r\n\r\ndeclare const $: any;\r\n\r\n@Component({\r\n selector: 'app-contestacoes', templateUrl: './contestacoes.component.html', styleUrls: ['./contestacoes.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportContestacoesComponent implements OnInit {\r\n contestacoes: Contestacao[];\r\n contestacoesSelecionadas: any;\r\n\r\n constructor(\r\n private notificationService: NotificationService,\r\n private contestacoesService: SupportContestacoesService,\r\n private globals: Globals,\r\n private ngxLoader: NgxUiLoaderService) { }\r\n\r\n ngOnInit(): void {\r\n this.contestacoes = [];\r\n this.contestacoesSelecionadas = [];\r\n\r\n this.carregarTela(0);\r\n }\r\n\r\n async aprovar() {\r\n if (!await this.notificationService.showConfirmationDialog('support.contestacoes.confirm'))\r\n return;\r\n\r\n this.aprovarExecutar(0);\r\n }\r\n\r\n aprovarExecutar(nAttempts: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n let contestacoesAprovadas = this.contestacoes.filter(c => this.contestacoesSelecionadas.some(cs => cs === c.id));\r\n\r\n if (contestacoesAprovadas.length <= 0)\r\n return;\r\n\r\n this.contestacoesService.approve(contestacoesAprovadas).subscribe({\r\n next: () => {\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.contestacoes.mensagens.sucesso.aprovar.corpo'));\r\n this.contestacoesSelecionadas = [];\r\n this.carregarTela(0);\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.contestacoes.mensagens.erro.aprovar.corpo'));\r\n return;\r\n }\r\n\r\n this.aprovarExecutar(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n carregarTela(nAttempts: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.contestacoesService.getAll().subscribe({\r\n next: (response: ApiResponseModel) => {\r\n this.contestacoes = response.result.contestacoes;\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.contestacoes.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.carregarTela(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n selecionar(contestacao, $event) {\r\n $event.stopPropagation();\r\n\r\n if ($($event.target).is(\":checked\"))\r\n this.contestacoesSelecionadas.push(contestacao.id);\r\n else\r\n this.contestacoesSelecionadas = this.contestacoesSelecionadas.filter(c => c != contestacao.id);\r\n }\r\n\r\n selecionarTodas($event) {\r\n $event.stopPropagation();\r\n\r\n let is_checked = $($event.target).is(\":checked\");\r\n\r\n this.contestacoes.forEach(contestacao => {\r\n if (is_checked)\r\n this.contestacoesSelecionadas.push(contestacao.id);\r\n else\r\n this.contestacoesSelecionadas = this.contestacoesSelecionadas.filter(c => c != contestacao.id);\r\n });\r\n\r\n $('.contestacao-item').prop(\"checked\", is_checked);\r\n }\r\n\r\n\r\n get algumaContestacaoSelecionada() : boolean {\r\n return this.contestacoesSelecionadas.length > 0;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n @if (contestacoes.length <= 0) {\r\n
\r\n \r\n
\r\n } @else { \r\n
\r\n
\r\n
#
\r\n
{{ 'support.contestacoes.cabecalho.fornecedor' | translate}}
\r\n
{{ 'support.contestacoes.cabecalho.oficina' | translate}}
\r\n
{{ 'support.contestacoes.cabecalho.veiculo' | translate}}
\r\n
{{ 'support.contestacoes.cabecalho.peca' | translate}}
\r\n
{{ 'support.contestacoes.cabecalho.reembolso' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n @for (contestacao of contestacoes; track contestacao) { \r\n
\r\n
\r\n
{{contestacao.fornecedor}}
\r\n
{{contestacao.oficina}}
\r\n
#{{contestacao.quotation_id}} - {{contestacao.veiculo}}
\r\n
{{contestacao.peca}}
\r\n
{{contestacao.reembolso | currency:'R$'}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n\r\n","export enum QuotationPageTypeEnum {\r\n Cotacoes = 1,\r\n Vendedores = 2\r\n}","import { Component, ElementRef, OnInit, TemplateRef, ViewChild, ViewChildren } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormControl, FormControlName, UntypedFormGroup, Validators } from '@angular/forms';\r\n\r\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\r\nimport { NgxBrazilMASKS, NgxBrazilValidators } from 'ngx-brazil';\r\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\r\n\r\nimport { capitalizeFirstLetter } from 'app/_utils/general-utils';\r\n\r\nimport { AccountService } from \"app/account/account.service\";\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { GeneralService } from 'app/_services/general.service';\r\nimport { NotificationService } from \"app/_services/notification.service\";\r\nimport { SupportCotacoesService } from \"./cotacoes.service\";\r\n\r\nimport { ApiResponseModel } from \"app/_models/apiResponseModel\";\r\nimport { DisplayMessage, GenericValidator, ValidationMessages } from 'app/_utils/generic-form-validation';\r\nimport { EnviarLinkRapido } from \"./_models/EnviarLinkRapido\";\r\nimport { Globals } from 'app/_models/globals';\r\nimport { HoldingCompanyUserPostModel, CarregarCotacoesResponseModel } from './_models/carregarCotacoesResponseModel';\r\nimport { SuporteCotacao, SuporteCotacaoPeca } from '../_models/suporteCotacao';\r\nimport { SendLinkResponseModel } from './_models/sendLinkResponseModel';\r\nimport { User } from 'app/_models/user';\r\nimport { WhatsAppMessage } from 'app/_models/whatsAppMessage';\r\nimport { QuotationPageTypeEnum } from \"./_models/quotationPageTypeEnum\";\r\nimport { FilterOption } from 'app/_componentes/header/_models/filterOption';\r\nimport { NgbAccordionDirective } from '@ng-bootstrap/ng-bootstrap';\r\n\r\ndeclare const $: any;\r\ndeclare const deepSetObj: any;\r\ndeclare const findInArray: any;\r\ndeclare const findInArrayIndex: any;\r\ndeclare const getOnlyNumbers: any;\r\ndeclare const isEmpty: any;\r\ndeclare const sort_by: any;\r\n\r\n@Component({\r\n selector: 'app-cotacoes-suporte', templateUrl: './cotacoes.component.html', styleUrls: ['./cotacoes.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportCotacoesComponent implements OnInit {\r\n @ViewChild(NgbAccordionDirective) accordion: NgbAccordionDirective;\r\n @ViewChild('templateAdicionarVendedorExterno', { static: true }) templateAdicionarVendedorExterno: TemplateRef;\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n\r\n capitalizeFirstLetter: any = capitalizeFirstLetter;\r\n _searchString: string;\r\n _role: number;\r\n\r\n cotacaoSelecionada: any;\r\n cotacoes: SuporteCotacao[];\r\n cotacoesFiltradas: any;\r\n modalRef: BsModalRef;\r\n loading: any;\r\n pecaSelecionada: SuporteCotacaoPeca;\r\n vendedorExternoPecasSelecionadas: number[] = [];\r\n vendedores: any;\r\n\r\n vendedorExternoForm: UntypedFormGroup;\r\n vendedorExternoListaCompanies: HoldingCompanyUserPostModel[];\r\n vendedorExternoListaHoldings: HoldingCompanyUserPostModel[];\r\n vendedorExternoListaVendedores: HoldingCompanyUserPostModel[];\r\n\r\n modal_visivel: { alterar_vendedores: boolean, editar_cotacao: boolean, editar_peca: boolean };\r\n\r\n displayMessage: DisplayMessage = {};\r\n errors: any[] = [];\r\n genericValidator: GenericValidator;\r\n validationMessages: ValidationMessages;\r\n\r\n usuarioLocal: User;\r\n\r\n public MASKS: any = NgxBrazilMASKS;\r\n\r\n filterOptions: FilterOption[] = [];\r\n\r\n constructor(\r\n private accountService: AccountService,\r\n private baseService: BaseService,\r\n private generalService: GeneralService,\r\n private notificationService: NotificationService,\r\n private globals: Globals,\r\n private service: SupportCotacoesService,\r\n private fb: UntypedFormBuilder,\r\n private modalService: BsModalService,\r\n private ngxLoader: NgxUiLoaderService) {\r\n this.cotacoes = [];\r\n this.modal_visivel = { alterar_vendedores: false, editar_cotacao: false, editar_peca: false };\r\n this.loading = { cotacoes: false, vendedores: false, vendedor_externo: false };\r\n this.vendedores = { aguardando: [], participando: [] };\r\n\r\n this.validationMessages = {\r\n cnpj: { required: this.globals.translate('support.cotacoes.vendedores.adicionar-vendedor-externo.campos-mensagens.cnpj.obrigatorio'), cnpj: this.globals.translate('support.cotacoes.vendedores.adicionar-vendedor-externo.campos-mensagens.cnpj.formato') },\r\n empresa: { required: this.globals.translate('support.cotacoes.vendedores.adicionar-vendedor-externo.campos-mensagens.empresa.obrigatorio') },\r\n vendedor: { required: this.globals.translate('support.cotacoes.vendedores.adicionar-vendedor-externo.campos-mensagens.vendedor.obrigatorio') },\r\n whatsapp: { required: this.globals.translate('support.cotacoes.vendedores.adicionar-vendedor-externo.campos-mensagens.whatsapp.obrigatorio'), telefone: this.globals.translate('support.cotacoes.vendedores.adicionar-vendedor-externo.campos-mensagens.whatsapp.formato') },\r\n\r\n holding: { required: this.globals.translate('support.cotacoes.vendedores.adicionar-vendedor-externo.campos-mensagens.holding.obrigatorio') },\r\n company: { required: this.globals.translate('support.cotacoes.vendedores.adicionar-vendedor-externo.campos-mensagens.company.obrigatorio') },\r\n usuario: { required: this.globals.translate('support.cotacoes.vendedores.adicionar-vendedor-externo.campos-mensagens.usuario.obrigatorio') }\r\n };\r\n\r\n this.vendedorExternoListaCompanies = [];\r\n this.vendedorExternoListaHoldings = [];\r\n this.vendedorExternoListaVendedores = [];\r\n\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n }\r\n\r\n ngOnInit() {\r\n this.usuarioLocal = this.baseService.usuarioLocal;\r\n\r\n if (isEmpty(this.usuarioLocal)) {\r\n this.accountService.logout();\r\n return;\r\n }\r\n\r\n this.role = 3;\r\n this.carregarCotacoes(0);\r\n\r\n this.vendedorExternoForm = this.fb.group({\r\n cnpj: ['', [Validators.required, NgxBrazilValidators.cnpj]],\r\n empresa: ['', Validators.required],\r\n vendedor: ['', Validators.required],\r\n\r\n holding: [null, Validators.required],\r\n company: [null, Validators.required],\r\n usuario: [null, Validators.required],\r\n\r\n whatsapp: ['', [Validators.required, NgxBrazilValidators.phoneNumber]],\r\n tipoNC: ['nc']\r\n });\r\n\r\n this.modal_adicionar_vendedor_externo_form_control('tipoNC').valueChanges.subscribe(valor => {\r\n this.vendedorExternoForm.patchValue({ cnpj: '', empresa: '', vendedor: '', whatsapp: '', holding: null, company: null, usuario: null });\r\n this.displayMessage = {};\r\n\r\n if (valor === 'nc') {\r\n this.modal_adicionar_vendedor_externo_form_control('cnpj').setValidators([Validators.required, NgxBrazilValidators.cnpj]);\r\n this.modal_adicionar_vendedor_externo_form_control('empresa').setValidators([Validators.required]);\r\n this.modal_adicionar_vendedor_externo_form_control('vendedor').setValidators([Validators.required]);\r\n\r\n this.modal_adicionar_vendedor_externo_form_control('holding').setValidators(null);\r\n this.modal_adicionar_vendedor_externo_form_control('company').setValidators(null);\r\n this.modal_adicionar_vendedor_externo_form_control('usuario').setValidators(null);\r\n }\r\n else {\r\n this.vendedorExternoForm.controls.company.disable();\r\n this.vendedorExternoForm.controls.usuario.disable();\r\n\r\n this.modal_adicionar_vendedor_externo_form_control('cnpj').setValidators(null);\r\n this.modal_adicionar_vendedor_externo_form_control('empresa').setValidators(null);\r\n this.modal_adicionar_vendedor_externo_form_control('vendedor').setValidators(null);\r\n\r\n this.modal_adicionar_vendedor_externo_form_control('holding').setValidators([Validators.required]);\r\n this.modal_adicionar_vendedor_externo_form_control('company').setValidators([Validators.required]);\r\n this.modal_adicionar_vendedor_externo_form_control('usuario').setValidators([Validators.required]);\r\n }\r\n\r\n this.modal_adicionar_vendedor_externo_form_control('cnpj').updateValueAndValidity();\r\n this.modal_adicionar_vendedor_externo_form_control('empresa').updateValueAndValidity();\r\n this.modal_adicionar_vendedor_externo_form_control('vendedor').updateValueAndValidity();\r\n\r\n this.modal_adicionar_vendedor_externo_form_control('holding').updateValueAndValidity();\r\n this.modal_adicionar_vendedor_externo_form_control('company').updateValueAndValidity();\r\n this.modal_adicionar_vendedor_externo_form_control('usuario').updateValueAndValidity();\r\n });\r\n\r\n this.vendedorExternoForm.patchValue({ tipoNC: 'nc' });\r\n\r\n this.filterOptions = [\r\n { value: '3', label: this.globals.translate('support.perfil.central') },\r\n { value: '2', label: this.globals.translate('support.perfil.v8') },\r\n { value: '1', label: this.globals.translate('support.perfil.popular') }\r\n ]\r\n }\r\n\r\n\r\n accordionChange(panelId: string) {\r\n var otherPanel = panelId === 'panelVendedores' ? 'panelCotacao' : 'panelVendedores';\r\n this.accordion.toggle(otherPanel);\r\n }\r\n\r\n async acao_excluir($event, quotation_id, nAttempts: number) {\r\n $event.stopPropagation();\r\n\r\n if (!await this.notificationService.showConfirmationDialog('support.cotacoes.mensagens.confirm.excluir'))\r\n return;\r\n\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.service.delete(quotation_id).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n\r\n if (response && response.success) {\r\n var index = this.cotacoes.findIndex((c: { quotation_id: any; }) => c.quotation_id === quotation_id);\r\n\r\n if (!isEmpty(index) && index >= 0) {\r\n this.removeItemFromList(index);\r\n }\r\n\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.cotacoes.mensagens.sucesso.excluir.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.cotacoes.mensagens.erro.excluir.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n return;\r\n }\r\n\r\n this.acao_excluir($event, quotation_id, ++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n async acao_marcar_concluido($event, tipo: QuotationPageTypeEnum, quotation_id: number, seller_company_id?: number) {\r\n $event.stopPropagation();\r\n\r\n if (seller_company_id === 0)\r\n return;\r\n\r\n let text = tipo === QuotationPageTypeEnum.Cotacoes ? 'support.cotacoes.colunas.marcar-completo.corpo' : 'support.cotacoes.vendedores.colunas.marcar-completo.corpo';\r\n\r\n if (!await this.notificationService.showConfirmationDialog(text))\r\n return;\r\n\r\n this.loading.cotacoes = (tipo === QuotationPageTypeEnum.Cotacoes);\r\n this.loading.vendedores = (tipo === QuotationPageTypeEnum.Vendedores);\r\n\r\n this.acao_marcar_concluido_interno(tipo, quotation_id, 0, seller_company_id);\r\n }\r\n\r\n private acao_marcar_concluido_interno(tipo: QuotationPageTypeEnum, quotationId: number, nAttempts: number, sellerCompanyId?: number) {\r\n this.service.setIsDone(tipo, quotationId, sellerCompanyId).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n if (tipo === QuotationPageTypeEnum.Cotacoes) {\r\n // Apaga a linha da cotação e insere outra\r\n var indice = findInArrayIndex(this.cotacoes, 'quotation_id', quotationId);\r\n\r\n if (indice >= 0) {\r\n this.removeItemFromList(indice);\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.cotacoes.mensagens.sucesso.marcar-concluido-cotacao.corpo'));\r\n }\r\n\r\n this.loading.cotacoes = false;\r\n } else {\r\n // Apaga a linha do vendedor\r\n var indice = findInArrayIndex(this.cotacaoSelecionada.vendedores, 'user_company_id', sellerCompanyId);\r\n\r\n if (indice >= 0) {\r\n this.cotacaoSelecionada.vendedores.splice(indice, 1);\r\n this.atualizarDadosCotacaoSelecionada();\r\n }\r\n\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.cotacoes.mensagens.sucesso.marcar-concluido-vendedor.corpo'));\r\n this.loading.vendedores = false;\r\n }\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.loading.cotacoes = false;\r\n this.loading.vendedores = false;\r\n this.notificationService.showErrorToastr(this.globals.translate('support.cotacoes.mensagens.erro.marcar-concluido.corpo'));\r\n return;\r\n }\r\n\r\n this.acao_marcar_concluido_interno(tipo, quotationId, ++nAttempts, sellerCompanyId);\r\n }\r\n });\r\n }\r\n\r\n atualizarCotacao($event = null, nAttempts: number = 0, callback = null) {\r\n if ($event != null && typeof $event.stopPropagation === 'function')\r\n $event.stopPropagation();\r\n\r\n this.loading.vendedores = true;\r\n\r\n const quotation_id = this.cotacaoSelecionada.quotation_id;\r\n\r\n this.service.get(quotation_id).subscribe({\r\n next: (response: ApiResponseModel<{ cotacao: SuporteCotacao }>) => {\r\n if (!isEmpty(response) && response.success) {\r\n this.cotacaoSelecionada = response.result.cotacao;\r\n this.atualizarDadosCotacaoSelecionada();\r\n\r\n const index = this.cotacoes.findIndex((c: { quotation_id: any; }) => c.quotation_id === quotation_id);\r\n\r\n if (index >= 0)\r\n deepSetObj(this.cotacoes[index], this.cotacaoSelecionada);\r\n\r\n if (typeof callback === 'function')\r\n callback();\r\n\r\n this.loading.vendedores = false;\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.loading.vendedores = false;\r\n this.notificationService.showErrorToastr(this.globals.translate('support.cotacoes.mensagens.erro.atualizar.corpo'));\r\n return;\r\n }\r\n\r\n this.atualizarCotacao($event, ++nAttempts, callback);\r\n }\r\n });\r\n }\r\n\r\n atualizarCotacoes() {\r\n this.cotacoesFiltradas = this.filtrarCotacoes();\r\n }\r\n\r\n atualizarDadosCotacaoSelecionada() {\r\n if (isEmpty(this.cotacaoSelecionada))\r\n return\r\n\r\n this.filtrarVendedores(this.cotacaoSelecionada.vendedores);\r\n }\r\n\r\n atualizarValidacao() {\r\n this.displayMessage = this.genericValidator.processarMensagens(this.vendedorExternoForm);\r\n }\r\n\r\n carregarCotacoes(nAttempts: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.service.getAllByRole(this.role).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (!isEmpty(response) && response.success) {\r\n this.cotacoes = response.result.cotacoes;\r\n\r\n this.atualizarCotacoes();\r\n this.trocarCotacaoSelecionada(0);\r\n\r\n this.vendedorExternoListaHoldings = response.result.holdings;\r\n this.vendedorExternoListaCompanies = response.result.companies;\r\n this.vendedorExternoListaVendedores = response.result.sellers;\r\n }\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.cotacoes.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.carregarCotacoes(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n filtrarCotacoes() {\r\n if (!this.searchTerm || !this.cotacoes)\r\n return this.cotacoes;\r\n\r\n let term: string = this.searchTerm.toLowerCase().replace('-', '');\r\n\r\n var result = this.cotacoes.filter(cotacao =>\r\n cotacao.quotation_id.toString().indexOf(term) !== -1 ||\r\n (!isEmpty(cotacao.veiculo) && cotacao.veiculo.replace('-', '').toLowerCase().indexOf(term) !== -1) ||\r\n cotacao.marca.toLowerCase().indexOf(term) !== -1 ||\r\n cotacao.comprador.empresa.toLowerCase().indexOf(term) !== -1\r\n );\r\n\r\n return result;\r\n }\r\n\r\n filtrarVendedores(vendedores) {\r\n vendedores.map(v => v.nao_quer_participar = (!isEmpty(v) && !isEmpty(v.razao_nao_participar) && v.razao_nao_participar.length > 0));\r\n\r\n this.vendedores.aguardando = vendedores.filter(v => !v.participando);\r\n this.vendedores.aguardando.sort(sort_by([{ name: 'has_cashback', reverse: true }, { name: 'is_billable', reverse: true }, { name: 'nome' }]));\r\n this.vendedores.participando = vendedores.filter(v => v.participando);\r\n this.vendedores.participando.sort(sort_by([{ name: 'nao_quer_participar' }, { name: 'has_cashback', reverse: true }, { name: 'is_billable', reverse: true }, { name: 'nome' }]));\r\n\r\n $('.sellers-scrollable .ng-scroll-viewport').scrollTop(0);\r\n }\r\n\r\n modal_adicionar_vendedor_externo_abrir($event) {\r\n $event.stopPropagation();\r\n\r\n let options: ModalOptions = { backdrop: 'static', class: 'gray modal-lg', keyboard: false };\r\n this.modalRef = this.modalService.show(this.templateAdicionarVendedorExterno, options);\r\n }\r\n\r\n async modal_adicionar_vendedor_externo_enviar_link(nAttempts: number, ignorarConfirm: boolean, $event) {\r\n $event.stopPropagation();\r\n\r\n let idsPecas = this.vendedorExternoPecasSelecionadas;\r\n let whatsapp = getOnlyNumbers(this.vendedorExternoForm.value.whatsapp);\r\n\r\n if (idsPecas.length <= 0) {\r\n this.errors.push(this.globals.translate('support.cotacoes.vendedores.adicionar-vendedor-externo.erro-cadastro.peca-faltante'));\r\n return;\r\n }\r\n\r\n // Caso o vendedor convidado já tiver sido convidado antes e já tenha respondido\r\n let vendedorJaConvidado = this.vendedores.participando.find(v => (this.vendedorExternoForm.value?.company?.id === null || v.user_company_id == this.vendedorExternoForm.value?.company?.id) &&\r\n getOnlyNumbers(v.fone2) === whatsapp);\r\n if (vendedorJaConvidado) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.cotacoes.vendedores.adicionar-vendedor-externo.erro-cadastro.vendedor-ja-respondeu.corpo'))\r\n return;\r\n }\r\n\r\n // Se o vendedor convidado já tiver sido convidado antes\r\n let vendedorNaoParticipando = this.vendedores.aguardando.find(v => (this.vendedorExternoForm.value.company === null || v.user_company_id == this.vendedorExternoForm.value.company.id) &&\r\n getOnlyNumbers(v.fone2) === whatsapp);\r\n\r\n if (!ignorarConfirm) {\r\n if (vendedorNaoParticipando) {\r\n if (!await this.notificationService.showConfirmationDialog('support.cotacoes.vendedores.adicionar-vendedor-externo.confirm-já-recebeu'))\r\n return;\r\n }\r\n else if (!await this.notificationService.showConfirmationDialog('geral.whatsapp.mensagens.confirm'))\r\n return;\r\n }\r\n\r\n this.errors = [];\r\n this.loading.vendedor_externo = true;\r\n\r\n let cnpj = this.vendedorExternoForm.value.tipoNC === 'nc' ? getOnlyNumbers(this.vendedorExternoForm.value.cnpj) : \"\";\r\n let vendedor = this.vendedorExternoForm.value.tipoNC === 'nc' ? capitalizeFirstLetter(this.vendedorExternoForm.value.vendedor) : \"\";\r\n let usuario = this.vendedorExternoForm.value.tipoNC === 'nc' ? { id: 0 } : this.vendedorExternoForm.value.usuario;\r\n let linkRapido: EnviarLinkRapido = {\r\n quotation_id: this.cotacaoSelecionada.quotation_id,\r\n cnpj: cnpj,\r\n empresa: this.vendedorExternoForm.value.empresa,\r\n vendedor: vendedor,\r\n whatsapp: whatsapp,\r\n seller_company_id: usuario.id,\r\n ids_pecas: idsPecas\r\n };\r\n\r\n this.service.sendLink(linkRapido).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (!isEmpty(response) && response.success) {\r\n let urlPartsfy = this.generalService.getPartsfyUrl();\r\n\r\n if (response.result.externalSeller) {\r\n let urlCotacao = urlPartsfy + '/pedido/' + response.result.token;\r\n let whatsappMessage: WhatsAppMessage = { is_from_support: true, urlPartsfy: urlPartsfy, urlCTA: urlCotacao, vendedor_nome: vendedor.replace(/ .*/, ''), vendedor_whatsapp: whatsapp };\r\n\r\n this.generalService.whatsapp_enviar_link_rapido_vendedor_externo(whatsappMessage, 0);\r\n } else {\r\n let urlCotacao = urlPartsfy + '/vendedor/visao-geral/responder/' + this.cotacaoSelecionada.quotation_id;\r\n let whatsappMessage: WhatsAppMessage = { is_from_support: true, urlPartsfy: urlPartsfy, urlCTA: urlCotacao, vendedor_nome: usuario.nome.replace(/ .*/, ''), vendedor_whatsapp: whatsapp };\r\n\r\n this.generalService.whatsapp_enviar_link_rapido_vendedor_interno(whatsappMessage, 0);\r\n }\r\n\r\n this.atualizarCotacao($event, 0, null);\r\n } else {\r\n this.notificationService.showWarning('support.cotacoes.mensagens.erro.envio-link-repetido.corpo');\r\n }\r\n\r\n this.loading.vendedor_externo = false;\r\n this.modal_adicionar_vendedor_externo_fechar();\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.loading.vendedor_externo = false;\r\n this.notificationService.showErrorToastr(this.globals.translate('support.cotacoes.mensagens.erro.envio-link.corpo'));\r\n return;\r\n }\r\n\r\n this.modal_adicionar_vendedor_externo_enviar_link(++nAttempts, true, $event);\r\n }\r\n });\r\n }\r\n\r\n modal_adicionar_vendedor_externo_fechar() {\r\n this.vendedorExternoForm.patchValue({ tipoNC: 'nc', cnpj: '', empresa: '', vendedor: '', whatsapp: '', holding: null, company: null, usuario: null });\r\n this.vendedorExternoPecasSelecionadas = [];\r\n this.modalRef.hide();\r\n }\r\n\r\n modal_adicionar_vendedor_externo_form_control(nome: string) {\r\n return this.vendedorExternoForm.get(nome) as UntypedFormControl;\r\n }\r\n\r\n modal_adicionar_vendedor_externo_selecionar(peca, $event) {\r\n if ($($event.target).is(\":checked\"))\r\n this.vendedorExternoPecasSelecionadas.push(peca.item_id);\r\n else\r\n this.vendedorExternoPecasSelecionadas = this.vendedorExternoPecasSelecionadas.filter(p => p != peca.item_id)\r\n\r\n if (this.vendedorExternoPecasSelecionadas.length === 0)\r\n $('.todas_pecas').prop(\"checked\", false);\r\n else if (this.vendedorExternoPecasSelecionadas.length === this.cotacaoSelecionada.pecas_todas.length)\r\n $('.todas_pecas').prop(\"checked\", true);\r\n }\r\n\r\n modal_adicionar_vendedor_externo_selecionar_todas_pecas($event) {\r\n let is_checked = $($event.target).is(\":checked\");\r\n\r\n this.cotacaoSelecionada.pecas_todas.forEach(peca => {\r\n this.modal_adicionar_vendedor_externo_selecionar(peca, $event);\r\n });\r\n\r\n $('.peca_notificacao').prop(\"checked\", is_checked);\r\n }\r\n\r\n modal_adicionar_vendedor_externo_selecionar_cadastrado_holding() {\r\n if (isEmpty(this.vendedorExternoForm.value.holding)) {\r\n this.vendedorExternoForm.patchValue({ company: '', usuario: '', whatsapp: '' });\r\n this.vendedorExternoForm.controls.company.disable();\r\n this.vendedorExternoForm.controls.usuario.disable();\r\n return;\r\n }\r\n\r\n this.vendedorExternoForm.controls.company.enable();\r\n\r\n if (this.modal_adicionar_vendedor_externo_companies.length === 1) {\r\n this.vendedorExternoForm.patchValue({ company: this.modal_adicionar_vendedor_externo_companies[0] });\r\n this.vendedorExternoForm.controls.usuario.enable();\r\n }\r\n }\r\n\r\n modal_adicionar_vendedor_externo_selecionar_cadastrado_company() {\r\n if (isEmpty(this.vendedorExternoForm.value.company)) {\r\n this.vendedorExternoForm.patchValue({ usuario: '', whatsapp: '' });\r\n this.vendedorExternoForm.controls.usuario.disable();\r\n return;\r\n }\r\n\r\n this.vendedorExternoForm.controls.usuario.enable();\r\n\r\n if (this.modal_adicionar_vendedor_externo_vendedores.length === 1)\r\n this.vendedorExternoForm.patchValue({ usuario: this.modal_adicionar_vendedor_externo_vendedores[0] });\r\n }\r\n\r\n modal_adicionar_vendedor_externo_selecionar_cadastrado_vendedor() {\r\n if (isEmpty(this.vendedorExternoForm.value.usuario))\r\n this.vendedorExternoForm.patchValue({ whatsapp: '' });\r\n else {\r\n let usuario = this.vendedorExternoForm.value.usuario;\r\n\r\n if (isEmpty(usuario))\r\n this.vendedorExternoForm.patchValue({ whatsapp: '' });\r\n else\r\n this.vendedorExternoForm.patchValue({ whatsapp: usuario.whatsapp });\r\n }\r\n }\r\n\r\n modal_alterar_vendedores_abrir($event) {\r\n $event.stopPropagation();\r\n this.modal_visivel.alterar_vendedores = true;\r\n }\r\n\r\n modal_alterar_vendedores_fechar($event) {\r\n this.modal_visivel.alterar_vendedores = false;\r\n\r\n if ($event.atualizar)\r\n this.atualizarCotacao($event, 0, null);\r\n }\r\n\r\n modal_editar_cotacao_abrir($event) {\r\n $event.stopPropagation();\r\n\r\n this.modal_visivel.editar_cotacao = true;\r\n }\r\n\r\n modal_editar_cotacao_fechar($event) {\r\n this.modal_visivel.editar_cotacao = false;\r\n\r\n setTimeout(() => {\r\n if ($event.atualizar) {\r\n let cotacao = this.cotacoes.find(c => c.quotation_id === this.cotacaoSelecionada.quotation_id);\r\n\r\n if (!isEmpty(cotacao)) {\r\n this.atualizarCotacao(this.cotacaoSelecionada.quotation_id, 0, () => { cotacao.veiculo = this.cotacaoSelecionada.veiculo; cotacao.marca = this.cotacaoSelecionada.marca; });\r\n }\r\n }\r\n }, 200);\r\n }\r\n\r\n modal_editar_peca_abrir($event, peca: SuporteCotacaoPeca) {\r\n $event.stopPropagation();\r\n\r\n this.pecaSelecionada = peca;\r\n this.modal_visivel.editar_peca = true;\r\n }\r\n\r\n modal_editar_peca_fechar($event) {\r\n this.modal_visivel.editar_peca = false;\r\n\r\n setTimeout(() => {\r\n if ($event.atualizar)\r\n this.atualizarCotacao()\r\n }, 200);\r\n }\r\n\r\n removeItemFromList(index: number) {\r\n if (this.cotacaoSelecionada.quotation_id === this.cotacoes[index].quotation_id) {\r\n const filterIsApplied = this.cotacoesFiltradas?.length > 0 && this.cotacoesFiltradas?.length < this.cotacoes.length;\r\n let nextIndex = this.cotacoes.length - 1 == index ? index - 1 : index + 1;\r\n\r\n if (filterIsApplied) {\r\n const quotationId = this.cotacoes[index].quotation_id;\r\n const indexBasedOnFilteredList = findInArrayIndex(this.cotacoesFiltradas, 'quotation_id', quotationId);\r\n\r\n nextIndex = this.cotacoesFiltradas.length - 1 == indexBasedOnFilteredList ? indexBasedOnFilteredList - 1 : indexBasedOnFilteredList + 1;\r\n this.trocarCotacaoSelecionada(nextIndex);\r\n\r\n this.cotacoesFiltradas.splice(indexBasedOnFilteredList, 1);\r\n this.cotacoes.splice(index, 1);\r\n return;\r\n }\r\n\r\n this.trocarCotacaoSelecionada(nextIndex);\r\n }\r\n\r\n this.cotacoes.splice(index, 1);\r\n }\r\n\r\n selecionarCotacao($event, quotation_id) {\r\n if (!isEmpty($event))\r\n $event.stopPropagation();\r\n\r\n var cotacao = findInArray(this.cotacoes, 'quotation_id', quotation_id);\r\n this.cotacaoSelecionada = cotacao;\r\n\r\n this.accordion.expand('panelVendedores');\r\n\r\n this.atualizarDadosCotacaoSelecionada();\r\n }\r\n\r\n trocarCotacaoSelecionada(indice: number) {\r\n this.cotacaoSelecionada = indice >= 0 && this.cotacoesFiltradas && this.cotacoesFiltradas.length > indice ? this.cotacoesFiltradas[indice] : undefined;\r\n\r\n if (!isEmpty(this.cotacaoSelecionada))\r\n this.selecionarCotacao(null, this.cotacaoSelecionada.quotation_id);\r\n else {\r\n this.vendedores = { aguardando: [], participando: [] };\r\n this.cotacaoSelecionada = undefined;\r\n }\r\n\r\n if(indice == 0)\r\n $('.quotations-scrollable .ng-scroll-viewport').scrollTop(0);\r\n $('.quotations-scrollable .ng-scroll-viewport').scrollTop(0);\r\n }\r\n\r\n whatsapp_enviar(vendedor) {\r\n //if (!confirm(this.globals.translate('geral.whatsapp.mensagens.confirm')))\r\n // return;\r\n let urlPartsfy = this.generalService.getPartsfyUrl();\r\n let urlCotacao = urlPartsfy + '/vendedor/visao-geral/responder/' + this.cotacaoSelecionada.quotation_id;\r\n let oficina = this.cotacaoSelecionada.comprador.empresa;\r\n let veiculo = this.cotacaoSelecionada.marca + ' - ' + this.cotacaoSelecionada.veiculo;\r\n let chassi = this.cotacaoSelecionada.chassi;\r\n let whatsapp = vendedor.fone2.replace(/\\D/g, '');\r\n let vendedor_email = vendedor.email;\r\n let vendedor_id = vendedor.seller_id;\r\n\r\n let whatsappMessage: WhatsAppMessage = { is_from_support: true, chassi: chassi, oficina: oficina, urlPartsfy: urlPartsfy, urlCTA: urlCotacao, veiculo: veiculo, vendedor_whatsapp: whatsapp, vendedor_email, vendedor_id };\r\n\r\n this.generalService.whatsapp_enviar_responder(whatsappMessage, this.cotacaoSelecionada.quotation_id);\r\n }\r\n\r\n get QuotationPageTypeEnum(): typeof QuotationPageTypeEnum {\r\n return QuotationPageTypeEnum;\r\n }\r\n\r\n get searchTerm(): string {\r\n return this._searchString;\r\n }\r\n\r\n set searchTerm(value: string) {\r\n this._searchString = value;\r\n this.atualizarCotacoes();\r\n }\r\n\r\n get role(): number {\r\n return this._role;\r\n }\r\n\r\n set role(value: number) {\r\n this._role = value;\r\n\r\n this.carregarCotacoes(0);\r\n }\r\n\r\n get modal_adicionar_vendedor_externo_companies() {\r\n if (this.modal_adicionar_vendedor_externo_holdings.length === 0 || isEmpty(this.vendedorExternoForm.value.holding))\r\n return [];\r\n\r\n return this.vendedorExternoListaCompanies.filter(c => c.parent_id == this.vendedorExternoForm.value.holding.id);\r\n }\r\n\r\n get modal_adicionar_vendedor_externo_holdings() {\r\n return this.vendedorExternoListaHoldings.filter(h => h.marcas.some(mid => mid === this.cotacaoSelecionada.brand_id) && !this.vendedores.aguardando.some(v => v.holding_id === h.id) && !this.vendedores.participando.some(v => v.holding_id === h.id));\r\n }\r\n\r\n get modal_adicionar_vendedor_externo_vendedores() {\r\n if (this.modal_adicionar_vendedor_externo_companies.length === 0 || isEmpty(this.vendedorExternoForm.value.company))\r\n return [];\r\n\r\n return this.vendedorExternoListaVendedores.filter(v => v.parent_id == this.vendedorExternoForm.value.company.id);\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n @if ((cotacoesFiltradas)?.length == 0) {\r\n
\r\n

{{'support.cotacoes.mensagens.nenhuma-cotacao-encontrada' | translate}}

\r\n
\r\n } @else {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n @for (cotacao of cotacoesFiltradas; track cotacao) {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n
{{'support.cotacoes.colunas.oficina' | translate}}{{'support.cotacoes.colunas.veiculo' | translate}} 
\r\n \r\n {{cotacao.comprador.empresa}}\r\n \r\n {{cotacao.veiculo}}{{cotacao.total_pecas_respondidas}} / {{cotacao.total_pecas}} ({{cotacao.total_pecas_bo}}){{cotacao.total_respostas}} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n @if (vendedores) {\r\n \r\n @if (vendedores?.aguardando?.length == 0) {\r\n
\r\n

{{'support.cotacoes.mensagens.nenhum-vendedor-encontrado' | translate}}

\r\n
\r\n } @else {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n @for (vendedor of vendedores.aguardando; track vendedor) {\r\n \r\n \r\n \r\n \r\n }\r\n \r\n
{{'support.cotacoes.vendedores.colunas.nome-empresa' | translate}}{{'support.cotacoes.vendedores.colunas.fone-email' | translate}}
\r\n @if (vendedor?.is_billable) {\r\n \r\n }\r\n @if (!vendedor.bloqueado && vendedor.fone2 && vendedor.user_company_id > 0) {\r\n \r\n }\r\n {{vendedor.nome}}\r\n
\r\n ({{vendedor.empresa}})\r\n
\r\n {{vendedor.fones}}\r\n {{vendedor.email}}\r\n
\r\n }\r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n @if (vendedores?.participando?.length == 0) {\r\n
\r\n

{{'support.cotacoes.mensagens.nenhum-vendedor-encontrado' | translate}}

\r\n
\r\n } @else {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n @for (vendedor of vendedores.participando; track vendedor) {\r\n \r\n \r\n \r\n }\r\n \r\n
{{'support.cotacoes.vendedores.colunas.nome-empresa' | translate}}
\r\n @if (vendedor?.is_billable) {\r\n \r\n }\r\n @if (vendedor?.nao_quer_participar) {\r\n \r\n }\r\n {{vendedor.nome}}\r\n
\r\n ({{vendedor.empresa}})\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n #{{cotacaoSelecionada?.quotation_id}}\r\n @if (cotacaoSelecionada?.tem_erp) {\r\n {{'support.cotacoes.dados-cotacao.tem-erp' | translate}}\r\n }\r\n \r\n
\r\n
\r\n \r\n {{cotacaoSelecionada?.creation_date | date:'dd/MM/yyyy HH:mm'}}\r\n
\r\n
\r\n \r\n {{cotacaoSelecionada?.status}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{cotacaoSelecionada?.comprador.empresa}}\r\n
\r\n
\r\n \r\n
{{cotacaoSelecionada?.comprador.fone1}}\r\n @if (cotacaoSelecionada?.comprador.fone2) {\r\n
\r\n {{cotacaoSelecionada?.comprador.fone2}}\r\n }\r\n
\r\n
\r\n
\r\n \r\n {{cotacaoSelecionada?.comprador.email}}\r\n\r\n @if (cotacaoSelecionada?.buyer_notes?.length > 0) {\r\n
\r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
    \r\n @for (peca of cotacaoSelecionada?.pecas_nao_encontradas; track peca) {\r\n
  • {{peca.codigo_nome}}
  • \r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
    \r\n @for (peca of cotacaoSelecionada?.pecas_encontradas; track peca) {\r\n
  • {{peca.codigo_nome}}\r\n @if (peca.is_bo) {\r\n {{'support.cotacoes.dados-cotacao.pecas.bo' | translate}}\r\n }\r\n
  • \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n\r\n
\r\n

{{'support.cotacoes.vendedores.adicionar-vendedor-externo.titulo' | translate}}

\r\n \r\n
\r\n
\r\n
\r\n {{'support.cotacoes.vendedores.adicionar-vendedor-externo.subtitulo' | translate}}: {{ cotacaoSelecionada?.veiculo }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n @if (errors?.length > 0) {\r\n
\r\n

{{'support.cotacoes.vendedores.adicionar-vendedor-externo.erro-cadastro.titulo' | translate}}

\r\n
    \r\n @for (error of errors; track error) {\r\n
  • {{ error }}
  • \r\n }\r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n
\r\n
{{'support.cotacoes.vendedores.adicionar-vendedor-externo.campos.interno-externo.nao-cadastrado' | translate: {system: ('geral.sistema' | translate)} }}
\r\n
{{ 'support.cotacoes.vendedores.adicionar-vendedor-externo.campos.interno-externo.cadastrado' | translate: {system: ('geral.sistema' | translate)} }}
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n @if (displayMessage.cnpj) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n @if (displayMessage.empresa) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n @if (displayMessage.vendedor) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n @if (displayMessage.whatsapp) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n @for (item of modal_adicionar_vendedor_externo_holdings; track item) {\r\n {{item.nome}}\r\n }\r\n \r\n @if (displayMessage.holding) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n @for (item of modal_adicionar_vendedor_externo_companies; track item) {\r\n {{item.nome}}\r\n }\r\n \r\n @if (displayMessage.company) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n @for (item of modal_adicionar_vendedor_externo_vendedores; track item) {\r\n {{item.nome}}\r\n }\r\n \r\n @if (displayMessage.usuario) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n @if (displayMessage.whatsapp) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n @for (peca of cotacaoSelecionada?.pecas_todas; track peca) {\r\n \r\n \r\n \r\n \r\n }\r\n \r\n
{{ 'support.cotacoes.vendedores.adicionar-vendedor-externo.campos.peca-nome' | translate}}\r\n
\r\n \r\n
\r\n
{{peca.nome}}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from 'app/_services/settings.service';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportDiarioService extends BaseService {\r\n private _domain: string = '/support/reports';\r\n\r\n constructor(private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public getDailyReport(role: number): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/${role}/daily` });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { SupportDiarioService } from './diario.service';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { Globals } from 'app/_models/globals';\r\nimport { RelatorioDiario } from '../_models/relatorioDiario';\r\nimport { SupportAdminGetCarregarDiarioResponseModel } from '../_models/supportAdminGetCarregarDiarioResponseModel';\r\nimport { FilterOption } from 'app/_componentes/header/_models/filterOption';\r\n\r\ndeclare const isEmpty: any;\r\ndeclare const sort_by: any;\r\n\r\n@Component({\r\n selector: 'app-diario', templateUrl: './diario.component.html', styleUrls: ['./diario.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportDiarioComponent implements OnInit {\r\n active: number;\r\n entradas: RelatorioDiario[];\r\n exclusoes: RelatorioDiario[];\r\n loading_ctr: number;\r\n loading: Subject = new Subject();\r\n orderByField: string;\r\n _perfil: number;\r\n reverseSort: boolean;\r\n\r\n filterOptions: FilterOption[] = [];\r\n\r\n get perfil(): number {\r\n return this._perfil;\r\n }\r\n\r\n set perfil(value: number) {\r\n this._perfil = value;\r\n this.carregarGeral(0);\r\n }\r\n\r\n constructor(\r\n private notificationService: NotificationService,\r\n private diarioService: SupportDiarioService,\r\n private globals: Globals,\r\n private ngxLoader: NgxUiLoaderService)\r\n { }\r\n\r\n ngOnInit(): void {\r\n this.active = 1;\r\n this.entradas = [];\r\n this.exclusoes = [];\r\n this.perfil = 3;\r\n this.carregarTela();\r\n\r\n this.filterOptions = [\r\n { value: '3', label: this.globals.translate('support.perfil.central') },\r\n { value: '2', label: this.globals.translate('support.perfil.v8') },\r\n { value: '1', label: this.globals.translate('support.perfil.popular') }\r\n ]\r\n }\r\n\r\n atualizar() {\r\n this.carregarTela();\r\n }\r\n\r\n carregarGeral(nAttempts: number) {\r\n this.diarioService.getDailyReport(this.perfil).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.entradas = response.result.relatorioDiario.entradas;\r\n this.exclusoes = response.result.relatorioDiario.exclusoes;\r\n this.ngxLoader.stopLoader('loader-principal');\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.diario.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.carregarGeral(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n carregarTela() {\r\n this.ngxLoader.startLoader('loader-principal');\r\n this.carregarGeral(0);\r\n }\r\n\r\n ordenar(coluna, direcao) {\r\n this.reverseSort = (this.orderByField === coluna) ? !this.reverseSort : direcao;\r\n this.orderByField = coluna;\r\n this.sortList();\r\n }\r\n\r\n sortList() {\r\n if (this.active == 1) {\r\n if (this.entradas === null || this.entradas === undefined)\r\n return;\r\n\r\n this.entradas.sort(sort_by([{ name: this.orderByField, reverse: this.reverseSort }]));\r\n }\r\n else if (this.active == 2) {\r\n if (this.exclusoes === null || this.exclusoes === undefined)\r\n return;\r\n\r\n this.exclusoes.sort(sort_by([{ name: this.orderByField, reverse: this.reverseSort }]));\r\n }\r\n\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
    \r\n
  • \r\n \r\n {{ 'support.diario.entradas.titulo' | translate}}\r\n @if (active === 1) {\r\n \r\n \r\n \r\n }\r\n \r\n \r\n @if (entradas?.length <= 0) {\r\n
    \r\n {{'support.diario.vazio.pedido' | translate}}\r\n
    \r\n } @else {\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{'support.diario.entradas.colunas.delivery_day' | translate}}\r\n @if (orderByField == 'delivery_day') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.entradas.colunas.quotation_id' | translate}}\r\n @if (orderByField == 'quotation_id') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.entradas.colunas.vehicle' | translate}}\r\n @if (orderByField == 'vehicle_infos') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.entradas.colunas.supplier_name' | translate}}\r\n @if (orderByField == 'supplier_name') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.entradas.colunas.seller_name' | translate}}\r\n @if (orderByField == 'seller_name') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.entradas.colunas.seller_phone_radio' | translate}}\r\n @if (orderByField == 'seller_phone_radio') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.entradas.colunas.repairer_name' | translate}}\r\n @if (orderByField == 'repairer_name') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.entradas.colunas.buyer_name' | translate}}\r\n @if (orderByField == 'buyer_name') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.entradas.colunas.buyer_phone_radio' | translate}}\r\n @if (orderByField == 'buyer_phone_radio') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n @for (item of entradas; track item) {\r\n
    \r\n
    {{item.delivery_day_formatada}}
    \r\n
    {{item.quotation_id}}
    \r\n
    {{item.vehicle_infos}}
    \r\n
    {{item.supplier_name}}
    \r\n
    {{item.seller_name}}
    \r\n
    {{item.seller_phone_radio}}
    \r\n
    {{item.repairer_name}}
    \r\n
    {{item.buyer_name}}
    \r\n
    {{item.buyer_phone_radio}}
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
  • \r\n
  • \r\n \r\n {{ 'support.diario.exclusoes.titulo' | translate}}\r\n @if (active === 2) {\r\n \r\n \r\n \r\n }\r\n \r\n \r\n @if (exclusoes?.length <= 0) {\r\n
    \r\n {{'support.diario.vazio.cotacao' | translate}}\r\n
    \r\n } @else {\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{'support.diario.exclusoes.colunas.creation_date' | translate}}\r\n @if (orderByField == 'creation_date') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.exclusoes.colunas.rejection_date' | translate}}\r\n @if (orderByField == 'rejection_date') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.exclusoes.colunas.reason' | translate}}\r\n @if (orderByField == 'reason') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.exclusoes.colunas.vehicle_infos' | translate}}\r\n @if (orderByField == 'vehicle_infos') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.exclusoes.colunas.repairer_name' | translate}}\r\n @if (orderByField == 'repairer_name') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.exclusoes.colunas.buyer_name' | translate}}\r\n @if (orderByField == 'buyer_name') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.exclusoes.colunas.buyer_phone_radio' | translate}}\r\n @if (orderByField == 'buyer_phone_radio') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.exclusoes.colunas.reason_notes' | translate}}\r\n @if (orderByField == 'reason_notes') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.diario.exclusoes.colunas.duration' | translate}}\r\n @if (orderByField == 'duration') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n @for (item of exclusoes; track item) {\r\n
    \r\n
    {{item.creation_date_formatada}}
    \r\n
    {{item.rejection_date_formatada}}
    \r\n
    {{item.reason}}
    \r\n
    {{item.vehicle_infos}}
    \r\n
    {{item.repairer_name}}
    \r\n
    {{item.buyer_name}}
    \r\n
    {{item.buyer_phone_radio}}
    \r\n
    {{item.reason_notes}}
    \r\n
    {{item.duration}}
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { SettingsService } from 'app/_services/settings.service';\r\nimport { Observable } from 'rxjs';\r\n\r\ndeclare const formatDateToYYYYMMDD: any;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportFaturamentoService {\r\n private _domain: string = '/support/faturamento';\r\n\r\n constructor(private config: SettingsService) { }\r\n\r\n public getCurrentSituation(): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/current-situation` });\r\n }\r\n\r\n public getAllLastLogs(groupId: string, creationDate: Date): Observable {\r\n let url = `${this._domain}/last-logs`;\r\n let parameters = [];\r\n\r\n if (groupId)\r\n parameters.push(`groupId=${groupId}`);\r\n\r\n if (creationDate)\r\n {\r\n const creationDateString = formatDateToYYYYMMDD(creationDate, '-');\r\n parameters.push(`creationDate=${creationDateString}`);\r\n }\r\n\r\n if (parameters.length > 0)\r\n url += `?${parameters.join('&')}`;\r\n\r\n return this.config.executeGet({ url });\r\n }\r\n\r\n public send(step: number): Observable {\r\n return this.config.executePost({ url: `${this._domain}/send/${step}` });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { SupportFaturamentoService } from './faturamento.service';\r\n\r\nimport { Globals } from 'app/_models/globals';\r\nimport { LogFaturamento, LogFaturamentoItem } from './_models/log';\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { SupportFaturamentosSendResponseModel } from './_models/supportFaturamentosSendResponseModel';\r\nimport { SupportFaturamentoGetAllLastLogsResponseModel } from './_models/supportFaturamentoGetAllLastLogsResponseModel';\r\nimport { SupportFaturamentosGetCurrentSituationResponseModel } from './_models/supportFaturamentosGetCurrentSituationResponseModel';\r\n\r\ndeclare const formatDateToDDMMYYYYHHMM: any;\r\ndeclare const isEmpty: any;\r\ndeclare const sort_by: any;\r\n\r\n@Component({\r\n selector: 'app-faturamento', templateUrl: './faturamento.component.html', styleUrls: ['./faturamento.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportFaturamentoComponent implements OnInit\r\n{\r\n dadosLog: LogFaturamento;\r\n loading: boolean;\r\n timeout_id: any;\r\n\r\n ultimoGroupId: string;\r\n\r\n constructor(\r\n private baseService: BaseService,\r\n private notificationService: NotificationService,\r\n private supportFaturamentoService: SupportFaturamentoService,\r\n private globals: Globals) {\r\n this.loading = false;\r\n this.timeout_id = 0;\r\n\r\n this.dadosLog = { enviando: false, lista: [] };\r\n }\r\n\r\n ngOnInit(): void {\r\n this.carregarTela(0);\r\n }\r\n\r\n cancelarTimeoutAtual() {\r\n let id = this.timeout_id;\r\n\r\n while (id--) {\r\n window.clearTimeout(id);\r\n }\r\n }\r\n\r\n carregarLogs(creation_date: Date, nAttempts: number) {\r\n if (isEmpty(this.baseService.usuarioLogado)) {\r\n this.cancelarTimeoutAtual();\r\n return;\r\n }\r\n\r\n this.supportFaturamentoService.getAllLastLogs(this.ultimoGroupId, creation_date).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n let temLog = response.result.logFaturamento.length > 0;\r\n\r\n if (temLog) {\r\n this.dadosLog.enviando = response.result.emAtividade;\r\n\r\n for (let i = 0; i <= response.result.logFaturamento.length - 1; i++) {\r\n let log = response.result.logFaturamento[i];\r\n let oldLogIndex = this.dadosLog.lista.findIndex(l => l.id === log.id);\r\n\r\n if (oldLogIndex < 0) {\r\n this.dadosLog.lista.push(log);\r\n\r\n if (log.tipo === 'envio-central')\r\n this.dadosLog.data_ultima_execucao_passo1 = log.creation_date_local_date;\r\n else if (log.tipo === 'envio-superlogica')\r\n this.dadosLog.data_ultima_execucao_passo2 = log.creation_date_local_date;\r\n else if (log.tipo === 'email-gestor')\r\n this.dadosLog.data_ultima_execucao_passo3 = log.creation_date_local_date;\r\n }\r\n else {\r\n this.dadosLog.lista[oldLogIndex] = Object.assign({}, log);\r\n }\r\n }\r\n\r\n this.ultimoGroupId = this.logsOrdenados[0].group_id;\r\n }\r\n\r\n this.loading = response.result.emAtividade;\r\n\r\n this.cancelarTimeoutAtual();\r\n\r\n this.timeout_id = setTimeout(() => {\r\n let dates = response.result.logFaturamento.map(l => new Date(l.creation_date));\r\n let creationDate = null;\r\n\r\n if (dates && dates.length > 0)\r\n creationDate = new Date(Math.max.apply(null, dates));\r\n\r\n this.carregarLogs(creationDate, 0);\r\n }, 5000);\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.faturamento.mensagens.erro.carregar-logs.corpo'));\r\n return;\r\n }\r\n\r\n this.carregarLogs(creation_date, ++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n carregarTela(nAttempts: number) {\r\n this.cancelarTimeoutAtual();\r\n this.loading = true;\r\n this.ultimoGroupId = null;\r\n\r\n // Verifica a situação atual\r\n this.supportFaturamentoService.getCurrentSituation().subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n let logs = this.ordernarLogs(response.result.logs);\r\n this.dadosLog.lista = logs;\r\n this.dadosLog.data_ultima_execucao_passo1 = null;\r\n this.dadosLog.data_ultima_execucao_passo2 = null;\r\n this.dadosLog.data_ultima_execucao_passo3 = null;\r\n\r\n if (response.result.temLog && logs.length > 0) {\r\n this.dadosLog.data_ultima_execucao_passo1 = response.result.dataUltimaExecucaoPasso1;\r\n this.dadosLog.data_ultima_execucao_passo2 = response.result.dataUltimaExecucaoPasso2;\r\n this.dadosLog.data_ultima_execucao_passo3 = response.result.dataUltimaExecucaoPasso3;\r\n\r\n this.ultimoGroupId = logs[0].group_id;\r\n }\r\n\r\n this.dadosLog.enviando = response.result.emAtividade;\r\n this.loading = response.result.emAtividade;\r\n\r\n this.timeout_id = setTimeout(() => { this.carregarLogs(null, 0); }, 5000);\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.faturamento.mensagens.erro.obter-situacao-inicial.corpo'));\r\n return;\r\n }\r\n\r\n this.carregarTela(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n async enviarPasso1(nAttempts: number, ignorarConfirm: boolean) {\r\n let ultimaData = this.ultima_data_passo_1;\r\n\r\n if (!ignorarConfirm && !await this.notificationService.showConfirmationDialog(this.globals.translate('support.faturamento.mensagens.confirm.passo-1') + ultimaData, null, false))\r\n return;\r\n\r\n this.loading = true;\r\n this.cancelarTimeoutAtual();\r\n\r\n this.supportFaturamentoService.send(1).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n let log = response.result.logFaturamento;\r\n this.dadosLog.lista = [];\r\n this.dadosLog.data_ultima_execucao_passo1 = new Date();\r\n\r\n this.ultimoGroupId = log.group_id;\r\n this.carregarLogs(log.creation_date_local_date, 0);\r\n\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.faturamento.mensagens.sucesso.passo-1.corpo'));\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.carregarTela(0);\r\n this.notificationService.showErrorToastr(this.globals.translate('support.faturamento.mensagens.erro.passo-1.corpo'));\r\n return;\r\n }\r\n\r\n this.enviarPasso1(++nAttempts, true);\r\n }\r\n });\r\n }\r\n\r\n async enviarPasso2(nAttempts: number, ignorarConfirm: boolean) {\r\n let ultimaData = this.ultima_data_passo_2;\r\n \r\n if (!ignorarConfirm && !await this.notificationService.showConfirmationDialog(this.globals.translate('support.faturamento.mensagens.confirm.passo-2') + ultimaData, null, false))\r\n return;\r\n\r\n this.loading = true;\r\n this.cancelarTimeoutAtual();\r\n\r\n this.supportFaturamentoService.send(2).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n let log = response.result.logFaturamento;\r\n this.dadosLog.lista = [];\r\n this.dadosLog.data_ultima_execucao_passo2 = new Date();\r\n\r\n this.ultimoGroupId = log.group_id;\r\n this.carregarLogs(log.creation_date_local_date, 0);\r\n\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.faturamento.mensagens.sucesso.passo-2.corpo'));\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.carregarTela(0);\r\n this.notificationService.showErrorToastr(this.globals.translate('support.faturamento.mensagens.erro.passo-2.corpo'));\r\n return;\r\n }\r\n\r\n this.enviarPasso2(++nAttempts, true);\r\n }\r\n });\r\n }\r\n\r\n async enviarPasso3(nAttempts: number, ignorarConfirm: boolean) {\r\n let ultimaData = this.ultima_data_passo_3;\r\n\r\n if (!ignorarConfirm && !await this.notificationService.showConfirmationDialog(this.globals.translate('support.faturamento.mensagens.confirm.passo-3') + ultimaData, null, false))\r\n return;\r\n\r\n this.loading = true;\r\n this.cancelarTimeoutAtual();\r\n\r\n this.supportFaturamentoService.send(3).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n let log = response.result.logFaturamento;\r\n this.dadosLog.lista = [];\r\n this.dadosLog.data_ultima_execucao_passo3 = new Date();\r\n this.ultimoGroupId = log.group_id;\r\n this.carregarLogs(log.creation_date_local_date, 0);\r\n\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.faturamento.mensagens.sucesso.passo-3.corpo'));\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.carregarTela(0);\r\n this.notificationService.showErrorToastr(this.globals.translate('support.faturamento.mensagens.erro.passo-3.corpo'));\r\n return;\r\n }\r\n\r\n this.enviarPasso3(++nAttempts, true);\r\n }\r\n });\r\n }\r\n\r\n obter_ultima_data_passo(passo: number): string {\r\n let data = isEmpty(this.dadosLog) ? null : (passo === 1 ? this.dadosLog.data_ultima_execucao_passo1 : (passo === 2 ? this.dadosLog.data_ultima_execucao_passo2 : this.dadosLog.data_ultima_execucao_passo3));\r\n return isEmpty(data) ? this.globals.translate('support.faturamento.passos.data-vazia') : formatDateToDDMMYYYYHHMM(new Date(data));\r\n }\r\n\r\n ordernarLogs(logs: LogFaturamentoItem[]): LogFaturamentoItem[] {\r\n if (isEmpty(logs))\r\n return [];\r\n\r\n return logs.sort(sort_by([{ name: 'creation_date_local_date', reverse: true }, { name: 'descricao' }]));\r\n }\r\n\r\n\r\n get logsOrdenados(): LogFaturamentoItem[] {\r\n if (isEmpty(this.dadosLog) || isEmpty(this.dadosLog.lista))\r\n return [];\r\n\r\n return this.ordernarLogs(this.dadosLog.lista);\r\n }\r\n\r\n get tem_erro(): boolean {\r\n if (isEmpty(this.dadosLog) || isEmpty(this.dadosLog.lista))\r\n return false;\r\n\r\n return this.dadosLog.lista.some(l => l.status === 'Erro');\r\n }\r\n\r\n get ultima_data_passo_1(): string {\r\n return this.obter_ultima_data_passo(1);\r\n }\r\n\r\n get ultima_data_passo_2(): string {\r\n return this.obter_ultima_data_passo(2);\r\n }\r\n\r\n get ultima_data_passo_3(): string {\r\n return this.obter_ultima_data_passo(3);\r\n }\r\n\r\n get ultimo_passo_executado(): string {\r\n if (isEmpty(this.dadosLog) || (isEmpty(this.dadosLog.data_ultima_execucao_passo1) && isEmpty(this.dadosLog.data_ultima_execucao_passo2) && isEmpty(this.dadosLog.data_ultima_execucao_passo3)))\r\n return this.globals.translate('support.faturamento.passos.data-vazia');\r\n\r\n if (this.dadosLog.data_ultima_execucao_passo1 > this.dadosLog.data_ultima_execucao_passo2 || isEmpty(this.dadosLog.data_ultima_execucao_passo2))\r\n return this.globals.translate('support.faturamento.passos.passo-1.titulo.nome');\r\n\r\n if (this.dadosLog.data_ultima_execucao_passo2 > this.dadosLog.data_ultima_execucao_passo3 || isEmpty(this.dadosLog.data_ultima_execucao_passo3))\r\n return this.globals.translate('support.faturamento.passos.passo-2.titulo.nome');\r\n\r\n return this.globals.translate('support.faturamento.passos.passo-3.titulo.nome');\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
{{ 'support.faturamento.passos.passo-1.titulo.passo' | translate}} - {{ 'support.faturamento.passos.passo-1.titulo.nome' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ 'support.faturamento.passos.ultima-execucao' | translate}} {{ ultima_data_passo_1 }}\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
{{ 'support.faturamento.passos.passo-2.titulo.passo' | translate}} - {{ 'support.faturamento.passos.passo-2.titulo.nome' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ 'support.faturamento.passos.ultima-execucao' | translate}} {{ ultima_data_passo_2 }}\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
{{ 'support.faturamento.passos.passo-3.titulo.passo' | translate}} - {{ 'support.faturamento.passos.passo-3.titulo.nome' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ 'support.faturamento.passos.ultima-execucao' | translate}} {{ ultima_data_passo_3 }}\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ 'support.faturamento.passos.log.titulo' | translate}}{{ultimo_passo_executado}}
\r\n
\r\n
\r\n @if (logsOrdenados.length === 0) {\r\n
{{ 'support.faturamento.passos.log.vazio' | translate}}
\r\n } @else {\r\n
\r\n
\r\n
{{ 'support.faturamento.passos.log.cabecalho.info' | translate}}
\r\n
{{ 'support.faturamento.passos.log.cabecalho.data' | translate}}
\r\n
{{ 'support.faturamento.passos.log.cabecalho.status' | translate}}
\r\n
\r\n \r\n @for (item of logsOrdenados; track item) {\r\n
\r\n
{{item.descricao}}
\r\n
{{item.creation_date_local_date | date:'dd/MM/yyyy HH:mm'}}
\r\n
{{item.status}}
\r\n
\r\n }\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { SettingsService } from 'app/_services/settings.service';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportGerenciarVendedoresService {\r\n private _domain: string = '/support/manage-sellers';\r\n\r\n constructor(private config: SettingsService) { }\r\n\r\n public getAllHoldings() {\r\n return this.config.executeGet({ url: `${this._domain}/holdings` });\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\n\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { Globals } from 'app/_models/globals';\r\nimport { Holding } from './_models/holding';\r\nimport { SupportManageSellersGetHoldingsResponseModel } from './_models/supportManageSellersGetHoldingsResponseModel';\r\n\r\nimport { SupportGerenciarVendedoresService } from './gerenciar-vendedores.service';\r\nimport { SupportGerenciarVendedoresInternoComponent } from '../_componentes/gerenciar-vendedores/gerenciar-vendedores-interno.component';\r\nimport { NotificationService } from 'app/_services/notification.service';\r\n\r\n@Component({\r\n selector: 'app-gerenciar-vendedores', templateUrl: './gerenciar-vendedores.component.html', styleUrls: ['./gerenciar-vendedores.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportGerenciarVendedoresComponent implements OnInit {\r\n @ViewChild(SupportGerenciarVendedoresInternoComponent) interno: SupportGerenciarVendedoresInternoComponent;\r\n\r\n holdingSelecionadaId: any;\r\n holdingSelecionada: any;\r\n holdings: Holding[];\r\n\r\n keyword = 'name';\r\n notFoundText = '';\r\n placeHolder = '';\r\n\r\n constructor(\r\n private notificationService: NotificationService,\r\n private supportGerenciarVendedoresService: SupportGerenciarVendedoresService,\r\n private globals: Globals,\r\n private ngxLoader: NgxUiLoaderService)\r\n { }\r\n\r\n ngOnInit(): void {\r\n this.holdingSelecionada = {};\r\n this.holdingSelecionadaId = '';\r\n this.holdings = [];\r\n\r\n this.carregarTela();\r\n this.notFoundText = this.globals.translate('support.gerenciar-vendedores.notFound');\r\n this.placeHolder = this.globals.translate('support.gerenciar-vendedores.selecione_fornecedor');\r\n }\r\n\r\n getAll(nAttempts: number) {\r\n this.supportGerenciarVendedoresService.getAllHoldings().subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.holdings = response.result.holdings;\r\n this.ngxLoader.stopLoader('loader-principal');\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.gerenciar-vendedores.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.getAll(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n carregarTela() {\r\n this.ngxLoader.startLoader('loader-principal');\r\n this.getAll(0);\r\n }\r\n\r\n exportarCSV() {\r\n this.interno.exportarCSV();\r\n }\r\n\r\n holdingsSelectEvent(item) {\r\n this.holdingSelecionada = item;\r\n this.holdingSelecionadaId = item.id;\r\n this.listarEmpresasAssociadas(0);\r\n }\r\n\r\n listarEmpresasAssociadas(holding_id: number) {\r\n let is_billable = this.holdingSelecionada.status_pagamento <= 2;\r\n this.interno.listarEmpresasAssociadas(holding_id, is_billable);\r\n }\r\n}\r\n","
\r\n \r\n @if (holdingSelecionadaId > 0) {\r\n
\r\n
\r\n @if (holdingSelecionada.status_pagamento === 1) {\r\n {{ 'support.gerenciar-vendedores.mensagens.holding_is_billable' | translate}}\r\n }\r\n @if (holdingSelecionada.status_pagamento === 2) {\r\n {{ 'support.gerenciar-vendedores.mensagens.holding_is_net_free' | translate}}\r\n }\r\n @if (holdingSelecionada.status_pagamento > 2) {\r\n {{ 'support.gerenciar-vendedores.mensagens.holding_is_not_billable' | translate}}\r\n }\r\n
\r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n \r\n
\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from \"app/_services/settings.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportLimparTelaVendedorService extends BaseService {\r\n private _domain: string = '/support/maintenances';\r\n\r\n constructor(private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public clearQuotationsFromSellersDashboard(seller_id: number): Observable {\r\n return this.config.executePost({ url: `${this._domain}/sellers/${seller_id}/clear-quotations` });\r\n }\r\n\r\n public getSellerClearPageData(seller_id: number): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/sellers/${seller_id}` });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { NotificationService } from '../../_services/notification.service';\r\nimport { SupportLimparTelaVendedorService } from './limpar-tela-vendedor.service';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { Globals } from '../../_models/globals';\r\nimport { SupportGridview, SupportGridviewTableBodyCell } from '../_models/supportGridview';\r\nimport { SupportMaintenanceGetCleanSellerScreenResponseModel } from './_models/supportMaintenanceGetCleanSellerScreenResponseModel';\r\n\r\n@Component({\r\n selector: 'app-limpar-tela-vendedor', templateUrl: './limpar-tela-vendedor.component.html', styleUrls: ['./limpar-tela-vendedor.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportLimparTelaVendedorComponent {\r\n public sellerId: number;\r\n\r\n public config: SupportGridview = new SupportGridview();\r\n\r\n constructor(\r\n private notificationService: NotificationService,\r\n private limparTelaVendedorService: SupportLimparTelaVendedorService,\r\n private globals: Globals,\r\n private ngxLoader: NgxUiLoaderService) {\r\n this.config.set({\r\n actions: {\r\n edit: { enable: false },\r\n remove: { confirmationText: 'support.manutencao.limpar-tela-vendedor.mensagens.confirm.limpar-tela', disabledCondition: (item) => item.totalCotacoes <= 0, enable: true, labelText: 'support.manutencao.limpar-tela-vendedor.botao-limpar', type: 'button' }\r\n },\r\n emptyText: { isHtml: false, value: 'support.manutencao.limpar-tela-vendedor.busque-vendedor' },\r\n list: [],\r\n table: {\r\n body: [\r\n new SupportGridviewTableBodyCell('col text-center', 'sellerId'),\r\n new SupportGridviewTableBodyCell('col-2 truncate-gridview', 'nome'),\r\n new SupportGridviewTableBodyCell('col-2 truncate-gridview', 'fornecedor'),\r\n new SupportGridviewTableBodyCell('col text-center', 'totalCotacoes')\r\n ],\r\n header: [\r\n { className: 'col text-center', value: 'support.manutencao.limpar-tela-vendedor.tabela.seller-id' },\r\n { className: 'col-2', value: 'support.manutencao.limpar-tela-vendedor.tabela.nome' },\r\n { className: 'col-2', value: 'support.manutencao.limpar-tela-vendedor.tabela.fornecedor' },\r\n { className: 'col text-center', value: 'support.manutencao.limpar-tela-vendedor.tabela.total-cotacoes' },\r\n { className: 'col-0-5 text-center', value: '' }\r\n ]\r\n }\r\n });\r\n }\r\n\r\n private cleanPage(nAttempts: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.limparTelaVendedorService.clearQuotationsFromSellersDashboard(this.sellerId).subscribe({\r\n next: () => {\r\n this.getSeller(this.sellerId, 0);\r\n\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.limpar-tela-vendedor.mensagens.sucesso.limpar-tela.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: (error) => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.limpar-tela-vendedor.mensagens.erro.limpar-tela.corpo'));\r\n return;\r\n }\r\n\r\n this.cleanPage(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n getSeller(sellerId: any, nAttempts: number) {\r\n this.sellerId = sellerId;\r\n\r\n this.ngxLoader.startLoader('loader-principal');\r\n this.config.emptyText.value = 'support.manutencao.limpar-tela-vendedor.nenhum-vendedor-encontrado';\r\n\r\n this.limparTelaVendedorService.getSellerClearPageData(sellerId).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n this.config.list = [];\r\n\r\n if (response != null && response.success)\r\n this.config.list.push(response.result.seller);\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.limpar-tela-vendedor.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.getSeller(sellerId, ++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n onCleanPage($event: any) {\r\n console.log($event);\r\n\r\n this.cleanPage(0);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BaseService } from \"app/_services/base.service\";\r\nimport { SettingsService } from \"app/_services/settings.service\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportMultiloginService extends BaseService {\r\n private _domain: string = '/support/multilogin';\r\n\r\n constructor(private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public getCompaniesByHolding(holdingId: number): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/companies/${holdingId}` });\r\n }\r\n\r\n public getHoldingsByType(isBuyer: boolean): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/holdings?isBuyer=${isBuyer}` });\r\n }\r\n\r\n public getUsersByCompany(companyId: string): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/users/${companyId}` });\r\n }\r\n\r\n public getUsersByUserGroup(userGroupId: string): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/${userGroupId}` });\r\n }\r\n\r\n public removeUserGroup(userGroupId: string): Observable {\r\n return this.config.executeDelete({ url: `${this._domain}/${userGroupId}` });\r\n }\r\n\r\n public saveMultilogin(userGroupId: string, usersIds: number[]) {\r\n return this.config.executePost({ url: `${this._domain}`, body: { user_group_id: userGroupId, user_group_participants_ids: usersIds } });\r\n }\r\n}\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { Globals } from '../../_models/globals';\r\n\r\nimport { NotificationService } from '../../_services/notification.service';\r\nimport { SupportMultiloginService } from \"./multilogin.service\";\r\n\r\nimport { ApiResponseModel } from \"app/_models/apiResponseModel\";\r\nimport { HoldingModel } from \"./_models/holdingModel\";\r\nimport { MultiloginUserData } from \"./_models/multiloginUserModel\";\r\nimport { SupportGridview, SupportGridviewTableBodyCell } from \"../_models/supportGridview\";\r\nimport { SupportMultiLoginGetHoldingByIdResponseModel } from \"./_models/supportMultiLoginGetHoldingByIdResponseModel\";\r\nimport { SupportMultiLoginGetHoldingPerTypeResponseModel } from \"./_models/supportMultiLoginGetHoldingPerTypeResponseModel\";\r\nimport { SupportMultiLoginGetUsersPerCompanyResponseModel } from \"./_models/supportMultiLoginGetUsersPerCompanyResponseModel\";\r\nimport { SupportMultiLoginGetUsersPerGroupResponseModel } from \"./_models/supportMultiLoginGetUsersPerGroupResponseModel\";\r\nimport { UserModel } from \"./_models/userModel\";\r\n\r\ndeclare const $: any\r\ndeclare const sort_by: any\r\ndeclare const waitForElm: any\r\n\r\n@Component({\r\n selector: 'app-multilogin-suporte', templateUrl: './multilogin.component.html', styleUrls: ['./multilogin.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportMultiloginComponent implements OnInit {\r\n selectedType: any;\r\n\r\n selectedHolding: {id: number, name: string};\r\n selectedCompany: {id: number, name: string};\r\n selectedUser: {id: number, name: string, user_group_id: string};\r\n\r\n originalState = [];\r\n\r\n companiesList = [];\r\n holdingsList: HoldingModel[] = [];\r\n loading: boolean = false;\r\n usersList: UserModel[] = [];\r\n isUserSelected = false;\r\n isUserWithMultiloginSelected = false;\r\n\r\n private _multiloginList: MultiloginUserData[] = [];\r\n\r\n get multiloginList(): MultiloginUserData[] {\r\n return this._multiloginList;\r\n }\r\n set multiloginList(value: MultiloginUserData[]) {\r\n this._multiloginList = value;\r\n this.afterChangeMultiloginList();\r\n }\r\n\r\n isSaveButtonDisabled = true;\r\n\r\n public config: SupportGridview = new SupportGridview();\r\n\r\n constructor(\r\n private multiloginService: SupportMultiloginService,\r\n private notificationService: NotificationService,\r\n private ngxLoader: NgxUiLoaderService,\r\n private globals: Globals) {\r\n this.config.set({\r\n actions: {\r\n edit: { enable: false },\r\n remove: { confirmationText: 'support.multilogin.confirmacao.remover', enable: true }\r\n },\r\n emptyText: { isHtml: true, value: 'support.multilogin.aviso.nenhum-selecionado' },\r\n list: [],\r\n table: {\r\n body: [\r\n new SupportGridviewTableBodyCell('col-2', 'holding'),\r\n new SupportGridviewTableBodyCell('col-2', 'company'),\r\n new SupportGridviewTableBodyCell('col-2', 'name')\r\n ],\r\n bodyClassName: 'multilogin',\r\n header: [\r\n { className: 'col-2', value: 'support.multilogin.labels.holding' },\r\n { className: 'col-2', value: 'support.multilogin.labels.empresa' },\r\n { className: 'col-2', value: 'support.multilogin.labels.usuario' },\r\n { className: 'col-0-75', value: '' }\r\n ]\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.handleDropdownConfiguration()\r\n }\r\n\r\n private addToMultiloginList(item: MultiloginUserData) {\r\n this._multiloginList.push(item);\r\n this.afterChangeMultiloginList();\r\n }\r\n\r\n private afterChangeMultiloginList() {\r\n this.orderSelectedList();\r\n\r\n this.config.list = this._multiloginList;\r\n\r\n this.showHideRemoveButton(this._multiloginList.length > 1);\r\n }\r\n\r\n public addUserToMultilogin() {\r\n if (this.selectedUser.user_group_id && !this.isUserWithMultiloginSelected) {\r\n this.ngxLoader.startLoader('loader-users-selected');\r\n\r\n this.multiloginService.getUsersByUserGroup(this.selectedUser.user_group_id).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n this.originalState = [];\r\n\r\n response.result.users.forEach((user) => {\r\n let userTemp: MultiloginUserData = {\r\n holding: user.holdingName,\r\n company: user.companyName,\r\n name: user.name,\r\n id: user.id,\r\n userGroupId: user.userGroupId\r\n };\r\n\r\n if (!this.multiloginList.some((u) => u.id === user.id))\r\n this.addToMultiloginList(userTemp);\r\n\r\n this.originalState.push(userTemp);\r\n });\r\n\r\n this.isUserWithMultiloginSelected = true;\r\n this.ngxLoader.stopLoader('loader-users-selected');\r\n\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n this.ngxLoader.stopLoader('loader-users-selected');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.multilogin.mensagem.erro.adicionar-usuario'));\r\n }\r\n });\r\n } else {\r\n this.addToMultiloginList({\r\n holding: this.selectedHolding.name,\r\n company: this.selectedCompany.name,\r\n name: this.selectedUser.name,\r\n id: this.selectedUser.id\r\n });\r\n }\r\n\r\n this.isSaveButtonDisabled = false;\r\n this.resetUsers(false);\r\n }\r\n\r\n public async cleanSelection() {\r\n if (this.isDifferent(this.multiloginList, this.originalState) && !await this.notificationService.showConfirmationDialog('support.multilogin.confirmacao.limpar'))\r\n return;\r\n\r\n this.resetScreen();\r\n }\r\n\r\n public async deleteMultilogin() {\r\n if (!await this.notificationService.showConfirmationDialog('support.multilogin.confirmacao.apagar'))\r\n return;\r\n\r\n this.ngxLoader.startLoader('loader-users-selected');\r\n\r\n const userGroupId = this.multiloginList.map((u) => u.userGroupId)[0];\r\n\r\n this.multiloginService.removeUserGroup(userGroupId).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response.result) {\r\n this.resetScreen()\r\n this.ngxLoader.stopLoader('loader-users-selected');\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.multilogin.mensagem.sucesso.apagar'));\r\n }\r\n },\r\n error: error => {\r\n console.log(error);\r\n this.ngxLoader.stopLoader('loader-users-selected');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.multilogin.mensagem.erro.apagar'));\r\n }\r\n });\r\n }\r\n\r\n private handleDropdownConfiguration() {\r\n const global = this;\r\n this.handleSingleDropdownConfiguration('.search-type', 'support.multilogin.labels.tipo', (value) => global.selectType(value))\r\n this.handleSingleDropdownConfiguration('.search-holding', 'support.multilogin.labels.holding', (value) => global.selectHolding(value))\r\n this.handleSingleDropdownConfiguration('.search-company', 'support.multilogin.labels.empresa', (value) => global.selectCompany(value))\r\n this.handleSingleDropdownConfiguration('.search-user', 'support.multilogin.labels.usuario', (value) => global.selectUser(value))\r\n }\r\n\r\n private handleSingleDropdownConfiguration(className: string, translateName: string, callback: any) {\r\n waitForElm(className).then(() => {\r\n $(className).select2({\r\n language: \"pt-BR\",\r\n placeholder: this.globals.translate(translateName)\r\n });\r\n\r\n $(className).off('select2:select');\r\n $(className).on('select2:select', function () { callback($(className).val()); });\r\n $(document).on('select2:open', () => { $('.select2-search__field').focus().select(); });\r\n });\r\n }\r\n\r\n private isDifferent(array1, array2) {\r\n return array1.length != array2.length || array1.filter((x) => !array2.includes(x)).length > 0;\r\n }\r\n\r\n public isDisabled(user) {\r\n return this.multiloginList.some((u) => u.id === user.id) || (this.isUserWithMultiloginSelected && user.user_group_id && !this.originalState.some((u) => u.id === user.id));\r\n }\r\n\r\n private orderSelectedList() {\r\n this._multiloginList.sort(sort_by([{ name: 'holding' }, { name: 'company' }, { name: 'name' }]));\r\n }\r\n\r\n public progressWillBeLost() {\r\n if (this.multiloginList.length === 0)\r\n return false;\r\n\r\n if (this.isDifferent(this.multiloginList, this.originalState))\r\n return true;\r\n }\r\n\r\n private resetCompanies() {\r\n this.companiesList = [];\r\n this.resetUsers();\r\n }\r\n\r\n public removeUserFromList($event: any) {\r\n const index = $event.index;\r\n this._multiloginList.splice(index, 1);\r\n this.isUserWithMultiloginSelected = this.multiloginList.some((u) => u.userGroupId);\r\n \r\n this.afterChangeMultiloginList();\r\n }\r\n\r\n private resetHoldings() {\r\n this.holdingsList = [];\r\n this.selectedHolding = { id: null, name: null };\r\n this.resetCompanies();\r\n }\r\n\r\n private resetScreen() {\r\n this.resetHoldings();\r\n $('.search-type').val(null).trigger('change');\r\n this.multiloginList = [];\r\n this.originalState = [];\r\n this.isSaveButtonDisabled = true;\r\n this.isUserWithMultiloginSelected = false;\r\n }\r\n\r\n private resetUsers(shouldResetUserList = true) {\r\n shouldResetUserList && (this.usersList = [])\r\n\r\n this.selectedUser = { id: null, name: null, user_group_id: null };\r\n $('.search-user').val(null).trigger('change');\r\n this.isUserSelected = false;\r\n }\r\n\r\n public saveMultilogin() {\r\n this.ngxLoader.startLoader('loader-users-selected');\r\n\r\n const userGroupId = this.multiloginList.filter(u => u.userGroupId)[0]?.userGroupId;\r\n const usersIds = this.multiloginList.map((user) => user.id);\r\n\r\n this.multiloginService.saveMultilogin(userGroupId, usersIds).subscribe({\r\n next: () => {\r\n this.resetScreen()\r\n this.ngxLoader.stopLoader('loader-users-selected');\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.multilogin.mensagem.sucesso.salvar'));\r\n },\r\n error: (error) => {\r\n console.log(error)\r\n this.ngxLoader.stopLoader('loader-users-selected');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.multilogin.mensagem.erro.salvar'));\r\n }\r\n })\r\n }\r\n\r\n public selectType(type) {\r\n this.loading = true;\r\n\r\n this.selectedType = type;\r\n\r\n this.multiloginService.getHoldingsByType(type == \"oficina\").subscribe({\r\n next: (response: ApiResponseModel) => {\r\n this.resetHoldings();\r\n this.holdingsList = response.result.holdings;\r\n this.loading = false;\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n this.loading = false;\r\n this.notificationService.showErrorToastr(this.globals.translate('support.multilogin.mensagem.erro.buscar.holding'));\r\n }\r\n })\r\n }\r\n\r\n public selectHolding(holdingId) {\r\n this.loading = true;\r\n\r\n this.multiloginService.getCompaniesByHolding(holdingId).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n this.selectedHolding = this.holdingsList.find((holding) => holding.id == holdingId);\r\n this.resetCompanies();\r\n this.companiesList = response.result.companies;\r\n this.loading = false;\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n this.loading = false;\r\n this.notificationService.showErrorToastr(this.globals.translate('support.multilogin.mensagem.erro.buscar.empresa'));\r\n }\r\n });\r\n }\r\n\r\n public selectCompany(companyId) {\r\n this.loading = true;\r\n\r\n this.selectedCompany = this.companiesList.find((company) => company.id == companyId);\r\n\r\n this.multiloginService.getUsersByCompany(companyId).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n this.resetUsers();\r\n this.usersList = response.result.users;\r\n this.loading = false;\r\n },\r\n error: (error) => {\r\n console.log(error);\r\n this.loading = false;\r\n this.notificationService.showErrorToastr(this.globals.translate('support.multilogin.mensagem.erro.buscar.usuario'));\r\n }\r\n });\r\n }\r\n\r\n public selectUser(userId) {\r\n this.selectedUser = this.usersList.find((user) => user.id == userId);\r\n this.isUserSelected = true;\r\n }\r\n\r\n public showHideRemoveButton(show: boolean) {\r\n waitForElm('.gridview .remove').then(() => {\r\n if (show)\r\n $('.gridview .remove').show();\r\n else\r\n $('.gridview .remove').hide();\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from \"app/_services/settings.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportOficinaSemDocumentacaoService extends BaseService {\r\n private _domain: string = '/support/maintenances';\r\n\r\n constructor(private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public getHoldingsWithoutDocumentation(): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/holdings/without-documentation` });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { NotificationService } from '../../_services/notification.service';\r\nimport { SupportOficinaSemDocumentacaoService } from './oficina-sem-documentacao.service';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { Globals } from '../../_models/globals';\r\nimport { OficinaSemDocumentacao } from './_models/oficinaSemDocumentacao';\r\nimport { SupportGridview, SupportGridviewTableBodyCell } from '../_models/supportGridview';\r\nimport { SupportMaintenancesGetHoldingsWithoutDocumentationResponseModel } from './_models/supportMaintenancesGetHoldingsWithoutDocumentationResponseModel';\r\n\r\ndeclare const compararStringContemString: any;\r\ndeclare const getOnlyNumbers: any;\r\ndeclare const isEmpty: any;\r\n\r\n@Component({\r\n selector: 'app-oficina-sem-documentacao', templateUrl: './oficina-sem-documentacao.component.html', styleUrls: ['./oficina-sem-documentacao.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportOficinaSemDocumentacaoComponent implements OnInit {\r\n public oficinas: OficinaSemDocumentacao[] = [];\r\n public filter: string = '';\r\n\r\n public config: SupportGridview = new SupportGridview();\r\n\r\n constructor(private notificationService: NotificationService,\r\n private oficinaSemDocumentacaoService: SupportOficinaSemDocumentacaoService,\r\n private globals: Globals,\r\n private ngxLoader: NgxUiLoaderService) {\r\n this.config.set({\r\n actions: {\r\n edit: { enable: false },\r\n remove: { enable: false }\r\n },\r\n emptyText: { isHtml: false, value: 'support.manutencao.oficina-sem-documentacao.vazio' },\r\n list: [],\r\n table: {\r\n body: [\r\n new SupportGridviewTableBodyCell('col text-center', 'holding_id'),\r\n new SupportGridviewTableBodyCell('col text-center', 'company_id'),\r\n new SupportGridviewTableBodyCell('col-2 truncate-gridview', 'oficina'),\r\n new SupportGridviewTableBodyCell('col text-center', 'cnpj')\r\n ],\r\n header: [\r\n { className: 'col text-center', value: 'support.manutencao.oficina-sem-documentacao.tabela.holding-id' },\r\n { className: 'col text-center', value: 'support.manutencao.oficina-sem-documentacao.tabela.oficina-id' },\r\n { className: 'col-2', value: 'support.manutencao.oficina-sem-documentacao.tabela.oficina' },\r\n { className: 'col text-center', value: 'support.manutencao.oficina-sem-documentacao.tabela.cnpj' }\r\n ]\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getAll(0);\r\n }\r\n\r\n getAll(nAttempts: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.oficinaSemDocumentacaoService.getHoldingsWithoutDocumentation().subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.oficinas = response.result.oficinasSemDocumentacao;\r\n this.filtrarOficinas('');\r\n }\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.oficina-sem-documentacao.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.getAll(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n filtrarOficinas($event: any): void {\r\n if (isEmpty(this.oficinas))\r\n this.config.list = [];\r\n\r\n var term = $event.toLowerCase();\r\n\r\n const filtered = this.oficinas.filter(o =>\r\n compararStringContemString(o.oficina.toLowerCase(), term) ||\r\n compararStringContemString(getOnlyNumbers(o.cnpj), getOnlyNumbers(term), true) ||\r\n o.holding_id.toString().indexOf(term) >= 0 || o.company_id.toString().indexOf(term) >= 0);\r\n\r\n this.config.list = filtered;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from 'app/_services/settings.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportPedidosService extends BaseService {\r\n private _domain: string = '/support/reports';\r\n\r\n constructor(private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public getOrdersReport(role: number): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/${role}/orders` });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { GeneralService } from 'app/_services/general.service';\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { SupportPedidosService } from './pedidos.service';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { Globals } from 'app/_models/globals';\r\nimport { SupportAdminGetCarregarPedidosResponseModel } from './_models/supportAdminGetCarregarPedidosResponseModel';\r\nimport { WhatsAppMessage } from 'app/_models/whatsAppMessage';\r\nimport { FilterOption } from 'app/_componentes/header/_models/filterOption';\r\n\r\ndeclare const isEmpty: any;\r\ndeclare const sort_by: any;\r\n\r\n@Component({\r\n selector: 'app-pedidos', templateUrl: './pedidos.component.html', styleUrls: ['./pedidos.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportPedidosComponent implements OnInit {\r\n active: number;\r\n atrasados: any;\r\n pendentes: any;\r\n _perfil: number;\r\n\r\n loading_ctr: number;\r\n loading: Subject = new Subject();\r\n\r\n orderByFieldAtrasado: string;\r\n orderByFieldPendente: string;\r\n reverseSortAtrasado: boolean;\r\n reverseSortPendente: boolean;\r\n\r\n filterOptions: FilterOption[] = [];\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private notificationService: NotificationService,\r\n private pedidosService: SupportPedidosService,\r\n private globals: Globals,\r\n private ngxLoader: NgxUiLoaderService) { }\r\n\r\n ngOnInit(): void {\r\n this.perfil = 3;\r\n this.active = 1;\r\n this.atrasados = [];\r\n this.pendentes = [];\r\n\r\n this.reverseSortAtrasado = true;\r\n this.reverseSortPendente = true;\r\n this.orderByFieldAtrasado = 'data_pedido';\r\n this.orderByFieldPendente = 'data_pedido';\r\n\r\n this.carregarTela();\r\n\r\n this.filterOptions = [\r\n { value: '3', label: this.globals.translate('support.perfil.central') },\r\n { value: '2', label: this.globals.translate('support.perfil.v8') },\r\n { value: '1', label: this.globals.translate('support.perfil.popular') }\r\n ]\r\n }\r\n\r\n get perfil(): number {\r\n return this._perfil;\r\n }\r\n\r\n set perfil(value: number) {\r\n this._perfil = value;\r\n this.carregarGeral(0);\r\n }\r\n\r\n atualizar() {\r\n this.carregarTela();\r\n }\r\n\r\n carregarGeral(nAttempts: number) {\r\n this.pedidosService.getOrdersReport(this.perfil).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.pendentes = response.result.pedidoSuporteResult.pendentes;\r\n this.atrasados = response.result.pedidoSuporteResult.atrasados;\r\n this.ngxLoader.stopLoader('loader-principal');\r\n }\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.pedidos.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.carregarGeral(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n carregarTela() {\r\n this.ngxLoader.startLoader('loader-principal');\r\n this.carregarGeral(0);\r\n }\r\n\r\n ordenar(coluna, direcao, pendente) {\r\n if (pendente) {\r\n this.reverseSortPendente = (this.orderByFieldPendente === coluna) ? !this.reverseSortPendente : direcao;\r\n this.orderByFieldPendente = coluna;\r\n this.sortList();\r\n }\r\n else {\r\n this.reverseSortAtrasado = (this.orderByFieldAtrasado === coluna) ? !this.reverseSortAtrasado : direcao;\r\n this.orderByFieldAtrasado = coluna;\r\n this.sortList();\r\n }\r\n }\r\n\r\n sortList() {\r\n if (this.active == 1) {\r\n if (this.pendentes === null || this.pendentes === undefined)\r\n return;\r\n\r\n this.pendentes.sort(sort_by([{ name: this.orderByFieldPendente, reverse: this.reverseSortPendente }]));\r\n } else if (this.active == 2) {\r\n if (this.atrasados === null || this.atrasados === undefined)\r\n return;\r\n\r\n this.atrasados.sort(sort_by([{ name: this.orderByFieldAtrasado, reverse: this.reverseSortAtrasado }]));\r\n }\r\n }\r\n\r\n whatsapp_enviar(pedido) {\r\n let urlPartsfy = this.generalService.getPartsfyUrl();\r\n let urlCotacao = urlPartsfy + '/vendedor/visao-geral/confirmar-pedido/' + pedido.quotation_id;\r\n let oficina = pedido.repairer_name;\r\n let veiculo = pedido.brand + ' - ' + pedido.veiculo;\r\n let whatsapp = pedido.seller_whatsapp;\r\n let vendedor_email = pedido.seller_email;\r\n let vendedor_id = pedido.seller_id;\r\n let status = pedido.status_id;\r\n\r\n let whatsapp_message: WhatsAppMessage = { is_from_support: true, chassi: '', oficina: oficina, urlPartsfy: urlPartsfy, urlCTA: urlCotacao, veiculo: veiculo, vendedor_whatsapp: whatsapp, vendedor_email, vendedor_id, min_status: status }\r\n\r\n this.generalService.whatsapp_enviar_aguardando_confirmacao(whatsapp_message, 0);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
    \r\n
  • \r\n \r\n {{ 'support.pedidos.pendentes.titulo' | translate}}\r\n @if (active === 1) {\r\n
    \r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n \r\n @if (pendentes?.length <= 0) {\r\n
    \r\n {{'support.pedidos.vazio' | translate}}\r\n
    \r\n } @else {\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{ 'support.pedidos.pendentes.colunas.pedido' | translate}}\r\n @if (orderByFieldPendente == 'quotation_id') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{ 'support.pedidos.pendentes.colunas.fase' | translate}}\r\n @if (orderByFieldPendente == 'status_id') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.pendentes.colunas.oficina' | translate}}\r\n @if (orderByFieldPendente == 'repairer_name') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.pendentes.colunas.veiculo' | translate}}\r\n @if (orderByFieldPendente == 'veiculo') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.pendentes.colunas.fornecedor' | translate}}\r\n @if (orderByFieldPendente == 'fornecedor') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.pendentes.colunas.vendedor' | translate}}\r\n @if (orderByFieldPendente == 'vendedor') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.pendentes.colunas.vendedor-fone' | translate}}\r\n @if (orderByFieldPendente == 'vendedor_fone_formatado') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.pendentes.colunas.data-compra' | translate}}\r\n @if (orderByFieldPendente == 'data_pedido') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n @for (item of pendentes; track item) {\r\n
    \r\n
    {{item.quotation_id}}
    \r\n
    \r\n {{('geral.fase-cotacao.abreviacao.' + item.status_id) | translate}}\r\n @if (item.motivo) {\r\n \r\n }\r\n
    \r\n
    {{item.repairer_name}} ({{item.comprador}})
    \r\n
    {{item.veiculo}}
    \r\n
    {{item.supplier_name}}
    \r\n
    {{item.vendedor}}
    \r\n
    \r\n @if (item.seller_whatsapp) {\r\n \r\n }\r\n {{item.vendedor_fone_formatado}}\r\n
    \r\n
    {{item.data_pedido | date:'dd/MM/yyyy HH:mm' }}
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
  • \r\n
  • \r\n \r\n {{ 'support.pedidos.atrasados.titulo' | translate}}\r\n @if (active === 2) {\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n \r\n @if (atrasados?.length <= 0) {\r\n
    \r\n {{'support.pedidos.vazio' | translate}}\r\n
    \r\n } @else {\r\n
    \r\n
    \r\n
    \r\n
    \r\n {{'support.pedidos.atrasados.colunas.pedido' | translate}}\r\n @if (orderByFieldAtrasado == 'quotation_id') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.atrasados.colunas.oficina' | translate}}\r\n @if (orderByFieldAtrasado == 'oficina') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.atrasados.colunas.comprador' | translate}}\r\n @if (orderByFieldAtrasado == 'comprador') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.atrasados.colunas.veiculo' | translate}}\r\n @if (orderByFieldAtrasado == 'veiculo') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.atrasados.colunas.fornecedor' | translate}}\r\n @if (orderByFieldAtrasado == 'fornecedor') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.atrasados.colunas.vendedor' | translate}}\r\n @if (orderByFieldAtrasado == 'vendedor') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.atrasados.colunas.vendedor-fone' | translate}}\r\n @if (orderByFieldAtrasado == 'fone_whats') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n {{'support.pedidos.atrasados.colunas.data-entrega' | translate}}\r\n @if (orderByFieldAtrasado == 'data_pedido') {\r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n @for (item of atrasados; track item) {\r\n
    \r\n
    {{item.quotation_id}}
    \r\n
    {{item.repairer_name}}
    \r\n
    {{item.comprador}}
    \r\n
    {{item.veiculo}}
    \r\n
    {{item.supplier_name}}
    \r\n
    {{item.vendedor}}
    \r\n
    {{item.vendedor_fone_formatado}}
    \r\n
    {{item.data_pedido | date:'dd/MM/yyyy HH:mm'}}
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\n\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from \"app/_services/settings.service\";\r\n\r\nimport { InternalUser } from \"./_models/internalUser\";\r\nimport { SuportGridviewSort } from \"../_models/supportGridview\";\r\nimport { environment } from '../../../environments/environment';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportUsuarioInternoService extends BaseService {\r\n private _apiSupportUrl: string = `${environment.apiSupport}`;\r\n private _domain: string = '/internal-users';\r\n\r\n private _sortDataSubject = new BehaviorSubject({ enabled: true, sortedBy: 'name', isReverse: false });\r\n public sortDataValue$ = this._sortDataSubject.asObservable();\r\n\r\n constructor(private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public create(user: InternalUser): Observable {\r\n return this.config.executePost({ baseUrl: this._apiSupportUrl, url: this._domain, body: user });\r\n }\r\n\r\n public delete(userId: number): Observable {\r\n return this.config.executeDelete({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${userId}` });\r\n }\r\n\r\n public getAllInternalUsers(): Observable {\r\n return this.config.executeGet({ baseUrl: this._apiSupportUrl, url: this._domain });\r\n }\r\n\r\n public getAllRepairers(): Observable {\r\n return this.config.executeGet({ baseUrl: this._apiSupportUrl, url: `${this._domain}/repairers` });\r\n }\r\n\r\n public getInactivesInternalUsers(): Observable {\r\n return this.config.executeGet({ baseUrl: this._apiSupportUrl, url: `${this._domain}/inactives` });\r\n }\r\n\r\n public getSortDataValue(): SuportGridviewSort {\r\n return this._sortDataSubject.value;\r\n }\r\n\r\n public resetSortDataValue(): void {\r\n this._sortDataSubject.next({ enabled: true, sortedBy: 'name', isReverse: false });\r\n }\r\n\r\n public setSortDataValue(value: SuportGridviewSort): void {\r\n this._sortDataSubject.next(value);\r\n }\r\n\r\n public reactivate(userId: number): Observable {\r\n return this.config.executePut({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${userId}/reactivate` });\r\n }\r\n\r\n public update(user: InternalUser): Observable {\r\n return this.config.executePut({ baseUrl: this._apiSupportUrl, url: this._domain, body: user });\r\n }\r\n\r\n public updateRepairers(userId: number, repairers: number[]): Observable {\r\n return this.config.executePut({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${userId}/repairers`, body: { buyerIds: repairers } });\r\n }\r\n}\r\n","export enum ValidationErrors {\r\n UsernameAlreadyExists = \"User.DuplicateUsername\"\r\n}\r\n","import { Component, AfterViewInit, ElementRef, EventEmitter, Input, OnInit, Output, ViewChildren, ViewChild } from '@angular/core';\r\nimport { UntypedFormBuilder, FormControlName, UntypedFormGroup, Validators } from '@angular/forms';\r\n;\r\nimport { NgxBrazilMASKS, NgxBrazilValidators } from 'ngx-brazil'\r\nimport { fromEvent, merge, Observable } from 'rxjs';\r\n\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { SupportUsuarioInternoService } from '../../usuario-interno.service';\r\n\r\nimport { DisplayMessage, GenericValidator, ValidationMessages } from 'app/_utils/generic-form-validation';\r\nimport { Globals } from 'app/_models/globals';\r\nimport { NgScrollbar } from 'ngx-scrollbar';\r\nimport { InternalUser } from '../../_models/internalUser';\r\nimport { RolesIdsEnum } from 'app/_models/roles';\r\nimport { Repairer } from '../../_models/repairer';\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { ValidationErrors } from '../../_models/validationErrors';\r\nimport { EMAIL_REGEX } from 'app/_utils/validators/regex.validators';\r\n\r\ndeclare const $: any;\r\ndeclare const capitalizeTheFirstLetterOfEachWord: any;\r\ndeclare const isEmpty: any;\r\ndeclare const getOnlyNumbers: any;\r\ndeclare const sort_by: any;\r\n\r\n@Component({\r\n selector: 'app-usuario-interno-edicao', templateUrl: './usuario-interno-edicao.component.html', styleUrls: ['./usuario-interno-edicao.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportUsuarioInternoEdicaoComponent implements OnInit, AfterViewInit {\r\n @Output() onAlterarTela = new EventEmitter();\r\n @Output() onBackToList = new EventEmitter();\r\n @Input() repairers: Repairer[];\r\n @Input() user: InternalUser;\r\n @Input() isEditProfile: boolean;\r\n @ViewChildren(FormControlName, { read: ElementRef }) formInputElements: ElementRef[];\r\n @ViewChild('scrollable') scrollable: NgScrollbar;\r\n\r\n cadastroForm: UntypedFormGroup;\r\n repairersFiltered: Repairer[];\r\n displayMessage: DisplayMessage = {};\r\n errors: any[] = [];\r\n genericValidator: GenericValidator;\r\n validationMessages: ValidationMessages;\r\n roles: typeof RolesIdsEnum = RolesIdsEnum;\r\n showPassword: boolean;\r\n showAssociations: boolean = false;\r\n isSaveButtonDisabled: boolean = false;\r\n public MASKS: any = NgxBrazilMASKS;\r\n private _searchString: string = '';\r\n\r\n constructor(\r\n private notificationService: NotificationService,\r\n private usuarioInternoService: SupportUsuarioInternoService,\r\n private globals: Globals,\r\n private fb: UntypedFormBuilder,\r\n private ngxLoader: NgxUiLoaderService) {\r\n this.validationMessages = {\r\n name: { required: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.nome.obrigatorio'), maxLength: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.nome.tamanho'), pattern: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.nome.somente-letras') },\r\n email: { required: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.email.obrigatorio'), pattern: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.email.formato-invalido'), maxLength: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.email.tamanho') },\r\n password: { required: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.senha.obrigatorio'), maxLength: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.senha.tamanho') },\r\n username: { required: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.login.obrigatorio'), maxLength: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.login.tamanho'), pattern: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.login.somente-letras') },\r\n whatsApp: { required: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.whatsapp.obrigatorio'), celular: this.globals.translate('support.manutencao.usuario.interno.edicao.campos.whatsapp.formato-invalido') }\r\n };\r\n\r\n this.genericValidator = new GenericValidator(this.validationMessages);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.showPassword = false;\r\n \r\n this.cadastroForm = this.fb.group({\r\n name: ['', [Validators.required, Validators.maxLength(50), Validators.pattern('^[a-zA-ZçÇáãéíóôÁÃÉÍÓÔ ]*$')]],\r\n email: ['', [Validators.required, Validators.pattern(EMAIL_REGEX), Validators.maxLength(50)]],\r\n password: ['', [Validators.required, Validators.maxLength(20)]],\r\n username: ['', [Validators.required, Validators.maxLength(20), Validators.pattern('^[a-zA-Z0-9._]*$')]],\r\n whatsApp: ['', [Validators.required, NgxBrazilValidators.cellphone]],\r\n role: ['', Validators.required],\r\n isActive: [''],\r\n });\r\n \r\n if (!isEmpty(this.user)) {\r\n this.cadastroForm.patchValue({\r\n id: this.user.userId,\r\n name: this.user.name,\r\n email: this.user.email,\r\n username: this.user.username,\r\n password: this.user.password,\r\n whatsApp: this.user.whatsApp,\r\n role: this.user.role,\r\n isActive: this.user.isActive\r\n });\r\n \r\n if (this.repairers !== undefined && this.repairers !== null) {\r\n this.repairers.forEach(repairer => {\r\n let index = this.user.buyerIds?.findIndex(x => x == repairer.buyerId);\r\n repairer.selected = index > -1;\r\n });\r\n\r\n this.repairersFiltered = this.repairers.map(r => ({ ...r }));\r\n }\r\n }\r\n \r\n this.showAssociations = this.isEditProfile && this.user.role == RolesIdsEnum.Central;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.validate();\r\n }\r\n\r\n action_updateUser(user: InternalUser) {\r\n this.onAlterarTela.emit(user);\r\n }\r\n \r\n back() {\r\n this.onBackToList.emit();\r\n }\r\n\r\n disableSaveButton() {\r\n if (!this.repairers.some(r => r.selected))\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n filterRepairers() {\r\n if (isEmpty(this.repairers)) return [];\r\n \r\n const term: string = this._searchString.toLowerCase();\r\n \r\n if (!isEmpty(term)) {\r\n this.repairersFiltered = this.repairers.filter(({ buyerName, repairerName }) =>\r\n buyerName.toLowerCase().includes(term) || repairerName.toLowerCase().includes(term)\r\n );\r\n } else {\r\n this.repairersFiltered = this.repairers;\r\n }\r\n\r\n this.updateSaveButtonState();\r\n }\r\n \r\n get searchTerm(): string {\r\n return this._searchString;\r\n }\r\n \r\n onInputChange(event: Event) {\r\n const inputElement = event.target as HTMLInputElement;\r\n this.searchTerm = inputElement.value;\r\n }\r\n \r\n save() {\r\n if (this.cadastroForm.valid) {\r\n let user: InternalUser = Object.assign({}, this.user, this.cadastroForm.value);\r\n \r\n if (isEmpty(user)) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.usuario.interno.edicao.mensagens.erro.salvar.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n return;\r\n }\r\n \r\n user.name = capitalizeTheFirstLetterOfEachWord(user.name);\r\n user.email = user.email.toLowerCase();\r\n user.username = user.username.toLowerCase();\r\n user.whatsApp = getOnlyNumbers(user.whatsApp);\r\n user.role = Number(user.role);\r\n \r\n this.ngxLoader.startLoader('loader-principal');\r\n \r\n if (this.isEditProfile) {\r\n let repairersToSave = this.repairers.filter(r => r.selected).map(r => r.buyerId);\r\n this.updateRepairers(user, repairersToSave);\r\n } else if (user.userId > 0) {\r\n this.updateInternalUser(user);\r\n } else {\r\n this.saveInternalUser(user);\r\n }\r\n }\r\n }\r\n \r\n saveInternalUser(user: InternalUser) {\r\n this.usuarioInternoService.create(user).subscribe({\r\n next: async (response: ApiResponseModel) => {\r\n user.userId = response.result.userId;\r\n user.version = response.result.version;\r\n user.roleDescription = response.result.roleDescription;\r\n user.isActive = true;\r\n \r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.usuario.interno.edicao.mensagens.sucesso.salvar.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.action_updateUser(user);\r\n },\r\n error: (errorResponse) => {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n\r\n if (errorResponse.status === 409 && errorResponse.errorCodes.includes(ValidationErrors.UsernameAlreadyExists)) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.usuario.interno.edicao.mensagens.erro.salvar-mesmo-login.titulo'));\r\n } else {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.usuario.interno.edicao.mensagens.erro.salvar.corpo'));\r\n }\r\n\r\n return;\r\n }\r\n });\r\n }\r\n \r\n scrollToPerfilCentral() {\r\n $('.corpo .ng-scroll-viewport').scrollTop(0);\r\n }\r\n \r\n selectRepairer(buyerId: number, $event: any) {\r\n let isChecked = $($event.target).is(\":checked\");\r\n\r\n this.repairers.find(x => x.buyerId == buyerId).selected = isChecked; \r\n this.cadastroForm.markAsDirty();\r\n this.updateSaveButtonState();\r\n }\r\n \r\n selectAllRepairers($event: any) {\r\n let isChecked = $($event.target).is(\":checked\");\r\n this.repairers.map(c => c.selected = isChecked);\r\n this.repairersFiltered.map(c => c.selected = isChecked);\r\n this.updateSaveButtonState();\r\n }\r\n \r\n set searchTerm(value: string) {\r\n this._searchString = value;\r\n this.filterRepairers();\r\n this.sortHoldings();\r\n }\r\n \r\n sortHoldings() {\r\n if (isEmpty(this.repairersFiltered)) return [];\r\n \r\n this.repairersFiltered.sort(sort_by([{ name: 'oficina' }, { name: \"name\" }]));\r\n }\r\n \r\n updateInternalUser(user: InternalUser) {\r\n this.usuarioInternoService.update(user).subscribe({\r\n next: async (response: ApiResponseModel) => {\r\n user.version = response.result.version;\r\n user.roleDescription = response.result.roleDescription;\r\n \r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.usuario.interno.edicao.mensagens.sucesso.salvar.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.action_updateUser(user);\r\n },\r\n error: () => {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.usuario.interno.edicao.mensagens.erro.salvar.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n return;\r\n }\r\n });\r\n }\r\n \r\n updateRepairers(user: InternalUser, repairers: number[]) {\r\n this.usuarioInternoService.updateRepairers(user.userId, repairers).subscribe({\r\n next: async (response: ApiResponseModel) => {\r\n user.buyerIds = repairers;\r\n user.version = response.result.version; \r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.usuario.interno.edicao.mensagens.sucesso.salvar.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.action_updateUser(user);\r\n },\r\n error: () => {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.usuario.interno.edicao.mensagens.erro.salvar.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n return;\r\n }\r\n });\r\n }\r\n\r\n updateSaveButtonState() {\r\n this.isSaveButtonDisabled = this.disableSaveButton();\r\n }\r\n \r\n validate(): void {\r\n let controlBlur: Observable[] = this.formInputElements.map((formControl: ElementRef) => fromEvent(formControl.nativeElement, 'blur'));\r\n merge(...controlBlur).subscribe(() => { this.displayMessage = this.genericValidator.processarMensagens(this.cadastroForm); });\r\n } \r\n}\r\n","
\r\n
\r\n
\r\n @if(!showAssociations) {\r\n
\r\n
\r\n
\r\n \r\n \r\n @if (displayMessage.name) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n @if (displayMessage.email) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n @if (displayMessage.username) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n @if (displayMessage.password) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n @if (displayMessage.whatsApp) {\r\n \r\n

\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n @if (user.userId > 0) {\r\n
\r\n
\r\n \r\n
\r\n
\r\n }\r\n }\r\n @else {\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
{{'support.manutencao.usuario.interno.edicao.perfil-central.compradores.cabecalho.oficina' | translate}}
\r\n
{{'support.manutencao.usuario.interno.edicao.perfil-central.compradores.cabecalho.comprador' | translate}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n @for (repairer of repairersFiltered; track repairer) {\r\n
\r\n
{{repairer.repairerName}}
\r\n
{{repairer.buyerName}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n @if (!repairersFiltered || repairersFiltered.length === 0) {\r\n
\r\n

{{'support.manutencao.usuario.interno.lista.mensagens.lista-oficinas-vazia' | translate}}

\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n \r\n  \r\n \r\n
\r\n
\r\n
\r\n
","import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, Output, TemplateRef, ViewChild } from '@angular/core';\r\n\r\nimport { InternalUser } from '../../_models/internalUser';\r\nimport { LocalStorageUtils } from 'app/_utils/localstorage';\r\nimport { RolesIdsEnum } from 'app/_models/roles';\r\nimport { SuportGridviewSort, SupportGridview, SupportGridviewTableBodyCell, SupportGridviewTemplateCell } from 'app/support/_models/supportGridview';\r\n\r\nimport { SupportGridviewComponent } from 'app/support/_componentes/gridview/gridview.component';\r\n\r\nimport { SupportUsuarioInternoService } from '../../usuario-interno.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-usuario-interno-lista', templateUrl: './usuario-interno-lista.component.html', styleUrls: ['./usuario-interno-lista.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportUsuarioInternoListaComponent implements AfterViewInit, OnDestroy {\r\n public config: SupportGridview = new SupportGridview();\r\n templatesArray: SupportGridviewTemplateCell[] = [];\r\n private _sortSubscription: Subscription;\r\n\r\n @ViewChild('buttonsTemplate') buttonsTemplate: TemplateRef;\r\n @ViewChild('gridViewComponent') gridViewComponent: SupportGridviewComponent;\r\n @Output() onEditUser = new EventEmitter();\r\n @Output() onEditProfile = new EventEmitter();\r\n @Output() onReactivateProfile = new EventEmitter();\r\n @Output() onRemoveProfile = new EventEmitter();\r\n private localStorage: LocalStorageUtils;\r\n private rolesCentral: number[];\r\n roles: typeof RolesIdsEnum = RolesIdsEnum;\r\n\r\n @Input() get users(): InternalUser[] {\r\n return this.config.list;\r\n }\r\n set users (value: InternalUser[]) {\r\n this.config.list = value;\r\n }\r\n\r\n constructor(private supportUsuarioInternoService: SupportUsuarioInternoService) {\r\n this.localStorage = new LocalStorageUtils();\r\n this.rolesCentral = this.localStorage.listarRolesCentral();\r\n\r\n this._sortSubscription = this.supportUsuarioInternoService.sortDataValue$.subscribe(value => this.config.sort = value);\r\n\r\n this.config.set({\r\n actions: { edit: { enable: false }, remove: { enable: false } },\r\n emptyText: { isHtml: false, value: 'support.manutencao.usuario.interno.lista.mensagens.lista-usuario-vazia' },\r\n list: [],\r\n sort: this.supportUsuarioInternoService.getSortDataValue(),\r\n table: {\r\n body: [\r\n new SupportGridviewTableBodyCell('col-0-5 text-center', 'userId'),\r\n new SupportGridviewTableBodyCell('col-2 truncate-gridview', 'name'),\r\n new SupportGridviewTableBodyCell('col', 'roleDescription'),\r\n new SupportGridviewTableBodyCell('col col-0-5 icons', '', 'html', null, 'buttonsTemplate')\r\n ],\r\n header: [\r\n { className: 'col-0-5 text-center', sortName: 'userId', value: 'support.manutencao.usuario.interno.lista.cabecalho.id' },\r\n { className: 'col-2', sortName: 'name', value: 'support.manutencao.usuario.interno.lista.cabecalho.nome' },\r\n { className: 'col', sortName: 'roleDescription', value: 'support.manutencao.usuario.interno.lista.cabecalho.perfil' },\r\n { className: 'col-0-5 text-center', value: 'support.manutencao.usuario.interno.lista.cabecalho.acao' }\r\n ]\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => { this.templatesArray = [ { name: 'buttonsTemplate', template: this.buttonsTemplate } ]; });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!this._sortSubscription?.closed)\r\n this._sortSubscription.unsubscribe();\r\n }\r\n\r\n onEdit(internalUser: InternalUser) {\r\n this.onEditUser.emit({ userId: internalUser.userId });\r\n }\r\n\r\n onEditUserProfile(internalUser: InternalUser) {\r\n this.onEditProfile.emit({ userId: internalUser.userId });\r\n }\r\n\r\n onReactivateUserProfile(internalUser: InternalUser) {\r\n this.onReactivateProfile.emit({ userId: internalUser.userId });\r\n }\r\n\r\n onRemoveUserProfile(internalUser: InternalUser) {\r\n this.onRemoveProfile.emit({ userId: internalUser.userId });\r\n }\r\n\r\n onSort(sortData: SuportGridviewSort) {\r\n this.supportUsuarioInternoService.setSortDataValue(sortData);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n\r\n \r\n @if (!user.isActive) {\r\n \r\n } @else {\r\n \r\n @if (user.role === roles.Central || user.role === roles.CentralSuporte) {\r\n \r\n } @else {\r\n
\r\n }\r\n \r\n }\r\n
\r\n
\r\n
\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { Globals } from 'app/_models/globals';\r\nimport { InternalUser } from './_models/internalUser';\r\n\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { SupportUsuarioInternoService } from './usuario-interno.service';\r\nimport { RolesIdsEnum } from 'app/_models/roles';\r\nimport { Repairer } from './_models/repairer';\r\n\r\ndeclare const isEmpty: any;\r\ndeclare const sort_by: any;\r\n\r\n@Component({\r\n selector: 'app-usuario-interno', templateUrl: './usuario-interno.component.html', styleUrls: ['./usuario-interno.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportUsuarioInternoComponent implements OnInit, OnDestroy {\r\n _searchString: string;\r\n filteredUsers: InternalUser[];\r\n internalUsers: InternalUser[];\r\n internalUsersInactives: InternalUser[];\r\n isEditProfile: boolean;\r\n isList: boolean;\r\n isReactivating: boolean;\r\n repairers: Repairer[];\r\n selectedUser: InternalUser;\r\n\r\n constructor(\r\n private notificationService: NotificationService,\r\n private usuarioInternoService: SupportUsuarioInternoService,\r\n private globals: Globals,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private ngxLoader: NgxUiLoaderService) { }\r\n\r\n ngOnInit(): void {\r\n let urlSegments = this.route.snapshot.url;\r\n let param_id = this.route.snapshot.params.id;\r\n let param_associations = urlSegments.some(segment => segment.path === 'associations');\r\n let param_new_user = urlSegments.some(segment => segment.path === 'new');\r\n let param_reactivating = urlSegments.some(segment => segment.path === 'reativar');\r\n this.repairers = [];\r\n this.isList = true;\r\n this.filteredUsers = [];\r\n this.selectedUser = {} as InternalUser;\r\n this.internalUsers = [];\r\n this.searchTerm = '';\r\n\r\n this.load(0, param_new_user, param_associations, param_reactivating, param_id);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.usuarioInternoService.resetSortDataValue();\r\n }\r\n\r\n action_backToList() {\r\n this.showUserList();\r\n history.pushState({}, '', '/suporte/manutencao/usuario/interno');\r\n }\r\n\r\n async action_editProfile(param) {\r\n this.selectInternalUser(param.userId);\r\n\r\n let isCentralSupport = this.selectedUser.role == RolesIdsEnum.CentralSuporte;\r\n\r\n if (!param.isAssociations && isCentralSupport) {\r\n let option = await this.notificationService.showConfirmationDialog('support.manutencao.usuario.interno.lista.mensagens.confirmacao-atualizacao-perfil');\r\n\r\n if (!option)\r\n return;\r\n }\r\n\r\n if (!isEmpty(this.selectedUser)) {\r\n if (isCentralSupport) {\r\n this.updateRepairersForCentralSuporte(this.selectedUser);\r\n this.router.navigate(['/suporte/manutencao/usuario/interno']);\r\n return;\r\n }\r\n\r\n this.isList = false;\r\n this.isEditProfile = true;\r\n history.pushState({}, '', '/suporte/manutencao/usuario/interno/associations/' + param.userId);\r\n } else {\r\n this.router.navigate(['/suporte/manutencao/usuario/interno']);\r\n }\r\n }\r\n\r\n async action_editUser(param) {\r\n this.selectInternalUser(param.userId);\r\n\r\n if (!isEmpty(this.selectedUser)) {\r\n this.isList = false;\r\n this.isEditProfile = false;\r\n history.pushState({}, '', '/suporte/manutencao/usuario/interno/' + param.userId);\r\n }\r\n else {\r\n this.router.navigate(['/suporte/manutencao/usuario/interno']);\r\n }\r\n }\r\n\r\n async action_reactiveProfile(param) {\r\n let option = await this.notificationService.showConfirmationDialog('support.manutencao.usuario.interno.lista.mensagens.confirmacao-reativar-perfil');\r\n\r\n if (!option)\r\n return;\r\n\r\n this.reactivateInternalUser(param.userId, 0);\r\n }\r\n\r\n async action_removeProfile(param) {\r\n let option = await this.notificationService.showConfirmationDialog('support.manutencao.usuario.interno.lista.mensagens.confirmacao-remover-perfil.title', 'support.manutencao.usuario.interno.lista.mensagens.confirmacao-remover-perfil.message');\r\n\r\n if (!option)\r\n return;\r\n\r\n this.removeInternalUser(param.userId, 0);\r\n }\r\n\r\n action_reactive(nAttempts: number = 0) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.usuarioInternoService.getInactivesInternalUsers().subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.isReactivating = true;\r\n this.internalUsersInactives = response.result;\r\n this.updateFilteredUsers();\r\n\r\n history.pushState({}, '', '/suporte/manutencao/usuario/interno/reativar');\r\n }\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.usuario.interno.lista.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.action_reactive(++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n action_new() {\r\n this.selectedUser = {} as InternalUser;\r\n this.isList = false;\r\n this.isEditProfile = false;\r\n history.pushState({}, '', '/suporte/manutencao/usuario/interno/new');\r\n }\r\n\r\n action_updateUser(user: InternalUser) {\r\n let index = this.internalUsers.findIndex(u => u.userId == user.userId);\r\n\r\n if (index === -1) {\r\n this.internalUsers.push(user);\r\n } else {\r\n this.internalUsers[index] = user;\r\n }\r\n\r\n this.updateFilteredUsers();\r\n this.showUserList();\r\n\r\n history.pushState({}, '', '/suporte/manutencao/usuario/interno');\r\n }\r\n\r\n backToList() {\r\n this.action_backToList();\r\n this.updateFilteredUsers();\r\n }\r\n\r\n filterUsers() {\r\n const usersToFilter = this.isReactivating ? this.internalUsersInactives : this.internalUsers\r\n\r\n if (isEmpty(usersToFilter))\r\n return usersToFilter;\r\n\r\n let term: string = this._searchString.toLowerCase();\r\n let result = usersToFilter.filter(user => user.name.toLowerCase().indexOf(term) !== -1 || user.roleDescription.toLowerCase().indexOf(term) !== -1);\r\n return result;\r\n }\r\n\r\n load(nAttempts: number, isNewUser:boolean, isAssociations: boolean, isReactivating: boolean, userId?: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n if (isReactivating)\r\n this.action_reactive();\r\n\r\n this.usuarioInternoService.getAllInternalUsers().subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.internalUsers = response.result;\r\n this.updateFilteredUsers();\r\n\r\n if (isNewUser) {\r\n this.action_new();\r\n } else if (userId > 0) {\r\n isAssociations ? this.action_editProfile({ userId, isAssociations }) : this.action_editUser({ userId });\r\n }\r\n }\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.usuario.interno.lista.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.load(++nAttempts, isNewUser, isAssociations, isReactivating, userId);\r\n }\r\n });\r\n\r\n this.usuarioInternoService.getAllRepairers().subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.repairers = response.result;\r\n }\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.usuario.interno.lista.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.load(++nAttempts, isNewUser, isAssociations, isReactivating, userId);\r\n }\r\n });\r\n }\r\n\r\n reactivateInternalUser(userId: number, nAttempts: number = 0) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.usuarioInternoService.reactivate(userId).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n let index = this.internalUsersInactives.findIndex(u => u.userId == userId);\r\n this.internalUsersInactives.splice(index, 1);\r\n\r\n this.internalUsers.push(response.result);\r\n\r\n if (this.internalUsersInactives.length == 0) {\r\n this.backToList()\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.usuario.interno.lista.mensagens.sucesso.reativar-ultimo.corpo'));\r\n }\r\n else {\r\n this.updateFilteredUsers();\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.usuario.interno.lista.mensagens.sucesso.reativar.corpo'));\r\n }\r\n }\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.usuario.interno.lista.mensagens.erro.reativar.corpo'));\r\n return;\r\n }\r\n\r\n this.reactivateInternalUser(userId, ++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n removeInternalUser(userId: number, nAttempts: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.usuarioInternoService.delete(userId).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n let index = this.internalUsers.findIndex(u => u.userId == userId);\r\n this.internalUsers.splice(index, 1);\r\n this.updateFilteredUsers();\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.usuario.interno.edicao.mensagens.sucesso.remover.corpo'));\r\n }\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.usuario.interno.lista.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.removeInternalUser(userId, ++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n selectInternalUser(userId: number) {\r\n this.selectedUser = this.internalUsers.find(u => u.userId == userId);\r\n\r\n if (isEmpty(this.selectedUser)) {\r\n this.selectedUser = {} as InternalUser;\r\n }\r\n }\r\n\r\n showUserList() {\r\n this.selectedUser = null;\r\n this.isList = true;\r\n this.isReactivating = false;\r\n this.isEditProfile = false;\r\n }\r\n\r\n updateFilteredUsers() {\r\n const sortData = this.usuarioInternoService.getSortDataValue();\r\n\r\n let filteredUsers = this.filterUsers().sort(sort_by([{ name: sortData.sortedBy, reverse: sortData.isReverse }]));\r\n this.filteredUsers = filteredUsers;\r\n }\r\n\r\n updateRepairersForCentralSuporte(user: InternalUser) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.usuarioInternoService.update(user).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n let index = this.internalUsers.findIndex(u => u.userId == response.result.userId);\r\n this.internalUsers[index] = response.result;\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.usuario.interno.lista.mensagens.associacoes-atualizada-sucesso'));\r\n },\r\n error: () => {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.usuario.interno.lista.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n });\r\n }\r\n\r\n get searchTerm(): string {\r\n return this._searchString;\r\n }\r\n\r\n set searchTerm(value: string) {\r\n this._searchString = value;\r\n this.updateFilteredUsers();\r\n }\r\n}\r\n","
\r\n 0) ? (' - ' + selectedUser.name) : '')\"\r\n [hasBackButton]=\"!isList || isReactivating\"\r\n [hasSearchButton]=\"false\"\r\n [searchInput]=\"searchTerm\"\r\n [searchPlaceholder]=\"isList && 'support.manutencao.usuario.interno.search-placeholder' | translate\"\r\n (onGoBack)=\"backToList()\"\r\n (onSearch)=\"searchTerm = $event\"\r\n >\r\n @if (isList && !isReactivating) {\r\n \r\n \r\n }\r\n \r\n\r\n @if (isList) {\r\n \r\n } @else {\r\n \r\n }\r\n
\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from \"app/_services/settings.service\";\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportVoltarCotacaoService extends BaseService {\r\n private _domain: string = '/support/maintenances';\r\n\r\n constructor(private config: SettingsService) {\r\n super();\r\n }\r\n\r\n public getQuotationsByLicensePlate(licensePlate: string): Observable {\r\n return this.config.executeGet({ url: `${this._domain}/quotations?licensePlate=${licensePlate}` });\r\n }\r\n\r\n public setQuotationBack(quotationId: number, excluida: boolean): Observable {\r\n return this.config.executePost({ url: `${this._domain}/quotations/${quotationId}?excluida=${excluida}`, body: {} });\r\n }\r\n}\r\n","import { AfterViewInit, Component, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { NotificationService } from '../../_services/notification.service';\r\nimport { SupportVoltarCotacaoService } from './voltar-cotacao.service';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { CotacaoVoltar } from './_models/cotacaoVoltar';\r\nimport { Globals } from '../../_models/globals';\r\nimport { SupportGridview, SupportGridviewTableBodyCell, SupportGridviewTemplateCell } from '../_models/supportGridview';\r\nimport { SupportMaintenanceGetListarVoltarCotacaoResponseModel } from './_models/supportMaintenanceGetListarVoltarCotacaoResponseModel';\r\n\r\n@Component({\r\n selector: 'app-voltar-cotacao', templateUrl: './voltar-cotacao.component.html', styleUrls: ['./voltar-cotacao.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportVoltarCotacaoComponent implements AfterViewInit {\r\n @ViewChild('pecasTemplate') pecasTemplate: TemplateRef;\r\n @ViewChild('situacaoTemplate') situacaoTemplate: TemplateRef;\r\n templatesArray: SupportGridviewTemplateCell[] = [];\r\n\r\n public config: SupportGridview = new SupportGridview();\r\n\r\n constructor(\r\n private notificationService: NotificationService,\r\n private voltarCotacaoService: SupportVoltarCotacaoService,\r\n private globals: Globals,\r\n private ngxLoader: NgxUiLoaderService) { }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n this.templatesArray = [ { name: 'pecasTemplate', template: this.pecasTemplate }, { name: 'situacaoTemplate', template: this.situacaoTemplate } ];\r\n\r\n this.config.set({\r\n actions: {\r\n edit: { confirmationText: 'support.manutencao.voltar-cotacao.mensagens.confirm.voltar', enable: true, labelText: 'elemento.generico-botao.voltar', type: 'button' }\r\n },\r\n emptyText: { value: 'support.manutencao.voltar-cotacao.nenhuma-cotacao-encontrada' },\r\n list: [],\r\n table: {\r\n body: [\r\n new SupportGridviewTableBodyCell('col text-center', 'quotation_id'),\r\n new SupportGridviewTableBodyCell('col col-4 truncate-gridview', 'veiculo'),\r\n new SupportGridviewTableBodyCell('col text-center', '', 'html', null, 'situacaoTemplate'),\r\n new SupportGridviewTableBodyCell('col col-2 text-center', 'data_criacao', 'date', 'dd/MM/yyyy HH:mm'),\r\n new SupportGridviewTableBodyCell('col text-center', '', 'html', null, 'pecasTemplate')\r\n ],\r\n header: [\r\n { className: 'col text-center', value: 'support.manutencao.voltar-cotacao.tabela.quotation-id' },\r\n { className: 'col-4', value: 'support.manutencao.voltar-cotacao.tabela.veiculo' },\r\n { className: 'col', value: 'support.manutencao.voltar-cotacao.tabela.situacao.titulo' },\r\n { className: 'col-2 text-center', value: 'support.manutencao.voltar-cotacao.tabela.data-criacao' },\r\n { className: 'col text-center', value: 'support.manutencao.voltar-cotacao.tabela.pecas' },\r\n { className: 'col-0-5', value: '' }\r\n ]\r\n }\r\n });\r\n });\r\n }\r\n\r\n getAll(licensePlate: string, nAttempts: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.voltarCotacaoService.getQuotationsByLicensePlate(licensePlate).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n let cotacoes = response.result.cotacoes;\r\n\r\n cotacoes.forEach(c => {\r\n let pecas = c.pecas.map(p => p.nome);\r\n c.pecas_title = pecas.join('
');\r\n });\r\n\r\n this.config.list = cotacoes;\r\n }\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.voltar-cotacao.mensagens.erro.carregamento.corpo'));\r\n return;\r\n }\r\n\r\n this.getAll(licensePlate, ++nAttempts);\r\n }\r\n });\r\n }\r\n\r\n onExecute($event: CotacaoVoltar) {\r\n this.voltarCotacao($event.quotation_id, $event.excluida, 0);\r\n }\r\n\r\n onSearch($event: any) {\r\n this.getAll($event, 0);\r\n }\r\n\r\n voltarCotacao(quotationId: number, excluida: boolean, nAttempts: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.voltarCotacaoService.setQuotationBack(quotationId, excluida).subscribe({\r\n next: () => {\r\n let indice = this.config.list.findIndex(c => c.quotation_id === quotationId);\r\n this.config.list.splice(indice, 1);\r\n\r\n this.notificationService.showSuccessToastr(this.globals.translate('support.manutencao.voltar-cotacao.mensagens.sucesso.voltar.corpo'));\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: (error) => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5) {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.voltar-cotacao.mensagens.erro.voltar.corpo'));\r\n return;\r\n }\r\n\r\n this.voltarCotacao(quotationId, excluida, ++nAttempts);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n {{ (item.excluida ? 'support.manutencao.voltar-cotacao.tabela.situacao.excluida' : 'support.manutencao.voltar-cotacao.tabela.situacao.expirada') | translate}}\r\n  \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { Globals } from '../../_models/globals';\r\nimport { NotificationService } from '../../_services/notification.service';\r\nimport { CadastroCNPJService } from './cadastro-cnpj.service';\r\nimport { ManageCompanyCnpj } from './_models/company-model';\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { SupportCadastroCnpjGetAllResponseModel } from './_models/supportCadastroCnpjGetAllResponseModel';\r\n\r\ndeclare const compararStringContemString: any;\r\ndeclare const isEmpty: any;\r\ndeclare const getOnlyNumbers: any;\r\n\r\n@Component({\r\n selector: 'app-cadastro-cnpj', templateUrl: './cadastro-cnpj.component.html', styleUrls: ['./cadastro-cnpj.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportCadastroCnpjComponent implements OnInit {\r\n is_listagem: boolean = true;\r\n manageCompanyCnpjSelecionado: ManageCompanyCnpj;\r\n companiesCnpjList: ManageCompanyCnpj[] = [];\r\n companiesCnpjListFiltered: ManageCompanyCnpj[] = [];\r\n\r\n public filter: string = '';\r\n\r\n constructor(private notificationService: NotificationService, private cadastroCnpjService: CadastroCNPJService, private globals: Globals, private route: ActivatedRoute, private ngxLoader: NgxUiLoaderService,\r\n private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n var param_id = this.route.snapshot.params.id;\r\n this.is_listagem = true;\r\n this.manageCompanyCnpjSelecionado = null;\r\n this.companiesCnpjList = [];\r\n\r\n this.carregarTela(0, param_id);\r\n }\r\n\r\n acao_alterarTela(param) {\r\n this.selecionarCompanyCnpj(param.company_id);\r\n this.is_listagem = param.is_listagem;\r\n\r\n if (isEmpty(param.company_id))\r\n {\r\n if (param.atualizar)\r\n this.carregarTela(0, null);\r\n else\r\n this.router.navigate(['/suporte/manutencao/cadastro-cnpj-oficina/']);\r\n }\r\n else\r\n this.router.navigate(['/suporte/manutencao/cadastro-cnpj-oficina/' + param.company_id]);\r\n }\r\n\r\n back() {\r\n this.manageCompanyCnpjSelecionado = null;\r\n this.acao_alterarTela({ is_listagem: true, company_id: null });\r\n }\r\n\r\n createNew() {\r\n this.manageCompanyCnpjSelecionado = null;\r\n this.acao_alterarTela({ is_listagem: false, company_id: 0 });\r\n }\r\n\r\n carregarTela(nAttempts: number, company_id?: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.cadastroCnpjService.getAll().subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response !== null && (response.result.companiesCnpj.length > 0 || (company_id && company_id == 0))) {\r\n this.companiesCnpjList = this.companiesCnpjListFiltered = response.result.companiesCnpj;\r\n this.acao_alterarTela({ is_listagem: isEmpty(company_id), company_id: company_id });\r\n }\r\n else if (company_id && company_id > 0) {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-cnpj.mensagens.oficina-nao-encontrada.erro.corpo'));\r\n this.back();\r\n }\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n nAttempts = nAttempts || 1;\r\n console.log(error, nAttempts);\r\n\r\n if (nAttempts >= 5)\r\n {\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manutencao.cadastro-cnpj.mensagens.listar.erro.corpo'));\r\n return;\r\n }\r\n\r\n this.carregarTela(++nAttempts, company_id);\r\n }\r\n });\r\n }\r\n\r\n onSearch($event: string) {\r\n if (isEmpty(this.companiesCnpjList))\r\n return [];\r\n\r\n const term = $event.toLowerCase();\r\n const cnpjTerm = getOnlyNumbers(term);\r\n\r\n this.companiesCnpjListFiltered = this.companiesCnpjList.filter(o =>\r\n compararStringContemString(o.fantasyName.toLowerCase(), term)\r\n || (!isEmpty(cnpjTerm) && (getOnlyNumbers(o.cnpj).indexOf(cnpjTerm) > -1 || o.companiesCnpjs.some(c => getOnlyNumbers(c.cnpj).indexOf(cnpjTerm) > -1)))\r\n );\r\n }\r\n\r\n selecionarCompanyCnpj(companyCnpj_id: number) {\r\n this.manageCompanyCnpjSelecionado = this.companiesCnpjList.find(u => u.id == companyCnpj_id);\r\n\r\n if (isEmpty(this.manageCompanyCnpjSelecionado))\r\n this.manageCompanyCnpjSelecionado = new ManageCompanyCnpj({id: 0, name: '', cnpj: '', fantasyName: '', companiesCnpjs: [] });\r\n }\r\n}\r\n","
\r\n \r\n @if (is_listagem) {\r\n \r\n }\r\n \r\n @if (is_listagem) {\r\n \r\n } @else {\r\n \r\n }\r\n
\r\n\r\n","import { Router, ActivatedRouteSnapshot, NavigationStart, NavigationEnd, RouterStateSnapshot } from '@angular/router';\r\n\r\nimport { AccountService } from 'app/account/account.service';\r\n\r\nimport { LocalStorageUtils } from 'app/_utils/localstorage';\r\nimport { Page } from 'app/_models/page';\r\nimport { environment } from 'app/../environments/environment'\r\n\r\ndeclare const findInArrayIndex: any;\r\ndeclare const isEmpty: any;\r\n\r\nexport class BaseGuard {\r\n protected localStorageUtils = new LocalStorageUtils();\r\n private jaRedirecionouPraHome: boolean;\r\n\r\n constructor(protected router: Router, protected accountService: AccountService) { \r\n let maintenance = environment.inMaintenance;\r\n\r\n if (maintenance)\r\n this.navegarManutencao();\r\n }\r\n\r\n protected navegarAcessoNegado() {\r\n this.router.navigate(['/acesso-negado']);\r\n }\r\n\r\n protected navegarHomePage(urlHomePage: string) {\r\n this.router.navigate([urlHomePage]);\r\n }\r\n\r\n protected navegarManutencao() {\r\n this.router.navigate(['/em-manutencao']);\r\n }\r\n\r\n protected navegarLogin(routeAc: ActivatedRouteSnapshot = null) {\r\n this.accountService.logout(true);\r\n\r\n var returnUrl = window.location.pathname;\r\n\r\n if (isEmpty(routeAc))\r\n this.router.navigate(['/login/'], { queryParams: { returnUrl: returnUrl } });\r\n else\r\n this.router.navigate(['/login/'], { queryParams: { token: routeAc.queryParams.token, user_id: routeAc.queryParams.user_id, returnUrl: returnUrl } });\r\n }\r\n\r\n protected validarAcesso(routeAc: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.validarAcessoUserId(routeAc, routeAc.queryParams.user_id, state);\r\n }\r\n\r\n protected validarAcessoUserId(routeAc: ActivatedRouteSnapshot, user_id: number, state: RouterStateSnapshot): boolean {\r\n var usuario = this.accountService.obterUsuario();\r\n\r\n // Se o id do usuário que vier por parametro for diferente de nulo e diferente do usuário logado, retorna false\r\n if (!usuario || (!isEmpty(user_id) && user_id != usuario.id)) {\r\n this.navegarLogin(routeAc);\r\n return false;\r\n }\r\n\r\n let pages: Page[] = usuario.pages;\r\n let homePage = usuario.homePage;\r\n\r\n if (isEmpty(pages) || pages.length == 0 || isEmpty(homePage))\r\n this.navegarLogin();\r\n\r\n var paginaAtual = state.url;\r\n\r\n if (paginaAtual === '')\r\n paginaAtual = homePage;\r\n\r\n if (paginaAtual === 'login' || paginaAtual === 'esqueci-senha' || paginaAtual === 'alterar-senha')\r\n return true;\r\n\r\n // Verifica se o usuário tem permissão para acessar a tela atual\r\n var temAcesso = usuario.pages.some(p => paginaAtual.startsWith(`/${p.url}`));\r\n\r\n // Se não tem acesso\r\n if (!temAcesso) {\r\n // Verifica se existem telas filhas para essa página\r\n let childrenPagesList = usuario.pages.map(a => {\r\n if (a.childrenPages) {\r\n for (var i = 0; i <= a.childrenPages.length - 1; i++) {\r\n a.childrenPages[i] = a.url + '/' + a.childrenPages[i];\r\n }\r\n }\r\n\r\n return a.childrenPages;\r\n });\r\n\r\n let listaSubTelas = usuario.pages.map(a => {\r\n if (a.subPages) {\r\n for (var i = 0; i <= a.subPages.length - 1; i++) {\r\n a.subPages[i] = a.url + '/' + a.subPages[i];\r\n }\r\n }\r\n\r\n return a.subPages;\r\n });\r\n\r\n let childrenPages = [].concat.apply([], childrenPagesList);\r\n childrenPages = childrenPagesList.concat.apply(childrenPagesList, listaSubTelas);\r\n\r\n paginaAtual = (paginaAtual.match(new RegExp(\"/\", \"g\")) || []).length < 3 ? paginaAtual : paginaAtual.substring(0, paginaAtual.lastIndexOf('/'));\r\n\r\n temAcesso = childrenPages.includes(paginaAtual);\r\n }\r\n\r\n // Se continua sem acesso\r\n if (!temAcesso && !this.jaRedirecionouPraHome) {\r\n this.navegarHomePage(usuario.homePage);\r\n this.jaRedirecionouPraHome = true;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router, Route, RouterStateSnapshot, UrlTree } from '@angular/router';\r\n\r\nimport { BaseGuard } from './base.guard';\r\nimport { AccountService } from '../../account/account.service';\r\nimport { SupportMultiloginComponent } from '../../support/multilogin/multilogin.component';\r\nimport { Observable } from 'rxjs';\r\nimport { Globals } from '../../_models/globals';\r\n\r\n@Injectable()\r\nexport class SupportGuard extends BaseGuard {\r\n constructor(protected router: Router, protected accountService: AccountService, private globals: Globals) { super(router, accountService); }\r\n\r\n canActivate(routeAc: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n //alert('Funcionalidade desabilitada para manutenção');\r\n //this.navegarLogin();\r\n //return;\r\n\r\n this.verificarLogado();\r\n return super.validarAcesso(routeAc, state);\r\n }\r\n\r\n canDeactivate(component: SupportMultiloginComponent): boolean | UrlTree | Observable | Promise {\r\n if (component.progressWillBeLost()) {\r\n return confirm(this.globals.translate('support.multilogin.confirmacao.sair'));\r\n }\r\n\r\n return true;\r\n }\r\n\r\n canLoad(route: Route) {\r\n this.verificarLogado();\r\n\r\n return true;\r\n }\r\n\r\n private verificarLogado() {\r\n let user = this.localStorageUtils.obterUsuario();\r\n\r\n if (!user || !user.isAdmin)\r\n this.navegarLogin();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BaseService } from 'app/_services/base.service';\r\nimport { SettingsService } from 'app/_services/settings.service';\r\nimport { environment } from '../../../../environments/environment';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { HoldingSupplierForEdit } from './_models/holdingSupplierForEdit';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SupportHoldingsBillingDataManagementService extends BaseService\r\n{\r\n private _apiSupportUrl: string = `${environment.apiSupport}`;\r\n private _domain: string = '/suppliers/holdings/billing-data';\r\n private _pageSize: number = 10;\r\n\r\n constructor(private config: SettingsService, private http: HttpClient)\r\n {\r\n super();\r\n }\r\n\r\n public addPaymentEndDate(holdingId: number, endDdate: Date): Observable {\r\n var body = {\r\n endDate: endDdate\r\n };\r\n\r\n return this.config.executePut({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${holdingId}/payments`, body });\r\n }\r\n\r\n public createHoldingPayment(holdingId: number, startDate: Date): Observable {\r\n var body = {\r\n startDate: startDate\r\n };\r\n\r\n return this.config.executePost({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${holdingId}/payments`, body });\r\n }\r\n\r\n public deleteHoldingPayment(holdingId: number, paymentId: number): Observable {\r\n return this.config.executeDelete({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${holdingId}/payments/${paymentId}` });\r\n }\r\n\r\n public editHoldingBillingData(holding: HoldingSupplierForEdit) {\r\n return this.config.executePut({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${holding.holdingId}`, body: holding });\r\n }\r\n\r\n public editHoldingBillingDataWithPayment(holding: HoldingSupplierForEdit) {\r\n return this.config.executePut({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${holding.holdingId}/with-payment`, body: holding });\r\n }\r\n\r\n public getById(holdingId: string) {\r\n return this.config.executeGet({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${holdingId}`});\r\n }\r\n\r\n public getByPage(pageNumber: number, filter: string = ''): Observable {\r\n return this.config.executeGet({ baseUrl: this._apiSupportUrl, url: `${this._domain}/management?currentPage=${pageNumber}&pageSize=${this._pageSize}&nameFilter=${filter}`});\r\n }\r\n\r\n public getHoldingPayments(holdingId: number): Observable {\r\n return this.config.executeGet({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${holdingId}/payments`});\r\n }\r\n\r\n public getSupplierRepairerComissions(holdingId: number): Observable {\r\n return this.config.executeGet({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${holdingId}/custom-comission`});\r\n }\r\n\r\n public getSupplierRepairers(holdingId: number, isBillable: boolean): Observable {\r\n return this.config.executeGet({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${holdingId}/repairers?isSupplierBillable=${isBillable}`});\r\n }\r\n\r\n public saveCustomComission(holdingId: number, repairerId: number, comissionValue: number): Observable {\r\n var body = {\r\n comissionValue: comissionValue\r\n };\r\n\r\n return this.config.executePost({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${holdingId}/repairers/${repairerId}/custom-comission`, body });\r\n }\r\n\r\n public removeCustomComission(holdingId: number, repairerId: number): Observable {\r\n return this.config.executeDelete({ baseUrl: this._apiSupportUrl, url: `${this._domain}/${holdingId}/repairers/${repairerId}/custom-comission` });\r\n }\r\n}\r\n","export enum HoldingPaymentType {\r\n Comission = 1,\r\n Quotation = 2,\r\n Order = 3\r\n}\r\n","import { HoldingPaymentType } from 'app/_models/holdingPaymentType';\r\n\r\nexport interface HoldingSupplierForEdit {\r\n holdingId: number;\r\n hasCashback: boolean;\r\n monthlyFee: number;\r\n opportunityCost?: number;\r\n paymentType: number;\r\n plan: number;\r\n rebate: number;\r\n tax: number;\r\n paymentStartDate?: Date;\r\n}\r\n\r\nexport function holdingSupplierForEditFactory(\r\n holdingId: number,\r\n hasCashback: boolean,\r\n monthlyFee: number,\r\n opportunityCost: number,\r\n paymentType: number,\r\n plan: number,\r\n rebate: number,\r\n tax: number,\r\n paymentStartDate?: Date\r\n): HoldingSupplierForEdit {\r\n return {\r\n holdingId,\r\n hasCashback,\r\n monthlyFee,\r\n opportunityCost: paymentType === HoldingPaymentType.Order ? null : opportunityCost,\r\n paymentType,\r\n plan,\r\n rebate,\r\n tax,\r\n paymentStartDate\r\n }\r\n};\r\n","export enum PlanEnum {\r\n Popular = 1,\r\n V8 = 2,\r\n Turbo = 3\r\n}","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\r\nimport { AbstractControl, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { Globals } from 'app/_models/globals';\r\nimport { forkJoin } from 'rxjs';\r\n\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { CustomComission, CustomComissionDisplay } from '../../_models/customComission';\r\nimport { RepairerOptions } from '../../_models/customComissionRepairer';\r\nimport { HoldingSupplier } from '../../_models/holdingSupplier';\r\n\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { SupportHoldingsBillingDataManagementService } from '../../billing-data-management.service';\r\n\r\ndeclare const sort_by: any;\r\n\r\n@Component({\r\n selector: 'app-holding-custom-comission', templateUrl: './holding-custom-comission.component.html', styleUrls: ['./holding-custom-comission.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportHoldingCustomComissionComponent {\r\n @ViewChild('templateHoldingCustomComission') template: TemplateRef;\r\n @Input() holding: HoldingSupplier;\r\n @Input() defaultComission: number;\r\n hasChanged: boolean = false;\r\n\r\n repairers: RepairerOptions[] = [];\r\n customComissions: CustomComissionDisplay[] = [];\r\n\r\n modalRef: BsModalRef;\r\n editionForm: UntypedFormGroup;\r\n\r\n constructor(private holdingService: SupportHoldingsBillingDataManagementService, private notificationService: NotificationService, private ngxLoader: NgxUiLoaderService, private modalService: BsModalService, private formBuilder: UntypedFormBuilder, private globals: Globals) {}\r\n\r\n addRepairerComission() {\r\n const formValue = this.editionForm.value;\r\n\r\n if (formValue.repairer == \"\") {\r\n this.editionForm.controls.repairer.markAsTouched();\r\n this.notificationService.showErrorToastr('support.manage-holdings.manage.comission-manage.form.error.repairer', { translateMessage: true });\r\n return;\r\n }\r\n\r\n if (this.holding.opportunityCost == formValue.comission) {\r\n this.editionForm.controls.comission.markAsTouched();\r\n this.notificationService.showErrorToastr('support.manage-holdings.manage.comission-manage.form.error.custom-comission-equal', { translateMessage: true });\r\n return;\r\n }\r\n\r\n this.ngxLoader.startLoader('loader-repairers-comission');\r\n\r\n this.holdingService.saveCustomComission(this.holding.holdingId, formValue.repairer, formValue.comission).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response.result) {\r\n let index = this.repairers.findIndex(r => r.repairerHoldingId == formValue.repairer);\r\n let repairer = this.repairers[index]\r\n repairer.isBlocked = true;\r\n\r\n let customComission: CustomComissionDisplay = { repairerHoldingId: repairer.repairerHoldingId, repairerName: repairer.repairerName, comissionValue: formValue.comission }\r\n this.customComissions.push(customComission);\r\n this.customComissions.sort(sort_by([{ name: 'repairerName' }]));\r\n\r\n this.resetForm();\r\n\r\n this.ngxLoader.stopLoader('loader-repairers-comission');\r\n this.notificationService.showSuccessToastr('support.manage-holdings.manage.comission-manage.messages.add.success', { translateMessage: true });\r\n }\r\n },\r\n error: error => {\r\n console.log(error);\r\n this.ngxLoader.stopLoader('loader-repairers-comission');\r\n this.notificationService.showErrorToastr('support.manage-holdings.manage.comission-manage.messages.add.error', { translateMessage: true });\r\n }\r\n })\r\n }\r\n\r\n async close(): Promise {\r\n this.modalRef.hide()\r\n }\r\n\r\n notEqualToOpportunityCostValidator(control: AbstractControl) {\r\n if (this.holding && control.value === this.holding.opportunityCost) {\r\n return { notEqualToOpportunityCost: true };\r\n }\r\n return null;\r\n }\r\n\r\n open() {\r\n this.resetForm();\r\n let options: ModalOptions = { class: 'custom-modal', backdrop: 'static', keyboard: false };\r\n this.modalRef = this.modalService.show(this.template, options);\r\n\r\n if (this.repairers.length > 0)\r\n return;\r\n\r\n this.ngxLoader.startLoader('loader-repairers-comission');\r\n\r\n forkJoin({\r\n getSupplierRepairers: this.holdingService.getSupplierRepairers(this.holding.holdingId, this.holding.isBillable),\r\n getRepairerSupplierComissions: this.holdingService.getSupplierRepairerComissions(this.holding.holdingId),\r\n }).subscribe({\r\n next: (response: {\r\n getSupplierRepairers: ApiResponseModel,\r\n getRepairerSupplierComissions: ApiResponseModel\r\n }) => {\r\n if (response.getSupplierRepairers.result.length == 0) {\r\n this.close();\r\n this.ngxLoader.stopLoader('loader-repairers-comission');\r\n this.notificationService.showWarningToastr('support.manage-holdings.manage.comission-manage.messages.empty.warning', { translateMessage: true });\r\n }\r\n\r\n this.repairers = response.getSupplierRepairers.result;\r\n\r\n response.getRepairerSupplierComissions.result.forEach((comission: CustomComission) => {\r\n let repairerIndex = this.repairers.findIndex(r => r.repairerHoldingId == comission.repairerHoldingId);\r\n let repairer = this.repairers[repairerIndex]\r\n repairer.isBlocked = true;\r\n\r\n let customComission: CustomComissionDisplay = { repairerHoldingId: repairer.repairerHoldingId, repairerName: repairer.repairerName, comissionValue: comission.comissionValue }\r\n this.customComissions.push(customComission);\r\n this.customComissions.sort(sort_by([{ name: 'repairerName' }]));\r\n })\r\n\r\n\r\n this.ngxLoader.stopLoader('loader-repairers-comission');\r\n },\r\n error: error => {\r\n console.log(error);\r\n this.close();\r\n this.ngxLoader.stopLoader('loader-repairers-comission');\r\n this.notificationService.showErrorToastr('support.manage-holdings.manage.comission-manage.messages.loading.error', { translateMessage: true });\r\n }\r\n });\r\n }\r\n\r\n removeRepairerComission(repairerId: number) {\r\n this.ngxLoader.startLoader('loader-repairers-comission');\r\n\r\n this.holdingService.removeCustomComission(this.holding.holdingId, repairerId).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response.result) {\r\n let repairerIndex = this.repairers.findIndex(r => r.repairerHoldingId == repairerId);\r\n let repairer = this.repairers[repairerIndex]\r\n repairer.isBlocked = false;\r\n\r\n let repairerComissionsIndex = this.customComissions.findIndex(c => c.repairerHoldingId == repairerId);\r\n this.customComissions.splice(repairerComissionsIndex, 1);\r\n\r\n this.ngxLoader.stopLoader('loader-repairers-comission');\r\n this.notificationService.showSuccessToastr('support.manage-holdings.manage.comission-manage.messages.remove.success', { translateMessage: true });\r\n }\r\n },\r\n error: error => {\r\n console.log(error);\r\n this.ngxLoader.stopLoader('loader-repairers-comission');\r\n this.notificationService.showErrorToastr('support.manage-holdings.manage.comission-manage.messages.remove.error', { translateMessage: true });\r\n }\r\n })\r\n }\r\n\r\n resetForm() {\r\n this.editionForm = this.formBuilder.group({\r\n comission: [0, [Validators.required, Validators.min(0), Validators.max(99.99), this.notEqualToOpportunityCostValidator.bind(this)]],\r\n repairer: [\"\", Validators.required],\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n

{{ 'support.manage-holdings.manage.comission-manage.header.title' | translate }}

\r\n \r\n {{ 'support.manage-holdings.manage.comission-manage.header.subtitle' | translate: { name: holding.name, value: (holding.opportunityCost ?? 0 | number: ( holding.tax < 10 ? '.0-2' : '0.0-1')) } }}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n @if (customComissions?.length <= 0) {\r\n
\r\n

{{ 'support.manage-holdings.manage.comission-manage.list.empty' | translate }}

\r\n
\r\n } @else {\r\n \r\n @for (repairerComission of customComissions; track repairerComission.repairerHoldingId) {\r\n
\r\n
\r\n
{{repairerComission.repairerName}}
\r\n
\r\n
\r\n
{{repairerComission.comissionValue}}%
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n }\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, Input, TemplateRef, ViewChild } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { BsModalRef, BsModalService, ModalOptions } from 'ngx-bootstrap/modal';\r\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Globals } from 'app/_models/globals';\r\n\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { SupportHoldingsBillingDataManagementService } from '../../billing-data-management.service';\r\n\r\nimport { zeraHoraMinutoSegundo } from 'app/_utils/general-utils';\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { HoldingSupplier } from '../../_models/holdingSupplier';\r\nimport { HoldingPayment } from '../../_models/holdingPayment';\r\n\r\ndeclare const $: any;\r\ndeclare const formatDateToDDMMYYYY: any;\r\n\r\n@Component({\r\n selector: 'app-holding-manage-payment', templateUrl: './holding-manage-payment.component.html', styleUrls: ['./holding-manage-payment.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportHoldingManagePaymentComponent {\r\n @ViewChild('templateHoldingManagePayment') template: TemplateRef;\r\n @Input() holding: HoldingSupplier;\r\n\r\n modalRef: BsModalRef;\r\n paymentForm: UntypedFormGroup;\r\n\r\n pastPayments: HoldingPayment[] = []\r\n\r\n isLoading: boolean = false;\r\n currentStartDate: Date;\r\n minStartDate: NgbDate;\r\n minEndDate: NgbDate;\r\n\r\n constructor(private holdingService: SupportHoldingsBillingDataManagementService, private notificationService: NotificationService, private ngxLoader: NgxUiLoaderService, private modalService: BsModalService, private formBuilder: UntypedFormBuilder, private globals: Globals) { }\r\n\r\n addPayment(date: Date) {\r\n this.ngxLoader.startLoader('loader-manage-payment');\r\n\r\n this.holdingService.createHoldingPayment(this.holding.holdingId, date).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response.result) {\r\n this.holding = response.result;\r\n this.currentStartDate = date;\r\n this.handleInputEnable();\r\n\r\n this.ngxLoader.stopLoader('loader-manage-payment');\r\n this.notificationService.showSuccessToastr('support.manage-holdings.manage.payment-manage.messages.add.success', { translateMessage: true });\r\n }\r\n },\r\n error: error => {\r\n console.log(error);\r\n this.ngxLoader.stopLoader('loader-manage-payment');\r\n this.notificationService.showErrorToastr('support.manage-holdings.manage.payment-manage.messages.add.error', { translateMessage: true });\r\n }\r\n })\r\n }\r\n\r\n async close(): Promise {\r\n this.modalRef.hide()\r\n }\r\n\r\n createDate(inputDate: { year: number, month: number, day: number } | string): Date | undefined {\r\n if (typeof inputDate != 'string') {\r\n return new Date(inputDate.year, inputDate.month - 1, inputDate.day);\r\n }\r\n\r\n if (inputDate != '' && inputDate.checkIfHasTwoSlashes()) {\r\n var dateParts = inputDate.split(\"/\").map(d => parseInt(d));\r\n\r\n return new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n dateSelect(date: NgbDate, key: string): void {\r\n const formControl: any = {};\r\n formControl[key] = formatDateToDDMMYYYY(this.createDate(date));\r\n this.paymentForm.patchValue(formControl);\r\n }\r\n\r\n enablePaymentStartDate() {\r\n this.setMinStartDate();\r\n\r\n this.paymentForm.controls.startDate.setValue(\"\");\r\n this.paymentForm.controls.endDate.setValue(\"\");\r\n\r\n this.paymentForm.controls.startDate.enable();\r\n this.paymentForm.controls.endDate.disable();\r\n\r\n $('#start-date').focus();\r\n }\r\n\r\n enablePaymentEndDate() {\r\n this.setMinEndDate();\r\n\r\n this.paymentForm.controls.startDate.disable();\r\n this.paymentForm.controls.endDate.enable();\r\n $('#end-date').focus();\r\n }\r\n\r\n endPayment(date: Date) {\r\n this.ngxLoader.startLoader('loader-manage-payment');\r\n\r\n this.holdingService.addPaymentEndDate(this.holding.holdingId, date).subscribe({\r\n next: (response: ApiResponseModel<{ holding: HoldingSupplier, payment: HoldingPayment }>) => {\r\n if (response.result) {\r\n this.currentStartDate = null;\r\n this.holding = response.result.holding;\r\n\r\n var payment = response.result.payment;\r\n var startDate = new Date(payment.startDate);\r\n var endDate = new Date(payment.endDate);\r\n endDate = new Date(endDate.setHours(endDate.getHours() + 3));\r\n\r\n this.pastPayments.unshift({ paymentId: payment.paymentId, startDate, endDate });\r\n\r\n this.handleInputEnable();\r\n\r\n this.ngxLoader.stopLoader('loader-manage-payment');\r\n this.notificationService.showSuccessToastr('support.manage-holdings.manage.payment-manage.messages.end.success', { translateMessage: true });\r\n }\r\n },\r\n error: error => {\r\n console.log(error);\r\n this.ngxLoader.stopLoader('loader-manage-payment');\r\n this.notificationService.showErrorToastr('support.manage-holdings.manage.payment-manage.messages.end.error', { translateMessage: true });\r\n }\r\n })\r\n }\r\n\r\n handleAddPayment() {\r\n const formValue = this.paymentForm.getRawValue();\r\n\r\n let startDate = this.createDate(formValue.startDate);\r\n let endDate = this.createDate(formValue.endDate);\r\n\r\n if (this.currentStartDate == null) {\r\n var previousPayment = this.pastPayments[0];\r\n\r\n if (startDate == null || startDate < previousPayment?.endDate) {\r\n this.enablePaymentStartDate();\r\n this.notificationService.showErrorToastr('support.manage-holdings.manage.payment-manage.form.error.start-date', { translateMessage: true });\r\n return;\r\n }\r\n\r\n return this.addPayment(startDate);\r\n }\r\n\r\n if (endDate == null || startDate > endDate) {\r\n this.enablePaymentEndDate();\r\n this.notificationService.showErrorToastr('support.manage-holdings.manage.payment-manage.form.error.end-date', { translateMessage: true });\r\n return;\r\n }\r\n\r\n return this.endPayment(endDate);\r\n }\r\n\r\n handleInputEnable() {\r\n if (this.currentStartDate != null)\r\n return this.enablePaymentEndDate();\r\n\r\n return this.enablePaymentStartDate();\r\n }\r\n\r\n open() {\r\n this.resetForm();\r\n let options: ModalOptions = { class: 'custom-modal', backdrop: 'static', keyboard: false };\r\n this.modalRef = this.modalService.show(this.template, options);\r\n\r\n if (this.pastPayments.length > 0) {\r\n this.paymentForm.setValue({\r\n startDate: this.currentStartDate ? formatDateToDDMMYYYY(this.currentStartDate) : '',\r\n endDate: ''\r\n });\r\n\r\n return this.handleInputEnable();\r\n }\r\n\r\n this.ngxLoader.startLoader('loader-manage-payment');\r\n\r\n this.holdingService.getHoldingPayments(this.holding.holdingId).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n response.result.forEach((payment) => {\r\n payment.startDate = new Date(payment.startDate);\r\n\r\n if (payment.endDate == null) {\r\n this.currentStartDate = payment.startDate;\r\n this.setMinEndDate();\r\n\r\n return this.paymentForm.setValue({\r\n startDate: formatDateToDDMMYYYY(payment.startDate),\r\n endDate: ''\r\n });\r\n }\r\n\r\n payment.endDate = new Date(payment.endDate);\r\n\r\n this.pastPayments.push({ paymentId: payment.paymentId, startDate: payment.startDate, endDate: payment.endDate });\r\n })\r\n\r\n this.setMinStartDate();\r\n this.handleInputEnable();\r\n\r\n this.ngxLoader.stopLoader('loader-manage-payment');\r\n },\r\n error: error => {\r\n console.log(error);\r\n this.close();\r\n this.ngxLoader.stopLoader('loader-manage-payment');\r\n this.notificationService.showErrorToastr('support.manage-holdings.manage.payment-manage.messages.loading.error', { translateMessage: true });\r\n }\r\n })\r\n }\r\n\r\n removePayment(paymentId: number) {\r\n this.ngxLoader.startLoader('loader-manage-payment');\r\n\r\n this.holdingService.deleteHoldingPayment(this.holding.holdingId, paymentId).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response.result) {\r\n this.holding = response.result;\r\n\r\n let paymentIndex = this.pastPayments.findIndex(p => p.paymentId == paymentId);\r\n this.pastPayments.splice(paymentIndex, 1);\r\n\r\n if (paymentIndex == 0)\r\n this.setMinStartDate();\r\n\r\n this.ngxLoader.stopLoader('loader-manage-payment');\r\n this.notificationService.showSuccessToastr('support.manage-holdings.manage.payment-manage.messages.remove.success', { translateMessage: true });\r\n }\r\n },\r\n error: error => {\r\n console.log(error);\r\n this.ngxLoader.stopLoader('loader-manage-payment');\r\n this.notificationService.showErrorToastr('support.manage-holdings.manage.payment-manage.messages.remove.error', { translateMessage: true });\r\n }\r\n })\r\n }\r\n\r\n resetForm() {\r\n this.paymentForm = this.formBuilder.group({\r\n startDate: ['', Validators.required],\r\n endDate: ['', Validators.required]\r\n });\r\n }\r\n\r\n setMinStartDate() {\r\n var lastPayment = this.pastPayments[0];\r\n this.minStartDate = lastPayment ? { year: lastPayment.endDate.getFullYear(), month: lastPayment.endDate.getMonth() + 1, day: lastPayment.endDate.getDate() } as NgbDate : null;\r\n }\r\n\r\n setMinEndDate() {\r\n this.minEndDate = { year: this.currentStartDate.getFullYear(), month: this.currentStartDate.getMonth() + 1, day: this.currentStartDate.getDate() } as NgbDate;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n

{{ 'support.manage-holdings.manage.payment-manage.header.title' | translate }}

\r\n \r\n {{holding.name}} - {{ 'support.manage-holdings.manage.payment-manage.header.subtitle.' + (holding.isBillable ? 'pagante' : 'nao-pagante') | translate }} \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n @if (pastPayments?.length <= 0) {\r\n
\r\n @if (!currentStartDate) {\r\n

{{ 'support.manage-holdings.manage.payment-manage.list.empty' | translate }}

\r\n }\r\n
\r\n } @else {\r\n \r\n @for (paymentDate of pastPayments; track paymentDate) {\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n }\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, ElementRef, EventEmitter, Input, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\n\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { Globals } from 'app/_models/globals';\r\nimport { Categoria } from 'app/buyer/mercado-partsfy/list/_models/Categoria';\r\nimport { HoldingSupplier } from '../../_models/holdingSupplier';\r\nimport { HoldingSupplierForEdit, holdingSupplierForEditFactory } from '../../_models/holdingSupplierForEdit';\r\nimport { PlanEnum } from 'app/_models/plans';\r\nimport { HoldingPaymentType } from 'app/_models/holdingPaymentType';\r\nimport { SupportHoldingCustomComissionComponent } from '../holding-custom-comission/holding-custom-comission.component';\r\nimport { SupportHoldingManagePaymentComponent } from '../holding-manage-payment/holding-manage-payment.component';\r\nimport { NgbDate } from '@ng-bootstrap/ng-bootstrap';\r\n\r\ndeclare const formatDateToDDMMYYYY: any;\r\n\r\n@Component({\r\n selector: 'app-holding-manage', templateUrl: './holding-manage.component.html', styleUrls: ['./holding-manage.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportManageHoldingComponent {\r\n @Input() holding?: HoldingSupplier = null;\r\n @Input() partsfyCashback: number = 20;\r\n @Input() categories: Categoria[] = [];\r\n @Output() saveHolding = new EventEmitter();\r\n @Output() goBackToList = new EventEmitter();\r\n @ViewChild('templateCropperModal') templateCropperModal: TemplateRef;\r\n @ViewChild('categorySelect') categorySelect: ElementRef;\r\n @ViewChild('fileInput') fileInput: ElementRef;\r\n @ViewChild('templateHoldingCustomComission') public repairersComissionManageModal: SupportHoldingCustomComissionComponent;\r\n @ViewChild('templateHoldingManagePayment') public holdingManagePaymentModal: SupportHoldingManagePaymentComponent;\r\n\r\n allowKeysInput = ['Backspace', 'ArrowLeft', 'ArrowRight', 'Delete'];\r\n cashbackValue: number = 0;\r\n finalPrice: number = 0;\r\n holdingManageForm: UntypedFormGroup;\r\n fieldsAlreadyDisabled: boolean = false;\r\n minPaymentDate: NgbDate;\r\n maxPaymentDate: NgbDate;\r\n isLoading: boolean = false;\r\n\r\n paymentTypeOptions = [\r\n { value: HoldingPaymentType.Comission, label: 'support.manage-holdings.manage.payment-types.comission' },\r\n { value: HoldingPaymentType.Quotation, label: 'support.manage-holdings.manage.payment-types.quotation' },\r\n { value: HoldingPaymentType.Order, label: 'support.manage-holdings.manage.payment-types.order' }\r\n ];\r\n\r\n planOptions = [\r\n { value: PlanEnum.Popular, label: 'support.manage-holdings.manage.plan-types.popular' },\r\n { value: PlanEnum.V8, label: 'support.manage-holdings.manage.plan-types.v8' },\r\n { value: PlanEnum.Turbo, label: 'support.manage-holdings.manage.plan-types.turbo' }\r\n ];\r\n\r\n validationMessages: any;\r\n isPaymentTypeComission: boolean = false;\r\n isPaymentTypeOrder: boolean = false;\r\n paymentPercentageLabel: string;\r\n\r\n constructor(private formBuilder: UntypedFormBuilder, private notificationService: NotificationService, private globals: Globals) {\r\n this.holdingManageForm = this.formBuilder.group({\r\n plan: [\"\"],\r\n paymentType: [\"\"],\r\n monthlyFee: [0, [Validators.max(99999.99)]],\r\n comissionTax: [0, [Validators.required, Validators.min(0), Validators.max(99)]],\r\n customCashback: [\"\", Validators.required],\r\n supplierTax: [0, [Validators.min(0.01), Validators.max(99.99)]],\r\n cashbackDefault: [\"\", Validators.required],\r\n cashbackDefaultValue: [0, Validators.required],\r\n paymentStartDate: ['']\r\n });\r\n\r\n this.validationMessages = {\r\n tax: {\r\n required: this.globals.translate('support.manage-holdings.validation-messages.tax')\r\n },\r\n supplierTax: {\r\n min: this.globals.translate('support.manage-holdings.validation-messages.supplier-tax-min'),\r\n },\r\n cashbackDefaultValue: {\r\n required: this.globals.translate('support.manage-holdings.validation-messages.cashback-default-value')\r\n }\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n if (this.holding) {\r\n this.holdingManageForm.setValue({\r\n plan: this.holding.plan,\r\n paymentType: this.holding.paymentType == 0 ? HoldingPaymentType.Comission : this.holding.paymentType,\r\n monthlyFee: this.holding.monthlyFee ?? 0,\r\n comissionTax: this.holding.opportunityCost ?? 0,\r\n customCashback: this.holding.hasCashback,\r\n supplierTax: this.holding.tax,\r\n cashbackDefault: this.holding.rebate > 0,\r\n cashbackDefaultValue: this.holding.rebate,\r\n paymentStartDate: ''\r\n });\r\n\r\n this.onCustomCashbackChange();\r\n this.onCashbackDefaultChange();\r\n this.onPaymentTypeChange();\r\n\r\n this.maxPaymentDate = { year: new Date().getFullYear(), month: new Date().getMonth() + 1, day: new Date().getDate() } as NgbDate;\r\n\r\n if (this.holding.lastPaymentEndDate) {\r\n this.holding.lastPaymentEndDate = new Date(this.holding.lastPaymentEndDate);\r\n this.holding.formattedLastPaymentEndDate = formatDateToDDMMYYYY(this.holding.lastPaymentEndDate);\r\n\r\n this.minPaymentDate = { year: this.holding.lastPaymentEndDate.getFullYear(), month: this.holding.lastPaymentEndDate.getMonth() + 1, day: this.holding.lastPaymentEndDate.getDate() } as NgbDate;\r\n }\r\n\r\n\r\n if (!this.holding.isBillable)\r\n this.disableFieldsNotBillable()\r\n }\r\n }\r\n\r\n close() {\r\n this.goBackToList.emit();\r\n }\r\n\r\n createDate(inputDate: { year: number, month: number, day: number } | string): Date | undefined {\r\n if (typeof inputDate != 'string') {\r\n return new Date(inputDate.year, inputDate.month - 1, inputDate.day);\r\n }\r\n\r\n if (inputDate != '' && inputDate.checkIfHasTwoSlashes()) {\r\n var dateParts = inputDate.split(\"/\").map(d => parseInt(d));\r\n\r\n return new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n dateSelect(date: NgbDate): void {\r\n this.holdingManageForm.controls.paymentStartDate.setValue(formatDateToDDMMYYYY(this.createDate(date)));\r\n\r\n this.enableFieldsNotBillable();\r\n }\r\n\r\n disableFieldsNotBillable(): void {\r\n if (this.fieldsAlreadyDisabled)\r\n return;\r\n\r\n for (var control in this.holdingManageForm.controls) {\r\n if (control === 'paymentStartDate')\r\n continue;\r\n\r\n this.holdingManageForm.controls[control].disable();\r\n }\r\n\r\n this.fieldsAlreadyDisabled = true;\r\n }\r\n\r\n enableFieldsNotBillable(): void {\r\n if (!this.fieldsAlreadyDisabled)\r\n return;\r\n\r\n for (var control in this.holdingManageForm.controls) {\r\n this.holdingManageForm.controls[control].enable();\r\n }\r\n\r\n this.onCustomCashbackChange();\r\n this.onCashbackDefaultChange();\r\n this.onPaymentTypeChange();\r\n\r\n this.fieldsAlreadyDisabled = false;\r\n }\r\n\r\n save() {\r\n if (!this.holdingManageForm.touched) {\r\n this.close();\r\n return;\r\n }\r\n\r\n if (!this.isFormValid())\r\n return;\r\n\r\n this.isLoading = true;\r\n\r\n const formValue = this.holdingManageForm.value;\r\n const holdingSupplier = holdingSupplierForEditFactory(this.holding.holdingId, formValue.customCashback, formValue.monthlyFee, formValue.comissionTax, formValue.paymentType, formValue.plan, formValue.cashbackDefaultValue, formValue.supplierTax, this.createDate(formValue.paymentStartDate));\r\n\r\n try {\r\n this.saveHolding.emit(holdingSupplier);\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n isFormValid() {\r\n Object.keys(this.holdingManageForm.controls).forEach(field => {\r\n const control = this.holdingManageForm.get(field);\r\n control?.markAsTouched({ onlySelf: true });\r\n });\r\n\r\n let comissionTaxControl = this.holdingManageForm.get('comissionTax');\r\n let monthlyFeeControl = this.holdingManageForm.get('monthlyFee');\r\n let paymentStartDateControl = this.holdingManageForm.get('paymentStartDate');\r\n\r\n if (!this.holding.isBillable && paymentStartDateControl.value.length != 10) {\r\n paymentStartDateControl.setErrors({ paymentStartDateInvalido: true });\r\n paymentStartDateControl.markAsDirty();\r\n\r\n this.notificationService.showErrorToastr('support.manage-holdings.validation-messages.payment-date-invalid', { translateMessage: true });\r\n return false;\r\n }\r\n\r\n let paymentStartDate = this.createDate(paymentStartDateControl.value);\r\n\r\n if (!this.holding.isBillable && paymentStartDate > new Date()) {\r\n paymentStartDateControl.setErrors({ paymentStartDateInvalido: true });\r\n paymentStartDateControl.markAsDirty();\r\n\r\n this.notificationService.showErrorToastr('support.manage-holdings.validation-messages.payment-date-after-today', { translateMessage: true });\r\n return false;\r\n }\r\n\r\n if (!this.holding.isBillable && this.holding.lastPaymentEndDate && paymentStartDate < this.holding.lastPaymentEndDate) {\r\n paymentStartDateControl.setErrors({ paymentStartDateInvalido: true });\r\n paymentStartDateControl.markAsDirty();\r\n\r\n this.notificationService.showErrorToastr('support.manage-holdings.validation-messages.payment-date-before-previous', { translateMessage: true });\r\n return false;\r\n }\r\n\r\n if (this.isPaymentTypeOrder && monthlyFeeControl.value <= 0) {\r\n monthlyFeeControl.setErrors({ paymentTaxInvalido: true });\r\n monthlyFeeControl.markAsDirty();\r\n\r\n this.notificationService.showErrorToastr('support.manage-holdings.validation-messages.montlhy-payment', { translateMessage: true });\r\n return false;\r\n }\r\n\r\n if (comissionTaxControl.value <= 0 && monthlyFeeControl.value <= 0) {\r\n comissionTaxControl.setErrors({ paymentTaxInvalido: true });\r\n comissionTaxControl.markAsDirty();\r\n\r\n monthlyFeeControl.setErrors({ paymentTaxInvalido: true });\r\n monthlyFeeControl.markAsDirty();\r\n\r\n this.notificationService.showErrorToastr('support.manage-holdings.validation-messages.montlhy-tax-payment', { translateMessage: true, messageParameters: { label: this.globals.translate(this.paymentPercentageLabel) } });\r\n return false;\r\n } else {\r\n comissionTaxControl.setErrors({ paymentTaxInvalido: null });\r\n monthlyFeeControl.setErrors({ paymentTaxInvalido: null });\r\n\r\n comissionTaxControl.updateValueAndValidity();\r\n monthlyFeeControl.updateValueAndValidity();\r\n }\r\n\r\n this.holdingManageForm.get('cashbackDefaultValue')?.setErrors(null);\r\n let cashbackDefault = this.holdingManageForm.get('cashbackDefault')?.value;\r\n\r\n if (cashbackDefault === true) {\r\n let cashbackDefaultValue = this.holdingManageForm.get('cashbackDefaultValue')?.value;\r\n let plan = this.holdingManageForm.get('plan')?.value;\r\n\r\n if (plan === PlanEnum.Popular && cashbackDefaultValue !== 1) {\r\n this.holdingManageForm.get('cashbackDefaultValue')?.setErrors({ invalidCashbackDefaultValue: true });\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manage-holdings.messages.error.plan-popular-error'));\r\n return false;\r\n }\r\n\r\n if (cashbackDefaultValue <= 0 || cashbackDefaultValue > 10) {\r\n this.holdingManageForm.get('cashbackDefaultValue')?.setErrors({ invalidCashbackDefaultValue: true });\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manage-holdings.messages.error.plan-turbo-or-v8-error'));\r\n return false;\r\n }\r\n }\r\n\r\n if (this.holdingManageForm.valid)\r\n return true;\r\n\r\n Object.keys(this.validationMessages).forEach(field => {\r\n const control = this.holdingManageForm.get(field);\r\n const errorMessages = this.validationMessages[field];\r\n\r\n if (control?.invalid) {\r\n Object.keys(errorMessages).forEach(errorKey => {\r\n if (control.errors?.[errorKey]) {\r\n this.notificationService.showErrorToastr(errorMessages[errorKey]);\r\n }\r\n });\r\n }\r\n });\r\n\r\n return false;\r\n }\r\n\r\n onCustomCashbackChange() {\r\n let customCashbackSelected = this.holdingManageForm.controls['customCashback'].value === true;\r\n let supplierTaxControl = this.holdingManageForm.get('supplierTax');\r\n\r\n if (customCashbackSelected) {\r\n supplierTaxControl?.enable();\r\n } else {\r\n supplierTaxControl?.disable();\r\n supplierTaxControl.setValue(0);\r\n }\r\n }\r\n\r\n onCashbackDefaultChange() {\r\n let cashbackDefaultSelected = this.holdingManageForm.controls['cashbackDefault'].value === true;\r\n let cashbackDefaultValueControl = this.holdingManageForm.get('cashbackDefaultValue');\r\n\r\n if (cashbackDefaultSelected) {\r\n cashbackDefaultValueControl?.enable();\r\n } else {\r\n cashbackDefaultValueControl?.disable();\r\n cashbackDefaultValueControl.setValue(0);\r\n }\r\n }\r\n\r\n onPaymentDateChange() {\r\n let paymentDateControl = this.holdingManageForm.get('paymentStartDate');\r\n\r\n if (paymentDateControl.value.length != 10)\r\n return this.disableFieldsNotBillable();\r\n\r\n this.enableFieldsNotBillable();\r\n }\r\n\r\n onPaymentTypeChange() {\r\n this.isPaymentTypeComission = this.holdingManageForm.controls['paymentType'].value === HoldingPaymentType.Comission;\r\n this.isPaymentTypeOrder = this.holdingManageForm.controls['paymentType'].value === HoldingPaymentType.Order;\r\n this.paymentPercentageLabel = 'support.manage-holdings.manage.label.payment-type-percentage.' + HoldingPaymentType[this.holdingManageForm.controls['paymentType'].value].toLowerCase();\r\n }\r\n\r\n openManagePaymentModal() {\r\n this.holdingManagePaymentModal.open();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n @if (!holding.isBillable) {\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n @if (!isPaymentTypeOrder) {\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { HoldingSupplier } from '../../_models/holdingSupplier';\r\n\r\n@Component({\r\n selector: 'app-holdings-list', templateUrl: './holdings-list.component.html', styleUrls: ['./holdings-list.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportHoldingsListComponent {\r\n @Input() pageNumberController: number;\r\n @Input() holdings: HoldingSupplier[];\r\n @Input() totalHoldings: number;\r\n @Output() editHolding = new EventEmitter();\r\n @Output() pageChange = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n selectHoldingToEdit(holding: any) {\r\n this.editHolding.emit(holding);\r\n }\r\n\r\n changePage($event: PageEvent) {\r\n this.pageChange.emit($event.pageIndex);\r\n }\r\n}\r\n","
\r\n @if (holdings?.length <= 0) {\r\n

{{ 'support.manage-holdings.list.empty-list' | translate }}

\r\n } @else {\r\n
\r\n
\r\n
\r\n
\r\n
{{ 'support.manage-holdings.list.table-header.id' | translate }}
\r\n
{{ 'support.manage-holdings.list.table-header.name' | translate }}
\r\n
{{ 'support.manage-holdings.list.table-header.type' | translate }}
\r\n
{{ 'support.manage-holdings.list.table-header.payment-type' | translate }}
\r\n
{{ 'support.manage-holdings.list.table-header.cashback' | translate }}
\r\n
{{ 'support.manage-holdings.list.table-header.is-billable' | translate }}
\r\n
{{ 'support.manage-holdings.list.table-header.actions' | translate }}
\r\n
\r\n \r\n @for (holding of holdings; track holding) {\r\n
\r\n
{{holding.holdingId}}
\r\n
{{holding.name}}
\r\n
{{holding.holdingTypeDescription}}
\r\n
{{holding.paymentTypeDescription}}
\r\n
{{holding.cashbackTypeDescription}}
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n","import { Component, ViewChild } from '@angular/core';\r\nimport { ApiResponseModel } from 'app/_models/apiResponseModel';\r\nimport { GetByPageResponse } from './_models/getByPageResponse';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { NotificationService } from 'app/_services/notification.service';\r\nimport { Globals } from 'app/_models/globals';\r\nimport { HoldingSupplier } from './_models/holdingSupplier';\r\nimport { SupportHoldingsBillingDataManagementService } from './billing-data-management.service';\r\nimport { HoldingSupplierForEdit } from './_models/holdingSupplierForEdit';\r\nimport { SupportManageHoldingComponent } from './_components/holding-manage/holding-manage.component';\r\n\r\ndeclare const isEmpty: any;\r\n@Component({\r\n selector: 'app-manage-holdings', templateUrl: './billing-data-management.component.html', styleUrls: ['./billing-data-management.component.scss'],\r\n standalone: false\r\n})\r\nexport class SupportHoldingsBillingDataManagement {\r\n @ViewChild('templateHoldingManageComponent') public holdingManageComponent: SupportManageHoldingComponent;\r\n\r\n _searchString: string = '';\r\n isList: boolean = true;\r\n isLoading: boolean = false;\r\n actualPage: number = 0;\r\n selectedHoldingToEdit: HoldingSupplier = null;\r\n totalHoldings: number;\r\n holdings: HoldingSupplier[] = [];\r\n\r\n constructor(private supportManageHoldingsService: SupportHoldingsBillingDataManagementService, private route: ActivatedRoute, private notificationService: NotificationService, private ngxLoader: NgxUiLoaderService, private globals: Globals) {\r\n }\r\n\r\n ngOnInit() {\r\n let param_id = this.route.snapshot.params.id;\r\n\r\n if(!isEmpty(param_id))\r\n return this.getById(param_id);\r\n\r\n this.getByPage(0);\r\n }\r\n\r\n getById(holdingId: string) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.supportManageHoldingsService.getById(holdingId).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n let holding = response.result;\r\n\r\n if (holding) {\r\n this.openHoldingEdition(holding);\r\n this.ngxLoader.stopLoader('loader-principal');\r\n } else {\r\n this.goBackToList();\r\n }\r\n },\r\n error: error => {\r\n console.log(error);\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manage-holdings.messages.error.get-one'));\r\n this.goBackToList();\r\n }\r\n });\r\n }\r\n\r\n getByPage(pageNumber: number) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.supportManageHoldingsService.getByPage(pageNumber, this._searchString.toLowerCase()).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response && response.success) {\r\n this.actualPage = pageNumber;\r\n this.totalHoldings = response.result.totalHoldings;\r\n this.holdings = response.result.holdings;\r\n } else {\r\n this.actualPage = 0;\r\n this.totalHoldings = 0;\r\n this.holdings = [];\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manage-holdings.messages.error.list'));\r\n }\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n console.log(error);\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manage-holdings.messages.error.list'));\r\n }\r\n });\r\n }\r\n\r\n goBackToList() {\r\n if (this.holdings.length == 0)\r\n this.getByPage(0);\r\n\r\n this.isList = true;\r\n this.selectedHoldingToEdit = null;\r\n history.pushState({}, '', '/suporte/fornecedores/holdings');\r\n }\r\n\r\n handleHoldingSave(holding: HoldingSupplierForEdit) {\r\n if (!this.selectedHoldingToEdit.isBillable)\r\n return this.saveHoldingWithPayment(holding);\r\n\r\n return this.saveHolding(holding);\r\n }\r\n\r\n openHoldingEdition(holding: HoldingSupplier) {\r\n this.selectedHoldingToEdit = holding;\r\n history.pushState({}, '', '/suporte/fornecedores/holdings/edit/' + holding.holdingId);\r\n this.isList = false;\r\n }\r\n\r\n saveHolding(holding: HoldingSupplierForEdit) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.supportManageHoldingsService.editHoldingBillingData(holding).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response.success) {\r\n this.getByPage(0);\r\n this.goBackToList();\r\n } else {\r\n this.isLoading = false;\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manage-holdings.messages.error.edit'));\r\n }\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n console.log(error);\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.isLoading = false;\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manage-holdings.messages.error.edit'));\r\n }\r\n });\r\n }\r\n\r\n saveHoldingWithPayment(holding: HoldingSupplierForEdit) {\r\n this.ngxLoader.startLoader('loader-principal');\r\n\r\n this.supportManageHoldingsService.editHoldingBillingDataWithPayment(holding).subscribe({\r\n next: (response: ApiResponseModel) => {\r\n if (response.success) {\r\n this.getByPage(0);\r\n this.goBackToList();\r\n } else {\r\n this.isLoading = false;\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manage-holdings.messages.error.edit'));\r\n }\r\n\r\n this.ngxLoader.stopLoader('loader-principal');\r\n },\r\n error: error => {\r\n let firstKey = Object.keys(error.errors)[0];\r\n let message = firstKey && error.errors[firstKey]?.[0]?.message;\r\n\r\n if (message) {\r\n this.notificationService.showErrorToastr(message);\r\n } else {\r\n this.notificationService.showErrorToastr(this.globals.translate('support.manage-holdings.messages.error.edit'));\r\n }\r\n\r\n console.log(error);\r\n this.ngxLoader.stopLoader('loader-principal');\r\n this.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n get searchTerm(): string {\r\n return this._searchString;\r\n }\r\n\r\n set searchTerm(value: string) {\r\n this._searchString = value;\r\n this.getByPage(0);\r\n }\r\n}\r\n","
\r\n \r\n @if (!isList && selectedHoldingToEdit.isBillable) {\r\n \r\n }\r\n \r\n\r\n @if (isList) {\r\n \r\n }@else {\r\n \r\n }\r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { MasterPageComponent } from '../general/master-page/master-page.component';\r\nimport { SupportAvaliacaoVendedoresComponent } from './avaliacao-vendedores/avaliacao-vendedores.component';\r\nimport { SupportCadastroGestorWhatsappComponent } from './cadastro-gestor-whatsapp/cadastro-gestor-whatsapp.component';\r\nimport { SupportCadastroNovidadesComponent } from './cadastro-novidades/cadastro-novidades.component';\r\nimport { SupportContestacoesComponent } from './contestacoes/contestacoes.component';\r\nimport { SupportCotacoesComponent } from './cotacoes/cotacoes.component';\r\nimport { SupportFaturamentoComponent } from './faturamento/faturamento.component';\r\nimport { SupportDiarioComponent } from './diario/diario.component';\r\nimport { SupportGerenciarVendedoresComponent } from './gerenciar-vendedores/gerenciar-vendedores.component';\r\nimport { SupportLimparTelaVendedorComponent } from './limpar-tela-vendedor/limpar-tela-vendedor.component';\r\nimport { SupportOficinaSemDocumentacaoComponent } from './oficina-sem-documentacao/oficina-sem-documentacao.component';\r\nimport { SupportPedidosComponent } from './pedidos/pedidos.component';\r\nimport { SupportUsuarioInternoComponent } from './usuario-interno/usuario-interno.component';\r\nimport { SupportVoltarCotacaoComponent } from './voltar-cotacao/voltar-cotacao.component';\r\nimport { SupportMultiloginComponent } from './multilogin/multilogin.component';\r\nimport { SupportGuard } from '../_services/_guards/support.guard';\r\nimport { SupportCadastroCnpjComponent } from './cadastro-cnpj/cadastro-cnpj.component';\r\nimport { SupportHoldingsBillingDataManagement } from './holdings/billing-data-management/billing-data-management.component';\r\nimport { SupportManageHoldingComponent } from './holdings/billing-data-management/_components/holding-manage/holding-manage.component';\r\n\r\nconst supportRouterConfig: Routes = [\r\n {\r\n path: '', component: MasterPageComponent,\r\n children: [\r\n { path: 'avaliacao-vendedores', component: SupportAvaliacaoVendedoresComponent },\r\n { path: 'cotacoes', component: SupportCotacoesComponent },\r\n { path: 'pedidos', component: SupportPedidosComponent },\r\n { path: 'diario', component: SupportDiarioComponent },\r\n { path: 'gerenciar-vendedores', component: SupportGerenciarVendedoresComponent },\r\n\r\n {\r\n path: 'manutencao',\r\n children: [\r\n { path: 'cadastro-gestor-whatsapp', component: SupportCadastroGestorWhatsappComponent },\r\n { path: 'cadastro-novidades', component: SupportCadastroNovidadesComponent },\r\n { path: 'limpar-tela-vendedor', component: SupportLimparTelaVendedorComponent },\r\n { path: 'oficina-sem-documentacao', component: SupportOficinaSemDocumentacaoComponent },\r\n { path: 'usuario/interno', component: SupportUsuarioInternoComponent },\r\n { path: 'usuario/interno/new', component: SupportUsuarioInternoComponent },\r\n { path: 'usuario/interno/:id', component: SupportUsuarioInternoComponent },\r\n { path: 'usuario/interno/associations/:id', component: SupportUsuarioInternoComponent },\r\n { path: 'voltar-cotacao', component: SupportVoltarCotacaoComponent },\r\n { path: 'multilogin', component: SupportMultiloginComponent, canDeactivate:[SupportGuard] },\r\n { path: 'cadastro-cnpj-oficina', component: SupportCadastroCnpjComponent },\r\n { path: 'cadastro-cnpj-oficina/:id', component: SupportCadastroCnpjComponent },\r\n ]\r\n },\r\n\r\n { path: 'contestacao', component: SupportContestacoesComponent },\r\n { path: 'faturamento', component: SupportFaturamentoComponent },\r\n {\r\n path: 'fornecedores',\r\n children: [\r\n { path: 'holdings', component: SupportHoldingsBillingDataManagement },\r\n { path: 'holdings/edit/:id', component: SupportHoldingsBillingDataManagement },\r\n ]\r\n },\r\n ]\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports:\r\n [\r\n RouterModule.forChild(supportRouterConfig)\r\n ],\r\n exports: [RouterModule]\r\n})\r\nexport class SuporteRoutingModule { }\r\n\r\n","import { NgModule, LOCALE_ID } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ArrowLeft, Check, Edit, User, Plus, Trash, X } from 'angular-feather/icons';\r\nimport { AutocompleteLibModule } from 'angular-ng-autocomplete';\r\nimport { FeatherModule } from 'angular-feather';\r\nimport { FilterPipeModule } from 'ngx-filter-pipe';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NgbAccordionModule, NgbCollapseModule, NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\nimport { NgxUiLoaderModule } from 'ngx-ui-loader';\r\nimport { NgxLoadingModule } from 'ngx-loading';\r\nimport { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\nimport { TooltipModule } from 'ng2-tooltip-directive';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { NgxEditorModule } from 'ngx-editor';\r\n\r\nimport { SupportAdicionarComplementoComponent } from './_componentes/adicionar-complemento/adicionar-complemento.component';\r\nimport { SupportAlterarVendedoresComponent } from './_componentes/alterar-vendedores/alterar-vendedores.component';\r\nimport { SupportAvaliacaoVendedoresComponent } from './avaliacao-vendedores/avaliacao-vendedores.component';\r\nimport { SupportCadastroCnpjEdicaoComponent } from './cadastro-cnpj/_components/cadastro-cnpj-edicao/create.component';\r\nimport { SupportCadastroCnpjListComponent } from './cadastro-cnpj/_components/list/list.component';\r\nimport { SupportCadastroGestorWhatsappComponent } from './cadastro-gestor-whatsapp/cadastro-gestor-whatsapp.component';\r\nimport { SupportCadastroNovidadesComponent } from './cadastro-novidades/cadastro-novidades.component';\r\nimport { SupportCadastroNovidadesListComponent } from './cadastro-novidades/_components/list/list.component';\r\nimport { SupportCadastroNovidadesCreateComponent } from './cadastro-novidades/_components/create/create.component';\r\nimport { SupportContestacoesComponent } from './contestacoes/contestacoes.component';\r\nimport { SupportCotacoesComponent } from \"./cotacoes/cotacoes.component\";\r\nimport { SupportDiarioComponent } from './diario/diario.component';\r\nimport { SupportEditarCotacaoComponent } from './_componentes/editar-cotacao/editar-cotacao.component';\r\nimport { SupportEditarPecaComponent } from './_componentes/editar-peca/editar-peca.component';\r\nimport { SupportFaturamentoComponent } from './faturamento/faturamento.component';\r\nimport { SupportGridviewComponent } from './_componentes/gridview/gridview.component';\r\nimport { SupportGerenciarVendedoresComponent } from './gerenciar-vendedores/gerenciar-vendedores.component';\r\nimport { SupportLimparTelaVendedorComponent } from './limpar-tela-vendedor/limpar-tela-vendedor.component';\r\nimport { SupportMultiloginComponent } from './multilogin/multilogin.component';\r\nimport { SupportOficinaSemDocumentacaoComponent } from './oficina-sem-documentacao/oficina-sem-documentacao.component';\r\nimport { SupportPedidosComponent } from './pedidos/pedidos.component';\r\nimport { SupportUsuarioInternoComponent } from './usuario-interno/usuario-interno.component';\r\nimport { SupportUsuarioInternoEdicaoComponent } from './usuario-interno/_componentes/usuario-interno-edicao/usuario-interno-edicao.component';\r\nimport { SupportUsuarioInternoListaComponent } from './usuario-interno/_componentes/usuario-interno-lista/usuario-interno-lista.component';\r\nimport { SupportVoltarCotacaoComponent } from './voltar-cotacao/voltar-cotacao.component';\r\n\r\nimport { SettingsService } from 'app/_services/settings.service';\r\nimport { SharedModule } from 'app/_modules/shared.module';\r\nimport { SupportAvaliacaoVendedoresService } from './avaliacao-vendedores/avaliacao-vendedores.service';\r\nimport { SupportContestacoesService } from './contestacoes/contestacoes.service';\r\nimport { SupportCotacoesService } from \"./cotacoes/cotacoes.service\";\r\nimport { SupportDiarioService } from './diario/diario.service';\r\nimport { SupportFaturamentoService } from './faturamento/faturamento.service';\r\nimport { SupportGerenciarVendedoresService } from './gerenciar-vendedores/gerenciar-vendedores.service';\r\nimport { SupportOficinaSemDocumentacaoService } from './oficina-sem-documentacao/oficina-sem-documentacao.service';\r\nimport { SupportPedidosService } from './pedidos/pedidos.service';\r\nimport { SupportUsuarioInternoService } from './usuario-interno/usuario-interno.service';\r\nimport { SupportVoltarCotacaoService } from './voltar-cotacao/voltar-cotacao.service';\r\nimport { SupportCadastroCnpjComponent } from './cadastro-cnpj/cadastro-cnpj.component';\r\n\r\nimport { SupportGerenciarVendedoresModule } from './_componentes/gerenciar-vendedores/gerenciar-vendedores.module';\r\nimport { SuporteRoutingModule } from \"./support.route\";\r\nimport { NG_SCROLLBAR_OPTIONS, NgScrollbarModule } from 'ngx-scrollbar';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { SupportHoldingsBillingDataManagement } from './holdings/billing-data-management/billing-data-management.component';\r\nimport { SupportHoldingsListComponent } from './holdings/billing-data-management/_components/holdings-list/holdings-list.component';\r\nimport { SupportManageHoldingComponent } from './holdings/billing-data-management/_components/holding-manage/holding-manage.component';\r\nimport { SupportHoldingCustomComissionComponent } from './holdings/billing-data-management/_components/holding-custom-comission/holding-custom-comission.component';\r\nimport { SupportHoldingManagePaymentComponent } from './holdings/billing-data-management/_components/holding-manage-payment/holding-manage-payment.component';\r\n\r\nexport function HttpLoaderFactory(http: HttpClient) { return new TranslateHttpLoader(http); }\r\n\r\nconst icons = { ArrowLeft, Check, Edit, User, Plus, Trash, X }\r\n\r\n@NgModule({\r\n declarations: [\r\n SupportAdicionarComplementoComponent,\r\n SupportAlterarVendedoresComponent,\r\n SupportAvaliacaoVendedoresComponent,\r\n SupportCadastroGestorWhatsappComponent,\r\n SupportCadastroNovidadesComponent,\r\n SupportCadastroNovidadesCreateComponent,\r\n SupportCadastroNovidadesListComponent,\r\n SupportContestacoesComponent,\r\n SupportCotacoesComponent,\r\n SupportEditarCotacaoComponent,\r\n SupportEditarPecaComponent,\r\n SupportFaturamentoComponent,\r\n SupportDiarioComponent,\r\n SupportGerenciarVendedoresComponent,\r\n SupportGridviewComponent,\r\n SupportLimparTelaVendedorComponent,\r\n SupportMultiloginComponent,\r\n SupportOficinaSemDocumentacaoComponent,\r\n SupportPedidosComponent,\r\n SupportUsuarioInternoComponent,\r\n SupportUsuarioInternoEdicaoComponent,\r\n SupportUsuarioInternoListaComponent,\r\n SupportVoltarCotacaoComponent,\r\n SupportCadastroCnpjComponent,\r\n SupportCadastroCnpjEdicaoComponent,\r\n SupportCadastroCnpjListComponent,\r\n SupportHoldingsBillingDataManagement,\r\n SupportManageHoldingComponent,\r\n SupportHoldingCustomComissionComponent,\r\n SupportHoldingsListComponent,\r\n SupportHoldingManagePaymentComponent\r\n ],\r\n imports: [\r\n SharedModule,\r\n CommonModule,\r\n NgxMaskDirective,\r\n NgxMaskPipe,\r\n AutocompleteLibModule,\r\n FilterPipeModule,\r\n FeatherModule.pick(icons),\r\n FormsModule,\r\n MatPaginatorModule,\r\n NgSelectModule,\r\n NgbModule,\r\n NgbAccordionModule,\r\n NgbCollapseModule,\r\n NgxEditorModule.forRoot({\r\n locals: {\r\n bold: 'Negrito',\r\n italic: 'Itálico',\r\n code: 'Código',\r\n underline: 'Sublinhar',\r\n strike: 'Riscar',\r\n blockquote: 'Citação',\r\n bullet_list: 'Lista com marcadores',\r\n ordered_list: 'Lista ordenada',\r\n heading: 'Estilos',\r\n h3: 'Título',\r\n h4: 'Subtítulo',\r\n h5: 'Corpo',\r\n h6: 'Corpo 2',\r\n align_left: 'Alinhar à esquerda',\r\n align_center: 'Alinhar ao meio',\r\n align_right: 'Alinhar à direita',\r\n align_justify: 'Justificar',\r\n text_color: 'Cor do texto',\r\n background_color: 'Cor do destaque',\r\n insertLink: 'Inserir link',\r\n removeLink: 'Remover link',\r\n insertImage: 'Inserir imagem',\r\n url: 'URL',\r\n text: 'Texto',\r\n openInNewTab: 'Abrir em nova guia',\r\n insert: 'Inserir',\r\n altText: 'Texto alternativo',\r\n title: 'Título',\r\n remove: 'Remover',\r\n },\r\n }),\r\n NgxUiLoaderModule,\r\n NgxLoadingModule,\r\n NgScrollbarModule,\r\n ReactiveFormsModule,\r\n TooltipModule,\r\n TranslateModule.forChild(),\r\n SupportGerenciarVendedoresModule,\r\n SuporteRoutingModule\r\n ],\r\n providers: [\r\n SettingsService,\r\n SupportAvaliacaoVendedoresService,\r\n SupportContestacoesService,\r\n SupportCotacoesService,\r\n SupportDiarioService,\r\n SupportFaturamentoService,\r\n SupportGerenciarVendedoresService,\r\n SupportOficinaSemDocumentacaoService,\r\n SupportPedidosService,\r\n SupportUsuarioInternoService,\r\n SupportVoltarCotacaoService,\r\n\r\n { provide: LOCALE_ID, deps: [SettingsService, SupportCotacoesService], useFactory: (settingsService) => settingsService.getLocale() },\r\n { provide: NG_SCROLLBAR_OPTIONS, useValue: { visibility: 'hover' } },\r\n provideNgxMask()\r\n ],\r\n exports: [\r\n FeatherModule\r\n ],\r\n bootstrap: []\r\n})\r\nexport class SupportModule { }\r\n"],"mappings":"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U,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,KACV,SAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,SAAU,IACV,SAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAA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","names":["require_moment","__commonJSMin","exports","module","global","factory","hookCallback","hooks","setHookCallback","callback","isArray","input","isObject","hasOwnProp","a","b","isObjectEmpty","obj","k","isUndefined","isNumber","isDate","map","arr","fn","res","i","arrLen","extend","createUTC","format","locale","strict","createLocalOrUTC","defaultParsingFlags","getParsingFlags","m","some","fun","t","len","isValid","flags","parsedParts","isNowValid","createInvalid","momentProperties","updateInProgress","copyConfig","to","from","prop","val","momentPropertiesLen","Moment","config","isMoment","warn","msg","deprecate","firstTime","args","arg","key","argLen","deprecations","deprecateSimple","name","isFunction","set","mergeConfigs","parentConfig","childConfig","Locale","keys","defaultCalendar","calendar","mom","now","output","zeroFill","number","targetLength","forceSign","absNumber","zerosToFill","sign","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","removeFormattingTokens","makeFormatFunction","array","length","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTime","withoutSuffix","string","isFuture","pastFuture","diff","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","getPrioritizedUnits","unitsObj","u","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","regexes","addRegexToken","regex","strictRegex","isStrict","localeData","getParseRegexForToken","unescapeFormat","s","regexEscape","matched","p1","p2","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","value","tokens","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","isLeapYear","year","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","y","daysInYear","getSetYear","makeGetSet","getIsLeapYear","unit","keepTime","set$1","get","isUTC","d","month","date","stringGet","stringSet","prioritized","prioritizedLen","mod","n","x","indexOf","daysInMonth","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","localeMonthsShort","handleStrictParse","monthName","ii","llc","localeMonthsParse","setMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","shortP","longP","createDate","h","M","ms","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","weekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse$1","weekdayName","localeWeekdaysParse","getSetDayOfWeek","day","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","hours","minutes","isLower","baseConfig","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","split","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","__require","getSetGlobalLocale","values","data","getLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","overflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","l","match","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","defaults","c","currentDateArray","nowValue","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","w","weekYear","temp","weekdayOverflow","curWeek","createLocal","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","min","max","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","months","weeks","days","seconds","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","createAdder","direction","period","dur","tmp","isAdding","updateOffset","add","subtract","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","property","propertyLen","arrayTest","dataTypeTest","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","clone","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","toString","toISOString","keepOffset","utc","inspect","zone","prefix","datetime","suffix","inputString","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","valueOf","unix","toDate","toArray","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","abbr","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","erasName","erasAbbr","erasNarrow","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","preParsePostFormat","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","abs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","round","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","proto$2","_c0","_c1","_c2","_c3","a0","_c4","a1","_c5","AutocompleteComponent_div_4_Template","rf","ctx","_r2","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","ctx_r2","ɵɵnextContext","ɵɵresetView","ɵɵtext","ɵɵelementEnd","AutocompleteComponent_div_5_Template","ɵɵelement","AutocompleteComponent_div_7_Template","ɵɵadvance","ɵɵtextInterpolate","AutocompleteComponent_li_10_div_1_ng_container_1_Template","ɵɵelementContainer","AutocompleteComponent_li_10_div_1_Template","_r4","item_r5","ɵɵtemplate","ɵɵpipe","ctx_r5","idx_r7","ɵɵclassProp","ɵɵproperty","ɵɵpureFunction1","ɵɵpipeBind2","AutocompleteComponent_li_10_div_2_ng_container_1_Template","AutocompleteComponent_li_10_div_2_Template","_r8","ɵɵpipeBind3","AutocompleteComponent_li_10_Template","AutocompleteComponent_div_12_Template","_r9","AutocompleteComponent_li_15_div_1_ng_container_1_Template","AutocompleteComponent_li_15_div_1_Template","_r11","item_r12","ctx_r12","idx_r14","AutocompleteComponent_li_15_div_2_ng_container_1_Template","AutocompleteComponent_li_15_div_2_Template","_r15","AutocompleteComponent_li_15_Template","_r10","AutocompleteComponent_div_16_ng_container_1_Template","AutocompleteComponent_div_16_Template","AutocompleteComponent_div_17_Template","_r16","HighlightPipe","text","search","searchKeyword","pattern","t","regex","name","match","textCopied","__spreadValues","__ngFactoryType__","ɵɵdefinePipe","isArrowUp","keyCode","isArrowDown","isArrowUpDown","isEnter","isBackspace","isDelete","isESC","isTab","AutocompleteComponent","elementRef","renderer","EventEmitter","value","fn","event","isDisabled","changes","item","existingHistory","existingItem","copiedExistingHistory","selectedIndex","el","clickedComponent","inside","history","scrollTop","scrollHeight","elementHeight","fromEvent","map","filter","debounceTime","totalNumItem","sum","index","listElement","items","node","listHeight","itemHeight","visibleTop","visibleBottom","targetPosition","selected","copiedHistoryList","e","v","i","ɵɵdirectiveInject","ElementRef","Renderer2","ɵɵdefineComponent","dirIndex","ɵɵcontentQuery","TemplateRef","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵviewQuery","ɵɵresolveDocument","ɵɵProvidersFeature","NG_VALUE_ACCESSOR","forwardRef","ɵɵNgOnChangesFeature","_r1","ɵɵtwoWayListener","ɵɵtwoWayBindingSet","ɵɵattribute","ɵɵpropertyInterpolate","ɵɵtwoWayProperty","ɵɵpureFunction2","NgClass","DefaultValueAccessor","NgControlStatus","NgModel","NgIf","NgForOf","NgTemplateOutlet","AutocompleteLibModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","FormsModule","_c0","_c1","_c2","_c3","_c4","a0","NgDropdownPanelComponent_Conditional_0_Template","rf","ctx","ɵɵelementStart","ɵɵelementContainer","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵadvance","ɵɵproperty","ɵɵpureFunction1","NgDropdownPanelComponent_Conditional_8_Template","_c5","_c6","_c7","a1","a2","_c8","_c9","a3","NgSelectComponent_Conditional_2_ng_template_0_Template","ɵɵtext","ctx_r1","ɵɵtextInterpolate","NgSelectComponent_Conditional_2_ng_template_2_Template","NgSelectComponent_Conditional_2_Template","ɵɵtemplate","ɵɵtemplateRefExtractor","defaultPlaceholderTemplate_r3","ɵɵreference","NgSelectComponent_Conditional_3_For_1_ng_template_1_Template","_r4","ɵɵgetCurrentView","ɵɵlistener","ɵɵrestoreView","item_r5","ɵɵresetView","ɵɵelement","NgSelectComponent_Conditional_3_For_1_ng_template_3_Template","NgSelectComponent_Conditional_3_For_1_Template","defaultLabelTemplate_r6","ɵɵclassProp","ɵɵpureFunction3","NgSelectComponent_Conditional_3_Template","ɵɵrepeaterCreate","ɵɵcomponentInstance","ɵɵrepeater","NgSelectComponent_Conditional_4_ng_template_0_Template","NgSelectComponent_Conditional_4_Template","ɵɵpureFunction2","NgSelectComponent_Conditional_8_ng_template_0_Template","NgSelectComponent_Conditional_8_ng_template_2_Template","NgSelectComponent_Conditional_8_Template","defaultLoadingSpinnerTemplate_r8","NgSelectComponent_Conditional_9_Conditional_0_Template","NgSelectComponent_Conditional_9_Conditional_1_Template","ɵɵpropertyInterpolate","NgSelectComponent_Conditional_9_Template","ɵɵconditional","NgSelectComponent_Conditional_12_For_3_ng_template_1_Template","item_r11","NgSelectComponent_Conditional_12_For_3_ng_template_3_Template","NgSelectComponent_Conditional_12_For_3_Template","_r10","defaultOptionTemplate_r12","ɵɵattribute","ɵɵpureFunction4","NgSelectComponent_Conditional_12_Conditional_4_ng_template_1_Template","ɵɵtextInterpolate1","NgSelectComponent_Conditional_12_Conditional_4_ng_template_3_Template","NgSelectComponent_Conditional_12_Conditional_4_Template","_r13","defaultTagTemplate_r14","NgSelectComponent_Conditional_12_Conditional_5_ng_template_0_Template","NgSelectComponent_Conditional_12_Conditional_5_ng_template_2_Template","NgSelectComponent_Conditional_12_Conditional_5_Template","defaultNotFoundTemplate_r15","NgSelectComponent_Conditional_12_Conditional_6_ng_template_0_Template","NgSelectComponent_Conditional_12_Conditional_6_ng_template_2_Template","NgSelectComponent_Conditional_12_Conditional_6_Template","defaultTypeToSearchTemplate_r16","NgSelectComponent_Conditional_12_Conditional_7_ng_template_0_Template","NgSelectComponent_Conditional_12_Conditional_7_ng_template_2_Template","NgSelectComponent_Conditional_12_Conditional_7_Template","defaultLoadingTextTemplate_r17","NgSelectComponent_Conditional_12_Template","_r9","$event","ɵɵelementContainerStart","ɵɵelementContainerEnd","unescapedHTMLExp","hasUnescapedHTMLExp","htmlEscapes","escapeHTML","value","chr","isDefined","isObject","isPromise","isFunction","NgItemLabelDirective","element","changes","__ngFactoryType__","ɵɵdirectiveInject","ElementRef","ɵɵdefineDirective","ɵɵNgOnChangesFeature","NgOptionTemplateDirective","template","TemplateRef","NgOptgroupTemplateDirective","NgLabelTemplateDirective","NgMultiLabelTemplateDirective","NgHeaderTemplateDirective","NgFooterTemplateDirective","NgNotFoundTemplateDirective","NgPlaceholderTemplateDirective","NgTypeToSearchTemplateDirective","NgLoadingTextTemplateDirective","NgTagTemplateDirective","NgLoadingSpinnerTemplateDirective","NgClearButtonTemplateDirective","newId","diacritics","stripSpecialChars","text","match","a","ItemsList","_ngSelect","_selectionModel","i","item","items","index","multiple","findBy","option","keepDisabled","term","hideSelected","key","matchedItems","searchItem","last","head","x","markDefault","lastMarkedIndex","keys","len","label","selected","parent","child","b","search","opt","steps","selectedIndex","prop","groups","children","isFnKey","keyFn","group","isGroupByFn","withoutGroup","isObjectKey","groupKey","groupValue","NgDropdownPanelService","scrollPos","itemsLength","buffer","d","scrollHeight","indexByScrollTop","end","maxStart","start","topPadding","itemHeight","panelHeight","itemsPerViewport","itemTop","lastScroll","itemBottom","top","bottom","ɵɵdefineInjectable","CSS_POSITIONS","SCROLL_SCHEDULER","animationFrameScheduler","asapScheduler","NgDropdownPanelComponent","_renderer","_zone","_panelService","_elementRef","_document","EventEmitter","Subject","offset","change","startFromOption","scrollTo","panel","currentPosition","position","REMOVE_CSS_CLASS","ADD_CSS_CLASS","fromEvent","takeUntil","auditTime","path","scrollTop","merge","firstChange","height","range","first","optionHeight","padding","dropdownEl","selectRect","offsetTop","dropdownHeight","select","offsetLeft","delta","offsetBottom","event","Renderer2","NgZone","DOCUMENT","ɵɵdefineComponent","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","booleanAttribute","ɵɵInputTransformsFeature","ɵɵprojectionDef","ɵɵprojection","NgTemplateOutlet","NgOptionComponent","elementRef","KeyCode","DefaultSelectionModelFactory","DefaultSelectionModel","groupAsModel","childrenCount","selectedCount","NgSelectConfig","ConsoleService","message","SELECTION_MODEL_FACTORY","InjectionToken","NgSelectComponent","classes","autoFocus","config","newSelectionModel","_cd","_console","_","fn","target","state","tag","handleTag","empty","firstItem","mapNgOptions","options","handleOptionChange","changedOrDestroyed","startWith","validateBinding","ngModel","val","isValObject","isPrimitive","tap","letter","debounceTime","filter","map","input","attributes","__spreadValues","model","searchTerm","nextStep","nextIndex","ɵɵinjectAttribute","ChangeDetectorRef","dirIndex","ɵɵcontentQuery","numberAttribute","ɵɵProvidersFeature","NG_VALUE_ACCESSOR","forwardRef","_r1","searchInput_r7","NgClass","NgSelectModule","ɵɵdefineNgModule","ɵɵdefineInjector","CotacaoSemaforoVendedorStatusEnum","isParticipando","statusId","Participando","Respondido","includes","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r5","vendedor_r4","ɵɵnextContext","$implicit","ctx_r1","ɵɵresetView","acao_apagar_resposta","ɵɵelementEnd","ɵɵpropertyInterpolate","ɵɵpipeBind1","_r3","handleSellerInclusion","ɵɵtext","ɵɵtemplate","SupportAlterarVendedoresComponent_ng_template_0_For_24_Conditional_8_Conditional_3_Template","ɵɵadvance","ɵɵtextInterpolate1","isIncluded","ɵɵconditional","removeAnswer","SupportAlterarVendedoresComponent_ng_template_0_For_24_Conditional_8_Template","ɵɵproperty","ɵɵpureFunction1","_c1","bloqueado","ɵɵtextInterpolate","supplier_name","seller_name","situacao","_r1","fecharModal","ɵɵrepeaterCreate","SupportAlterarVendedoresComponent_ng_template_0_For_24_Template","ɵɵrepeaterTrackByIdentity","ɵɵelement","SupportAlterarVendedoresComponent_ng_template_0_ng_template_30_Template","ɵɵtemplateRefExtractor","ɵɵtextInterpolate2","cotacao","quotation_id","veiculo","ɵɵrepeater","vendedores","loading","templateAlterar_r6","SupportAlterarVendedoresComponent","notificationService","supportCotacoesService","globals","modalService","template","visivel","fechar","EventEmitter","atualizar","modalRef","constructor","ngOnInit","ngOnChanges","changes","isEmpty","currentValue","abrirModal","hide","nAttempts","options","backdrop","class","keyboard","show","loadSellers","atualizarVendedor","vendedor","isParticipando","status_id","deleteAnswer","seller_company_id","subscribe","next","response","success","showSuccessToastr","translate","error","console","log","showErrorToastr","emit","removeSeller","includeSeller","getAllSellersByQuotationId","result","map","v","ɵɵdirectiveInject","NotificationService","SupportCotacoesService","Globals","BsModalService","selectors","viewQuery","rf","ctx","SupportAlterarVendedoresComponent_ng_template_0_Template","SupportAvaliacaoVendedoresService","BaseService","config","_domain","constructor","getAll","seller_company_ids","listArray","join","executeGet","url","body","getAllSellers","getAllSellersByQuotationId","quotation_id","ɵɵinject","SettingsService","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵpropertyInterpolate","item_r1","holding_id","ɵɵadvance","ɵɵtextInterpolate","fornecedor","item_r2","seller_company_id","vendedor","ɵɵtextInterpolate1","ɵɵpipeBind1","avaliacao_r3","total_pedidos","total_pedidos_ultimos_90","taxa_entrega_prazo","taxa_entrega_prazo_ultimos_90","taxa_avaliacoes_positivas","taxa_avaliacoes_positivas_ultimos_90","ɵɵrepeaterCreate","SupportAvaliacaoVendedoresComponent_Conditional_30_For_28_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","ctx_r3","avaliacoes","SupportAvaliacaoVendedoresComponent","notificationService","avaliacaoVendedoresService","globals","ngxLoader","todosFornecedores","fornecedoresHoldings","vendedoresFornecedor","cotacaoSelecionada","fornecedorSelecionado","vendedorSelecionado","constructor","ngOnInit","carregarTela","nAttempts","startLoader","getAllSellers","subscribe","next","response","success","result","avaliacaoVendedorFornecedores","fornecedores","map","f","sort","sort_by","name","unique","handleDropdownConfiguration","stopLoader","error","console","log","showErrorToastr","translate","changeFornecedor","holdingId","undefined","vendedores","filter","changeVendedor","sellerCompanyId","global","handleSingleDropdownConfiguration","value","className","translateName","callback","waitForElm","then","$","select2","language","placeholder","off","on","val","document","focus","select","listarAvaliacoes","seller_company_ids","getAll","avaliacaoVendedores","pesquisar","__async","isEmpty","showWarning","getAllSellersByQuotationId","vendedoresCotacao","push","v","ɵɵdirectiveInject","NotificationService","SupportAvaliacaoVendedoresService","Globals","NgxUiLoaderService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","SupportAvaliacaoVendedoresComponent_For_11_Template","SupportAvaliacaoVendedoresComponent_For_20_Template","ɵɵlistener","ɵɵtemplate","SupportAvaliacaoVendedoresComponent_Conditional_29_Template","SupportAvaliacaoVendedoresComponent_Conditional_30_Template","ɵɵelement","ɵɵproperty","ɵɵtwoWayProperty","ɵɵconditional","length","import_uuid","CadastroCNPJService","BaseService","config","_domain","constructor","getAll","executeGet","url","getAllCompaniesWithoutCnpj","companyId","delete","executeDelete","save","companiesCnpj","body","executePost","ɵɵinject","SettingsService","factory","ɵfac","providedIn","CnpjDuplicadoValidator","control","parent","cnpj","value","id","controls","FormArray","map","c","filter","length","ManageCompanyCnpj","id","cnpj","name","fantasyName","companiesCnpjs","constructor","init","Object","assign","CompanyCnpj","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵpropertyInterpolate","companyCnpj_r1","id","ɵɵadvance","ɵɵtextInterpolate","fantasy_name","ctx_r1","validationMessages","ɵɵtemplate","SupportCadastroCnpjEdicaoComponent_For_22_Conditional_6_Conditional_1_Template","SupportCadastroCnpjEdicaoComponent_For_22_Conditional_6_Conditional_2_Template","SupportCadastroCnpjEdicaoComponent_For_22_Conditional_6_Conditional_3_Template","ɵɵconditional","empresa_r3","get","hasError","SupportCadastroCnpjEdicaoComponent_For_22_Conditional_12_Conditional_1_Template","SupportCadastroCnpjEdicaoComponent_For_22_Conditional_12_Conditional_2_Template","SupportCadastroCnpjEdicaoComponent_For_22_Conditional_12_Conditional_3_Template","ɵɵlistener","ɵɵrestoreView","_r4","ɵ$index_39_r5","ɵɵnextContext","$index","ɵɵresetView","excluirCampoCnpj","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelement","SupportCadastroCnpjEdicaoComponent_For_22_Conditional_6_Template","SupportCadastroCnpjEdicaoComponent_For_22_Conditional_12_Template","SupportCadastroCnpjEdicaoComponent_For_22_Conditional_14_Template","ɵɵproperty","ɵɵclassMapInterpolate1","ɵɵpureFunction1","_c0","submitted","tmp_14_0","invalid","tmp_15_0","MASKS","cnpj","text","tmp_19_0","tmp_20_0","SupportCadastroCnpjEdicaoComponent","activatedRoute","cadastroCnpjService","notificationService","globals","fb","ngxLoader","cdr","onAlterarTela","EventEmitter","_manageCompanyCnpj","manageCompanyCnpj","value","carregarTela","formInputElements","cadastroForm","repairerList","compradoresLocal","errors","companiesWithoutCnpjList","isNewCnpj","NgxBrazilMASKS","constructor","group","repairers","array","ngOnInit","required","translate","cnpjDuplicado","razaoSocial","maxLength","pattern","adicionarCampoCnpj","companyCnpj","disabled","companiesCnpjs","push","CompanyCnpj","companyGroup","uuid","Validators","NgxBrazilValidators","CnpjDuplicadoValidator","name","className","length","waitForElm","then","$","focus","resetValidation","buildCompanyCnpj","configurarDropDownList","scope","select2","language","placeholder","off","on","e","showCompanyInformation","val","document","select","index","splice","removeAt","companyId","nAttempts","getAllCompaniesWithoutCnpj","subscribe","next","response","success","isEmpty","result","companiesCnpj","params","forEach","detectChanges","error","console","log","showErrorToastr","salvar","__async","validateAllFormFields","Object","assign","startLoader","save","showSuccessToastr","voltar","stopLoader","showWarning","reset","clear","selectedItem","find","item","formGroup","keys","controls","field","control","FormControl","markAsTouched","onlySelf","updateValueAndValidity","FormGroup","FormArray","controlGroup","atualizar","emit","is_listagem","ɵɵdirectiveInject","ActivatedRoute","CadastroCNPJService","NotificationService","Globals","UntypedFormBuilder","NgxUiLoaderService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","FormControlName","ElementRef","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","ɵɵrepeaterCreate","SupportCadastroCnpjEdicaoComponent_For_10_Template","ɵɵrepeaterTrackByIdentity","SupportCadastroCnpjEdicaoComponent_For_22_Template","ɵɵtwoWayProperty","ɵɵrepeater","SupportGridview","actions","emptyText","list","sort","table","constructor","edit","enable","type","remove","isHtml","value","enabled","sortedBy","isReverse","set","options","__spreadValues","undefined","SupportGridviewTableBodyCell","className","format","templateName","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ctx_r0","config","emptyText","value","ɵɵelement","ɵɵproperty","ɵɵsanitizeHtml","ɵɵtemplate","SupportGridviewComponent_Conditional_1_Conditional_1_Template","SupportGridviewComponent_Conditional_1_Conditional_2_Template","ɵɵconditional","isHtml","ɵɵclassMapInterpolate1","sort","isReverse","ɵɵlistener","ɵɵrestoreView","_r2","col_r3","ɵɵnextContext","$implicit","ɵɵresetView","sortTableBy","sortName","SupportGridviewComponent_Conditional_2_For_3_Conditional_0_Conditional_3_Template","className","ɵɵtextInterpolate1","sortedBy","SupportGridviewComponent_Conditional_2_For_3_Conditional_0_Template","SupportGridviewComponent_Conditional_2_For_3_Conditional_1_Template","enabled","item_r5","col_r4","ɵɵpipeBind2","format","ɵɵelementContainer","SupportGridviewComponent_Conditional_2_For_6_For_2_Conditional_4_ng_container_0_Template","getTemplate","templateName","ɵɵpureFunction1","_c0","SupportGridviewComponent_Conditional_2_For_6_For_2_Conditional_1_Template","SupportGridviewComponent_Conditional_2_For_6_For_2_Conditional_2_Template","SupportGridviewComponent_Conditional_2_For_6_For_2_Conditional_3_Template","SupportGridviewComponent_Conditional_2_For_6_For_2_Conditional_4_Template","SupportGridviewComponent_Conditional_2_For_6_For_2_Conditional_5_Template","SupportGridviewComponent_Conditional_2_For_6_For_2_Conditional_6_Template","type","_r6","edit","ɵɵpropertyInterpolate","_r7","ctx_r7","ɵ$index_38_r9","$index","remove","_r10","actions","disabledCondition","tmp_15_0","labelText","undefined","_r11","SupportGridviewComponent_Conditional_2_For_6_Conditional_3_Conditional_1_Template","SupportGridviewComponent_Conditional_2_For_6_Conditional_3_Conditional_2_Template","SupportGridviewComponent_Conditional_2_For_6_Conditional_3_Conditional_3_Template","SupportGridviewComponent_Conditional_2_For_6_Conditional_3_Conditional_4_Template","enable","ɵɵrepeaterCreate","SupportGridviewComponent_Conditional_2_For_6_For_2_Template","ɵɵrepeaterTrackByIdentity","SupportGridviewComponent_Conditional_2_For_6_Conditional_3_Template","ɵɵrepeater","table","body","SupportGridviewComponent_Conditional_2_For_3_Template","SupportGridviewComponent_Conditional_2_For_6_Template","header","bodyClassName","list","SupportGridviewComponent","notificationService","SupportGridview","templates","onEdit","EventEmitter","onRemove","onSort","constructor","item","__async","confirm","confirmationText","showConfirmationDialog","emit","index","find","t","name","template","column","sort_by","reverse","ɵɵdirectiveInject","NotificationService","selectors","inputs","outputs","standalone","decls","vars","consts","rf","ctx","SupportGridviewComponent_Conditional_1_Template","SupportGridviewComponent_Conditional_2_Template","length","SupportCadastroCnpjListComponent","globals","router","cadastroCnpjService","ngxLoader","notificationService","onAlterarTela","EventEmitter","filter","config","SupportGridview","companiesCnpjList","list","value","constructor","set","actions","edit","enable","remove","confirmationText","emptyText","isHtml","table","body","SupportGridviewTableBodyCell","header","className","onEdit","company","emit","is_listagem","company_id","id","onRemove","$event","item","startLoader","delete","subscribe","next","atualizar","showSuccessToastr","translate","stopLoader","error","showErrorToastr","ɵɵdirectiveInject","Globals","Router","CadastroCNPJService","NgxUiLoaderService","NotificationService","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","SupportCadastroGestorWhatsappService","BaseService","config","_domain","constructor","getRepairerList","executeGet","url","removeRepairer","holding_id","executeDelete","saveRepairer","repairer","executePost","body","ɵɵinject","SettingsService","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r2","displayMessage","manager_name","ɵɵsanitizeHtml","manager_whatsapp","ɵɵtext","ɵɵlistener","ɵ$index_38_r2","ɵɵrestoreView","_r1","$index","ɵɵnextContext","ɵɵresetView","toggle","ɵɵtemplate","SupportCadastroGestorWhatsappComponent_Conditional_7_For_17_Conditional_10_Template","SupportCadastroGestorWhatsappComponent_Conditional_7_For_17_Conditional_13_Template","removeRepairer","ctx_r3","repairer_r5","$implicit","save","ɵɵtextInterpolate","get","value","ɵɵpureFunction1","_c0","ɵɵconditional","_c1","MASKS","phoneNumber","textMaskFunction","ɵɵclassMapInterpolate1","ɵɵpipeBind1","valid","ɵɵrepeaterCreate","SupportCadastroGestorWhatsappComponent_Conditional_7_For_17_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","repairerList","controls","ɵɵtextInterpolate1","SupportCadastroGestorWhatsappComponent","notificationService","cadastroGestorWhatsappService","globals","fb","ngxLoader","repairers","repairersForm","errors","genericValidator","validationMessages","formInputElements","_searchString","NgxBrazilMASKS","constructor","ngOnInit","group","array","required","translate","maxLength","pattern","celular","GenericValidator","getList","addRepairer","repairer","repairerGroup","user_company_id","repairer_name","user_fullname","is_active","disabled","Validators","NgxBrazilValidators","name_formated","is_central","push","buildRepairerList","clear","term","toLowerCase","filter","r","includes","startLoader","getRepairerList","subscribe","next","ret","stopLoader","success","result","managers","error","showErrorToastr","index","__async","showConfirmationDialog","startLoading","stopLoading","showSuccessToastr","setTimeout","listIndex","findIndex","at","splice","$","show","prop","isUpdate","spinnerName","hide","isCentral","repairerControl","extend","saveRepairer","markAsPristine","console","log","setValue","disable","enable","validate","controlBlur","map","formControl","fromEvent","nativeElement","merge","processarMensagens","searchTerm","ɵɵdirectiveInject","NotificationService","SupportCadastroGestorWhatsappService","Globals","FormBuilder","NgxUiLoaderService","selectors","viewQuery","rf","ctx","FormControlName","ElementRef","$event","SupportCadastroGestorWhatsappComponent_Conditional_7_Template","SupportCadastroGestorWhatsappComponent_Conditional_8_Template","length","SupportCadastroNovidadesService","BaseService","config","_domain","constructor","deleteUpdate","id","executeDelete","url","getUpdatesList","executeGet","save","update","executePost","body","ɵɵinject","SettingsService","factory","ɵfac","providedIn","import_moment","SimplifiedRolesIdsEnum","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r3","ctx_r3","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","selectedUpdate","is_active","ɵɵresetView","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵtwoWayProperty","SupportCadastroNovidadesCreateComponent","supportCadastroNovidadesService","notificationService","globals","ngxLoader","simplifiedRolesIdsEnum","SimplifiedRolesIdsEnum","calendarMaxDate","calendarMinDate","datePicked","bugsEditor","bugsHtml","featuresEditor","featuresHtml","isEditMode","rolesSelected","central","comprador","vendedor","dono","gestor","toolbar","heading","removeHTMLTags","closeUpdateCreation","EventEmitter","constructor","date","Date","year","getFullYear","month","getMonth","day","getDate","ngOnInit","Editor","release_date","role","Central","Comprador","Vendedor","DonoDaOficina","GestorDePecas","id","bugs_info","features_info","title","ngOnDestroy","destroy","close","emit","saveUpdate","clearToastr","hasErrors","toString","showErrorToastr","translate","startLoader","save","subscribe","next","response","success","showSuccessToastr","stopLoader","error","selectPublic","input","$","target","is","Number","val","ɵɵdirectiveInject","SupportCadastroNovidadesService","NotificationService","Globals","NgxUiLoaderService","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","_r1","ɵɵlistener","d_r2","ɵɵreference","toggle","ɵɵtemplate","SupportCadastroNovidadesCreateComponent_Conditional_16_Template","ɵɵproperty","ɵɵconditional","ɵɵtextInterpolate1","SupportCadastroNovidadesListComponent","supportCadastroNovidadesService","ngxLoader","translateService","filter","editUpdate","EventEmitter","updatesListChange","_updatesList","updatesList","emit","forEach","u","mudancas","has_features","instant","has_bugs_fixes","config","list","SupportGridview","constructor","set","actions","edit","enable","remove","confirmationText","emptyText","isHtml","value","table","body","SupportGridviewTableBodyCell","header","className","onEdit","update","onRemove","novidade","startLoader","deleteUpdate","item","id","subscribe","next","response","success","stopLoader","ɵɵdirectiveInject","SupportCadastroNovidadesService","NgxUiLoaderService","TranslateService","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵproperty","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","openUpdateCreation","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵtwoWayListener","$event","_r3","i0","ɵɵtwoWayBindingSet","updatesListFiltered","ɵɵtwoWayProperty","_r4","closeUpdateCreation","ɵɵproperty","selectedUpdate","SupportCadastroNovidadesComponent","supportCadastroNovidadesService","ngxLoader","filter","updatesList","createUpdate","constructor","ngOnInit","loadUpdates","startLoader","getUpdatesList","subscribe","next","response","result","features","stopLoader","onSearch","isEmpty","term","toLowerCase","o","compararStringContemString","title","mudancas","moment","release_date","format","indexOf","closeUpdateCreationFunc","bind","openUpdateCreationFunc","ɵɵdirectiveInject","SupportCadastroNovidadesService","NgxUiLoaderService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SupportCadastroNovidadesComponent_Conditional_4_Template","SupportCadastroNovidadesComponent_Conditional_7_Template","SupportCadastroNovidadesComponent_Conditional_8_Template","ɵɵconditional","SupportContestacoesService","BaseService","accountService","config","_domain","constructor","approve","contestacoes","body","executePost","url","getAll","isEmpty","usuarioLocal","logout","EMPTY","executeGet","ɵɵinject","AccountService","SettingsService","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵelement","ɵɵlistener","$event","contestacao_r4","ɵɵrestoreView","_r3","$implicit","ctx_r1","ɵɵnextContext","ɵɵresetView","selecionar","ɵɵpropertyInterpolate","motivo","fornecedor","oficina","ɵɵtextInterpolate2","quotation_id","veiculo","peca","ɵɵpipeBind2","reembolso","_r1","selecionarTodas","ɵɵrepeaterCreate","SupportContestacoesComponent_Conditional_6_For_26_Template","ɵɵrepeaterTrackByIdentity","aprovar","ɵɵrepeater","contestacoes","ɵɵproperty","algumaContestacaoSelecionada","SupportContestacoesComponent","notificationService","contestacoesService","globals","ngxLoader","contestacoesSelecionadas","constructor","ngOnInit","carregarTela","__async","showConfirmationDialog","aprovarExecutar","nAttempts","startLoader","contestacoesAprovadas","filter","c","some","cs","id","length","approve","subscribe","next","showSuccessToastr","translate","error","console","log","stopLoader","showErrorToastr","getAll","response","result","contestacao","stopPropagation","$","target","is","push","is_checked","forEach","prop","ɵɵdirectiveInject","NotificationService","SupportContestacoesService","Globals","NgxUiLoaderService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SupportContestacoesComponent_Conditional_5_Template","SupportContestacoesComponent_Conditional_6_Template","ɵɵconditional","QuotationPageTypeEnum","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵlistener","$event","cotacao_r3","ɵɵrestoreView","_r2","$implicit","ctx_r3","ɵɵnextContext","ɵɵresetView","selecionarCotacao","quotation_id","ɵɵelement","acao_excluir","acao_marcar_concluido","QuotationPageTypeEnum","Cotacoes","ɵɵproperty","ɵɵpureFunction2","_c1","cotacaoSelecionada","ultima_solicitacao_ajuda","ɵɵtextInterpolate1","comprador","empresa","ɵɵclassMapInterpolate1","marca","veiculo","ɵɵtextInterpolate3","total_pecas_respondidas","total_pecas","total_pecas_bo","total_respostas","tem_pagantes","ɵɵrepeaterCreate","SupportCotacoesComponent_Conditional_12_For_20_Template","ɵɵrepeaterTrackByIdentity","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate2","ɵɵrepeater","cotacoesFiltradas","_r6","modal_alterar_vendedores_abrir","ɵɵtemplate","SupportCotacoesComponent_Conditional_24_Conditional_0_Template","_r5","modal_adicionar_vendedor_externo_abrir","atualizarCotacao","ɵɵconditional","is_from_api","_r7","vendedor_r8","whatsapp_enviar","SupportCotacoesComponent_ng_template_27_Conditional_4_Conditional_3_For_11_Conditional_2_Template","SupportCotacoesComponent_ng_template_27_Conditional_4_Conditional_3_For_11_Conditional_3_Template","ɵɵpureFunction1","_c2","bloqueado","is_billable","fone2","user_company_id","nome","fones","email","SupportCotacoesComponent_ng_template_27_Conditional_4_Conditional_3_For_11_Template","vendedores","aguardando","SupportCotacoesComponent_ng_template_27_Conditional_4_Conditional_2_Template","SupportCotacoesComponent_ng_template_27_Conditional_4_Conditional_3_Template","length","vendedor_r9","razao_nao_participar","SupportCotacoesComponent_ng_template_27_Conditional_12_For_8_Conditional_2_Template","SupportCotacoesComponent_ng_template_27_Conditional_12_For_8_Conditional_3_Template","_c3","nao_quer_participar","SupportCotacoesComponent_ng_template_27_Conditional_12_For_8_Template","participando","SupportCotacoesComponent_ng_template_27_Conditional_4_Template","SupportCotacoesComponent_ng_template_27_Conditional_11_Template","SupportCotacoesComponent_ng_template_27_Conditional_12_Template","ɵɵtextInterpolate4","ɵɵpipeBind2","creation_date","_r10","modal_editar_cotacao_abrir","buyer_notes","peca_r12","_r11","modal_editar_peca_abrir","codigo_nome","peca_r14","_r13","SupportCotacoesComponent_ng_template_40_For_58_Conditional_2_Template","is_bo","SupportCotacoesComponent_ng_template_40_Conditional_7_Template","SupportCotacoesComponent_ng_template_40_Conditional_34_Template","SupportCotacoesComponent_ng_template_40_Conditional_41_Template","SupportCotacoesComponent_ng_template_40_For_50_Template","SupportCotacoesComponent_ng_template_40_For_58_Template","tem_erp","status","fone1","pecas_nao_encontradas","pecas_encontradas","error_r16","SupportCotacoesComponent_ng_template_47_Conditional_15_For_6_Template","errors","displayMessage","cnpj","ɵɵsanitizeHtml","vendedor","whatsapp","item_r17","holding","item_r18","company","item_r19","usuario","peca_r21","_r20","modal_adicionar_vendedor_externo_selecionar","_r15","modal_adicionar_vendedor_externo_fechar","modal_adicionar_vendedor_externo_enviar_link","SupportCotacoesComponent_ng_template_47_Conditional_15_Template","atualizarValidacao","SupportCotacoesComponent_ng_template_47_Conditional_37_Template","SupportCotacoesComponent_ng_template_47_Conditional_46_Template","SupportCotacoesComponent_ng_template_47_Conditional_56_Template","SupportCotacoesComponent_ng_template_47_Conditional_65_Template","modal_adicionar_vendedor_externo_selecionar_cadastrado_holding","SupportCotacoesComponent_ng_template_47_For_75_Template","SupportCotacoesComponent_ng_template_47_Conditional_76_Template","modal_adicionar_vendedor_externo_selecionar_cadastrado_company","SupportCotacoesComponent_ng_template_47_For_85_Template","SupportCotacoesComponent_ng_template_47_Conditional_86_Template","modal_adicionar_vendedor_externo_selecionar_cadastrado_vendedor","SupportCotacoesComponent_ng_template_47_For_96_Template","SupportCotacoesComponent_ng_template_47_Conditional_97_Template","SupportCotacoesComponent_ng_template_47_Conditional_106_Template","modal_adicionar_vendedor_externo_selecionar_todas_pecas","SupportCotacoesComponent_ng_template_47_For_121_Template","ɵɵtextInterpolate2","vendedorExternoForm","_c4","_c5","value","tipoNC","_c6","MASKS","text","_c7","phoneNumber","textMaskFunction","modal_adicionar_vendedor_externo_holdings","modal_adicionar_vendedor_externo_companies","modal_adicionar_vendedor_externo_vendedores","pecas_todas","valid","dirty","SupportCotacoesComponent","accountService","baseService","generalService","notificationService","globals","service","fb","modalService","ngxLoader","accordion","templateAdicionarVendedorExterno","formInputElements","capitalizeFirstLetter","_searchString","_role","cotacoes","modalRef","loading","pecaSelecionada","vendedorExternoPecasSelecionadas","vendedorExternoListaCompanies","vendedorExternoListaHoldings","vendedorExternoListaVendedores","modal_visivel","genericValidator","validationMessages","usuarioLocal","NgxBrazilMASKS","filterOptions","constructor","alterar_vendedores","editar_cotacao","editar_peca","vendedor_externo","required","translate","telefone","GenericValidator","ngOnInit","isEmpty","logout","role","carregarCotacoes","group","Validators","NgxBrazilValidators","modal_adicionar_vendedor_externo_form_control","valueChanges","subscribe","valor","patchValue","setValidators","controls","disable","updateValueAndValidity","label","accordionChange","panelId","otherPanel","toggle","nAttempts","__async","stopPropagation","showConfirmationDialog","startLoader","delete","next","response","success","index","findIndex","c","removeItemFromList","showSuccessToastr","stopLoader","error","console","log","showErrorToastr","tipo","seller_company_id","Vendedores","acao_marcar_concluido_interno","quotationId","sellerCompanyId","setIsDone","indice","findInArrayIndex","splice","atualizarDadosCotacaoSelecionada","callback","get","result","cotacao","deepSetObj","atualizarCotacoes","filtrarCotacoes","filtrarVendedores","processarMensagens","getAllByRole","trocarCotacaoSelecionada","holdings","companies","sellers","searchTerm","term","toLowerCase","replace","filter","toString","indexOf","map","v","sort","sort_by","name","reverse","$","scrollTop","options","backdrop","class","keyboard","show","ignorarConfirm","idsPecas","getOnlyNumbers","push","find","id","vendedorNaoParticipando","linkRapido","ids_pecas","sendLink","urlPartsfy","getPartsfyUrl","externalSeller","urlCotacao","token","whatsappMessage","is_from_support","urlCTA","vendedor_nome","vendedor_whatsapp","whatsapp_enviar_link_rapido_vendedor_externo","whatsapp_enviar_link_rapido_vendedor_interno","showWarning","hide","peca","target","is","item_id","p","prop","is_checked","forEach","enable","modal_alterar_vendedores_fechar","atualizar","modal_editar_cotacao_fechar","setTimeout","modal_editar_peca_fechar","filterIsApplied","nextIndex","indexBasedOnFilteredList","findInArray","expand","undefined","oficina","chassi","vendedor_email","vendedor_id","seller_id","whatsapp_enviar_responder","parent_id","h","marcas","some","mid","brand_id","holding_id","ɵɵdirectiveInject","AccountService","BaseService","GeneralService","NotificationService","Globals","SupportCotacoesService","UntypedFormBuilder","BsModalService","NgxUiLoaderService","selectors","viewQuery","rf","ctx","NgbAccordionDirective","FormControlName","ElementRef","i0","_r1","SupportCotacoesComponent_Conditional_11_Template","SupportCotacoesComponent_Conditional_12_Template","SupportCotacoesComponent_Conditional_24_Template","SupportCotacoesComponent_ng_template_27_Template","SupportCotacoesComponent_Conditional_35_Template","SupportCotacoesComponent_Conditional_37_Template","SupportCotacoesComponent_ng_template_40_Template","SupportCotacoesComponent_ng_template_43_Template","ɵɵtemplateRefExtractor","SupportCotacoesComponent_ng_template_45_Template","SupportCotacoesComponent_ng_template_47_Template","templateCotacao_r22","templateVendedor_r23","SupportDiarioService","BaseService","config","_domain","constructor","getDailyReport","role","executeGet","url","ɵɵinject","SettingsService","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","atualizar","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵclassMapInterpolate1","reverseSort","ɵɵtextInterpolate","item_r5","delivery_day_formatada","quotation_id","vehicle_infos","supplier_name","seller_name","seller_phone_radio","repairer_name","buyer_name","buyer_phone_radio","_r4","ordenar","ɵɵtemplate","SupportDiarioComponent_ng_template_11_Conditional_1_Conditional_7_Template","SupportDiarioComponent_ng_template_11_Conditional_1_Conditional_12_Template","SupportDiarioComponent_ng_template_11_Conditional_1_Conditional_17_Template","SupportDiarioComponent_ng_template_11_Conditional_1_Conditional_22_Template","SupportDiarioComponent_ng_template_11_Conditional_1_Conditional_27_Template","SupportDiarioComponent_ng_template_11_Conditional_1_Conditional_32_Template","SupportDiarioComponent_ng_template_11_Conditional_1_Conditional_37_Template","SupportDiarioComponent_ng_template_11_Conditional_1_Conditional_42_Template","SupportDiarioComponent_ng_template_11_Conditional_1_Conditional_47_Template","ɵɵrepeaterCreate","SupportDiarioComponent_ng_template_11_Conditional_1_For_51_Template","ɵɵrepeaterTrackByIdentity","ɵɵconditional","orderByField","ɵɵrepeater","entradas","SupportDiarioComponent_ng_template_11_Conditional_0_Template","SupportDiarioComponent_ng_template_11_Conditional_1_Template","length","_r6","item_r8","creation_date_formatada","rejection_date_formatada","reason","reason_notes","duration","_r7","SupportDiarioComponent_ng_template_18_Conditional_1_Conditional_7_Template","SupportDiarioComponent_ng_template_18_Conditional_1_Conditional_12_Template","SupportDiarioComponent_ng_template_18_Conditional_1_Conditional_17_Template","SupportDiarioComponent_ng_template_18_Conditional_1_Conditional_22_Template","SupportDiarioComponent_ng_template_18_Conditional_1_Conditional_27_Template","SupportDiarioComponent_ng_template_18_Conditional_1_Conditional_32_Template","SupportDiarioComponent_ng_template_18_Conditional_1_Conditional_37_Template","SupportDiarioComponent_ng_template_18_Conditional_1_Conditional_42_Template","SupportDiarioComponent_ng_template_18_Conditional_1_Conditional_47_Template","SupportDiarioComponent_ng_template_18_Conditional_1_For_51_Template","exclusoes","SupportDiarioComponent_ng_template_18_Conditional_0_Template","SupportDiarioComponent_ng_template_18_Conditional_1_Template","SupportDiarioComponent","notificationService","diarioService","globals","ngxLoader","active","loading_ctr","loading","Subject","_perfil","filterOptions","perfil","value","carregarGeral","constructor","ngOnInit","carregarTela","label","translate","nAttempts","getDailyReport","subscribe","next","response","success","result","relatorioDiario","stopLoader","error","console","log","showErrorToastr","startLoader","coluna","direcao","sortList","undefined","sort","sort_by","name","reverse","ɵɵdirectiveInject","NotificationService","SupportDiarioService","Globals","NgxUiLoaderService","selectors","standalone","decls","vars","consts","template","rf","ctx","$event","i0","_r1","ɵɵtwoWayListener","ɵɵtwoWayBindingSet","SupportDiarioComponent_Conditional_10_Template","SupportDiarioComponent_ng_template_11_Template","SupportDiarioComponent_Conditional_17_Template","SupportDiarioComponent_ng_template_18_Template","ɵɵproperty","ɵɵtwoWayProperty","nav_r9","SupportFaturamentoService","config","_domain","constructor","getCurrentSituation","executeGet","url","getAllLastLogs","groupId","creationDate","parameters","push","creationDateString","formatDateToYYYYMMDD","length","join","send","step","executePost","ɵɵinject","SettingsService","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","ɵɵpureFunction1","_c0","item_r2","status","descricao","ɵɵpipeBind2","creation_date_local_date","ɵɵrepeaterCreate","SupportFaturamentoComponent_Conditional_62_For_13_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","ctx_r2","logsOrdenados","SupportFaturamentoComponent","baseService","notificationService","supportFaturamentoService","globals","dadosLog","loading","timeout_id","ultimoGroupId","constructor","enviando","lista","ngOnInit","carregarTela","cancelarTimeoutAtual","id","window","clearTimeout","carregarLogs","creation_date","nAttempts","isEmpty","usuarioLogado","getAllLastLogs","subscribe","next","response","success","result","logFaturamento","length","emAtividade","i","log","oldLogIndex","findIndex","l","push","tipo","data_ultima_execucao_passo1","data_ultima_execucao_passo2","data_ultima_execucao_passo3","Object","assign","group_id","setTimeout","dates","map","Date","creationDate","Math","max","apply","error","console","showErrorToastr","translate","getCurrentSituation","logs","ordernarLogs","temLog","dataUltimaExecucaoPasso1","dataUltimaExecucaoPasso2","dataUltimaExecucaoPasso3","enviarPasso1","ignorarConfirm","__async","ultimaData","ultima_data_passo_1","showConfirmationDialog","send","showSuccessToastr","enviarPasso2","ultima_data_passo_2","enviarPasso3","ultima_data_passo_3","obter_ultima_data_passo","passo","data","formatDateToDDMMYYYYHHMM","sort","sort_by","name","reverse","tem_erro","some","ultimo_passo_executado","ɵɵdirectiveInject","BaseService","NotificationService","SupportFaturamentoService","Globals","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵelement","ɵɵtemplate","SupportFaturamentoComponent_Conditional_61_Template","SupportFaturamentoComponent_Conditional_62_Template","SupportFaturamentoComponent_ng_template_63_Template","ɵɵtemplateRefExtractor","ɵɵtextInterpolate1","ɵɵtextInterpolate2","templateCards_r4","ɵɵconditional","SupportGerenciarVendedoresService","config","_domain","constructor","getAllHoldings","executeGet","url","ɵɵinject","SettingsService","factory","ɵfac","providedIn","ɵɵtext","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementStart","ɵɵtemplate","SupportGerenciarVendedoresComponent_Conditional_3_Conditional_2_Template","SupportGerenciarVendedoresComponent_Conditional_3_Conditional_3_Template","SupportGerenciarVendedoresComponent_Conditional_3_Conditional_4_Template","ɵɵelementEnd","ɵɵadvance","ɵɵconditional","ctx_r1","holdingSelecionada","status_pagamento","ɵɵelement","ɵɵproperty","item_r3","name","ɵɵsanitizeHtml","notFound_r4","SupportGerenciarVendedoresComponent","notificationService","supportGerenciarVendedoresService","globals","ngxLoader","interno","holdingSelecionadaId","holdings","keyword","notFoundText","placeHolder","constructor","ngOnInit","carregarTela","translate","getAll","nAttempts","getAllHoldings","subscribe","next","response","success","result","stopLoader","error","console","log","showErrorToastr","startLoader","exportarCSV","holdingsSelectEvent","item","id","listarEmpresasAssociadas","holding_id","is_billable","ɵɵdirectiveInject","NotificationService","SupportGerenciarVendedoresService","Globals","NgxUiLoaderService","selectors","viewQuery","rf","ctx","SupportGerenciarVendedoresInternoComponent","SupportGerenciarVendedoresComponent_Conditional_3_Template","ɵɵlistener","$event","i0","ɵɵrestoreView","_r1","ɵɵresetView","SupportGerenciarVendedoresComponent_ng_template_7_Template","ɵɵtemplateRefExtractor","SupportGerenciarVendedoresComponent_ng_template_9_Template","holdingsTemplate_r5","notFoundTemplate_r6","ɵɵtextInterpolate","SupportLimparTelaVendedorService","BaseService","config","_domain","constructor","clearQuotationsFromSellersDashboard","seller_id","executePost","url","getSellerClearPageData","executeGet","ɵɵinject","SettingsService","factory","ɵfac","providedIn","SupportLimparTelaVendedorComponent","notificationService","limparTelaVendedorService","globals","ngxLoader","sellerId","config","SupportGridview","constructor","set","actions","edit","enable","remove","confirmationText","disabledCondition","item","totalCotacoes","labelText","type","emptyText","isHtml","value","list","table","body","SupportGridviewTableBodyCell","header","className","cleanPage","nAttempts","startLoader","clearQuotationsFromSellersDashboard","subscribe","next","getSeller","showSuccessToastr","translate","stopLoader","error","console","log","showErrorToastr","getSellerClearPageData","response","success","push","result","seller","onCleanPage","$event","ɵɵdirectiveInject","NotificationService","SupportLimparTelaVendedorService","Globals","NgxUiLoaderService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","ɵɵelementEnd","ɵɵelement","ɵɵproperty","ɵɵadvance","ɵɵpipeBind1","SupportMultiloginService","BaseService","config","_domain","constructor","getCompaniesByHolding","holdingId","executeGet","url","getHoldingsByType","isBuyer","getUsersByCompany","companyId","getUsersByUserGroup","userGroupId","removeUserGroup","executeDelete","saveMultilogin","usersIds","executePost","body","user_group_id","user_group_participants_ids","ɵɵinject","SettingsService","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵpropertyInterpolate","holding_r1","id","ɵɵadvance","ɵɵtextInterpolate","name","company_r2","user_r3","ɵɵproperty","ctx_r3","isDisabled","SupportMultiloginComponent","multiloginService","notificationService","ngxLoader","globals","selectedType","selectedHolding","selectedCompany","selectedUser","originalState","companiesList","holdingsList","loading","usersList","isUserSelected","isUserWithMultiloginSelected","_multiloginList","multiloginList","value","afterChangeMultiloginList","isSaveButtonDisabled","config","SupportGridview","constructor","set","actions","edit","enable","remove","confirmationText","emptyText","isHtml","list","table","body","SupportGridviewTableBodyCell","bodyClassName","header","className","ngOnInit","handleDropdownConfiguration","addToMultiloginList","item","push","orderSelectedList","showHideRemoveButton","length","addUserToMultilogin","user_group_id","startLoader","getUsersByUserGroup","subscribe","next","response","result","users","forEach","user","userTemp","holding","holdingName","company","companyName","userGroupId","some","u","stopLoader","error","console","log","showErrorToastr","translate","resetUsers","cleanSelection","__async","isDifferent","showConfirmationDialog","resetScreen","deleteMultilogin","map","removeUserGroup","showSuccessToastr","global","handleSingleDropdownConfiguration","selectType","selectHolding","selectCompany","selectUser","translateName","callback","waitForElm","then","$","select2","language","placeholder","off","on","val","document","focus","select","array1","array2","filter","x","includes","sort","sort_by","progressWillBeLost","resetCompanies","removeUserFromList","$event","index","splice","resetHoldings","trigger","shouldResetUserList","saveMultilogin","usersIds","type","getHoldingsByType","holdings","holdingId","getCompaniesByHolding","find","companies","companyId","getUsersByCompany","userId","show","hide","ɵɵdirectiveInject","SupportMultiloginService","NotificationService","NgxUiLoaderService","Globals","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵrepeaterCreate","SupportMultiloginComponent_For_14_Template","ɵɵrepeaterTrackByIdentity","SupportMultiloginComponent_For_18_Template","SupportMultiloginComponent_For_22_Template","ɵɵlistener","ɵɵpipeBind1","ɵɵrepeater","ɵɵtextInterpolate1","SupportOficinaSemDocumentacaoService","BaseService","config","_domain","constructor","getHoldingsWithoutDocumentation","executeGet","url","ɵɵinject","SettingsService","factory","ɵfac","providedIn","SupportOficinaSemDocumentacaoComponent","notificationService","oficinaSemDocumentacaoService","globals","ngxLoader","oficinas","filter","config","SupportGridview","constructor","set","actions","edit","enable","remove","emptyText","isHtml","value","list","table","body","SupportGridviewTableBodyCell","header","className","ngOnInit","getAll","nAttempts","startLoader","getHoldingsWithoutDocumentation","subscribe","next","response","success","result","oficinasSemDocumentacao","filtrarOficinas","stopLoader","error","console","log","showErrorToastr","translate","$event","isEmpty","term","toLowerCase","filtered","o","compararStringContemString","oficina","getOnlyNumbers","cnpj","holding_id","toString","indexOf","company_id","ɵɵdirectiveInject","NotificationService","SupportOficinaSemDocumentacaoService","Globals","NgxUiLoaderService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","ɵɵelementEnd","ɵɵelement","ɵɵproperty","ɵɵadvance","ɵɵpipeBind1","SupportPedidosService","BaseService","config","_domain","constructor","getOrdersReport","role","executeGet","url","ɵɵinject","SettingsService","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","atualizar","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵclassMapInterpolate1","reverseSortPendente","_r5","item_r6","$implicit","whatsapp_enviar","ɵɵtemplate","SupportPedidosComponent_ng_template_10_Conditional_1_For_46_Conditional_6_Template","SupportPedidosComponent_ng_template_10_Conditional_1_For_46_Conditional_16_Template","ɵɵtextInterpolate","quotation_id","ɵɵproperty","motivo","status_id","ɵɵconditional","ɵɵtextInterpolate2","repairer_name","comprador","veiculo","supplier_name","vendedor","seller_whatsapp","vendedor_fone_formatado","ɵɵpipeBind2","data_pedido","_r4","ordenar","SupportPedidosComponent_ng_template_10_Conditional_1_Conditional_7_Template","SupportPedidosComponent_ng_template_10_Conditional_1_Conditional_12_Template","SupportPedidosComponent_ng_template_10_Conditional_1_Conditional_17_Template","SupportPedidosComponent_ng_template_10_Conditional_1_Conditional_22_Template","SupportPedidosComponent_ng_template_10_Conditional_1_Conditional_27_Template","SupportPedidosComponent_ng_template_10_Conditional_1_Conditional_32_Template","SupportPedidosComponent_ng_template_10_Conditional_1_Conditional_37_Template","SupportPedidosComponent_ng_template_10_Conditional_1_Conditional_42_Template","ɵɵrepeaterCreate","SupportPedidosComponent_ng_template_10_Conditional_1_For_46_Template","ɵɵrepeaterTrackByIdentity","orderByFieldPendente","ɵɵrepeater","pendentes","SupportPedidosComponent_ng_template_10_Conditional_0_Template","SupportPedidosComponent_ng_template_10_Conditional_1_Template","length","_r7","reverseSortAtrasado","item_r9","_r8","SupportPedidosComponent_ng_template_16_Conditional_1_Conditional_7_Template","SupportPedidosComponent_ng_template_16_Conditional_1_Conditional_12_Template","SupportPedidosComponent_ng_template_16_Conditional_1_Conditional_17_Template","SupportPedidosComponent_ng_template_16_Conditional_1_Conditional_22_Template","SupportPedidosComponent_ng_template_16_Conditional_1_Conditional_27_Template","SupportPedidosComponent_ng_template_16_Conditional_1_Conditional_32_Template","SupportPedidosComponent_ng_template_16_Conditional_1_Conditional_37_Template","SupportPedidosComponent_ng_template_16_Conditional_1_Conditional_42_Template","SupportPedidosComponent_ng_template_16_Conditional_1_For_46_Template","orderByFieldAtrasado","atrasados","SupportPedidosComponent_ng_template_16_Conditional_0_Template","SupportPedidosComponent_ng_template_16_Conditional_1_Template","SupportPedidosComponent","generalService","notificationService","pedidosService","globals","ngxLoader","active","_perfil","loading_ctr","loading","Subject","filterOptions","constructor","ngOnInit","perfil","carregarTela","value","label","translate","carregarGeral","nAttempts","getOrdersReport","subscribe","next","response","success","result","pedidoSuporteResult","stopLoader","error","console","log","showErrorToastr","startLoader","coluna","direcao","pendente","sortList","undefined","sort","sort_by","name","reverse","pedido","urlPartsfy","getPartsfyUrl","urlCotacao","oficina","brand","whatsapp","vendedor_email","seller_email","vendedor_id","seller_id","status","whatsapp_message","is_from_support","chassi","urlCTA","vendedor_whatsapp","min_status","whatsapp_enviar_aguardando_confirmacao","ɵɵdirectiveInject","GeneralService","NotificationService","SupportPedidosService","Globals","NgxUiLoaderService","selectors","standalone","decls","vars","consts","template","rf","ctx","$event","i0","_r1","ɵɵtwoWayListener","ɵɵtwoWayBindingSet","SupportPedidosComponent_Conditional_9_Template","SupportPedidosComponent_ng_template_10_Template","SupportPedidosComponent_Conditional_15_Template","SupportPedidosComponent_ng_template_16_Template","ɵɵtwoWayProperty","nav_r10","SupportUsuarioInternoService","BaseService","config","_apiSupportUrl","environment","apiSupport","_domain","_sortDataSubject","BehaviorSubject","enabled","sortedBy","isReverse","sortDataValue$","asObservable","constructor","create","user","executePost","baseUrl","url","body","delete","userId","executeDelete","getAllInternalUsers","executeGet","getAllRepairers","getInactivesInternalUsers","getSortDataValue","value","resetSortDataValue","next","setSortDataValue","reactivate","executePut","update","updateRepairers","repairers","buyerIds","ɵɵinject","SettingsService","factory","ɵfac","providedIn","ValidationErrors","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r1","displayMessage","name","ɵɵsanitizeHtml","email","username","password","whatsApp","ɵɵtext","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵtemplate","SupportUsuarioInternoEdicaoComponent_Conditional_3_Conditional_7_Template","SupportUsuarioInternoEdicaoComponent_Conditional_3_Conditional_14_Template","SupportUsuarioInternoEdicaoComponent_Conditional_3_Conditional_22_Template","ɵɵlistener","ɵɵrestoreView","_r1","ɵɵnextContext","ɵɵresetView","showPassword","SupportUsuarioInternoEdicaoComponent_Conditional_3_Conditional_32_Template","SupportUsuarioInternoEdicaoComponent_Conditional_3_Conditional_40_Template","SupportUsuarioInternoEdicaoComponent_Conditional_3_Conditional_59_Template","ɵɵtextInterpolate","ɵɵpureFunction1","_c1","ɵɵconditional","ɵɵpureFunction2","_c2","MASKS","cellphone","text","roles","Central","CentralSuporte","Faturamento","Suporte","user","userId","$event","repairer_r5","_r4","$implicit","selectRepairer","buyerId","repairerName","buyerName","selected","_r3","onInputChange","selectAllRepairers","ɵɵrepeaterCreate","SupportUsuarioInternoEdicaoComponent_Conditional_4_For_24_Template","ɵɵrepeaterTrackByIdentity","SupportUsuarioInternoEdicaoComponent_Conditional_4_Conditional_25_Template","ɵɵpropertyInterpolate","ɵɵrepeater","repairersFiltered","length","SupportUsuarioInternoEdicaoComponent","notificationService","usuarioInternoService","globals","fb","ngxLoader","onAlterarTela","EventEmitter","onBackToList","repairers","isEditProfile","formInputElements","scrollable","cadastroForm","errors","genericValidator","validationMessages","RolesIdsEnum","showAssociations","isSaveButtonDisabled","NgxBrazilMASKS","_searchString","constructor","required","translate","maxLength","pattern","celular","GenericValidator","ngOnInit","group","Validators","EMAIL_REGEX","NgxBrazilValidators","role","isActive","isEmpty","patchValue","id","undefined","forEach","repairer","index","buyerIds","findIndex","x","map","r","__spreadValues","ngAfterViewInit","validate","action_updateUser","emit","back","disableSaveButton","some","filterRepairers","term","toLowerCase","filter","includes","updateSaveButtonState","searchTerm","event","inputElement","target","value","save","valid","Object","assign","showErrorToastr","stopLoader","capitalizeTheFirstLetterOfEachWord","getOnlyNumbers","Number","startLoader","repairersToSave","updateRepairers","updateInternalUser","saveInternalUser","create","subscribe","next","response","__async","result","version","roleDescription","showSuccessToastr","error","errorResponse","status","errorCodes","ValidationErrors","UsernameAlreadyExists","scrollToPerfilCentral","$","scrollTop","isChecked","is","find","markAsDirty","c","sortHoldings","sort","sort_by","update","controlBlur","formControl","fromEvent","nativeElement","merge","processarMensagens","ɵɵdirectiveInject","NotificationService","SupportUsuarioInternoService","Globals","UntypedFormBuilder","NgxUiLoaderService","selectors","viewQuery","rf","ctx","FormControlName","ElementRef","SupportUsuarioInternoEdicaoComponent_Conditional_3_Template","SupportUsuarioInternoEdicaoComponent_Conditional_4_Template","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","user_r3","ɵɵnextContext","$implicit","ctx_r3","ɵɵresetView","onReactivateUserProfile","ɵɵelementEnd","ɵɵpropertyInterpolate","ɵɵpipeBind1","_r6","onEditUserProfile","ɵɵproperty","ɵɵpureFunction2","_c2","role","roles","CentralSuporte","Central","ɵɵelement","_r5","onEdit","ɵɵtemplate","SupportUsuarioInternoListaComponent_ng_template_4_Conditional_1_Conditional_2_Template","SupportUsuarioInternoListaComponent_ng_template_4_Conditional_1_Conditional_3_Template","onRemoveUserProfile","ɵɵadvance","ɵɵconditional","SupportUsuarioInternoListaComponent_ng_template_4_Conditional_0_Template","SupportUsuarioInternoListaComponent_ng_template_4_Conditional_1_Template","isActive","SupportUsuarioInternoListaComponent","supportUsuarioInternoService","config","SupportGridview","templatesArray","_sortSubscription","buttonsTemplate","gridViewComponent","onEditUser","EventEmitter","onEditProfile","onReactivateProfile","onRemoveProfile","localStorage","rolesCentral","RolesIdsEnum","users","list","value","constructor","LocalStorageUtils","listarRolesCentral","sortDataValue$","subscribe","sort","set","actions","edit","enable","remove","emptyText","isHtml","getSortDataValue","table","body","SupportGridviewTableBodyCell","header","className","sortName","ngAfterViewInit","setTimeout","name","template","ngOnDestroy","closed","unsubscribe","internalUser","emit","userId","onSort","sortData","setSortDataValue","ɵɵdirectiveInject","SupportUsuarioInternoService","selectors","viewQuery","rf","ctx","$event","i0","_r1","SupportUsuarioInternoListaComponent_ng_template_4_Template","ɵɵtemplateRefExtractor","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","action_reactive","ɵɵtext","ɵɵelementEnd","action_new","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","$event","_r3","action_editUser","action_editProfile","action_reactiveProfile","action_removeProfile","ɵɵproperty","filteredUsers","_r4","action_updateUser","action_backToList","repairers","selectedUser","isEditProfile","SupportUsuarioInternoComponent","notificationService","usuarioInternoService","globals","route","router","ngxLoader","_searchString","internalUsers","internalUsersInactives","isList","isReactivating","constructor","ngOnInit","urlSegments","snapshot","url","param_id","params","id","param_associations","some","segment","path","param_new_user","param_reactivating","searchTerm","load","ngOnDestroy","resetSortDataValue","showUserList","history","pushState","param","__async","selectInternalUser","userId","isCentralSupport","role","RolesIdsEnum","CentralSuporte","isAssociations","showConfirmationDialog","isEmpty","navigate","updateRepairersForCentralSuporte","reactivateInternalUser","removeInternalUser","nAttempts","startLoader","getInactivesInternalUsers","subscribe","next","response","success","result","updateFilteredUsers","stopLoader","error","console","log","showErrorToastr","translate","user","index","findIndex","u","push","backToList","filterUsers","usersToFilter","term","toLowerCase","filter","name","indexOf","roleDescription","isNewUser","getAllInternalUsers","getAllRepairers","reactivate","splice","length","showSuccessToastr","delete","find","sortData","getSortDataValue","sort","sort_by","sortedBy","reverse","isReverse","update","value","ɵɵdirectiveInject","NotificationService","SupportUsuarioInternoService","Globals","ActivatedRoute","Router","NgxUiLoaderService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SupportUsuarioInternoComponent_Conditional_4_Template","SupportUsuarioInternoComponent_Conditional_5_Template","SupportUsuarioInternoComponent_Conditional_6_Template","ɵɵelement","ɵɵconditional","SupportVoltarCotacaoService","BaseService","config","_domain","constructor","getQuotationsByLicensePlate","licensePlate","executeGet","url","setQuotationBack","quotationId","excluida","executePost","body","ɵɵinject","SettingsService","factory","ɵfac","providedIn","ɵɵtext","ɵɵelement","ɵɵtextInterpolate1","ɵɵpipeBind1","item_r2","excluida","ɵɵadvance","ɵɵproperty","ɵɵpureFunction2","_c2","ɵɵelementStart","ɵɵelementEnd","ɵɵpropertyInterpolate","item_r3","pecas_title","SupportVoltarCotacaoComponent","notificationService","voltarCotacaoService","globals","ngxLoader","pecasTemplate","situacaoTemplate","templatesArray","config","SupportGridview","constructor","ngAfterViewInit","setTimeout","name","template","set","actions","edit","confirmationText","enable","labelText","type","emptyText","value","list","table","body","SupportGridviewTableBodyCell","header","className","getAll","licensePlate","nAttempts","startLoader","getQuotationsByLicensePlate","subscribe","next","response","success","cotacoes","result","forEach","c","pecas","map","p","nome","join","stopLoader","error","console","log","showErrorToastr","translate","onExecute","$event","voltarCotacao","quotation_id","onSearch","quotationId","setQuotationBack","indice","findIndex","splice","showSuccessToastr","ɵɵdirectiveInject","NotificationService","SupportVoltarCotacaoService","Globals","NgxUiLoaderService","selectors","viewQuery","rf","ctx","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵtemplate","SupportVoltarCotacaoComponent_ng_template_7_Template","ɵɵtemplateRefExtractor","SupportVoltarCotacaoComponent_ng_template_9_Template","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","createNew","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","$event","_r3","acao_alterarTela","ɵɵproperty","companiesCnpjListFiltered","_r4","manageCompanyCnpjSelecionado","SupportCadastroCnpjComponent","notificationService","cadastroCnpjService","globals","route","ngxLoader","router","is_listagem","companiesCnpjList","filter","constructor","ngOnInit","param_id","snapshot","params","id","carregarTela","param","selecionarCompanyCnpj","company_id","isEmpty","atualizar","navigate","back","nAttempts","startLoader","getAll","subscribe","next","response","result","companiesCnpj","length","showErrorToastr","translate","stopLoader","error","console","log","onSearch","term","toLowerCase","cnpjTerm","getOnlyNumbers","o","compararStringContemString","fantasyName","cnpj","indexOf","companiesCnpjs","some","c","companyCnpj_id","find","u","ManageCompanyCnpj","name","ɵɵdirectiveInject","NotificationService","CadastroCNPJService","Globals","ActivatedRoute","NgxUiLoaderService","Router","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SupportCadastroCnpjComponent_Conditional_4_Template","SupportCadastroCnpjComponent_Conditional_5_Template","SupportCadastroCnpjComponent_Conditional_6_Template","ɵɵconditional","BaseGuard","router","accountService","localStorageUtils","LocalStorageUtils","jaRedirecionouPraHome","constructor","environment","inMaintenance","navegarManutencao","navegarAcessoNegado","navigate","navegarHomePage","urlHomePage","navegarLogin","routeAc","logout","returnUrl","window","location","pathname","isEmpty","queryParams","token","user_id","validarAcesso","state","validarAcessoUserId","usuario","obterUsuario","id","pages","homePage","length","paginaAtual","url","temAcesso","some","p","startsWith","childrenPagesList","map","a","childrenPages","i","listaSubTelas","subPages","concat","apply","match","RegExp","substring","lastIndexOf","includes","SupportGuard","BaseGuard","router","accountService","globals","constructor","canActivate","routeAc","state","verificarLogado","validarAcesso","canDeactivate","component","progressWillBeLost","confirm","translate","canLoad","route","user","localStorageUtils","obterUsuario","isAdmin","navegarLogin","ɵɵinject","Router","AccountService","Globals","factory","ɵfac","SupportHoldingsBillingDataManagementService","BaseService","config","http","_apiSupportUrl","environment","apiSupport","_domain","_pageSize","constructor","addPaymentEndDate","holdingId","endDdate","body","endDate","executePut","baseUrl","url","createHoldingPayment","startDate","executePost","deleteHoldingPayment","paymentId","executeDelete","editHoldingBillingData","holding","editHoldingBillingDataWithPayment","getById","executeGet","getByPage","pageNumber","filter","getHoldingPayments","getSupplierRepairerComissions","getSupplierRepairers","isBillable","saveCustomComission","repairerId","comissionValue","removeCustomComission","ɵɵinject","SettingsService","HttpClient","factory","ɵfac","providedIn","HoldingPaymentType","holdingSupplierForEditFactory","holdingId","hasCashback","monthlyFee","opportunityCost","paymentType","plan","rebate","tax","paymentStartDate","HoldingPaymentType","Order","PlanEnum","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","repairer_r3","repairerHoldingId","isBlocked","ɵɵadvance","ɵɵtextInterpolate","repairerName","ɵɵpipeBind1","ɵɵlistener","repairerComission_r5","ɵɵrestoreView","_r4","$implicit","ctx_r1","ɵɵnextContext","ɵɵresetView","removeRepairerComission","ɵɵelement","ɵɵtextInterpolate1","comissionValue","ɵɵrepeaterCreate","SupportHoldingCustomComissionComponent_ng_template_0_Conditional_36_For_2_Template","_forTrack0","ɵɵrepeater","customComissions","_r1","close","SupportHoldingCustomComissionComponent_ng_template_0_For_25_Template","addRepairerComission","ɵɵtemplate","SupportHoldingCustomComissionComponent_ng_template_0_Conditional_35_Template","SupportHoldingCustomComissionComponent_ng_template_0_Conditional_36_Template","ɵɵpipeBind2","ɵɵpureFunction2","_c1","holding","name","tmp_4_0","opportunityCost","undefined","tax","editionForm","ɵɵpureFunction1","_c2","controls","repairer","invalid","touched","repairers","comission","ɵɵpureFunction0","_c3","ɵɵconditional","length","SupportHoldingCustomComissionComponent","holdingService","notificationService","ngxLoader","modalService","formBuilder","globals","template","defaultComission","hasChanged","modalRef","constructor","formValue","value","markAsTouched","showErrorToastr","translateMessage","startLoader","saveCustomComission","holdingId","subscribe","next","response","result","index","findIndex","r","customComission","push","sort","sort_by","resetForm","stopLoader","showSuccessToastr","error","console","log","__async","hide","notEqualToOpportunityCostValidator","control","notEqualToOpportunityCost","open","options","class","backdrop","keyboard","show","forkJoin","getSupplierRepairers","isBillable","getRepairerSupplierComissions","getSupplierRepairerComissions","showWarningToastr","forEach","repairerIndex","repairerId","removeCustomComission","repairerComissionsIndex","c","splice","group","Validators","required","min","max","bind","ɵɵdirectiveInject","SupportHoldingsBillingDataManagementService","NotificationService","NgxUiLoaderService","BsModalService","UntypedFormBuilder","Globals","selectors","viewQuery","rf","ctx","SupportHoldingCustomComissionComponent_ng_template_0_Template","ɵɵtemplateRefExtractor","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵtemplate","SupportHoldingManagePaymentComponent_ng_template_0_Conditional_43_Conditional_1_Template","ɵɵconditional","ctx_r1","currentStartDate","ɵɵelement","ɵɵlistener","paymentDate_r6","ɵɵrestoreView","_r5","$implicit","ɵɵnextContext","ɵɵresetView","removePayment","paymentId","ɵɵproperty","ɵɵpipeBind2","startDate","endDate","ɵɵrepeaterCreate","SupportHoldingManagePaymentComponent_ng_template_0_Conditional_44_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","pastPayments","_r1","close","$event","dateSelect","ds_r3","ɵɵreference","toggle","de_r4","handleAddPayment","SupportHoldingManagePaymentComponent_ng_template_0_Conditional_43_Template","SupportHoldingManagePaymentComponent_ng_template_0_Conditional_44_Template","ɵɵtextInterpolate2","holding","name","isBillable","paymentForm","ɵɵtextInterpolate1","ɵɵpropertyInterpolate","startDateInput_r7","minStartDate","endDateInput_r8","minEndDate","length","SupportHoldingManagePaymentComponent","holdingService","notificationService","ngxLoader","modalService","formBuilder","globals","template","modalRef","isLoading","constructor","addPayment","date","startLoader","createHoldingPayment","holdingId","subscribe","next","response","result","handleInputEnable","stopLoader","showSuccessToastr","translateMessage","error","console","log","showErrorToastr","__async","hide","createDate","inputDate","Date","year","month","day","checkIfHasTwoSlashes","dateParts","split","map","d","parseInt","key","formControl","formatDateToDDMMYYYY","patchValue","enablePaymentStartDate","setMinStartDate","controls","setValue","enable","disable","$","focus","enablePaymentEndDate","setMinEndDate","endPayment","addPaymentEndDate","payment","setHours","getHours","unshift","formValue","getRawValue","previousPayment","open","resetForm","options","class","backdrop","keyboard","show","getHoldingPayments","forEach","push","deleteHoldingPayment","paymentIndex","findIndex","p","splice","group","Validators","required","lastPayment","getFullYear","getMonth","getDate","ɵɵdirectiveInject","SupportHoldingsBillingDataManagementService","NotificationService","NgxUiLoaderService","BsModalService","UntypedFormBuilder","Globals","selectors","viewQuery","rf","ctx","SupportHoldingManagePaymentComponent_ng_template_0_Template","ɵɵtemplateRefExtractor","ɵɵelementStart","ɵɵtext","ɵɵelement","ɵɵelementEnd","ɵɵlistener","$event","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","dateSelect","onPaymentDateChange","ds_r4","ɵɵreference","toggle","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵproperty","holding","lastPaymentEndDate","formattedLastPaymentEndDate","startDateInput_r5","maxPaymentDate","minPaymentDate","option_r6","value","label","option_r7","_r8","repairersComissionManageModal","open","ɵɵtextInterpolate","paymentPercentageLabel","ɵɵpureFunction2","_c6","isPaymentTypeComission","ɵɵpureFunction0","_c5","isBillable","SupportManageHoldingComponent","formBuilder","notificationService","globals","partsfyCashback","categories","saveHolding","EventEmitter","goBackToList","templateCropperModal","categorySelect","fileInput","holdingManagePaymentModal","allowKeysInput","cashbackValue","finalPrice","holdingManageForm","fieldsAlreadyDisabled","isLoading","paymentTypeOptions","HoldingPaymentType","Comission","Quotation","Order","planOptions","PlanEnum","Popular","V8","Turbo","validationMessages","isPaymentTypeOrder","constructor","group","plan","paymentType","monthlyFee","Validators","max","comissionTax","required","min","customCashback","supplierTax","cashbackDefault","cashbackDefaultValue","paymentStartDate","tax","translate","ngOnInit","setValue","opportunityCost","hasCashback","rebate","onCustomCashbackChange","onCashbackDefaultChange","onPaymentTypeChange","year","Date","getFullYear","month","getMonth","day","getDate","formatDateToDDMMYYYY","disableFieldsNotBillable","close","emit","createDate","inputDate","checkIfHasTwoSlashes","dateParts","split","map","d","parseInt","date","controls","enableFieldsNotBillable","control","disable","enable","save","touched","isFormValid","formValue","holdingSupplier","holdingSupplierForEditFactory","holdingId","Object","keys","forEach","field","get","markAsTouched","onlySelf","comissionTaxControl","monthlyFeeControl","paymentStartDateControl","length","setErrors","paymentStartDateInvalido","markAsDirty","showErrorToastr","translateMessage","paymentTaxInvalido","messageParameters","updateValueAndValidity","invalidCashbackDefaultValue","valid","errorMessages","invalid","errorKey","errors","customCashbackSelected","supplierTaxControl","cashbackDefaultSelected","cashbackDefaultValueControl","toLowerCase","openManagePaymentModal","ɵɵdirectiveInject","UntypedFormBuilder","NotificationService","Globals","selectors","viewQuery","rf","ctx","ɵɵtemplate","SupportManageHoldingComponent_Conditional_4_Template","SupportManageHoldingComponent_option_10_Template","i0","_r1","SupportManageHoldingComponent_option_16_Template","SupportManageHoldingComponent_Conditional_24_Template","ɵɵconditional","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵelement","ɵɵlistener","holding_r3","ɵɵrestoreView","_r2","$implicit","ctx_r3","ɵɵnextContext","ɵɵresetView","selectHoldingToEdit","holdingId","name","holdingTypeDescription","paymentTypeDescription","cashbackTypeDescription","ɵɵproperty","isBillable","ɵɵrepeaterCreate","SupportHoldingsListComponent_Conditional_2_For_27_Template","ɵɵrepeaterTrackByIdentity","$event","_r1","changePage","ɵɵrepeater","holdings","totalHoldings","pageNumberController","SupportHoldingsListComponent","editHolding","EventEmitter","pageChange","constructor","holding","emit","pageIndex","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SupportHoldingsListComponent_Conditional_1_Template","SupportHoldingsListComponent_Conditional_2_Template","ɵɵconditional","length","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","holdingManageComponent","openManagePaymentModal","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","$event","_r3","openHoldingEdition","getByPage","holdings","totalHoldings","actualPage","_r4","goBackToList","handleHoldingSave","selectedHoldingToEdit","SupportHoldingsBillingDataManagement","supportManageHoldingsService","route","notificationService","ngxLoader","globals","_searchString","isList","isLoading","constructor","ngOnInit","param_id","snapshot","params","id","isEmpty","getById","holdingId","startLoader","subscribe","next","response","holding","result","stopLoader","error","console","log","showErrorToastr","translate","pageNumber","toLowerCase","success","length","history","pushState","isBillable","saveHolding","saveHoldingWithPayment","editHoldingBillingData","editHoldingBillingDataWithPayment","firstKey","Object","keys","errors","message","searchTerm","value","ɵɵdirectiveInject","SupportHoldingsBillingDataManagementService","ActivatedRoute","NotificationService","NgxUiLoaderService","Globals","selectors","viewQuery","rf","ctx","ɵɵtemplate","SupportHoldingsBillingDataManagement_Conditional_4_Template","SupportHoldingsBillingDataManagement_Conditional_5_Template","SupportHoldingsBillingDataManagement_Conditional_6_Template","ɵɵelement","ɵɵadvance","ɵɵpipeBind2","ɵɵpureFunction1","_c1","name","ɵɵconditional","supportRouterConfig","path","component","MasterPageComponent","children","SupportAvaliacaoVendedoresComponent","SupportCotacoesComponent","SupportPedidosComponent","SupportDiarioComponent","SupportGerenciarVendedoresComponent","SupportCadastroGestorWhatsappComponent","SupportCadastroNovidadesComponent","SupportLimparTelaVendedorComponent","SupportOficinaSemDocumentacaoComponent","SupportUsuarioInternoComponent","SupportVoltarCotacaoComponent","SupportMultiloginComponent","canDeactivate","SupportGuard","SupportCadastroCnpjComponent","SupportContestacoesComponent","SupportFaturamentoComponent","SupportHoldingsBillingDataManagement","SuporteRoutingModule","RouterModule","forChild","HttpLoaderFactory","http","TranslateHttpLoader","icons","ArrowLeft","Check","Edit","User","Plus","Trash","X","SupportModule","SettingsService","SupportAvaliacaoVendedoresService","SupportContestacoesService","SupportCotacoesService","SupportDiarioService","SupportFaturamentoService","SupportGerenciarVendedoresService","SupportOficinaSemDocumentacaoService","SupportPedidosService","SupportUsuarioInternoService","SupportVoltarCotacaoService","provide","LOCALE_ID","deps","useFactory","settingsService","getLocale","NG_SCROLLBAR_OPTIONS","useValue","visibility","provideNgxMask","imports","SharedModule","CommonModule","AutocompleteLibModule","FilterPipeModule","FeatherModule","pick","FormsModule","MatPaginatorModule","NgSelectModule","NgbModule","NgbAccordionModule","NgbCollapseModule","NgxEditorModule","forRoot","locals","bold","italic","code","underline","strike","blockquote","bullet_list","ordered_list","heading","h3","h4","h5","h6","align_left","align_center","align_right","align_justify","text_color","background_color","insertLink","removeLink","insertImage","url","text","openInNewTab","insert","altText","title","remove","NgxUiLoaderModule","NgxLoadingModule","NgScrollbarModule","ReactiveFormsModule","TooltipModule","TranslateModule","forChild","SupportGerenciarVendedoresModule","SuporteRoutingModule"],"x_google_ignoreList":[0,1,2]}