{"version":3,"file":"veloceapps-core.mjs","sources":["../tmp-esm2022/lib/utils/entity.util.js","../tmp-esm2022/lib/directives/sidebar-tabs.directive.js","../tmp-esm2022/lib/pipes/order-by.pipe.js","../tmp-esm2022/lib/pipes/search.filter.pipe.js","../tmp-esm2022/lib/pipes/values.pipe.js","../tmp-esm2022/lib/pipes/index-to-alpha.pipe.js","../tmp-esm2022/lib/services/xray.service.js","../tmp-esm2022/lib/services/base-http.service.js","../tmp-esm2022/lib/services/file-download.service.js","../tmp-esm2022/lib/services/session-storage.service.js","../tmp-esm2022/lib/utils/api.utils.js","../tmp-esm2022/lib/utils/collection.utils.js","../tmp-esm2022/lib/utils/date.utils.js","../tmp-esm2022/lib/types/adjustment-type.types.js","../tmp-esm2022/lib/types/catalog.types.js","../tmp-esm2022/lib/types/configuration-processor.types.js","../tmp-esm2022/lib/types/criteria.types.js","../tmp-esm2022/lib/types/endpoint.types.js","../tmp-esm2022/lib/types/error.types.js","../tmp-esm2022/lib/types/line-item.types.js","../tmp-esm2022/lib/types/picklists.types.js","../tmp-esm2022/lib/types/pml.model.js","../tmp-esm2022/lib/types/price-adjustment.types.js","../tmp-esm2022/lib/types/primitive.types.js","../tmp-esm2022/lib/types/procedure.types.js","../tmp-esm2022/lib/types/quote-draft.types.js","../tmp-esm2022/lib/types/rule.types.js","../tmp-esm2022/lib/types/ui-template.types.js","../tmp-esm2022/lib/utils/error.utils.js","../tmp-esm2022/lib/utils/image.utils.js","../tmp-esm2022/lib/utils/json.utils.js","../tmp-esm2022/lib/definitions/portal.definitions.js","../tmp-esm2022/lib/definitions/index.js","../tmp-esm2022/lib/utils/number.utils.js","../tmp-esm2022/lib/utils/salesforce-id.utils.js","../tmp-esm2022/lib/utils/shopping-cart-settings.utils.js","../tmp-esm2022/lib/utils/string.utils.js","../tmp-esm2022/lib/utils/type-guards.utils.js","../tmp-esm2022/lib/utils/url.utils.js","../tmp-esm2022/lib/utils/uuid.utils.js","../tmp-esm2022/lib/utils/window.utils.js","../tmp-esm2022/lib/services/token-info.service.js","../tmp-esm2022/lib/core.module.js","../tmp-esm2022/lib/operators/debounce-time-after.operator.js","../tmp-esm2022/veloceapps-core.js"],"sourcesContent":["import { cloneDeep, findIndex, isBoolean, isEmpty, isNull, isNumber, isString, isUndefined } from 'lodash';\nexport class EntityUtil {\n    static isEmpty(object) {\n        if (!EntityUtil.isPresent(object)) {\n            return true;\n        }\n        if (isBoolean(object) || isNumber(object)) {\n            return false;\n        }\n        if (isString(object) && object.length > 0) {\n            return false;\n        }\n        if (Array.isArray(object)) {\n            return isEmpty(object);\n        }\n        return true;\n    }\n    static isBlank(text, trim) {\n        if (isUndefined(text) || isNull(text)) {\n            return true;\n        }\n        return (trim ? text.trim() : text).length < 1;\n    }\n    static isPresent(object) {\n        return object !== undefined && object !== null;\n    }\n    static clone(object) {\n        return cloneDeep(object);\n    }\n    static entries(obj) {\n        return Object.entries(obj);\n    }\n    static findById(id, container) {\n        if (!isUndefined(id) && !isNull(id) && Array.isArray(container)) {\n            return container.find(item => item.id.toLowerCase() === id.toLowerCase());\n        }\n        return void 0;\n    }\n    static traverseTree(node, callbackFn, bottomUp) {\n        if (!bottomUp) {\n            callbackFn.apply(this, [node]);\n        }\n        if (node.poisonPill) {\n            delete node.poisonPill;\n            return;\n        }\n        if (node.children && node.children.length > 0) {\n            node.children.forEach(childContainer => {\n                EntityUtil.traverseTree(childContainer, callbackFn, bottomUp);\n            });\n        }\n        if (bottomUp) {\n            callbackFn.apply(this, [node]);\n        }\n    }\n    static traverseFn(node, childBagName, callbackFn) {\n        const stopHere = callbackFn.apply(this, [node]);\n        if (stopHere) {\n            return;\n        }\n        const child = node[childBagName];\n        if (child.length > 0) {\n            child.forEach((childLineItem) => {\n                if (!stopHere) {\n                    EntityUtil.traverseFn(childLineItem, childBagName, callbackFn);\n                }\n            });\n        }\n    }\n    static removeByProperty(container, itemToRemove, listName, uniquePropertyName) {\n        const index = findIndex(container[listName], (listItem) => listItem[uniquePropertyName] === itemToRemove[uniquePropertyName]);\n        if (index != -1) {\n            const removedObject = container[listName].splice(index, 1);\n            return removedObject[0];\n        }\n        else {\n            throw Error(`Unable to find ${uniquePropertyName} in container`);\n        }\n    }\n    static findByFieldHierarchically(fieldName, fieldValue, container, childBagName) {\n        if (this.isBlank(fieldName) ||\n            this.isBlank(fieldValue) ||\n            this.isBlank(childBagName) ||\n            !Array.isArray(container)) {\n            return void 0;\n        }\n        let result = void 0;\n        container.some(el => {\n            EntityUtil.traverseFn(el, childBagName, (item) => {\n                if (item[fieldName] && item[fieldName].toLowerCase() === fieldValue.toLowerCase()) {\n                    result = item;\n                    return item;\n                }\n            });\n            return result;\n        });\n        return result;\n    }\n    static filterHierarchically(container, childBagName, condition) {\n        if (this.isBlank(childBagName) || !Array.isArray(container)) {\n            return [];\n        }\n        const result = [];\n        container.forEach(el => {\n            EntityUtil.traverseFn(el, childBagName, (item) => {\n                const isTruthy = condition.apply(this, [item]);\n                if (isTruthy) {\n                    result.push(item);\n                }\n            });\n        });\n        return result;\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9lbnRpdHkudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUczRyxNQUFNLE9BQU8sVUFBVTtJQUNkLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBVztRQUMvQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzFDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDMUMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUIsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBWSxFQUFFLElBQWM7UUFDaEQsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFD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WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBSSxTQUFjLEVBQUUsWUFBcUIsRUFBRSxTQUFjO1FBQ3pGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbkUsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQVUsRUFBRSxDQUFDO1FBRXpCLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDckIsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQ3BELE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFFL0MsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDYixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNwQixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNsb25lRGVlcCwgZmluZEluZGV4LCBpc0Jvb2xlYW4sIGlzRW1wdHksIGlzTnVsbCwgaXNOdW1iZXIsIGlzU3RyaW5nLCBpc1VuZGVmaW5lZCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBUcmF2ZXJzYWJsZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIEVudGl0eVV0aWwge1xuICBwdWJsaWMgc3RhdGljIGlzRW1wdHkob2JqZWN0OiBhbnkpOiBib29sZWFuIHtcbiAgICBpZiAoIUVudGl0eVV0aWwuaXNQcmVzZW50KG9iamVjdCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmIChpc0Jvb2xlYW4ob2JqZWN0KSB8fCBpc051bWJlcihvYmplY3QpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGlzU3RyaW5nKG9iamVjdCkgJiYgb2JqZWN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAgICByZXR1cm4gaXNFbXB0eShvYmplY3QpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc0JsYW5rKHRleHQ6IHN0cmluZywgdHJpbT86IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAoaXNVbmRlZmluZWQodGV4dCkgfHwgaXNOdWxsKHRleHQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRyaW0gPyB0ZXh0LnRyaW0oKSA6IHRleHQpLmxlbmd0aCA8IDE7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzUHJlc2VudChvYmplY3Q6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBvYmplY3QgIT09IHVuZGVmaW5lZCAmJiBvYmplY3QgIT09IG51bGw7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNsb25lPFQ+KG9iamVjdDogVCk6IFQge1xuICAgIHJldHVybiBjbG9uZURlZXAob2JqZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZW50cmllczxUIGV4dGVuZHMgb2JqZWN0PihcbiAgICBvYmo6IFQsXG4gICk6IHtcbiAgICBbSyBpbiBrZXlvZiBUXTogW0ssIFRbS11dO1xuICB9W2tleW9mIFRdW10ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhvYmopIGFzIGFueTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZmluZEJ5SWQoaWQ6IGFueSwgY29udGFpbmVyOiBhbnkpIHtcbiAgICBpZiAoIWlzVW5kZWZpbmVkKGlkKSAmJiAhaXNOdWxsKGlkKSAmJiBBcnJheS5pc0FycmF5KGNvbnRhaW5lcikpIHtcbiAgICAgIHJldHVybiBjb250YWluZXIuZmluZChpdGVtID0+IGl0ZW0uaWQudG9Mb3dlckNhc2UoKSA9PT0gaWQudG9Mb3dlckNhc2UoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZvaWQgMDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdHJhdmVyc2VUcmVlKG5vZGU6IFRyYXZlcnNhYmxlPGFueT4sIGNhbGxiYWNrRm46IGFueSwgYm90dG9tVXA/OiBib29sZWFuKSB7XG4gICAgaWYgKCFib3R0b21VcCkge1xuICAgICAgY2FsbGJhY2tGbi5hcHBseSh0aGlzLCBbbm9kZV0pO1xuICAgIH1cblxuICAgIGlmICgobm9kZSBhcyBhbnkpLnBvaXNvblBpbGwpIHtcbiAgICAgIGRlbGV0ZSAobm9kZSBhcyBhbnkpLnBvaXNvblBpbGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goY2hpbGRDb250YWluZXIgPT4ge1xuICAgICAgICBFbnRpdHlVdGlsLnRyYXZlcnNlVHJlZShjaGlsZENvbnRhaW5lciwgY2FsbGJhY2tGbiwgYm90dG9tVXApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGJvdHRvbVVwKSB7XG4gICAgICBjYWxsYmFja0ZuLmFwcGx5KHRoaXMsIFtub2RlXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0cmF2ZXJzZUZuPFQ+KG5vZGU6IFQsIGNoaWxkQmFnTmFtZToga2V5b2YgVCwgY2FsbGJhY2tGbjogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgc3RvcEhlcmUgPSBjYWxsYmFja0ZuLmFwcGx5KHRoaXMsIFtub2RlXSk7XG5cbiAgICBpZiAoc3RvcEhlcmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjaGlsZDogYW55ID0gbm9kZVtjaGlsZEJhZ05hbWVdO1xuICAgIGlmIChjaGlsZC5sZW5ndGggPiAwKSB7XG4gICAgICBjaGlsZC5mb3JFYWNoKChjaGlsZExpbmVJdGVtOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKCFzdG9wSGVyZSkge1xuICAgICAgICAgIEVudGl0eVV0aWwudHJhdmVyc2VGbihjaGlsZExpbmVJdGVtLCBjaGlsZEJhZ05hbWUsIGNhbGxiYWNrRm4pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHJlbW92ZUJ5UHJvcGVydHkoY29udGFpbmVyOiBhbnksIGl0ZW1Ub1JlbW92ZTogYW55LCBsaXN0TmFtZTogc3RyaW5nLCB1bmlxdWVQcm9wZXJ0eU5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGluZGV4ID0gZmluZEluZGV4KFxuICAgICAgY29udGFpbmVyW2xpc3ROYW1lXSxcbiAgICAgIChsaXN0SXRlbTogYW55KSA9PiBsaXN0SXRlbVt1bmlxdWVQcm9wZXJ0eU5hbWVdID09PSBpdGVtVG9SZW1vdmVbdW5pcXVlUHJvcGVydHlOYW1lXSxcbiAgICApO1xuXG4gICAgaWYgKGluZGV4ICE9IC0xKSB7XG4gICAgICBjb25zdCByZW1vdmVkT2JqZWN0ID0gY29udGFpbmVyW2xpc3ROYW1lXS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgcmV0dXJuIHJlbW92ZWRPYmplY3RbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IEVycm9yKGBVbmFibGUgdG8gZmluZCAke3VuaXF1ZVByb3BlcnR5TmFtZX0gaW4gY29udGFpbmVyYCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmaW5kQnlGaWVsZEhpZXJhcmNoaWNhbGx5PFQ+KFxuICAgIGZpZWxkTmFtZTogc3RyaW5nLFxuICAgIGZpZWxkVmFsdWU6IHN0cmluZyxcbiAgICBjb250YWluZXI6IGFueVtdLFxuICAgIGNoaWxkQmFnTmFtZTogc3RyaW5nLFxuICApOiBUIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmlzQmxhbmsoZmllbGROYW1lKSB8fFxuICAgICAgdGhpcy5pc0JsYW5rKGZpZWxkVmFsdWUpIHx8XG4gICAgICB0aGlzLmlzQmxhbmsoY2hpbGRCYWdOYW1lKSB8fFxuICAgICAgIUFycmF5LmlzQXJyYXkoY29udGFpbmVyKVxuICAgICkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0ID0gdm9pZCAwO1xuXG4gICAgY29udGFpbmVyLnNvbWUoZWwgPT4ge1xuICAgICAgRW50aXR5VXRpbC50cmF2ZXJzZUZuKGVsLCBjaGlsZEJhZ05hbWUsIChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGl0ZW1bZmllbGROYW1lXSAmJiBpdGVtW2ZpZWxkTmFtZV0udG9Mb3dlckNhc2UoKSA9PT0gZmllbGRWYWx1ZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgcmVzdWx0ID0gaXRlbTtcbiAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmaWx0ZXJIaWVyYXJjaGljYWxseTxUPihjb250YWluZXI6IFRbXSwgY2hpbGRCYWdOYW1lOiBrZXlvZiBULCBjb25kaXRpb246IGFueSk6IFRbXSB7XG4gICAgaWYgKHRoaXMuaXNCbGFuayhjaGlsZEJhZ05hbWUgYXMgYW55KSB8fCAhQXJyYXkuaXNBcnJheShjb250YWluZXIpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0OiBhbnlbXSA9IFtdO1xuXG4gICAgY29udGFpbmVyLmZvckVhY2goZWwgPT4ge1xuICAgICAgRW50aXR5VXRpbC50cmF2ZXJzZUZuKGVsLCBjaGlsZEJhZ05hbWUsIChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgaXNUcnV0aHkgPSBjb25kaXRpb24uYXBwbHkodGhpcywgW2l0ZW1dKTtcblxuICAgICAgICBpZiAoaXNUcnV0aHkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChpdGVtKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=","import { Directive, Input } from '@angular/core';\nimport { EntityUtil } from '../utils/entity.util';\nimport * as i0 from \"@angular/core\";\nexport class SidebarTabsDirective {\n    constructor() {\n        this._sidebarTabs = '';\n        this._defaultTab = '';\n        this._index = 0;\n    }\n    get sidebarTabs() {\n        return this._sidebarTabs;\n    }\n    set sidebarTabs(value) {\n        this._sidebarTabs = value;\n        this._defaultTab = value;\n        this._index = 0;\n    }\n    switchTab(tabName, index) {\n        this._sidebarTabs = tabName;\n        if (EntityUtil.isPresent(index)) {\n            this._index = index;\n        }\n    }\n    get activeTab() {\n        return this._sidebarTabs;\n    }\n    get index() {\n        return this._index;\n    }\n    reset() {\n        this._sidebarTabs = this._defaultTab;\n        this._index = 0;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SidebarTabsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n    static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: SidebarTabsDirective, isStandalone: true, selector: \"[sidebarTabs]\", inputs: { sidebarTabs: \"sidebarTabs\" }, exportAs: [\"sidebarTabs\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SidebarTabsDirective, decorators: [{\n            type: Directive,\n            args: [{\n                    // eslint-disable-next-line @angular-eslint/directive-selector\n                    selector: '[sidebarTabs]',\n                    exportAs: 'sidebarTabs',\n                }]\n        }], propDecorators: { sidebarTabs: [{\n                type: Input\n            }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci10YWJzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvc2lkZWJhci10YWJzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBT2xELE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFNVSxpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixXQUFNLEdBQUcsQ0FBQyxDQUFDO0tBaUNwQjtJQS9CQyxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQ0ksV0FBVyxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxPQUFlLEVBQUUsS0FBYztRQUM5QyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUU1QixJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQWUsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7OEdBbkNVLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRSxhQUFhO2lCQUN4Qjs4QkFXSyxXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnRpdHlVdGlsIH0gZnJvbSAnLi4vdXRpbHMvZW50aXR5LnV0aWwnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbc2lkZWJhclRhYnNdJyxcbiAgZXhwb3J0QXM6ICdzaWRlYmFyVGFicycsXG59KVxuZXhwb3J0IGNsYXNzIFNpZGViYXJUYWJzRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBfc2lkZWJhclRhYnMgPSAnJztcbiAgcHJpdmF0ZSBfZGVmYXVsdFRhYiA9ICcnO1xuICBwcml2YXRlIF9pbmRleCA9IDA7XG5cbiAgZ2V0IHNpZGViYXJUYWJzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZGViYXJUYWJzO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHNpZGViYXJUYWJzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zaWRlYmFyVGFicyA9IHZhbHVlO1xuICAgIHRoaXMuX2RlZmF1bHRUYWIgPSB2YWx1ZTtcbiAgICB0aGlzLl9pbmRleCA9IDA7XG4gIH1cblxuICBwdWJsaWMgc3dpdGNoVGFiKHRhYk5hbWU6IHN0cmluZywgaW5kZXg/OiBudW1iZXIpIHtcbiAgICB0aGlzLl9zaWRlYmFyVGFicyA9IHRhYk5hbWU7XG5cbiAgICBpZiAoRW50aXR5VXRpbC5pc1ByZXNlbnQoaW5kZXgpKSB7XG4gICAgICB0aGlzLl9pbmRleCA9IGluZGV4IGFzIG51bWJlcjtcbiAgICB9XG4gIH1cblxuICBnZXQgYWN0aXZlVGFiKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZGViYXJUYWJzO1xuICB9XG5cbiAgZ2V0IGluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2luZGV4O1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCkge1xuICAgIHRoaXMuX3NpZGViYXJUYWJzID0gdGhpcy5fZGVmYXVsdFRhYjtcbiAgICB0aGlzLl9pbmRleCA9IDA7XG4gIH1cbn1cbiJdfQ==","import { Pipe } from '@angular/core';\nimport { isString, orderBy } from 'lodash';\nimport * as i0 from \"@angular/core\";\nexport class OrderByPipe {\n    transform(iterable, iteratee, order) {\n        return orderBy(iterable, [\n            it => {\n                const el = it[iteratee];\n                return (isString(el) && el.toLowerCase()) || el;\n            },\n        ], [order]);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: OrderByPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: OrderByPipe, isStandalone: true, name: \"orderBy\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: OrderByPipe, decorators: [{\n            type: Pipe,\n            args: [{\n                    name: 'orderBy',\n                    pure: true,\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItYnkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3BpcGVzL29yZGVyLWJ5LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxXQUFXO0lBQ2YsU0FBUyxDQUFDLFFBQWEsRUFBRSxRQUFnQixFQUFFLEtBQStCO1FBQy9FLE9BQU8sT0FBTyxDQUNaLFFBQVEsRUFDUjtZQUNFLEVBQUUsQ0FBQyxFQUFFO2dCQUNILE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFFeEIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEQsQ0FBQztTQUNGLEVBQ0QsQ0FBQyxLQUFLLENBQUMsQ0FDUixDQUFDO0lBQ0osQ0FBQzs4R0FiVSxXQUFXOzRHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBSnZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLElBQUk7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc1N0cmluZywgb3JkZXJCeSB9IGZyb20gJ2xvZGFzaCc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ29yZGVyQnknLFxuICBwdXJlOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBPcmRlckJ5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwdWJsaWMgdHJhbnNmb3JtKGl0ZXJhYmxlOiBhbnksIGl0ZXJhdGVlOiBzdHJpbmcsIG9yZGVyOiBib29sZWFuIHwgJ2FzYycgfCAnZGVzYycpOiBhbnkge1xuICAgIHJldHVybiBvcmRlckJ5KFxuICAgICAgaXRlcmFibGUsXG4gICAgICBbXG4gICAgICAgIGl0ID0+IHtcbiAgICAgICAgICBjb25zdCBlbCA9IGl0W2l0ZXJhdGVlXTtcblxuICAgICAgICAgIHJldHVybiAoaXNTdHJpbmcoZWwpICYmIGVsLnRvTG93ZXJDYXNlKCkpIHx8IGVsO1xuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIFtvcmRlcl0sXG4gICAgKTtcbiAgfVxufVxuIl19","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SearchFilterPipe {\n    transform(list, filterValue, filterProperty) {\n        if (filterValue && Array.isArray(list)) {\n            const filter = typeof filterValue === 'boolean' ? filterValue : filterValue.toLowerCase();\n            if (filterProperty) {\n                return list.filter(item => {\n                    const itemProperty = item[filterProperty];\n                    if (typeof filter === 'boolean') {\n                        return itemProperty === filter;\n                    }\n                    else {\n                        return itemProperty.toLowerCase().indexOf(filter) != -1;\n                    }\n                });\n            }\n            else {\n                return list.filter(item => item.toLowerCase().indexOf(filter) != -1);\n            }\n        }\n        else {\n            return list;\n        }\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SearchFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: SearchFilterPipe, isStandalone: true, name: \"_filter\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SearchFilterPipe, decorators: [{\n            type: Pipe,\n            args: [{\n                    name: '_filter',\n                    pure: true,\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcGlwZXMvc2VhcmNoLmZpbHRlci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQ3BCLFNBQVMsQ0FBQyxJQUFTLEVBQUUsV0FBZ0IsRUFBRSxjQUFvQjtRQUNoRSxJQUFJLFdBQVcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxNQUFNLEdBQUcsT0FBTyxXQUFXLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUUxRixJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUNuQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3hCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFFMUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDaEMsT0FBTyxZQUFZLEtBQUssTUFBTSxDQUFDO29CQUNqQyxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUMxRCxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2RSxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDOzhHQXJCVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFKNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztvQkFDZixJQUFJLEVBQUUsSUFBSTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAnX2ZpbHRlcicsXG4gIHB1cmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaEZpbHRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHVibGljIHRyYW5zZm9ybShsaXN0OiBhbnksIGZpbHRlclZhbHVlOiBhbnksIGZpbHRlclByb3BlcnR5PzogYW55KTogYW55IHtcbiAgICBpZiAoZmlsdGVyVmFsdWUgJiYgQXJyYXkuaXNBcnJheShsaXN0KSkge1xuICAgICAgY29uc3QgZmlsdGVyID0gdHlwZW9mIGZpbHRlclZhbHVlID09PSAnYm9vbGVhbicgPyBmaWx0ZXJWYWx1ZSA6IGZpbHRlclZhbHVlLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGlmIChmaWx0ZXJQcm9wZXJ0eSkge1xuICAgICAgICByZXR1cm4gbGlzdC5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbVByb3BlcnR5ID0gaXRlbVtmaWx0ZXJQcm9wZXJ0eV07XG5cbiAgICAgICAgICBpZiAodHlwZW9mIGZpbHRlciA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbVByb3BlcnR5ID09PSBmaWx0ZXI7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtUHJvcGVydHkudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlcikgIT0gLTE7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBsaXN0LmZpbHRlcihpdGVtID0+IGl0ZW0udG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlcikgIT0gLTEpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class ValuesPipe {\n    transform(object) {\n        if (!object) {\n            return;\n        }\n        return Object.keys(object);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ValuesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: ValuesPipe, isStandalone: true, name: \"values\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: ValuesPipe, decorators: [{\n            type: Pipe,\n            args: [{\n                    name: 'values',\n                    pure: false,\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWVzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9waXBlcy92YWx1ZXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLFVBQVU7SUFDZCxTQUFTLENBQUMsTUFBVztRQUMxQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPO1FBQ1QsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDOzhHQVBVLFVBQVU7NEdBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFKdEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsUUFBUTtvQkFDZCxJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAndmFsdWVzJyxcbiAgcHVyZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFZhbHVlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHVibGljIHRyYW5zZm9ybShvYmplY3Q6IGFueSk6IGFueSB7XG4gICAgaWYgKCFvYmplY3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KTtcbiAgfVxufVxuIl19","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class IndexToAlphaPipe {\n    transform(index) {\n        const alphaCode = 'a'.charCodeAt(0);\n        let result = '';\n        while (index > 25) {\n            index -= 26;\n            result += 'z';\n        }\n        return result + String.fromCharCode(alphaCode + index);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: IndexToAlphaPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n    static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: IndexToAlphaPipe, isStandalone: true, name: \"indexToAlpha\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: IndexToAlphaPipe, decorators: [{\n            type: Pipe,\n            args: [{\n                    name: 'indexToAlpha',\n                    pure: false,\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtdG8tYWxwaGEucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3BpcGVzL2luZGV4LXRvLWFscGhhLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyxnQkFBZ0I7SUFDcEIsU0FBUyxDQUFDLEtBQWE7UUFDNUIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFaEIsT0FBTyxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDbEIsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxHQUFHLENBQUM7UUFDaEIsQ0FBQztRQUVELE9BQU8sTUFBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7OEdBWlUsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLElBQUksRUFBRSxLQUFLO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdpbmRleFRvQWxwaGEnLFxuICBwdXJlOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgSW5kZXhUb0FscGhhUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwdWJsaWMgdHJhbnNmb3JtKGluZGV4OiBudW1iZXIpOiBhbnkge1xuICAgIGNvbnN0IGFscGhhQ29kZSA9ICdhJy5jaGFyQ29kZUF0KDApO1xuXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuXG4gICAgd2hpbGUgKGluZGV4ID4gMjUpIHtcbiAgICAgIGluZGV4IC09IDI2O1xuICAgICAgcmVzdWx0ICs9ICd6JztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0ICsgU3RyaW5nLmZyb21DaGFyQ29kZShhbHBoYUNvZGUgKyBpbmRleCk7XG4gIH1cbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { XRay } from '@aws-sdk/client-xray';\nimport * as i0 from \"@angular/core\";\nconst crypto = window.crypto;\nexport class XrayService {\n    constructor() {\n        this.skip = false;\n        if (window.location.hostname.includes('localhost') || window.location.hostname === '127.0.0.1') {\n            // tslint:disable-next-line:no-console\n            console.log('Skipping load of XRay SDK for local development');\n            this.skip = true;\n            return;\n        }\n        if (!crypto) {\n            // tslint:disable-next-line:no-console\n            console.log('Skipping load of XRay SDK, because no window.crypto support in browser');\n            this.skip = true;\n            return;\n        }\n        if (!window.AWS_XRAY_ACCESS_KEY_ID || !window.AWS_XRAY_SECRET_ACCESS_KEY || !window.AWS_XRAY_SESSION_TOKEN) {\n            console.log('Skipping load of XRay SDK, because XRay client credentials are not passed');\n            this.skip = true;\n            return;\n        }\n        this.xray = new XRay({\n            region: window.AWS_XRAY_REGION ?? 'us-east-1',\n            credentials: {\n                accessKeyId: window.AWS_XRAY_ACCESS_KEY_ID,\n                secretAccessKey: window.AWS_XRAY_SECRET_ACCESS_KEY,\n                sessionToken: window.AWS_XRAY_SESSION_TOKEN,\n            },\n        });\n    }\n    getTraceHeader(segment) {\n        if (this.skip) {\n            return 'Unsupported';\n        }\n        return 'Root=' + segment.trace_id + ';Parent=' + segment.id + ';Sampled=1';\n    }\n    beginSegment(method, url) {\n        if (this.skip) {\n            return;\n        }\n        const id = this.getHexId(16);\n        const startTime = this.getEpochTime();\n        const traceId = '1-' + this.getHexTime() + '-' + this.getHexId(24);\n        const segment = {\n            id,\n            trace_id: traceId,\n            start_time: startTime,\n            name: `ui-rest-call:${window.location.hostname}`,\n            in_progress: true,\n            user: sessionStorage['userid'],\n            http: {\n                request: {\n                    url: url,\n                    method: method.toUpperCase(),\n                    traced: true,\n                },\n            },\n            annotations: {\n                host: window.location.hostname,\n                backend: window['VELO_API'] ?? '',\n            },\n        };\n        const documents = [];\n        documents[0] = JSON.stringify(segment);\n        this.putDocuments(documents);\n        return segment;\n    }\n    endSegment(segment) {\n        if (this.skip || segment.in_progress === false) {\n            return;\n        }\n        segment.end_time = this.getEpochTime();\n        segment.in_progress = false;\n        segment.http.response = {\n            status: 200,\n        };\n        const documents = [];\n        documents[0] = JSON.stringify(segment);\n        this.putDocuments(documents);\n    }\n    endSegmentWithError(segment, status, error) {\n        if (this.skip || segment.in_progress === false) {\n            return;\n        }\n        segment.end_time = this.getEpochTime();\n        segment.in_progress = false;\n        segment.error = !!status && status >= 400 && status < 500;\n        segment.throttle = status === 429;\n        segment.fault = !status || (status >= 500 && status < 600);\n        if (status) {\n            segment.http.response = {\n                status: status,\n            };\n        }\n        if (error && error instanceof Error) {\n            const e = error;\n            segment.cause = {\n                working_directory: window.location.pathname,\n                exceptions: [this.getSegmentException(e)],\n            };\n        }\n        else if (error) {\n            let s = '' + error;\n            try {\n                s = JSON.stringify(error); // prefer JSON representation to avoid typical: Object.object crap\n            }\n            catch (unused) {\n                // tslint:disable-next-line:no-console\n                console.log(`Failed to serialize error to JSON representation: ${error}`);\n            } // cycles are not JSON supported, but might be present!\n            const e = new Error(s);\n            segment.cause = {\n                working_directory: window.location.pathname,\n                exceptions: [this.getSegmentException(e)],\n            };\n        }\n        const documents = [];\n        documents[0] = JSON.stringify(segment);\n        this.putDocuments(documents);\n    }\n    getHexId(length) {\n        const bytes = new Uint8Array(length);\n        crypto.getRandomValues(bytes);\n        let hex = '';\n        for (const c of bytes) {\n            hex += c.toString(16);\n        }\n        return hex.substring(0, length);\n    }\n    getHexTime() {\n        return Math.round(new Date().getTime() / 1000).toString(16);\n    }\n    getEpochTime() {\n        return new Date().getTime() / 1000;\n    }\n    getSegmentException(error) {\n        const stack = [];\n        const frames = ('' + error.stack).split('\\n');\n        for (const f of frames) {\n            stack.push({\n                label: f,\n            });\n        }\n        const hashCode = (s) => {\n            let hash = 0;\n            if (s.length === 0) {\n                return hash;\n            }\n            for (let i = 0; i < s.length; i++) {\n                const chr = s.charCodeAt(i);\n                // tslint:disable-next-line:no-bitwise\n                hash = (hash << 5) - hash + chr;\n                // tslint:disable-next-line:no-bitwise\n                hash |= 0; // Convert to 32bit integer\n            }\n            return hash;\n        };\n        /* Convert value as 32-bit unsigned integer to 8 digit hexadecimal number. */\n        const hex32 = (val) => {\n            // tslint:disable-next-line:no-bitwise\n            val &= 0xffffffff;\n            const hex = val.toString(16).toUpperCase();\n            return ('00000000' + hex).slice(-8);\n        };\n        return {\n            id: '00000000' + hex32(hashCode(error.message)),\n            message: error.message,\n            stack,\n        };\n    }\n    putDocuments(documents) {\n        const params = {\n            TraceSegmentDocuments: documents,\n        };\n        if (!this.xray) {\n            return;\n        }\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        this.xray.putTraceSegments(params, (err, data) => {\n            if (err) {\n                // tslint:disable-next-line:no-console\n                console.log(err, err.stack);\n            }\n        });\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: XrayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: XrayService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: XrayService, decorators: [{\n            type: Injectable\n        }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieHJheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2VydmljZXMveHJheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFpQyxJQUFJLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFNM0UsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUc3QixNQUFNLE9BQU8sV0FBVztJQUl0QjtRQUZpQixTQUFJLEdBQVksS0FBSyxDQUFDO1FBR3JDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQy9GLHNDQUFzQztZQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzNHLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkVBQTJFLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixPQUFPO1FBQ1QsQ0FBQztRQUVELElB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QUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQztRQUVGLE9BQU87WUFDTCxFQUFFLEVBQUUsVUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixLQUFLO1NBQ04sQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsU0FBbUI7UUFDdEMsTUFBTSxNQUFNLEdBQUc7WUFDYixxQkFBcUIsRUFBRSxTQUFTO1NBQ2pDLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsT0FBTztRQUNULENBQUM7UUFDRCw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFRLEVBQUUsSUFBb0MsRUFBRSxFQUFFO1lBQ3BGLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1Isc0NBQXNDO2dCQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F6TVUsV0FBVztrSEFBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHV0VHJhY2VTZWdtZW50c0NvbW1hbmRPdXRwdXQsIFhSYXkgfSBmcm9tICdAYXdzLXNkay9jbGllbnQteHJheSc7XG5pbXBvcnQgeyBTZWdtZW50LCBTZWdtZW50RXhjZXB0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgVmxXaW5kb3cgfSBmcm9tICcuLi90eXBlcy93aW5kb3cudHlwZXMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbmNvbnN0IGNyeXB0byA9IHdpbmRvdy5jcnlwdG87XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBYcmF5U2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgeHJheT86IFhSYXk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2tpcDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuaW5jbHVkZXMoJ2xvY2FsaG9zdCcpIHx8IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PT0gJzEyNy4wLjAuMScpIHtcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1jb25zb2xlXG4gICAgICBjb25zb2xlLmxvZygnU2tpcHBpbmcgbG9hZCBvZiBYUmF5IFNESyBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQnKTtcbiAgICAgIHRoaXMuc2tpcCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghY3J5cHRvKSB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxuICAgICAgY29uc29sZS5sb2coJ1NraXBwaW5nIGxvYWQgb2YgWFJheSBTREssIGJlY2F1c2Ugbm8gd2luZG93LmNyeXB0byBzdXBwb3J0IGluIGJyb3dzZXInKTtcbiAgICAgIHRoaXMuc2tpcCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghd2luZG93LkFXU19YUkFZX0FDQ0VTU19LRVlfSUQgfHwgIXdpbmRvdy5BV1NfWFJBWV9TRUNSRVRfQUNDRVNTX0tFWSB8fCAhd2luZG93LkFXU19YUkFZX1NFU1NJT05fVE9LRU4pIHtcbiAgICAgIGNvbnNvbGUubG9nKCdTa2lwcGluZyBsb2FkIG9mIFhSYXkgU0RLLCBiZWNhdXNlIFhSYXkgY2xpZW50IGNyZWRlbnRpYWxzIGFyZSBub3QgcGFzc2VkJyk7XG4gICAgICB0aGlzLnNraXAgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMueHJheSA9IG5ldyBYUmF5KHtcbiAgICAgIHJlZ2lvbjogd2luZG93LkFXU19YUkFZX1JFR0lPTiA/PyAndXMtZWFzdC0xJyxcbiAgICAgIGNyZWRlbnRpYWxzOiB7XG4gICAgICAgIGFjY2Vzc0tleUlkOiB3aW5kb3cuQVdTX1hSQVlfQUNDRVNTX0tFWV9JRCxcbiAgICAgICAgc2VjcmV0QWNjZXNzS2V5OiB3aW5kb3cuQVdTX1hSQVlfU0VDUkVUX0FDQ0VTU19LRVksXG4gICAgICAgIHNlc3Npb25Ub2tlbjogd2luZG93LkFXU19YUkFZX1NFU1NJT05fVE9LRU4sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFRyYWNlSGVhZGVyKHNlZ21lbnQ6IFNlZ21lbnQpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNraXApIHtcbiAgICAgIHJldHVybiAnVW5zdXBwb3J0ZWQnO1xuICAgIH1cbiAgICByZXR1cm4gJ1Jvb3Q9JyArIHNlZ21lbnQudHJhY2VfaWQgKyAnO1BhcmVudD0nICsgc2VnbWVudC5pZCArICc7U2FtcGxlZD0xJztcbiAgfVxuXG4gIHB1YmxpYyBiZWdpblNlZ21lbnQobWV0aG9kOiBzdHJpbmcsIHVybDogc3RyaW5nKTogU2VnbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuc2tpcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0SGV4SWQoMTYpO1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IHRoaXMuZ2V0RXBvY2hUaW1lKCk7XG4gICAgY29uc3QgdHJhY2VJZCA9ICcxLScgKyB0aGlzLmdldEhleFRpbWUoKSArICctJyArIHRoaXMuZ2V0SGV4SWQoMjQpO1xuXG4gICAgY29uc3Qgc2VnbWVudDogU2VnbWVudCA9IHtcbiAgICAgIGlkLFxuICAgICAgdHJhY2VfaWQ6IHRyYWNlSWQsXG4gICAgICBzdGFydF90aW1lOiBzdGFydFRpbWUsXG4gICAgICBuYW1lOiBgdWktcmVzdC1jYWxsOiR7d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfWAsXG4gICAgICBpbl9wcm9ncmVzczogdHJ1ZSxcbiAgICAgIHVzZXI6IHNlc3Npb25TdG9yYWdlWyd1c2VyaWQnXSxcbiAgICAgIGh0dHA6IHtcbiAgICAgICAgcmVxdWVzdDoge1xuICAgICAgICAgIHVybDogdXJsLFxuICAgICAgICAgIG1ldGhvZDogbWV0aG9kLnRvVXBwZXJDYXNlKCksXG4gICAgICAgICAgdHJhY2VkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGFubm90YXRpb25zOiB7XG4gICAgICAgIGhvc3Q6IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSxcbiAgICAgICAgYmFja2VuZDogd2luZG93WydWRUxPX0FQSSddID8/ICcnLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgZG9jdW1lbnRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGRvY3VtZW50c1swXSA9IEpTT04uc3RyaW5naWZ5KHNlZ21lbnQpO1xuICAgIHRoaXMucHV0RG9jdW1lbnRzKGRvY3VtZW50cyk7XG4gICAgcmV0dXJuIHNlZ21lbnQ7XG4gIH1cblxuICBwdWJsaWMgZW5kU2VnbWVudChzZWdtZW50OiBTZWdtZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2tpcCB8fCBzZWdtZW50LmluX3Byb2dyZXNzID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZWdtZW50LmVuZF90aW1lID0gdGhpcy5nZXRFcG9jaFRpbWUoKTtcbiAgICBzZWdtZW50LmluX3Byb2dyZXNzID0gZmFsc2U7XG4gICAgc2VnbWVudC5odHRwLnJlc3BvbnNlID0ge1xuICAgICAgc3RhdHVzOiAyMDAsXG4gICAgfTtcbiAgICBjb25zdCBkb2N1bWVudHM6IHN0cmluZ1tdID0gW107XG4gICAgZG9jdW1lbnRzWzBdID0gSlNPTi5zdHJpbmdpZnkoc2VnbWVudCk7XG4gICAgdGhpcy5wdXREb2N1bWVudHMoZG9jdW1lbnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmRTZWdtZW50V2l0aEVycm9yKHNlZ21lbnQ6IFNlZ21lbnQsIHN0YXR1cz86IG51bWJlciwgZXJyb3I/OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5za2lwIHx8IHNlZ21lbnQuaW5fcHJvZ3Jlc3MgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNlZ21lbnQuZW5kX3RpbWUgPSB0aGlzLmdldEVwb2NoVGltZSgpO1xuICAgIHNlZ21lbnQuaW5fcHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICBzZWdtZW50LmVycm9yID0gISFzdGF0dXMgJiYgc3RhdHVzID49IDQwMCAmJiBzdGF0dXMgPCA1MDA7XG4gICAgc2VnbWVudC50aHJvdHRsZSA9IHN0YXR1cyA9PT0gNDI5O1xuICAgIHNlZ21lbnQuZmF1bHQgPSAhc3RhdHVzIHx8IChzdGF0dXMgPj0gNTAwICYmIHN0YXR1cyA8IDYwMCk7XG4gICAgaWYgKHN0YXR1cykge1xuICAgICAgc2VnbWVudC5odHRwLnJlc3BvbnNlID0ge1xuICAgICAgICBzdGF0dXM6IHN0YXR1cyxcbiAgICAgIH07XG4gICAgfVxuICAgIGlmIChlcnJvciAmJiBlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBjb25zdCBlID0gZXJyb3IgYXMgRXJyb3I7XG5cbiAgICAgIHNlZ21lbnQuY2F1c2UgPSB7XG4gICAgICAgIHdvcmtpbmdfZGlyZWN0b3J5OiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICAgIGV4Y2VwdGlvbnM6IFt0aGlzLmdldFNlZ21lbnRFeGNlcHRpb24oZSldLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKGVycm9yKSB7XG4gICAgICBsZXQgczogc3RyaW5nID0gJycgKyBlcnJvcjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHMgPSBKU09OLnN0cmluZ2lmeShlcnJvcik7IC8vIHByZWZlciBKU09OIHJlcHJlc2VudGF0aW9uIHRvIGF2b2lkIHR5cGljYWw6IE9iamVjdC5vYmplY3QgY3JhcFxuICAgICAgfSBjYXRjaCAodW51c2VkKSB7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUubG9nKGBGYWlsZWQgdG8gc2VyaWFsaXplIGVycm9yIHRvIEpTT04gcmVwcmVzZW50YXRpb246ICR7ZXJyb3J9YCk7XG4gICAgICB9IC8vIGN5Y2xlcyBhcmUgbm90IEpTT04gc3VwcG9ydGVkLCBidXQgbWlnaHQgYmUgcHJlc2VudCFcblxuICAgICAgY29uc3QgZSA9IG5ldyBFcnJvcihzKTtcbiAgICAgIHNlZ21lbnQuY2F1c2UgPSB7XG4gICAgICAgIHdvcmtpbmdfZGlyZWN0b3J5OiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsXG4gICAgICAgIGV4Y2VwdGlvbnM6IFt0aGlzLmdldFNlZ21lbnRFeGNlcHRpb24oZSldLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBkb2N1bWVudHM6IHN0cmluZ1tdID0gW107XG4gICAgZG9jdW1lbnRzWzBdID0gSlNPTi5zdHJpbmdpZnkoc2VnbWVudCk7XG4gICAgdGhpcy5wdXREb2N1bWVudHMoZG9jdW1lbnRzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SGV4SWQobGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKTtcbiAgICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGJ5dGVzKTtcbiAgICBsZXQgaGV4ID0gJyc7XG4gICAgZm9yIChjb25zdCBjIG9mIGJ5dGVzKSB7XG4gICAgICBoZXggKz0gYy50b1N0cmluZygxNik7XG4gICAgfVxuICAgIHJldHVybiBoZXguc3Vic3RyaW5nKDAsIGxlbmd0aCk7XG4gIH1cblxuICBwcml2YXRlIGdldEhleFRpbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gTWF0aC5yb3VuZChuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDApLnRvU3RyaW5nKDE2KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXBvY2hUaW1lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VnbWVudEV4Y2VwdGlvbihlcnJvcjogRXJyb3IpOiBTZWdtZW50RXhjZXB0aW9uIHtcbiAgICBjb25zdCBzdGFjayA9IFtdO1xuICAgIGNvbnN0IGZyYW1lcyA9ICgnJyArIGVycm9yLnN0YWNrKS5zcGxpdCgnXFxuJyk7XG4gICAgZm9yIChjb25zdCBmIG9mIGZyYW1lcykge1xuICAgICAgc3RhY2sucHVzaCh7XG4gICAgICAgIGxhYmVsOiBmLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzaENvZGUgPSAoczogc3RyaW5nKTogbnVtYmVyID0+IHtcbiAgICAgIGxldCBoYXNoID0gMDtcbiAgICAgIGlmIChzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gaGFzaDtcbiAgICAgIH1cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjaHIgPSBzLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXG4gICAgICAgIGhhc2ggPSAoaGFzaCA8PCA1KSAtIGhhc2ggKyBjaHI7XG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1iaXR3aXNlXG4gICAgICAgIGhhc2ggfD0gMDsgLy8gQ29udmVydCB0byAzMmJpdCBpbnRlZ2VyXG4gICAgICB9XG4gICAgICByZXR1cm4gaGFzaDtcbiAgICB9O1xuXG4gICAgLyogQ29udmVydCB2YWx1ZSBhcyAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciB0byA4IGRpZ2l0IGhleGFkZWNpbWFsIG51bWJlci4gKi9cbiAgICBjb25zdCBoZXgzMiA9ICh2YWw6IG51bWJlcik6IHN0cmluZyA9PiB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYml0d2lzZVxuICAgICAgdmFsICY9IDB4ZmZmZmZmZmY7XG4gICAgICBjb25zdCBoZXggPSB2YWwudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7XG4gICAgICByZXR1cm4gKCcwMDAwMDAwMCcgKyBoZXgpLnNsaWNlKC04KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiAnMDAwMDAwMDAnICsgaGV4MzIoaGFzaENvZGUoZXJyb3IubWVzc2FnZSkpLFxuICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgIHN0YWNrLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHB1dERvY3VtZW50cyhkb2N1bWVudHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgVHJhY2VTZWdtZW50RG9jdW1lbnRzOiBkb2N1bWVudHMsXG4gICAgfTtcbiAgICBpZiAoIXRoaXMueHJheSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgdGhpcy54cmF5LnB1dFRyYWNlU2VnbWVudHMocGFyYW1zLCAoZXJyOiBhbnksIGRhdGE/OiBQdXRUcmFjZVNlZ21lbnRzQ29tbWFuZE91dHB1dCkgPT4ge1xuICAgICAgaWYgKGVycikge1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmxvZyhlcnIsIGVyci5zdGFjayk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport * as fflate from 'fflate';\nimport { MessageService } from 'primeng/api';\nimport { BehaviorSubject, from, shareReplay, throwError } from 'rxjs';\nimport { catchError, map, retryWhen, switchMap, tap } from 'rxjs/operators';\nimport { XrayService } from './xray.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nimport * as i2 from \"primeng/api\";\nimport * as i3 from \"./xray.service\";\nexport class BaseHttpService {\n    constructor(http, messageService, xray) {\n        this.http = http;\n        this.messageService = messageService;\n        this.xray = xray;\n        this.API_BASE_URL = window['VELO_API'] + '/services';\n        this.DEV_SESSION_EXPIRED_MESSAGE = 'Token is not registered';\n        this.devToken$ = new BehaviorSubject(window.DEV_TOKEN);\n        this.debugMode$ = this.devToken$.pipe(map(devToken => Boolean(devToken)));\n        this.devToken$.next(window.DEV_TOKEN);\n    }\n    api(requestOptions) {\n        const method = requestOptions.method || 'get';\n        const url = this.API_BASE_URL + requestOptions.url;\n        const segment = this.xray.beginSegment(method, url);\n        return this.request(requestOptions, segment).pipe(tap(() => {\n            if (segment) {\n                this.xray.endSegment(segment);\n            }\n        }), retryWhen((errors) => {\n            return errors.pipe(tap(err => {\n                if (window.DEV_TOKEN && err.status === 403 && err.error === this.DEV_SESSION_EXPIRED_MESSAGE) {\n                    // clear devToken and retry without it\n                    this.devToken$.next(undefined);\n                }\n                else {\n                    throw err;\n                }\n            }));\n        }), catchError((err) => {\n            if (segment) {\n                this.xray.endSegmentWithError(segment, err.status, err);\n            }\n            if (requestOptions.skipErrorHandler) {\n                return throwError(() => err);\n            }\n            let error;\n            // we need to show error when dev session is enabled and status is 403\n            if (err.status == 401 || (err.status == 403 && !this.devToken$.value)) {\n                error = err.message;\n                this.publishErrorMessage(err);\n            }\n            else {\n                error = err;\n                if (requestOptions.errorHandler) {\n                    requestOptions.errorHandler.apply(null, [error]);\n                }\n                else {\n                    this.publishErrorMessage(error);\n                }\n            }\n            return throwError(() => error);\n        }));\n    }\n    upload(requestOptions) {\n        let headers = this.getHeadersForUpload();\n        const method = requestOptions.method || 'post';\n        const url = this.API_BASE_URL + requestOptions.url;\n        const segment = this.xray.beginSegment(method, url);\n        if (segment) {\n            headers = headers.append('X-Amzn-Trace-Id', this.xray.getTraceHeader(segment));\n        }\n        return this.http\n            .request(method, url, {\n            withCredentials: true,\n            body: requestOptions.body,\n            headers,\n            params: requestOptions.params,\n            reportProgress: requestOptions.reportProgress,\n            responseType: requestOptions.responseType,\n            observe: requestOptions.observe || 'body',\n        })\n            .pipe(map(result => {\n            if (segment) {\n                this.xray.endSegment(segment);\n            }\n            return result;\n        }), catchError((err) => {\n            if (segment) {\n                this.xray.endSegmentWithError(segment, err.status, err);\n            }\n            return throwError(() => err);\n        }));\n    }\n    handleValidationError(error) {\n        const err = error.message || JSON.stringify(error);\n        const errMsg = String(err);\n        return throwError(() => errMsg);\n    }\n    request(requestOptions, segment) {\n        return from(this.adjustRequestBody(requestOptions)).pipe(switchMap(() => {\n            const method = requestOptions.method || 'get';\n            const url = this.API_BASE_URL + requestOptions.url;\n            let headers = requestOptions.headers || this.getHeaders();\n            if (segment) {\n                headers = headers.append('X-Amzn-Trace-Id', this.xray.getTraceHeader(segment));\n            }\n            return this.http.request(method, url, {\n                withCredentials: true,\n                body: requestOptions.body,\n                headers,\n                params: requestOptions.params,\n                responseType: requestOptions.responseType,\n                observe: requestOptions.observe || 'body',\n            });\n        }), shareReplay(1));\n    }\n    getHeaders() {\n        let headers = new HttpHeaders({\n            'Content-Type': 'application/json',\n            'Veloce-Accept-Encoding': this.compressionMethod,\n        });\n        if (this.devToken$.value) {\n            headers = headers.append('Veloce-Dev-Token', this.devToken$.value);\n        }\n        headers = this.appendHeaderValueFromGlobalScope(headers, 'Authorization', 'VELO_KEY');\n        return headers;\n    }\n    getHeadersForUpload() {\n        let headers = new HttpHeaders();\n        if (this.devToken$.value) {\n            headers = headers.append('Veloce-Dev-Token', this.devToken$.value);\n        }\n        headers = this.appendHeaderValueFromGlobalScope(headers, 'Authorization', 'VELO_KEY');\n        return headers;\n    }\n    toParams(map) {\n        let params = new HttpParams();\n        if (map) {\n            map.forEach((value, key) => {\n                params = params.set(key, value);\n            });\n        }\n        return params;\n    }\n    get compressionMethod() {\n        return (window.COMPRESSION_METHOD || 'gzip').toLowerCase();\n    }\n    appendHeaderValueFromGlobalScope(headers, headerName, valueKey) {\n        const value = window[valueKey];\n        if (value && typeof value === 'string') {\n            headers = headers.append(headerName, value);\n        }\n        return headers;\n    }\n    publishErrorMessage(err) {\n        const errMsg = this.extractErrorMessage(err);\n        this.messageService.add({ severity: 'error', summary: errMsg, sticky: true });\n    }\n    extractErrorMessage(err) {\n        let errMsg = 'Server error occurred';\n        if (typeof err.error === 'string') {\n            errMsg = `${err.status} ${err.statusText}: ${err.error}`;\n        }\n        else if (err.error) {\n            errMsg = `${(err.error.message && ' ' + err.error.message) || ''} ${(err.error.exception && ' ' + err.error.exception) || ''}`;\n        }\n        else if (err.message) {\n            errMsg = `${err.message}`;\n        }\n        return errMsg;\n    }\n    getAdjustedHeaders(sourceHeaders, veloceEncoding) {\n        let headers = sourceHeaders || this.getHeaders();\n        headers = headers\n            .delete('Content-Type')\n            .append('Content-Type', 'text/plain')\n            .set('Content-Encoding', veloceEncoding)\n            .set('Veloce-Encoding', veloceEncoding);\n        return headers;\n    }\n    async adjustRequestBody(requestOptions) {\n        if (requestOptions.body) {\n            const content = JSON.stringify(requestOptions.body);\n            if (this.compressionMethod !== 'none' && content.length > 10000) {\n                const uint8Array = new TextEncoder().encode(content);\n                const encoded = fflate.gzipSync(uint8Array);\n                requestOptions.body = new Blob([encoded]);\n                requestOptions.headers = this.getAdjustedHeaders(requestOptions.headers, 'gzip');\n            }\n            else {\n                requestOptions.body = content;\n            }\n        }\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseHttpService, deps: [{ token: i1.HttpClient }, { token: i2.MessageService }, { token: i3.XrayService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseHttpService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseHttpService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.MessageService }, { type: i3.XrayService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1odHRwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9iYXNlLWh0dHAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFxQixXQUFXLEVBQUUsVUFBVSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDakMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBYyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUs3QyxNQUFNLE9BQU8sZUFBZTtJQVExQixZQUFvQixJQUFnQixFQUFVLGNBQThCLEVBQVUsSUFBaUI7UUFBbkYsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQWE7UUFMdEYsaUJBQVksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsV0FBVyxDQUFDO1FBQ2hELGdDQUEyQixHQUFHLHlCQUF5QixDQUFDO1FBRWpFLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRzVFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxF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RUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDckQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDNUMsY0FBYyxDQUFDLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLGNBQWMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbkYsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGNBQWMsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBQ2hDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0FwT1UsZUFBZTtrSEFBZixlQUFlLGNBREYsTUFBTTs7MkZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBmZmxhdGUgZnJvbSAnZmZsYXRlJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCByZXRyeVdoZW4sIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cFJlcXVlc3RPcHRpb25zLCBTZWdtZW50LCBWbFdpbmRvdyB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFhyYXlTZXJ2aWNlIH0gZnJvbSAnLi94cmF5LnNlcnZpY2UnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQmFzZUh0dHBTZXJ2aWNlIHtcbiAgcHVibGljIGRlYnVnTW9kZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBBUElfQkFTRV9VUkwgPSB3aW5kb3dbJ1ZFTE9fQVBJJ10gKyAnL3NlcnZpY2VzJztcbiAgcHJpdmF0ZSByZWFkb25seSBERVZfU0VTU0lPTl9FWFBJUkVEX01FU1NBR0UgPSAnVG9rZW4gaXMgbm90IHJlZ2lzdGVyZWQnO1xuXG4gIHByaXZhdGUgZGV2VG9rZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHdpbmRvdy5ERVZfVE9LRU4pO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHByaXZhdGUgeHJheTogWHJheVNlcnZpY2UpIHtcbiAgICB0aGlzLmRlYnVnTW9kZSQgPSB0aGlzLmRldlRva2VuJC5waXBlKG1hcChkZXZUb2tlbiA9PiBCb29sZWFuKGRldlRva2VuKSkpO1xuICAgIHRoaXMuZGV2VG9rZW4kLm5leHQod2luZG93LkRFVl9UT0tFTik7XG4gIH1cblxuICBwdWJsaWMgYXBpPFQgPSBhbnk+KHJlcXVlc3RPcHRpb25zOiBIdHRwUmVxdWVzdE9wdGlvbnMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBjb25zdCBtZXRob2QgPSByZXF1ZXN0T3B0aW9ucy5tZXRob2QgfHwgJ2dldCc7XG4gICAgY29uc3QgdXJsID0gdGhpcy5BUElfQkFTRV9VUkwgKyByZXF1ZXN0T3B0aW9ucy51cmw7XG4gICAgY29uc3Qgc2VnbWVudCA9IHRoaXMueHJheS5iZWdpblNlZ21lbnQobWV0aG9kLCB1cmwpO1xuXG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdDxUPihyZXF1ZXN0T3B0aW9ucywgc2VnbWVudCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIGlmIChzZWdtZW50KSB7XG4gICAgICAgICAgdGhpcy54cmF5LmVuZFNlZ21lbnQoc2VnbWVudCk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgcmV0cnlXaGVuKChlcnJvcnM6IE9ic2VydmFibGU8SHR0cEVycm9yUmVzcG9uc2U+KSA9PiB7XG4gICAgICAgIHJldHVybiBlcnJvcnMucGlwZShcbiAgICAgICAgICB0YXAoZXJyID0+IHtcbiAgICAgICAgICAgIGlmICh3aW5kb3cuREVWX1RPS0VOICYmIGVyci5zdGF0dXMgPT09IDQwMyAmJiBlcnIuZXJyb3IgPT09IHRoaXMuREVWX1NFU1NJT05fRVhQSVJFRF9NRVNTQUdFKSB7XG4gICAgICAgICAgICAgIC8vIGNsZWFyIGRldlRva2VuIGFuZCByZXRyeSB3aXRob3V0IGl0XG4gICAgICAgICAgICAgIHRoaXMuZGV2VG9rZW4kLm5leHQodW5kZWZpbmVkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoc2VnbWVudCkge1xuICAgICAgICAgIHRoaXMueHJheS5lbmRTZWdtZW50V2l0aEVycm9yKHNlZ21lbnQsIGVyci5zdGF0dXMsIGVycik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVxdWVzdE9wdGlvbnMuc2tpcEVycm9ySGFuZGxlcikge1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycik7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlIHwgc3RyaW5nO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNob3cgZXJyb3Igd2hlbiBkZXYgc2Vzc2lvbiBpcyBlbmFibGVkIGFuZCBzdGF0dXMgaXMgNDAzXG4gICAgICAgIGlmIChlcnIuc3RhdHVzID09IDQwMSB8fCAoZXJyLnN0YXR1cyA9PSA0MDMgJiYgIXRoaXMuZGV2VG9rZW4kLnZhbHVlKSkge1xuICAgICAgICAgIGVycm9yID0gZXJyLm1lc3NhZ2U7XG4gICAgICAgICAgdGhpcy5wdWJsaXNoRXJyb3JNZXNzYWdlKGVycik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3IgPSBlcnI7XG4gICAgICAgICAgaWYgKHJlcXVlc3RPcHRpb25zLmVycm9ySGFuZGxlcikge1xuICAgICAgICAgICAgcmVxdWVzdE9wdGlvbnMuZXJyb3JIYW5kbGVyLmFwcGx5KG51bGwsIFtlcnJvcl0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnB1Ymxpc2hFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBsb2FkKHJlcXVlc3RPcHRpb25zOiBIdHRwUmVxdWVzdE9wdGlvbnMpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzRm9yVXBsb2FkKCk7XG4gICAgY29uc3QgbWV0aG9kID0gcmVxdWVzdE9wdGlvbnMubWV0aG9kIHx8ICdwb3N0JztcbiAgICBjb25zdCB1cmwgPSB0aGlzLkFQSV9CQVNFX1VSTCArIHJlcXVlc3RPcHRpb25zLnVybDtcbiAgICBjb25zdCBzZWdtZW50ID0gdGhpcy54cmF5LmJlZ2luU2VnbWVudChtZXRob2QsIHVybCk7XG4gICAgaWYgKHNlZ21lbnQpIHtcbiAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmFwcGVuZCgnWC1BbXpuLVRyYWNlLUlkJywgdGhpcy54cmF5LmdldFRyYWNlSGVhZGVyKHNlZ21lbnQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucmVxdWVzdChtZXRob2QsIHVybCwge1xuICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIGJvZHk6IHJlcXVlc3RPcHRpb25zLmJvZHksXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICAgIHBhcmFtczogcmVxdWVzdE9wdGlvbnMucGFyYW1zLFxuICAgICAgICByZXBvcnRQcm9ncmVzczogcmVxdWVzdE9wdGlvbnMucmVwb3J0UHJvZ3Jlc3MsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogcmVxdWVzdE9wdGlvbnMucmVzcG9uc2VUeXBlLFxuICAgICAgICBvYnNlcnZlOiByZXF1ZXN0T3B0aW9ucy5vYnNlcnZlIHx8ICdib2R5JyxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHNlZ21lbnQpIHtcbiAgICAgICAgICAgIHRoaXMueHJheS5lbmRTZWdtZW50KHNlZ21lbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gPGFueT5yZXN1bHQ7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogT2JzZXJ2YWJsZTxuZXZlcj4gPT4ge1xuICAgICAgICAgIGlmIChzZWdtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnhyYXkuZW5kU2VnbWVudFdpdGhFcnJvcihzZWdtZW50LCBlcnIuc3RhdHVzLCBlcnIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycik7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVWYWxpZGF0aW9uRXJyb3IoZXJyb3I6IEh0dHBSZXNwb25zZTxhbnk+IHwgYW55KTogT2JzZXJ2YWJsZTxuZXZlcj4ge1xuICAgIGNvbnN0IGVyciA9IGVycm9yLm1lc3NhZ2UgfHwgSlNPTi5zdHJpbmdpZnkoZXJyb3IpO1xuICAgIGNvbnN0IGVyck1zZyA9IFN0cmluZyhlcnIpO1xuXG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyTXNnKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVxdWVzdDxUID0gYW55PihyZXF1ZXN0T3B0aW9uczogSHR0cFJlcXVlc3RPcHRpb25zLCBzZWdtZW50PzogU2VnbWVudCk6IE9ic2VydmFibGU8VCB8IG5ldmVyPiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5hZGp1c3RSZXF1ZXN0Qm9keShyZXF1ZXN0T3B0aW9ucykpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCBtZXRob2QgPSByZXF1ZXN0T3B0aW9ucy5tZXRob2QgfHwgJ2dldCc7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMuQVBJX0JBU0VfVVJMICsgcmVxdWVzdE9wdGlvbnMudXJsO1xuICAgICAgICBsZXQgaGVhZGVycyA9IHJlcXVlc3RPcHRpb25zLmhlYWRlcnMgfHwgdGhpcy5nZXRIZWFkZXJzKCk7XG4gICAgICAgIGlmIChzZWdtZW50KSB7XG4gICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuYXBwZW5kKCdYLUFtem4tVHJhY2UtSWQnLCB0aGlzLnhyYXkuZ2V0VHJhY2VIZWFkZXIoc2VnbWVudCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5yZXF1ZXN0KG1ldGhvZCwgdXJsLCB7XG4gICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICAgIGJvZHk6IHJlcXVlc3RPcHRpb25zLmJvZHksXG4gICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICBwYXJhbXM6IHJlcXVlc3RPcHRpb25zLnBhcmFtcyxcbiAgICAgICAgICByZXNwb25zZVR5cGU6IHJlcXVlc3RPcHRpb25zLnJlc3BvbnNlVHlwZSxcbiAgICAgICAgICBvYnNlcnZlOiByZXF1ZXN0T3B0aW9ucy5vYnNlcnZlIHx8ICdib2R5JyxcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldEhlYWRlcnMoKTogSHR0cEhlYWRlcnMge1xuICAgIGxldCBoZWFkZXJzOiBIdHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgJ1ZlbG9jZS1BY2NlcHQtRW5jb2RpbmcnOiB0aGlzLmNvbXByZXNzaW9uTWV0aG9kLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuZGV2VG9rZW4kLnZhbHVlKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoJ1ZlbG9jZS1EZXYtVG9rZW4nLCB0aGlzLmRldlRva2VuJC52YWx1ZSk7XG4gICAgfVxuXG4gICAgaGVhZGVycyA9IHRoaXMuYXBwZW5kSGVhZGVyVmFsdWVGcm9tR2xvYmFsU2NvcGUoaGVhZGVycywgJ0F1dGhvcml6YXRpb24nLCAnVkVMT19LRVknKTtcblxuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRIZWFkZXJzRm9yVXBsb2FkKCk6IEh0dHBIZWFkZXJzIHtcbiAgICBsZXQgaGVhZGVyczogSHR0cEhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcblxuICAgIGlmICh0aGlzLmRldlRva2VuJC52YWx1ZSkge1xuICAgICAgaGVhZGVycyA9IGhlYWRlcnMuYXBwZW5kKCdWZWxvY2UtRGV2LVRva2VuJywgdGhpcy5kZXZUb2tlbiQudmFsdWUpO1xuICAgIH1cblxuICAgIGhlYWRlcnMgPSB0aGlzLmFwcGVuZEhlYWRlclZhbHVlRnJvbUdsb2JhbFNjb3BlKGhlYWRlcnMsICdBdXRob3JpemF0aW9uJywgJ1ZFTE9fS0VZJyk7XG5cbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIHByaXZhdGUgdG9QYXJhbXMobWFwOiBNYXA8c3RyaW5nLCBzdHJpbmc+KTogSHR0cFBhcmFtcyB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG5cbiAgICBpZiAobWFwKSB7XG4gICAgICBtYXAuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNvbXByZXNzaW9uTWV0aG9kKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh3aW5kb3cuQ09NUFJFU1NJT05fTUVUSE9EIHx8ICdnemlwJykudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kSGVhZGVyVmFsdWVGcm9tR2xvYmFsU2NvcGUoXG4gICAgaGVhZGVyczogSHR0cEhlYWRlcnMsXG4gICAgaGVhZGVyTmFtZTogc3RyaW5nLFxuICAgIHZhbHVlS2V5OiBrZXlvZiBWbFdpbmRvdyxcbiAgKTogSHR0cEhlYWRlcnMge1xuICAgIGNvbnN0IHZhbHVlID0gd2luZG93W3ZhbHVlS2V5XTtcblxuICAgIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoaGVhZGVyTmFtZSwgdmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIHByaXZhdGUgcHVibGlzaEVycm9yTWVzc2FnZShlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogdm9pZCB7XG4gICAgY29uc3QgZXJyTXNnID0gdGhpcy5leHRyYWN0RXJyb3JNZXNzYWdlKGVycik7XG5cbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiBlcnJNc2csIHN0aWNreTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdEVycm9yTWVzc2FnZShlcnI6IEh0dHBFcnJvclJlc3BvbnNlKTogc3RyaW5nIHtcbiAgICBsZXQgZXJyTXNnID0gJ1NlcnZlciBlcnJvciBvY2N1cnJlZCc7XG4gICAgaWYgKHR5cGVvZiBlcnIuZXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBlcnJNc2cgPSBgJHtlcnIuc3RhdHVzfSAke2Vyci5zdGF0dXNUZXh0fTogJHtlcnIuZXJyb3J9YDtcbiAgICB9IGVsc2UgaWYgKGVyci5lcnJvcikge1xuICAgICAgZXJyTXNnID0gYCR7KGVyci5lcnJvci5tZXNzYWdlICYmICcgJyArIGVyci5lcnJvci5tZXNzYWdlKSB8fCAnJ30gJHtcbiAgICAgICAgKGVyci5lcnJvci5leGNlcHRpb24gJiYgJyAnICsgZXJyLmVycm9yLmV4Y2VwdGlvbikgfHwgJydcbiAgICAgIH1gO1xuICAgIH0gZWxzZSBpZiAoZXJyLm1lc3NhZ2UpIHtcbiAgICAgIGVyck1zZyA9IGAke2Vyci5tZXNzYWdlfWA7XG4gICAgfVxuICAgIHJldHVybiBlcnJNc2c7XG4gIH1cblxuICBwcml2YXRlIGdldEFkanVzdGVkSGVhZGVycyhzb3VyY2VIZWFkZXJzOiBIdHRwSGVhZGVycyB8IHVuZGVmaW5lZCwgdmVsb2NlRW5jb2Rpbmc6IHN0cmluZyk6IEh0dHBIZWFkZXJzIHtcbiAgICBsZXQgaGVhZGVycyA9IHNvdXJjZUhlYWRlcnMgfHwgdGhpcy5nZXRIZWFkZXJzKCk7XG4gICAgaGVhZGVycyA9IGhlYWRlcnNcbiAgICAgIC5kZWxldGUoJ0NvbnRlbnQtVHlwZScpXG4gICAgICAuYXBwZW5kKCdDb250ZW50LVR5cGUnLCAndGV4dC9wbGFpbicpXG4gICAgICAuc2V0KCdDb250ZW50LUVuY29kaW5nJywgdmVsb2NlRW5jb2RpbmcpXG4gICAgICAuc2V0KCdWZWxvY2UtRW5jb2RpbmcnLCB2ZWxvY2VFbmNvZGluZyk7XG4gICAgcmV0dXJuIGhlYWRlcnM7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGFkanVzdFJlcXVlc3RCb2R5KHJlcXVlc3RPcHRpb25zOiBIdHRwUmVxdWVzdE9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAocmVxdWVzdE9wdGlvbnMuYm9keSkge1xuICAgICAgY29uc3QgY29udGVudCA9IEpTT04uc3RyaW5naWZ5KHJlcXVlc3RPcHRpb25zLmJvZHkpO1xuICAgICAgaWYgKHRoaXMuY29tcHJlc3Npb25NZXRob2QgIT09ICdub25lJyAmJiBjb250ZW50Lmxlbmd0aCA+IDEwMDAwKSB7XG4gICAgICAgIGNvbnN0IHVpbnQ4QXJyYXkgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoY29udGVudCk7XG4gICAgICAgIGNvbnN0IGVuY29kZWQgPSBmZmxhdGUuZ3ppcFN5bmModWludDhBcnJheSk7XG4gICAgICAgIHJlcXVlc3RPcHRpb25zLmJvZHkgPSBuZXcgQmxvYihbZW5jb2RlZF0pO1xuICAgICAgICByZXF1ZXN0T3B0aW9ucy5oZWFkZXJzID0gdGhpcy5nZXRBZGp1c3RlZEhlYWRlcnMocmVxdWVzdE9wdGlvbnMuaGVhZGVycywgJ2d6aXAnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcXVlc3RPcHRpb25zLmJvZHkgPSBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class FileDownloadService {\n    constructor() {\n        this.defaultFileName = 'veloce-export.txt';\n        this.regex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n    }\n    processDownload(response, fileName) {\n        const name = fileName || this.getFileName(response.headers.get('Content-Disposition')) || this.defaultFileName;\n        this.downloadFile(name, response.body || response);\n    }\n    downloadFile(fileName, blob) {\n        const blobURL = window.URL.createObjectURL(blob);\n        const tempLink = document.createElement('a');\n        tempLink.style.display = 'none';\n        tempLink.href = blobURL;\n        tempLink.setAttribute('download', fileName);\n        tempLink.setAttribute('target', '_blank');\n        document.body.appendChild(tempLink);\n        tempLink.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));\n        window.URL.revokeObjectURL(blobURL);\n        tempLink.remove();\n    }\n    getFileName(contentDisposition) {\n        if (!contentDisposition?.includes('attachment')) {\n            return;\n        }\n        const matches = this.regex.exec(contentDisposition);\n        if (matches?.[1]) {\n            return matches[1].replace(/['\"]/g, '');\n        }\n        return;\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: FileDownloadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: FileDownloadService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: FileDownloadService, decorators: [{\n            type: Injectable,\n            args: [{ providedIn: 'root' }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2VydmljZXMvZmlsZS1kb3dubG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFbUIsb0JBQWUsR0FBRyxtQkFBbUIsQ0FBQztRQUN0QyxVQUFLLEdBQUcsd0NBQXdDLENBQUM7S0FrQ25FO0lBaENRLGVBQWUsQ0FBQyxRQUFhLEVBQUUsUUFBaUI7UUFDckQsTUFBTSxJQUFJLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7UUFFL0csSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU0sWUFBWSxDQUFDLFFBQWdCLEVBQUUsSUFBVTtRQUM5QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUNoQyxRQUFRLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUN4QixRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM1QyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUxQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRU8sV0FBVyxDQUFDLGtCQUEwQjtRQUM1QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDaEQsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BELElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqQixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxPQUFPO0lBQ1QsQ0FBQzs4R0FuQ1UsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBGaWxlRG93bmxvYWRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0RmlsZU5hbWUgPSAndmVsb2NlLWV4cG9ydC50eHQnO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2V4ID0gL2ZpbGVuYW1lW147PVxcbl0qPSgoWydcIl0pLio/XFwyfFteO1xcbl0qKS87XG5cbiAgcHVibGljIHByb2Nlc3NEb3dubG9hZChyZXNwb25zZTogYW55LCBmaWxlTmFtZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5hbWUgPSBmaWxlTmFtZSB8fCB0aGlzLmdldEZpbGVOYW1lKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCdDb250ZW50LURpc3Bvc2l0aW9uJykpIHx8IHRoaXMuZGVmYXVsdEZpbGVOYW1lO1xuXG4gICAgdGhpcy5kb3dubG9hZEZpbGUobmFtZSwgcmVzcG9uc2UuYm9keSB8fCByZXNwb25zZSk7XG4gIH1cblxuICBwdWJsaWMgZG93bmxvYWRGaWxlKGZpbGVOYW1lOiBzdHJpbmcsIGJsb2I6IEJsb2IpOiB2b2lkIHtcbiAgICBjb25zdCBibG9iVVJMID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgY29uc3QgdGVtcExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgdGVtcExpbmsuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB0ZW1wTGluay5ocmVmID0gYmxvYlVSTDtcbiAgICB0ZW1wTGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpO1xuICAgIHRlbXBMaW5rLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpO1xuXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0ZW1wTGluayk7XG4gICAgdGVtcExpbmsuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgnY2xpY2snLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUsIHZpZXc6IHdpbmRvdyB9KSk7XG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoYmxvYlVSTCk7XG4gICAgdGVtcExpbmsucmVtb3ZlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGVOYW1lKGNvbnRlbnREaXNwb3NpdGlvbjogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWNvbnRlbnREaXNwb3NpdGlvbj8uaW5jbHVkZXMoJ2F0dGFjaG1lbnQnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoZXMgPSB0aGlzLnJlZ2V4LmV4ZWMoY29udGVudERpc3Bvc2l0aW9uKTtcbiAgICBpZiAobWF0Y2hlcz8uWzFdKSB7XG4gICAgICByZXR1cm4gbWF0Y2hlc1sxXS5yZXBsYWNlKC9bJ1wiXS9nLCAnJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class SessionStorageService {\n    getData(key) {\n        const data = sessionStorage.getItem(key);\n        if (!data) {\n            return;\n        }\n        return JSON.parse(data);\n    }\n    setData(key, data) {\n        sessionStorage.setItem(key, JSON.stringify(data));\n    }\n    removeData(key) {\n        sessionStorage.removeItem(key);\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SessionStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SessionStorageService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SessionStorageService, decorators: [{\n            type: Injectable\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1zdG9yYWdlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9zZXJ2aWNlcy9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8scUJBQXFCO0lBQ3pCLE9BQU8sQ0FBQyxHQUFXO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxHQUFXLEVBQUUsSUFBTztRQUNqQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLGNBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQzs4R0FmVSxxQkFBcUI7a0hBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlc3Npb25TdG9yYWdlU2VydmljZTxUPiB7XG4gIHB1YmxpYyBnZXREYXRhKGtleTogc3RyaW5nKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgc2V0RGF0YShrZXk6IHN0cmluZywgZGF0YTogVCk6IHZvaWQge1xuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlRGF0YShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KTtcbiAgfVxufVxuIl19","export function parseJwtSafe(token) {\n    try {\n        return parseJwt(token);\n    }\n    catch {\n        return null;\n    }\n}\nexport function parseJwt(token) {\n    const base64Url = token.split('.')[1];\n    if (!base64Url) {\n        return null;\n    }\n    const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n    const jsonPayload = decodeURIComponent(window\n        .atob(base64)\n        .split('')\n        .map(c => `%${('00' + c.charCodeAt(0).toString(16)).slice(-2)}`)\n        .join(''));\n    return JSON.parse(jsonPayload);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvYXBpLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBYTtJQUN4QyxJQUFJLENBQUM7UUFDSCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQUMsS0FBYTtJQUNwQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0QsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQ3BDLE1BQU07U0FDSCxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ1osS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUNULEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQy9ELElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDWixDQUFDO0lBRUYsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWZWxvY2VUb2tlbiB9IGZyb20gJy4uL3R5cGVzL2FwaS50eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUp3dFNhZmUodG9rZW46IHN0cmluZyk6IFZlbG9jZVRva2VuIHwgbnVsbCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHBhcnNlSnd0KHRva2VuKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSnd0KHRva2VuOiBzdHJpbmcpOiBWZWxvY2VUb2tlbiB8IG51bGwge1xuICBjb25zdCBiYXNlNjRVcmwgPSB0b2tlbi5zcGxpdCgnLicpWzFdO1xuICBpZiAoIWJhc2U2NFVybCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYmFzZTY0ID0gYmFzZTY0VXJsLnJlcGxhY2UoLy0vZywgJysnKS5yZXBsYWNlKC9fL2csICcvJyk7XG4gIGNvbnN0IGpzb25QYXlsb2FkID0gZGVjb2RlVVJJQ29tcG9uZW50KFxuICAgIHdpbmRvd1xuICAgICAgLmF0b2IoYmFzZTY0KVxuICAgICAgLnNwbGl0KCcnKVxuICAgICAgLm1hcChjID0+IGAlJHsoJzAwJyArIGMuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC0yKX1gKVxuICAgICAgLmpvaW4oJycpLFxuICApO1xuXG4gIHJldHVybiBKU09OLnBhcnNlKGpzb25QYXlsb2FkKTtcbn1cbiJdfQ==","export function getCollectionUniqueName(collection, name, comparator, suffixGetter) {\n    let result = '';\n    let index = 0;\n    while (!result) {\n        let suffix = '';\n        if (index) {\n            suffix = suffixGetter?.(index) ?? ` (${index})`;\n        }\n        const candidate = name + suffix;\n        const exists = collection.some(comparator(candidate));\n        if (!exists) {\n            result = candidate;\n        }\n        else {\n            index++;\n        }\n    }\n    return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2NvbGxlY3Rpb24udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxVQUFlLEVBQ2YsSUFBWSxFQUNaLFVBQWdGLEVBQ2hGLFlBQXdDO0lBRXhDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFZCxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sR0FBRyxZQUFZLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLEtBQUssR0FBRyxDQUFDO1FBQ2xELENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUNyQixDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssRUFBRSxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGdldENvbGxlY3Rpb25VbmlxdWVOYW1lPFQ+KFxuICBjb2xsZWN0aW9uOiBUW10sXG4gIG5hbWU6IHN0cmluZyxcbiAgY29tcGFyYXRvcjogKG5hbWU6IHN0cmluZykgPT4gKHZhbHVlOiBULCBpbmRleD86IG51bWJlciwgYXJyYXk/OiBUW10pID0+IGJvb2xlYW4sXG4gIHN1ZmZpeEdldHRlcj86IChpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBsZXQgcmVzdWx0ID0gJyc7XG4gIGxldCBpbmRleCA9IDA7XG5cbiAgd2hpbGUgKCFyZXN1bHQpIHtcbiAgICBsZXQgc3VmZml4ID0gJyc7XG4gICAgaWYgKGluZGV4KSB7XG4gICAgICBzdWZmaXggPSBzdWZmaXhHZXR0ZXI/LihpbmRleCkgPz8gYCAoJHtpbmRleH0pYDtcbiAgICB9XG5cbiAgICBjb25zdCBjYW5kaWRhdGUgPSBuYW1lICsgc3VmZml4O1xuICAgIGNvbnN0IGV4aXN0cyA9IGNvbGxlY3Rpb24uc29tZShjb21wYXJhdG9yKGNhbmRpZGF0ZSkpO1xuXG4gICAgaWYgKCFleGlzdHMpIHtcbiAgICAgIHJlc3VsdCA9IGNhbmRpZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5kZXgrKztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuIl19","const primengConvertMap = {\n    yyyy: 'yy',\n    YYYY: 'yy',\n    D: 'd',\n    M: 'm',\n};\nconst formatTokens = ['dd', 'MM', 'yyyy'];\nexport const validateDateFormatReg = new RegExp(/.*(y{4}|M{2}|d{2}).*(y{4}|M{2}|d{2}).*(y{4}|M{2}|d{2}).*/);\nexport function convertDateFormatToPrimeNGFormat(date) {\n    let result = adjustDateDelimeter('' + date, `'`);\n    for (const [from, to] of Object.entries(primengConvertMap)) {\n        result = result.replaceAll(from, to);\n    }\n    return result;\n}\nexport function convertDateFormatToDatePipeFormat(date) {\n    const result = adjustDateDelimeter('' + date, `'`);\n    return result;\n}\nexport function convertDateFormatToMomentJSFormat(date) {\n    let result = adjustDateDelimeter('' + date, '[', ']');\n    result = result.replaceAll('d', 'D');\n    return result;\n}\nexport function validateDateFormat(date) {\n    return (Boolean(date) &&\n        !!date.match(/yyyy/g)?.length &&\n        !!date.match(/MM/g)?.length &&\n        !!date.match(/dd/g)?.length &&\n        validateDateFormatReg.test(date));\n}\n/**\n * Adjust date format for the different sources by\n * wrapping delimiters in appropriate characters\n *\n * IMPORTANT: works only for valid date formats\n * @param endChar equal to startChar if not provided\n */\nexport function adjustDateDelimeter(dateFormat, startChar, endChar = startChar) {\n    let result = startChar + dateFormat + endChar;\n    for (const token of formatTokens) {\n        result = result.replaceAll(token, `${endChar}${token}${startChar}`);\n    }\n    return result.replaceAll(startChar + endChar, '');\n}\n/**\n *\n * @param origin date format to be parsed\n * @returns origin date format and all formats used by application\n */\nexport function getSupportedDateFormats(origin) {\n    return {\n        originFormat: origin,\n        primengFormat: convertDateFormatToPrimeNGFormat(origin),\n        datePipeFormat: convertDateFormatToDatePipeFormat(origin),\n        momentjsFormat: convertDateFormatToMomentJSFormat(origin),\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2RhdGUudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixJQUFJLEVBQUUsSUFBSTtJQUNWLElBQUksRUFBRSxJQUFJO0lBQ1YsQ0FBQyxFQUFFLEdBQUc7SUFDTixDQUFDLEVBQUUsR0FBRztDQUNQLENBQUM7QUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxNQUFNLENBQUMsMERBQTBELENBQUMsQ0FBQztBQUU1RyxNQUFNLFVBQVUsZ0NBQWdDLENBQUMsSUFBWTtJQUMzRCxJQUFJLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRWpELEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztRQUMzRCxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsSUFBWTtJQUM1RCxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRW5ELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsaUNBQWlDLENBQUMsSUFBWTtJQUM1RCxJQUFJLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUV0RCxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFckMsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxJQUFZO0lBQzdDLE9BQU8sQ0FDTCxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2IsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTTtRQUM3QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNO1FBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU07UUFDM0IscUJBQXFCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUNqQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxVQUFrQixFQUFFLFNBQWlCLEVBQUUsT0FBTyxHQUFHLFNBQVM7SUFDNUYsSUFBSSxNQUFNLEdBQUcsU0FBUyxHQUFHLFVBQVUsR0FBRyxPQUFPLENBQUM7SUFFOUMsS0FBSyxNQUFNLEtBQUssSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxPQUFPLEdBQUcsS0FBSyxHQUFHLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE1BQWM7SUFDcEQsT0FBTztRQUNMLFlBQVksRUFBRSxNQUFNO1FBQ3BCLGFBQWEsRUFBRSxnQ0FBZ0MsQ0FBQyxNQUFNLENBQUM7UUFDdkQsY0FBYyxFQUFFLGlDQUFpQyxDQUFDLE1BQU0sQ0FBQztRQUN6RCxjQUFjLEVBQUUsaUNBQWlDLENBQUMsTUFBTSxDQUFDO0tBQzFELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcHJpbWVuZ0NvbnZlcnRNYXAgPSB7XG4gIHl5eXk6ICd5eScsXG4gIFlZWVk6ICd5eScsXG4gIEQ6ICdkJyxcbiAgTTogJ20nLFxufTtcblxuY29uc3QgZm9ybWF0VG9rZW5zID0gWydkZCcsICdNTScsICd5eXl5J107XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZURhdGVGb3JtYXRSZWcgPSBuZXcgUmVnRXhwKC8uKih5ezR9fE17Mn18ZHsyfSkuKih5ezR9fE17Mn18ZHsyfSkuKih5ezR9fE17Mn18ZHsyfSkuKi8pO1xuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERhdGVGb3JtYXRUb1ByaW1lTkdGb3JtYXQoZGF0ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHJlc3VsdCA9IGFkanVzdERhdGVEZWxpbWV0ZXIoJycgKyBkYXRlLCBgJ2ApO1xuXG4gIGZvciAoY29uc3QgW2Zyb20sIHRvXSBvZiBPYmplY3QuZW50cmllcyhwcmltZW5nQ29udmVydE1hcCkpIHtcbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZUFsbChmcm9tLCB0byk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydERhdGVGb3JtYXRUb0RhdGVQaXBlRm9ybWF0KGRhdGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHJlc3VsdCA9IGFkanVzdERhdGVEZWxpbWV0ZXIoJycgKyBkYXRlLCBgJ2ApO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RGF0ZUZvcm1hdFRvTW9tZW50SlNGb3JtYXQoZGF0ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHJlc3VsdCA9IGFkanVzdERhdGVEZWxpbWV0ZXIoJycgKyBkYXRlLCAnWycsICddJyk7XG5cbiAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2VBbGwoJ2QnLCAnRCcpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZURhdGVGb3JtYXQoZGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAoXG4gICAgQm9vbGVhbihkYXRlKSAmJlxuICAgICEhZGF0ZS5tYXRjaCgveXl5eS9nKT8ubGVuZ3RoICYmXG4gICAgISFkYXRlLm1hdGNoKC9NTS9nKT8ubGVuZ3RoICYmXG4gICAgISFkYXRlLm1hdGNoKC9kZC9nKT8ubGVuZ3RoICYmXG4gICAgdmFsaWRhdGVEYXRlRm9ybWF0UmVnLnRlc3QoZGF0ZSlcbiAgKTtcbn1cblxuLyoqXG4gKiBBZGp1c3QgZGF0ZSBmb3JtYXQgZm9yIHRoZSBkaWZmZXJlbnQgc291cmNlcyBieVxuICogd3JhcHBpbmcgZGVsaW1pdGVycyBpbiBhcHByb3ByaWF0ZSBjaGFyYWN0ZXJzXG4gKlxuICogSU1QT1JUQU5UOiB3b3JrcyBvbmx5IGZvciB2YWxpZCBkYXRlIGZvcm1hdHNcbiAqIEBwYXJhbSBlbmRDaGFyIGVxdWFsIHRvIHN0YXJ0Q2hhciBpZiBub3QgcHJvdmlkZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkanVzdERhdGVEZWxpbWV0ZXIoZGF0ZUZvcm1hdDogc3RyaW5nLCBzdGFydENoYXI6IHN0cmluZywgZW5kQ2hhciA9IHN0YXJ0Q2hhcik6IHN0cmluZyB7XG4gIGxldCByZXN1bHQgPSBzdGFydENoYXIgKyBkYXRlRm9ybWF0ICsgZW5kQ2hhcjtcblxuICBmb3IgKGNvbnN0IHRva2VuIG9mIGZvcm1hdFRva2Vucykge1xuICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlQWxsKHRva2VuLCBgJHtlbmRDaGFyfSR7dG9rZW59JHtzdGFydENoYXJ9YCk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0LnJlcGxhY2VBbGwoc3RhcnRDaGFyICsgZW5kQ2hhciwgJycpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gb3JpZ2luIGRhdGUgZm9ybWF0IHRvIGJlIHBhcnNlZFxuICogQHJldHVybnMgb3JpZ2luIGRhdGUgZm9ybWF0IGFuZCBhbGwgZm9ybWF0cyB1c2VkIGJ5IGFwcGxpY2F0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdXBwb3J0ZWREYXRlRm9ybWF0cyhvcmlnaW46IHN0cmluZykge1xuICByZXR1cm4ge1xuICAgIG9yaWdpbkZvcm1hdDogb3JpZ2luLFxuICAgIHByaW1lbmdGb3JtYXQ6IGNvbnZlcnREYXRlRm9ybWF0VG9QcmltZU5HRm9ybWF0KG9yaWdpbiksXG4gICAgZGF0ZVBpcGVGb3JtYXQ6IGNvbnZlcnREYXRlRm9ybWF0VG9EYXRlUGlwZUZvcm1hdChvcmlnaW4pLFxuICAgIG1vbWVudGpzRm9ybWF0OiBjb252ZXJ0RGF0ZUZvcm1hdFRvTW9tZW50SlNGb3JtYXQob3JpZ2luKSxcbiAgfTtcbn1cbiJdfQ==","export const ADJUSTMENT_TYPE_LABELS = {\n    DISCOUNT_PERCENT: 'Discount Percent',\n    DISCOUNT_AMOUNT: 'Discount Amount',\n    DISCOUNT_UNIT_AMOUNT: 'Discount Unit Amount',\n    MARKUP_PERCENT: 'Markup Percent',\n    MARKUP_AMOUNT: 'Markup Amount',\n    MARKUP_UNIT_AMOUNT: 'Markup Unit Amount',\n    OVERRIDE_AMOUNT: 'Override Amount',\n    OVERRIDE_UNIT_AMOUNT: 'Override Unit Amount',\n    OVERRIDE_PERCENT: 'Override Percent',\n    MARGIN: 'Margin',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRqdXN0bWVudC10eXBlLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdHlwZXMvYWRqdXN0bWVudC10eXBlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUF3QztJQUN6RSxnQkFBZ0IsRUFBRSxrQkFBa0I7SUFDcEMsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxvQkFBb0IsRUFBRSxzQkFBc0I7SUFDNUMsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxhQUFhLEVBQUUsZUFBZTtJQUM5QixrQkFBa0IsRUFBRSxvQkFBb0I7SUFDeEMsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxvQkFBb0IsRUFBRSxzQkFBc0I7SUFDNUMsZ0JBQWdCLEVBQUUsa0JBQWtCO0lBQ3BDLE1BQU0sRUFBRSxRQUFRO0NBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBBZGp1c3RtZW50VHlwZSA9XG4gIHwgJ0RJU0NPVU5UX1BFUkNFTlQnXG4gIHwgJ0RJU0NPVU5UX0FNT1VOVCdcbiAgfCAnRElTQ09VTlRfVU5JVF9BTU9VTlQnXG4gIHwgJ01BUktVUF9QRVJDRU5UJ1xuICB8ICdNQVJLVVBfQU1PVU5UJ1xuICB8ICdNQVJLVVBfVU5JVF9BTU9VTlQnXG4gIHwgJ09WRVJSSURFX0FNT1VOVCdcbiAgfCAnT1ZFUlJJREVfVU5JVF9BTU9VTlQnXG4gIHwgJ09WRVJSSURFX1BFUkNFTlQnXG4gIHwgJ01BUkdJTic7XG5cbmV4cG9ydCBjb25zdCBBREpVU1RNRU5UX1RZUEVfTEFCRUxTOiB7IFtrZXkgaW4gQWRqdXN0bWVudFR5cGVdOiBzdHJpbmcgfSA9IHtcbiAgRElTQ09VTlRfUEVSQ0VOVDogJ0Rpc2NvdW50IFBlcmNlbnQnLFxuICBESVNDT1VOVF9BTU9VTlQ6ICdEaXNjb3VudCBBbW91bnQnLFxuICBESVNDT1VOVF9VTklUX0FNT1VOVDogJ0Rpc2NvdW50IFVuaXQgQW1vdW50JyxcbiAgTUFSS1VQX1BFUkNFTlQ6ICdNYXJrdXAgUGVyY2VudCcsXG4gIE1BUktVUF9BTU9VTlQ6ICdNYXJrdXAgQW1vdW50JyxcbiAgTUFSS1VQX1VOSVRfQU1PVU5UOiAnTWFya3VwIFVuaXQgQW1vdW50JyxcbiAgT1ZFUlJJREVfQU1PVU5UOiAnT3ZlcnJpZGUgQW1vdW50JyxcbiAgT1ZFUlJJREVfVU5JVF9BTU9VTlQ6ICdPdmVycmlkZSBVbml0IEFtb3VudCcsXG4gIE9WRVJSSURFX1BFUkNFTlQ6ICdPdmVycmlkZSBQZXJjZW50JyxcbiAgTUFSR0lOOiAnTWFyZ2luJyxcbn07XG4iXX0=","export var CategoryFilterType;\n(function (CategoryFilterType) {\n    CategoryFilterType[\"CHECKBOX\"] = \"CHECKBOX\";\n    CategoryFilterType[\"DROPDOWN\"] = \"DROPDOWN\";\n    CategoryFilterType[\"RADIO_BUTTON\"] = \"RADIO_BUTTON\";\n    CategoryFilterType[\"SLIDE_TOGGLE\"] = \"SLIDE_TOGGLE\";\n    CategoryFilterType[\"RANGE\"] = \"RANGE\";\n    CategoryFilterType[\"DATE_PICKER\"] = \"DATE_PICKER\";\n})(CategoryFilterType || (CategoryFilterType = {}));\nexport var CategoryPrimitiveType;\n(function (CategoryPrimitiveType) {\n    CategoryPrimitiveType[\"NUMBER\"] = \"NUMBER\";\n    CategoryPrimitiveType[\"TEXT\"] = \"TEXT\";\n    CategoryPrimitiveType[\"BOOLEAN\"] = \"BOOLEAN\";\n    CategoryPrimitiveType[\"DATE\"] = \"DATE\";\n})(CategoryPrimitiveType || (CategoryPrimitiveType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3R5cGVzL2NhdGFsb2cudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkNBLE1BQU0sQ0FBTixJQUFZLGtCQU9YO0FBUEQsV0FBWSxrQkFBa0I7SUFDNUIsMkNBQXFCLENBQUE7SUFDckIsMkNBQXFCLENBQUE7SUFDckIsbURBQTZCLENBQUE7SUFDN0IsbURBQTZCLENBQUE7SUFDN0IscUNBQWUsQ0FBQTtJQUNmLGlEQUEyQixDQUFBO0FBQzdCLENBQUMsRUFQVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBTzdCO0FBRUQsTUFBTSxDQUFOLElBQVkscUJBS1g7QUFMRCxXQUFZLHFCQUFxQjtJQUMvQiwwQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBYSxDQUFBO0lBQ2IsNENBQW1CLENBQUE7SUFDbkIsc0NBQWEsQ0FBQTtBQUNmLENBQUMsRUFMVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBS2hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4vcHJvZHVjdC50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV3Q2F0YWxvZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0YWxvZyBleHRlbmRzIE5ld0NhdGFsb2cge1xuICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ld0NhdGVnb3J5IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwYXJlbnRJZD86IHN0cmluZztcbiAgY2F0YWxvZ0lkOiBzdHJpbmc7XG4gIGNhcmRWaWV3OiBib29sZWFuO1xuICBlbmFibGVHdWlkZWRTZWxsaW5nOiBib29sZWFuO1xuICBndWlkZWRTZWxsaW5nSWQ/OiBzdHJpbmc7XG4gIG9yY2hlc3RyYXRpb25OYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgYXR0cmlidXRlcz86IENhdGVnb3J5RmlsdGVyW107XG4gIHN1cHByZXNzVG9hc3RNZXNzYWdlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yeSBleHRlbmRzIE5ld0NhdGVnb3J5IHtcbiAgaWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yeUZpbHRlciBleHRlbmRzIE5ld0NhdGVnb3J5RmlsdGVyIHtcbiAgaWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXdDYXRlZ29yeUZpbHRlciB7XG4gIGNhdGVnb3J5SWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBhdHRyaWJ1dGVOYW1lOiBzdHJpbmc7XG4gIGNvbnRyb2xUeXBlOiBDYXRlZ29yeUZpbHRlclR5cGU7XG4gIHByaW1pdGl2ZVR5cGU6IENhdGVnb3J5UHJpbWl0aXZlVHlwZTtcbiAgaXNSYW5nZTogYm9vbGVhbjtcbiAgdmFsdWVzOiBzdHJpbmdbXTtcbiAgcHJlY2lzaW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgZW51bSBDYXRlZ29yeUZpbHRlclR5cGUge1xuICBDSEVDS0JPWCA9ICdDSEVDS0JPWCcsXG4gIERST1BET1dOID0gJ0RST1BET1dOJyxcbiAgUkFESU9fQlVUVE9OID0gJ1JBRElPX0JVVFRPTicsXG4gIFNMSURFX1RPR0dMRSA9ICdTTElERV9UT0dHTEUnLFxuICBSQU5HRSA9ICdSQU5HRScsXG4gIERBVEVfUElDS0VSID0gJ0RBVEVfUElDS0VSJyxcbn1cblxuZXhwb3J0IGVudW0gQ2F0ZWdvcnlQcmltaXRpdmVUeXBlIHtcbiAgTlVNQkVSID0gJ05VTUJFUicsXG4gIFRFWFQgPSAnVEVYVCcsXG4gIEJPT0xFQU4gPSAnQk9PTEVBTicsXG4gIERBVEUgPSAnREFURScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0ZWdvcnlSZXF1ZXN0UGF5bG9hZCB7XG4gIGNhdGFsb2dJZDogc3RyaW5nO1xuICBjYXRlZ29yeUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0ZWdvcnlSZXF1ZXN0UGF5bG9hZFdpdGhEYXRhPFQ+IGV4dGVuZHMgQ2F0ZWdvcnlSZXF1ZXN0UGF5bG9hZCB7XG4gIGRhdGE6IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkUHJvZHVjdHNQYXlsb2FkIHtcbiAgcHJvZHVjdHM6IFByb2R1Y3RbXTtcbiAgY2F0YWxvZ0lkOiBzdHJpbmc7XG4gIGNhdGVnb3J5SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVQcm9kdWN0UGF5bG9hZCB7XG4gIHByb2R1Y3Q6IFBhcnRpYWw8UHJvZHVjdD47XG4gIGNhdGFsb2dJZDogc3RyaW5nO1xuICBjYXRlZ29yeUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hDYXRlZ29yeVByb2R1Y3RzUGF5bG9hZCB7XG4gIGNhdGVnb3J5SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXRhbG9nUHJvZHVjdCB7XG4gIGlkOiBzdHJpbmc7XG4gIHByb2R1Y3RDYXRlZ29yeUlkOiBzdHJpbmc7XG4gIHByb2R1Y3RJZDogc3RyaW5nO1xuICByYW5rOiBudW1iZXI7XG59XG4iXX0=","export var ConfigurationProcessorTypes;\n(function (ConfigurationProcessorTypes) {\n    ConfigurationProcessorTypes[\"ACTION\"] = \"ACTION\";\n    ConfigurationProcessorTypes[\"SELECTOR\"] = \"SELECTOR\";\n})(ConfigurationProcessorTypes || (ConfigurationProcessorTypes = {}));\nexport const CONFIGURATION_PROCESSOR_TYPES_MAP = {\n    [ConfigurationProcessorTypes.ACTION]: 'Action',\n    [ConfigurationProcessorTypes.SELECTOR]: 'Selector',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1wcm9jZXNzb3IudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90eXBlcy9jb25maWd1cmF0aW9uLXByb2Nlc3Nvci50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsTUFBTSxDQUFOLElBQVksMkJBR1g7QUFIRCxXQUFZLDJCQUEyQjtJQUNyQyxnREFBaUIsQ0FBQTtJQUNqQixvREFBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsMkJBQTJCLEtBQTNCLDJCQUEyQixRQUd0QztBQUVELE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHO0lBQy9DLENBQUMsMkJBQTJCLENBQUMsTUFBTSxDQUFDLEVBQUUsUUFBUTtJQUM5QyxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVU7Q0FDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ29uZmlndXJhdGlvblByb2Nlc3NvciB7XG4gIGlzTmV3PzogYm9vbGVhbjtcbiAgaWQ/OiBzdHJpbmc7XG4gIG93bmVySWQ/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgYXBpTmFtZTogc3RyaW5nO1xuICB0eXBlOiBDb25maWd1cmF0aW9uUHJvY2Vzc29yVHlwZXM7XG4gIHNjcmlwdDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ3VyYXRpb25Qcm9jZXNzb3JTY3JpcHRGblBhcmFtcyB7XG4gIHJlcXVlc3Q6IHVua25vd247XG4gIGlucHV0RGF0YT86IHVua25vd247XG4gIGZsb3dTdG9yZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGNvbmZpZ3VyYXRpb25TdG9yZT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG5leHBvcnQgdHlwZSBDb25maWd1cmF0aW9uUHJvY2Vzc29yU2NyaXB0Rm4gPSAocGFyYW1zOiBDb25maWd1cmF0aW9uUHJvY2Vzc29yU2NyaXB0Rm5QYXJhbXMpID0+IHVua25vd247XG5cbmV4cG9ydCBlbnVtIENvbmZpZ3VyYXRpb25Qcm9jZXNzb3JUeXBlcyB7XG4gIEFDVElPTiA9ICdBQ1RJT04nLFxuICBTRUxFQ1RPUiA9ICdTRUxFQ1RPUicsXG59XG5cbmV4cG9ydCBjb25zdCBDT05GSUdVUkFUSU9OX1BST0NFU1NPUl9UWVBFU19NQVAgPSB7XG4gIFtDb25maWd1cmF0aW9uUHJvY2Vzc29yVHlwZXMuQUNUSU9OXTogJ0FjdGlvbicsXG4gIFtDb25maWd1cmF0aW9uUHJvY2Vzc29yVHlwZXMuU0VMRUNUT1JdOiAnU2VsZWN0b3InLFxufTtcbiJdfQ==","import { StringUtils } from '../utils';\nexport var Operator;\n(function (Operator) {\n    /** Equal */\n    Operator[\"EQ\"] = \"EQ\";\n    /** Not equal */\n    Operator[\"NE\"] = \"NE\";\n    /** Greater than */\n    Operator[\"GT\"] = \"GT\";\n    /** Greater than or equal */\n    Operator[\"GE\"] = \"GE\";\n    /** Less than */\n    Operator[\"LT\"] = \"LT\";\n    /** Less than or equal */\n    Operator[\"LE\"] = \"LE\";\n    /** Like */\n    Operator[\"LIKE\"] = \"LIKE\";\n    /** In */\n    Operator[\"IN\"] = \"IN\";\n})(Operator || (Operator = {}));\nexport var Predicate;\n(function (Predicate) {\n    Predicate[\"OR\"] = \"OR\";\n    Predicate[\"AND\"] = \"AND\";\n})(Predicate || (Predicate = {}));\nexport const RawOperatorsMap = {\n    EQ: '=',\n    NE: '!=',\n    GT: '>',\n    GE: '>=',\n    LT: '<',\n    LE: '<=',\n    LIKE: 'LIKE',\n    IN: 'IN',\n};\nexport class Condition {\n}\nexport class Expression {\n    constructor(predicate, conditions) {\n        this.predicate = predicate ?? Predicate.AND;\n        this.conditions = conditions ?? [];\n        this.expressions = [];\n    }\n    toRawCondition(customFn) {\n        return this.conditions\n            .map(condition => {\n            const customResult = customFn ? customFn(condition) : undefined;\n            if (customResult) {\n                return customResult;\n            }\n            let value = StringUtils.normalizeString(condition.value);\n            if (condition.operator === 'LIKE') {\n                value = \"'%\" + StringUtils.normalizeString(condition.value) + \"%'\";\n            }\n            else if (typeof condition.value === 'string') {\n                value = \"'\" + StringUtils.normalizeString(condition.value, ['_']) + \"'\";\n            }\n            return `${condition.key} ${RawOperatorsMap[condition.operator || 'LIKE']} ${value}`;\n        })\n            .join(` ${this.predicate} `);\n    }\n    isEmpty() {\n        return this.conditions.length === 0 && this.expressions.length === 0;\n    }\n}\nexport class SearchRequest {\n    constructor() {\n        this.nullCheck = {};\n        this.sort = {};\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaWEudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90eXBlcy9jcml0ZXJpYS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXZDLE1BQU0sQ0FBTixJQUFZLFFBaUJYO0FBakJELFdBQVksUUFBUTtJQUNsQixZQUFZO0lBQ1oscUJBQVMsQ0FBQTtJQUNULGdCQUFnQjtJQUNoQixxQkFBUyxDQUFBO0lBQ1QsbUJBQW1CO0lBQ25CLHFCQUFTLENBQUE7SUFDVCw0QkFBNEI7SUFDNUIscUJBQVMsQ0FBQTtJQUNULGdCQUFnQjtJQUNoQixxQkFBUyxDQUFBO0lBQ1QseUJBQXlCO0lBQ3pCLHFCQUFTLENBQUE7SUFDVCxXQUFXO0lBQ1gseUJBQWEsQ0FBQTtJQUNiLFNBQVM7SUFDVCxxQkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQWpCVyxRQUFRLEtBQVIsUUFBUSxRQWlCbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLHNCQUFTLENBQUE7SUFDVCx3QkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQUhXLFNBQVMsS0FBVCxTQUFTLFFBR3BCO0FBRUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUE4QjtJQUN4RCxFQUFFLEVBQUUsR0FBRztJQUNQLEVBQUUsRUFBRSxJQUFJO0lBQ1IsRUFBRSxFQUFFLEdBQUc7SUFDUCxFQUFFLEVBQUUsSUFBSTtJQUNSLEVBQUUsRUFBRSxHQUFHO0lBQ1AsRUFBRSxFQUFFLElBQUk7SUFDUixJQUFJLEVBQUUsTUFBTTtJQUNaLEVBQUUsRUFBRSxJQUFJO0NBQ1QsQ0FBQztBQUVGLE1BQU0sT0FBTyxTQUFTO0NBU3JCO0FBUUQsTUFBTSxPQUFPLFVBQVU7SUFLckIsWUFBWSxTQUFxQixFQUFFLFVBQXdCO1FBQ3pELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxjQUFjLENBQUMsUUFBdUQ7UUFDM0UsT0FBTyxJQUFJLENBQUMsVUFBVTthQUNuQixHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDZixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2hFLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2pCLE9BQU8sWUFBWSxDQUFDO1lBQ3RCLENBQUM7WUFFRCxJQUFJLEtBQUssR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6RCxJQUFJLFNBQVMsQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ2xDLEtBQUssR0FBRyxJQUFJLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3JFLENBQUM7aUJBQU0sSUFBSSxPQUFPLFNBQVMsQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQy9DLEtBQUssR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDMUUsQ0FBQztZQUNELE9BQU8sR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3RGLENBQUMsQ0FBQzthQUNELElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxPQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7Q0FDRjtBQU1ELE1BQU0sT0FBTyxhQUFhO0lBQTFCO1FBUVMsY0FBUyxHQUFrQyxFQUFFLENBQUM7UUFDOUMsU0FBSSxHQUFrQyxFQUFFLENBQUM7SUFJbEQsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RyaW5nVXRpbHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBlbnVtIE9wZXJhdG9yIHtcbiAgLyoqIEVxdWFsICovXG4gIEVRID0gJ0VRJyxcbiAgLyoqIE5vdCBlcXVhbCAqL1xuICBORSA9ICdORScsXG4gIC8qKiBHcmVhdGVyIHRoYW4gKi9cbiAgR1QgPSAnR1QnLFxuICAvKiogR3JlYXRlciB0aGFuIG9yIGVxdWFsICovXG4gIEdFID0gJ0dFJyxcbiAgLyoqIExlc3MgdGhhbiAqL1xuICBMVCA9ICdMVCcsXG4gIC8qKiBMZXNzIHRoYW4gb3IgZXF1YWwgKi9cbiAgTEUgPSAnTEUnLFxuICAvKiogTGlrZSAqL1xuICBMSUtFID0gJ0xJS0UnLFxuICAvKiogSW4gKi9cbiAgSU4gPSAnSU4nLFxufVxuXG5leHBvcnQgZW51bSBQcmVkaWNhdGUge1xuICBPUiA9ICdPUicsXG4gIEFORCA9ICdBTkQnLFxufVxuXG5leHBvcnQgY29uc3QgUmF3T3BlcmF0b3JzTWFwOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBFUTogJz0nLFxuICBORTogJyE9JyxcbiAgR1Q6ICc+JyxcbiAgR0U6ICc+PScsXG4gIExUOiAnPCcsXG4gIExFOiAnPD0nLFxuICBMSUtFOiAnTElLRScsXG4gIElOOiAnSU4nLFxufTtcblxuZXhwb3J0IGNsYXNzIENvbmRpdGlvbiB7XG4gIHB1YmxpYyBpZD86IHN0cmluZztcbiAgcHVibGljIGtleT86IHN0cmluZztcbiAgcHVibGljIGRpc3BsYXlWYWx1ZT86IHN0cmluZztcbiAgcHVibGljIHR5cGU/OiBzdHJpbmc7XG4gIHB1YmxpYyBvcGVyYXRvcj86IHN0cmluZztcbiAgcHVibGljIG9wZXJhdG9yRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyB2YWx1ZT86IHN0cmluZztcbiAgcHVibGljIHZhbHVlT3B0aW9ucz86IHN0cmluZ1tdIHwgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHByZXNzaW9uTW9kZWwge1xuICBwcmVkaWNhdGU/OiBQcmVkaWNhdGU7XG4gIGNvbmRpdGlvbnM6IENvbmRpdGlvbltdO1xuICBleHByZXNzaW9uczogRXhwcmVzc2lvbk1vZGVsW107XG59XG5cbmV4cG9ydCBjbGFzcyBFeHByZXNzaW9uIGltcGxlbWVudHMgRXhwcmVzc2lvbk1vZGVsIHtcbiAgcHVibGljIHByZWRpY2F0ZTogUHJlZGljYXRlO1xuICBwdWJsaWMgY29uZGl0aW9uczogQ29uZGl0aW9uW107XG4gIHB1YmxpYyBleHByZXNzaW9uczogRXhwcmVzc2lvbltdO1xuXG4gIGNvbnN0cnVjdG9yKHByZWRpY2F0ZT86IFByZWRpY2F0ZSwgY29uZGl0aW9ucz86IENvbmRpdGlvbltdKSB7XG4gICAgdGhpcy5wcmVkaWNhdGUgPSBwcmVkaWNhdGUgPz8gUHJlZGljYXRlLkFORDtcbiAgICB0aGlzLmNvbmRpdGlvbnMgPSBjb25kaXRpb25zID8/IFtdO1xuICAgIHRoaXMuZXhwcmVzc2lvbnMgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyB0b1Jhd0NvbmRpdGlvbihjdXN0b21Gbj86IChjb25kaXRpb246IENvbmRpdGlvbikgPT4gc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb25kaXRpb25zXG4gICAgICAubWFwKGNvbmRpdGlvbiA9PiB7XG4gICAgICAgIGNvbnN0IGN1c3RvbVJlc3VsdCA9IGN1c3RvbUZuID8gY3VzdG9tRm4oY29uZGl0aW9uKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKGN1c3RvbVJlc3VsdCkge1xuICAgICAgICAgIHJldHVybiBjdXN0b21SZXN1bHQ7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWUgPSBTdHJpbmdVdGlscy5ub3JtYWxpemVTdHJpbmcoY29uZGl0aW9uLnZhbHVlKTtcbiAgICAgICAgaWYgKGNvbmRpdGlvbi5vcGVyYXRvciA9PT0gJ0xJS0UnKSB7XG4gICAgICAgICAgdmFsdWUgPSBcIiclXCIgKyBTdHJpbmdVdGlscy5ub3JtYWxpemVTdHJpbmcoY29uZGl0aW9uLnZhbHVlKSArIFwiJSdcIjtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgY29uZGl0aW9uLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHZhbHVlID0gXCInXCIgKyBTdHJpbmdVdGlscy5ub3JtYWxpemVTdHJpbmcoY29uZGl0aW9uLnZhbHVlLCBbJ18nXSkgKyBcIidcIjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7Y29uZGl0aW9uLmtleX0gJHtSYXdPcGVyYXRvcnNNYXBbY29uZGl0aW9uLm9wZXJhdG9yIHx8ICdMSUtFJ119ICR7dmFsdWV9YDtcbiAgICAgIH0pXG4gICAgICAuam9pbihgICR7dGhpcy5wcmVkaWNhdGV9IGApO1xuICB9XG5cbiAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29uZGl0aW9ucy5sZW5ndGggPT09IDAgJiYgdGhpcy5leHByZXNzaW9ucy5sZW5ndGggPT09IDA7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hDcml0ZXJpYSB7XG4gIGV4cHJlc3Npb246IEV4cHJlc3Npb247XG59XG5cbmV4cG9ydCBjbGFzcyBTZWFyY2hSZXF1ZXN0IHtcbiAgcHVibGljIHNraXA/OiBudW1iZXI7XG4gIHB1YmxpYyBjb3VudD86IG51bWJlcjtcbiAgcHVibGljIGZpZWxkcz86IHN0cmluZ1tdO1xuXG4gIHB1YmxpYyByYXdDb25kaXRpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyBzZWFyY2hDcml0ZXJpYT86IFNlYXJjaENyaXRlcmlhO1xuXG4gIHB1YmxpYyBudWxsQ2hlY2s/OiB7IFtpbmRleDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gIHB1YmxpYyBzb3J0PzogeyBbaW5kZXg6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICBwdWJsaWMgYXNjPzogYm9vbGVhbjtcblxuICBwdWJsaWMgZ3JvdXBCeT86IHN0cmluZztcbn1cbiJdfQ==","export var RequestMethod;\n(function (RequestMethod) {\n    RequestMethod[\"get\"] = \"GET\";\n    RequestMethod[\"post\"] = \"POST\";\n    RequestMethod[\"put\"] = \"PUT\";\n    RequestMethod[\"patch\"] = \"PATCH\";\n    RequestMethod[\"delete\"] = \"DELETE\";\n})(RequestMethod || (RequestMethod = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnQudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90eXBlcy9lbmRwb2ludC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnRUEsTUFBTSxDQUFOLElBQVksYUFNWDtBQU5ELFdBQVksYUFBYTtJQUN2Qiw0QkFBVyxDQUFBO0lBQ1gsOEJBQWEsQ0FBQTtJQUNiLDRCQUFXLENBQUE7SUFDWCxnQ0FBZSxDQUFBO0lBQ2Ysa0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQU5XLGFBQWEsS0FBYixhQUFhLFFBTXhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOZXdFbmRwb2ludCB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnQgZXh0ZW5kcyBOZXdFbmRwb2ludCB7XG4gIGlkOiBzdHJpbmc7XG4gIHB1Ymxpc2hlZDogYm9vbGVhbjtcbiAgcmVxdWVzdE1ldGhvZDogUmVxdWVzdE1ldGhvZDtcbiAgcmVxdWVzdFVybDogc3RyaW5nO1xuICByZXF1ZXN0VmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gIHJlcXVlc3RKU09OU2NoZW1hPzogc3RyaW5nO1xuICByZXF1ZXN0VHJhbnNmb3JtYXRpb25TY3JpcHQ/OiBzdHJpbmc7XG4gIHBhcmFtZXRlcnM/OiBQYXJhbWV0ZXJbXTtcbiAgaGVhZGVycz86IEhlYWRlcltdO1xuICBzdGVwcz86IE9yY2hlc3RyYXRpb25TdGVwW107XG4gIGNhY2hlZDogYm9vbGVhbjtcbiAgZHVyYXRpb24/OiBudW1iZXI7XG4gIHRlc3REYXRhPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcmNoZXN0cmF0aW9uU3RlcCB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHN0ZXBWYXJpYWJsZTogc3RyaW5nO1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIGFwaUVuZHBvaW50SWQ/OiBzdHJpbmc7XG4gIHNlcXVlbmNlPzogbnVtYmVyO1xuICBvcmNoZXN0cmF0aW9uU2NyaXB0Pzogc3RyaW5nO1xuICBzdGVwQWN0aW9uOiBPcmNoZXN0cmF0aW9uU3RlcEFjdGlvbjtcbn1cblxuZXhwb3J0IHR5cGUgT3JjaGVzdHJhdGlvblN0ZXBBY3Rpb24gPVxuICB8ICdRVUVSWV9RVU9URSdcbiAgfCAnR0VUX1JPT1RfTElORV9JVEVNJ1xuICB8ICdBRERfUFJPRFVDVCdcbiAgfCAnVVBEQVRFX1BST0RVQ1QnXG4gIHwgJ0RFTEVURV9QUk9EVUNUJ1xuICB8ICdVUERBVEVfUVVBTlRJVFknXG4gIHwgJ1VQREFURV9BVFRSSUJVVEUnXG4gIHwgJ1VQREFURV9QUk9QRVJUWSdcbiAgfCAnQVBQTFlfRElTQ09VTlQnXG4gIHwgJ0NSRUFURV9URVJNJ1xuICB8ICdDT05GSUdVUkFUSU9OJ1xuICB8ICdTQVZFX1FVT1RFJ1xuICB8ICdDUkVBVEVfQUNDT1VOVCdcbiAgfCAnQ1JFQVRFX09QUE9SVFVOSVRZJ1xuICB8ICdDUkVBVEVfUVVPVEUnXG4gIHwgJ1VQREFURV9RVU9URV9TVEFUVVMnXG4gIHwgJ0NMT1NFX1dJTl9PUFBPUlRVTklUWSdcbiAgfCAnQUNUSVZBVEVfT1JERVInXG4gIHwgJ0NVU1RPTSc7XG5cbmV4cG9ydCBlbnVtIFJlcXVlc3RNZXRob2Qge1xuICBnZXQgPSAnR0VUJyxcbiAgcG9zdCA9ICdQT1NUJyxcbiAgcHV0ID0gJ1BVVCcsXG4gIHBhdGNoID0gJ1BBVENIJyxcbiAgZGVsZXRlID0gJ0RFTEVURScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnRFeGVjdXRlRGF0YSB7XG4gIGh0dHBNZXRob2Q6IFJlcXVlc3RNZXRob2Q7XG4gIHJlcXVlc3RVUkk6IHN0cmluZztcbiAgYm9keTogYW55O1xuICBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT47XG4gIHBhcmFtZXRlck1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+O1xufVxuIl19","export var ErrorType;\n(function (ErrorType) {\n    ErrorType[\"INTERNAL_ERROR\"] = \"VELOCE_INTERNAL_ERROR\";\n    ErrorType[\"SCRIPT_ERROR\"] = \"VELOCE_SCRIPT_ERROR\";\n    ErrorType[\"QUOTE_SCRIPT_ERROR\"] = \"VELOCE_QUOTE_SCRIPT_ERROR\";\n    ErrorType[\"RULE_ERROR\"] = \"VELOCE_RULE_ERROR\";\n    ErrorType[\"APEX_ERROR\"] = \"APEX_ERROR\";\n})(ErrorType || (ErrorType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90eXBlcy9lcnJvci50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxTQU1YO0FBTkQsV0FBWSxTQUFTO0lBQ25CLHFEQUF3QyxDQUFBO0lBQ3hDLGlEQUFvQyxDQUFBO0lBQ3BDLDZEQUFnRCxDQUFBO0lBQ2hELDZDQUFnQyxDQUFBO0lBQ2hDLHNDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFOVyxTQUFTLEtBQVQsU0FBUyxRQU1wQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEVycm9yVHlwZSB7XG4gIElOVEVSTkFMX0VSUk9SID0gJ1ZFTE9DRV9JTlRFUk5BTF9FUlJPUicsXG4gIFNDUklQVF9FUlJPUiA9ICdWRUxPQ0VfU0NSSVBUX0VSUk9SJyxcbiAgUVVPVEVfU0NSSVBUX0VSUk9SID0gJ1ZFTE9DRV9RVU9URV9TQ1JJUFRfRVJST1InLFxuICBSVUxFX0VSUk9SID0gJ1ZFTE9DRV9SVUxFX0VSUk9SJyxcbiAgQVBFWF9FUlJPUiA9ICdBUEVYX0VSUk9SJyxcbn1cblxuaW50ZXJmYWNlIEJhc2VFcnJvciB7XG4gIGVycm9yQ29kZTogRXJyb3JUeXBlO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGxvZ0lkOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBJbnRlcm5hbEVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgZXJyb3JDb2RlOiBFcnJvclR5cGUuSU5URVJOQUxfRVJST1I7XG4gIGRldGFpbHM6IEludGVybmFsRXJyb3JEZXRhaWxzO1xufVxuXG5pbnRlcmZhY2UgSW50ZXJuYWxFcnJvckRldGFpbHMge1xuICAvKipcbiAgICogTGFzdCBwYXJ0IG9mIFZlbG9jZSBDUFEgRXhjZXB0aW9uIG1lc3NhZ2UsIGlmIHByZXNlbnRcbiAgICovXG4gIGNhdXNlZEJ5RXJyb3I/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBTY3JpcHRFcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGVycm9yQ29kZTogRXJyb3JUeXBlLlNDUklQVF9FUlJPUiB8IEVycm9yVHlwZS5RVU9URV9TQ1JJUFRfRVJST1I7XG4gIGRldGFpbHM6IFNjcmlwdEVycm9yRGV0YWlscztcbn1cblxuaW50ZXJmYWNlIFNjcmlwdEVycm9yRGV0YWlscyB7XG4gIC8qKlxuICAgKiBTY3JpcHQgTmFtZSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWQuIFBvc3NpYmxlIHZhbHVlczogU1VCTUlUX1FVT1RFX0FDVElPTiwgUVVFUllfUVVPVEVfQUNUSU9OXG4gICAqL1xuICBzY3JpcHROYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgdGhlIG1ldGhvZCBjYWxscyB0aGF0IHRoZSBhcHBsaWNhdGlvbiB3YXMgaW4gdGhlIG1pZGRsZSBvZiB3aGVuIGFuIEV4Y2VwdGlvbiB3YXMgdGhyb3duLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiA8anM+LmV4ZWN1dGUoVW5uYW1lZDoyNSlcbiAgICogPGpzPi5fbWFpbkV4ZWN1dGUoVW5uYW1lZDoyNzApXG4gICAqL1xuICBzdGFja1RyYWNlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMYXN0IHBhcnQgb2YgVmVsb2NlIENQUSBFeGNlcHRpb24gbWVzc2FnZVxuICAgKi9cbiAgY2F1c2VkQnlFcnJvcjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgUnVsZUVycm9yIGV4dGVuZHMgQmFzZUVycm9yIHtcbiAgZXJyb3JDb2RlOiBFcnJvclR5cGUuUlVMRV9FUlJPUjtcbiAgZGV0YWlsczogUnVsZUVycm9yRGV0YWlscztcbn1cblxuaW50ZXJmYWNlIFJ1bGVFcnJvckRldGFpbHMge1xuICAvKipcbiAgICogRnVuY3Rpb24gSUQgd2hlcmUgdGhlIGVycm9yIG9jY3VycmVkXG4gICAqL1xuICBydWxlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIEZ1bmN0aW9uIE5hbWVcbiAgICovXG4gIHJ1bGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIHN0ZXAgd2hlcmUgdGhlIGVycm9yIG9jY3VycmVkLiBQb3NzaWJsZSB2YWx1ZXM6IENvbmRpdGlvbiwgVHJhbnNmb3JtYXRpb24sIEFjdGlvblxuICAgKi9cbiAgc3RlcFR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFN0ZXAgTmFtZSB3aGVyZSB0aGUgZXJyb3Igb2NjdXJyZWRcbiAgICovXG4gIHN0ZXBOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgdGhlIG1ldGhvZCBjYWxscyB0aGF0IHRoZSBhcHBsaWNhdGlvbiB3YXMgaW4gdGhlIG1pZGRsZSBvZiB3aGVuIGFuIEV4Y2VwdGlvbiB3YXMgdGhyb3duLlxuICAgKiBUaGUgZmllbGQgd2lsbCBiZSBhcHBsaWVzIG9ubHkgdG8gZXJyb3JzIGluIEpTIHRyYW5zZm9ybWF0aW9ucywgb3RoZXJ3aXNlIHRoZSBmaWVsZCBpcyBtaXNzaW5nLlxuICAgKlxuICAgKiBFeGFtcGxlOlxuICAgKiA8anM+LnRyYW5zZm9ybShVbm5hbWVkOjMpXG4gICAqIDxqcz4uX21haW5FeGVjdXRlKFVubmFtZWQ6MTApXG4gICAqL1xuICBzdGFja1RyYWNlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMYXN0IHBhcnQgb2YgVmVsb2NlIENQUSBFeGNlcHRpb24gbWVzc2FnZVxuICAgKi9cbiAgY2F1c2VkQnlFcnJvcjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwZXhFcnJvciBleHRlbmRzIEJhc2VFcnJvciB7XG4gIGVycm9yQ29kZTogRXJyb3JUeXBlLkFQRVhfRVJST1I7XG4gIGRldGFpbHM6IEFwZXhFcnJvckRldGFpbHM7XG59XG5cbmludGVyZmFjZSBBcGV4RXJyb3JEZXRhaWxzIHtcbiAgLyoqXG4gICAqIFRoZSBleGFjdCBsb2NhdGlvbiBvZiB0aGUgZXJyb3IsIHdoaWNoIHNob3VsZCBiZSB0YWtlbiBmcm9tIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBvcmlnaW5hbCBtZXNzYWdlXG4gICAqL1xuICBzYWxlc2ZvcmNlRXhjZXB0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBGaXJzdCBlcnJvciBlbnRyeSBmcm9tIHRoZSBvcmlnaW5hbCBtZXNzYWdlLCBpZiBwcmVzZW50XG4gICAqL1xuICBmaXJzdEVycm9yPzogc3RyaW5nO1xuICAvKipcbiAgICogTGFzdCBwYXJ0IG9mIFZlbG9jZSBDUFEgRXhjZXB0aW9uIG1lc3NhZ2VcbiAgICovXG4gIGNhdXNlZEJ5RXJyb3I6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYW52YXNFcnJvciB7XG4gIGVycm9yOiBzdHJpbmc7XG59XG5cbnR5cGUgRXJyb3JEZXRhaWxzID0gSW50ZXJuYWxFcnJvckRldGFpbHMgfCBTY3JpcHRFcnJvckRldGFpbHMgfCBSdWxlRXJyb3JEZXRhaWxzIHwgQXBleEVycm9yRGV0YWlscztcblxuZXhwb3J0IHR5cGUgVmVsb2NlRXJyb3IgPSBJbnRlcm5hbEVycm9yIHwgU2NyaXB0RXJyb3IgfCBSdWxlRXJyb3IgfCBBcGV4RXJyb3I7XG4iXX0=","export class LineItem {\n    constructor(id, activated, attributes, attributeDomains, cfgStatus, chargeGroupItems, chargeItems, domainComputations, lineItems, messages, name, optionalCharges, pending, portDomains, properties, qty, totalPrices, type, integrationId, productId, port, parentId, assetId, openOrderLineItemId, productName, bundle, rootId, actionCode, status, serviceStartDate, effectiveDate, effectiveStartDate, startDate, endDate, priceListId, planId, sellingFrequencyUnit, sellingFrequencyDuration, minimalTerm, proratedFrequencyEnabled, offeringId, offeringItemId, offeringInstanceId, rampInstanceId, enableRamp, configurable, requiresApprovals, metrics, totalMetrics) {\n        this.id = id;\n        this.activated = activated;\n        this.attributes = attributes;\n        this.attributeDomains = attributeDomains;\n        this.cfgStatus = cfgStatus;\n        this.chargeGroupItems = chargeGroupItems;\n        this.chargeItems = chargeItems;\n        this.domainComputations = domainComputations;\n        this.lineItems = lineItems;\n        this.messages = messages;\n        this.name = name;\n        this.optionalCharges = optionalCharges;\n        this.pending = pending;\n        this.portDomains = portDomains;\n        this.properties = properties;\n        this.qty = qty;\n        this.totalPrices = totalPrices;\n        this.type = type;\n        this.integrationId = integrationId;\n        this.productId = productId;\n        this.port = port;\n        this.parentId = parentId;\n        this.assetId = assetId;\n        this.openOrderLineItemId = openOrderLineItemId;\n        this.productName = productName;\n        this.bundle = bundle;\n        this.rootId = rootId;\n        this.actionCode = actionCode;\n        this.status = status;\n        this.serviceStartDate = serviceStartDate;\n        this.effectiveDate = effectiveDate;\n        this.effectiveStartDate = effectiveStartDate;\n        this.startDate = startDate;\n        this.endDate = endDate;\n        this.priceListId = priceListId;\n        this.planId = planId;\n        this.sellingFrequencyUnit = sellingFrequencyUnit;\n        this.sellingFrequencyDuration = sellingFrequencyDuration;\n        this.minimalTerm = minimalTerm;\n        this.proratedFrequencyEnabled = proratedFrequencyEnabled;\n        this.offeringId = offeringId;\n        this.offeringItemId = offeringItemId;\n        this.offeringInstanceId = offeringInstanceId;\n        this.rampInstanceId = rampInstanceId;\n        this.enableRamp = enableRamp;\n        this.configurable = configurable;\n        this.requiresApprovals = requiresApprovals;\n        this.metrics = metrics;\n        this.totalMetrics = totalMetrics;\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pdGVtLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdHlwZXMvbGluZS1pdGVtLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQ1MsRUFBVSxFQUNWLFNBQWtCLEVBQ2xCLFVBQWlCLEVBQ2pCLGdCQUFtQyxFQUNuQyxTQUFjLEVBQ2QsZ0JBQXVCLEVBQ3ZCLFdBQWtCLEVBQ2xCLGtCQUF1QyxFQUN2QyxTQUFxQixFQUNyQixRQUFrQixFQUNsQixJQUFZLEVBQ1osZUFBc0IsRUFDdEIsT0FBZ0IsRUFDaEIsV0FBNEIsRUFDNUIsVUFBa0MsRUFDbEMsR0FBVyxFQUNYLFdBQTRCLEVBQzVCLElBQVksRUFFWixhQUFzQixFQUN0QixTQUFrQixFQUNsQixJQUFhLEVBQ2IsUUFBaUIsRUFDakIsT0FBZ0IsRUFDaEIsbUJBQTRCLEVBRTVCLFdBQW9CLEVBQ3BCLE1BQWdCLEVBQ2hCLE1BQWUsRUFDZixVQUFnQixFQUNoQixNQUFzQixFQUN0QixnQkFBeUIsRUFDekIsYUFBc0IsRUFDdEIsa0JBQTJCLEVBQzNCLFNBQWtCLEVBQ2xCLE9BQWdCLEVBRWhCLFdBQW9CLEVBQ3BCLE1BQWUsRUFDZixvQkFBb0MsRUFDcEMsd0JBQWlDLEVBQ2pDLFdBQW9CLEVBQ3BCLHdCQUFrQyxFQUVsQyxVQUFtQixFQUNuQixjQUF1QixFQUN2QixrQkFBMkIsRUFDM0IsY0FBdUIsRUFDdkIsVUFBb0IsRUFDcEIsWUFBc0IsRUFFdEIsaUJBQXNDLEVBRXRDLE9BQTRCLEVBQzVCLFlBQWlDO1FBdERqQyxPQUFFLEdBQUYsRUFBRSxDQUFRO1FBQ1YsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixlQUFVLEdBQVYsVUFBVSxDQUFPO1FBQ2pCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDbkMsY0FBUyxHQUFULFNBQVMsQ0FBSztRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBTztRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBTztRQUNsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXFCO1FBQ3ZDLGNBQVMsR0FBVCxTQUFTLENBQVk7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osb0JBQWUsR0FBZixlQUFlLENBQU87UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBd0I7UUFDbEMsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNYLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUM1QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBRVosa0JBQWEsR0FBYixhQUFhLENBQVM7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFTO1FBQ2IsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBUztRQUU1QixnQkFBVyxHQUFYLFdBQVcsQ0FBUztRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFVO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFNO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUztRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBUztRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7UUFDM0IsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBRWhCLGdCQUFXLEdBQVgsV0FBVyxDQUFTO1FBQ3BCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDZix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQWdCO1FBQ3BDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBUztRQUNqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBUztRQUNwQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQVU7UUFFbEMsZUFBVSxHQUFWLFVBQVUsQ0FBUztRQUNuQixtQkFBYyxHQUFkLGNBQWMsQ0FBUztRQUN2Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQVM7UUFDdkIsZUFBVSxHQUFWLFVBQVUsQ0FBVTtRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUV0QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBRXRDLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtJQUN2QyxDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEZyZXF1ZW5jeVVuaXQgfSBmcm9tICcuL2ZyZXF1ZW5jeS11bml0LnR5cGVzJztcbmltcG9ydCB7IFJlcXVpcmVzQXBwcm92YWwgfSBmcm9tICcuL3JlcXVpcmVzLmFwcHJvdmFsJztcbmltcG9ydCB7IFByb2R1Y3RTdGF0dXMgfSBmcm9tICcuL3N0YXR1cy50eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBMaW5lSXRlbSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpZDogc3RyaW5nLFxuICAgIHB1YmxpYyBhY3RpdmF0ZWQ6IGJvb2xlYW4sXG4gICAgcHVibGljIGF0dHJpYnV0ZXM6IGFueVtdLFxuICAgIHB1YmxpYyBhdHRyaWJ1dGVEb21haW5zOiBEaWN0aW9uYXJ5PGFueVtdPixcbiAgICBwdWJsaWMgY2ZnU3RhdHVzOiBhbnksXG4gICAgcHVibGljIGNoYXJnZUdyb3VwSXRlbXM6IGFueVtdLFxuICAgIHB1YmxpYyBjaGFyZ2VJdGVtczogYW55W10sXG4gICAgcHVibGljIGRvbWFpbkNvbXB1dGF0aW9uczogRGljdGlvbmFyeTxib29sZWFuPixcbiAgICBwdWJsaWMgbGluZUl0ZW1zOiBMaW5lSXRlbVtdLFxuICAgIHB1YmxpYyBtZXNzYWdlczogc3RyaW5nW10sXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyxcbiAgICBwdWJsaWMgb3B0aW9uYWxDaGFyZ2VzOiBhbnlbXSxcbiAgICBwdWJsaWMgcGVuZGluZzogYm9vbGVhbixcbiAgICBwdWJsaWMgcG9ydERvbWFpbnM6IERpY3Rpb25hcnk8YW55PixcbiAgICBwdWJsaWMgcHJvcGVydGllczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBwdWJsaWMgcXR5OiBudW1iZXIsXG4gICAgcHVibGljIHRvdGFsUHJpY2VzOiBEaWN0aW9uYXJ5PGFueT4sXG4gICAgcHVibGljIHR5cGU6IHN0cmluZyxcblxuICAgIHB1YmxpYyBpbnRlZ3JhdGlvbklkPzogc3RyaW5nLFxuICAgIHB1YmxpYyBwcm9kdWN0SWQ/OiBzdHJpbmcsXG4gICAgcHVibGljIHBvcnQ/OiBzdHJpbmcsXG4gICAgcHVibGljIHBhcmVudElkPzogc3RyaW5nLFxuICAgIHB1YmxpYyBhc3NldElkPzogc3RyaW5nLFxuICAgIHB1YmxpYyBvcGVuT3JkZXJMaW5lSXRlbUlkPzogc3RyaW5nLFxuXG4gICAgcHVibGljIHByb2R1Y3ROYW1lPzogc3RyaW5nLFxuICAgIHB1YmxpYyBidW5kbGU/OiBib29sZWFuLFxuICAgIHB1YmxpYyByb290SWQ/OiBzdHJpbmcsXG4gICAgcHVibGljIGFjdGlvbkNvZGU/OiBhbnksXG4gICAgcHVibGljIHN0YXR1cz86IFByb2R1Y3RTdGF0dXMsXG4gICAgcHVibGljIHNlcnZpY2VTdGFydERhdGU/OiBzdHJpbmcsXG4gICAgcHVibGljIGVmZmVjdGl2ZURhdGU/OiBzdHJpbmcsXG4gICAgcHVibGljIGVmZmVjdGl2ZVN0YXJ0RGF0ZT86IHN0cmluZyxcbiAgICBwdWJsaWMgc3RhcnREYXRlPzogc3RyaW5nLFxuICAgIHB1YmxpYyBlbmREYXRlPzogc3RyaW5nLFxuXG4gICAgcHVibGljIHByaWNlTGlzdElkPzogc3RyaW5nLFxuICAgIHB1YmxpYyBwbGFuSWQ/OiBzdHJpbmcsXG4gICAgcHVibGljIHNlbGxpbmdGcmVxdWVuY3lVbml0PzogRnJlcXVlbmN5VW5pdCxcbiAgICBwdWJsaWMgc2VsbGluZ0ZyZXF1ZW5jeUR1cmF0aW9uPzogc3RyaW5nLFxuICAgIHB1YmxpYyBtaW5pbWFsVGVybT86IG51bWJlcixcbiAgICBwdWJsaWMgcHJvcmF0ZWRGcmVxdWVuY3lFbmFibGVkPzogYm9vbGVhbixcblxuICAgIHB1YmxpYyBvZmZlcmluZ0lkPzogc3RyaW5nLFxuICAgIHB1YmxpYyBvZmZlcmluZ0l0ZW1JZD86IHN0cmluZyxcbiAgICBwdWJsaWMgb2ZmZXJpbmdJbnN0YW5jZUlkPzogc3RyaW5nLFxuICAgIHB1YmxpYyByYW1wSW5zdGFuY2VJZD86IHN0cmluZyxcbiAgICBwdWJsaWMgZW5hYmxlUmFtcD86IGJvb2xlYW4sXG4gICAgcHVibGljIGNvbmZpZ3VyYWJsZT86IGJvb2xlYW4sXG5cbiAgICBwdWJsaWMgcmVxdWlyZXNBcHByb3ZhbHM/OiBSZXF1aXJlc0FwcHJvdmFsW10sXG5cbiAgICBwdWJsaWMgbWV0cmljcz86IERpY3Rpb25hcnk8bnVtYmVyPixcbiAgICBwdWJsaWMgdG90YWxNZXRyaWNzPzogRGljdGlvbmFyeTxudW1iZXI+LFxuICApIHt9XG59XG4iXX0=","export var DefaultPicklistCode;\n(function (DefaultPicklistCode) {\n    DefaultPicklistCode[\"UNIT_OF_MEASURE\"] = \"UNIT_OF_MEASURE\";\n})(DefaultPicklistCode || (DefaultPicklistCode = {}));\nexport const DEFAULT_PICKLIST_VALUES = {\n    [DefaultPicklistCode.UNIT_OF_MEASURE]: ['UOM_MILE', 'UOM_POUND'],\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2xpc3RzLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdHlwZXMvcGlja2xpc3RzLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG1CQUVYO0FBRkQsV0FBWSxtQkFBbUI7SUFDN0IsMERBQW1DLENBQUE7QUFDckMsQ0FBQyxFQUZXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFFOUI7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0M7SUFDbEUsQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUM7Q0FDakUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIERlZmF1bHRQaWNrbGlzdENvZGUge1xuICBVTklUX09GX01FQVNVUkUgPSAnVU5JVF9PRl9NRUFTVVJFJyxcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUElDS0xJU1RfVkFMVUVTOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7XG4gIFtEZWZhdWx0UGlja2xpc3RDb2RlLlVOSVRfT0ZfTUVBU1VSRV06IFsnVU9NX01JTEUnLCAnVU9NX1BPVU5EJ10sXG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ld1BpY2tsaXN0IHtcbiAgbmFtZTogc3RyaW5nO1xuICBsaXN0Q29kZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIHZhbHVlczogTmV3UGlja2xpc3RWYWx1ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tsaXN0IGV4dGVuZHMgTmV3UGlja2xpc3Qge1xuICBpZDogc3RyaW5nO1xuICB2YWx1ZXM6IFBpY2tsaXN0VmFsdWVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXdQaWNrbGlzdFZhbHVlIHtcbiAgdmFsdWVDb2RlOiBzdHJpbmc7XG4gIGRpc3BsYXlWYWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpY2tsaXN0VmFsdWUgZXh0ZW5kcyBOZXdQaWNrbGlzdFZhbHVlIHtcbiAgaWQ6IHN0cmluZztcbiAgcGlja2xpc3RJZDogc3RyaW5nO1xufVxuIl19","export var PmlConfigurationMode;\n(function (PmlConfigurationMode) {\n    PmlConfigurationMode[\"NEWCONFIG\"] = \"NEWCONFIG\";\n    PmlConfigurationMode[\"SEARCH\"] = \"SEARCH\";\n})(PmlConfigurationMode || (PmlConfigurationMode = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG1sLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdHlwZXMvcG1sLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDOUIsK0NBQXVCLENBQUE7SUFDdkIseUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFHL0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQbWxDb25maWd1cmF0aW9uTW9kZSB7XG4gIE5FV0NPTkZJRyA9ICdORVdDT05GSUcnLFxuICBTRUFSQ0ggPSAnU0VBUkNIJ1xufSJdfQ==","export class PriceAdjustment {\n    constructor(amount, explanation, type, formula, adjustmentTarget) {\n        this.amount = amount;\n        this.explanation = explanation;\n        this.type = type;\n        this.formula = formula;\n        this.adjustmentTarget = adjustmentTarget;\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtYWRqdXN0bWVudC50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3R5cGVzL3ByaWNlLWFkanVzdG1lbnQudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDUyxNQUFjLEVBQ2QsV0FBbUIsRUFDbkIsSUFBb0IsRUFDcEIsT0FBZ0IsRUFDaEIsZ0JBQW1DO1FBSm5DLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUNwQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7SUFDekMsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRqdXN0bWVudFR5cGUgfSBmcm9tICcuL2FkanVzdG1lbnQtdHlwZS50eXBlcyc7XG5cbmV4cG9ydCB0eXBlIEFkanVzdG1lbnRUYXJnZXQgPSAnQ09TVCcgfCAnQkFTRV9QUklDRScgfCAnTElTVF9QUklDRScgfCAnTkVUX1BSSUNFJztcblxuZXhwb3J0IGNsYXNzIFByaWNlQWRqdXN0bWVudCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhbW91bnQ6IG51bWJlcixcbiAgICBwdWJsaWMgZXhwbGFuYXRpb246IHN0cmluZyxcbiAgICBwdWJsaWMgdHlwZTogQWRqdXN0bWVudFR5cGUsXG4gICAgcHVibGljIGZvcm11bGE/OiBzdHJpbmcsXG4gICAgcHVibGljIGFkanVzdG1lbnRUYXJnZXQ/OiBBZGp1c3RtZW50VGFyZ2V0LFxuICApIHt9XG59XG4iXX0=","export var PrimitiveType;\n(function (PrimitiveType) {\n    PrimitiveType[\"INTEGER\"] = \"INTEGER\";\n    PrimitiveType[\"DOUBLE\"] = \"DOUBLE\";\n    PrimitiveType[\"DECIMAL\"] = \"DECIMAL\";\n    PrimitiveType[\"STRING\"] = \"STRING\";\n    PrimitiveType[\"BOOLEAN\"] = \"BOOLEAN\";\n    PrimitiveType[\"DATE\"] = \"DATE\";\n    PrimitiveType[\"STRING_ARRAY\"] = \"MULTIPLE\";\n})(PrimitiveType || (PrimitiveType = {}));\nexport const PRIMITIVE_TYPE_OPTIONS = [\n    { label: PrimitiveType.INTEGER, value: PrimitiveType.INTEGER },\n    { label: PrimitiveType.DOUBLE, value: PrimitiveType.DOUBLE },\n    { label: PrimitiveType.DECIMAL, value: PrimitiveType.DECIMAL },\n    { label: PrimitiveType.STRING, value: PrimitiveType.STRING },\n    { label: PrimitiveType.BOOLEAN, value: PrimitiveType.BOOLEAN },\n    { label: PrimitiveType.DATE, value: PrimitiveType.DATE },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWl0aXZlLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdHlwZXMvcHJpbWl0aXZlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGFBUVg7QUFSRCxXQUFZLGFBQWE7SUFDdkIsb0NBQW1CLENBQUE7SUFDbkIsa0NBQWlCLENBQUE7SUFDakIsb0NBQW1CLENBQUE7SUFDbkIsa0NBQWlCLENBQUE7SUFDakIsb0NBQW1CLENBQUE7SUFDbkIsOEJBQWEsQ0FBQTtJQUNiLDBDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFSVyxhQUFhLEtBQWIsYUFBYSxRQVF4QjtBQUVELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHO0lBQ3BDLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxPQUFPLEVBQUU7SUFDOUQsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRTtJQUM1RCxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFO0lBQzlELEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUU7SUFDNUQsRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLE9BQU8sRUFBRTtJQUM5RCxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFO0NBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBQcmltaXRpdmVUeXBlIHtcbiAgSU5URUdFUiA9ICdJTlRFR0VSJyxcbiAgRE9VQkxFID0gJ0RPVUJMRScsXG4gIERFQ0lNQUwgPSAnREVDSU1BTCcsXG4gIFNUUklORyA9ICdTVFJJTkcnLFxuICBCT09MRUFOID0gJ0JPT0xFQU4nLFxuICBEQVRFID0gJ0RBVEUnLFxuICBTVFJJTkdfQVJSQVkgPSAnTVVMVElQTEUnLFxufVxuXG5leHBvcnQgY29uc3QgUFJJTUlUSVZFX1RZUEVfT1BUSU9OUyA9IFtcbiAgeyBsYWJlbDogUHJpbWl0aXZlVHlwZS5JTlRFR0VSLCB2YWx1ZTogUHJpbWl0aXZlVHlwZS5JTlRFR0VSIH0sXG4gIHsgbGFiZWw6IFByaW1pdGl2ZVR5cGUuRE9VQkxFLCB2YWx1ZTogUHJpbWl0aXZlVHlwZS5ET1VCTEUgfSxcbiAgeyBsYWJlbDogUHJpbWl0aXZlVHlwZS5ERUNJTUFMLCB2YWx1ZTogUHJpbWl0aXZlVHlwZS5ERUNJTUFMIH0sXG4gIHsgbGFiZWw6IFByaW1pdGl2ZVR5cGUuU1RSSU5HLCB2YWx1ZTogUHJpbWl0aXZlVHlwZS5TVFJJTkcgfSxcbiAgeyBsYWJlbDogUHJpbWl0aXZlVHlwZS5CT09MRUFOLCB2YWx1ZTogUHJpbWl0aXZlVHlwZS5CT09MRUFOIH0sXG4gIHsgbGFiZWw6IFByaW1pdGl2ZVR5cGUuREFURSwgdmFsdWU6IFByaW1pdGl2ZVR5cGUuREFURSB9LFxuXTtcbiJdfQ==","export var ProcedureStepType;\n(function (ProcedureStepType) {\n    ProcedureStepType[\"GROUP\"] = \"GROUP\";\n    ProcedureStepType[\"EXTERNAL_PROVIDER\"] = \"EXTERNAL_PROVIDER\";\n    ProcedureStepType[\"FUNCTION_GROUP\"] = \"FUNCTION_GROUP\";\n    ProcedureStepType[\"FUNCTION\"] = \"FUNCTION\";\n    // Catalog types\n    ProcedureStepType[\"QUERY\"] = \"QUERY\";\n    ProcedureStepType[\"QUERY_CATALOG_PRODUCTS\"] = \"QUERY_CATALOG_PRODUCTS\";\n    ProcedureStepType[\"PROCEDURE_CONTEXT_OBJECT\"] = \"PROCEDURE_CONTEXT_OBJECT\";\n    ProcedureStepType[\"ELIGIBILITY_RULES\"] = \"ELIGIBILITY_RULES\";\n    ProcedureStepType[\"ELIGIBILITY_RULE\"] = \"ELIGIBILITY_RULE\";\n    ProcedureStepType[\"CONFIGURATION_AND_PRICING\"] = \"CONFIGURE_AND_PRICE\";\n    ProcedureStepType[\"CATALOG_RULE\"] = \"CATALOG_RULE\";\n})(ProcedureStepType || (ProcedureStepType = {}));\nexport var ProcedureStepContextType;\n(function (ProcedureStepContextType) {\n    ProcedureStepContextType[\"CONFIGURATION\"] = \"CONFIGURATION\";\n    ProcedureStepContextType[\"PRICING\"] = \"PRICING\";\n    ProcedureStepContextType[\"METRICS\"] = \"METRICS\";\n    ProcedureStepContextType[\"APPROVALS\"] = \"APPROVALS\";\n    ProcedureStepContextType[\"GROUP\"] = \"GROUP\";\n    // Catalog context types\n    ProcedureStepContextType[\"QUERY\"] = \"QUERY\";\n    ProcedureStepContextType[\"ELIGIBILITY_RULES\"] = \"ELIGIBILITY_RULES\";\n    ProcedureStepContextType[\"CONFIGURATION_AND_PRICING\"] = \"CONFIGURE_AND_PRICE\";\n})(ProcedureStepContextType || (ProcedureStepContextType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdHlwZXMvcHJvY2VkdXJlLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLGlCQWNYO0FBZEQsV0FBWSxpQkFBaUI7SUFDM0Isb0NBQWUsQ0FBQTtJQUNmLDREQUF1QyxDQUFBO0lBQ3ZDLHNEQUFpQyxDQUFBO0lBQ2pDLDBDQUFxQixDQUFBO0lBRXJCLGdCQUFnQjtJQUNoQixvQ0FBZSxDQUFBO0lBQ2Ysc0VBQWlELENBQUE7SUFDakQsMEVBQXFELENBQUE7SUFDckQsNERBQXVDLENBQUE7SUFDdkMsMERBQXFDLENBQUE7SUFDckMsc0VBQWlELENBQUE7SUFDakQsa0RBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQWRXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFjNUI7QUFFRCxNQUFNLENBQU4sSUFBWSx3QkFXWDtBQVhELFdBQVksd0JBQXdCO0lBQ2xDLDJEQUErQixDQUFBO0lBQy9CLCtDQUFtQixDQUFBO0lBQ25CLCtDQUFtQixDQUFBO0lBQ25CLG1EQUF1QixDQUFBO0lBQ3ZCLDJDQUFlLENBQUE7SUFFZix3QkFBd0I7SUFDeEIsMkNBQWUsQ0FBQTtJQUNmLG1FQUF1QyxDQUFBO0lBQ3ZDLDZFQUFpRCxDQUFBO0FBQ25ELENBQUMsRUFYVyx3QkFBd0IsS0FBeEIsd0JBQXdCLFFBV25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVsZVR5cGVzIH0gZnJvbSAnLi9ydWxlLnR5cGVzJztcblxuZXhwb3J0IGVudW0gUHJvY2VkdXJlU3RlcFR5cGUge1xuICBHUk9VUCA9ICdHUk9VUCcsXG4gIEVYVEVSTkFMX1BST1ZJREVSID0gJ0VYVEVSTkFMX1BST1ZJREVSJyxcbiAgRlVOQ1RJT05fR1JPVVAgPSAnRlVOQ1RJT05fR1JPVVAnLFxuICBGVU5DVElPTiA9ICdGVU5DVElPTicsXG5cbiAgLy8gQ2F0YWxvZyB0eXBlc1xuICBRVUVSWSA9ICdRVUVSWScsXG4gIFFVRVJZX0NBVEFMT0dfUFJPRFVDVFMgPSAnUVVFUllfQ0FUQUxPR19QUk9EVUNUUycsXG4gIFBST0NFRFVSRV9DT05URVhUX09CSkVDVCA9ICdQUk9DRURVUkVfQ09OVEVYVF9PQkpFQ1QnLFxuICBFTElHSUJJTElUWV9SVUxFUyA9ICdFTElHSUJJTElUWV9SVUxFUycsXG4gIEVMSUdJQklMSVRZX1JVTEUgPSAnRUxJR0lCSUxJVFlfUlVMRScsXG4gIENPTkZJR1VSQVRJT05fQU5EX1BSSUNJTkcgPSAnQ09ORklHVVJFX0FORF9QUklDRScsXG4gIENBVEFMT0dfUlVMRSA9ICdDQVRBTE9HX1JVTEUnLFxufVxuXG5leHBvcnQgZW51bSBQcm9jZWR1cmVTdGVwQ29udGV4dFR5cGUge1xuICBDT05GSUdVUkFUSU9OID0gJ0NPTkZJR1VSQVRJT04nLFxuICBQUklDSU5HID0gJ1BSSUNJTkcnLFxuICBNRVRSSUNTID0gJ01FVFJJQ1MnLFxuICBBUFBST1ZBTFMgPSAnQVBQUk9WQUxTJyxcbiAgR1JPVVAgPSAnR1JPVVAnLFxuXG4gIC8vIENhdGFsb2cgY29udGV4dCB0eXBlc1xuICBRVUVSWSA9ICdRVUVSWScsXG4gIEVMSUdJQklMSVRZX1JVTEVTID0gJ0VMSUdJQklMSVRZX1JVTEVTJyxcbiAgQ09ORklHVVJBVElPTl9BTkRfUFJJQ0lORyA9ICdDT05GSUdVUkVfQU5EX1BSSUNFJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9jZWR1cmUge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBhY3RpdmU6IGJvb2xlYW47XG4gIGRlcGxveVN0YXJ0RGF0ZUdyYWR1YWxseTogYm9vbGVhbjtcbiAgZGVwbG95RW5kRGF0ZUdyYWR1YWxseTogYm9vbGVhbjtcbiAgY29udGV4dERlZmluaXRpb25JZD86IHN0cmluZztcbiAgc3RlcHM6IFByb2NlZHVyZVN0ZXBbXTtcbiAgdGVzdERhdGE/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIE5ld1Byb2NlZHVyZSA9IE9taXQ8UHJvY2VkdXJlLCAnaWQnIHwgJ3N0ZXBzJz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2VkdXJlU3RlcEJhc2Uge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgb3JjaGVzdHJhdGlvbklkPzogc3RyaW5nO1xuICBwYXJlbnRTdGVwSWQ/OiBzdHJpbmc7XG4gIHNlcXVlbmNlPzogbnVtYmVyO1xuICBzdGVwcz86IFByb2NlZHVyZVN0ZXBbXTtcbiAgY29udGV4dERlZmluaXRpb25JZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9jZWR1cmVTdGVwUm9vdCBleHRlbmRzIFByb2NlZHVyZVN0ZXBCYXNlIHtcbiAgZnVuY3Rpb246IFByb2NlZHVyZVN0ZXBGdW5jdGlvblJvb3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2VkdXJlU3RlcEdyb3VwIGV4dGVuZHMgUHJvY2VkdXJlU3RlcEJhc2Uge1xuICBmdW5jdGlvbklkOiBzdHJpbmc7XG4gIGZ1bmN0aW9uOiBQcm9jZWR1cmVTdGVwRnVuY3Rpb25Gbkdyb3VwO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2NlZHVyZVN0ZXBSTE1QcmljaW5nIGV4dGVuZHMgUHJvY2VkdXJlU3RlcEJhc2Uge1xuICBmdW5jdGlvbklkOiBzdHJpbmc7XG4gIGZ1bmN0aW9uOiBQcm9jZWR1cmVTdGVwRnVuY3Rpb25STE1QcmljaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2NlZHVyZVN0ZXBSTE1Db25maWd1cmF0b3IgZXh0ZW5kcyBQcm9jZWR1cmVTdGVwQmFzZSB7XG4gIGZ1bmN0aW9uSWQ6IHN0cmluZztcbiAgZnVuY3Rpb246IFByb2NlZHVyZVN0ZXBGdW5jdGlvblJMTUNvbmZpZ3VyYXRvcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9jZWR1cmVTdGVwRnVuY3Rpb25Hcm91cCBleHRlbmRzIFByb2NlZHVyZVN0ZXBCYXNlIHtcbiAgZnVuY3Rpb25JZDogc3RyaW5nO1xuICBmdW5jdGlvbjogUHJvY2VkdXJlU3RlcEZ1bmN0aW9uR3JvdXBGdW5jdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9jZWR1cmVTdGVwRnVuY3Rpb24gZXh0ZW5kcyBQcm9jZWR1cmVTdGVwQmFzZSB7XG4gIGZ1bmN0aW9uSWQ6IHN0cmluZztcbiAgZnVuY3Rpb246IFByb2NlZHVyZVN0ZXBGdW5jdGlvbkZ1bmN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2NlZHVyZVN0ZXBGdW5jdGlvbkJhc2Uge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbiAgdHlwZTogUnVsZVR5cGVzO1xuICBjYWNoZWQ6IGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2NlZHVyZVN0ZXBGdW5jdGlvblJvb3Qge1xuICB0eXBlOiBSdWxlVHlwZXMuUk9PVDtcbiAgY29udGV4dERlZmluaXRpb25JZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2NlZHVyZVN0ZXBGdW5jdGlvbkZuR3JvdXAgZXh0ZW5kcyBQcm9jZWR1cmVTdGVwRnVuY3Rpb25CYXNlIHtcbiAgdHlwZTogUnVsZVR5cGVzLkdyb3VwO1xuICBjb250ZXh0RGVmaW5pdGlvbklkOiBzdHJpbmc7XG4gIGNvbnRleHRNYXBwaW5nSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9jZWR1cmVTdGVwRnVuY3Rpb25STE1QcmljaW5nIGV4dGVuZHMgUHJvY2VkdXJlU3RlcEZ1bmN0aW9uQmFzZSB7XG4gIHR5cGU6IFJ1bGVUeXBlcy5FeHRlcm5hbFByaWNpbmc7XG4gIGNvbnRleHREZWZpbml0aW9uSWQ6IHN0cmluZztcbiAgY29udGV4dE1hcHBpbmdJZDogc3RyaW5nO1xuICBwcm9jZWR1cmU6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGZ1bmN0aW9uSWQ6IHN0cmluZztcbiAgICBwcmljaW5nUHJvY2VkdXJlSWQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9jZWR1cmVTdGVwRnVuY3Rpb25STE1Db25maWd1cmF0b3IgZXh0ZW5kcyBQcm9jZWR1cmVTdGVwRnVuY3Rpb25CYXNlIHtcbiAgdHlwZTogUnVsZVR5cGVzLkV4dGVybmFsQ29uZmlndXJhdG9yO1xuICBjb250ZXh0RGVmaW5pdGlvbklkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2VkdXJlU3RlcEZ1bmN0aW9uR3JvdXBGdW5jdGlvbiBleHRlbmRzIFByb2NlZHVyZVN0ZXBGdW5jdGlvbkJhc2Uge1xuICB0eXBlOiBSdWxlVHlwZXMuRnVuY3Rpb25Hcm91cDtcbiAgY29udGV4dERlZmluaXRpb25JZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2NlZHVyZVN0ZXBGdW5jdGlvbkZ1bmN0aW9uIGV4dGVuZHMgUHJvY2VkdXJlU3RlcEZ1bmN0aW9uQmFzZSB7XG4gIHR5cGU6IFJ1bGVUeXBlcztcbiAgY29udGV4dERlZmluaXRpb25JZDogc3RyaW5nO1xuICB0YWdzOiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IHR5cGUgUHJvY2VkdXJlU3RlcEV4dGVybmFsUHJvdmlkZXIgPSBQcm9jZWR1cmVTdGVwUkxNUHJpY2luZyB8IFByb2NlZHVyZVN0ZXBSTE1Db25maWd1cmF0b3I7XG5cbmV4cG9ydCB0eXBlIFByb2NlZHVyZVN0ZXAgPVxuICB8IFByb2NlZHVyZVN0ZXBSb290XG4gIHwgUHJvY2VkdXJlU3RlcEdyb3VwXG4gIHwgUHJvY2VkdXJlU3RlcFJMTVByaWNpbmdcbiAgfCBQcm9jZWR1cmVTdGVwUkxNQ29uZmlndXJhdG9yXG4gIHwgUHJvY2VkdXJlU3RlcEZ1bmN0aW9uR3JvdXBcbiAgfCBQcm9jZWR1cmVTdGVwRnVuY3Rpb247XG4iXX0=","const QUOTE_COMPARISON_FIELDS = ['quoteId', 'currentState', 'initialState', 'context'];\nexport class QuoteDraft {\n    static isQuote(data) {\n        if (!data || !(data instanceof Object)) {\n            return false;\n        }\n        const keys = Object.keys(data);\n        return QUOTE_COMPARISON_FIELDS.every(field => keys.includes(field));\n    }\n    static emptyQuote() {\n        return {\n            dirty: false,\n            quoteId: '',\n            context: {},\n            initialState: [],\n            currentState: [],\n            totalPrices: [],\n            totalDiscounts: [],\n            approvalItems: [],\n            charges: {},\n            pricePlans: {},\n            activeMetrics: [],\n        };\n    }\n    constructor(dirty, quoteId, context, initialState, currentState, totalPrices, totalDiscounts, approvalItems, charges, pricePlans, activeMetrics, procedureName) {\n        this.dirty = dirty;\n        this.quoteId = quoteId;\n        this.context = context;\n        this.initialState = initialState;\n        this.currentState = currentState;\n        this.totalPrices = totalPrices;\n        this.totalDiscounts = totalDiscounts;\n        this.approvalItems = approvalItems;\n        this.charges = charges;\n        this.pricePlans = pricePlans;\n        this.activeMetrics = activeMetrics;\n        this.procedureName = procedureName;\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUtZHJhZnQudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90eXBlcy9xdW90ZS1kcmFmdC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLHVCQUF1QixHQUE0QixDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRWhILE1BQU0sT0FBTyxVQUFVO0lBQ2QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFTO1FBQzdCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsT0FBTyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUNNLE1BQU0sQ0FBQyxVQUFVO1FBQ3RCLE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBSztZQUNaLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxZQUFZLEVBQUUsRUFBRTtZQUNoQixZQUFZLEVBQUUsRUFBRTtZQUNoQixXQUFXLEVBQUUsRUFBRTtZQUNmLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLE9BQU8sRUFBRSxFQUFFO1lBQ1gsVUFBVSxFQUFFLEVBQUU7WUFDZCxhQUFhLEVBQUUsRUFBRTtTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVELFlBQ1MsS0FBYyxFQUNkLE9BQWUsRUFDZixPQUErQixFQUMvQixZQUF3QixFQUN4QixZQUF3QixFQUN4QixXQUFrQixFQUNsQixjQUFxQixFQUNyQixhQUFvQixFQUNwQixPQUF3QixFQUN4QixVQUEyQixFQUMzQixhQUFvQixFQUNwQixhQUFzQjtRQVh0QixVQUFLLEdBQUwsS0FBSyxDQUFTO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBQy9CLGlCQUFZLEdBQVosWUFBWSxDQUFZO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFZO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFPO1FBQ2xCLG1CQUFjLEdBQWQsY0FBYyxDQUFPO1FBQ3JCLGtCQUFhLEdBQWIsYUFBYSxDQUFPO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQWlCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFPO1FBQ3BCLGtCQUFhLEdBQWIsYUFBYSxDQUFTO0lBQzVCLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTGluZUl0ZW0gfSBmcm9tICcuJztcblxuY29uc3QgUVVPVEVfQ09NUEFSSVNPTl9GSUVMRFM6IEFycmF5PGtleW9mIFF1b3RlRHJhZnQ+ID0gWydxdW90ZUlkJywgJ2N1cnJlbnRTdGF0ZScsICdpbml0aWFsU3RhdGUnLCAnY29udGV4dCddO1xuXG5leHBvcnQgY2xhc3MgUXVvdGVEcmFmdCB7XG4gIHB1YmxpYyBzdGF0aWMgaXNRdW90ZShkYXRhOiBhbnkpOiBkYXRhIGlzIFF1b3RlRHJhZnQge1xuICAgIGlmICghZGF0YSB8fCAhKGRhdGEgaW5zdGFuY2VvZiBPYmplY3QpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGRhdGEpO1xuICAgIHJldHVybiBRVU9URV9DT01QQVJJU09OX0ZJRUxEUy5ldmVyeShmaWVsZCA9PiBrZXlzLmluY2x1ZGVzKGZpZWxkKSk7XG4gIH1cbiAgcHVibGljIHN0YXRpYyBlbXB0eVF1b3RlKCk6IFF1b3RlRHJhZnQge1xuICAgIHJldHVybiB7XG4gICAgICBkaXJ0eTogZmFsc2UsXG4gICAgICBxdW90ZUlkOiAnJyxcbiAgICAgIGNvbnRleHQ6IHt9LFxuICAgICAgaW5pdGlhbFN0YXRlOiBbXSxcbiAgICAgIGN1cnJlbnRTdGF0ZTogW10sXG4gICAgICB0b3RhbFByaWNlczogW10sXG4gICAgICB0b3RhbERpc2NvdW50czogW10sXG4gICAgICBhcHByb3ZhbEl0ZW1zOiBbXSxcbiAgICAgIGNoYXJnZXM6IHt9LFxuICAgICAgcHJpY2VQbGFuczoge30sXG4gICAgICBhY3RpdmVNZXRyaWNzOiBbXSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpcnR5OiBib29sZWFuLFxuICAgIHB1YmxpYyBxdW90ZUlkOiBzdHJpbmcsXG4gICAgcHVibGljIGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgcHVibGljIGluaXRpYWxTdGF0ZTogTGluZUl0ZW1bXSxcbiAgICBwdWJsaWMgY3VycmVudFN0YXRlOiBMaW5lSXRlbVtdLFxuICAgIHB1YmxpYyB0b3RhbFByaWNlczogYW55W10sXG4gICAgcHVibGljIHRvdGFsRGlzY291bnRzOiBhbnlbXSxcbiAgICBwdWJsaWMgYXBwcm92YWxJdGVtczogYW55W10sXG4gICAgcHVibGljIGNoYXJnZXM6IERpY3Rpb25hcnk8YW55PixcbiAgICBwdWJsaWMgcHJpY2VQbGFuczogRGljdGlvbmFyeTxhbnk+LFxuICAgIHB1YmxpYyBhY3RpdmVNZXRyaWNzOiBhbnlbXSxcbiAgICBwdWJsaWMgcHJvY2VkdXJlTmFtZT86IHN0cmluZyxcbiAgKSB7fVxufVxuIl19","export var ExtractRuleValueTypes;\n(function (ExtractRuleValueTypes) {\n    ExtractRuleValueTypes[\"Value\"] = \"VALUE\";\n    ExtractRuleValueTypes[\"Tag\"] = \"TAG\";\n    ExtractRuleValueTypes[\"Property\"] = \"PROPERTY\";\n})(ExtractRuleValueTypes || (ExtractRuleValueTypes = {}));\nexport var RuleObjects;\n(function (RuleObjects) {\n    RuleObjects[\"priceItem\"] = \"LINE_ITEM\";\n    RuleObjects[\"chargeItem\"] = \"CHARGE_ITEM\";\n    RuleObjects[\"header\"] = \"CONTEXT\";\n    RuleObjects[\"catalogProduct\"] = \"CATALOG_PRODUCT\";\n    RuleObjects[\"procedureContext\"] = \"PROCEDURE_CONTEXT_OBJECT\";\n    RuleObjects[\"catalogProductCharge\"] = \"CATALOG_PRODUCT_CHARGE\";\n    RuleObjects[\"contextDefinition\"] = \"CONTEXT_NODE\";\n    RuleObjects[\"contextTag\"] = \"CONTEXT_TAG\";\n    RuleObjects[\"dataSet\"] = \"DATA_SET\";\n    RuleObjects[\"transactionContext\"] = \"TRANSACTION_CONTEXT\";\n})(RuleObjects || (RuleObjects = {}));\nexport var RuleObjectDefaultVariableNames;\n(function (RuleObjectDefaultVariableNames) {\n    RuleObjectDefaultVariableNames[\"chargeItem\"] = \"chargeItem\";\n    RuleObjectDefaultVariableNames[\"header\"] = \"header\";\n})(RuleObjectDefaultVariableNames || (RuleObjectDefaultVariableNames = {}));\nexport var RuleTypes;\n(function (RuleTypes) {\n    // ROOT\n    RuleTypes[\"ROOT\"] = \"ROOT\";\n    // Rules\n    RuleTypes[\"GeneralRule\"] = \"GENERAL_RULE\";\n    RuleTypes[\"RlmRule\"] = \"RLM_RULE\";\n    // ETL Rules\n    RuleTypes[\"QueryRule\"] = \"QUERY\";\n    RuleTypes[\"QueryContextRule\"] = \"QUERY_CONTEXT\";\n    RuleTypes[\"APIRequestRule\"] = \"REQUEST\";\n    RuleTypes[\"TransformationRule\"] = \"TRANSFORMATION\";\n    RuleTypes[\"SaveRule\"] = \"SAVE\";\n    RuleTypes[\"SaveContextRule\"] = \"SAVE_CONTEXT\";\n    // Orchestration Groups\n    RuleTypes[\"Group\"] = \"GROUP\";\n    RuleTypes[\"FunctionGroup\"] = \"FUNCTION_GROUP\";\n    // External Providers\n    RuleTypes[\"ExternalConfigurator\"] = \"EXTERNAL_CONFIGURATOR\";\n    RuleTypes[\"ExternalPricing\"] = \"EXTERNAL_PRICING\";\n})(RuleTypes || (RuleTypes = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3R5cGVzL3J1bGUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0ZBLE1BQU0sQ0FBTixJQUFZLHFCQUlYO0FBSkQsV0FBWSxxQkFBcUI7SUFDL0Isd0NBQWUsQ0FBQTtJQUNmLG9DQUFXLENBQUE7SUFDWCw4Q0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSlcscUJBQXFCLEtBQXJCLHFCQUFxQixRQUloQztBQTRERCxNQUFNLENBQU4sSUFBWSxXQVdYO0FBWEQsV0FBWSxXQUFXO0lBQ3JCLHNDQUF1QixDQUFBO0lBQ3ZCLHlDQUEwQixDQUFBO0lBQzFCLGlDQUFrQixDQUFBO0lBQ2xCLGlEQUFrQyxDQUFBO0lBQ2xDLDREQUE2QyxDQUFBO0lBQzdDLDhEQUErQyxDQUFBO0lBQy9DLGlEQUFrQyxDQUFBO0lBQ2xDLHlDQUEwQixDQUFBO0lBQzFCLG1DQUFvQixDQUFBO0lBQ3BCLHlEQUEwQyxDQUFBO0FBQzVDLENBQUMsRUFYVyxXQUFXLEtBQVgsV0FBVyxRQVd0QjtBQUVELE1BQU0sQ0FBTixJQUFZLDhCQUdYO0FBSEQsV0FBWSw4QkFBOEI7SUFDeEMsMkRBQXlCLENBQUE7SUFDekIsbURBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLDhCQUE4QixLQUE5Qiw4QkFBOEIsUUFHekM7QUFRRCxNQUFNLENBQU4sSUFBWSxTQXVCWDtBQXZCRCxXQUFZLFNBQVM7SUFDbkIsT0FBTztJQUNQLDBCQUFhLENBQUE7SUFFYixRQUFRO0lBQ1IseUNBQTRCLENBQUE7SUFDNUIsaUNBQW9CLENBQUE7SUFFcEIsWUFBWTtJQUNaLGdDQUFtQixDQUFBO0lBQ25CLCtDQUFrQyxDQUFBO0lBQ2xDLHVDQUEwQixDQUFBO0lBQzFCLGtEQUFxQyxDQUFBO0lBQ3JDLDhCQUFpQixDQUFBO0lBQ2pCLDZDQUFnQyxDQUFBO0lBRWhDLHVCQUF1QjtJQUN2Qiw0QkFBZSxDQUFBO0lBQ2YsNkNBQWdDLENBQUE7SUFFaEMscUJBQXFCO0lBQ3JCLDJEQUE4QyxDQUFBO0lBQzlDLGlEQUFvQyxDQUFBO0FBQ3RDLENBQUMsRUF2QlcsU0FBUyxLQUFULFNBQVMsUUF1QnBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwcmVzc2lvbk1vZGVsIH0gZnJvbSAnLi9jcml0ZXJpYS50eXBlcyc7XG5pbXBvcnQgeyBSZXF1ZXN0TWV0aG9kIH0gZnJvbSAnLi9lbmRwb2ludC50eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV3UnVsZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgYWN0aXZlOiBib29sZWFuO1xuICBjb250ZXh0RGVmaW5pdGlvbklkOiBzdHJpbmc7XG4gIHR5cGU6IFJ1bGVUeXBlcztcbiAgdGFnczogc3RyaW5nW107XG4gIGNhY2hlZD86IGJvb2xlYW47XG4gIGR1cmF0aW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGUgZXh0ZW5kcyBOZXdSdWxlIHtcbiAgaWQ6IHN0cmluZztcbiAgY29uZGl0aW9uczogUnVsZUNvbmRpdGlvbltdO1xuICBxdWVyaWVzOiBFeHRyYWN0UnVsZVF1ZXJ5W107XG4gIHJlcXVlc3RzOiBFeHRyYWN0UnVsZVJlcXVlc3RbXTtcbiAgYWN0aW9uczogUnVsZU1hcHBlcltdIHwgTWV0cmljUnVsZU1hcHBlcltdIHwgRXh0cmFjdFJ1bGVNYXBwZXJbXSB8IFNhdmVSdWxlTWFwcGVyW107XG4gIHRyYW5zZm9ybWF0aW9uczogUnVsZVRyYW5zZm9ybWF0aW9uW107XG4gIHBhcmVudE5hbWU6IHN0cmluZztcbiAgcGFyZW50VHlwZTogUnVsZVR5cGVzO1xuICBpc0RlZmF1bHQ6IGJvb2xlYW47XG4gIHRlc3REYXRhPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVUcmFuc2Zvcm1hdGlvbiB7XG4gIHJlc3VsdFBhdGg6IHN0cmluZztcbiAgamF2YVNjcmlwdDogc3RyaW5nO1xuICBleHByZXNzaW9uOiBzdHJpbmc7XG4gIHNlcXVlbmNlOiBudW1iZXI7XG4gIGFjdGl2ZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdWxlQ29uZGl0aW9uIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGV4cHJlc3Npb24/OiBzdHJpbmc7XG4gIG9iamVjdFR5cGU6IHN0cmluZztcbiAgb2JqZWN0TmFtZT86IHN0cmluZztcbiAgdmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gIGV4dHJhY3RPYmplY3RJZD86IHN0cmluZztcbiAgcHJvcGVydHk/OiBzdHJpbmc7XG4gIHJlbGF0ZWRDb25kaXRpb25WYXJpYWJsZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRyYWN0UnVsZVF1ZXJ5IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGZ1bmN0aW9uSWQ6IHN0cmluZztcbiAgc2ZPYmplY3ROYW1lOiBzdHJpbmc7XG4gIGNvbnRleHRNYXBwaW5nSWQ/OiBzdHJpbmc7XG4gIHZhcmlhYmxlTmFtZTogc3RyaW5nO1xuICBzdGF0ZW1lbnQ6IEV4dHJhY3RSdWxlU3RhdGVtZW50O1xuICBzZXF1ZW5jZTogbnVtYmVyO1xuICBmaWVsZHM/OiBzdHJpbmdbXTtcbiAgaW5jbHVkZUhpZXJhcmNoeTogYm9vbGVhbjtcbiAgaGllcmFyY2h5SWRlbnRpZmllcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHRyYWN0UnVsZVN0YXRlbWVudCB7XG4gIGV4cHJlc3Npb246IEV4cHJlc3Npb25Nb2RlbDtcbiAgb3JkZXJCeTogTWFwPHN0cmluZywgYm9vbGVhbj47XG4gIGxpbWl0PzogbnVtYmVyO1xuICBvZmZzZXQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFjdFJ1bGVSZXF1ZXN0IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG1ldGhvZDogUmVxdWVzdE1ldGhvZDtcbiAgcmVxdWVzdFVybDogc3RyaW5nO1xuICB2YXJpYWJsZU5hbWU6IHN0cmluZztcbiAgcGFyYW1ldGVycz86IEV4dHJhY3RSdWxlUmVxdWVzdFBhcmFtZXRlcltdO1xuICBoZWFkZXJzPzogRXh0cmFjdFJ1bGVSZXF1ZXN0SGVhZGVyW107XG4gIGJvZHk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFjdFJ1bGVSZXF1ZXN0UGFyYW1ldGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICB2YWx1ZVR5cGU6IEV4dHJhY3RSdWxlVmFsdWVUeXBlcztcbn1cblxuZXhwb3J0IHR5cGUgRXh0cmFjdFJ1bGVSZXF1ZXN0SGVhZGVyID0gRXh0cmFjdFJ1bGVSZXF1ZXN0UGFyYW1ldGVyO1xuXG5leHBvcnQgZW51bSBFeHRyYWN0UnVsZVZhbHVlVHlwZXMge1xuICBWYWx1ZSA9ICdWQUxVRScsXG4gIFRhZyA9ICdUQUcnLFxuICBQcm9wZXJ0eSA9ICdQUk9QRVJUWScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZU1hcHBlciB7XG4gIGFjdGlvbjogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICB0YXJnZXRGaWVsZE5hbWU6IHN0cmluZztcbiAgY29uZGl0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVNYXBwZXIgZXh0ZW5kcyBCYXNlTWFwcGVyIHtcbiAgcnVsZUlkPzogc3RyaW5nO1xuICB2YXJpYWJsZU5hbWU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBleHBsYW5hdGlvbjogc3RyaW5nO1xuICB2YWx1ZVR5cGU6IHN0cmluZztcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgbWVzc2FnZVZhbHVlVHlwZT86IHN0cmluZztcbiAgYWxsb3dPdmVycmlkZT86IGJvb2xlYW47XG4gIHRhcmdldE9iamVjdE5hbWU/OiBzdHJpbmc7XG4gIGRhdGFTZXROYW1lPzogc3RyaW5nO1xuICB2YXJpYWJsZT86IHN0cmluZztcbiAgcHJvZHVjdENvbXBvbmVudEdyb3VwSWQ/OiBzdHJpbmc7XG4gIHByb2R1Y3RJZD86IHN0cmluZztcbiAgYXR0cmlidXRlcz86IHsgbmFtZTogc3RyaW5nOyB2YWx1ZVR5cGU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXh0cmFjdFJ1bGVNYXBwZXIge1xuICBhY3Rpb246IHN0cmluZztcbiAgdmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHZhbHVlVHlwZTogc3RyaW5nO1xuICB0YXJnZXRPYmplY3ROYW1lPzogc3RyaW5nO1xuICBkYXRhU2V0TmFtZT86IHN0cmluZztcbiAgcnVsZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNhdmVSdWxlTWFwcGVyIHtcbiAgYWN0aW9uOiBzdHJpbmc7XG4gIHNmT2JqZWN0TmFtZTogc3RyaW5nO1xuICB2YWx1ZT86IHN0cmluZztcbiAgY29udGV4dE1hcHBpbmdJZD86IHN0cmluZztcbiAgdGFyZ2V0T2JqZWN0TmFtZT86IHN0cmluZztcbiAgcnVsZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldHJpY1J1bGVNYXBwZXIgZXh0ZW5kcyBCYXNlTWFwcGVyIHtcbiAgaXNDYWxjdWxhdGVUb3RhbE1ldHJpYzogYm9vbGVhbjtcbiAgdG90YWxNZXRyaWNOYW1lOiBzdHJpbmc7XG4gIGlzQ3VzdG9tUHJpY2VTY2FsZTogYm9vbGVhbjtcbiAgcHJpY2VTY2FsZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJMTVJ1bGVNYXBwZXIgZXh0ZW5kcyBQYXJ0aWFsPEJhc2VNYXBwZXI+IHtcbiAgdmFyaWFibGVOYW1lOiBzdHJpbmc7XG4gIGFjdGlvbjogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICB2YWx1ZVR5cGU/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBSdWxlT2JqZWN0cyB7XG4gIHByaWNlSXRlbSA9ICdMSU5FX0lURU0nLFxuICBjaGFyZ2VJdGVtID0gJ0NIQVJHRV9JVEVNJyxcbiAgaGVhZGVyID0gJ0NPTlRFWFQnLFxuICBjYXRhbG9nUHJvZHVjdCA9ICdDQVRBTE9HX1BST0RVQ1QnLFxuICBwcm9jZWR1cmVDb250ZXh0ID0gJ1BST0NFRFVSRV9DT05URVhUX09CSkVDVCcsXG4gIGNhdGFsb2dQcm9kdWN0Q2hhcmdlID0gJ0NBVEFMT0dfUFJPRFVDVF9DSEFSR0UnLFxuICBjb250ZXh0RGVmaW5pdGlvbiA9ICdDT05URVhUX05PREUnLFxuICBjb250ZXh0VGFnID0gJ0NPTlRFWFRfVEFHJyxcbiAgZGF0YVNldCA9ICdEQVRBX1NFVCcsXG4gIHRyYW5zYWN0aW9uQ29udGV4dCA9ICdUUkFOU0FDVElPTl9DT05URVhUJyxcbn1cblxuZXhwb3J0IGVudW0gUnVsZU9iamVjdERlZmF1bHRWYXJpYWJsZU5hbWVzIHtcbiAgY2hhcmdlSXRlbSA9ICdjaGFyZ2VJdGVtJyxcbiAgaGVhZGVyID0gJ2hlYWRlcicsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVhZGVyRmllbGQge1xuICB1cGRhdGVhYmxlOiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gUnVsZVR5cGVzIHtcbiAgLy8gUk9PVFxuICBST09UID0gJ1JPT1QnLFxuXG4gIC8vIFJ1bGVzXG4gIEdlbmVyYWxSdWxlID0gJ0dFTkVSQUxfUlVMRScsXG4gIFJsbVJ1bGUgPSAnUkxNX1JVTEUnLFxuXG4gIC8vIEVUTCBSdWxlc1xuICBRdWVyeVJ1bGUgPSAnUVVFUlknLFxuICBRdWVyeUNvbnRleHRSdWxlID0gJ1FVRVJZX0NPTlRFWFQnLFxuICBBUElSZXF1ZXN0UnVsZSA9ICdSRVFVRVNUJyxcbiAgVHJhbnNmb3JtYXRpb25SdWxlID0gJ1RSQU5TRk9STUFUSU9OJyxcbiAgU2F2ZVJ1bGUgPSAnU0FWRScsXG4gIFNhdmVDb250ZXh0UnVsZSA9ICdTQVZFX0NPTlRFWFQnLFxuXG4gIC8vIE9yY2hlc3RyYXRpb24gR3JvdXBzXG4gIEdyb3VwID0gJ0dST1VQJyxcbiAgRnVuY3Rpb25Hcm91cCA9ICdGVU5DVElPTl9HUk9VUCcsXG5cbiAgLy8gRXh0ZXJuYWwgUHJvdmlkZXJzXG4gIEV4dGVybmFsQ29uZmlndXJhdG9yID0gJ0VYVEVSTkFMX0NPTkZJR1VSQVRPUicsXG4gIEV4dGVybmFsUHJpY2luZyA9ICdFWFRFUk5BTF9QUklDSU5HJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0IHtcbiAgZGF0YVNldElkOiBzdHJpbmc7XG4gIGRhdGFTZXROYW1lOiBzdHJpbmc7XG4gIHZhcmlhYmxlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uRGF0YVNldCB7XG4gIGZ1bmN0aW9uSWQ6IHN0cmluZztcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG4gIGRhdGFTZXRzOiBEYXRhU2V0W107XG59XG4iXX0=","export var UITemplateType;\n(function (UITemplateType) {\n    UITemplateType[\"SHOPPING_CART\"] = \"SHOPPING_CART\";\n    UITemplateType[\"CONFIGURATION_UI\"] = \"CONFIGURATION_UI\";\n    UITemplateType[\"CATALOG\"] = \"CATALOG\";\n    UITemplateType[\"GUIDED_SELLING\"] = \"GUIDED_SELLING\";\n    UITemplateType[\"FLOW_ENGINE\"] = \"FLOW_ENGINE\";\n    UITemplateType[\"FLOW_HEADER\"] = \"FLOW_HEADER\";\n})(UITemplateType || (UITemplateType = {}));\nexport var UITemplateComponentType;\n(function (UITemplateComponentType) {\n    UITemplateComponentType[\"ROOT\"] = \"ROOT\";\n    UITemplateComponentType[\"SERVICE\"] = \"SERVICE\";\n    UITemplateComponentType[\"GENERAL\"] = \"GENERAL\";\n    UITemplateComponentType[\"CUSTOMIZATION\"] = \"CUSTOMIZATION\";\n})(UITemplateComponentType || (UITemplateComponentType = {}));\nexport var ComponentAttachmentFileNames;\n(function (ComponentAttachmentFileNames) {\n    ComponentAttachmentFileNames[\"html\"] = \"template.html\";\n    ComponentAttachmentFileNames[\"css\"] = \"style.css\";\n    ComponentAttachmentFileNames[\"js\"] = \"script.js\";\n    ComponentAttachmentFileNames[\"json\"] = \"properties.json\";\n})(ComponentAttachmentFileNames || (ComponentAttachmentFileNames = {}));\nexport const requiredComponentAttachments = ['js'];\nexport const titlesForErrorMessage = {\n    js: 'JavaScript',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdGVtcGxhdGUudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi90eXBlcy91aS10ZW1wbGF0ZS50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxjQU9YO0FBUEQsV0FBWSxjQUFjO0lBQ3hCLGlEQUErQixDQUFBO0lBQy9CLHVEQUFxQyxDQUFBO0lBQ3JDLHFDQUFtQixDQUFBO0lBQ25CLG1EQUFpQyxDQUFBO0lBQ2pDLDZDQUEyQixDQUFBO0lBQzNCLDZDQUEyQixDQUFBO0FBQzdCLENBQUMsRUFQVyxjQUFjLEtBQWQsY0FBYyxRQU96QjtBQUVELE1BQU0sQ0FBTixJQUFZLHVCQUtYO0FBTEQsV0FBWSx1QkFBdUI7SUFDakMsd0NBQWEsQ0FBQTtJQUNiLDhDQUFtQixDQUFBO0lBQ25CLDhDQUFtQixDQUFBO0lBQ25CLDBEQUErQixDQUFBO0FBQ2pDLENBQUMsRUFMVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBS2xDO0FBNERELE1BQU0sQ0FBTixJQUFZLDRCQUtYO0FBTEQsV0FBWSw0QkFBNEI7SUFDdEMsc0RBQXNCLENBQUE7SUFDdEIsaURBQWlCLENBQUE7SUFDakIsZ0RBQWdCLENBQUE7SUFDaEIsd0RBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQUxXLDRCQUE0QixLQUE1Qiw0QkFBNEIsUUFLdkM7QUFFRCxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ25ELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUE4QjtJQUM5RCxFQUFFLEVBQUUsWUFBWTtDQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVGVtcGxhdGVBdHRhY2htZW50VHlwZSA9ICdodG1sJyB8ICdqcycgfCAnY3NzJyB8ICdqc29uJztcblxuZXhwb3J0IGVudW0gVUlUZW1wbGF0ZVR5cGUge1xuICBTSE9QUElOR19DQVJUID0gJ1NIT1BQSU5HX0NBUlQnLFxuICBDT05GSUdVUkFUSU9OX1VJID0gJ0NPTkZJR1VSQVRJT05fVUknLFxuICBDQVRBTE9HID0gJ0NBVEFMT0cnLFxuICBHVUlERURfU0VMTElORyA9ICdHVUlERURfU0VMTElORycsXG4gIEZMT1dfRU5HSU5FID0gJ0ZMT1dfRU5HSU5FJyxcbiAgRkxPV19IRUFERVIgPSAnRkxPV19IRUFERVInLFxufVxuXG5leHBvcnQgZW51bSBVSVRlbXBsYXRlQ29tcG9uZW50VHlwZSB7XG4gIFJPT1QgPSAnUk9PVCcsXG4gIFNFUlZJQ0UgPSAnU0VSVklDRScsXG4gIEdFTkVSQUwgPSAnR0VORVJBTCcsXG4gIENVU1RPTUlaQVRJT04gPSAnQ1VTVE9NSVpBVElPTicsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmV3VUlUZW1wbGF0ZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogVUlUZW1wbGF0ZVR5cGU7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVJVGVtcGxhdGUgZXh0ZW5kcyBOZXdVSVRlbXBsYXRlIHtcbiAgaWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXdUZW1wbGF0ZUNvbXBvbmVudCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogVUlUZW1wbGF0ZUNvbXBvbmVudFR5cGU7XG4gIHVpVGVtcGxhdGVJZDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZUNvbXBvbmVudCBleHRlbmRzIE5ld1RlbXBsYXRlQ29tcG9uZW50IHtcbiAgaWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnRXaXRoQXR0YWNobWVudHMgPSBUZW1wbGF0ZUNvbXBvbmVudCAmIENvbXBvbmVudEF0dGFjaG1lbnRzO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudEF0dGFjaG1lbnRzIHtcbiAgaHRtbD86IHN0cmluZztcbiAganM/OiBzdHJpbmc7XG4gIGNzcz86IHN0cmluZztcbiAganNvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXdDb21wb25lbnRTdG9yeSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdWlDb21wb25lbnRJZDogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wb25lbnRTdG9yeSBleHRlbmRzIE5ld0NvbXBvbmVudFN0b3J5IHtcbiAgaWQ6IHN0cmluZztcbiAgc2VjdGlvbj86IHN0cmluZztcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XG4gIHN0eWxlcz86IHN0cmluZztcbiAgc2NyaXB0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudFN0b3J5UHJldmlldyBleHRlbmRzIENvbXBvbmVudFN0b3J5IHtcbiAgY29tcG9uZW50VGVtcGxhdGU/OiBzdHJpbmc7XG4gIGNvbXBvbmVudFN0eWxlcz86IHN0cmluZztcbiAgY29tcG9uZW50U2NyaXB0Pzogc3RyaW5nO1xuICBjb21wb25lbnRQcm9wZXJ0aWVzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvbmVudFN0b3J5QXR0YWNobWVudHMge1xuICBodG1sPzogc3RyaW5nO1xuICBqcz86IHN0cmluZztcbiAgY3NzPzogc3RyaW5nO1xuICBqc29uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBDb21wb25lbnRBdHRhY2htZW50RmlsZU5hbWVzIHtcbiAgaHRtbCA9ICd0ZW1wbGF0ZS5odG1sJyxcbiAgY3NzID0gJ3N0eWxlLmNzcycsXG4gIGpzID0gJ3NjcmlwdC5qcycsXG4gIGpzb24gPSAncHJvcGVydGllcy5qc29uJyxcbn1cblxuZXhwb3J0IGNvbnN0IHJlcXVpcmVkQ29tcG9uZW50QXR0YWNobWVudHMgPSBbJ2pzJ107XG5leHBvcnQgY29uc3QgdGl0bGVzRm9yRXJyb3JNZXNzYWdlOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICBqczogJ0phdmFTY3JpcHQnLFxufTtcbiJdfQ==","import { ErrorType } from '../types';\nexport function extractErrorDetails(error) {\n    const errorDetails = [];\n    const { causedByError } = error.details || {};\n    if (causedByError) {\n        errorDetails.push(`Caused By: ${causedByError}`);\n    }\n    switch (error.errorCode) {\n        case ErrorType.RULE_ERROR: {\n            const { ruleName, stepType, stepName, stackTrace } = error.details;\n            if (ruleName) {\n                errorDetails.push(`Function Name: ${ruleName}`);\n            }\n            if (stepType) {\n                errorDetails.push(`Step Type: ${stepType}`);\n            }\n            if (stepName) {\n                errorDetails.push(`Step Name: ${stepName}`);\n            }\n            if (stackTrace) {\n                errorDetails.push(`Stack Trace: ${stackTrace}`);\n            }\n            break;\n        }\n        case ErrorType.SCRIPT_ERROR:\n        case ErrorType.QUOTE_SCRIPT_ERROR: {\n            const { scriptName, stackTrace } = error.details;\n            if (scriptName) {\n                errorDetails.push(`Script Name: ${scriptName}`);\n            }\n            if (stackTrace) {\n                errorDetails.push(`Stack Trace: ${stackTrace}`);\n            }\n            break;\n        }\n        case ErrorType.APEX_ERROR: {\n            const { salesforceException } = error.details;\n            if (salesforceException) {\n                errorDetails.push(`Salesforce Exception: ${salesforceException}`);\n            }\n            break;\n        }\n    }\n    if (errorDetails.length) {\n        return errorDetails;\n    }\n    return [error.message];\n}\nexport function isVeloceError(error) {\n    return (typeof error === 'object' &&\n        'errorCode' in error &&\n        'details' in error &&\n        typeof error.errorCode === 'string' &&\n        Object.values(ErrorType).includes(error.errorCode));\n}\nexport function isCanvasError(error) {\n    return typeof error === 'object' && 'error' in error && typeof error.error === 'string';\n}\nexport function isApexError(error) {\n    return (typeof error === 'object' &&\n        'errorCode' in error &&\n        'message' in error &&\n        typeof error.errorCode === 'string' &&\n        typeof error.message === 'string' &&\n        error.errorCode === ErrorType.APEX_ERROR);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9lcnJvci51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBCLFNBQVMsRUFBZSxNQUFNLFVBQVUsQ0FBQztBQUUxRSxNQUFNLFVBQVUsbUJBQW1CLENBQUMsS0FBa0I7SUFDcEQsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0lBRXhCLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUU5QyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQ2xCLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxRQUFRLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QixLQUFLLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBRW5FLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM5QyxDQUFDO1lBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM5QyxDQUFDO1lBRUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFFRCxNQUFNO1FBQ1IsQ0FBQztRQUNELEtBQUssU0FBUyxDQUFDLFlBQVksQ0FBQztRQUM1QixLQUFLLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7WUFDbEMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBRWpELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNsRCxDQUFDO1lBRUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFFRCxNQUFNO1FBQ1IsQ0FBQztRQUNELEtBQUssU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDMUIsTUFBTSxFQUFFLG1CQUFtQixFQUFFLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUU5QyxJQUFJLG1CQUFtQixFQUFFLENBQUM7Z0JBQ3hCLFlBQVksQ0FBQyxJQUFJLENBQUMseUJBQXlCLG1CQUFtQixFQUFFLENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBRUQsTUFBTTtRQUNSLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDeEIsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPLENBQ0wsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QixXQUFXLElBQUksS0FBSztRQUNwQixTQUFTLElBQUksS0FBSztRQUNsQixPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUTtRQUNuQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBc0IsQ0FBQyxDQUNoRSxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsS0FBVTtJQUN0QyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUM7QUFDMUYsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBVTtJQUNwQyxPQUFPLENBQ0wsT0FBTyxLQUFLLEtBQUssUUFBUTtRQUN6QixXQUFXLElBQUksS0FBSztRQUNwQixTQUFTLElBQUksS0FBSztRQUNsQixPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUTtRQUNuQyxPQUFPLEtBQUssQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUNqQyxLQUFLLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxVQUFVLENBQ3pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBleEVycm9yLCBDYW52YXNFcnJvciwgRXJyb3JUeXBlLCBWZWxvY2VFcnJvciB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RFcnJvckRldGFpbHMoZXJyb3I6IFZlbG9jZUVycm9yKTogc3RyaW5nW10ge1xuICBjb25zdCBlcnJvckRldGFpbHMgPSBbXTtcblxuICBjb25zdCB7IGNhdXNlZEJ5RXJyb3IgfSA9IGVycm9yLmRldGFpbHMgfHwge307XG5cbiAgaWYgKGNhdXNlZEJ5RXJyb3IpIHtcbiAgICBlcnJvckRldGFpbHMucHVzaChgQ2F1c2VkIEJ5OiAke2NhdXNlZEJ5RXJyb3J9YCk7XG4gIH1cblxuICBzd2l0Y2ggKGVycm9yLmVycm9yQ29kZSkge1xuICAgIGNhc2UgRXJyb3JUeXBlLlJVTEVfRVJST1I6IHtcbiAgICAgIGNvbnN0IHsgcnVsZU5hbWUsIHN0ZXBUeXBlLCBzdGVwTmFtZSwgc3RhY2tUcmFjZSB9ID0gZXJyb3IuZGV0YWlscztcblxuICAgICAgaWYgKHJ1bGVOYW1lKSB7XG4gICAgICAgIGVycm9yRGV0YWlscy5wdXNoKGBGdW5jdGlvbiBOYW1lOiAke3J1bGVOYW1lfWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoc3RlcFR5cGUpIHtcbiAgICAgICAgZXJyb3JEZXRhaWxzLnB1c2goYFN0ZXAgVHlwZTogJHtzdGVwVHlwZX1gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0ZXBOYW1lKSB7XG4gICAgICAgIGVycm9yRGV0YWlscy5wdXNoKGBTdGVwIE5hbWU6ICR7c3RlcE5hbWV9YCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChzdGFja1RyYWNlKSB7XG4gICAgICAgIGVycm9yRGV0YWlscy5wdXNoKGBTdGFjayBUcmFjZTogJHtzdGFja1RyYWNlfWApO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY2FzZSBFcnJvclR5cGUuU0NSSVBUX0VSUk9SOlxuICAgIGNhc2UgRXJyb3JUeXBlLlFVT1RFX1NDUklQVF9FUlJPUjoge1xuICAgICAgY29uc3QgeyBzY3JpcHROYW1lLCBzdGFja1RyYWNlIH0gPSBlcnJvci5kZXRhaWxzO1xuXG4gICAgICBpZiAoc2NyaXB0TmFtZSkge1xuICAgICAgICBlcnJvckRldGFpbHMucHVzaChgU2NyaXB0IE5hbWU6ICR7c2NyaXB0TmFtZX1gKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YWNrVHJhY2UpIHtcbiAgICAgICAgZXJyb3JEZXRhaWxzLnB1c2goYFN0YWNrIFRyYWNlOiAke3N0YWNrVHJhY2V9YCk7XG4gICAgICB9XG5cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjYXNlIEVycm9yVHlwZS5BUEVYX0VSUk9SOiB7XG4gICAgICBjb25zdCB7IHNhbGVzZm9yY2VFeGNlcHRpb24gfSA9IGVycm9yLmRldGFpbHM7XG5cbiAgICAgIGlmIChzYWxlc2ZvcmNlRXhjZXB0aW9uKSB7XG4gICAgICAgIGVycm9yRGV0YWlscy5wdXNoKGBTYWxlc2ZvcmNlIEV4Y2VwdGlvbjogJHtzYWxlc2ZvcmNlRXhjZXB0aW9ufWApO1xuICAgICAgfVxuXG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBpZiAoZXJyb3JEZXRhaWxzLmxlbmd0aCkge1xuICAgIHJldHVybiBlcnJvckRldGFpbHM7XG4gIH1cblxuICByZXR1cm4gW2Vycm9yLm1lc3NhZ2VdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNWZWxvY2VFcnJvcihlcnJvcjogYW55KTogZXJyb3IgaXMgVmVsb2NlRXJyb3Ige1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiZcbiAgICAnZXJyb3JDb2RlJyBpbiBlcnJvciAmJlxuICAgICdkZXRhaWxzJyBpbiBlcnJvciAmJlxuICAgIHR5cGVvZiBlcnJvci5lcnJvckNvZGUgPT09ICdzdHJpbmcnICYmXG4gICAgT2JqZWN0LnZhbHVlcyhFcnJvclR5cGUpLmluY2x1ZGVzKGVycm9yLmVycm9yQ29kZSBhcyBFcnJvclR5cGUpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NhbnZhc0Vycm9yKGVycm9yOiBhbnkpOiBlcnJvciBpcyBDYW52YXNFcnJvciB7XG4gIHJldHVybiB0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmICdlcnJvcicgaW4gZXJyb3IgJiYgdHlwZW9mIGVycm9yLmVycm9yID09PSAnc3RyaW5nJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXBleEVycm9yKGVycm9yOiBhbnkpOiBlcnJvciBpcyBBcGV4RXJyb3Ige1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiZcbiAgICAnZXJyb3JDb2RlJyBpbiBlcnJvciAmJlxuICAgICdtZXNzYWdlJyBpbiBlcnJvciAmJlxuICAgIHR5cGVvZiBlcnJvci5lcnJvckNvZGUgPT09ICdzdHJpbmcnICYmXG4gICAgdHlwZW9mIGVycm9yLm1lc3NhZ2UgPT09ICdzdHJpbmcnICYmXG4gICAgZXJyb3IuZXJyb3JDb2RlID09PSBFcnJvclR5cGUuQVBFWF9FUlJPUlxuICApO1xufVxuIl19","export const getImgUrl = (file, isSvg) => {\n    return URL.createObjectURL(isSvg ? file.slice(0, file.size, 'image/svg+xml') : file);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy9pbWFnZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxJQUFVLEVBQUUsS0FBZSxFQUFVLEVBQUU7SUFDL0QsT0FBTyxHQUFHLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGdldEltZ1VybCA9IChmaWxlOiBGaWxlLCBpc1N2Zz86IGJvb2xlYW4pOiBzdHJpbmcgPT4ge1xuICByZXR1cm4gVVJMLmNyZWF0ZU9iamVjdFVSTChpc1N2ZyA/IGZpbGUuc2xpY2UoMCwgZmlsZS5zaXplLCAnaW1hZ2Uvc3ZnK3htbCcpIDogZmlsZSk7XG59O1xuIl19","export function parseJsonSafely(string = '', failover) {\n    try {\n        // also apply failover for null value\n        const result = JSON.parse(string);\n        return result != null ? result : failover;\n    }\n    catch (e) {\n        return failover;\n    }\n}\nexport function parseJsonStringAsArray(source) {\n    return JSON.parse(source?.startsWith('[') ? source : '[]');\n}\nexport function parseJsonStringAsObject(source) {\n    return JSON.parse(source?.startsWith('{') ? source : '{}');\n}\nexport function isJsonString(string) {\n    if (string === null || string === undefined) {\n        return false;\n    }\n    try {\n        JSON.parse(string);\n    }\n    catch (e) {\n        return false;\n    }\n    return true;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL2pzb24udXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLGVBQWUsQ0FBSSxNQUFNLEdBQUcsRUFBRSxFQUFFLFFBQVc7SUFDekQsSUFBSSxDQUFDO1FBQ0gscUNBQXFDO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsT0FBTyxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUM1QyxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE1BQTBCO0lBQy9ELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBMEI7SUFDaEUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBaUM7SUFDNUQsSUFBSSxNQUFNLEtBQUssSUFBSSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM1QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSnNvblNhZmVseTxUPihzdHJpbmcgPSAnJywgZmFpbG92ZXI6IFQpOiBUIHtcbiAgdHJ5IHtcbiAgICAvLyBhbHNvIGFwcGx5IGZhaWxvdmVyIGZvciBudWxsIHZhbHVlXG4gICAgY29uc3QgcmVzdWx0ID0gSlNPTi5wYXJzZShzdHJpbmcpO1xuICAgIHJldHVybiByZXN1bHQgIT0gbnVsbCA/IHJlc3VsdCA6IGZhaWxvdmVyO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhaWxvdmVyO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUpzb25TdHJpbmdBc0FycmF5KHNvdXJjZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogYW55W10ge1xuICByZXR1cm4gSlNPTi5wYXJzZShzb3VyY2U/LnN0YXJ0c1dpdGgoJ1snKSA/IHNvdXJjZSA6ICdbXScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VKc29uU3RyaW5nQXNPYmplY3Qoc291cmNlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBhbnkge1xuICByZXR1cm4gSlNPTi5wYXJzZShzb3VyY2U/LnN0YXJ0c1dpdGgoJ3snKSA/IHNvdXJjZSA6ICd7fScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNKc29uU3RyaW5nKHN0cmluZzogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICBpZiAoc3RyaW5nID09PSBudWxsIHx8IHN0cmluZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBKU09OLnBhcnNlKHN0cmluZyk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG4iXX0=","/**\n * Following navigation items are mandatory and\n * any portal customization must contain these\n */\nexport var PortalNavigationItems;\n(function (PortalNavigationItems) {\n    PortalNavigationItems[\"subscriptions\"] = \"subscriptions\";\n})(PortalNavigationItems || (PortalNavigationItems = {}));\nexport const PORTAL_NAVIGATION_ITEMS_MAP = new Map(Object.entries(PortalNavigationItems));\nexport const PORTAL_DEFAULT_CUSTOMIZATION = {\n    theme: {\n        headerLogo: {\n            imageTag: '',\n        },\n        colors: [\n            { name: 'primaryColor', label: 'primaryColor', color: '#0466c8', visible: true },\n            { name: 'secondaryColor', label: 'secondaryColor', color: '#353535', visible: true },\n        ],\n    },\n    navMenu: [\n        {\n            name: PortalNavigationItems.subscriptions,\n            label: 'Subscriptions',\n            visible: true,\n            url: PortalNavigationItems.subscriptions,\n            isDefault: true,\n        },\n    ],\n    pages: {\n        general: {\n            sbqqMode: {\n                name: 'sbqqMode',\n                label: 'SBQQ Mode',\n                visible: false,\n            },\n        },\n        login: {\n            loginLeftImage: {\n                imageTag: '',\n            },\n            loginTopLogoImage: {\n                imageTag: '',\n            },\n            title: {\n                label: 'Title',\n            },\n            accounts: {\n                label: 'Accounts',\n                accountId: '',\n                visible: true,\n                readOnly: false,\n                visibleCondition: '',\n                readOnlyCondition: '',\n                visibleProperty: '',\n                readOnlyProperty: '',\n            },\n        },\n        accounts: {\n            topCoverImage: {\n                imageTag: '',\n            },\n            title: {\n                label: 'Title',\n            },\n            layout: {\n                type: 'card',\n            },\n        },\n        subscriptions: [\n            {\n                general: {\n                    name: 'assetsFolder',\n                    label: 'Subscriptions',\n                    objects: 'assets',\n                    layoutType: 'card',\n                    visible: true,\n                    addProduct: {\n                        label: 'Add Product',\n                        visible: false,\n                        url: '/flow',\n                    },\n                },\n                image: {\n                    visible: true,\n                },\n                productName: {\n                    name: 'productName',\n                    label: 'Product Name',\n                    dataSourceType: 'field',\n                    dataSourceValue: 'name',\n                    visible: true,\n                },\n                description: {\n                    name: 'description',\n                    label: 'Description',\n                    dataSourceType: 'field',\n                    dataSourceValue: 'description',\n                    visible: true,\n                },\n                actionCode: {\n                    name: 'actionCode',\n                    label: 'Action Code',\n                    dataSourceType: 'field',\n                    dataSourceValue: 'status',\n                    visible: true,\n                },\n                fields: [\n                    {\n                        dataSourceType: 'field',\n                        dataSourceValue: 'qty',\n                        name: '',\n                        label: 'Quantity',\n                        visible: true,\n                    },\n                    {\n                        dataSourceType: 'field',\n                        dataSourceValue: 'startDate',\n                        name: '',\n                        label: 'Start Date',\n                        visible: true,\n                    },\n                    {\n                        dataSourceType: 'field',\n                        dataSourceValue: 'endDate',\n                        name: '',\n                        label: 'End Date',\n                        visible: true,\n                    },\n                ],\n                price: {\n                    name: 'price',\n                    label: 'Price',\n                    dataSourceType: 'field',\n                    dataSourceValue: 'price',\n                    visible: true,\n                },\n            },\n            {\n                general: {\n                    name: 'quoteFolder',\n                    label: 'Quotes',\n                    objects: 'quotes',\n                    layoutType: 'card',\n                    visible: true,\n                    addProduct: {\n                        label: 'Add Product',\n                        visible: true,\n                        url: '/flow',\n                    },\n                },\n                productName: {\n                    name: 'quoteName',\n                    label: 'Quote Name',\n                    dataSourceType: 'field',\n                    dataSourceValue: 'name',\n                    visible: true,\n                },\n                fields: [\n                    {\n                        dataSourceType: 'field',\n                        dataSourceValue: 'name',\n                        name: '',\n                        label: 'Quote Name',\n                        visible: true,\n                    },\n                    {\n                        dataSourceType: 'field',\n                        dataSourceValue: 'status',\n                        name: '',\n                        label: 'Quote Status',\n                        visible: true,\n                    },\n                    {\n                        dataSourceType: 'field',\n                        dataSourceValue: 'quoteNumber',\n                        name: '',\n                        label: 'Quote Number',\n                        visible: true,\n                    },\n                    {\n                        dataSourceType: 'property',\n                        dataSourceValue: 'StartDate',\n                        name: '',\n                        label: 'Start Date',\n                        visible: true,\n                    },\n                ],\n            },\n            {\n                general: {\n                    name: 'quoteLinesFolder',\n                    label: 'Quote Lines',\n                    objects: 'quoteLines',\n                    layoutType: 'card',\n                    visible: true,\n                    addProduct: {\n                        label: 'Add Product',\n                        visible: false,\n                        url: '/flow',\n                    },\n                },\n                productName: {\n                    name: 'productName',\n                    label: 'Product Name',\n                    dataSourceType: 'field',\n                    dataSourceValue: 'name',\n                    visible: true,\n                },\n                fields: [\n                    {\n                        dataSourceType: 'field',\n                        dataSourceValue: 'qty',\n                        name: '',\n                        label: 'Quantity',\n                        visible: true,\n                    },\n                    {\n                        dataSourceType: 'field',\n                        dataSourceValue: 'startDate',\n                        name: '',\n                        label: 'Start Date',\n                        visible: true,\n                    },\n                    {\n                        dataSourceType: 'field',\n                        dataSourceValue: 'endDate',\n                        name: '',\n                        label: 'End Date',\n                        visible: true,\n                    },\n                    {\n                        dataSourceType: 'field',\n                        dataSourceValue: 'status',\n                        name: '',\n                        label: 'Quote Status',\n                        visible: true,\n                    },\n                    {\n                        dataSourceType: 'field',\n                        dataSourceValue: 'quoteNumber',\n                        name: '',\n                        label: 'Quote Number',\n                        visible: true,\n                    },\n                ],\n                price: {\n                    name: 'price',\n                    label: 'Price',\n                    dataSourceType: 'field',\n                    dataSourceValue: 'price',\n                    visible: true,\n                },\n            },\n        ],\n        shoppingCart: {\n            general: {\n                type: 'standard',\n            },\n            tableConfig: {\n                columns: [\n                    {\n                        name: 'name',\n                        visible: true,\n                    },\n                    {\n                        name: 'chargeType',\n                        visible: true,\n                    },\n                    {\n                        name: 'qty',\n                        visible: true,\n                    },\n                    {\n                        name: 'unitOfMeasure',\n                        visible: true,\n                    },\n                    {\n                        name: 'startDate',\n                        visible: true,\n                    },\n                    {\n                        name: 'endDate',\n                        visible: true,\n                    },\n                    {\n                        name: 'cost',\n                        visible: true,\n                    },\n                    {\n                        name: 'marginPercent',\n                        visible: true,\n                    },\n                    {\n                        name: 'price',\n                        visible: true,\n                    },\n                    {\n                        name: 'discountAmount',\n                        visible: true,\n                    },\n                    {\n                        name: 'contractedPrice',\n                        visible: true,\n                    },\n                    {\n                        name: 'netPrice',\n                        visible: true,\n                    },\n                    {\n                        name: 'effectiveNetPrice',\n                        visible: true,\n                    },\n                    {\n                        name: 'status',\n                        visible: true,\n                    },\n                ],\n            },\n        },\n    },\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLmRlZmluaXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvZGVmaW5pdGlvbnMvcG9ydGFsLmRlZmluaXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7R0FHRztBQUNILE1BQU0sQ0FBTixJQUFZLHFCQUVYO0FBRkQsV0FBWSxxQkFBcUI7SUFDL0Isd0RBQStCLENBQUE7QUFDakMsQ0FBQyxFQUZXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFFaEM7QUFFRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztBQUUxRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBd0I7SUFDL0QsS0FBSyxFQUFFO1FBQ0wsVUFBVSxFQUFFO1lBQ1YsUUFBUSxFQUFFLEVBQUU7U0FDYjtRQUNELE1BQU0sRUFBRTtZQUNOLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtZQUNoRixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1NBQ3JGO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUDtZQUNFLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxhQUFhO1lBQ3pDLEtBQUssRUFBRSxlQUFlO1lBQ3RCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsR0FBRyxFQUFFLHFCQUFxQixDQUFDLGFBQWE7WUFDeEMsU0FBUyxFQUFFLElBQUk7U0FDaEI7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLE9BQU8sRUFBRTtZQUNQLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsVUFBVTtnQkFD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cUJBQ2Q7b0JBQ0Q7d0JBQ0UsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsT0FBTyxFQUFFLElBQUk7cUJBQ2Q7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9ydGFsQ3VzdG9taXphdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBGb2xsb3dpbmcgbmF2aWdhdGlvbiBpdGVtcyBhcmUgbWFuZGF0b3J5IGFuZFxuICogYW55IHBvcnRhbCBjdXN0b21pemF0aW9uIG11c3QgY29udGFpbiB0aGVzZVxuICovXG5leHBvcnQgZW51bSBQb3J0YWxOYXZpZ2F0aW9uSXRlbXMge1xuICBzdWJzY3JpcHRpb25zID0gJ3N1YnNjcmlwdGlvbnMnLFxufVxuXG5leHBvcnQgY29uc3QgUE9SVEFMX05BVklHQVRJT05fSVRFTVNfTUFQID0gbmV3IE1hcChPYmplY3QuZW50cmllcyhQb3J0YWxOYXZpZ2F0aW9uSXRlbXMpKTtcblxuZXhwb3J0IGNvbnN0IFBPUlRBTF9ERUZBVUxUX0NVU1RPTUlaQVRJT046IFBvcnRhbEN1c3RvbWl6YXRpb24gPSB7XG4gIHRoZW1lOiB7XG4gICAgaGVhZGVyTG9nbzoge1xuICAgICAgaW1hZ2VUYWc6ICcnLFxuICAgIH0sXG4gICAgY29sb3JzOiBbXG4gICAgICB7IG5hbWU6ICdwcmltYXJ5Q29sb3InLCBsYWJlbDogJ3ByaW1hcnlDb2xvcicsIGNvbG9yOiAnIzA0NjZjOCcsIHZpc2libGU6IHRydWUgfSxcbiAgICAgIHsgbmFtZTogJ3NlY29uZGFyeUNvbG9yJywgbGFiZWw6ICdzZWNvbmRhcnlDb2xvcicsIGNvbG9yOiAnIzM1MzUzNScsIHZpc2libGU6IHRydWUgfSxcbiAgICBdLFxuICB9LFxuICBuYXZNZW51OiBbXG4gICAge1xuICAgICAgbmFtZTogUG9ydGFsTmF2aWdhdGlvbkl0ZW1zLnN1YnNjcmlwdGlvbnMsXG4gICAgICBsYWJlbDogJ1N1YnNjcmlwdGlvbnMnLFxuICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgIHVybDogUG9ydGFsTmF2aWdhdGlvbkl0ZW1zLnN1YnNjcmlwdGlvbnMsXG4gICAgICBpc0RlZmF1bHQ6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgcGFnZXM6IHtcbiAgICBnZW5lcmFsOiB7XG4gICAgICBzYnFxTW9kZToge1xuICAgICAgICBuYW1lOiAnc2JxcU1vZGUnLFxuICAgICAgICBsYWJlbDogJ1NCUVEgTW9kZScsXG4gICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGxvZ2luOiB7XG4gICAgICBsb2dpbkxlZnRJbWFnZToge1xuICAgICAgICBpbWFnZVRhZzogJycsXG4gICAgICB9LFxuICAgICAgbG9naW5Ub3BMb2dvSW1hZ2U6IHtcbiAgICAgICAgaW1hZ2VUYWc6ICcnLFxuICAgICAgfSxcbiAgICAgIHRpdGxlOiB7XG4gICAgICAgIGxhYmVsOiAnVGl0bGUnLFxuICAgICAgfSxcbiAgICAgIGFjY291bnRzOiB7XG4gICAgICAgIGxhYmVsOiAnQWNjb3VudHMnLFxuICAgICAgICBhY2NvdW50SWQ6ICcnLFxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICByZWFkT25seTogZmFsc2UsXG4gICAgICAgIHZpc2libGVDb25kaXRpb246ICcnLFxuICAgICAgICByZWFkT25seUNvbmRpdGlvbjogJycsXG4gICAgICAgIHZpc2libGVQcm9wZXJ0eTogJycsXG4gICAgICAgIHJlYWRPbmx5UHJvcGVydHk6ICcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGFjY291bnRzOiB7XG4gICAgICB0b3BDb3ZlckltYWdlOiB7XG4gICAgICAgIGltYWdlVGFnOiAnJyxcbiAgICAgIH0sXG4gICAgICB0aXRsZToge1xuICAgICAgICBsYWJlbDogJ1RpdGxlJyxcbiAgICAgIH0sXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgdHlwZTogJ2NhcmQnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHN1YnNjcmlwdGlvbnM6IFtcbiAgICAgIHtcbiAgICAgICAgZ2VuZXJhbDoge1xuICAgICAgICAgIG5hbWU6ICdhc3NldHNGb2xkZXInLFxuICAgICAgICAgIGxhYmVsOiAnU3Vic2NyaXB0aW9ucycsXG4gICAgICAgICAgb2JqZWN0czogJ2Fzc2V0cycsXG4gICAgICAgICAgbGF5b3V0VHlwZTogJ2NhcmQnLFxuICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgYWRkUHJvZHVjdDoge1xuICAgICAgICAgICAgbGFiZWw6ICdBZGQgUHJvZHVjdCcsXG4gICAgICAgICAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIHVybDogJy9mbG93JyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBpbWFnZToge1xuICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHByb2R1Y3ROYW1lOiB7XG4gICAgICAgICAgbmFtZTogJ3Byb2R1Y3ROYW1lJyxcbiAgICAgICAgICBsYWJlbDogJ1Byb2R1Y3QgTmFtZScsXG4gICAgICAgICAgZGF0YVNvdXJjZVR5cGU6ICdmaWVsZCcsXG4gICAgICAgICAgZGF0YVNvdXJjZVZhbHVlOiAnbmFtZScsXG4gICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgICBuYW1lOiAnZGVzY3JpcHRpb24nLFxuICAgICAgICAgIGxhYmVsOiAnRGVzY3JpcHRpb24nLFxuICAgICAgICAgIGRhdGFTb3VyY2VUeXBlOiAnZmllbGQnLFxuICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZTogJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpb25Db2RlOiB7XG4gICAgICAgICAgbmFtZTogJ2FjdGlvbkNvZGUnLFxuICAgICAgICAgIGxhYmVsOiAnQWN0aW9uIENvZGUnLFxuICAgICAgICAgIGRhdGFTb3VyY2VUeXBlOiAnZmllbGQnLFxuICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZTogJ3N0YXR1cycsXG4gICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVR5cGU6ICdmaWVsZCcsXG4gICAgICAgICAgICBkYXRhU291cmNlVmFsdWU6ICdxdHknLFxuICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgICBsYWJlbDogJ1F1YW50aXR5JyxcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkYXRhU291cmNlVHlwZTogJ2ZpZWxkJyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZTogJ3N0YXJ0RGF0ZScsXG4gICAgICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgICAgIGxhYmVsOiAnU3RhcnQgRGF0ZScsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVR5cGU6ICdmaWVsZCcsXG4gICAgICAgICAgICBkYXRhU291cmNlVmFsdWU6ICdlbmREYXRlJyxcbiAgICAgICAgICAgIG5hbWU6ICcnLFxuICAgICAgICAgICAgbGFiZWw6ICdFbmQgRGF0ZScsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIHByaWNlOiB7XG4gICAgICAgICAgbmFtZTogJ3ByaWNlJyxcbiAgICAgICAgICBsYWJlbDogJ1ByaWNlJyxcbiAgICAgICAgICBkYXRhU291cmNlVHlwZTogJ2ZpZWxkJyxcbiAgICAgICAgICBkYXRhU291cmNlVmFsdWU6ICdwcmljZScsXG4gICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGdlbmVyYWw6IHtcbiAgICAgICAgICBuYW1lOiAncXVvdGVGb2xkZXInLFxuICAgICAgICAgIGxhYmVsOiAnUXVvdGVzJyxcbiAgICAgICAgICBvYmplY3RzOiAncXVvdGVzJyxcbiAgICAgICAgICBsYXlvdXRUeXBlOiAnY2FyZCcsXG4gICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICBhZGRQcm9kdWN0OiB7XG4gICAgICAgICAgICBsYWJlbDogJ0FkZCBQcm9kdWN0JyxcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgICB1cmw6ICcvZmxvdycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJvZHVjdE5hbWU6IHtcbiAgICAgICAgICBuYW1lOiAncXVvdGVOYW1lJyxcbiAgICAgICAgICBsYWJlbDogJ1F1b3RlIE5hbWUnLFxuICAgICAgICAgIGRhdGFTb3VyY2VUeXBlOiAnZmllbGQnLFxuICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZTogJ25hbWUnLFxuICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGZpZWxkczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRhdGFTb3VyY2VUeXBlOiAnZmllbGQnLFxuICAgICAgICAgICAgZGF0YVNvdXJjZVZhbHVlOiAnbmFtZScsXG4gICAgICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgICAgIGxhYmVsOiAnUXVvdGUgTmFtZScsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVR5cGU6ICdmaWVsZCcsXG4gICAgICAgICAgICBkYXRhU291cmNlVmFsdWU6ICdzdGF0dXMnLFxuICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgICBsYWJlbDogJ1F1b3RlIFN0YXR1cycsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVR5cGU6ICdmaWVsZCcsXG4gICAgICAgICAgICBkYXRhU291cmNlVmFsdWU6ICdxdW90ZU51bWJlcicsXG4gICAgICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgICAgIGxhYmVsOiAnUXVvdGUgTnVtYmVyJyxcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkYXRhU291cmNlVHlwZTogJ3Byb3BlcnR5JyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZTogJ1N0YXJ0RGF0ZScsXG4gICAgICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgICAgIGxhYmVsOiAnU3RhcnQgRGF0ZScsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBnZW5lcmFsOiB7XG4gICAgICAgICAgbmFtZTogJ3F1b3RlTGluZXNGb2xkZXInLFxuICAgICAgICAgIGxhYmVsOiAnUXVvdGUgTGluZXMnLFxuICAgICAgICAgIG9iamVjdHM6ICdxdW90ZUxpbmVzJyxcbiAgICAgICAgICBsYXlvdXRUeXBlOiAnY2FyZCcsXG4gICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICBhZGRQcm9kdWN0OiB7XG4gICAgICAgICAgICBsYWJlbDogJ0FkZCBQcm9kdWN0JyxcbiAgICAgICAgICAgIHZpc2libGU6IGZhbHNlLFxuICAgICAgICAgICAgdXJsOiAnL2Zsb3cnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHByb2R1Y3ROYW1lOiB7XG4gICAgICAgICAgbmFtZTogJ3Byb2R1Y3ROYW1lJyxcbiAgICAgICAgICBsYWJlbDogJ1Byb2R1Y3QgTmFtZScsXG4gICAgICAgICAgZGF0YVNvdXJjZVR5cGU6ICdmaWVsZCcsXG4gICAgICAgICAgZGF0YVNvdXJjZVZhbHVlOiAnbmFtZScsXG4gICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVR5cGU6ICdmaWVsZCcsXG4gICAgICAgICAgICBkYXRhU291cmNlVmFsdWU6ICdxdHknLFxuICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgICBsYWJlbDogJ1F1YW50aXR5JyxcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBkYXRhU291cmNlVHlwZTogJ2ZpZWxkJyxcbiAgICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZTogJ3N0YXJ0RGF0ZScsXG4gICAgICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgICAgIGxhYmVsOiAnU3RhcnQgRGF0ZScsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVR5cGU6ICdmaWVsZCcsXG4gICAgICAgICAgICBkYXRhU291cmNlVmFsdWU6ICdlbmREYXRlJyxcbiAgICAgICAgICAgIG5hbWU6ICcnLFxuICAgICAgICAgICAgbGFiZWw6ICdFbmQgRGF0ZScsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVR5cGU6ICdmaWVsZCcsXG4gICAgICAgICAgICBkYXRhU291cmNlVmFsdWU6ICdzdGF0dXMnLFxuICAgICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgICBsYWJlbDogJ1F1b3RlIFN0YXR1cycsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGF0YVNvdXJjZVR5cGU6ICdmaWVsZCcsXG4gICAgICAgICAgICBkYXRhU291cmNlVmFsdWU6ICdxdW90ZU51bWJlcicsXG4gICAgICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgICAgIGxhYmVsOiAnUXVvdGUgTnVtYmVyJyxcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcHJpY2U6IHtcbiAgICAgICAgICBuYW1lOiAncHJpY2UnLFxuICAgICAgICAgIGxhYmVsOiAnUHJpY2UnLFxuICAgICAgICAgIGRhdGFTb3VyY2VUeXBlOiAnZmllbGQnLFxuICAgICAgICAgIGRhdGFTb3VyY2VWYWx1ZTogJ3ByaWNlJyxcbiAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIHNob3BwaW5nQ2FydDoge1xuICAgICAgZ2VuZXJhbDoge1xuICAgICAgICB0eXBlOiAnc3RhbmRhcmQnLFxuICAgICAgfSxcbiAgICAgIHRhYmxlQ29uZmlnOiB7XG4gICAgICAgIGNvbHVtbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2NoYXJnZVR5cGUnLFxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdxdHknLFxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICd1bml0T2ZNZWFzdXJlJyxcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnc3RhcnREYXRlJyxcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZW5kRGF0ZScsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2Nvc3QnLFxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdtYXJnaW5QZXJjZW50JyxcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncHJpY2UnLFxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdkaXNjb3VudEFtb3VudCcsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2NvbnRyYWN0ZWRQcmljZScsXG4gICAgICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ25ldFByaWNlJyxcbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnZWZmZWN0aXZlTmV0UHJpY2UnLFxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdzdGF0dXMnLFxuICAgICAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxufTtcbiJdfQ==","export * from './portal.definitions';\nexport const MAX_INT_32 = 2147483647;\nexport const DEFAULT_THOUSANDS_SEPARATOR = ',';\nexport const DEFAULT_DECIMAL_SEPARATOR = '.';\nexport const DEFAULT_DECIMALS_COUNT = 2;\nexport const DEFAULT_CURRENCY_SYMBOL = '$';\nexport const DEFAULT_CURRENCY_ISO_CODE = 'USD';\nexport const DEFAULT_DATE_FORMAT = 'MM.dd.yyyy';\nexport const DEFAULT_TIME_FORMAT = 'HH:mm:ss';\nexport const DEFAULT_ACTION_CODE_LABELS = {\n    ADD: 'ADD',\n    RENEW: 'RENEW',\n    EXIST: 'EXIST',\n    PENDING: 'PENDING',\n    UPDATE: 'UPDATE',\n    'P.UPDATE': 'P.UPDATE',\n    TERMINATE: 'TERMINATE',\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9kZWZpbml0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsR0FBRyxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQUcsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLENBQUM7QUFDeEMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBQzNDLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEtBQUssQ0FBQztBQUMvQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUM7QUFDaEQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsVUFBVSxDQUFDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHO0lBQ3hDLEdBQUcsRUFBRSxLQUFLO0lBQ1YsS0FBSyxFQUFFLE9BQU87SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLFVBQVUsRUFBRSxVQUFVO0lBQ3RCLFNBQVMsRUFBRSxXQUFXO0NBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BvcnRhbC5kZWZpbml0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBNQVhfSU5UXzMyID0gMjE0NzQ4MzY0NztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RIT1VTQU5EU19TRVBBUkFUT1IgPSAnLCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9ERUNJTUFMX1NFUEFSQVRPUiA9ICcuJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0RFQ0lNQUxTX0NPVU5UID0gMjtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NVUlJFTkNZX1NZTUJPTCA9ICckJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0NVUlJFTkNZX0lTT19DT0RFID0gJ1VTRCc7XG5leHBvcnQgY29uc3QgREVGQVVMVF9EQVRFX0ZPUk1BVCA9ICdNTS5kZC55eXl5JztcbmV4cG9ydCBjb25zdCBERUZBVUxUX1RJTUVfRk9STUFUID0gJ0hIOm1tOnNzJztcbmV4cG9ydCBjb25zdCBERUZBVUxUX0FDVElPTl9DT0RFX0xBQkVMUyA9IHtcbiAgQUREOiAnQUREJyxcbiAgUkVORVc6ICdSRU5FVycsXG4gIEVYSVNUOiAnRVhJU1QnLFxuICBQRU5ESU5HOiAnUEVORElORycsXG4gIFVQREFURTogJ1VQREFURScsXG4gICdQLlVQREFURSc6ICdQLlVQREFURScsXG4gIFRFUk1JTkFURTogJ1RFUk1JTkFURScsXG59O1xuIl19","import { DEFAULT_DECIMALS_COUNT, DEFAULT_DECIMAL_SEPARATOR, DEFAULT_THOUSANDS_SEPARATOR } from '../definitions';\nexport const formatNumber = (value, thousandsSeparator = DEFAULT_THOUSANDS_SEPARATOR, decimalSeparator = DEFAULT_DECIMAL_SEPARATOR, decimalsCount = DEFAULT_DECIMALS_COUNT) => {\n    if (value == null) {\n        return '';\n    }\n    const [int, decimal] = String(value).split('.');\n    // if the value should have no decimals, make half up rounding\n    let result = (decimalsCount === 0 ? `${Math.round(Number(value))}` : int)?.replace(/\\B(?<!\\.\\d*)(?=(\\d{3})+(?!\\d))/g, thousandsSeparator);\n    if (decimalsCount > 0) {\n        const numericDecimals = Number(`0${(decimal && '.' + decimal) ?? ''}`);\n        result += `${decimalSeparator}${(!isNaN(numericDecimals) && numericDecimals.toFixed(decimalsCount).slice(2)) || ''}`;\n    }\n    return result ?? '';\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvbnVtYmVyLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUMxQixLQUF5QyxFQUN6QyxrQkFBa0IsR0FBRywyQkFBMkIsRUFDaEQsZ0JBQWdCLEdBQUcseUJBQXlCLEVBQzVDLGFBQWEsR0FBRyxzQkFBc0IsRUFDOUIsRUFBRTtJQUNWLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVoRCw4REFBOEQ7SUFDOUQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxhQUFhLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUNoRixpQ0FBaUMsRUFDakMsa0JBQWtCLENBQ25CLENBQUM7SUFFRixJQUFJLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN0QixNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUV2RSxNQUFNLElBQUksR0FBRyxnQkFBZ0IsR0FDM0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQ2xGLEVBQUUsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLE1BQU0sSUFBSSxFQUFFLENBQUM7QUFDdEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVGQVVMVF9ERUNJTUFMU19DT1VOVCwgREVGQVVMVF9ERUNJTUFMX1NFUEFSQVRPUiwgREVGQVVMVF9USE9VU0FORFNfU0VQQVJBVE9SIH0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgZm9ybWF0TnVtYmVyID0gKFxuICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgdGhvdXNhbmRzU2VwYXJhdG9yID0gREVGQVVMVF9USE9VU0FORFNfU0VQQVJBVE9SLFxuICBkZWNpbWFsU2VwYXJhdG9yID0gREVGQVVMVF9ERUNJTUFMX1NFUEFSQVRPUixcbiAgZGVjaW1hbHNDb3VudCA9IERFRkFVTFRfREVDSU1BTFNfQ09VTlQsXG4pOiBzdHJpbmcgPT4ge1xuICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gU3RyaW5nKHZhbHVlKS5zcGxpdCgnLicpO1xuXG4gIC8vIGlmIHRoZSB2YWx1ZSBzaG91bGQgaGF2ZSBubyBkZWNpbWFscywgbWFrZSBoYWxmIHVwIHJvdW5kaW5nXG4gIGxldCByZXN1bHQgPSAoZGVjaW1hbHNDb3VudCA9PT0gMCA/IGAke01hdGgucm91bmQoTnVtYmVyKHZhbHVlKSl9YCA6IGludCk/LnJlcGxhY2UoXG4gICAgL1xcQig/PCFcXC5cXGQqKSg/PShcXGR7M30pKyg/IVxcZCkpL2csXG4gICAgdGhvdXNhbmRzU2VwYXJhdG9yLFxuICApO1xuXG4gIGlmIChkZWNpbWFsc0NvdW50ID4gMCkge1xuICAgIGNvbnN0IG51bWVyaWNEZWNpbWFscyA9IE51bWJlcihgMCR7KGRlY2ltYWwgJiYgJy4nICsgZGVjaW1hbCkgPz8gJyd9YCk7XG5cbiAgICByZXN1bHQgKz0gYCR7ZGVjaW1hbFNlcGFyYXRvcn0ke1xuICAgICAgKCFpc05hTihudW1lcmljRGVjaW1hbHMpICYmIG51bWVyaWNEZWNpbWFscy50b0ZpeGVkKGRlY2ltYWxzQ291bnQpLnNsaWNlKDIpKSB8fCAnJ1xuICAgIH1gO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdCA/PyAnJztcbn07XG4iXX0=","export class SalesforceIdUtils {\n    static { this.SF_PREFIX_MAP = {\n        '001': 'Account',\n        '002': 'Note',\n        '003': 'Contact',\n        '005': 'User',\n        '006': 'Opportunity',\n        '007': 'Activity',\n        '00D': 'Organization',\n        '00E': 'UserRole',\n        '00Q': 'Lead',\n        '00j': 'Product',\n        '01t': 'Product2',\n        '800': 'Contract',\n        '801': 'Order',\n        '806': 'Approval',\n        '0Q0': 'Quote',\n    }; }\n    static { this.CHECKSUM_TABLE = {\n        '00000': 'A',\n        '00001': 'B',\n        '00010': 'C',\n        '00011': 'D',\n        '00100': 'E',\n        '00101': 'F',\n        '00110': 'G',\n        '00111': 'H',\n        '01000': 'I',\n        '01001': 'J',\n        '01010': 'K',\n        '01011': 'L',\n        '01100': 'M',\n        '01101': 'N',\n        '01110': 'O',\n        '01111': 'P',\n        '10000': 'Q',\n        '10001': 'R',\n        '10010': 'S',\n        '10011': 'T',\n        '10100': 'U',\n        '10101': 'V',\n        '10110': 'W',\n        '10111': 'X',\n        '11000': 'Y',\n        '11001': 'Z',\n        '11010': '0',\n        '11011': '1',\n        '11100': '2',\n        '11101': '3',\n        '11110': '4',\n        '11111': '5',\n    }; }\n    static generateId18FromId15(sfId15) {\n        return sfId15 + SalesforceIdUtils.generateId18Tail(sfId15);\n    }\n    static getSfObjectNameById(id) {\n        const prefix = id.slice(0, 3);\n        return SalesforceIdUtils.SF_PREFIX_MAP[prefix] ?? null;\n    }\n    static generateId18Tail(sfId15) {\n        return SalesforceIdUtils.splitSfId15(sfId15)\n            .map(part => part.split('').reverse()) // split & reverse\n            .map(SalesforceIdUtils.replaceUpperWith1)\n            .map(part => {\n            const key = part.join('');\n            return SalesforceIdUtils.CHECKSUM_TABLE[key];\n        })\n            .join('');\n    }\n    static replaceUpperWith1(array) {\n        return array.map(char => (char >= 'A' && char <= 'Z' ? 1 : 0));\n    }\n    static splitSfId15(id) {\n        return [id.substring(0, 5), id.substring(5, 10), id.substring(10, 15)];\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNmb3JjZS1pZC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3NhbGVzZm9yY2UtaWQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGlCQUFpQjthQUNMLGtCQUFhLEdBQUc7UUFDckMsS0FBSyxFQUFFLFNBQVM7UUFDaEIsS0FBSyxFQUFFLE1BQU07UUFDYixLQUFLLEVBQUUsU0FBUztRQUNoQixLQUFLLEVBQUUsTUFBTTtRQUNiLEtBQUssRUFBRSxhQUFhO1FBQ3BCLEtBQUssRUFBRSxVQUFVO1FBQ2pCLEtBQUssRUFBRSxjQUFjO1FBQ3JCLEtBQUssRUFBRSxVQUFVO1FBQ2pCLEtBQUssRUFBRSxNQUFNO1FBQ2IsS0FBSyxFQUFFLFNBQVM7UUFDaEIsS0FBSyxFQUFFLFVBQVU7UUFDakIsS0FBSyxFQUFFLFVBQVU7UUFDakIsS0FBSyxFQUFFLE9BQU87UUFDZCxLQUFLLEVBQUUsVUFBVTtRQUNqQixLQUFLLEVBQUUsT0FBTztLQUNOLENBQUM7YUFFYSxtQkFBYyxHQUFHO1FBQ3ZDLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixPQUFPLEVBQUUsR0FBRztRQUNaLE9BQU8sRUFBRSxHQUFHO1FBQ1osT0FBTyxFQUFFLEdBQUc7S0FDSixDQUFDO0lBRUosTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQWM7UUFDL0MsT0FBTyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDL0IsRUFBVTtRQUVWLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBaUQsQ0FBQztRQUU5RSxPQUFPLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDekQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzVDLE9BQU8saUJBQWlCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQzthQUN6QyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsa0JBQWtCO2FBQ3hELEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQzthQUN4QyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDVixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBa0QsQ0FBQztZQUMzRSxPQUFPLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQWU7UUFDOUMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFVO1FBQ25DLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgU2FsZXNmb3JjZUlkVXRpbHMge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNGX1BSRUZJWF9NQVAgPSB7XG4gICAgJzAwMSc6ICdBY2NvdW50JyxcbiAgICAnMDAyJzogJ05vdGUnLFxuICAgICcwMDMnOiAnQ29udGFjdCcsXG4gICAgJzAwNSc6ICdVc2VyJyxcbiAgICAnMDA2JzogJ09wcG9ydHVuaXR5JyxcbiAgICAnMDA3JzogJ0FjdGl2aXR5JyxcbiAgICAnMDBEJzogJ09yZ2FuaXphdGlvbicsXG4gICAgJzAwRSc6ICdVc2VyUm9sZScsXG4gICAgJzAwUSc6ICdMZWFkJyxcbiAgICAnMDBqJzogJ1Byb2R1Y3QnLFxuICAgICcwMXQnOiAnUHJvZHVjdDInLFxuICAgICc4MDAnOiAnQ29udHJhY3QnLFxuICAgICc4MDEnOiAnT3JkZXInLFxuICAgICc4MDYnOiAnQXBwcm92YWwnLFxuICAgICcwUTAnOiAnUXVvdGUnLFxuICB9IGFzIGNvbnN0O1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENIRUNLU1VNX1RBQkxFID0ge1xuICAgICcwMDAwMCc6ICdBJyxcbiAgICAnMDAwMDEnOiAnQicsXG4gICAgJzAwMDEwJzogJ0MnLFxuICAgICcwMDAxMSc6ICdEJyxcbiAgICAnMDAxMDAnOiAnRScsXG4gICAgJzAwMTAxJzogJ0YnLFxuICAgICcwMDExMCc6ICdHJyxcbiAgICAnMDAxMTEnOiAnSCcsXG4gICAgJzAxMDAwJzogJ0knLFxuICAgICcwMTAwMSc6ICdKJyxcbiAgICAnMDEwMTAnOiAnSycsXG4gICAgJzAxMDExJzogJ0wnLFxuICAgICcwMTEwMCc6ICdNJyxcbiAgICAnMDExMDEnOiAnTicsXG4gICAgJzAxMTEwJzogJ08nLFxuICAgICcwMTExMSc6ICdQJyxcbiAgICAnMTAwMDAnOiAnUScsXG4gICAgJzEwMDAxJzogJ1InLFxuICAgICcxMDAxMCc6ICdTJyxcbiAgICAnMTAwMTEnOiAnVCcsXG4gICAgJzEwMTAwJzogJ1UnLFxuICAgICcxMDEwMSc6ICdWJyxcbiAgICAnMTAxMTAnOiAnVycsXG4gICAgJzEwMTExJzogJ1gnLFxuICAgICcxMTAwMCc6ICdZJyxcbiAgICAnMTEwMDEnOiAnWicsXG4gICAgJzExMDEwJzogJzAnLFxuICAgICcxMTAxMSc6ICcxJyxcbiAgICAnMTExMDAnOiAnMicsXG4gICAgJzExMTAxJzogJzMnLFxuICAgICcxMTExMCc6ICc0JyxcbiAgICAnMTExMTEnOiAnNScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHVibGljIHN0YXRpYyBnZW5lcmF0ZUlkMThGcm9tSWQxNShzZklkMTU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHNmSWQxNSArIFNhbGVzZm9yY2VJZFV0aWxzLmdlbmVyYXRlSWQxOFRhaWwoc2ZJZDE1KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0U2ZPYmplY3ROYW1lQnlJZChcbiAgICBpZDogc3RyaW5nLFxuICApOiAodHlwZW9mIFNhbGVzZm9yY2VJZFV0aWxzLlNGX1BSRUZJWF9NQVApW2tleW9mIHR5cGVvZiBTYWxlc2ZvcmNlSWRVdGlscy5TRl9QUkVGSVhfTUFQXSB8IG51bGwge1xuICAgIGNvbnN0IHByZWZpeCA9IGlkLnNsaWNlKDAsIDMpIGFzIGtleW9mIHR5cGVvZiBTYWxlc2ZvcmNlSWRVdGlscy5TRl9QUkVGSVhfTUFQO1xuXG4gICAgcmV0dXJuIFNhbGVzZm9yY2VJZFV0aWxzLlNGX1BSRUZJWF9NQVBbcHJlZml4XSA/PyBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2VuZXJhdGVJZDE4VGFpbChzZklkMTU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNhbGVzZm9yY2VJZFV0aWxzLnNwbGl0U2ZJZDE1KHNmSWQxNSlcbiAgICAgIC5tYXAocGFydCA9PiBwYXJ0LnNwbGl0KCcnKS5yZXZlcnNlKCkpIC8vIHNwbGl0ICYgcmV2ZXJzZVxuICAgICAgLm1hcChTYWxlc2ZvcmNlSWRVdGlscy5yZXBsYWNlVXBwZXJXaXRoMSlcbiAgICAgIC5tYXAocGFydCA9PiB7XG4gICAgICAgIGNvbnN0IGtleSA9IHBhcnQuam9pbignJykgYXMga2V5b2YgdHlwZW9mIFNhbGVzZm9yY2VJZFV0aWxzLkNIRUNLU1VNX1RBQkxFO1xuICAgICAgICByZXR1cm4gU2FsZXNmb3JjZUlkVXRpbHMuQ0hFQ0tTVU1fVEFCTEVba2V5XTtcbiAgICAgIH0pXG4gICAgICAuam9pbignJyk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZXBsYWNlVXBwZXJXaXRoMShhcnJheTogc3RyaW5nW10pOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIGFycmF5Lm1hcChjaGFyID0+IChjaGFyID49ICdBJyAmJiBjaGFyIDw9ICdaJyA/IDEgOiAwKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBzcGxpdFNmSWQxNShpZDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbaWQuc3Vic3RyaW5nKDAsIDUpLCBpZC5zdWJzdHJpbmcoNSwgMTApLCBpZC5zdWJzdHJpbmcoMTAsIDE1KV07XG4gIH1cbn1cbiJdfQ==","export function mapShoppingCartSettings(shoppingCartSettings) {\n    return shoppingCartSettings.reduce((acc, setting) => {\n        return { ...acc, [setting.id]: setting.properties };\n    }, {});\n}\nexport function getMaxRenewalTermsValue(shoppingCartSettings) {\n    const maxRenewalTerms = shoppingCartSettings?.['MAX_RENEWAL_TERMS'];\n    // if negative value is provided, the setting is ignored\n    return maxRenewalTerms != null && maxRenewalTerms !== '' && !isNaN(maxRenewalTerms) && Number(maxRenewalTerms) >= 0\n        ? Number(maxRenewalTerms)\n        : null;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC1zZXR0aW5ncy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3Nob3BwaW5nLWNhcnQtc2V0dGluZ3MudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLHVCQUF1QixDQUFDLG9CQUEyQztJQUNqRixPQUFPLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQXlCLEVBQUUsT0FBNEIsRUFBRSxFQUFFO1FBQzdGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEQsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ1QsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxvQkFBc0Q7SUFDNUYsTUFBTSxlQUFlLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3BFLHdEQUF3RDtJQUN4RCxPQUFPLGVBQWUsSUFBSSxJQUFJLElBQUksZUFBZSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztRQUNqSCxDQUFDLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNob3BwaW5nQ2FydFNldHRpbmcsIFNob3BwaW5nQ2FydFNldHRpbmdzIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gbWFwU2hvcHBpbmdDYXJ0U2V0dGluZ3Moc2hvcHBpbmdDYXJ0U2V0dGluZ3M6IFNob3BwaW5nQ2FydFNldHRpbmdbXSk6IFNob3BwaW5nQ2FydFNldHRpbmdzIHtcbiAgcmV0dXJuIHNob3BwaW5nQ2FydFNldHRpbmdzLnJlZHVjZSgoYWNjOiBTaG9wcGluZ0NhcnRTZXR0aW5ncywgc2V0dGluZzogU2hvcHBpbmdDYXJ0U2V0dGluZykgPT4ge1xuICAgIHJldHVybiB7IC4uLmFjYywgW3NldHRpbmcuaWRdOiBzZXR0aW5nLnByb3BlcnRpZXMgfTtcbiAgfSwge30pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWF4UmVuZXdhbFRlcm1zVmFsdWUoc2hvcHBpbmdDYXJ0U2V0dGluZ3M6IFNob3BwaW5nQ2FydFNldHRpbmdzIHwgdW5kZWZpbmVkKTogbnVtYmVyIHwgbnVsbCB7XG4gIGNvbnN0IG1heFJlbmV3YWxUZXJtcyA9IHNob3BwaW5nQ2FydFNldHRpbmdzPy5bJ01BWF9SRU5FV0FMX1RFUk1TJ107XG4gIC8vIGlmIG5lZ2F0aXZlIHZhbHVlIGlzIHByb3ZpZGVkLCB0aGUgc2V0dGluZyBpcyBpZ25vcmVkXG4gIHJldHVybiBtYXhSZW5ld2FsVGVybXMgIT0gbnVsbCAmJiBtYXhSZW5ld2FsVGVybXMgIT09ICcnICYmICFpc05hTihtYXhSZW5ld2FsVGVybXMpICYmIE51bWJlcihtYXhSZW5ld2FsVGVybXMpID49IDBcbiAgICA/IE51bWJlcihtYXhSZW5ld2FsVGVybXMpXG4gICAgOiBudWxsO1xufVxuIl19","import { reduce } from 'lodash';\nexport class StringUtils {\n    static fillPlaceholders(statement, properties, pattern) {\n        if (pattern.test(statement)) {\n            const resolvedArgs = reduce(statement.match(pattern)?.filter((_, index) => index > 0), (acc, param) => {\n                if (!acc[param]) {\n                    const parts = param.split(/\\./);\n                    let valueObj = properties;\n                    for (const part of parts) {\n                        if (typeof valueObj !== 'object') {\n                            valueObj = null;\n                            break;\n                        }\n                        valueObj = valueObj[part];\n                    }\n                    return {\n                        ...acc,\n                        [param]: valueObj || '',\n                    };\n                }\n                return acc;\n            }, {});\n            return Object.keys(resolvedArgs).reduce((acc, key) => acc.replace(`:${key}`, resolvedArgs[key]), statement);\n        }\n        return statement;\n    }\n    static trimString(str) {\n        return (str || '').trim();\n    }\n    static normalizeString(value, ignoreChars = []) {\n        const chars = ['_', \"'\"].filter(char => !ignoreChars.some(c => c === char));\n        if (typeof value === 'string') {\n            chars.forEach(char => {\n                value = value.replace(new RegExp(char, 'g'), `\\\\${char}`);\n            });\n            return value;\n        }\n        return value;\n    }\n    static unwrapString(value) {\n        return value.match(/(?:\")(.*)(?:\"+$)/)?.[1] || '';\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvc3RyaW5nLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFNUMsTUFBTSxPQUFPLFdBQVc7SUFDZixNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBaUIsRUFBRSxVQUFvQyxFQUFFLE9BQWU7UUFDckcsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDNUIsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUN6QixTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFDekQsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNoQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNoQyxJQUFJLFFBQVEsR0FBUSxVQUFVLENBQUM7b0JBQy9CLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7d0JBQ3pCLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7NEJBQ2pDLFFBQVEsR0FBRyxJQUFJLENBQUM7NEJBQ2hCLE1BQU07d0JBQ1IsQ0FBQzt3QkFDRCxRQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUM1QixDQUFDO29CQUVELE9BQU87d0JBQ0wsR0FBRyxHQUFHO3dCQUNOLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxJQUFJLEVBQUU7cUJBQ3hCLENBQUM7Z0JBQ0osQ0FBQztnQkFFRCxPQUFPLEdBQUcsQ0FBQztZQUNiLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztZQUVGLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDOUcsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQThCO1FBQ3JELE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBYyxFQUFFLGNBQXdCLEVBQUU7UUFDdEUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFNUUsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNuQixLQUFLLEdBQUksS0FBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN4RSxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBYTtRQUN0QyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaWN0aW9uYXJ5LCByZWR1Y2UgfSBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgY2xhc3MgU3RyaW5nVXRpbHMge1xuICBwdWJsaWMgc3RhdGljIGZpbGxQbGFjZWhvbGRlcnMoc3RhdGVtZW50OiBzdHJpbmcsIHByb3BlcnRpZXM6IHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfSwgcGF0dGVybjogUmVnRXhwKTogc3RyaW5nIHtcbiAgICBpZiAocGF0dGVybi50ZXN0KHN0YXRlbWVudCkpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkQXJncyA9IHJlZHVjZTxEaWN0aW9uYXJ5PGFueT4sIERpY3Rpb25hcnk8YW55Pj4oXG4gICAgICAgIHN0YXRlbWVudC5tYXRjaChwYXR0ZXJuKT8uZmlsdGVyKChfLCBpbmRleCkgPT4gaW5kZXggPiAwKSxcbiAgICAgICAgKGFjYywgcGFyYW0pID0+IHtcbiAgICAgICAgICBpZiAoIWFjY1twYXJhbV0pIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcnRzID0gcGFyYW0uc3BsaXQoL1xcLi8pO1xuICAgICAgICAgICAgbGV0IHZhbHVlT2JqOiBhbnkgPSBwcm9wZXJ0aWVzO1xuICAgICAgICAgICAgZm9yIChjb25zdCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWVPYmogIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVPYmogPSBudWxsO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHZhbHVlT2JqID0gdmFsdWVPYmpbcGFydF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgICAgW3BhcmFtXTogdmFsdWVPYmogfHwgJycsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHt9LFxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHJlc29sdmVkQXJncykucmVkdWNlKChhY2MsIGtleSkgPT4gYWNjLnJlcGxhY2UoYDoke2tleX1gLCByZXNvbHZlZEFyZ3Nba2V5XSksIHN0YXRlbWVudCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdHJpbVN0cmluZyhzdHI6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIHJldHVybiAoc3RyIHx8ICcnKS50cmltKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG5vcm1hbGl6ZVN0cmluZyh2YWx1ZTogdW5rbm93biwgaWdub3JlQ2hhcnM6IHN0cmluZ1tdID0gW10pOiB1bmtub3duIHtcbiAgICBjb25zdCBjaGFycyA9IFsnXycsIFwiJ1wiXS5maWx0ZXIoY2hhciA9PiAhaWdub3JlQ2hhcnMuc29tZShjID0+IGMgPT09IGNoYXIpKTtcblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjaGFycy5mb3JFYWNoKGNoYXIgPT4ge1xuICAgICAgICB2YWx1ZSA9ICh2YWx1ZSBhcyBzdHJpbmcpLnJlcGxhY2UobmV3IFJlZ0V4cChjaGFyLCAnZycpLCBgXFxcXCR7Y2hhcn1gKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB1bndyYXBTdHJpbmcodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC8oPzpcIikoLiopKD86XCIrJCkvKT8uWzFdIHx8ICcnO1xuICB9XG59XG4iXX0=","export const isDefined = (value) => value != null;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1ndWFyZHMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91dGlscy90eXBlLWd1YXJkcy51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBSSxLQUFRLEVBQXlDLEVBQUUsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGlzRGVmaW5lZCA9IDxUPih2YWx1ZTogVCk6IHZhbHVlIGlzIEV4Y2x1ZGU8VCwgbnVsbCB8IHVuZGVmaW5lZD4gPT4gdmFsdWUgIT0gbnVsbDtcbiJdfQ==","import { DefaultUrlSerializer } from '@angular/router';\nexport const getFlowParams = (url) => {\n    const flowId = url.split('?')[0]?.replaceAll('/', '');\n    const params = new DefaultUrlSerializer().parse(url).queryParams;\n    return { flowId, ...params };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvdXJsLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQVcsRUFBVSxFQUFFO0lBQ25ELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxNQUFNLE1BQU0sR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNqRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFDL0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVmYXVsdFVybFNlcmlhbGl6ZXIsIFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmV4cG9ydCBjb25zdCBnZXRGbG93UGFyYW1zID0gKHVybDogc3RyaW5nKTogUGFyYW1zID0+IHtcbiAgY29uc3QgZmxvd0lkID0gdXJsLnNwbGl0KCc/JylbMF0/LnJlcGxhY2VBbGwoJy8nLCAnJyk7XG4gIGNvbnN0IHBhcmFtcyA9IG5ldyBEZWZhdWx0VXJsU2VyaWFsaXplcigpLnBhcnNlKHVybCkucXVlcnlQYXJhbXM7XG4gIHJldHVybiB7IGZsb3dJZCwgLi4ucGFyYW1zIH07XG59O1xuIl19","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path=\"../../index.d.ts\" />\nimport * as Hashes from 'jshashes';\nconst SHA1 = new Hashes.SHA1();\nexport class UUID {\n    static SHA1() {\n        return new Hashes.SHA1();\n    }\n    static UUID() {\n        if (typeof window !== 'undefined' &&\n            typeof window.crypto !== 'undefined' &&\n            typeof window.crypto.getRandomValues !== 'undefined') {\n            // If we have a cryptographically secure PRNG, use that\n            // http://stackoverflow.com/questions/6906916/collisions-when-generating-uuids-in-javascript\n            const buf = new Uint16Array(8);\n            window.crypto.getRandomValues(buf);\n            return (this.pad4(buf[0] ?? 0) +\n                this.pad4(buf[1] ?? 0) +\n                '-' +\n                this.pad4(buf[2] ?? 0) +\n                '-' +\n                this.pad4(buf[3] ?? 0) +\n                '-' +\n                this.pad4(buf[4] ?? 0) +\n                '-' +\n                this.pad4(buf[5] ?? 0) +\n                this.pad4(buf[6] ?? 0) +\n                this.pad4(buf[7] ?? 0));\n        }\n        else {\n            // Otherwise, just use Math.random\n            // https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\n            // tslint:disable-next-line:max-line-length\n            // https://stackoverflow.com/questions/11605068/why-does-jshint-argue-against-bitwise-operators-how-should-i-express-this-code\n            return (this.random4() +\n                this.random4() +\n                '-' +\n                this.random4() +\n                '-' +\n                this.random4() +\n                '-' +\n                this.random4() +\n                '-' +\n                this.random4() +\n                this.random4() +\n                this.random4());\n        }\n    }\n    static hex(text) {\n        return SHA1.hex(text);\n    }\n    static pad4(num) {\n        let ret = num.toString(16);\n        while (ret.length < 4) {\n            ret = '0' + ret;\n        }\n        return ret;\n    }\n    static random4() {\n        return Math.floor((1 + Math.random()) * 0x10000)\n            .toString(16)\n            .substring(1);\n    }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3V1aWQudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUVBQXFFO0FBQ3JFLHlDQUF5QztBQUN6QyxPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQztBQUVuQyxNQUFNLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUUvQixNQUFNLE9BQU8sSUFBSTtJQUNSLE1BQU0sQ0FBQyxJQUFJO1FBQ2hCLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJO1FBQ2hCLElBQ0UsT0FBTyxNQUFNLEtBQUssV0FBVztZQUM3QixPQUFPLE1BQU0sQ0FBQyxNQUFNLEtBQUssV0FBVztZQUNwQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxLQUFLLFdBQVcsRUFDcEQsQ0FBQztZQUNELHVEQUF1RDtZQUN2RCw0RkFBNEY7WUFDNUYsTUFBTSxHQUFHLEdBQWdCLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sQ0FDTCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEIsR0FBRztnQkFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLEdBQUc7Z0JBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QixHQUFHO2dCQUNILElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEIsR0FBRztnQkFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3ZCLENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLGtDQUFrQztZQUNsQyw0RUFBNEU7WUFDNUUsMkNBQTJDO1lBQzNDLDhIQUE4SDtZQUM5SCxPQUFPLENBQ0wsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNkLEdBQUc7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxHQUFHO2dCQUNILElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2QsR0FBRztnQkFDSCxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNkLEdBQUc7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDZCxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNkLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FDZixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQVk7UUFDNUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQVc7UUFDN0IsSUFBSSxHQUFHLEdBQVcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEIsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDbEIsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLE1BQU0sQ0FBQyxPQUFPO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUM7YUFDN0MsUUFBUSxDQUFDLEVBQUUsQ0FBQzthQUNaLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3RyaXBsZS1zbGFzaC1yZWZlcmVuY2Vcbi8vLyA8cmVmZXJlbmNlIHBhdGg9XCIuLi8uLi9pbmRleC5kLnRzXCIgLz5cbmltcG9ydCAqIGFzIEhhc2hlcyBmcm9tICdqc2hhc2hlcyc7XG5cbmNvbnN0IFNIQTEgPSBuZXcgSGFzaGVzLlNIQTEoKTtcblxuZXhwb3J0IGNsYXNzIFVVSUQge1xuICBwdWJsaWMgc3RhdGljIFNIQTEoKTogYW55IHtcbiAgICByZXR1cm4gbmV3IEhhc2hlcy5TSEExKCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIFVVSUQoKTogc3RyaW5nIHtcbiAgICBpZiAoXG4gICAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgdHlwZW9mIHdpbmRvdy5jcnlwdG8gIT09ICd1bmRlZmluZWQnICYmXG4gICAgICB0eXBlb2Ygd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMgIT09ICd1bmRlZmluZWQnXG4gICAgKSB7XG4gICAgICAvLyBJZiB3ZSBoYXZlIGEgY3J5cHRvZ3JhcGhpY2FsbHkgc2VjdXJlIFBSTkcsIHVzZSB0aGF0XG4gICAgICAvLyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzY5MDY5MTYvY29sbGlzaW9ucy13aGVuLWdlbmVyYXRpbmctdXVpZHMtaW4tamF2YXNjcmlwdFxuICAgICAgY29uc3QgYnVmOiBVaW50MTZBcnJheSA9IG5ldyBVaW50MTZBcnJheSg4KTtcbiAgICAgIHdpbmRvdy5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGJ1Zik7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLnBhZDQoYnVmWzBdID8/IDApICtcbiAgICAgICAgdGhpcy5wYWQ0KGJ1ZlsxXSA/PyAwKSArXG4gICAgICAgICctJyArXG4gICAgICAgIHRoaXMucGFkNChidWZbMl0gPz8gMCkgK1xuICAgICAgICAnLScgK1xuICAgICAgICB0aGlzLnBhZDQoYnVmWzNdID8/IDApICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgdGhpcy5wYWQ0KGJ1Zls0XSA/PyAwKSArXG4gICAgICAgICctJyArXG4gICAgICAgIHRoaXMucGFkNChidWZbNV0gPz8gMCkgK1xuICAgICAgICB0aGlzLnBhZDQoYnVmWzZdID8/IDApICtcbiAgICAgICAgdGhpcy5wYWQ0KGJ1Zls3XSA/PyAwKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gT3RoZXJ3aXNlLCBqdXN0IHVzZSBNYXRoLnJhbmRvbVxuICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTA1MDM0L2NyZWF0ZS1ndWlkLXV1aWQtaW4tamF2YXNjcmlwdFxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxuICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTE2MDUwNjgvd2h5LWRvZXMtanNoaW50LWFyZ3VlLWFnYWluc3QtYml0d2lzZS1vcGVyYXRvcnMtaG93LXNob3VsZC1pLWV4cHJlc3MtdGhpcy1jb2RlXG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLnJhbmRvbTQoKSArXG4gICAgICAgIHRoaXMucmFuZG9tNCgpICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgdGhpcy5yYW5kb200KCkgK1xuICAgICAgICAnLScgK1xuICAgICAgICB0aGlzLnJhbmRvbTQoKSArXG4gICAgICAgICctJyArXG4gICAgICAgIHRoaXMucmFuZG9tNCgpICtcbiAgICAgICAgJy0nICtcbiAgICAgICAgdGhpcy5yYW5kb200KCkgK1xuICAgICAgICB0aGlzLnJhbmRvbTQoKSArXG4gICAgICAgIHRoaXMucmFuZG9tNCgpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaGV4KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNIQTEuaGV4KHRleHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcGFkNChudW06IG51bWJlcik6IHN0cmluZyB7XG4gICAgbGV0IHJldDogc3RyaW5nID0gbnVtLnRvU3RyaW5nKDE2KTtcbiAgICB3aGlsZSAocmV0Lmxlbmd0aCA8IDQpIHtcbiAgICAgIHJldCA9ICcwJyArIHJldDtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJhbmRvbTQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcigoMSArIE1hdGgucmFuZG9tKCkpICogMHgxMDAwMClcbiAgICAgIC50b1N0cmluZygxNilcbiAgICAgIC5zdWJzdHJpbmcoMSk7XG4gIH1cbn1cbiJdfQ==","import { omit } from 'lodash';\n/**\n * PLEASE ADD ALL NON-SERIALIZABLE PROPERTIES OF VELOCE CONFIG HERE\n * OTHERWISE INTER_FRAME COMMUNICATION WILL FAIL\n */\nconst nonSerializableConfigProps = {\n    RPC_BROADCAST: true,\n    VELO_BACK_FN: true,\n    VELO_NAVIGATE_TO_APPROVAL_PROCESS_FN: true,\n    doCanvasCall: true,\n    doSandboxCall: true,\n};\nconst URL_TOKEN_STORAGE_KEY = 'url-token-params';\nfunction updateGlobalConfig(update) {\n    Object.entries(update).forEach(([key, value]) => {\n        window[key] = value;\n    });\n}\nasync function initLocalAuth() {\n    initByUrlParams();\n    try {\n        const response = await fetch('auth.json');\n        const config = await response.json();\n        window.VELO_KEY = config.token;\n        window.ORGANIZATION_ID = config.organizationId;\n        window.proxyTargetUrl = config.serverUrl;\n        window.ORGANIZATION_INSTANCE_URL = config.instanceUrl;\n        window.ORGANIZATION_TOKEN = config.accessToken;\n        if (config.devToken != null) {\n            window.DEV_TOKEN = config.devToken;\n        }\n        return config;\n    }\n    catch (e) {\n        // No local config\n        return undefined;\n    }\n}\nasync function initOpenAuth() {\n    const hashParts = window.location.hash.split('#');\n    const urlParams = new URLSearchParams(hashParts.pop());\n    const accessToken = urlParams.get('access_token');\n    if (accessToken) {\n        const instanceUrl = urlParams.get('instance_url');\n        const state = urlParams.get('state');\n        if (state && 'URLSearchParams' in window) {\n            const searchParams = new URLSearchParams(state);\n            const newRelativePathQuery = window.location.pathname + hashParts.join('#') + '?' + searchParams.toString();\n            history.pushState(null, '', newRelativePathQuery);\n        }\n        const response = await fetch(`${instanceUrl}/services/apexrest/VELOCE_PRISM/veloce-auth`, {\n            method: 'GET',\n            headers: {\n                'Content-Type': 'application/json',\n                Authorization: `Bearer ${accessToken}`,\n            },\n        });\n        const result = await response.json();\n        window.VELO_API = result.serverUrl;\n        window.VELO_KEY = result.token;\n        window.ORGANIZATION_INSTANCE_URL = instanceUrl ?? void 0;\n        window.ORGANIZATION_TOKEN = accessToken;\n    }\n}\nfunction initByUrlParams() {\n    const hashParts = window.location.hash.split('#');\n    const hashParams = new URLSearchParams(hashParts.pop());\n    const searchParams = new URLSearchParams(window.location.search);\n    const apiUrl = window.location.origin;\n    const token = hashParams.get('token') ?? searchParams.get('token');\n    const mode = hashParams.get('mode') ?? searchParams.get('mode');\n    if (mode) {\n        window.MODE = mode;\n    }\n    if (apiUrl && token) {\n        window.VELO_API = apiUrl;\n        window.VELO_KEY = token;\n        const data = { token, timestamp: Date.now() };\n        sessionStorage.setItem(URL_TOKEN_STORAGE_KEY, JSON.stringify(data));\n        return;\n    }\n    const tokenDataStr = sessionStorage.getItem(URL_TOKEN_STORAGE_KEY);\n    if (tokenDataStr) {\n        try {\n            const tokenData = JSON.parse(tokenDataStr);\n            if (tokenData.timestamp + 1000 * 3600 > Date.now()) {\n                window.VELO_API = apiUrl;\n                window.VELO_KEY = tokenData.token;\n            }\n            else {\n                sessionStorage.removeItem(URL_TOKEN_STORAGE_KEY);\n            }\n        }\n        catch {\n            // Token data is corrupted\n            sessionStorage.removeItem(URL_TOKEN_STORAGE_KEY);\n        }\n    }\n}\nasync function initXRay() {\n    if (!window.doCanvasCall) {\n        return;\n    }\n    try {\n        const response = await window.doCanvasCall('env', null);\n        const result = JSON.parse(response);\n        window.AWS_XRAY_ACCESS_KEY_ID = result.AWS_XRAY_ACCESS_KEY_ID;\n        window.AWS_XRAY_REGION = result.AWS_XRAY_REGION;\n        window.AWS_XRAY_SECRET_ACCESS_KEY = result.AWS_XRAY_SECRET_ACCESS_KEY;\n        window.AWS_XRAY_SESSION_TOKEN = result.AWS_XRAY_SESSION_TOKEN;\n    }\n    catch (e) {\n        // Unable to retrieve XRay credentials\n    }\n}\nfunction initCanvasCallFn(accessToken) {\n    window.doCanvasCall = async (endpoint, parameters) => {\n        try {\n            const response = await fetch(`${window.location.origin}/services/apexrest/VELOCE_PRISM/ServiceRouter`, {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application/json',\n                    Authorization: `Bearer ${accessToken}`,\n                },\n                body: JSON.stringify({\n                    request: {\n                        service: 'CanvasProxyController',\n                        method: 'getCanvasResponse',\n                        parameters: JSON.stringify({\n                            endpoint: endpoint,\n                            params: parameters,\n                        }),\n                    },\n                }),\n            });\n            return await response.json();\n        }\n        catch (err) {\n            console.error(err);\n            throw err;\n        }\n    };\n}\nfunction initSandboxCallFn(accessToken) {\n    window.doSandboxCall = async (endpoint, body, method) => {\n        try {\n            const response = await fetch(`${window.location.origin}/services/apexrest/VELOCE_PRISM/ServiceRouter`, {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application/json',\n                    Authorization: `Bearer ${accessToken}`,\n                },\n                body: JSON.stringify({\n                    request: {\n                        service: 'SandboxProxyController',\n                        method: 'getCanvasResponse',\n                        parameters: JSON.stringify({\n                            endpoint: endpoint,\n                            body: body,\n                            method: method,\n                        }),\n                    },\n                }),\n            });\n            return await response.json();\n        }\n        catch (err) {\n            console.error(err);\n            throw err;\n        }\n    };\n}\nlet externalVeloceConfigListenerFn;\nexport async function loadVeloceConfig(cb, config) {\n    // Check if already initialized\n    if (window.VELO_KEY) {\n        await initXRay();\n        cb();\n        return;\n    }\n    if (!config?.suppressLocalConfig) {\n        // Try loading local config\n        const { accessToken } = (await initLocalAuth()) || {};\n        if (!window.doCanvasCall && accessToken) {\n            initCanvasCallFn(accessToken);\n        }\n        if (!window.doSandboxCall && accessToken) {\n            initSandboxCallFn(accessToken);\n        }\n        if (window.VELO_KEY) {\n            cb();\n            return;\n        }\n    }\n    await initOpenAuth();\n    if (window.VELO_KEY) {\n        cb();\n        return;\n    }\n    initByUrlParams();\n    if (window.VELO_KEY) {\n        cb();\n        return;\n    }\n    await initXRay();\n    const parent = window.parent && window !== window.parent ? window.parent : window.opener;\n    if (parent) {\n        // Wait for external config\n        console.log('Waiting for config from parent window');\n        // cleanup\n        if (externalVeloceConfigListenerFn) {\n            window.removeEventListener('message', externalVeloceConfigListenerFn);\n        }\n        externalVeloceConfigListenerFn = (event) => {\n            if (event?.data?.type === 'VELO_CONFIG') {\n                updateGlobalConfig({\n                    ...event.data.config,\n                    VELO_BACK_FN: (recordId) => {\n                        const msg = { type: 'VELO_BACK_FN', data: { recordId } };\n                        parent.postMessage(msg, '*');\n                    },\n                    VELO_NAVIGATE_TO_APPROVAL_PROCESS_FN: () => {\n                        parent.postMessage({ type: 'VELO_NAVIGATE_TO_APPROVAL_PROCESS_FN' }, '*');\n                    },\n                });\n                console.log('Config successfully loaded');\n                // remove listener as it's not needed anymore\n                window.removeEventListener('message', externalVeloceConfigListenerFn);\n                cb();\n            }\n        };\n        window.addEventListener('message', externalVeloceConfigListenerFn);\n        parent.postMessage({ type: 'VELO_RUNTIME_READY' }, '*');\n        return;\n    }\n    // No external config found\n    cb();\n}\nexport function initVeloceConfig(child, config) {\n    const listenerFn = (event) => {\n        if (event?.data?.type === 'VELO_RUNTIME_READY') {\n            const message = {\n                type: 'VELO_CONFIG',\n                config: omit(config, ...Object.keys(nonSerializableConfigProps)),\n            };\n            child.postMessage(message, '*');\n        }\n        if (event?.data?.type === 'VELO_BACK_FN') {\n            config.VELO_BACK_FN?.(event.data.data.recordId);\n        }\n        if (event?.data?.type === 'VELO_NAVIGATE_TO_APPROVAL_PROCESS_FN') {\n            config.VELO_NAVIGATE_TO_APPROVAL_PROCESS_FN?.();\n        }\n    };\n    window.addEventListener('message', listenerFn);\n    return () => {\n        window.removeEventListener('message', listenerFn);\n    };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvd2luZG93LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFvQjlCOzs7R0FHRztBQUNILE1BQU0sMEJBQTBCLEdBQStCO0lBQzdELGFBQWEsRUFBRSxJQUFJO0lBQ25CLFlBQVksRUFBRSxJQUFJO0lBQ2xCLG9DQUFvQyxFQUFFLElBQUk7SUFDMUMsWUFBWSxFQUFFLElBQUk7SUFDbEIsYUFBYSxFQUFFLElBQUk7Q0FDcEIsQ0FBQztBQXdDRixNQUFNLHFCQUFxQixHQUFHLGtCQUFrQixDQUFDO0FBRWpELFNBQVMsa0JBQWtCLENBQUMsTUFBK0I7SUFDekQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQzdDLE1BQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsS0FBSyxVQUFVLGFBQWE7SUFDMUIsZUFBZSxFQUFFLENBQUM7SUFDbEIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUMsTUFBTSxNQUFNLEdBQWMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFaEQsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQy9CLE1BQU0sQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUMvQyxNQUFNLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDekMsTUFBTSxDQUFDLHlCQUF5QixHQUFHLE1BQU0s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QUFtQixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNwRCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgb21pdCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBMb2NhbEF1dGgsIFZsR2xvYmFsQ29uZmlnLCBWbFdpbmRvdyB9IGZyb20gJy4uL3R5cGVzJztcblxuZGVjbGFyZSBjb25zdCB3aW5kb3c6IFZsV2luZG93O1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRWZWxvY2VDb25maWdQYXJhbXMge1xuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIGRvbid0IGxvYWQgbG9jYWwgY29uZmlnXG4gICAqXG4gICAqIEkuZS46IGB7IHN1cHByZXNzTG9jYWxDb25maWc6IGVudmlyb25tZW50LnByb2R1Y3Rpb24gfWBcbiAgICovXG4gIHN1cHByZXNzTG9jYWxDb25maWc/OiBib29sZWFuO1xufVxuXG50eXBlIFBpY2tCeVR5cGU8VCwgVmFsdWU+ID0ge1xuICBbUCBpbiBrZXlvZiBUIGFzIFRbUF0gZXh0ZW5kcyBWYWx1ZSB8IHVuZGVmaW5lZCA/IFAgOiBuZXZlcl06IFRbUF07XG59O1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtZnVuY3Rpb24tdHlwZSxAdHlwZXNjcmlwdC1lc2xpbnQvbm8td3JhcHBlci1vYmplY3QtdHlwZXNcbnR5cGUgTm9uU2VyaWFsaXphYmxlQ29uZmlnUHJvcHMgPSBSZWNvcmQ8a2V5b2YgUGlja0J5VHlwZTxWbEdsb2JhbENvbmZpZywgRnVuY3Rpb24gfCBTeW1ib2w+LCBib29sZWFuPjtcblxuLyoqXG4gKiBQTEVBU0UgQUREIEFMTCBOT04tU0VSSUFMSVpBQkxFIFBST1BFUlRJRVMgT0YgVkVMT0NFIENPTkZJRyBIRVJFXG4gKiBPVEhFUldJU0UgSU5URVJfRlJBTUUgQ09NTVVOSUNBVElPTiBXSUxMIEZBSUxcbiAqL1xuY29uc3Qgbm9uU2VyaWFsaXphYmxlQ29uZmlnUHJvcHM6IE5vblNlcmlhbGl6YWJsZUNvbmZpZ1Byb3BzID0ge1xuICBSUENfQlJPQURDQVNUOiB0cnVlLFxuICBWRUxPX0JBQ0tfRk46IHRydWUsXG4gIFZFTE9fTkFWSUdBVEVfVE9fQVBQUk9WQUxfUFJPQ0VTU19GTjogdHJ1ZSxcbiAgZG9DYW52YXNDYWxsOiB0cnVlLFxuICBkb1NhbmRib3hDYWxsOiB0cnVlLFxufTtcblxuaW50ZXJmYWNlIFZlbG9jZUNvbmZpZ01lc3NhZ2Uge1xuICB0eXBlOiAnVkVMT19DT05GSUcnO1xuICBjb25maWc6IFBhcnRpYWw8VmxHbG9iYWxDb25maWc+O1xufVxuXG5pbnRlcmZhY2UgVmVsb2NlQmFja01lc3NhZ2Uge1xuICB0eXBlOiAnVkVMT19CQUNLX0ZOJztcbiAgZGF0YToge1xuICAgIHJlY29yZElkOiBzdHJpbmc7XG4gIH07XG59XG5cbmludGVyZmFjZSBWZWxvY2VOYXZpZ2F0ZVRvQXBwcm92YWxQcm9jZXNzTWVzc2FnZSB7XG4gIHR5cGU6ICdWRUxPX05BVklHQVRFX1RPX0FQUFJPVkFMX1BST0NFU1NfRk4nO1xufVxuXG5pbnRlcmZhY2UgVmVsb2NlUnVudGltZVJlYWR5TWVzc2FnZSB7XG4gIHR5cGU6ICdWRUxPX1JVTlRJTUVfUkVBRFknO1xufVxuXG50eXBlIFZlbG9jZU1lc3NhZ2UgPVxuICB8IFZlbG9jZUNvbmZpZ01lc3NhZ2VcbiAgfCBWZWxvY2VCYWNrTWVzc2FnZVxuICB8IFZlbG9jZVJ1bnRpbWVSZWFkeU1lc3NhZ2VcbiAgfCBWZWxvY2VOYXZpZ2F0ZVRvQXBwcm92YWxQcm9jZXNzTWVzc2FnZTtcblxuaW50ZXJmYWNlIFVybFRva2VuRGF0YSB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIHRpbWVzdGFtcDogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgQ2FudmFzRW52UmVzcG9uc2Uge1xuICBBV1NfWFJBWV9BQ0NFU1NfS0VZX0lEPzogc3RyaW5nO1xuICBBV1NfWFJBWV9TRUNSRVRfQUNDRVNTX0tFWT86IHN0cmluZztcbiAgQVdTX1hSQVlfUkVHSU9OPzogc3RyaW5nO1xuICBBV1NfWFJBWV9TRVNTSU9OX1RPS0VOPzogc3RyaW5nO1xufVxuXG5jb25zdCBVUkxfVE9LRU5fU1RPUkFHRV9LRVkgPSAndXJsLXRva2VuLXBhcmFtcyc7XG5cbmZ1bmN0aW9uIHVwZGF0ZUdsb2JhbENvbmZpZyh1cGRhdGU6IFBhcnRpYWw8VmxHbG9iYWxDb25maWc+KTogdm9pZCB7XG4gIE9iamVjdC5lbnRyaWVzKHVwZGF0ZSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgKHdpbmRvdyBhcyBhbnkpW2tleV0gPSB2YWx1ZTtcbiAgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGluaXRMb2NhbEF1dGgoKTogUHJvbWlzZTxMb2NhbEF1dGggfCB1bmRlZmluZWQ+IHtcbiAgaW5pdEJ5VXJsUGFyYW1zKCk7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgnYXV0aC5qc29uJyk7XG4gICAgY29uc3QgY29uZmlnOiBMb2NhbEF1dGggPSBhd2FpdCByZXNwb25zZS5qc29uKCk7XG5cbiAgICB3aW5kb3cuVkVMT19LRVkgPSBjb25maWcudG9rZW47XG4gICAgd2luZG93Lk9SR0FOSVpBVElPTl9JRCA9IGNvbmZpZy5vcmdhbml6YXRpb25JZDtcbiAgICB3aW5kb3cucHJveHlUYXJnZXRVcmwgPSBjb25maWcuc2VydmVyVXJsO1xuICAgIHdpbmRvdy5PUkdBTklaQVRJT05fSU5TVEFOQ0VfVVJMID0gY29uZmlnLmluc3RhbmNlVXJsO1xuICAgIHdpbmRvdy5PUkdBTklaQVRJT05fVE9LRU4gPSBjb25maWcuYWNjZXNzVG9rZW47XG5cbiAgICBpZiAoY29uZmlnLmRldlRva2VuICE9IG51bGwpIHtcbiAgICAgIHdpbmRvdy5ERVZfVE9LRU4gPSBjb25maWcuZGV2VG9rZW47XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8vIE5vIGxvY2FsIGNvbmZpZ1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5pdE9wZW5BdXRoKCk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCBoYXNoUGFydHMgPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zcGxpdCgnIycpO1xuICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGhhc2hQYXJ0cy5wb3AoKSk7XG4gIGNvbnN0IGFjY2Vzc1Rva2VuID0gdXJsUGFyYW1zLmdldCgnYWNjZXNzX3Rva2VuJyk7XG5cbiAgaWYgKGFjY2Vzc1Rva2VuKSB7XG4gICAgY29uc3QgaW5zdGFuY2VVcmwgPSB1cmxQYXJhbXMuZ2V0KCdpbnN0YW5jZV91cmwnKTtcbiAgICBjb25zdCBzdGF0ZSA9IHVybFBhcmFtcy5nZXQoJ3N0YXRlJyk7XG5cbiAgICBpZiAoc3RhdGUgJiYgJ1VSTFNlYXJjaFBhcmFtcycgaW4gd2luZG93KSB7XG4gICAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHN0YXRlKTtcbiAgICAgIGNvbnN0IG5ld1JlbGF0aXZlUGF0aFF1ZXJ5ID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgaGFzaFBhcnRzLmpvaW4oJyMnKSArICc/JyArIHNlYXJjaFBhcmFtcy50b1N0cmluZygpO1xuICAgICAgaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgJycsIG5ld1JlbGF0aXZlUGF0aFF1ZXJ5KTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke2luc3RhbmNlVXJsfS9zZXJ2aWNlcy9hcGV4cmVzdC9WRUxPQ0VfUFJJU00vdmVsb2NlLWF1dGhgLCB7XG4gICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7YWNjZXNzVG9rZW59YCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXN1bHQ6IHsgdG9rZW46IHN0cmluZzsgc2VydmVyVXJsOiBzdHJpbmcgfSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgIHdpbmRvdy5WRUxPX0FQSSA9IHJlc3VsdC5zZXJ2ZXJVcmw7XG4gICAgd2luZG93LlZFTE9fS0VZID0gcmVzdWx0LnRva2VuO1xuICAgIHdpbmRvdy5PUkdBTklaQVRJT05fSU5TVEFOQ0VfVVJMID0gaW5zdGFuY2VVcmwgPz8gdm9pZCAwO1xuICAgIHdpbmRvdy5PUkdBTklaQVRJT05fVE9LRU4gPSBhY2Nlc3NUb2tlbjtcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0QnlVcmxQYXJhbXMoKTogdm9pZCB7XG4gIGNvbnN0IGhhc2hQYXJ0cyA9IHdpbmRvdy5sb2NhdGlvbi5oYXNoLnNwbGl0KCcjJyk7XG4gIGNvbnN0IGhhc2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGhhc2hQYXJ0cy5wb3AoKSk7XG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gIGNvbnN0IGFwaVVybCA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gIGNvbnN0IHRva2VuID0gaGFzaFBhcmFtcy5nZXQoJ3Rva2VuJykgPz8gc2VhcmNoUGFyYW1zLmdldCgndG9rZW4nKTtcbiAgY29uc3QgbW9kZSA9IGhhc2hQYXJhbXMuZ2V0KCdtb2RlJykgPz8gc2VhcmNoUGFyYW1zLmdldCgnbW9kZScpO1xuXG4gIGlmIChtb2RlKSB7XG4gICAgd2luZG93Lk1PREUgPSBtb2RlIGFzIFZsV2luZG93WydNT0RFJ107XG4gIH1cblxuICBpZiAoYXBpVXJsICYmIHRva2VuKSB7XG4gICAgd2luZG93LlZFTE9fQVBJID0gYXBpVXJsO1xuICAgIHdpbmRvdy5WRUxPX0tFWSA9IHRva2VuO1xuXG4gICAgY29uc3QgZGF0YTogVXJsVG9rZW5EYXRhID0geyB0b2tlbiwgdGltZXN0YW1wOiBEYXRlLm5vdygpIH07XG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShVUkxfVE9LRU5fU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcblxuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHRva2VuRGF0YVN0ciA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oVVJMX1RPS0VOX1NUT1JBR0VfS0VZKTtcbiAgaWYgKHRva2VuRGF0YVN0cikge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0b2tlbkRhdGE6IFVybFRva2VuRGF0YSA9IEpTT04ucGFyc2UodG9rZW5EYXRhU3RyKTtcbiAgICAgIGlmICh0b2tlbkRhdGEudGltZXN0YW1wICsgMTAwMCAqIDM2MDAgPiBEYXRlLm5vdygpKSB7XG4gICAgICAgIHdpbmRvdy5WRUxPX0FQSSA9IGFwaVVybDtcbiAgICAgICAgd2luZG93LlZFTE9fS0VZID0gdG9rZW5EYXRhLnRva2VuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShVUkxfVE9LRU5fU1RPUkFHRV9LRVkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gVG9rZW4gZGF0YSBpcyBjb3JydXB0ZWRcbiAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oVVJMX1RPS0VOX1NUT1JBR0VfS0VZKTtcbiAgICB9XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5pdFhSYXkoKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghd2luZG93LmRvQ2FudmFzQ2FsbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB3aW5kb3cuZG9DYW52YXNDYWxsKCdlbnYnLCBudWxsKTtcbiAgICBjb25zdCByZXN1bHQ6IENhbnZhc0VudlJlc3BvbnNlID0gSlNPTi5wYXJzZShyZXNwb25zZSk7XG5cbiAgICB3aW5kb3cuQVdTX1hSQVlfQUNDRVNTX0tFWV9JRCA9IHJlc3VsdC5BV1NfWFJBWV9BQ0NFU1NfS0VZX0lEO1xuICAgIHdpbmRvdy5BV1NfWFJBWV9SRUdJT04gPSByZXN1bHQuQVdTX1hSQVlfUkVHSU9OO1xuICAgIHdpbmRvdy5BV1NfWFJBWV9TRUNSRVRfQUNDRVNTX0tFWSA9IHJlc3VsdC5BV1NfWFJBWV9TRUNSRVRfQUNDRVNTX0tFWTtcbiAgICB3aW5kb3cuQVdTX1hSQVlfU0VTU0lPTl9UT0tFTiA9IHJlc3VsdC5BV1NfWFJBWV9TRVNTSU9OX1RPS0VOO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLy8gVW5hYmxlIHRvIHJldHJpZXZlIFhSYXkgY3JlZGVudGlhbHNcbiAgfVxufVxuXG5mdW5jdGlvbiBpbml0Q2FudmFzQ2FsbEZuKGFjY2Vzc1Rva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgd2luZG93LmRvQ2FudmFzQ2FsbCA9IGFzeW5jIChlbmRwb2ludDogc3RyaW5nLCBwYXJhbWV0ZXJzOiBzdHJpbmcgfCBudWxsKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHt3aW5kb3cubG9jYXRpb24ub3JpZ2lufS9zZXJ2aWNlcy9hcGV4cmVzdC9WRUxPQ0VfUFJJU00vU2VydmljZVJvdXRlcmAsIHtcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gLFxuICAgICAgICB9LFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgcmVxdWVzdDoge1xuICAgICAgICAgICAgc2VydmljZTogJ0NhbnZhc1Byb3h5Q29udHJvbGxlcicsXG4gICAgICAgICAgICBtZXRob2Q6ICdnZXRDYW52YXNSZXNwb25zZScsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIGVuZHBvaW50OiBlbmRwb2ludCxcbiAgICAgICAgICAgICAgcGFyYW1zOiBwYXJhbWV0ZXJzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5qc29uKCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBpbml0U2FuZGJveENhbGxGbihhY2Nlc3NUb2tlbjogc3RyaW5nKTogdm9pZCB7XG4gIHdpbmRvdy5kb1NhbmRib3hDYWxsID0gYXN5bmMgKGVuZHBvaW50OiBzdHJpbmcsIGJvZHk6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59L3NlcnZpY2VzL2FwZXhyZXN0L1ZFTE9DRV9QUklTTS9TZXJ2aWNlUm91dGVyYCwge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAsXG4gICAgICAgIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICByZXF1ZXN0OiB7XG4gICAgICAgICAgICBzZXJ2aWNlOiAnU2FuZGJveFByb3h5Q29udHJvbGxlcicsXG4gICAgICAgICAgICBtZXRob2Q6ICdnZXRDYW52YXNSZXNwb25zZScsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIGVuZHBvaW50OiBlbmRwb2ludCxcbiAgICAgICAgICAgICAgYm9keTogYm9keSxcbiAgICAgICAgICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH07XG59XG5cbmxldCBleHRlcm5hbFZlbG9jZUNvbmZpZ0xpc3RlbmVyRm46ICh0aGlzOiBXaW5kb3csIGV2OiBNZXNzYWdlRXZlbnQ8YW55PikgPT4gYW55O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFZlbG9jZUNvbmZpZyhjYjogKCkgPT4gdm9pZCwgY29uZmlnPzogTG9hZFZlbG9jZUNvbmZpZ1BhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAvLyBDaGVjayBpZiBhbHJlYWR5IGluaXRpYWxpemVkXG4gIGlmICh3aW5kb3cuVkVMT19LRVkpIHtcbiAgICBhd2FpdCBpbml0WFJheSgpO1xuXG4gICAgY2IoKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoIWNvbmZpZz8uc3VwcHJlc3NMb2NhbENvbmZpZykge1xuICAgIC8vIFRyeSBsb2FkaW5nIGxvY2FsIGNvbmZpZ1xuICAgIGNvbnN0IHsgYWNjZXNzVG9rZW4gfSA9IChhd2FpdCBpbml0TG9jYWxBdXRoKCkpIHx8IHt9O1xuXG4gICAgaWYgKCF3aW5kb3cuZG9DYW52YXNDYWxsICYmIGFjY2Vzc1Rva2VuKSB7XG4gICAgICBpbml0Q2FudmFzQ2FsbEZuKGFjY2Vzc1Rva2VuKTtcbiAgICB9XG5cbiAgICBpZiAoIXdpbmRvdy5kb1NhbmRib3hDYWxsICYmIGFjY2Vzc1Rva2VuKSB7XG4gICAgICBpbml0U2FuZGJveENhbGxGbihhY2Nlc3NUb2tlbik7XG4gICAgfVxuXG4gICAgaWYgKHdpbmRvdy5WRUxPX0tFWSkge1xuICAgICAgY2IoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBhd2FpdCBpbml0T3BlbkF1dGgoKTtcbiAgaWYgKHdpbmRvdy5WRUxPX0tFWSkge1xuICAgIGNiKCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaW5pdEJ5VXJsUGFyYW1zKCk7XG4gIGlmICh3aW5kb3cuVkVMT19LRVkpIHtcbiAgICBjYigpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGF3YWl0IGluaXRYUmF5KCk7XG5cbiAgY29uc3QgcGFyZW50ID0gd2luZG93LnBhcmVudCAmJiB3aW5kb3cgIT09IHdpbmRvdy5wYXJlbnQgPyB3aW5kb3cucGFyZW50IDogd2luZG93Lm9wZW5lcjtcbiAgaWYgKHBhcmVudCkge1xuICAgIC8vIFdhaXQgZm9yIGV4dGVybmFsIGNvbmZpZ1xuICAgIGNvbnNvbGUubG9nKCdXYWl0aW5nIGZvciBjb25maWcgZnJvbSBwYXJlbnQgd2luZG93Jyk7XG5cbiAgICAvLyBjbGVhbnVwXG4gICAgaWYgKGV4dGVybmFsVmVsb2NlQ29uZmlnTGlzdGVuZXJGbikge1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBleHRlcm5hbFZlbG9jZUNvbmZpZ0xpc3RlbmVyRm4pO1xuICAgIH1cblxuICAgIGV4dGVybmFsVmVsb2NlQ29uZmlnTGlzdGVuZXJGbiA9IChldmVudD86IE1lc3NhZ2VFdmVudDxWZWxvY2VNZXNzYWdlPikgPT4ge1xuICAgICAgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09PSAnVkVMT19DT05GSUcnKSB7XG4gICAgICAgIHVwZGF0ZUdsb2JhbENvbmZpZyh7XG4gICAgICAgICAgLi4uZXZlbnQuZGF0YS5jb25maWcsXG4gICAgICAgICAgVkVMT19CQUNLX0ZOOiAocmVjb3JkSWQ6IHN0cmluZyk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgY29uc3QgbXNnOiBWZWxvY2VCYWNrTWVzc2FnZSA9IHsgdHlwZTogJ1ZFTE9fQkFDS19GTicsIGRhdGE6IHsgcmVjb3JkSWQgfSB9O1xuICAgICAgICAgICAgcGFyZW50LnBvc3RNZXNzYWdlKG1zZywgJyonKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIFZFTE9fTkFWSUdBVEVfVE9fQVBQUk9WQUxfUFJPQ0VTU19GTjogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgcGFyZW50LnBvc3RNZXNzYWdlKFxuICAgICAgICAgICAgICA8VmVsb2NlTmF2aWdhdGVUb0FwcHJvdmFsUHJvY2Vzc01lc3NhZ2U+eyB0eXBlOiAnVkVMT19OQVZJR0FURV9UT19BUFBST1ZBTF9QUk9DRVNTX0ZOJyB9LFxuICAgICAgICAgICAgICAnKicsXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKCdDb25maWcgc3VjY2Vzc2Z1bGx5IGxvYWRlZCcpO1xuXG4gICAgICAgIC8vIHJlbW92ZSBsaXN0ZW5lciBhcyBpdCdzIG5vdCBuZWVkZWQgYW55bW9yZVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGV4dGVybmFsVmVsb2NlQ29uZmlnTGlzdGVuZXJGbik7XG5cbiAgICAgICAgY2IoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCBleHRlcm5hbFZlbG9jZUNvbmZpZ0xpc3RlbmVyRm4pO1xuICAgIHBhcmVudC5wb3N0TWVzc2FnZSg8VmVsb2NlUnVudGltZVJlYWR5TWVzc2FnZT57IHR5cGU6ICdWRUxPX1JVTlRJTUVfUkVBRFknIH0sICcqJyk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBObyBleHRlcm5hbCBjb25maWcgZm91bmRcbiAgY2IoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRWZWxvY2VDb25maWcoY2hpbGQ6IFdpbmRvdywgY29uZmlnOiBWbEdsb2JhbENvbmZpZyk6ICgpID0+IHZvaWQge1xuICBjb25zdCBsaXN0ZW5lckZuID0gKGV2ZW50PzogTWVzc2FnZUV2ZW50PFZlbG9jZU1lc3NhZ2U+KSA9PiB7XG4gICAgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09PSAnVkVMT19SVU5USU1FX1JFQURZJykge1xuICAgICAgY29uc3QgbWVzc2FnZTogVmVsb2NlQ29uZmlnTWVzc2FnZSA9IHtcbiAgICAgICAgdHlwZTogJ1ZFTE9fQ09ORklHJyxcbiAgICAgICAgY29uZmlnOiBvbWl0KGNvbmZpZywgLi4uT2JqZWN0LmtleXMobm9uU2VyaWFsaXphYmxlQ29uZmlnUHJvcHMpKSxcbiAgICAgIH07XG5cbiAgICAgIGNoaWxkLnBvc3RNZXNzYWdlKG1lc3NhZ2UsICcqJyk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09PSAnVkVMT19CQUNLX0ZOJykge1xuICAgICAgY29uZmlnLlZFTE9fQkFDS19GTj8uKGV2ZW50LmRhdGEuZGF0YS5yZWNvcmRJZCk7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50Py5kYXRhPy50eXBlID09PSAnVkVMT19OQVZJR0FURV9UT19BUFBST1ZBTF9QUk9DRVNTX0ZOJykge1xuICAgICAgY29uZmlnLlZFTE9fTkFWSUdBVEVfVE9fQVBQUk9WQUxfUFJPQ0VTU19GTj8uKCk7XG4gICAgfVxuICB9O1xuXG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgbGlzdGVuZXJGbik7XG5cbiAgcmV0dXJuICgpID0+IHtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIGxpc3RlbmVyRm4pO1xuICB9O1xufVxuIl19","import { Injectable } from '@angular/core';\nimport { parseJwtSafe } from '../utils';\nimport * as i0 from \"@angular/core\";\nexport class TokenInfoService {\n    constructor() {\n        this.info = parseJwtSafe(window.VELO_KEY ?? '');\n    }\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: TokenInfoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n    static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: TokenInfoService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: TokenInfoService, decorators: [{\n            type: Injectable\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4taW5mby5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2VydmljZXMvdG9rZW4taW5mby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFLeEMsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVrQixTQUFJLEdBQXVCLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBQ2hGOzhHQUZZLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmxXaW5kb3cgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBWZWxvY2VUb2tlbiB9IGZyb20gJy4uL3R5cGVzL2FwaS50eXBlcyc7XG5pbXBvcnQgeyBwYXJzZUp3dFNhZmUgfSBmcm9tICcuLi91dGlscyc7XG5cbmRlY2xhcmUgY29uc3Qgd2luZG93OiBWbFdpbmRvdztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRva2VuSW5mb1NlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgaW5mbzogVmVsb2NlVG9rZW4gfCBudWxsID0gcGFyc2VKd3RTYWZlKHdpbmRvdy5WRUxPX0tFWSA/PyAnJyk7XG59XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SidebarTabsDirective } from './directives';\nimport { IndexToAlphaPipe, OrderByPipe, SearchFilterPipe, ValuesPipe } from './pipes';\nimport { BaseHttpService, FileDownloadService, TokenInfoService, XrayService } from './services';\nimport * as i0 from \"@angular/core\";\nexport class CoreModule {\n    static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n    static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: CoreModule, imports: [CommonModule, SidebarTabsDirective, OrderByPipe, SearchFilterPipe, ValuesPipe, IndexToAlphaPipe], exports: [SidebarTabsDirective, OrderByPipe, SearchFilterPipe, ValuesPipe, IndexToAlphaPipe] }); }\n    static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CoreModule, providers: [BaseHttpService, XrayService, FileDownloadService, TokenInfoService], imports: [CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: CoreModule, decorators: [{\n            type: NgModule,\n            args: [{\n                    imports: [CommonModule, SidebarTabsDirective, OrderByPipe, SearchFilterPipe, ValuesPipe, IndexToAlphaPipe],\n                    providers: [BaseHttpService, XrayService, FileDownloadService, TokenInfoService],\n                    exports: [SidebarTabsDirective, OrderByPipe, SearchFilterPipe, ValuesPipe, IndexToAlphaPipe],\n                }]\n        }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb3JlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBT2pHLE1BQU0sT0FBTyxVQUFVOzhHQUFWLFVBQVU7K0dBQVYsVUFBVSxZQUpYLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixhQUUvRixvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGdCQUFnQjsrR0FFaEYsVUFBVSxhQUhWLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxZQUR0RSxZQUFZOzsyRkFJWCxVQUFVO2tCQUx0QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDO29CQUMxRyxTQUFTLEVBQUUsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDO29CQUNoRixPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDO2lCQUM3RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2lkZWJhclRhYnNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgSW5kZXhUb0FscGhhUGlwZSwgT3JkZXJCeVBpcGUsIFNlYXJjaEZpbHRlclBpcGUsIFZhbHVlc1BpcGUgfSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7IEJhc2VIdHRwU2VydmljZSwgRmlsZURvd25sb2FkU2VydmljZSwgVG9rZW5JbmZvU2VydmljZSwgWHJheVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2lkZWJhclRhYnNEaXJlY3RpdmUsIE9yZGVyQnlQaXBlLCBTZWFyY2hGaWx0ZXJQaXBlLCBWYWx1ZXNQaXBlLCBJbmRleFRvQWxwaGFQaXBlXSxcbiAgcHJvdmlkZXJzOiBbQmFzZUh0dHBTZXJ2aWNlLCBYcmF5U2VydmljZSwgRmlsZURvd25sb2FkU2VydmljZSwgVG9rZW5JbmZvU2VydmljZV0sXG4gIGV4cG9ydHM6IFtTaWRlYmFyVGFic0RpcmVjdGl2ZSwgT3JkZXJCeVBpcGUsIFNlYXJjaEZpbHRlclBpcGUsIFZhbHVlc1BpcGUsIEluZGV4VG9BbHBoYVBpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHt9XG4iXX0=","import { asyncScheduler, concat } from 'rxjs';\nimport { connect, debounceTime, take } from 'rxjs/operators';\nexport function debounceTimeAfter(amount, dueTime, scheduler = asyncScheduler) {\n    return connect(value => concat(value.pipe(take(amount)), value.pipe(debounceTime(dueTime, scheduler))));\n}\nexport function debounceTimeAfterFirst(dueTime, scheduler = asyncScheduler) {\n    return debounceTimeAfter(1, dueTime, scheduler);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UtdGltZS1hZnRlci5vcGVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL29wZXJhdG9ycy9kZWJvdW5jZS10aW1lLWFmdGVyLm9wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUEyQyxNQUFNLE1BQU0sQ0FBQztBQUN2RixPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLE1BQWMsRUFDZCxPQUFlLEVBQ2YsWUFBMkIsY0FBYztJQUV6QyxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUNwQyxPQUFlLEVBQ2YsWUFBMkIsY0FBYztJQUV6QyxPQUFPLGlCQUFpQixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzeW5jU2NoZWR1bGVyLCBjb25jYXQsIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgU2NoZWR1bGVyTGlrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29ubmVjdCwgZGVib3VuY2VUaW1lLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVib3VuY2VUaW1lQWZ0ZXI8VD4oXG4gIGFtb3VudDogbnVtYmVyLFxuICBkdWVUaW1lOiBudW1iZXIsXG4gIHNjaGVkdWxlcjogU2NoZWR1bGVyTGlrZSA9IGFzeW5jU2NoZWR1bGVyLFxuKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgcmV0dXJuIGNvbm5lY3QodmFsdWUgPT4gY29uY2F0KHZhbHVlLnBpcGUodGFrZShhbW91bnQpKSwgdmFsdWUucGlwZShkZWJvdW5jZVRpbWUoZHVlVGltZSwgc2NoZWR1bGVyKSkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYm91bmNlVGltZUFmdGVyRmlyc3Q8VD4oXG4gIGR1ZVRpbWU6IG51bWJlcixcbiAgc2NoZWR1bGVyOiBTY2hlZHVsZXJMaWtlID0gYXN5bmNTY2hlZHVsZXIsXG4pOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4ge1xuICByZXR1cm4gZGVib3VuY2VUaW1lQWZ0ZXIoMSwgZHVlVGltZSwgc2NoZWR1bGVyKTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVsb2NlYXBwcy1jb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy92ZWxvY2VhcHBzLWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i3.XrayService"],"mappings":"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"}