{"version":3,"file":"scripts/@lvflanders/bar-ng-ui/lvflanders-bar-ng-ui-14.min.js","mappings":"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","sources":["webpack://ng-cli/webpack/runtime/create fake namespace object","webpack://ng-cli/../node_modules/postscribe/dist/postscribe.js","webpack://ng-cli/webpack/bootstrap","webpack://ng-cli/webpack/runtime/define property getters","webpack://ng-cli/webpack/runtime/hasOwnProperty shorthand","webpack://ng-cli/webpack/runtime/make namespace object","webpack://ng-cli/external var \"ng.common\"","webpack://ng-cli/external var \"ng.core\"","webpack://ng-cli/external var \"ng.forms\"","webpack://ng-cli/external var \"ng.material.badge\"","webpack://ng-cli/external var \"ng.material.button\"","webpack://ng-cli/external var \"ng.material.card\"","webpack://ng-cli/external var \"ng.material.core\"","webpack://ng-cli/external var \"ng.material.dialog\"","webpack://ng-cli/external var \"ng.material.divider\"","webpack://ng-cli/external var \"ng.material.formField\"","webpack://ng-cli/external var \"ng.material.icon\"","webpack://ng-cli/external var \"ng.material.input\"","webpack://ng-cli/external var \"ng.material.menu\"","webpack://ng-cli/external var \"ng.material.progressBar\"","webpack://ng-cli/external var \"ng.material.toolbar\"","webpack://ng-cli/external var \"ng.material.tooltip\"","webpack://ng-cli/external var \"ng.router\"","webpack://ng-cli/external var \"window[\\\"danielmoncada\\\"][\\\"angular-datetime-picker\\\"]\"","webpack://ng-cli/external var \"window[\\\"ng-select\\\"][\\\"ng-select\\\"]\"","webpack://ng-cli/external var \"window[\\\"date-fns\\\"].locale\"","webpack://ng-cli/external var \"lvflanders.bar.ng.i18n\"","webpack://ng-cli/external var \"lvflanders.bar.shared\"","webpack://ng-cli/external var \"lvflanders.bar.ng.core\"","webpack://ng-cli/external var \"ng.platformBrowser\"","webpack://ng-cli/external var \"rxjs\"","webpack://ng-cli/external var \"rxjs.operators\"","webpack://ng-cli/external var \"window[\\\"date-fns\\\"]\"","webpack://ng-cli/external var \"ng.material.sidenav\"","webpack://ng-cli/external var \"ng.cdk.layout\"","webpack://ng-cli/./node_modules/tslib/tslib.es6.mjs","webpack://ng-cli/external var \"ng.common.http\"","webpack://ng-cli/external var \"ng.material.checkbox\"","webpack://ng-cli/./dist/@lvflanders/bar-ng-ui/fesm2015/lvflanders-bar-ng-ui.mjs","webpack://ng-cli/./cdn/lvflanders-bar-ng-ui.ts"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","/**\n * @file postscribe\n * @description Asynchronously write javascript, even with document.write.\n * @version v2.0.8\n * @see {@link https://krux.github.io/postscribe}\n * @license MIT\n * @author Derek Brans\n * @copyright 2016 Krux Digital, Inc\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"postscribe\"] = factory();\n\telse\n\t\troot[\"postscribe\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _postscribe = __webpack_require__(1);\n\t\n\tvar _postscribe2 = _interopRequireDefault(_postscribe);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tmodule.exports = _postscribe2['default'];\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\texports['default'] = postscribe;\n\t\n\tvar _writeStream = __webpack_require__(2);\n\t\n\tvar _writeStream2 = _interopRequireDefault(_writeStream);\n\t\n\tvar _utils = __webpack_require__(4);\n\t\n\tvar utils = _interopRequireWildcard(_utils);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/**\n\t * A function that intentionally does nothing.\n\t */\n\tfunction doNothing() {}\n\t\n\t/**\n\t * Available options and defaults.\n\t *\n\t * @type {Object}\n\t */\n\tvar OPTIONS = {\n\t /**\n\t * Called when an async script has loaded.\n\t */\n\t afterAsync: doNothing,\n\t\n\t /**\n\t * Called immediately before removing from the write queue.\n\t */\n\t afterDequeue: doNothing,\n\t\n\t /**\n\t * Called sync after a stream's first thread release.\n\t */\n\t afterStreamStart: doNothing,\n\t\n\t /**\n\t * Called after writing buffered document.write calls.\n\t */\n\t afterWrite: doNothing,\n\t\n\t /**\n\t * Allows disabling the autoFix feature of prescribe\n\t */\n\t autoFix: true,\n\t\n\t /**\n\t * Called immediately before adding to the write queue.\n\t */\n\t beforeEnqueue: doNothing,\n\t\n\t /**\n\t * Called before writing a token.\n\t *\n\t * @param {Object} tok The token\n\t */\n\t beforeWriteToken: function beforeWriteToken(tok) {\n\t return tok;\n\t },\n\t\n\t /**\n\t * Called before writing buffered document.write calls.\n\t *\n\t * @param {String} str The string\n\t */\n\t beforeWrite: function beforeWrite(str) {\n\t return str;\n\t },\n\t\n\t /**\n\t * Called when evaluation is finished.\n\t */\n\t done: doNothing,\n\t\n\t /**\n\t * Called when a write results in an error.\n\t *\n\t * @param {Error} e The error\n\t */\n\t error: function error(e) {\n\t throw new Error(e.msg);\n\t },\n\t\n\t\n\t /**\n\t * Whether to let scripts w/ async attribute set fall out of the queue.\n\t */\n\t releaseAsync: false\n\t};\n\t\n\tvar nextId = 0;\n\tvar queue = [];\n\tvar active = null;\n\t\n\tfunction nextStream() {\n\t var args = queue.shift();\n\t if (args) {\n\t var options = utils.last(args);\n\t\n\t options.afterDequeue();\n\t args.stream = runStream.apply(undefined, args);\n\t options.afterStreamStart();\n\t }\n\t}\n\t\n\tfunction runStream(el, html, options) {\n\t active = new _writeStream2['default'](el, options);\n\t\n\t // Identify this stream.\n\t active.id = nextId++;\n\t active.name = options.name || active.id;\n\t postscribe.streams[active.name] = active;\n\t\n\t // Override document.write.\n\t var doc = el.ownerDocument;\n\t\n\t var stash = {\n\t close: doc.close,\n\t open: doc.open,\n\t write: doc.write,\n\t writeln: doc.writeln\n\t };\n\t\n\t function _write(str) {\n\t str = options.beforeWrite(str);\n\t active.write(str);\n\t options.afterWrite(str);\n\t }\n\t\n\t _extends(doc, {\n\t close: doNothing,\n\t open: doNothing,\n\t write: function write() {\n\t for (var _len = arguments.length, str = Array(_len), _key = 0; _key < _len; _key++) {\n\t str[_key] = arguments[_key];\n\t }\n\t\n\t return _write(str.join(''));\n\t },\n\t writeln: function writeln() {\n\t for (var _len2 = arguments.length, str = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n\t str[_key2] = arguments[_key2];\n\t }\n\t\n\t return _write(str.join('') + '\\n');\n\t }\n\t });\n\t\n\t // Override window.onerror\n\t var oldOnError = active.win.onerror || doNothing;\n\t\n\t // This works together with the try/catch around WriteStream::insertScript\n\t // In modern browsers, exceptions in tag scripts go directly to top level\n\t active.win.onerror = function (msg, url, line) {\n\t options.error({ msg: msg + ' - ' + url + ': ' + line });\n\t oldOnError.apply(active.win, [msg, url, line]);\n\t };\n\t\n\t // Write to the stream\n\t active.write(html, function () {\n\t // restore document.write\n\t _extends(doc, stash);\n\t\n\t // restore window.onerror\n\t active.win.onerror = oldOnError;\n\t\n\t options.done();\n\t active = null;\n\t nextStream();\n\t });\n\t\n\t return active;\n\t}\n\t\n\tfunction postscribe(el, html, options) {\n\t if (utils.isFunction(options)) {\n\t options = { done: options };\n\t } else if (options === 'clear') {\n\t queue = [];\n\t active = null;\n\t nextId = 0;\n\t return;\n\t }\n\t\n\t options = utils.defaults(options, OPTIONS);\n\t\n\t // id selector\n\t if (/^#/.test(el)) {\n\t el = window.document.getElementById(el.substr(1));\n\t } else {\n\t el = el.jquery ? el[0] : el;\n\t }\n\t\n\t var args = [el, html, options];\n\t\n\t el.postscribe = {\n\t cancel: function cancel() {\n\t if (args.stream) {\n\t args.stream.abort();\n\t } else {\n\t args[1] = doNothing;\n\t }\n\t }\n\t };\n\t\n\t options.beforeEnqueue(args);\n\t queue.push(args);\n\t\n\t if (!active) {\n\t nextStream();\n\t }\n\t\n\t return el.postscribe;\n\t}\n\t\n\t_extends(postscribe, {\n\t // Streams by name.\n\t streams: {},\n\t // Queue of streams.\n\t queue: queue,\n\t // Expose internal classes.\n\t WriteStream: _writeStream2['default']\n\t});\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _prescribe = __webpack_require__(3);\n\t\n\tvar _prescribe2 = _interopRequireDefault(_prescribe);\n\t\n\tvar _utils = __webpack_require__(4);\n\t\n\tvar utils = _interopRequireWildcard(_utils);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/**\n\t * Turn on to debug how each chunk affected the DOM.\n\t * @type {boolean}\n\t */\n\tvar DEBUG_CHUNK = false;\n\t\n\t/**\n\t * Prefix for data attributes on DOM elements.\n\t * @type {string}\n\t */\n\tvar BASEATTR = 'data-ps-';\n\t\n\t/**\n\t * ID for the style proxy\n\t * @type {string}\n\t */\n\tvar PROXY_STYLE = 'ps-style';\n\t\n\t/**\n\t * ID for the script proxy\n\t * @type {string}\n\t */\n\tvar PROXY_SCRIPT = 'ps-script';\n\t\n\t/**\n\t * Get data attributes\n\t *\n\t * @param {Object} el The DOM element.\n\t * @param {String} name The attribute name.\n\t * @returns {String}\n\t */\n\tfunction getData(el, name) {\n\t var attr = BASEATTR + name;\n\t\n\t var val = el.getAttribute(attr);\n\t\n\t // IE 8 returns a number if it's a number\n\t return !utils.existy(val) ? val : String(val);\n\t}\n\t\n\t/**\n\t * Set data attributes\n\t *\n\t * @param {Object} el The DOM element.\n\t * @param {String} name The attribute name.\n\t * @param {null|*} value The attribute value.\n\t */\n\tfunction setData(el, name) {\n\t var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\t\n\t var attr = BASEATTR + name;\n\t\n\t if (utils.existy(value) && value !== '') {\n\t el.setAttribute(attr, value);\n\t } else {\n\t el.removeAttribute(attr);\n\t }\n\t}\n\t\n\t/**\n\t * Stream static html to an element, where \"static html\" denotes \"html\n\t * without scripts\".\n\t *\n\t * This class maintains a *history of writes devoid of any attributes* or\n\t * \"proxy history\".\n\t *\n\t * Injecting the proxy history into a temporary div has no side-effects,\n\t * other than to create proxy elements for previously written elements.\n\t *\n\t * Given the `staticHtml` of a new write, a `tempDiv`'s innerHTML is set to\n\t * `proxy_history + staticHtml`.\n\t * The *structure* of `tempDiv`'s contents, (i.e., the placement of new nodes\n\t * beside or inside of proxy elements), reflects the DOM structure that would\n\t * have resulted if all writes had been squashed into a single write.\n\t *\n\t * For each descendent `node` of `tempDiv` whose parentNode is a *proxy*,\n\t * `node` is appended to the corresponding *real* element within the DOM.\n\t *\n\t * Proxy elements are mapped to *actual* elements in the DOM by injecting a\n\t * `data-id` attribute into each start tag in `staticHtml`.\n\t *\n\t */\n\t\n\tvar WriteStream = function () {\n\t /**\n\t * Constructor.\n\t *\n\t * @param {Object} root The root element\n\t * @param {?Object} options The options\n\t */\n\t function WriteStream(root) {\n\t var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t _classCallCheck(this, WriteStream);\n\t\n\t this.root = root;\n\t this.options = options;\n\t this.doc = root.ownerDocument;\n\t this.win = this.doc.defaultView || this.doc.parentWindow;\n\t this.parser = new _prescribe2['default']('', { autoFix: options.autoFix });\n\t\n\t // Actual elements by id.\n\t this.actuals = [root];\n\t\n\t // Embodies the \"structure\" of what's been written so far,\n\t // devoid of attributes.\n\t this.proxyHistory = '';\n\t\n\t // Create a proxy of the root element.\n\t this.proxyRoot = this.doc.createElement(root.nodeName);\n\t\n\t this.scriptStack = [];\n\t this.writeQueue = [];\n\t\n\t setData(this.proxyRoot, 'proxyof', 0);\n\t }\n\t\n\t /**\n\t * Writes the given strings.\n\t *\n\t * @param {...String} str The strings to write\n\t */\n\t\n\t\n\t WriteStream.prototype.write = function write() {\n\t var _writeQueue;\n\t\n\t (_writeQueue = this.writeQueue).push.apply(_writeQueue, arguments);\n\t\n\t // Process writes\n\t // When new script gets pushed or pending this will stop\n\t // because new writeQueue gets pushed\n\t while (!this.deferredRemote && this.writeQueue.length) {\n\t var arg = this.writeQueue.shift();\n\t\n\t if (utils.isFunction(arg)) {\n\t this._callFunction(arg);\n\t } else {\n\t this._writeImpl(arg);\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Calls the given function.\n\t *\n\t * @param {Function} fn The function to call\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._callFunction = function _callFunction(fn) {\n\t var tok = { type: 'function', value: fn.name || fn.toString() };\n\t this._onScriptStart(tok);\n\t fn.call(this.win, this.doc);\n\t this._onScriptDone(tok);\n\t };\n\t\n\t /**\n\t * The write implementation\n\t *\n\t * @param {String} html The HTML to write.\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._writeImpl = function _writeImpl(html) {\n\t this.parser.append(html);\n\t\n\t var tok = void 0;\n\t var script = void 0;\n\t var style = void 0;\n\t var tokens = [];\n\t\n\t // stop if we see a script token\n\t while ((tok = this.parser.readToken()) && !(script = utils.isScript(tok)) && !(style = utils.isStyle(tok))) {\n\t tok = this.options.beforeWriteToken(tok);\n\t\n\t if (tok) {\n\t tokens.push(tok);\n\t }\n\t }\n\t\n\t if (tokens.length > 0) {\n\t this._writeStaticTokens(tokens);\n\t }\n\t\n\t if (script) {\n\t this._handleScriptToken(tok);\n\t }\n\t\n\t if (style) {\n\t this._handleStyleToken(tok);\n\t }\n\t };\n\t\n\t /**\n\t * Write contiguous non-script tokens (a chunk)\n\t *\n\t * @param {Array} tokens The tokens\n\t * @returns {{tokens, raw, actual, proxy}|null}\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._writeStaticTokens = function _writeStaticTokens(tokens) {\n\t var chunk = this._buildChunk(tokens);\n\t\n\t if (!chunk.actual) {\n\t // e.g., no tokens, or a noscript that got ignored\n\t return null;\n\t }\n\t\n\t chunk.html = this.proxyHistory + chunk.actual;\n\t this.proxyHistory += chunk.proxy;\n\t this.proxyRoot.innerHTML = chunk.html;\n\t\n\t if (DEBUG_CHUNK) {\n\t chunk.proxyInnerHTML = this.proxyRoot.innerHTML;\n\t }\n\t\n\t this._walkChunk();\n\t\n\t if (DEBUG_CHUNK) {\n\t chunk.actualInnerHTML = this.root.innerHTML;\n\t }\n\t\n\t return chunk;\n\t };\n\t\n\t /**\n\t * Build a chunk.\n\t *\n\t * @param {Array} tokens The tokens to use.\n\t * @returns {{tokens: *, raw: string, actual: string, proxy: string}}\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._buildChunk = function _buildChunk(tokens) {\n\t var nextId = this.actuals.length;\n\t\n\t // The raw html of this chunk.\n\t var raw = [];\n\t\n\t // The html to create the nodes in the tokens (with id's injected).\n\t var actual = [];\n\t\n\t // Html that can later be used to proxy the nodes in the tokens.\n\t var proxy = [];\n\t\n\t var len = tokens.length;\n\t for (var i = 0; i < len; i++) {\n\t var tok = tokens[i];\n\t var tokenRaw = tok.toString();\n\t\n\t raw.push(tokenRaw);\n\t\n\t if (tok.attrs) {\n\t // tok.attrs <==> startTag or atomicTag or cursor\n\t // Ignore noscript tags. They are atomic, so we don't have to worry about children.\n\t if (!/^noscript$/i.test(tok.tagName)) {\n\t var id = nextId++;\n\t\n\t // Actual: inject id attribute: replace '>' at end of start tag with id attribute + '>'\n\t actual.push(tokenRaw.replace(/(\\/?>)/, ' ' + BASEATTR + 'id=' + id + ' $1'));\n\t\n\t // Don't proxy scripts: they have no bearing on DOM structure.\n\t if (tok.attrs.id !== PROXY_SCRIPT && tok.attrs.id !== PROXY_STYLE) {\n\t // Proxy: strip all attributes and inject proxyof attribute\n\t proxy.push(\n\t // ignore atomic tags (e.g., style): they have no \"structural\" effect\n\t tok.type === 'atomicTag' ? '' : '<' + tok.tagName + ' ' + BASEATTR + 'proxyof=' + id + (tok.unary ? ' />' : '>'));\n\t }\n\t }\n\t } else {\n\t // Visit any other type of token\n\t // Actual: append.\n\t actual.push(tokenRaw);\n\t\n\t // Proxy: append endTags. Ignore everything else.\n\t proxy.push(tok.type === 'endTag' ? tokenRaw : '');\n\t }\n\t }\n\t\n\t return {\n\t tokens: tokens,\n\t raw: raw.join(''),\n\t actual: actual.join(''),\n\t proxy: proxy.join('')\n\t };\n\t };\n\t\n\t /**\n\t * Walk the chunks.\n\t *\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._walkChunk = function _walkChunk() {\n\t var node = void 0;\n\t var stack = [this.proxyRoot];\n\t\n\t // use shift/unshift so that children are walked in document order\n\t while (utils.existy(node = stack.shift())) {\n\t var isElement = node.nodeType === 1;\n\t var isProxy = isElement && getData(node, 'proxyof');\n\t\n\t // Ignore proxies\n\t if (!isProxy) {\n\t if (isElement) {\n\t // New actual element: register it and remove the the id attr.\n\t this.actuals[getData(node, 'id')] = node;\n\t setData(node, 'id');\n\t }\n\t\n\t // Is node's parent a proxy?\n\t var parentIsProxyOf = node.parentNode && getData(node.parentNode, 'proxyof');\n\t if (parentIsProxyOf) {\n\t // Move node under actual parent.\n\t this.actuals[parentIsProxyOf].appendChild(node);\n\t }\n\t }\n\t\n\t // prepend childNodes to stack\n\t stack.unshift.apply(stack, utils.toArray(node.childNodes));\n\t }\n\t };\n\t\n\t /**\n\t * Handles Script tokens\n\t *\n\t * @param {Object} tok The token\n\t */\n\t\n\t\n\t WriteStream.prototype._handleScriptToken = function _handleScriptToken(tok) {\n\t var _this = this;\n\t\n\t var remainder = this.parser.clear();\n\t\n\t if (remainder) {\n\t // Write remainder immediately behind this script.\n\t this.writeQueue.unshift(remainder);\n\t }\n\t\n\t tok.src = tok.attrs.src || tok.attrs.SRC;\n\t\n\t tok = this.options.beforeWriteToken(tok);\n\t if (!tok) {\n\t // User has removed this token\n\t return;\n\t }\n\t\n\t if (tok.src && this.scriptStack.length) {\n\t // Defer this script until scriptStack is empty.\n\t // Assumption 1: This script will not start executing until\n\t // scriptStack is empty.\n\t this.deferredRemote = tok;\n\t } else {\n\t this._onScriptStart(tok);\n\t }\n\t\n\t // Put the script node in the DOM.\n\t this._writeScriptToken(tok, function () {\n\t _this._onScriptDone(tok);\n\t });\n\t };\n\t\n\t /**\n\t * Handles style tokens\n\t *\n\t * @param {Object} tok The token\n\t */\n\t\n\t\n\t WriteStream.prototype._handleStyleToken = function _handleStyleToken(tok) {\n\t var remainder = this.parser.clear();\n\t\n\t if (remainder) {\n\t // Write remainder immediately behind this style.\n\t this.writeQueue.unshift(remainder);\n\t }\n\t\n\t tok.type = tok.attrs.type || tok.attrs.TYPE || 'text/css';\n\t\n\t tok = this.options.beforeWriteToken(tok);\n\t\n\t if (tok) {\n\t // Put the style node in the DOM.\n\t this._writeStyleToken(tok);\n\t }\n\t\n\t if (remainder) {\n\t this.write();\n\t }\n\t };\n\t\n\t /**\n\t * Build a style and insert it into the DOM.\n\t *\n\t * @param {Object} tok The token\n\t */\n\t\n\t\n\t WriteStream.prototype._writeStyleToken = function _writeStyleToken(tok) {\n\t var el = this._buildStyle(tok);\n\t\n\t this._insertCursor(el, PROXY_STYLE);\n\t\n\t // Set content\n\t if (tok.content) {\n\t if (el.styleSheet && !el.sheet) {\n\t el.styleSheet.cssText = tok.content;\n\t } else {\n\t el.appendChild(this.doc.createTextNode(tok.content));\n\t }\n\t }\n\t };\n\t\n\t /**\n\t * Build a style element from an atomic style token.\n\t *\n\t * @param {Object} tok The token\n\t * @returns {Element}\n\t */\n\t\n\t\n\t WriteStream.prototype._buildStyle = function _buildStyle(tok) {\n\t var el = this.doc.createElement(tok.tagName);\n\t\n\t el.setAttribute('type', tok.type);\n\t\n\t // Set attributes\n\t utils.eachKey(tok.attrs, function (name, value) {\n\t el.setAttribute(name, value);\n\t });\n\t\n\t return el;\n\t };\n\t\n\t /**\n\t * Append a span to the stream. That span will act as a cursor\n\t * (i.e. insertion point) for the element.\n\t *\n\t * @param {Object} el The element\n\t * @param {string} which The type of proxy element\n\t */\n\t\n\t\n\t WriteStream.prototype._insertCursor = function _insertCursor(el, which) {\n\t this._writeImpl('');\n\t\n\t var cursor = this.doc.getElementById(which);\n\t\n\t if (cursor) {\n\t cursor.parentNode.replaceChild(el, cursor);\n\t }\n\t };\n\t\n\t /**\n\t * Called when a script is started.\n\t *\n\t * @param {Object} tok The token\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._onScriptStart = function _onScriptStart(tok) {\n\t tok.outerWrites = this.writeQueue;\n\t this.writeQueue = [];\n\t this.scriptStack.unshift(tok);\n\t };\n\t\n\t /**\n\t * Called when a script is done.\n\t *\n\t * @param {Object} tok The token\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._onScriptDone = function _onScriptDone(tok) {\n\t // Pop script and check nesting.\n\t if (tok !== this.scriptStack[0]) {\n\t this.options.error({ msg: 'Bad script nesting or script finished twice' });\n\t return;\n\t }\n\t\n\t this.scriptStack.shift();\n\t\n\t // Append outer writes to queue and process them.\n\t this.write.apply(this, tok.outerWrites);\n\t\n\t // Check for pending remote\n\t\n\t // Assumption 2: if remote_script1 writes remote_script2 then\n\t // the we notice remote_script1 finishes before remote_script2 starts.\n\t // I think this is equivalent to assumption 1\n\t if (!this.scriptStack.length && this.deferredRemote) {\n\t this._onScriptStart(this.deferredRemote);\n\t this.deferredRemote = null;\n\t }\n\t };\n\t\n\t /**\n\t * Build a script and insert it into the DOM.\n\t * Done is called once script has executed.\n\t *\n\t * @param {Object} tok The token\n\t * @param {Function} done The callback when complete\n\t */\n\t\n\t\n\t WriteStream.prototype._writeScriptToken = function _writeScriptToken(tok, done) {\n\t var el = this._buildScript(tok);\n\t var asyncRelease = this._shouldRelease(el);\n\t var afterAsync = this.options.afterAsync;\n\t\n\t if (tok.src) {\n\t // Fix for attribute \"SRC\" (capitalized). IE does not recognize it.\n\t el.src = tok.src;\n\t this._scriptLoadHandler(el, !asyncRelease ? function () {\n\t done();\n\t afterAsync();\n\t } : afterAsync);\n\t }\n\t\n\t try {\n\t this._insertCursor(el, PROXY_SCRIPT);\n\t if (!el.src || asyncRelease) {\n\t done();\n\t }\n\t } catch (e) {\n\t this.options.error(e);\n\t done();\n\t }\n\t };\n\t\n\t /**\n\t * Build a script element from an atomic script token.\n\t *\n\t * @param {Object} tok The token\n\t * @returns {Element}\n\t */\n\t\n\t\n\t WriteStream.prototype._buildScript = function _buildScript(tok) {\n\t var el = this.doc.createElement(tok.tagName);\n\t\n\t // Set attributes\n\t utils.eachKey(tok.attrs, function (name, value) {\n\t el.setAttribute(name, value);\n\t });\n\t\n\t // Set content\n\t if (tok.content) {\n\t el.text = tok.content;\n\t }\n\t\n\t return el;\n\t };\n\t\n\t /**\n\t * Setup the script load handler on an element.\n\t *\n\t * @param {Object} el The element\n\t * @param {Function} done The callback\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._scriptLoadHandler = function _scriptLoadHandler(el, done) {\n\t function cleanup() {\n\t el = el.onload = el.onreadystatechange = el.onerror = null;\n\t }\n\t\n\t var error = this.options.error;\n\t\n\t function success() {\n\t cleanup();\n\t if (done != null) {\n\t done();\n\t }\n\t done = null;\n\t }\n\t\n\t function failure(err) {\n\t cleanup();\n\t error(err);\n\t if (done != null) {\n\t done();\n\t }\n\t done = null;\n\t }\n\t\n\t function reattachEventListener(el, evt) {\n\t var handler = el['on' + evt];\n\t if (handler != null) {\n\t el['_on' + evt] = handler;\n\t }\n\t }\n\t\n\t reattachEventListener(el, 'load');\n\t reattachEventListener(el, 'error');\n\t\n\t _extends(el, {\n\t onload: function onload() {\n\t if (el._onload) {\n\t try {\n\t el._onload.apply(this, Array.prototype.slice.call(arguments, 0));\n\t } catch (err) {\n\t failure({ msg: 'onload handler failed ' + err + ' @ ' + el.src });\n\t }\n\t }\n\t success();\n\t },\n\t onerror: function onerror() {\n\t if (el._onerror) {\n\t try {\n\t el._onerror.apply(this, Array.prototype.slice.call(arguments, 0));\n\t } catch (err) {\n\t failure({ msg: 'onerror handler failed ' + err + ' @ ' + el.src });\n\t return;\n\t }\n\t }\n\t failure({ msg: 'remote script failed ' + el.src });\n\t },\n\t onreadystatechange: function onreadystatechange() {\n\t if (/^(loaded|complete)$/.test(el.readyState)) {\n\t success();\n\t }\n\t }\n\t });\n\t };\n\t\n\t /**\n\t * Determines whether to release.\n\t *\n\t * @param {Object} el The element\n\t * @returns {boolean}\n\t * @private\n\t */\n\t\n\t\n\t WriteStream.prototype._shouldRelease = function _shouldRelease(el) {\n\t var isScript = /^script$/i.test(el.nodeName);\n\t return !isScript || !!(this.options.releaseAsync && el.src && el.hasAttribute('async'));\n\t };\n\t\n\t return WriteStream;\n\t}();\n\t\n\texports['default'] = WriteStream;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * @file prescribe\n\t * @description Tiny, forgiving HTML parser\n\t * @version vundefined\n\t * @see {@link https://github.com/krux/prescribe/}\n\t * @license MIT\n\t * @author Derek Brans\n\t * @copyright 2016 Krux Digital, Inc\n\t */\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif(true)\n\t\t\tmodule.exports = factory();\n\t\telse if(typeof define === 'function' && define.amd)\n\t\t\tdefine([], factory);\n\t\telse if(typeof exports === 'object')\n\t\t\texports[\"Prescribe\"] = factory();\n\t\telse\n\t\t\troot[\"Prescribe\"] = factory();\n\t})(this, function() {\n\treturn /******/ (function(modules) { // webpackBootstrap\n\t/******/ \t// The module cache\n\t/******/ \tvar installedModules = {};\n\t\n\t/******/ \t// The require function\n\t/******/ \tfunction __webpack_require__(moduleId) {\n\t\n\t/******/ \t\t// Check if module is in cache\n\t/******/ \t\tif(installedModules[moduleId])\n\t/******/ \t\t\treturn installedModules[moduleId].exports;\n\t\n\t/******/ \t\t// Create a new module (and put it into the cache)\n\t/******/ \t\tvar module = installedModules[moduleId] = {\n\t/******/ \t\t\texports: {},\n\t/******/ \t\t\tid: moduleId,\n\t/******/ \t\t\tloaded: false\n\t/******/ \t\t};\n\t\n\t/******/ \t\t// Execute the module function\n\t/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t/******/ \t\t// Flag the module as loaded\n\t/******/ \t\tmodule.loaded = true;\n\t\n\t/******/ \t\t// Return the exports of the module\n\t/******/ \t\treturn module.exports;\n\t/******/ \t}\n\t\n\t\n\t/******/ \t// expose the modules object (__webpack_modules__)\n\t/******/ \t__webpack_require__.m = modules;\n\t\n\t/******/ \t// expose the module cache\n\t/******/ \t__webpack_require__.c = installedModules;\n\t\n\t/******/ \t// __webpack_public_path__\n\t/******/ \t__webpack_require__.p = \"\";\n\t\n\t/******/ \t// Load entry module and return exports\n\t/******/ \treturn __webpack_require__(0);\n\t/******/ })\n\t/************************************************************************/\n\t/******/ ([\n\t/* 0 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t'use strict';\n\t\n\t\tvar _HtmlParser = __webpack_require__(1);\n\t\n\t\tvar _HtmlParser2 = _interopRequireDefault(_HtmlParser);\n\t\n\t\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t\tmodule.exports = _HtmlParser2['default'];\n\t\n\t/***/ },\n\t/* 1 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t'use strict';\n\t\n\t\texports.__esModule = true;\n\t\n\t\tvar _supports = __webpack_require__(2);\n\t\n\t\tvar supports = _interopRequireWildcard(_supports);\n\t\n\t\tvar _streamReaders = __webpack_require__(3);\n\t\n\t\tvar streamReaders = _interopRequireWildcard(_streamReaders);\n\t\n\t\tvar _fixedReadTokenFactory = __webpack_require__(6);\n\t\n\t\tvar _fixedReadTokenFactory2 = _interopRequireDefault(_fixedReadTokenFactory);\n\t\n\t\tvar _utils = __webpack_require__(5);\n\t\n\t\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\t\n\t\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t\t/**\n\t\t * Detection regular expressions.\n\t\t *\n\t\t * Order of detection matters: detection of one can only\n\t\t * succeed if detection of previous didn't\n\t\n\t\t * @type {Object}\n\t\t */\n\t\tvar detect = {\n\t\t comment: /^');\n\t\t if (index >= 0) {\n\t\t return new _tokens.CommentToken(stream.substr(4, index - 1), index + 3);\n\t\t }\n\t\t}\n\t\n\t\t/**\n\t\t * Reads non-tag characters.\n\t\t *\n\t\t * @param {string} stream The input stream\n\t\t * @returns {CharsToken}\n\t\t */\n\t\tfunction chars(stream) {\n\t\t var index = stream.indexOf('<');\n\t\t return new _tokens.CharsToken(index >= 0 ? index : stream.length);\n\t\t}\n\t\n\t\t/**\n\t\t * Reads start tag token.\n\t\t *\n\t\t * @param {string} stream The input stream\n\t\t * @returns {StartTagToken}\n\t\t */\n\t\tfunction startTag(stream) {\n\t\t var endTagIndex = stream.indexOf('>');\n\t\t if (endTagIndex !== -1) {\n\t\t var match = stream.match(REGEXES.startTag);\n\t\t if (match) {\n\t\t var _ret = function () {\n\t\t var attrs = {};\n\t\t var booleanAttrs = {};\n\t\t var rest = match[2];\n\t\n\t\t match[2].replace(REGEXES.attr, function (match, name) {\n\t\t if (!(arguments[2] || arguments[3] || arguments[4] || arguments[5])) {\n\t\t attrs[name] = '';\n\t\t } else if (arguments[5]) {\n\t\t attrs[arguments[5]] = '';\n\t\t booleanAttrs[arguments[5]] = true;\n\t\t } else {\n\t\t attrs[name] = arguments[2] || arguments[3] || arguments[4] || REGEXES.fillAttr.test(name) && name || '';\n\t\t }\n\t\n\t\t rest = rest.replace(match, '');\n\t\t });\n\t\n\t\t return {\n\t\t v: new _tokens.StartTagToken(match[1], match[0].length, attrs, booleanAttrs, !!match[3], rest.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, ''))\n\t\t };\n\t\t }();\n\t\n\t\t if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n\t\t }\n\t\t }\n\t\t}\n\t\n\t\t/**\n\t\t * Reads atomic tag token.\n\t\t *\n\t\t * @param {string} stream The input stream\n\t\t * @returns {AtomicTagToken}\n\t\t */\n\t\tfunction atomicTag(stream) {\n\t\t var start = startTag(stream);\n\t\t if (start) {\n\t\t var rest = stream.slice(start.length);\n\t\t // for optimization, we check first just for the end tag\n\t\t if (rest.match(new RegExp('<\\/\\\\s*' + start.tagName + '\\\\s*>', 'i'))) {\n\t\t // capturing the content is inefficient, so we do it inside the if\n\t\t var match = rest.match(new RegExp('([\\\\s\\\\S]*?)<\\/\\\\s*' + start.tagName + '\\\\s*>', 'i'));\n\t\t if (match) {\n\t\t return new _tokens.AtomicTagToken(start.tagName, match[0].length + start.length, start.attrs, start.booleanAttrs, match[1]);\n\t\t }\n\t\t }\n\t\t }\n\t\t}\n\t\n\t\t/**\n\t\t * Reads an end tag token.\n\t\t *\n\t\t * @param {string} stream The input stream\n\t\t * @returns {EndTagToken}\n\t\t */\n\t\tfunction endTag(stream) {\n\t\t var match = stream.match(REGEXES.endTag);\n\t\t if (match) {\n\t\t return new _tokens.EndTagToken(match[1], match[0].length);\n\t\t }\n\t\t}\n\t\n\t/***/ },\n\t/* 4 */\n\t/***/ function(module, exports, __webpack_require__) {\n\t\n\t\t'use strict';\n\t\n\t\texports.__esModule = true;\n\t\texports.EndTagToken = exports.AtomicTagToken = exports.StartTagToken = exports.TagToken = exports.CharsToken = exports.CommentToken = exports.Token = undefined;\n\t\n\t\tvar _utils = __webpack_require__(5);\n\t\n\t\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t\t/**\n\t\t * Token is a base class for all token types parsed. Note we don't actually\n\t\t * use intheritance due to IE8's non-existent ES5 support.\n\t\t */\n\t\tvar Token =\n\t\t/**\n\t\t * Constructor.\n\t\t *\n\t\t * @param {string} type The type of the Token.\n\t\t * @param {Number} length The length of the Token text.\n\t\t */\n\t\texports.Token = function Token(type, length) {\n\t\t _classCallCheck(this, Token);\n\t\n\t\t this.type = type;\n\t\t this.length = length;\n\t\t this.text = '';\n\t\t};\n\t\n\t\t/**\n\t\t * CommentToken represents comment tags.\n\t\t */\n\t\n\t\n\t\tvar CommentToken = exports.CommentToken = function () {\n\t\t /**\n\t\t * Constructor.\n\t\t *\n\t\t * @param {string} content The content of the comment\n\t\t * @param {Number} length The length of the Token text.\n\t\t */\n\t\t function CommentToken(content, length) {\n\t\t _classCallCheck(this, CommentToken);\n\t\n\t\t this.type = 'comment';\n\t\t this.length = length || (content ? content.length : 0);\n\t\t this.text = '';\n\t\t this.content = content;\n\t\t }\n\t\n\t\t CommentToken.prototype.toString = function toString() {\n\t\t return '\\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i4.MatButton, selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]\", inputs: [\"disabled\", \"disableRipple\", \"color\"], exportAs: [\"matButton\"] }, { kind: \"directive\", type: i6.MatTooltip, selector: \"[matTooltip]\", exportAs: [\"matTooltip\"] }, { kind: \"directive\", type: i6$1.MatBadge, selector: \"[matBadge]\", inputs: [\"matBadgeDisabled\", \"matBadgeColor\", \"matBadgeOverlap\", \"matBadgePosition\", \"matBadge\", \"matBadgeDescription\", \"matBadgeSize\", \"matBadgeHidden\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarActionButtonComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-action-button', template: \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ content | async }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { item: [{\r\n type: Input\r\n }], zeroWhiteLineIfHidden: [{\r\n type: Input\r\n }] } });\n\nconst BAR_BANNER_IMAGE = {\r\n BIET: 'data:image/png;base64,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',\r\n BOOM: 'data:image/png;base64,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',\r\n KOE: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYoAAAEXCAYAAACzhgONAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAQtiSURBVHgB7L0HuOxVdfc/c+EiYkMCURQREBVrxK6AghV7BQsWsCZG0WBiN+L7KsbYezf2goiKDRVQsYACKooFbICCKCJEQaTcO//1nZzPeT9n8ZtzD3AMF/93Pc88M/Mru6y99up77/FoHayDdTAP+++//wYbbrjhVU855ZQr/Pa3vz3nvve97zmHH374db7+9a9vPJlMzj/wwAN/OB6PJ6PLAKoNV6m2Xf33v//9BR/84Ac3rHZs96tf/Wqz9dZb75z6/CHPrFy58i8bbLDBede//vXP22abbX579atf/czddtttdW9z9WX8wx/+8Br1c8vTTz/9/E033fRP9cw5ufejH/3oD7vvvvv5s9px3HHHbXLBBRekzCtVOStXrVp1yq1vfesL1tT+1PmVr3xlvfzeZZddLsz3vvvuu+JFL3rR6Lvf/e7frVixYoOTTjrpeuedd9769XvF+uuvf52qY8O//OUv51144YXrr169+ur12aKurV91nlf9vFIV8edqy4l1/azqw+nnn3/+X+q9a5111llXqXf+oZ7d+Jxzztm8vq9f71yx8HRBFf3Lasvqeu6XV7ziFVfV+3+u/7+90pWutGHer/c2qrJPvNrVrnZ+rv/xj3/81c1udrPfp5+f+cxnVlWbVxedrDeH19DMisLXqtHfMIxH62Ad/I1BGNIxxxyzfjGYDX/3u99tUIzi6sUQbl/fNykmcd6f/vSnM4rhX/W0007bqP6fXgzgmn/+8583LQZxg2JSt6j/V64yRsUELizGcmExkg1Hc3OlGPUZxUR+U9f/WJ/jNttssy/d8IY3/FUJk1N32GGHq1d9V9144403+8UvfrHhVa5ylQ3+/u///txqxxVL6Iyvc53r/PE3v/nNT+v6hWeeeeaNzzjjjNtX/VeucsK0JlX/uOoeF7P/Xf2uJkw2Pvfcc29VTPA69X+T+r5C3d8g7aj3Rnk+v8Os8qn7C37XM6vr85cq78/1ff4VrnCFP1Vd59UrVy0meJWHPvShV696V9TvUTHIlDeqto5KuPwhwqg+v636V1R/R9WnST3396n6yle+8iZVznpV7qhwOfrlL3/5xyrnjMLxGcWsL9xkk03OLzxWM8YbVTu2Sv+q/gsiWKr9G9ZnVGPxl7Sx+rhB/V9d5UboTNL/en7afvqT//SZ/lZ9C+6n7bmWZzJ21bbJ/zw6j5dJflN+nskn7wG5PzfuE+pPeel/8FPwxzSj6lld763k/Xo+7T+tyv5dPXtS4epbhYsv1/snH3vssX+MYBldzmGdoFgHlwhKm1rv2te+9lWOP/741ZmUNaHWK+awupjRivvd736rDj744POe8pSnrN55551XDWngYeYnnnjiFQ477LCVxVjCd9YPc6zPhb/+9a/P32qrrTYKE4qWWc9euybdJvXa9er/hnPa4FUzSYuJh7+sVxP5wmrHhnUt96fv1DPXqMm7af3est6/YiZ9aYfj+mTiT/7whz+MihmOvv/9749TF8wjDCMAIwr4O88YwpCjxYcBFoSZr4Bh82y+U38Y9uR/IAxyzHO93Dw7VL8h9ymb7/4c91Je7pnZbr311tP+B481dvOMMYw0jDH9MTOGCV/zmtccPfrRj57+z/u5FmZaWvy0rBKOo2233XZUtDB9N9dgqiV4pmVTViAMPp8InlxLW0IL4Cd10/Y8x39+B1K/cZW6ci99QDAUrUyfyz0EAWOeex3vc+M5bVc+4Dzv517eo5x86lqEUYR9nl9V9f6wrh9R+Phy9fmYsvBOLcvrz6PLIawTFP8/hdICN/zmN795xWLWG/zgBz+4XpndVy8XxKalEY+LSa8qAv9dabylaP95VQmEaI8XnnDCCatLg75iPbdtacQ7FCP4h5r4UX2jLV65ij2vNO7169loXL+r/+fW57TSoE+t8jITJ1e96lXPLe36SlXmDR7+8IdvXprl39U7V6wyNjz77LMvKOY9Kab9u5pkG9ek3ajq2KQYwlSSZPIyYQMwG5jgHAOJ0BqHiZgJVx3zkzzfYQwwzQib6s+43B7RdON6GZVmPIqmXfgZnXzyyVPGQH3SPOfbwn+u0S5+83+ImXMdxkn5vS4Lki6s+v8OswSO25w+Dgka1x083uY2txnd+MY3HtW4jmo8p1YI1kgEQY3jVBiU5THFYb4DCKKNNtoIoTkdq4wpVkTaABMGf7mX8cy1LhzyG8FhHCAceBbhkTJdB0Ih9MAYI9gk3KfXsFq4b2FH243nOXqbzI3xH6qf3yx8fKzwdOQee+zxs6B3dDmBdYLibxze9ra3rSzmftVi+tHAb1CTe+v63rS0tlsVwW5VPuPNym1yrbgxYApMaBjwHExN+fxgQgX4DvCeGd38y43p5VOCYlLumnEYTN4Nk4bR5FqeKQE2ZTT5hDGgdQasaZpBUw9CBW0Y5mANPt9hamioYRhpS96JRpz2HHrooaNyGY0KV4OWRRccQ9q/8eB2LgZ+ZkgQ9PqHwHV0HC0F3Ley/EYPfOADR1tuueV0fCIkMia5jwVSisXUIkBYwJzzbMrg+Qgcxi6/g28EBuNpOmPsAwgNC4neHwRExjLv5f20i+dwOWHpQAPQCNehB+gH4eBr9CtgK6xbKhJGvy88HVwuqrdvv/32Ry4lvnNZw9+coEhw7La3ve3KG93oRuMyreOPvdxI7eWEo48+emUxtvsVYT6pJtYNi3A3LQKe+t7R6Ob8y6OPfOQj82b2mjRTYDGmiDbXGZjfyWT/p3/6p9E//MM/TK/BaPLN5AzkuUzC8vkuYCKUw4R13XZRcC+TPoyffgJmDLQX/3fuhbmUzz7B1skLXvCCMe0COjPveJnF7Lsg7bjsbquhOhd7fynX+71ZfWEM9tprr9H1rne9eSEc/ITJB68ZMxhuXHvBG33M71zPOxlHu8BwO2EBcs2Cg3HM/7FiMLibeNcuI9ME9xFaAbv1cB0hPBj7CENcV2k/Yw/NgD+UiuAieMC1RlsoC+Ur784pQxcUbn5aytCH6v337r333r8eraXwNyEoPvzhD1+rJPQ2NUB3K/fInU899dQN6//5NXAnVQDxK1tsscXhd7rTnU66PEjuZYDxG97wht3LPfQv1f9blia3Ek3MpnauoREddNBBU60ZBg8MMaJZWqwZpCdpf4f/N7jBDUbPfe5z55lE9/2aSTLRMxlhYLZcKNfuCT4BykbLxHUQsIDM9eCl+7c/+tGPBj+TuOV4dpYgdF+Nw1laf39+CJYqvIfeG9K2Z8HQc2HGsepuf/vbj+5+97tPr4XZw7jDHMEZGnisCpgszDfCAu06ZaKshKnC8HHn5L8FCcwYwRFgbByvQGlgfOw6suCDduYC0Rd5HkUFhp9vBB/9QRmhfQ6kY50w7/Iu79B2cBOLtSzpVdXno6ov3y8a/2x9f/nxj3/8n0ZrEVyuBUUNyooSEo8uzfhfC+nb1IBcsXzc4/iUo9VkoMq8C6H/uhjmj+v7c0XkXy3J/b3R36ClUbi4TrlIXlz4eFS5mFbiG7YmnkmYSZAJHsjvI488cvSOd7xj/v8sGGJqi7kxLDQ6w6og9+hJT3rS/GSHYaP1EWj0O0xEmAMuIgsHMwO7H+wSsNsB5sBzFgB5P7h52cteNrJbrvfxkjLyWTgDFhPaayrj4rqX+PbvzJ8wzR133HF03/ved1pmhETiDjBGGD5xn3wiJMIcscjAPxZH/qOB241IvQghxpXyUxfCHzqx1TgkwCnPsQVbIVZMuqWA4HNMw3WkTSgn6U8A6yTtd5wM2iVxwO1FEM0J1z9Xnw4tHH+8eNanHvSgB501WgvgcisoDjnkkBuUhvcfNZD3qQFJBskoWSwx6eLrDvLjF4UYM1AZjFgZ9f/geu/Fz3/+838z+huAT33qU9f42c9+tmf18bHVtxtFGPAhYwPNLwCzg6AzGY455pjRG9/4xqmGMwtmuUAWg858mMTxd7/+9a+ftsuTKMBYOU3STN8ZPDABtE67omAwtNVWhBmKGYuDmz//+c9Hb3/726fuuaUy3UsrNDqTt2U1Hs+OV/QyZpXn62ZiFrB8B0/B7Z577jm1AIk1hGGbthwYJqiNYMi1/EeIIDxg8mGwMFzqc1yiC848jzXc+2vXk1Nqe99h7jB74gwWHAg+6MYZUl1pQHFJe6FF+E7Ki3DNswgI10EiAPewyOb687Uq6z23uMUt3se6k8sK1htd/mBcPvXblNb88SLYHeqzHtoHA5gBi9YDQUezzvWY0DWQG9fztz7rrLN2K9/zt48//vhfjS6nsP/++29SLrVnnXbaaW+uCfGg6u/fo3Wlr/lNIDiEiz8ZgnZQsFx0UyH74x//+CITazGXySwY0r490TJZbnKTm0zHCSbSGTnP9Ulrd8GQi4drzkLp/mVPVv5n0qLd5fq73vWueXws1t8hAUpb1uSaWgxmlev/nZGagfZ6yR7K+EMHZroIWhh8vh/84AePilFN30+WUz55J+/jDoIZ2zVEPAHGjuZPG8C740mMqa2IzujtWvI4m9YoGwZO32zdGlfdQkX4OSUY3OMe9XXiElGybFWdcsop0/ThM888cz5tGIXG8RXqpE3B2RyOrlt86j71/tWe85znHPre9773MluPcbkTFB/72MfuVQPxwZLSW5Gn7cBlrmESh6iR7AwMhPt3f/d3VyvJ/cAKen/j2GOPvVwJiy9/+cubVhB474pDvKGI9qGFi6tVv8ZkdyAco8kQPAzg5kGzC0DYIfISvpNvf/vb4yFNuzO8IUbXmfis6/mdiZUxiqbaGaq1t0CfrDAB2sIE6/Vaw0QY8BscoAETcCWoHuv04IMPnmp3iwnKpVhVxpu/O/RAvb97G2wJwHyYA85YgynB2IcsC/CBdgveMj6777779L3QEbEDMnwQNN0qsTYP0/daiczJnuYawK3kBATG1kKDfhBTMo6sYNhSCDgehXDx+DmGEHBmky0kvxO6wW0UWvnv//7v+bgGFlMg1/OJJU3ZfFswBsgCm+vvivKc3DZp5I961KO+ceCBB543ugzgciUoDjjggHvXAPxXIXJzGD4akhfsoLmE0EPgID4fp1luueWWG9X3vW5+85sff8QRR/x0tBZDCYetdtppp13vc5/7PLm03FcUYUZAbBo8WDsk+BjIN/5/THv8xGEMuKK4XoJ1fNhhh81PsK65AV2QrEnjDnQtO99JsyzcX0RzHNIiHfS2Zsg3zM3pi7YiPMnBARYEVgT+80z4t771raNf//rXC+pxP5YiIGbdt9uHNjvVF1oFrC33Z8BLf9/fWAcWjvxGUcDtZ/fgNa5xjdE973nPeY03cydzCgUN7R+3SQDLwJaC22a3Ydeofb3HHbjv1GXSXRlzPw9ubC34WWfmgd++EK8LGmgJ5QNLAnoKbL755vPKKB6N3M9cjDKWRYmBZBwyD3MdBYZ3icHMufdW1PO3PeOMM3a6xz3u8aNDDz30lNH/Mqw/upzA0Ucfven3v//915eP9BpoRyGEDEYgSM9/NMJAnougCGQQwgCcoZHnttlmm82L4D70hCc84T7vfOc7vzZaiyB9/slPfrJrabe3+853vnO/IpxrFmFdwYLRMYgQHS4mNKFAcIXfmEkQIDsDoZoys9AsDNIMvUO3MtYkJAJm6nb9pA1OW0UQoInZR9yzt3qg3BojGh2TP0D/Qwdcd7os5ZZQnsYnzET8zFItiP5st9CcuWWh3IWIraYuRGe1xYJx1jgNjRv1gm9iW7gvQ3u4XuzyCe1hEVgBYZydgWarh+esUdNuvlFyLBASh+QdKzauw9q/6c799/h6zQOCgGcQpvANYmjgP7hJ/CYf2oBFBA+KNRHaiysqAiM0HgFCTCLPIVzym/VFKTPP1nM7llXyiVe96lVPeOYzn/m50f8iXG4ERQmJVxXyrqdVnVMkk8UDYGHgfuI+Wgj53BmcPJPBKC3gKsWM/89BBx10n/vf//6X6RL7D33oQ9d42ctedrfSHPb40pe+dOcitI269cQEcKwBSyLPwvTRdDyBHDi0IMknOMmq21/96lcLzPn+ezzgXloMLCRSZ7Z3qNjKaPvtt5+fhNyzFtzdSrY8fI++sWCOdjJRmeR2Oc1tE3GRbR5yLcFr+muYLOKOW6zfPNtdZ9Q3ZG0FeorvrLI6w7s4YxPoLizez/qRZA3mepgV1oMD3oHQXrIMndbKfQuBlB2GissIZSBM3/EAaBPFr0Oej+Bi3Y2tFoRXVyKcvtrxx7yw0PG6EASnM7hssSJMPT9jJUCfdo9FAKScWBSZZwgkXOXlEl+wZggFUHS3eVkWH3rjG9/40tvf/vZv+t/aEuRy4Xr6j//4j6cXE3x2kIiWg//dhIX5zKBhbeQeUpoYhhlRfhehX/sTn/jECb/4xS9+MPpfhje/+c1XL03hMdXOD5Ww2q8I4SG3ve1tr199WGk3BEKOiQ2jZ9UrllbAGo0DcODDpjkTOnj9xje+MTnxxBMvoqYOCYylgifJXe5yl9Gd73zn6UK7jA+BTrsmAjCs3Me85xm7BLrgoG24VAKkambyks+PQPFmcrgCvvnNb04ncu+/vy8OzMKd3SFmsNRhuoY5+T8fW4nGgcFavMcdF5VjEJSzww47TF2Dc0kgC8aTcqArXEH9Occh7BJzG7FSYL68Z7yY2aIEUUfvN7hw3AZ8w9y7wDcu3RbH9PIOtAjzJiZImfTFyhG44lr6krKD15rr09hFxSEWCGqvz7Crb+57wxKWd//Zz372qHvf+96HlUL529FfGdZai2LnnXfOVsN3KXPtX0ur2SUbkRGYIzhn7YABDdh/C3IxgWG0Gahk+SB4bnjDG648+eST311+89222267V33xi188fPRXgrIWrlR1bVZ175A1Dy960Yt2LCZ2ZZhgsiPYHoF2V+xgctJJJ40T/I0mHk2PeIt9+NZUIUyvUYD4IEpr5rn/6Ec/ehym8elPf3r6jhnjJWGSwFZbbTV6xjOeMdWarD16jGz5ZCyxAPMfXOTDxOlMEsBiwM3Us6bMMO0Cynuf+tSnRqeddtqC/l5cDX0xcD/RNmE09J32OvtrFjio7zZb4JrpmkGjKUMvARg9zBOtFvxw3wpJ7qFVw0B5HuXF6x54H2uBVfO0A7cXCo3pFAuiW1HuJ3XZqnAA3G4t+mlBw3xBMDgWAaCsomQwlt4mhO1KvPUIgj5uKBSlcjFPPRtRTlLXZpttNn2ODDO8B1aW4rr67W9/u2UJjLe85jWvuc+//Mu//FXXW6yVgqKk5DWLUT5j6623fnK5QjYmIO2JlQ8DaGmLsMBFFcg77B0Ec8Kk4/6PfvSjSVkV2Tr4/sccc8wd7nWvez3o85///DdGywQRfCWYtqzPfcqNtnMRwp2qTZv6GSZdIPsKJTCWPYZKQEyyTXWIpyye0be+9a1RmZzB07xVFbCWjT+VMvNNUN/mdd63bz8T9m53u9voC1/4woIgJeWvSbPu2iy/b3WrW03HBLcAqZgBJj5gAWlt0Noo9bh/9DngrUDAiYO2xhkCIxsSZifZ7sdeE6zJwrLF4/8oPrTX/cKF4VgA96yRd1x3gQFzRTvuQnnoffc5/+PqwZ0JLmG21pJzP/QUhodwD5hp00cEA/PXzBaFAEZLu3PNlgXl9WwulAADTJaxpT0IFYQILkzHXhDe1A3/8Y4BAZ5zv60I0Ybuhss8r7jY5DrXuc44v4O/xAqjMKb+pJCDH+JE0EXR7B1LuXlCVffK0V8R1jpB8cAHPnCr44477uUlcXcr98SYQA4WgneaREuE6LqWkPtmQnZV5HpMP1wOZcblUBXK3+x73/ve+8r9c69vf/vbJ4wuIey7774blr/7ehWQ3v6EE07YrRjvneqzMfdnMaHTTz99aopi+dRnzCTO/6RulhCbahz3uc995s1lNL5uhuc+ATUHRL1Rms3+KmdS98ZofLOYS7/ue4ZYPzvttNO8gArT6cwQocC3NUCnW3YfeMBuJLskMPEDWBg9N95ZMOS7r0kgdleSv9ckMHqZMBYEmV1LCHx83wHcHrw7VP5QewM96GvwKuKUmzl1oxvdaD7ZAFqEKVIe7YgwQQHLnEU4QX/uI+2G2RK0tXVLfVYUupCyC9kuRAs8PxOAwTpGB+14XLtbj8AzdInQoTyuw5vgVa7DmWy2sEpBnZQLahxL9trXvvboWte61lRYBKf5joXBLrzwK+ZR6Lp417NKaTzoc5/73CXmVWuCtSpGkdPF3ve+972itO5Hld9unMFJ0JNBYiEKyIIAMRERDvkfxgjxYAI7Bc/mYAbr/e9//9RNwbM1sNl2e4/y0Z5/xzve8diyOGaujKxnc/jLhlXnlSsAuNE222xzzQrYPqbcRS/4wQ9+8NIigN2rfTessjfUOwu+W3nTb2uRPViZPiToGj9yzlZYMbe1NsRjU7zvRwMxWzhISKT/OStiMD3U1lu/N/RsIK6yXXbZZT7QbsGPGynAJMfUxk2I9mWtGCZKQBNmo/zzBe21mytbvORZ/MNZVHf88cdnYVlOfbtIfGIIZjFc93uxa90agCbN2CzUAWca9THoArzXZToaetd7bmXzvwc96EHzlqiFlYWKkyUQ6mjcuJx43to/TBPLwYKB52x1OnbhMbYlYquFcowP6ID+ugwAIWTBAW5oZxdoLodvx12cgWYrF2GSnZuTlp5roce4lbA2cHnZnUbb6rlxuYjjCblS8a4t3/ve9x704Q9/+K+yn91aZVGU+bV1IfeuEGxWhSLFnS4J8UKYEFaQmNzvMEo2JsunL+ThHbYPSHZHMnHCGPNMgp5zBLpJWTevqes73fjGN/5ESfTV5Qo6ozTknG62ogZ5k6prm4pr3DJrO2pQN8lpZtWH61QZV7H/2EQKLOa+8b1ZQiXtfPnLX56+jmNdbFVxgNvd7naTu971ruOelugJYbcOgtTWR64l2HzUUUfNT9RuNZjRLSYsUkdy8XEjeOEXgh2TesiFRjozbeA3C+GwiPDl0g8ml5lnFtBFa4swiNZLYBuBmSB2VouHZtgGxuNHObMEwdCY9We7NcE1mIb9+O6TA7G9HCsW3WrpY2S/fcABZqz0jMXDHvawKX4i2J08gPUKI6aNtA3mRj2Zv06qMPNl3LH8LSRpPwwXIY/gwY1oN5HHYcjKtaXBO9QJzt0n3Jd5ho0QKatvLwIu4UV2XxKPAXdO1Jhbv7SgraHt4jtTyyLup3gXYk2UK3503etedzqH4pL++Mc/Pp37Ka+8DPffb7/9XlFFPHX0V9jHbq0RFOXD37BcP48vxF2LQGaICPcQkjSA28KaCgzOGgpIhyFCDOR855MBIEDWsxX4Lin/4NIyHzxH/KvL4onzPn82uHDuHIeulVh7u6QCYjHg2RBM6ooWcuqpp05daIkHhMCYYExKCDWMEI0eoREgayV4jtshQpfyDUOMcgiot8qYVKxpnHJ9roAFvdtiZkbbIhS9YeBQDAONjQ/vF24mn/3sZ8flTpwvL24m4zIQCyPuR2exgGcz3qHx7FrrYgLC70C70AoxuN43M3YzOpfd6+yxAV/neaxshHa+YwFGeaI+u2+HttfozD3fDhATiOU9nqFc4o0u0+/3wLl3Fuhj4liW3T7GjXFuAUTdXjNhq9exBwSrhShjRvsp27Ex7wWFsAmPy3/iqLQxW4BkXmcext0c5SVllUI4yTqfnNaodo/r2pPucpe7fK+sk3eMlhnWCtdTmbh/X66dNxUy9lzxP0dfThEagg3Dkq9+fpAcwMKMC5hIKAfTGQuCSUGZGaAwiLhy7L6wPzUwR3A5kyCcbn1iB74/S/ufdc3XlyokDN3FEMGYk9oS7I6mArOgbWhIDgqCK/6jVVZsZSp8bEEwITw53YbUiZaf2MRDHvKQuA/HZIgEvFIeLRNB4EVNEeDpD/c8gX0oDoyDsUIpSFtiPbz1rW+dutI8Ro5ndWGAf3op49GZ0Cwri2tDmm6HrvXDeG0VDjF+WyO4abw6mWf6xyuS8+xjHvOY+f3CiE8wh9w2a+U9Q4m2wlBpD+/ZBWWhwXtYCkPCj/IDdk0FHAcwQCsBp4rjPuM6rqJcZ9cDu0odJ3UZ4/HC/bRcXuaDtxDClY5llLmRmCOCwm4zu6oQFKV4jY8++ujpkb7Q8Rz+VpRgues///M/f+TrX//6maNlhCVbFAcddNBGb3jDG65djd26OnijQtbVyiQ6u0z43xZCflsd+fVuu+120j777HPu6GLAIx7xiE0PP/zwD5eWfheIFokcaco1a+wg2Glz/dtMieswAJhL0mN5Lnvtf+1rX5s3EV1eFxaT5oYYz3A7LAZDbQaGtNYhMCPxdxg8k5R+02e0VbtoAjBhiDT3E//46U9/OvWbDtXr77xTsZzpdtQHHnjgqGIzoyc+8YnTcwzso4Xh2dXE4iTnr1sxgKFw39qdGZA18IxrTZbJ29/+9rED1EsVxv25WWMyJBi68tDfHxK0jEUvz5pywK6iXpaD/uDFrhXKspAwrgMJpiYVnYV1Pd7jfqFBr57LCLLAsqBwvy0scPGg+SMcLHhom+ew032Zr14bEsBL0GMyZE5RJvRvPIBH4hJYwl04OfuIsbH1zoJBMjZxodsSyzPf/e53p0KAMev0wk4CqS+WRWKSNV/H5j/gpXjaRjX/3rHXXns9/L/+679OHy0TLCoonvvc52526KGH7lATebenPOUpO9X331Xjckj9mAk/p3Gurmt/fu1rX/vrsgK+uMkmm3ymgrs/r4b/+mMf+9j5s8p/3OMed8MvfvGL7y0k3c6Ej+ROINtmoSdFd0+YuTvfO+CJYLOZsvO92WabTWpAxxxQYk0cogpYG6F+/3bZBgucfq9rpe7XEMxietaMo53gA4WQAnbf2dwHT2jyuZ9V2rEKkuedc6RDzCwM6nVnfUcW0yXWs/fee09jAXkX91KI/YMf/OD0DAr2VgpUAG4aF2BfLlyN7pM3NrRmTB8srGFGcZl96lOfGjv3fakwyxocsqD6//5cv2cB0C20QF9INrSWwiu2bWn0+WE3CIyZsrEu3WZwF3yjiOEqcRaQkyM6k7fgZpy64EfR43lOyKMNvIuFYkXHLmgsHTLFSG7pc5e2WrkE17ZErYTgIoUBY0lQpl2APGdrjzHJB9eVEzFoX97LoWHwOHALzwFnUWpx0dU7Y7sVqZOxqbl3lyOOOOLldflxo2WCQUHxhCc8YYvSrvcqifSIati1q+FXhajphAm+/q+oxl+5PtsVA9ju5JNPfkrd+lMN4inbbbfddwpRX6lg8BEVkf8JdTzwgQ+83iGHHPLBYj63tMYIRDPNpnEwbrtHIJa+WIt2mThpI4QCsiEStI56ZuxJ6glsxmgNyxqUF+lYUAwJAb9rGHpuqRqwywhRJXD7j//4j/N4YdsEVimbMdhEhimQcnzDG94w+2FN7yXYn+yMbEn+7W9/ezo+3/jGN6ZxngQ/w/CpK26fCIpM5AiIskymaxSiWNzhDneYVKAuGRvTgPlnPvOZ6fhE2KTNTjZg7IMvhIsZnhkqKbB576tf/WoWJF1EC1wTdG2fa8bvYtYgz/TyellDFgVgpccWhcfMSQowH89Nu2C4Z3q2n9/1EJtgISrvm9atdGn+zNeHcmBrwvG/7g0IWPD1e8wnB/e9WM/zGEXHVg0KIUz3Ah1G1PkJ9Rl3Q64zM3wrsmb0CLKuWCIQsHo4BqELyj6OKHDmd25fgPl8+umnP/rf/u3fXvqKV7zi56NlgAWC4j//8z+v+Z73vGePCvw9oSrbpirfAFfFLI3KxACTWP9/MH71EgL53LSef2QFZs4sBvPD0hh/UM+v/ta3vnX3undjS14YWCZ6Mp4AyiX1zhLdkweCCJg4cFOgmTrQxKATw+jbSkM8ztX3kZzAEAPh/a5BeCHcZLL0bCjf78LIkHJrDLPKeh5f4BYN3H7ZWB8BrCu0QzOS4C6CIGcTpO5dd911SuD3uMc9pt/Ef5ikYdQJHud6MjgSz0k5MbOzaLDwPKlnxxB6mHzcVWXFThLTeMADHrBAcbDLwYyKPrF3E26Fm970pqPPfe5z8+0fjy+eO8+4Hvo/pAjMKn8yuXjxKvrdNUbfhxHbtz9koXQrI2B68Ce0crvb3W7B/MA/70SQ7lKiHrttKNOric0A/QwrugPQXtfywQft9vw38+7Kg60qK0XwE5g8CwaZq/QDl1O+ObbVgsnuJuiR9403xxLsYkPQuB99vK0Ed1rx+OJWmytz/XK93rUeW15BURrhTd/5zne+7owzzrhTGL39fR40+0HZnZUOks9uzW/Oh7h+dWKzur5z+dh2ZvBMQCbw1EH6K4zevlkTQJ9APIPm7MkGkXCdDbryfOIhZEj1wCjlQ/Ro3hBQn/QQHW2iTjQYAskWHF3DpM5OOEMMoAutQHyZCeQmIQBNhHZTlhduYZ7TLx8GZcKnruy7lfdjBeRZtkrOs/mdrIzESmizBeKZZ5459vi5b8kNP/bYY6cWpcc5wMQ2bRLYdoplvksYTZKRNhqAyWQ4oNwZ31Lh4jw7NM6zylndYmXWzofoIWD67YqMNdFeZq7lyNOkRQefbLUCXVBHZ/ZDri/Pux445rddhmaaMNPucnP5VhiwjrgOI4Z3MLfMb3BPmZFD+87EcvYZ/AJrm/54u373DcUJqwwvRh+v1Ju51C0+7nsPLfO4WcqHYz81jneoy28fLQNMKeCRj3zk9csN9MVqxObedC5gs9LmHMRjiYt2mu/4s8N4YfjeA8UER6ewBFJOctyTQ4z2wnNovgywA12W5mQPOPUNoQVh5Fr84Tms59WvfvU4mq4noLUmTxYWGJnJeSJkgtHfHiik7WhslEtqnAebCdcZS7ckzBA6Y/Czq1o6qf2+gTB3r2xl7Hu8J+1nXJh0MG8mTVxUWcBmYdiFmXHS6SK7ar70pS8dPfWpT53uiUNdjCe05rUSaGZpR8boO9/5zrgzw24FTC6GBTALevmd+ffnZk3wWeUFYP7GU48N9JXF1qxNP8yH7ooLTpPt5F1PHQtxnVjonU75nWedMch9Z01Z4aQsa9W2qiyULCSccsqz+XhbEOrC1cN8hLl7CxwrSj5cyS6fHrOxomyeRnsDFoq40qHhwHWve91JlbtAeWLecZxzMjJxmwPmzUNWxe9///udSlm7Srn/17yCdA2w/pe//OUN99xzz9dXpZsTdGEgIGxLuq6ZEK33drysT8h/tPQEK0OEmJlmMiAZiyXI8UElaP0gvzNOUieJQ4BEM7SUwbkHnF0R18RrXvOaMcKtr8vItxf0QKQWEPxPXzKgrO6GaHim+z2NRzQQ+mEBZdwDs7RSX0ubo9HHXWQhwRoKB8vAE5vwYZGBS++QmedJgaUu+5fZ4bYTcm9fh85Ak2mV/W5y3Rk1KTN0xJiumkt19qKupA0mFuJyu1BfTvA4zYJZ94csBp7vvy1o6K8Z8hC9WGHg0+d2/ieNmfdhkFgUjglB267TbUcRsqVA2zNeTi1lPBD2KHO8bxcY/YAm+Q+90Q9r3N1lZt7hfjLv3R8U4DyHdUAdvIPLKv9R9ACEmhcI4ilB8PNdMcBx4nmhWwudfBJnq/judM6Ft0Qwhf7TJp9vb74VmLPsNyv+dsP6e/ToUsJ65Rd+RUXJH4V7ZyTiNDFQeddmvcCpn9jEQMFUYChkS4B0xyaSmvfGN75xwZbH9uMxuGbGEJoZU98a2K4TCLQsiekiK/tsqa9PPpu3MC+ECLnRPjSpm7rseMt6AvDnyURmhReLeZLQtoAnexciQLT6W97yltMAJXWBPw68h2BZeGiLAzOb9rIYDCGOiQ/uKe+EE05IauqCGEOHxTTvlJWMq6TWetJ4MmBNmGZpUzKpspYEOh367sKXe4sx+1ntnVXe0HN+1u/2Z3q7hu7bouY5CwXq8DN2ZYLPKHEvfOELp1uXwLDRZPsKZDPh3jaYe6AH2wPeosQWivGBJU89dtc4JgAT5r1uaViJXKVsLbeXOcy7/OdseccQsABI62ZewzuwFryI1Fo+vMtWCficO/NjUjG9McLQinHmb7wfESQ9ecD8wcrF3HMrqz0/KQv/yNGlhBXVuT1BIG4VmAQdcUNADNovH86N9UlqQXy0wmTJoG3aFYOkNQNIWuXhhx8+8f4vFhB51gFrM3iu0Ta0GGuSPv6yT1DabVOeDzjpk5JB57zhPiFzP8KBLCCCgz50yDGRlOWN1yAsPrTV2qXB10NY0UhsWoNzhF/6kLbZpYY1YcFoqwhGgWAjPoVQiTZvE/niAG3IXkOY0SzQow8oNbgHwugykSLs0pYEyzt0xtwFh+ufBYsx9MXem9WGWTDUJo+rlQzfs7VggW8XaH8eBQCXU6AHsH1mCDRBHxDkdr8GPEdh/u5LwIkiQ0Kb0xtdNrzAmj38y0pgwEIH4MCk0Axbo+cZ+sxO1RZeCAksF9rkg4wSD8yaIyuMnH9iy8nton8po+odjNul7mwSmtXZbPWBhWP34dCYp6qzzz77bqNlgBWFlF/TWc4NtjZirQRGCUOkQR4gmAeMkAODCNgg4d05JDLE+dGPfnTs1aIQiXcbBeFkK5mJdUsIhpKBg0lG44zma43LfbLmvlrBfPvKnQnVtVEYGUQXwFXi/vCxcLbWYffWECymhaKtODBIm+kLhGqh4AB7nkHDYjzBfYB20s9MQJ+QR1uG2tc/80RZZSf9Fg0XfNia4TfnhcN0snVJTPXugx8SrNb6Oi5nCYNZjH4xy6ILiFnPrkkAzVIOenkoWN1NO4RzGC8uLCxeCwVbhvbFu33GJTTrZ90eLA/+c+KkaS7gbTVcJtc9NzxfXIa9A45xwKMsbDhZzjiGn0H/5ocp59hjj518+MMfHu233345gGz0vve9b/SGN7xhnrewqwCWO+1FYQUf8EdwhWAl9pd7WaMUwMobEr62YlJX4fWGWSw9upSwfiHgsCr0ppbgXSsGyZ0gHEQyo+c/yMD/na1yk+NPsJkFYV1jzaIutF3HCGjXKqXIeeBCbN61EcmNucaApR3J7e9aZWdWlGFBaKvKbXB6LkRnwhry7YJLByR73MPERN+7738WZJXt9a9//QWrT/Mell20cIgK68tjzbh5ERMfC31nmaUviS90Jmza6b+HnstEi1swZjdbiuQ56ILxyLXs25TzM+r5yY1udKNxEhRSrMucZUX0a7MEQH92SCD092b13TDE/M3UO76GBNUsXPu57q7wsxmvJCBEa8X9ggKRD7FEzwFouv+nThTA3EPLZn54+xjiDJm7+++///SMlTDN/E/8M7+txJlxGie2muivhZWZKkckM3/hE/zvimbA98O/8jvp3C996UvHeBNCr9kqJs9kg8mdd955mpCRfjgm4TiNhRv98FjSluAoc4HNCd0+C33e5b0SVJsceOCBN6+fl8r9tP4LXvCClzzrWc+62SmnnLJTVbK+kU/lSLihieJOWutHc+WZIDKdxCXlhV/dRAxSEohNLjwEiADDN4lGAHGSJhmwBo3PD+Ye8+0jH/nIdLsOZ170iW+rgjq84Ac8eLEN9XL6Fcx0aJKaENCknMlF/Z5QlD8kbCjb17OPfdqR1F8H1/Kbg50Q2nZREJvgBC7G1TjqkwlTOhMlqbGLwVCbfR28FvOaFA2MLaCMq/xPfa961asmJ598cgocl9sybRvbUgU6M50FHa+9bf1+F0L9OnQ41Pch5j5U35DAmPVuf3+oHtMKloRdSljEAceCzHTtvu1WBAI9v0keYezslmSsjznmmOlW/zUvJ/vss8/0bIa3ve1tWZg73V4H+utxL+YEjNjuaeokGI/CYTdmd62bl0FDKHK5D1879NBDJ69//evHKFddMKfPocXQ5yMf+chpG0glzzPwQt7jTPLMx85T4Qtpeyzm4MZJQd16blbFJuV+vtPo0gqKkuCn77XXXg+rDv9jScRnVeFXduA34ECRGYSJ1ZK5TwT719lWOIiKpOW5gDV4iNCE4aCqiZEgOsRAWexXg3kZYkt+/bvf/e5cG/dJzaThugfAhDSUpgahxlqJpo5QsatniNF6Ivf4zVD8xTBLg+Q361rQwIjdkBIIfnymAILcMSKf49EnkONOjK+3zZjFYDsjHupXTZ6x6SpALjsZHzH3y9U1tsVF+XbZDQmIWYJj1rP9eyl9MbNe7P4QzGrHkGDq498Fhcv0/UDGOvEd5omfNaMiTtiv28JjjsIHLCCxTAJOTgl88pOfnH7X/ByX4jp9P5bi29/+9ukJj//0T/805r2uwBkvViipk/pt5TNnSXF1HKO7xokzBOAPn//858eO6xjAVebaz372s2nSTCyj9Cu7GQScoTnX/knVO+6u/IBdceEviVmw7UlPQBriZxUzvGku5ZHRJYRpC7J51C677PKqklZv85GMVGgk0vAuJACYEfv5wKyC1Ax8zFwTI8RHR4EuWd0eX0tdMVOxUEiXpJ0uO5PhQx/6UAZ43K0Om4LUM6SNwSQdxMsn2jcaPG4wDtOxVUEbTRABu8awyGCGY5mTnhxDTNBaESm3xByc1cR1WwRMbi9wdEDR2qTHnXczll/+8pcXuLpoU9e4+rf7CcT9xAFUdmtEEH/pS18aPec5z5lkInZ8dNx2urEiMwQdr0N00J/t9fRrQ8/Oqt/vzHrO4zwkCGb9HuoHyheMlEOiAkOWpOmX5zxXbX2YeaFQuO1cK6VxQtsyd2IFM7+/+MUvjg844ICpMEEpJMPI5fX/TgLxmpC01ZmIADQPT/LcTWJI1jKwD1Zp9RPK6vjnm7Yk1hYrINvtW4Fp83/sVGDjBp7C2i8vhu3ZnBYw/P/9739/13333Xfr0aWAeY5dkvvP97jHPd5ZA3bb6thOSPue6mXNEuR6IpAJ4HfYFoOBgIF6UDqivUgFv6RXQUNELG7zwSCYlGgTuZbfOcnskEMOmR+EoYCxmU13udFmLAdM2piNYeqc3kZiAO2jDd1lZEZqwcVg25S3tbEY0/JYJMWUdR1oHwQnOzPnHQf3EBK0mXZYAOMOQpgk48ljD8zSvPvE8XvZ+iPWXzLnslXIXHBuKvCzRUlNvnFnqGaeszTt3qY1gXE6JPD8u7sB3DZ/Q3e9vKW0Z1aZga7U9XYbz0AWt4ae0cgZe49xgHkNXXqu9TbxvF0jPZ4HbSexJMpbjy/A/DO33vGO/zliIav2i5YnOSY5q8hzkI/bZjpHWBg3ne94frm/dgGn3OKPk7iSdtttt3E2yMwZ9ozbkDILLuwhyd5m2QLHuGU8gn8LCrwl4SlZdJr79DPCgh2d81zF5Q4t3nbLevfqpnuN80ZV1hVHlwIW7PVUkvsnu+6662MqXvG68vne337ePsGNEH73SYmfEIYdCAPdbrvtflva4jV438GZfMIIsmV110b4bw3Z7hUY7rRjyuOmDrQUBqkzyaG2+B6afsD7yZOxkW0zYLR2VSEgnelhQWF3iYWxJ5ljCEPQGQzERuCN8okPsUAIDQkixeWEtuWEAQSEJzQ4Q2Cwu2ynCf/vdGO3nGko1kJSXSOIEzhMcD7nbLzwhS+clJY0HmL+S/m9GHTm6/YMWQq+Rj+WWt+ahMRSLBHj0zRHe9YEeSa7/oYeiKtZeUOxoG/4/YeED8/3tpse/D5p4slwSxp3d7Xwvi3EnBtT3+MjjzxyUu6c8Z577plNJqfP4iJdT2sQsIqhFbvHjUfommuk82duV9smsWryTOIo7jdzEn5jpZdnFHsdo0hSF6m0ofEIhfAQ43KLLbaYuq2Cp7jqcdc707LcWW+vmO7Lq8yrDyn01bYL7nrXu5797//+76NLChdRPw4++OATP/CBDzxyp512yrF651lTN3jwLHmtKVgjndPq/3jPe95zn4qLPL4Ic2KkWmNNZhSpkb7vep3O6zUTZoxYDDDvnBhFWdbeGThvCQBzt0nNwOeT9kWqEyzHvZa25zprSjCR7XLyb6+9cB1eces2ug39A/A/m/JhpqJFpQwO/aEt9jUHrFVa0NlF57FAQ5wb68nQuNGu8Rq0+K6p59ngM5sMJg3xRS96URIdxj37qwukNZXv9iwGXRh0fPt/p6uhNq2pbUPPzXp3llBb7FpvUz7ZCBDGgpJjdwbPmRlaIRrL8kdBdJ3QOIqWLdvMj7hsTdtuW9fseTePlLKQRIbRa1/72ovwn44nM1ALH+MUGg8wRypgnc1SxyiovY1dEK5WzKYrMttvv/0EHHse5J0IiQgL3s21ZKFFIc0iZBTNCC7vOFGC58LiM8eWVfitIQUMXPSV4xcXBvczKJPunM985jPPetSjHnWnilt8A6R58tKIzvxoJN86d/aXFf2/8xOf+MS3fOxjH3tsmUtncTZ1fz+d+s53vjM/aCyI4TkksdMzAyy+IoMDrTrXg/BkOvVJZwKGoWKt8N/SGYCZZ+BynTRSBp6UOfetCyZcU3xskgZsRXgi9E+3jJjUt73tbecXQPJsNBLcg4ylBQGrx4NHJiXjAKPw5MAdSKbUzW52s7E1mk4PHWYxsiFhgtC4OEF+wywBdklgyLoYuk57epu6UPGz/u7PL+Ua7w8pOP35MKEwagsJfpNVCI3Y8uvzx4pMt9h51paJ38/uAWRLuq1o6qxHIoZiH3zKzGK3xBAcg7Pi4zYFcK2atl1mIPUlbpKysy7I7TIfpH/+9DgMv6u8sXHjOW1FLv8zJhEUNZ/mF+qGX9ptn+9ySZ1Ylvbv6vePOw3wO+9WAPxSHXu96MY3r3nNa7797Gc/+27bbrvtv1aDjnNK6xChG3kw87xTxPidG9/4xnfbb7/9vlcdvW75m/evMnet58+JleHV3WTiZJVjAPOUNRcBBETfJNAEZq0IgZGUWwbIK8s9GajPzNcrP+kbg2HNHzPXAW9PIger6QtCMO42CJ86LFhmTXS3CYLLd9ZP5BjZCDKIM7hl0WHf3NCbMg5tuewVsq4XV1z+x5rKuRQECIfw5TqBTtiL+dnXxPiGoDPfztSHmHtnBrPaM0ugDb2/JmvGCkn/DD0/S8CY4S7Wt9BVzhuJdRzw/l09ucMKi7X7DraS7fM37lHKuJcsno4v2m7LpbeHZ/N+At3ENb01h92+fcsOK6LgzUKs+MuY+W3t33h1myxsfA2ltWINExRex3kCsY6SVp53IxCTShs3axRcu51yP33A+qjyTqx5/ufq28T0bJdxrI5tttnmnNGlgDXukLbXXnv95aijjnrVpz71qTvc9KY3ffFVrnKVH3rvpqFANGZlSeU/77jjjs8rn/IdDj300F/k3r3uda/jy5Q7oAKVp1bnVhfjuipbLxB7yHf5IifJEui7yzJwMCh2pYXx29Vigq2Yy8T7OnUmnjIyQPERFoGc72CaJT/9NOFYQ7d7xkKpb49iBpzvMHDWgVDfkDXScT0kOPKJRcCkJIMqDIFtBZhUtuT65LJvF43SioLXZvBs/KnRgswYhoK2s5hf75MZchcSa4LFGPWs+nq9/fcsITMkFHtbZrXRMOt97vW29meH6Lu76VxPgsG5l/HLPNR5BvOxMwK93kIGRuuxNX2Ybt0G6uZdGDjM04kNVpSIGdDnzgwPOuig6aJB2mYF064ehMKQsPBY4oXoNGcLhHfsLqJ94N/8oHA99ualPB/hkQ1KMzfzblZgJ0abOZxyYy3lXsYH6yrB7bn2H7H33nufV+O1epbCVXgYn3nmmUs7uWsGLHkrzRISZ1fUf9+Sejfdeeed71oN/R4MiFgBMYK6vrosiOMe+tCH3q0k/ct23333ixyH+oIXvOA39cyr8xsEWSIff/zx49e97nVjZy2YgeZ5CAGhQY59ACJVrv98lkI3+3ItmR8s1a/nN+ia2SztGDdTj+HQF8cnLCAQJMEZfkcEZRdEs2JAizFLgvz0GUuCOmwRwhCc7WKrh4nsHPVA8M/B8QTA81w0ofH4oovEOsxiiEPPub1LBfAErInJrqkNFhaLafh9wlqo9HtD5Q8J/25d9Ge7UPNcmaVkBNj4j2fQ3nHPWPvFReo2WIjQTtOrmXqAeeldCOJiyfzzO13AcK+nhxuHWaAJDVKG8YAA9DsOvluIZK7E/RPNvQuVIYZsK9j1U3cYe1xsbJjqscrniCOOmD6XDL+tt956fmFg2ps08fyOEpZPkjrCM4LzUty/PTeOF1qQuX1pUrnQLv6ZwIJL5Lf6xCc+cVh9bX/kkUde9aUvfelu1YnbnnXWWX+qRv13mUG/KAFxdJlSPysBMXP70Nx7wAMe8IuhyQqDJgUs4I3DIGgGwdI7YDcJxJRAdp9EWA0ZBHKVIXwAQuhxgA4ZOFY7Q5A8a9eNV7M6ddaTivfcVtfNZOyM2P/xL6fOuISileQ6yQVe6Tpnni5IBea3F1CxCy8TNm1gzYXbGPdTUgHZ6ts4G2K4xvUQjmcx4CG89PID1nr7+90i6M+47KF7s2BWuVZO3IZZ9c8SdkPPm4muyYKhTujWmUDUG7DfHAvAc6+PHzTXlSz6a8GFEjenxKSgMbTFmHnnAws8vBYe64MPPnicDC5WOYM7ymMXWAspyqIMJ3bk2SyQy/nrnQYsWHp/6aszL7P9BovkArQn39nlOdZQnk99cRtj3WftRlZjk74c93nS/OOGqnE7s+bzr+aa9KOygM6Pkks7coRxoN5fr969wuhSwKUKcNz+9rf/Y329a+4zhSy4ymrZpUANwOadIK0JZIEebhtnWuAOYjC4H6LPFh0QBoIg5X3rW9+a1uN4gn2oScPMN9sIMyFmBeA84QDO27Cpy2ZiuMsc/DfDNbPt2tAQs/G33wGXm2+++dTVBA5oW3DFKlysl7SRDLWeGmlh4dWkwZO3L7BgTnnRfCKch7TuWUzM/e9MdKicDosJniHBMquc/q41yc7YZwm30WjNwmdNdc/Clds+q1/d6pxl0UWbxzrHMkQ5MtM0TVpp4hkng3jFsJUvu7PyLNZomOh22203TtC4CyoYPWUthrusxzj66KMnu+yyy5hAOG5RXD6cbQOTtoDsSlLuVyB5KsD83JDwNl6sXDJ37nrXu87PIawzhM3nP//5eSGc8UiCQRRXzp/I2pHMt6QQR+FDaa7njnn3u999fCyQEjBnxqoo99YG2a07z2UH5vDD3/3ud6eUFXLG6FLA8p/icjGgELYaExdz10G0SNoMvlfmWrtBeORZb2hn7QPfefKvbZZ5QnDdfkMz+6VMbu4TKKaOAEF6ZzjZteN+dc1psfqAbuYGBwmOZd1INA/cTvkNo7cP2StWu3ntgPYsC8YBWLS/ItAJ17qm73a7HP92G/pEdp0d/0MwS3gsBkOKAPUOtZVrprFZ/aJNXTB26G6Eof7NoslZ7eda6CTunhxs1dvdd0swY/QiVY+p//PtXVOxpJ0554BuFlRSF8qhkz+gVbuSunsr/w844IBxLGjmIMoNc5B5SBlAd9WhJGZhn3lP7zvK3qRZTi43cLe73W3+Ga8Byyex01yPAheLgjVaUbYqtjtVYpPck/gp6y7yfFkKh5aQmPqXSzicXnPuLxESsT4iJPASlEA5Zcj9f3HgMhUUpU2c7a2ECUBx0l4YXA7ACTjjCssiACGiFQc8UHk2WRGsGDbjNwMkPkE5NpOHGECfoNZ2nFHltR4+LKjnZLscT4KlwFAZ0T4iLCIcCIYhxPoaCgflLBAwvz1JrVWBkx4sTflZuTrkLx3SwCczLIZZgmVImA4JmFkC1/f7tcWY+poUhV5W/92Fg6+bafVnh8oagqF3jBu/Hxp/4hOfOPXDY016u/aOU2vBgZ7R1P3yVlwcX7B7zJsFknnld3sgfkiZsoKSTxTL7A/l+diFixNULAQtkBBiTo7p+ODjOQWeaVvKy6aGWV3t98Bh+EPxp0mev9WtbjX1BAQnERpHHXXUJFZW90YE6pmz6/8xtKeExBlVxnlxI8YqiZCJwJhrx49GlxIuU0FRgZujqsMXYg3ATK3ZZj0FGQ8MiM1a3CUh8kjiMHomC0SQXGing2K1WPuxlsCgW1C43MAsjdZ1p90+3KkzrS64ABP5UsCETtuSOQFhZRKSmTWUSswaCOIN/h3AfPZ6GqwvJh4uBZ5/xSteMQ3K9X7M0n6Xyhg9ZrOe6/dmadezhI7rWdPza7rfBdAsZr8mIbCY8BmCIYHkNt7rXvca3fzmN1+gIXtuAN1/b6vA2XFor1gcfDsBwpo5cyvuldBVGGSYqe/NEtDjAcvTtJytX6KlQ5O2jvysBVjA7mjoOinmWcfQ95GydUAZ1E9Z+Z/Ejuc85zkLXHh2oyfeEKUqlkSC3RHc4Lf6MR7qa6DwffLOO+88v3aiLLJJzfGx4yWMQ/HFS3aKmOAyFRQl9U4qyTmN2nsFc4QF7qjsjQJyQQAL1dD8ydSBcL1XUYQH+ztBsAGYHt9o/ph2EJLfG2LwsxgBxBjwxJssotmuiaHOgj6RUm8EbNqMkGABYMC+aNwM+fYhQL6H4LalZWHDoihPyATScrYAjIj+mil1mMUsLXwXuz/EFD0+izH5oedddv/ta0PCZjEB5fasqX7jr5dlYWYcLCY8UIpqnKcPYcXbmrQwYNyxOKjDPntnPPG86QVL3/RjZSjXE6fIXO9xiD5ek8ns2B3lJisogsf4gn+gWHZcmYnbJZtynv70py8QEPCMgD0D8B7akuef8pSnzJ9T71XvWBs5gyNz5zGPecwkOIBvpY4SIhOPr2m4hNfPym34G/pe7qXJZK4zfdlC1bne6FLCZSooKhDz+2Lkh/QUODOEII9BXK2gcver95WWDhKjXVNO1+69foMBsSsFzaH779fEzGmrJ3EXLD2tbjFGtiYwIaXcBMLir0XTyX1y5cFB/pMCOJkMr0Q33ns9FiQkAOR+XF7xO2f83L6Om/EatP0hfHZm4vYsxuiHhLmhM/vFBNDQ+72ergAMjb3b5PYvVm/vh9s/9F4vI88VExqHPry4kjbhn+f5LtzN6J1C2xe4mW6GFATTalwm97vf/aYukyEYGo8u/MFfrBTqxgPRrR48CkP4cjaUBRu8AoHiVHZ7QSSM5xcQw2PAX56JazhbqG+11VZh/OO4jMhGTKZVWUXjji/aVQLsk84qrefOL1fTqrEUW35XfaePLiVcpoKiOjK54Q1v+MUi2KmDsmsOGdBkAFjqw/z7pnVIYhgVA5ztfSsQNF9wD1ZTV9fI59o3/x1C9jW3s/+epQ11pjCkhV5SIeEyAsl2sHCN1sJ+MkwezgdmPQqaoInMKYjWnmAO9IEJ5PfShuSFdwa+JkY2S3j0Pg49uxjzpq2zLJNZ0MdwlgDrDGyxfizWxt6XWfXPUirWJHACiVslODokfGB0ASsZMMNO385kckai6Y922cqmnQibuF+8WHMW+H6PgwU4ftTuHltNjhF0GqfvuJ6iUJWLZ+r3H1pEaEHBvEGbj8AiLd2u2UDm2g9+8INJds3NosfMS9obvlbxiYvEfRinmrOnlYJ3hPv8mc985gobZGVdU5ryXc+fN7qUcJkKikAxku8W0j7VByrIJjDjdFdgSNKi0cLw8kk+/zHHHDNGMCBkvC3HEGF2ArQpR52daQwJAN8b0qi45/+XFCgn/YsZnwlDcN4Lq0KAxHPAlV1HuPaIrTBpaCN9Z5w86Z2ckDqy4ZytkyGmNaRlzrrv5/r9rrV2promhj00NkP3h5hwF/r9mq8PMec19c2wmPtuCDxevJ8dUZOjb0sC2rBiZncK8wcBYI3ayRHuO0zXfXUmnZUSToGjLuOo/was1FFO4hOxpBEK9N8BeNNGD3zbLQ3jjrBA+DA/KDefvsVNrkUR22677RbQHtZJysjhR7mWPoOrfKe+b3zjG5Mhl2Cgrv/48Y9//C+NhxL6W9SzV7J3Zs6SOrd+/2B0KeEyFxQ5B2P77bf/XH53Ag1iugnMc9ZmMC0ZXAg513MUIdewQsi0mMXkDakz7pn4KrsmOsR8ZmmBQ0JuqRP94kDKjGZGe0Os0ezzHcYdnEQopE9s84Ff1toeQWvSeT3xwSXaoCeMiTqfrIVZE4P0+352MfwMae/dEnS5Q+/2336+Jyt0gbDY/1nQGZTpeKnCsisiQ21cCl3VmI4zN3DZMnY+pIqyUpdjWRY47C49y4phLnvuBhznYo1Dnnnwgx+clNSLzLVZfbKg4p24e7JYF6vZsQELuk53dj9TVv5H4dphhx3mB6Rn+TEXjIM8k7UTCdD3c3QCUWCT8pr2JYANjvNJpiduJ/Ml5t9WW231xYr/LbASynOyZdWz0rQxZ6GsqjbMXPi8VLjMBUWgiPMrhaCzmKAQZQYuriOvDnYMggEDwTAuJHyezyEjnegNQ9qfpX82TXv4wx+ePOX5dxYjWt/vk9/E5bIWYy4XF9LnWBNsJoYlEWFBfMI77EarzNbdSR+279Z+6o4jZ0551aszP6zBWTAshu9ZjN3P+HcvbxaztsZ4cRjrUHvcj1na/lA5bscszXhIQHQG0+NksxSVWeCxyDoKx/oCTjf3+DHu3oaGU/EIcvu+d0K20HCwGL99Vy722muvkbfuGeqD+0K/GZMIilgVZtre2cFlWNDMiqPMxfvGVqYow4KW5wPJlHrEIx4xjdVRtl10WYnts22oJ7/LjTRIy8zLguM6TqqeC2peT/pOCVXnOSWIThtdSlgrBEWZdX+ogZguRe8a1tFHHz39HcLFjOW+JTvBWWvAOUQnWlMAIUQGhsEMq0+0uL6yeCUMtzM03hkqbxYzGWIGwFI0wVkAgRPXwZIgWyW/ERoRFF/4whcmb3zjG6dCIgfHvPKVrxx98IMfTIrdgvUoEJ0tME8WJgFCBkbBivnktQ9N0I6PPiGGcLQUpjikrff3ZwmiIYEwq67OrIbGujOy/r2m8V4MD7OE4lIEbcYsuf277LLLAvehmTOCweX51Mmu5XohHvVZseN/oCdO8JtP4hQPetCDFsy5WUB7EFwpK8krmbOORQS81sH4RVDAO7zWA5pOmixbYrhu+tKt2Vj1ic/Bs/jgAYlrLL+TEpt+0vcc1pXPrHGsZ75XFsJFXEllZSzg5XIBpjNnji4lrBWCYu+99z7/6le/+rH5jVnI75///OcTp7VhQYB0mL/Py4DgP/axj11k/xveA4YYCtcDnhxDMEtL5beF0JAgWg4w00rWCMdDkh7MrpP5f8IJJ0xyvOgHPvCB8Te/+c2pxhOiysZj73nPe6YnhmU/GSZpPzObbzRBZ4hYyOP2yj41HRcdJ+7HYsy597VfX4wJe4xtKcwS9G7jUH2z2jWrX0N1DFkRnUbWRHezyh5qi8cwPncSHvwOY2vtme9c9waWViCoxz511zkkTGcFawNJK33xi188VdQWE5buX8qLkNlnn32mKbIuu2c6+dv8hvb7GSyShzzkIRfJvLQgNC4zr1gT1hcN5pNdE1JPYnhYJVHiPv7xj88rX8YH5VfQ+1sHHnjgSR0f9fxZVc75PEu/a3xOq/n8x9GlhLVCUBRMrna1qx0DUTEYc/66ccxI4goBGD3S2afaUUZWNH7iE5+4yER3EG5oMnuwU1ZWdfdA9kUaP0B8faC7FbJcAqO3G8YeJh3zN4IiKzTzHXjb2942PuywwxbgAAsiuIkL6g1veMOCvvGx5smE6pszomXRR+73tg4x4Fka9FKuTeSaGRrLWQrBrPZ0BromWIqyMKvcIaE3q42zLKTFBFq/H1q46U1vumDO2Irs6aCsbfKWMzzXExmsPQfsbrKS1tuUMjgyAHqKtp2Fm3H9suV3pxdDlKRnPOMZ04WEVhzR6m3B+F7P5LJbG/dQGH/Sd+985zvPb6LYd4IwPhESaQeKqz0dOdo3ylhiibmWsrIw+Pvf//702W75zOFydQnO744GoBSyq1Y98xsCaheLsxfbnHWpsLYIijCzXxUiJpbwkzmXkicIg5hB4MBxtJwLdZTpQQcdNMl1yghAzJ2x87sztADnYLNYaGhS+wOxTCaTRZ8b0uSGyl8K8F7wFgYAscZdR2win6TqhYD7JKEdZDodeeSR0/3xMyFsufFOF8oIA4SI3RDJ6JjFRGdd6wywC91Z5QRmpb52RjuEa/etv2tYTHj0se8KAtd6LGMWbfl7sd9LAerABWmh3896wA1DewHHHtjeBTcjc9djhvAg4AvTNm4QHngKgNSTOMrjHve46ZGkXvDntlLufe5zn6nbCa8DY+HV07Zw+hx0SqyFHs9m/sTKyf5YVh5NU7ZgUNqYQ8H73LZEk/yPYEuwO20Kr4pVb2+HY5opu+bzb5785CfvPxqAundBPbMa/Mq997PRMsBaIyhKc/9NdW4aybdWE2BQGGgGIsyP4I21grImJp/97GfHEHwABPJ/MS3Mk5ugnt0EQ1rNLAHi/5MBN9Ss4ORSmEAXPDFjd9ppp+lvsj1CnNHG8p1dKJ3P7QliIs8nZxG/5S1vmQ9cOwDp/liDR/BcqJMIcQHMav9QX2bdWwougFmCn/7wzFBds8ofYu7WUilzMXpyW427NT079LsLJH/7+c4Ub3zjG0/pgzPdce3yDMLeC1C5x/5laXt+s2037yB4mL/W2IdSaIfG3coWeErM4d///d/n22ncpc4ddthhGgQPUKfXOdhCGnL5+blOH94sNEFo4m62pP07nxxDHN6BGy87JETYlZt99I53vGO6nXpSZ4lPZIFdqtxiiy0WjJ/nZlkNn9xjjz0G4w1nnnlmzuOeOFaTeuv35qNlgLVGUGy//fa/LcSeCVJIuxsaENwgIfSYhBxWghYUyRwJHVihVD77XTuhAJ6AeT67PmaQhyalYZaV4nJdvjX0zjA6E1gT5PkIzWhepMJm8pASm893v/vdaW62NSr7bI3rQCyp9773vdOTAdEGrV0hcPoKXPqBuyIpgvHtGjrDndXnzqT6tY6/rqmb2cwS5LMEkxl2ZzZD77reTgPG+RAM3es00fvV8bRUCBNJVlyYWHcD8bGSZhzQDpQBxn+OIV2ENvyuGXDvh62MISGJolI8IgeeTQPLuR663G233UZPeMITRvvuu+8CFw8pt/b3OxsIoUUSjK0a2m/hEsh35gW7HQy1GVpJyivvh0e9613vmmYzxe1En1kzEl6V61X3uFxRk66UztHQhWVdHTyaASW8Y26tZ9zNuYAv1a6xwKU6j2I5oYJQ55bv/FyYMoTF2gdMY8cp2BMqAAGEYL/yla+MjWwHYDvMmmRM/jDefMfsHHqmWxlDjC1gJmPfrutfoawuT55ep3/zP88WnkJk41yDEURIBE9f/epXkwE2diaLBcUQfkLg5YYax5xHGHeBQlkmasx97vtISXBiJjLErDv++jNDQsX9cdlm7osx1VlCY6i+fq3XYca6WB+HNOkuqEaj2TGZxfoy9Imr4053ulNcH2N87A4+m/mZsbpMLHtcPPQXNws07sOzHHd0LMtM2ePjb+YvC9+yziJZetkiJjGD1BsaxzKyYumxcT88RggCUvK5z388CmlHzrWORWVrx/M11xJ3iIWT/+Fbz3ve86bv0ZZ8Micyr1JW1hpFANW1SVksY+jGbS/L49Tq61fjEh6CUgo3hB/SrtRf7508WgZYayyK6uR/l2T9Q9cyglAG335QluljKbADahBeQaGJCa0ziT4pAE+oPBsffVwngQTHu9bYGZ7LcJn9u2u5XXNdE0Mb6lug+j/m7GP80Hx+9KMfXcSakNaxYOK4HWxB0IULmpb7jTuC8UP4xCXm91fMyBSZhTvGataYdoFA/b2OXr7r6de7FdDL7UK+j41x5ev92c4QcaP21FS3gd+z2mA8m6bDROJf33TTTcfWsgN203hsoRHK8i4J9M805DYyP62ZDwlD2kY5bjvthAmHsSY2GddohAZ8wQeEUad3FnAf+7i4z0N4tlsNdxLCzfEAykswPdl++f2FL3xhmkXY6SOpsxHaUYyz51MYVuZp+Fd3R+edKu/wZz/72X8azYDCwUbVjvU73qr/p46WAdYaQVEDcGF9zvNEC1HE5559UHKdwfK23Q625l6Qfuqpp45BVl+J2T+LQRhuLIpo1knT7Qxn6H/XMrk/i2F0AbMYM+vP2+WSzffSXrblyDen9cWsjQbp9pphBzqjYHJZS+x7afWAH+PgCZfnMyHiBqP9XdNbCkPsjMjj14VfZ0J+Z5agmiXEXO6KgRhFVxhmjW0f904z3QU5RKeduQ3BYrSZ4GncNIwFc6Ynj9ji7QLa86m30zEIhIv995RjZYN7XQBDU4HVqxdu0R3gfBrXBY+gX15J7jFyxp+Fk60QPBWsQ2I+JVkksRCnjDtInvUTcQHj1krmoeM9AGeER1BEOKS8Qw45ZMzxz+Byrm0X1Px+72gRqLK3q6/1PO5zdV7qfZ6mYzZaSyBrKapzp5uYQthPfepT591OTCgHa5hgDHCOYp3IpIR40HQD9qkbPKHzbgJo8R9mdXhZPGPasJiA6UzBA9ev9fL6t9/tTNH30/9M/ggKBxTZCDCnZCVvm4nhyY415q0LmET5nXc5yN0TC8FhIUxbaBtZKlndngCqnxvCySzB24UojMGfPgZuq2GWYLZQGHJhzQqAdkE0RBtDrsZuQcxSYGYJKNc/C3KPw2u23nrrUWmk8+tayF4yQwoYZ+DQriLqpV+AXUjeb6grNrzHs5Th4HcXFrwHXdsaAn89ScNKohUqz5muCDB3KNOHOfFe8JnFgA996EOndO25Esv5rW9965Rv0Z9S0iZd2OZ/zsXOnEzqf/4nXTbpsd2ayL2a26c/6lGP+vpoESgeuR598PhVH84eLQOsNTGKQDG2Y6tzD8zvSP3kTwfp5FdDVJh/Tt+DkCv4uoDYTLxdwzGYWeB7TSA7ENNxlgAwdA1yliDqDHCIuXTtuQuHLkSitSMU0aRIx0sgexYTDlhI9LblONokB2QS4Jt1XrwZXYDfaHuMgyfyLCFAX4fwMav/HT/cW0woedL2eocESxfgQ9AF0Kw+dEFjGML/UD8XK8OQsUjuf3zgd7jDHUZ3vOMdF7zD+Di9GQYb8GE9XXnhvhkvMQIUi+6mpG5v84+70niDWVqwWBnknq0Q050FhzTrwT50uu30ZWuA/uZaMe6pGy+LVmPNxzX9sIc9bMqb6E/mX829+co8toljRFDkk3JLoIy7wgJ/KzfVIXvuued5ZHUNQbXpdAvYOVydV9eXJUaxNgmKSUnOo4pIV1Un1wuSkjFDKh6pfAGbmb6WZyLxLVQciBrS6C7SiLn7KSdCKmVlEUwnIJfp6wYIY4iRQQxuh81tP9vL74wkhMxRi/QZjTGTNq4zMx0mUncfdEEWyHPxs4bR8Fze7+eC0w764b2iIqwysbI1QTJGPDndn1nfxlnHQccN94ZwOEtAeKyMj6WUtaZ7feyHrJVe9ywYGp9+H7rKdyzMjFu01zAwyjdTdbZSGBwM2ZYjcyhg5cxMlHJ8oJhjE7bi3Q8Yu8FzgufMyHkfOkNx6TiaNe9NfwSsqdN05v3M3AeY+G1uc5up8MXDQZvAXayEuMIBGDgp67EmMjfB45DbM9fjdqrfi/rJa3zPD/+zQlzwl2rTb0fLAGuN6ylQ8YBTCmlTUymML4FkMp7MRMP8vFoUiyG/EyQKoPl2Zm5f8JDGmWvREOLLTfk5z7ak/kUGqTP+fq1fN5MeEiqdAQwxhSGmBYHe6U53muKJNROc/42AxcrwJANvnXH5E0haX/bMsk+WvqAdMtHQ5LwyNr+TnZLcco+Dx8O46W6BIYHe4xHGB7/dn6F3e0zA+Bx6r5fnce2CbaidrmeI2ZtBLAZDbeu0FhfTfvvtN80QSoyvn6dCRiFt5B5McWhvrz5f7Kb0fRgf5TCGZshWTvpcslCAmXd3I/Ob94m1rFbWoMekKz8eM3BhV6Bx7d9shcPec/AhL9LDQssOB/Fw9KyyjA3B9ryT9yNQTCvgvOo7+1nPetb3RmuAeu7K4AahNjfvV46WAdYqQbHzzjufXIPw+xwyHj9gkB0NlABbBgeiMDKt3YRRYgKzve/QBO6EaoLdfffdp8Gm/M/uswkE93eBIYEzi8HMYgBDGvRkhlbtevybOExnStn19hrXuMYEd4I1tc5whgRSysoYhOiznQlap9vU/0OoLDaCeLMHTxQAMwC7O/pY9D7ynttrGhhyk/hjRrNe27BuqN8dhmiou0N6e7swGRpDa7h+Z6hPfr63zWXHVZgtMMyUzYCNI58hwjdM14kKvIPbl3MbrIw53gWOOV4Ypmilj+c7bj2/LRjQlr3SmzZjRXMNa8NjZLp3+a6nM1xwRvlDQqrjOAIlcaE+fnmPs8ETyM7/zCu3MYKENlzzmtc8atddd/3DaA1Q759rnAYKR+df97rX/f1oGWCtEhT77rvvH4pBf7o6N7nnPe85Tc3EegiAdFwrPqAI7TirHbkHcXpimKl1TTXPR+uN7zHvxXQ/9thjx0MLhWYx7X5/FsNb6v/FyjfDsAvBkydZW6WRLOhDPwp2lobqOr74xS9OV8a+6EUvmsRk5plunneLiQmfe9ngLTnlWYxkjc91s6nhLI3Zv2cJ3qHr7u9QnGqWgB8qu4+RNe+ufXdrp39cRh+TobbPEhJuW9qwxRZb5PS0i2ippn0zQbuUGFMzHgsuC3pv0NnxaqvVMQr2beuCqePU92HcAWfe9cC5xwKB1ucvqbQ9i6+P0yrtRuAUYQsxu1g9VpljseQAK2hRQpPdFN4WgRJB0ccX124Jig+NlgClIF/JXoM54bVezdWNRssAa5WgCBRz/nJJ2ul21/mQrYTGbB8gv/FRhgBKi5pkIUugM4KACbBDrt3lLndZ4M7ycZEdZjHZWUy3t8UarRlKf3eonWbk0a7iprMGaM0qmmW2Hu8a5ZAF4Tp5DkbyrW99K/GK8Ute8pLRcccdN59C6NWtuAkDtAUhlvHMfjxlLU4iwIbGIkG+f/u3f1uQ4QLhe7J1ptwZ/5AgMA0MudwsBPqna/vGv/HV3VmuA7plQpPKzLkhMDQzIpfvMofa6zaedtppY5IP/B447MkFnTbclm6JMbZ5LszOZ0oY71040u/QC2nX0POKFksYEsYWDLxnXLOrLf1breyq9dZbuJW6+8p/+jdEF37OY++gOTgg9nPqqadOukKU+iMoWJ+Ud+zaxp2b7yrjD3vvvfdnRkuAstTOtEU09/2XUsr+9iyKQDGaM6tzF8AIGDj8gBBatNoQKUwsyEmKaE7uIgju9609ObAG5F5O14qrhiMQYU5DTJ7fvZyhZ/pvEx7QhYYngL+HNNn0v7T9yZOf/OQFCwMJYIYR3ete91qg3fX4xJAWC576JPna1742etKTnjR63eteN4nW1HPZnYKbD77Y1Bdf7DOf+cycEzzp/UgOelI4k0obwecyzHy6ILTrwEyzM+TuInO/h8bVLhUzCP/HvUFdXjDnhVoWEr0drpt3e3vd1k47/V7ez+lp7CrQ6dQ4s3JhAey2Gtf02SnYxB+65u1yel+Zj3bbeAzdPuPK/n6n5BoPWCt2t1rhdP9dti2TAO+jiPZ6O21QNvvPcV68hWfmSyxrjmqtsia24Dg3JlC86NBSrJZ06FDxvi2wktS/Vb/85S//NFoGWOsERTH4M3/zm9/8CYLJoMeExprgwA80MXyeDFr+R2IzeTsBWts1g4rfMLERsqiIbxB46sIAmKWVrwk8gYfK69esxRh4/yc/+ck41k8OIkpcBVzkfrYO/8UvfjGxu2FIQAwJpaF6mcjve9/7xtnKPYuKesAx9WTcMKE5ECnvpp3/+I//OM5BMGbScftlQVNwH6sibqiAGTDP+r8nCO01gw50n7v7alqYZWUYd0NxA7tfXC51wUgd5EWA8tsMDzyjAfdx6dCFQLLM2DqlCzGe60wflxCKkoPaXTO3C8r4pE9m9EP05dgHz3WB2QUO9XZ3kYWkrR4/g9LkVPDVM+I/uK2wGOgPePT52J4jdkEFyjMypk6eiQKUd6Pkzq3RGGeeUHcUVaWhHzJaIlQbr0l7aFuVf1oJnmXZ62mtExTlNjq7EDXNfGKQ0Ao96YPcfIJQfI1kICQdMFk2nbkZGLi8m9Xf2dUx0tw+zRB9GFd/L7AmwbCU+7OEguvp2mB/jkkMcfz2t7+dxgGydiLae3B14IEHnv+Vr3xlAfHzfmd+nVlZ4+7abfCUPXd+/OMfz28VQvAw96MZwaDy24HtCOWXv/zlU/wH79k18973vvc0wJd6dt5559HjH//4+QSGrlV2V4F9znYvkF1it4SZl3HN7yEhQH0eD2vhndmYuXrfK+7DmG1t9Pf9e0iAuUwz7GyalzVAPv4z7TDzDdhtC27sHrIGzfusOE49BKl5lrJyL9cIdtNeM+gha8ng9+yWMiM3IEAQJoDnsl2cVgD8jhfmGifMG7uzLBwYU9qeviehwHQQyCJeNhWk7po3Y37vvvvu0x0gar6cu+eee356tESoesbdkq86Vu6yyy4XjpYB1qoFd4Gb3/zm55TP7rx+IHkkMJMrg5n/ZDhxSEiQk0EIc3nMYx4z+t73vjfVXg2dOLMvSzbwgqgheJ49/PDDo4mPh7Rtg90UHTxR+jMQ2JA7rLfVjGZI8PEdHKTvYRY5E7u0/vkDTdwWC5he36zfvpZPfK2vfvWrczrelMl73HgOCxDNijGMcNh///2nuI9VkuQB3s019v2fJawM3f1gpmS3FWCfvGForLpg8OpX19dXCRvPXTM20/ZW+EP04e+hMfDY57mMQ8YlwhkG2vvaffG4dS1EnA3VXX/GIwHtlEG5MHrGPYBA8pjarz6L5lwmdeUa1qq9BxZC3SKkH75PPNJzvjN3u7BtDdF/jyXvpZ+Zf9mM86ijjppXkhKDQ1DkWlxROc3vgAMOmFrQcUsFj+XlOKxcyb8ZLRFq3p0DzkW3546WCdZGi+Lc0ojOyW80NYgYjdUMzpMzzyVfPBMkrqRybwy6jeweyJqJAGX4YJYIoBI04z4Zedf/O6MyDDG4IQa1GDOEgHt5/kbDzidaftpULqeYsgu2EegCxxNpMWY81P68l4VFH/nIRyb9rG3q8FhxHzxHWCSNkGM5mWj5ZDfcoTRIT05rUUNM1X3zO2YWkwHror83HtDgiSU4FmFLp48VbSPonw/auZ/r2rPp1W1wmaafCIpiRgsCpPbLu6yu7dsF5rHo7TDzJPHEwsGabZ8z3f1rqwHaMc1gpRALcbtNF+DW952J53omsgQZN1sJns9cW7Vq4X5ona6ol7FnE0baELwkK7NbqHk+KfmJI8ZdFSW44hsfGV0MqLJPpa20r+r982iZYK0TFCVJr1SSdTXExuEo+c0isiCDDfBwdSSQjbYAwTzwgQ+cZvtAoN2vmHcjwfETd4IqQTHh+TWBGRUwJDC6ZmcGtKZ6uubYwYyT9Lt3vvOdk2JI46Ey+ruzBJTb1zXlfGd16Zve9KZxYiFomD0/3oJsiNF5Ais+NM4493Fxe/jdmeks3JtZdTcbYAbmOukb9BiAdnB79gVrjktQp5MJzDR7HGOWf9/j0scpMJd+PHZMhnfpj9vCBnu0xa4YMZ2LuJksNJmLfhfli3omsp7NUM2kPUYWDPTRePd1+sP9IZz18YfBY1l0pcCKRRdm/PY9x2Xoe/gLEIshilFiqLmH2zHlBH9zi/6SIHLW85///I+PLgbUGP68yrkQQTmniJw8WiZY6wRFmcwPKuTdHEvCExq/p0/mCqJjRUAE3lYgmtWuu+466UwBQggTSs4+Eh/tlbLKKhlXeRMT7hCD7uUOQddch8qzxkd5XSuzkDAjw7fMtfhC485JFhgT1eV2fHTm6HZbW5rVtsRD/uu//mt+BbB935TnYPcsxscYY+1lJ05PSDNuwJpe71tnEtYkh/ritvQyAjD0rnnTP/5boFkIuj7HUxxc7d9D0NvvcrNVSlIuzbD8XA+6k1oOEJDmntciGU/MGdxUxhH4MPPku9PXkIJleuzzt4+zXVC85z7zv8cVOm5sTXieQX/dTdsVFOOHdpSyM+G9BLJzbauttppfy+E2U/T973//L9/xjne8WG6jUpT/UuWtom1zOFuWVdmBtUpQfPOb39ykiPRJhdgNoqVGIMy5f6aEGL9rNGUERa7lm0V53ezP9trl1hgnlhEwgQaRMQNjcYTYfRQkhJENu1Zpe+5uDcyCzmyHrg9NPK772xpQL2coRRTGkzTZCMrSXiaejNbehqBPXLez+2J7Gd/4xjemRzqyiWNcgBBt157RLC3c/E7qDANIDCluKWuLxpuZFn2jDlsqHbf0xZlRxo2ZgDVZmM4Q08TqZcdRAuy4p+z2gkGwVsiB9sXGo9PALOF29NFHz/fPTAyBa0ac9gXXWBbdAjLOu6XjchAwzubqWr619E6LHZ9decHi6vixdePkBuNlqL1Yr2j3ji1Bo6YLj4PLsMvOQia0/LnPfW7+7I/sNovQTbINVphjQ2lPKbfHjC4mVL0bVPtXQJ8pt4THlUfLBGuVoChivWEhcjuIM+4kGHgEBEiNYIgGm2scYIT5BpBSmwnwzGc+c35BWoBB4XxpTwYGMgOWPY4M1jKGYDFNdOiZTsRcs8+1azbWqj05uEYZ2Rp9zhU09j40ge7SWD3DBdMFQ/9tH23GKeNxxBFHzG/M2H24Hc95x5qo89Z5rwT5JJafhaMnqM/EWAyHXO/+7yGBacZqpmaB011g3j5iaD0FAsNCx3UxLlzzt58dEtCdpvKpOTImmN2FX2+TBQZp51iEpjMEr9tgJaDjyOsNcHHZ5TWkeNlytHD2x4IsYCbdlRLoZFZMq1uqKC9WPExfxoX7bBrzAkSUnBVzgezwrjwfaz+uqJ5AMEc73xxdTKgyz6lyVhmPVe+ypMYG1ipBURrwzoXkK3KkX5AbV0Z+s7ArSE3+fVIAEwTliM4QYayQfEeIJLOA1Y/xE2b/eBNefIU5szZENhf8m1oqgZT30Y9+dJIgrVNJDSaYWVqdGVpnyBYAZqi+b5dFd5t0JmgGmGsRlLGo8IfS1q5lc533ulDoWreZtYVAygjugzO0ZbRKCyly9Kl3vbbOgbJhzuV+Gt/61re+iOCEIfTgZR8Dxxe6/9lldkbidvR3nNZqK8Hl87yZ59DqcuN/iOl4jLrm7Y/7WK6L6ae7URh70x/XYJL0gbaZ/ruAgGl3ZYv3MrdCExlz+t7pwe0xM7YrrtN+tzJsJdFe12Mhuaqt2+gpxP42nhabH24zNJ3f4SdZxJuYUQRwEmy8ZiI8DWtGystfCmc/G11MqPI2qs/6rf1/e4LikEMOuUMN7GPz2+dNhPnnO8w8++qH8GDquRYIIea5fOfa3ArtKRHgdgqzyWpgBjI5+ykHy8M500ceeeTk8MMPn3ehBCwYgD5RZ2nmnREMvd+1wsV+WziQeWOGlnYEF1lLEUHrI1EhcD9vgu+M0xok9cEcLcwoJ3ij3i7sMInNvLo10HGYcc7ZyGYGfmcoPtNhVt868/XkRyB0YWnX0lAZVgr4DS2aqXYNvNNLv24GxX9/e1wT14kmG/CCPW+vQj0u2wqA8WWB2uMdtoYQDljlzgjr/cGNZObcLeMu5Lri5TItEDzGbmNX+ihvyPpkjBh7l00b/I5daJ7vsYaf/vSnz9MMLr7c4+Q8si3n2vvdUmBPH11MKNytqjJXeTyrvCuOlgnWCkHxta99bcvS/t9aHbthkIWUd1ZAGHqYRky3uDgiGPKb8w3yCbIjvTM4ERAZlJQT4ZGBjBURczxuqK0qoBQ/fqyOAMSVQ4py/kI9P15MOHDdGscQ9Ant94YEhP93JmxChsCdzmvIvYoXTLLSk23HXZ6Z4ixrwW3trqbeb56LMH/ta187JX5v3RxgLHkeJoEAcnopi7mcsmwrojP/jsfuorK7jQBtwEzHWjIW0ZAyAON3equ1axhSZyY9m8kWiNs3RHdDNNWFRiACIrsJ4IZlDlAfY2Ch1i1MoAv0Xj9jB00448vaNZaEBbxjFLikGBtr+catx5v2dVoyDju92mKnve6/t2Mx3XZLw/Tf3ZKAcVxupgnWg+mKsmhDoMbtneUp+cvoYkLxxo3ra6XrrXomo2WCtWLB3RlnnPGIn/70pzdPlks6GcYWgo8LKUiF4QTZbOERwFUU4CyG+OWDrASpU04C4RnM7NBYwaRxBETqOeWUU+bNPhbyzG18N0ku85BwsNsH6P87mDEOXesM2XUGcAnQBjTE7pYyQ+JTAni8yy67TN9hq5Oh9g0Jq669dmZMG7zHDwSfNRzB4x3ucIcxjAqf9yxBFDATzbW8GyGR8YqVGOXA7hFr9NRhAdD7OORysyAfGkszC+ObDzhyfn+f/LQNcIppjx9RRodZNOfv4Cpbn1jr99YmMEfe6YIQOnPAGHwjqBlzyjLDd3u4RlyG+bV69f9bmGdmayWCNjCe3b3Dd2+j5wH97MpWtwK9TXquOXZGvWTh9TLs1rTiZGGZ3xWbGG+//fZTnhblFoGJpRIlOLyt6j25eNZnR5cAikduXGWvMO6r7GVZlT3t4+gyhgq6XqmY+y7ZeoLJF+aeTf/C9L1i1Ps82f0RQcI6ijyTw0IiZHKd7yxAykAlXlFukQkaBMvt88mAxcow0fMxs+lMbmjiDoGZv7co6HV1sBvImj1t8PtcSx9ieUXDf8QjHnERf63Ldt29j7OEhTVvTxL6VOM3trZlTRbGYbPergu7b3KvJlFOPxy0HmYxfgsc1j6wOSCBXJi34xPcz7Op033oApX3LODQGP18D47SliFlZDSa7XocukYZF86dCOmtO2Bm9oF7jHtAGKXEeDa9MR4W+jzbLQf334yUsfAcYLywFCmL/7TdQs5j4r56bLolaVqn315sh8BBMEwmC2OCtMtzzlZoHx/cjSlv1113nXdlY8nkf3CR73g9iva+VXWcMboEUP34Y7VtFW1x/G454DIXFIWkDUrbvVaY+5e//OXRhz/84dGb3/zmKeJuf/vbR5uceBvrlXN7A8XFlEHKDo3JssknFkSQHkGD1sIpdfV/aiXUu1/ccsstH1wT9eT8J+CG35A95CG+Ie2O+7OEQn8HgrIWZB+tidBle6J6wsPkZmXtmFnGlZYtAm5xi1ssuBewQPC9PgH9PSRozEjAWcYxwn7l3Gptu4uowxMQ3Kycy8Khf3mvxnp8vetdb9LxyW+b9M6RXzmXwWN8IQhwdXmhGEzK7gdbDh4nhEx3JfldQ88Mwm1lRraY4Oi47+OeDRWf8YxnzG9nYzzZbeP2rNSZLcwFa+SdWZq5W0ggAMAJDJL6wAcn6oF7BMbKuS3HO2MG3502jRPTgd1b7NnULZI+l5h/faxtKfZkBY+XcTXkxux0Y4EGfQcPSSuvuj5wSfdmKm/KL6vceRfLXP0bjJYJLnNB8bOf/eyqNWjXDvKOP/74aTZTMpSK8H9XsOpLX/rSuAjpLxVXOC0xhmQOlIm1uqyN81/xildMcrh53mXCZ2+jnJWQ2AMrZctKmC6Lz5YQ9fncIx/5yE9WPQ8sofC7aI15hp1Oc3TkkItiFnSrw8LFBMOz1tqGmATPBGA8TKqVysmH+aGRDxFvrh966KFTK+tZz3rWVJha8AS6y8Pt6FrhSsUKeH7IGskzscxOOumkeUHRNUVPHAKZ7nfvT43XGAY1hHNbKuu3nVItRLz62Ron7eA61o0ne9/EDzymjxyR2S0+M2v6ZMWk93OI3oaEhMcx5ceSiIuOcnArOZgNLjIvjDMncvQxtWbe+0Nb+/oDUmHZP80b8lnbhn6pm2c607VA6C6q9dZbuLbG8S6et2uqp9LmP8KVcfUaDAsOt6P33YoBfcl1Ym0k5XDdcQrmSCl1t061o0sApQAnAH4eeJvjFX87rqdC5NaFtE0SX0gQOu6SHFhejP2A73znO7+qRybF4P5P+byPLwT8pQJ1+93gBjd40HbbbfeRJz7xieMf/ehHk6OPPnry0pe+dPS0pz1t9PGPf3zesshnbnUyhDSu37dKveWO+W4Jn8eXgDgbwowwKVfNeMiXP6TVBboG0f8HbGJ3zdraP0RvV0HXcinb79IOX+N/rKtkcUUA5rwKm+GeAEN96td7fIR2U+/KOX80E+j73//+/HkFAWtQnfF5cpvp5JNJlr1wLKSGxgZGjZYI2H2EpmkhQt2e4GYuvTxriVgp3aLqNEDZXTAZf1177uNpfFFGLOu3ve1t06ODrT2Da/prjRtLwsw3/Y8VH1zDTKnH9Acubc1mjBlzcIqS5r4azxaMdoka33YLMRZ9lXhfM9HHgTba6nSbrPzQLwtBx5aGdrS1QGXesrbL59ogMIxzVpTnfvhf8at/fM1rXnPN0SWA4mVXrLrWa26+vylBcVOCrdlAK4tSPvWpT+X6U+r2VsmjL1fUfnXvzqUZb/jrX/96r7IaPl7a6mOSvfSABzxgfOCBB45jWUTIZN1APqy/mHNTTTJIqaPKnT+f8LGPfexnqr7davBOzeBmomQlcPaI2qqC3lmnARF48ga61gVYK+zv+H5/x9oLTKO/b23Yrqvui+2mbgnScfr+sIc9bKp5sl8WdVmT430LEb7RRGk/jNnbUBg/WVDkoF7AbfaqYTMLtDRSCnM/ll8UgSFrrbe/u32oq2usgVlptS4DXMAM3YYhYWJh4Xx+t7nXaeY3BN1twRg/9alPnaZ+u02MvZmyXXJmpAEC6liqlO+22XUGrFq1cIV6F5pkhlkIWjGhjWa8vXzTp11+ft70aprAeu1z1GPGuFnIeZws7EwLCC/wA75g/gDCicB8j2fRtjk33GZ1/xn777//eqOLCRWLjcJ7IXibq/uqo2WCyzTrKQgpBn0r/idTKYvg4tvOyuK73/3uU0TuuOOO80RfQmLzZNVEoNzmNreZHs8Z/17M7ly7053uNE1/DcGyiWCEDcyqylvARZ7+9Kcf/Na3vvUxJYA+XRL9ihEYETTZ3iPM6dhjj50O8Oc+97kFq4jN3CESCNMakDUlvxvoEwSty4ROWRYG1pK6K4nyrVlnP6uUGwvrBS94wdQ198lPfnK65sEL4CygLCBmtd9to//cz7VkmsEMwJ21SSaQy7EGZyssQurRj370qFyR8wcz9Tb2dnqcPEYWootp7PTHQVRbU363Wzpcw+0CbZi5zaKJofZ3xpTfiafFVev3GOcuiKAVCwzGAGALb+rrbh23qeOHMk23uJ0ypzibhPJJFAC3vT7jxhZUYBa9Ob2aJJhutbFVRwD3FzTPwkBbK9b8u8AzTt2P8B62GAogIGzN9nlNgkN5NB5b119fj50yuhhQXpdzq5yJlc36vWyGwGVqUWyzzTZXKCtgW0zVCIAcs1kup+mq4qSwZpCyh9D73ve+0WGHHTZ6xzveMbU48mwEyoknnji1GnJYUQRHjtHMoHCCVFxPnPQVKKtk0wqaLxCQ5ZI5rJ7bu4jkXDTnZAvFbZPyktqW8oEhpmLwtc7A/LtrvtZEZ1krZp5oPN1vyjeTNngMMDFyhvbLXvayqdVEexCsZr60F7A7wsx0yH2V38GftTMmB77/3iczw4BTb1NeGM4LX/jCqbUIw8eq6czaeO44sQZsweE+uJ/WaPvzrtvWHh/qtVUxxAj791B7HBvJd+g9Sk3AeCCjivrBt5km+LbP30qKBY+Flcfe2jiM0oFf5rUZZI9xTZqVZYFKG3t8wooS5VIewtmCvZ8eaEEHTh3Ih/b4jTXqflO2rQKuSymd/ier0opFt9zyztxap2sUX3vA6GJClR9kzEv9uXL/NrYZL/fRJiV5bxJiSvAZSyBMOqmxEQTRHj/xiU9Mvv71r08PuYmlwWaACdJuu+22U0aek+iy6VbiHNFWTjjhhOngxNIgkyZQA7JtvbuV21FInfzrv/7rO8tVsncJl3MZxLzPdt277bbb9FQ2uxjMTAKe/J4MK5prxBp/FzpDO3V2ptHbQJmevPzPRIjVFd8z7zLB4uqzlsrzs7TbvJuAeASzGYa1Kd7L54c//OF0AhKA5541KdpuvzCfldqHiHZl+5ZHPepREzNwt8Vj0K0NCyLqtHVjZsA1MngQAD7/2z5vl4l/ugvzpQqJLnDN0FgZHrqPhdX3CrIAt4Ztmlnd4me2DDz+xi3WX2fg+c+qf8aJnVHzH83arh3TbHfroaW7jX63z4UuVEzLngPuN/cdA/FvKzIAiQx9bDoPoA2OUYS3gRu7tFwG6zfmrJHnFq+7WBv6lUfkmlXORo0fXOyFe7PgMnU9lab/0ELKxhEMIbSkukbLzRGCGZRYDjmprTqc7b6nAiAa1B577DF9liylxBUibIJsiDSIgklh/qeOemb90nQ3q+ovsp9KhEUFk86rgd2v2rWFJ/rcZM9B6OM1TfSAXRSeCGb+XbMBzPSH/LOB9LEf79iFBdeylqQE5+RmN7vZmG0cIvzuc5/75JjU+YmZ8ljBbaZJv3D/lZU1KeEz7tqfn829ZD799Kc/nW55zhkT+Gphal2rDWDu22UDA4lysOeee07PB8953a7bEzcAMwPXHhPe8cTtQtbM0Pg3sxkqa5bA5V5/lz4b/K6zcbKRZVbbR3FJILtr+NAFgOJherNQt+ByO6nXNOu8fAd9bTlRFu4XZ4/RPoRr2pRnUCIY555dN0TjXQiY8VI27zKu3iE2gHtqMlm4RirfQ25mhCourUlTzKzs8Cw0G3q2xQ7QRzZijPej+M8WpSA/ri6/frREqHcn/1Pc/7Pyqh1XGS0TXJYWRQ662eLCufMSwugTa4AAo41GEuO/i+sHjSdrA6LpZ6uNuFXCNBI4jfCI0InrCmKIVcIgzWmo65dWfOqsRv3Lv/zL+2uwnlb1zp+yxxkYVf68OtG17cUAgu4MkXswS2u+/ROwD5hjQiF8Tx5bDYG5yTp21lTeSbox+2oFsKT6JDVhxyVYzH/s/XuMC8oPxO3nLcKtxfOemRb4Rqh3dwETO99ZRFiWxdSaHBJUbnu3NizAbXEwBri04uLKxM0H+sk3qbAE22k35Vqzd3vcBkNXMvid9q3UfkmpL9tT5+TGWMrGj60Cxt97O1l4zhJwbmNXdHr8oNOsAVcNWU55lkygPBv80Ra7YBAkjqXAdN1Gjxn3aXNn3F1pAK9eS0MbOj76HOr7e1EnjJk+ez4xFghv5oHdcX6PdWIV39vn6KOPXvJ5EkUb8S+fbZqva2eOlgkuS0GR1bZHhZhDOEFcmH8YUTKYPvShD00DyWyiFSTe8573nP7O9t/vete7pi6VN73pTZNoxTnyM+dHJCUzRJnJnWBqpDkrtwObbLLJm0uTPmmxhpVl8cmybJ5eg/xHgnFx3cQ1RqyiTw4Trz/TjkpDC6xsm/gBNsPN8P0/kO8wsbTHmp7rdN3g1tZMIBpp1qVY07QfuDMRyo1gTpzDRO428hsBDYN33+xOcE65mToCy0KLNkYxeNKTnjT6p3/6pwWZM308+N210v6c/fIBBy0RHLaCaLcXedkdBfPy9d6uof+OQ8DI7PPPGcyhaWu/HT/OMOsaNjhnDHx/iAbsLnFbben1shg7rFPjhDISiO/uHpQpj3l3N9HW7oKayAKn/wipIbcm5TiDcNKsvYksSRQC37PFCVAe+Pb4e44M8QboLPywyrhuxWTvP1oiVBlnVhsn1D2Hiz+Nlgku6/TYrxXBfCWDEA0p23iUr226qVliDdluY8stt5wiMKd2hdlHWAQRWck9d2DROMIjsQwWebFZYOIcGYRI6Hr3t1XHvvV736U0rLS2d5U//HHF7P4bqyLCJ6Z/iHxIuxnSrgAm0sq5c3OjCXcG2xnWkF8bE/qYY47Jauvppn9de3IZ1Ol9sdCmIkB32GGHBUwH6BPGfQ0kJpSxcNs9mfOJQOHQKZfTLRszO7Qv6ul+dzOlfCdmkdiUwXEXB57dty6ULcCY3KtWXfQ4UgeqHa+wi2ZoHNy2TiuLKR1WAuJizd5dKD0WkCzgs1AxQx2Kk9iCspuzC+0VKxbG2ByoR3B2OkFrxyKCqYKzQF+F7/u4f6yw0EYrUHYB0UfHEqytd6uqj1d+e/dbBBl1ecW5hYOtGLvZ2PXBzyFIeN7txGLN7/DDisfuMloiFE2EUE6z5TT5W1mZXe6DU+973/vuXr7zV5ZJfUZp8VNGX1bBuQxYEJ0AatY2cNAHxM9CliA3TDyrkOOPJ5e7JPPqimkcU4zkHVXHzZ/whCf8n7322mvJAZ7SVj9eWvsONbinkEmVsuPyIKBr7ccTbEhg5Pkw54c85CHT9QyPfexjpynAHDBjZmNT39oOkza4OfHEE8dhlH4OAjXBpPwE4p3PHSDuY/eM4wJDGlYg95OJVm666Zh4MpvBxRLjHO1YZENCoa8xoF3gzwwB/GC251r6lq1ehoSBx8JWk1ezg2dPXDPMbiXY3cMzTHJn/HStt7fD77q9phVwHUhM4nnPe958qnjAO9eCD8aYRXXQBQJtyMduRYHn+T1krdnioA09rbtvn+J2pE5bReCF9hJLyAdvAri1sANPtoYYr67JW1h15QCa4/kVimnZbYpg61uUGPe2JPKbUzo7zXAflyK4Yk6Gn1U9j3/961+/pLUQ2fqj3h17ztZn6f7xNcBlvntsuXJOrw49q/xxXy5t/V4/+MEPjisX0te23XbbWxYxPe3II4+8ZTGc9ZM2O4fYnEE7ts+YDKkSCOeWpvvT8o2fUQxsRSH/TTe4wQ2+WMw0pz9dolWKz3nOc3746le/+mkVF/lg1XVFAubxE8dNFssmLq+cweBAGWCmgEYaQguDz3cJsKmmmImTva7iIoof+tvf/vZUaJoJm6nkdzK7ioHkBLgxWU22UNDSUnbSiONqCjARwsgjnNHgmQjWkDxhXH+2WznkkENG++2339QF1M1pLJbEKXI9Ez7CNXUirHJ9LsFgHk/EoQKOwTi+48mYT5jnBz7wgXn3hTU196dr0MYlDMDWjoUajMdMyQsGPd4wcgsW04XbZ9qwdu7253eONs3qa2utDs52SzTAeNod4XHsvnj88NSLQIYGUj7jxrs9OcFMEFwZfymT40cDEfShia7tW+NfofiLXUvGuzVzv8+1IYHY8U/ZMHBwjOKFkuqYiAWQrR3wQHyG80HcD8bIOx7kHkHvqmPD4i8PqVv/NVoa/LTKuLX6/PejZYK1YpvxQkrhZPL5ci8dWlo/ttqPKvbw+WL0DysL4yrFNO9RRHVmCYNJmWXn1rN/X0hdrwZgvfr/l8033/wHheBv3u52t/tqDcx5RYw5GW1Z8oj32WefTxQzfGlZFC+JS4y4RZhsXDAh9s9+9rNTJp+4ShizwcIihJDYSdxPYdyxgFJO3G3Z/ZNYSMrNtiQw8SHGlrYUkxzHXRcNHy0nk5ZjZCOQ4r5LOqUZfyDM+173utd0TQWBNLtazKy6jzv3IsjKQhv953/+5+hjH/vYVLgZYglGUMTqS5s4BjITI/jrcYtA1+KYeN6ew66D/E4fK640zeCK8OT6rPbbfcCY0C9nH/l98GomSB3WLq2Z2pKgvC4UzMxcJhvmwdziVs1WHbHiEFK8R9luo11DZq5dSLrfZph+lu/eFwTLnE99gbvIfbHikd/RsFEC7H41U2acoEkWw9nVhwvV9QxZlljyPVZh3NB/Ni7sloXpkgw++uMywQNjMbfH3HybEay45dwOu+zyTuZPKaF3HS1dUKykz3O4moyWCZbNNPkrQqTIik9/+tNXuN/97nd++ebHFbhefZvb3Gblb37zm3EEQhHRpJjl+bvvvvvy7avbYP/9979iBRL3L+Z63zDoDGRiFQkq50N++0c/+tHRV77ylYv45YEQVtJ/s6NriJ/t1RNUTrnEa0IwWVyYFNDOaJjIyfJK0D/ZYSkngc5YDskKi8UTl8zKuSMY2dLYjBCBklXaL3nJSxZMWuqDgM3U6BfvhqCTbZa05bSDyROcvPvd7566p8Ic8j4WBvWbQTDBrAmTucNEZ+K7fQictCGniUWAeQK7zR4H3seV0IOpnvCdIfCbsYDhgCtnzFg4cH+lzolw4Byh6nUnQPAdl2XSmiMcbe3Qdv7bQqOtPhCMtsK0uG6my3to1/at23rG1UXdthBJkfU6lXwyZ/LMXDroAreiLQjTe+pgfQplwdjtSuoZhri/HOTuVjf4dxvAA/jyeIMDCwifYsjq+CwMxu2KOxBeESvDuEf45t14K/JeWRQ/evvb336T0RLgzW9+82eqjPuw0WnV8bZHP/rR/zhaBlgrLIo1QBZXZYS7dfBXEwpDUELo3De84Q1PrqD514sotiZ9E+2RZf6PfOQjp1ZC1n8EzNgCmRgRFEzQCIVYGCEOTqLDlM92JFlLAlgTDcHOrY+YbuMQBpw4RO7HFZdEgGjtaD8siGIiQeSc61sCZlJCZ2x3i9s/ZK5HW4rf/C53ucs0yFr4mWYhhWEHtp7bK4s9f9JHVsnzAX/0PwBD8voXGDmaJIcaMWHzXATSa17zmqmw4CyTQN4bWkQVMMOzdeOPg+vOYDJ+YE5dc7cVEejatWNuARif2wOeMlbJ+EsiQwR7xthuDMcszNDM+OmDNVnjwULQ4+7rCAOEAy473LIwTfCAUpH2Z5w5OyafCInUwSaebO3hs6WJTzhQjLVhFxNgi4k+WdN3jM6CGzwb76zpsRDuykoXrham6ZPHYsWKhTsKWEjYChPd37jcjlcr78h/j9YAVf4m+Q6e56z2q4+WCS7zTQEvT/C0pz3t1C222OKJcTGFwPPN+d2BEEKYZ7JwzIAg2Ax8gvK5n+dyLYwzGjlaILt35hNGG6FipkV5EDx7UIUgw6CzsWEYJuWnPI6ahEgD1rjyzP3vf/8x5ULkQBd2NrmPOuqo0ctf/vLRe97znqmLqyy/6Qr6173udaP3v//981lrxCLCAKylGTeUTflmRH4WJsGEchA2ff/gBz84defRxr54ygBO0K7tlqDvZuS2YPg40BpwTIS1FnzYf8xnmFMP35RnfNDHlB2rLQsZEU68w8pe2gBDJTZA+d57yGPZ4wNmmABbh3cNnsWtMEfKhMlSHoLAbWOdkl1BbpcVDc7xCPCuDxrqbbNgIRZiOmcuUIetMePD88H3SLrx0b3QHDtOQAeOf0DLWI6MNXPfz5SH4NqjJUDh/9fQ6Bzu/ibWUVwu4Y53vOM3aiC+F+YaphziY097iDQpp0kdjcbniRahkNgDkzgQgogZHoCBslo15caq6AKC/3kma0nsCsBK4LcZKlq6zWYIPhM4Gr01ZDMIM7KAJ1PKyl5cJQQnxx133DRlN+ssCFwTsGOS0w6+zdAdZ0FL8yE0MAUz0gBMjT114nazYMES4LfdBpTp57pg7Jq2hZQZqk/O43na4eu02XjuPnTXa5oJHo4//viJXTMIp9xD6Fq4gEeYlYURtOS6ecdj5IyibnnCAFNu6AgLI3TlVcf460MbFkbW9s3MyTYjewgNHYGySqmrdukFHGAPWBnxwj6f7geNc5/nGRvaRbl94WXqTBvzDU+wy8/WghWQC7WvmbcLCc7KgrzTaAlQ7VovdYPjGodzR8sE6wTFxYRysfyl/MP/mYGNoECLh2ghhGSoJA6RDKZci4spO+PGLwmBOXCZ+AQmIxMk5SUjitPpAmYegfgyExMJoI0wmc3wmHAOErusaOJpbya2tZmugXehZb/zaaedNq6g8jgBfSYAWS6pL5ZT1lXAtNA87St2KiVaWqD7q3FVeLsW2pN+Jsgef74nvf3OFgjWLN0/fOu4WtCmue5rDrKi1TvNl29bFx2/TommTtyarjufz3/+82NvNGccAWZ8dk95kSD04gyn7sv3WBOEZcyNQxgilk5o3bEb+kUbcdemPNxRaPZuJ+5GvlMmiRG0FwbbkxFoC4Fw2gs+LWj7okpr/S7XVgvl0T8LhXgcwrRpixU2nrFVZqDdc1sQ3WC0BCgecg4uurnxXrZg9jpBcQlg2223PbgG+vhYAiG4WBch3IAZc7SBBB6TA7/PPvtMv7trA20ewsBlZB/vAx7wgAUTrGv6SR0Oo4e5eCO7bpZbYzOjyvW077nPfe6gS6RDtyyYwDG109esrsfchikiKPDlw6yZqF1zs0bntltT9ISlHCZKssayFxjQM4Eo2/+ZyBYY1iLtuoMB2aVnDdWuhj5+/tgigdkgRBFK3GeMg+cIZGf+OCBsRcGC0Lg2I/bzHlvj16mxADTmdSZozE4xNc6cVGHrxe9RFgzVCoPjMrbGhsbMH97BcgfAoZ9FUej04rUSLq8vxss72ZIowtJ4YQxMC6YtlEjwHEFTfOZGoyVA1X8y7ZtzX/3NrMy+XMIee+xxZpnOryWTKHGKmNLsZ2NNPkSY7aBZTWsN0tq0zVf7UlNHtg1hT6NOYCGKnCtx8sknT8wA8l4EGFqbNSW7X3p597jHPebdXd3yMHPrlo01owi75zznOVNhETdE6kmGGNZFNC36zOlo9MUMCwbG5AmgVYNbr/T1e1yPC8x57/R1iEGbCXYNkElOH2EudhWwIaXXcrj9xp/xChNByMOQTS/WfBnjxKdCew6w97Ub1OW4SVdWbGXy38zbeOlxi850VykN1EKdcaEexh7G5lgL7iorLOCZ+eJMJsbW2rqZPUy8C8WOXysIjtvQr8nkohmMHkvTCAF6NiUFl6ZDjyttQTBa2RstMdZQ5Uygozn42zkz+/IKm2+++QfOOuuso0LUGdwwRxgzDLhPOBORtcO8k3JioXA9z/hcgRxjmoOZDGZir3jFK8ZYOEwInjET4Fr33+JTzvupK0FoT75AFw6ekAD9S/1ZjHfqqadOYHz5ZI1IsrxY5xGwO4d2M/ns8+8avCc57zDR0KzjfqKermG6zWaePXhN3Xa9dCHhbVHYr4dMM5ibg8/UC17QyBEqlGPt29ZhwIFTKwAuv7v2YJRRRmB+Vm4stLlnjRcmxH20/wDKSdesL9BZDy6bcqgDgeMNIR1TARwz6eNl/HTFymPJfejGgsH4tSDvNNPpnvnMPILu4la2JcS4AkOCw9Z2tfePoyVAua7PRvDOtf2C0TLBOkFxCeHNb37z2UUML836jWjLmSBZoZ14hbN0AkxSuzWYPNa2WJOR50htzf+8GzdWUk/tw/dky2K3WBYILmuenri8by0LAud6Fv895CEPmTjTCPBvX+uB3XwnfpOUWwLZ7HhKJhaTy+1zOV0gdG0wMMT80cxTRwReXHe2jvzd+9WtCAQPAorAPEy/Wxy022UFet1+Lv/Ju4dhoj17TYI15uAih2r5/GueczYT7XeMwi5Kzrbu7bGQ8JogK0AOAHerpuMUoeYMKPpkCzF0T0AWQQwgqDvtQbdkRpmxuw2ONZhWbGmb4XcL1zRm69VuN3AQPpByyYikz6SA0zYrC86+Mz0UTpa07VC9vzFtI7NuuWCdoLgUUAz1kGLgh6D5YlXEHcAEs4Vg4rCmz8QK0THALFTCDM9EyLkOYQ52WUC4mQRvfOMb5y0KJj4TC6YPMcO8ycwIIFRC5Le+9a3H1b+J3RaUExhyQ7lN9DHuke985zuT1JdyiccQjIS5WmMP2JqgHiZ6ZwLWjPmNBhdffhYf5pCfWGS5Z2E6S0AAFoxuW9cm7Z4xfiw8rVn7PVwUMEYYa9f2PRYpMyvyweOQAPUYwXx6vMPWmAUIVojB/Ql4YRpxirwXDbpn23WFwwKjWyrpU8ohXtet3m6ZuU09SSDleI0EVh44ynvOekNwdcuvKyKmE88BmDSLPkPz0DmuNAtuKxLURdYUsYZSRJe0/VAWH7Op4Jwre/VomWCdoLgU8P73v/+cLbbY4vVFaOcSuMP8htgD6ykVkUlvSwJAuyNbJNoVLijS/h73uMfNMzoAbSQafLYSIc3Vvme7JpxRYoKkvakrZ1XsvvvuYzMf6vJvM1XAWlbw8aY3vSmr6afPYzXF+mLyOvuDdltjZ2EV+PICOJiEg+Pglt/5PO1pTxu9/vWvn65hSd9Yc8Ckor60LUF3XD9m2r3/ZoKBPp5cMw10y8Irl0lg6PiGgfeyY0FmDygrHuDQGVdhhMS9rMHj6zdYaBuXxje0BDNFmw/NB3/5nznA2HAetBULK1DgPtc9FqPRwj22LNzs7rOL18oD5VsIzYr/BKBDj5M1/a4cWJhbkARyTg7tpExbSOYJHpe8M7cr9vzYFe6+M1oCFO5Oi5Bmp4gqc9kOLro8rMxeq2HHHXf8yhe+8IWfFGFtn//sZstCIyYK0DVxM7n8RsPPgMcyse8772TPpgRoEyg2M2TS//znP5+6qcKImSiAiZl89NUt0InLI/eT4nvEEUdMVwLbD0w/8nz6Gq2da9aMmGBp0wEHHDDdjynPhhFHG95qq60W4IHnHeMBmHDeuNCuD+OVj60n9tDKyu1f/vKX061OgutofFn3kQyVtC0rzIO/ci1OV9db2FhztCVifJhZ2E1jqxLc5JotQMp3uq3rQzBTR9qeTSmzKSInAiL8EagBhDH0CT67NchCL2vXKBF5llX+DhDnEyEU5hY8EqeD4WHBYQ2Ak05PFgxhdGlH5kAWF3oPMic/MDccD7ByRt9dh60N016fk7bWO10bPwocz9cXfIS2WDdiK8XCwYkF9gIQ54QXbLzxxieOlgZ/oI68X/jfbLRMsE5QXEq4973vfV4xwLcUU39TEfFKYgshEqf0OaBoc9+uIYgb0zMTBncUhBviyZ5KYWJOyYXAk1EUgIhhANTtNsCUvEipu2Me/vCHT3fGzXP2D/NMtu9gPyq7RZh4MJNsWphdZmHa1N0nj7/tKwaHPpGvrwvhP8yIdygj+ArTylYnSZsNnsOMWKTm3PpnP/vZoxe/+MXTfbPcX0Nn8LTdzNwMhraAx4wlYzJkdVqjtfYKQ8GtEppzvj5uxe6GtKUAo4NhOVOJd1inQnpq1uw4yyzl51oEVuoPUyfzL/+D21jH2WsMhknMzZseeo7kY4sxSgXb+yP4vHAt4K3MERqdFsGlBYcViT43+3hDg1ZqPH9xwyG4XE/wgYCzxeNycA+Ca66n3BIUp4yWAFXHP3jOoRQsB6wTFMsA5c//6te+9rUza+D/PkSKJZDgLaY5W1gEmNRMWiasg8cwNSYBaaZ5Pr72//t//+90qwq0XpvncUGxMRiCgG+yVGDsfi/Q3Ru3ve1tR8985jMncR+lX7ECkrWUvaWSUfSIRzxicsIJJ4xzcJS1OQgWYZV9qQ4++OCplRLIsykviQAwauPDbfGEdmCV+vhG+7V5bxcf/STgmfsIdmuG+R0Gl511c2AWadDW7O0+9DVbFQ542jrAkuB57/sT6JaDGZj7zvu4Gh1ngMljTcDgLQgoE8bKx0oFDDLrX9i8L9eyrX+UkjwXeovAYPU0fc3uyNmdIMw++OS44ggQ++o9lrY8yB7LNeJ+2oJ7QdaTrVCYOdDdfVilnUbALWNgtyMKm4P2XRkAl9np18AYowh6vG2BYskTs5oTfKc/8pGPPCXK4ZqgyrypBWh9X3G0TLBOUCwD1ID8vIj/mzVJHog2F8Im1gBzsr+diWizH2bk1caY/M4pD2QjwBe96EXTLTze+973Tl1NES6ZiNHgMnlhFBw3i8aCLxjLxcRqsxu/eVlN4wTSP/7xj2dPqCnzLN/4ZOuttx6XlTBOvc7GsrvGmnHOMk8GEjgIk/bBR13bsqbFfTRqW2V887E7wdkr9K9bTwghux2Cs5xmeNhhh00tKuOlW0C9v2YcZlIwRVtfjoXA5G19WGD0ejOmOc/EFitM3kKLelj5j/Ag/uXFneCNekl3xR0WF13un3baadPfoXPcXrQxWXNZ+5PEC7aZp/8Z81ggodFY3WjzHk+vrcCF6w0gUXzom3FkvIMrWxYIbdoK3i1scL9amNia81jZzUmbE8gOwPDJZPS79AnrAeWFLCkW8tYY/3K8hLN0jjzyyKuWMraN1xRVudccLROsExTLANne/D/+4z/eXr74e5VwmJoLGfhoXGHcuH6cntf93hAQaYGOG9jkZmEe2vDOO+88XSQXjS87zUZDZ+JiRfStuomFBHpArTO6tCEEG//zs571rOkkj2WQTemydYjdTHaTMDGs3ZMBkv5EiAY/173udefb4H56zYBdeP6m3Y4FWCjgNiHVkP7AALBQzJwpE8EcF1RZVFMNmved+WUB192Kvre+9hayuwd3ibPSuqXpMXKsIu8kfnTNa15zijs0XugNgZDnvfDS7jnwiUvI2XD4yHMtykCUkdBTxi1j6fgF8YMoFDe5yU2m1oQzuGLh8kyUmNBPhEWs7tSNkKKvuGtw2aQMdhjGarQ7ris81vxtMSKU/azH0QoK0MfS85f6ofm0MRZF+mvLHXy7j9A3Lkis7ECuBU81th8aLQEKHxtXG65qxarK2LIUupXl8bjU6ynWZT0tE9z3vvf9Wg3S6ZlkIfwQJ0E+CMyph9ae8UWi/WNVIBBY8cuEYU8na6P5Tgpoaf/zGVcmegKMIUAzcSYBmSsBTzqYCkScBXTRsnMWiOMgzgwKmMHHfZXNEGONIDhSXoQbC9jADxOPOs0cYagIPjK38p1+OWvI5XjRGtqxNUv2FrJmCpOLoP/nf/7nafmUyX1r4Ez67nYaEiSrW4xoaMGbtV6D8TFHNxPcKWZIrpOyYbpYEmTTcUYIVgdrGWDyEQxYqNAVmXdYu6H5WBBJtIjgIpuL+AlMOP/jwrrWta41fS7vJbYR16Tdcyxao0+4a+wiYk4M4a9bERa4VgjAv4WNy/D4WUkIQFd4ClDAaBtjFLx3y5Cy7AbNffDGGRY77rjjZ0dLgMLxlaqc9VAS5+b7FausLUbLAOsExTJBMcKzy5Q+iMPU0VadluhJb791gHt9hS+phfHrQnBcv2DupD186iw4ClhDhmAjQCDYbvJj8TQf54LUwkzq4447bsy2EQgWMzvq85bNIfpkEe26664LtmS3T53r+KhZkMdz3m0W3CF4uYawQ6CYSTr2Qf2dsfOO7+X/He5wh+kZF7TPgoE6DI5NeMGcy0Vg2yUG7noKpxkXghacF8MeM+aMHUcE20LEjWNt1njEnWPXYcoNzUSg0y589QT/Q5Ohi2TjRVDEos37cSsFvAoZ6ynPR9BkvAiE552cIQKDTLneCBHFyULeKcN2FRmfttbt2sOqA2dYYA7ymxYor4+/lZP0NX1gUR3ziecREJ5n9CHlRIC6rYXDb9ec+dloCVBjdVKVdS7vz9U/qfYuy7k96wTFMkJpSa8sgjgd0zhEhYaGJQExmxFYuzWj7r7vTK4IBIg/ZnvMd1a05r1+TOOqgTRHmOvQoSpmeg7CQYBJMbVmZQZrxoiLI58f/vCHo1e+8pUXCRza9cOEQbt3YA8BaKFrS8iZOGbKTjF1mqrdWnY3eHxgrjyfDROjLYMXMxsLHK4BxqlxxW/GNwAdmBHZ1WTXVa6FwcbV0339PAeOabOP5OyMlrRW6CJ0ywJSB8K5h7sq9LjVVltN16fkd3ff4SKi33kXocQ8QTHI/wTF80F4gRssaIQIfbWl4bEGX3bdepwDVoIAaLu7KruAYIy9pXuupe20EYvD4++V9ChH3LNVGwurlMOPjJYIhcerFx1sgNI01+9J1bekVd1rgnWCYhnh3/7t335ZBPKRTDCIkMVHLKJxYBDitn8fN8wqpc9ZmOR3JihaeAgs/5NdgmlP0A0tLMDkYXsHNBszSywN3kU7xYec+6kn1o216S6Yutsl5Rx++OETa6wwYnCFK8RuBDMQJoCv8U29ZvLU5fgDE92apTVN6jZT5n+sqGRB4WunHrtLAmjefbv37pobUhT6fQsIa5o8l6yzMGkzfNoCk3U6LoyIe1it4DcxiNCUtzVPbIYxYgyC91gCsR4SY4olQYZfAIsD69Bu1Qg1AtO4shByuCEzXxIQznf36+c+Co776tTerox4OxTfc5zGQXwLb+ow3XbBQrvTv+DLAozyqIMyrbDkOqnuKEU153630047fXK0RCh8X6P6shI8zuFhUtc3Gi0DrBMUywx77rnnC2ugfm6zOcRjxmFz1cQHUfdURhNwAGHBs/jnk20SCwPC4zhJ+1G7/78HTJl0BHNJqeWTbJZs9tctI09AM0/6UG0ccxYFmian8tltZRcSfUX7whXSXUsWLNbsAw4UIrjAO5Yewppvu7QCfGcH32wHEp8+eHV97m8P8rtNxtnQeQWdWSFoAtzP2SZFawv89BaytAHFA2aPAoDlmetYvcSwcj3/MzY9Mw63Shh+Ehxi0YTmTFPgy2s+aBtCCzcqdDOUMpqgcOIX0BPKhbc7wUqCXvjtjCTmlgUn92wN21qzC84KBc9Shz0FLLTzZo4oHJy5wXhaaGHlE5/ImJTgff0973nPX44uBlQ5K5zZGDRXmctyHOo6QbHMkLNtt9xyyyfUAE2XK6O5OU/fi2nkT5xn5IHu9zYTCoQgOfCISYr/Nx9WhcbvSQ76ZLLwoBW0KbuWYJzOrMr7bHmRezmetfp5kfbxbcHGxIp2mLRa2pn2hcEkxRK3SACLx0wPhpoJlP6EgYWB5DsfjqZNO/ONpYHW2t169NMLo2y92WXlfoW5ZeV2sr+S1st79l9zzS7DLkRhQKYLx57suvLzQBh0VrkHh7aOCMg6s4e+5j+ZTZTveJGziAg4Q59k28W1xO9YEtkKJdf61iMwYvqCZYeQ8K7IMGV2UEa5ob+hj2z/YsGHsGKtEPXb0uvWHuNry8NzzGPkeUa9VrbAIcpT+pM2kURCPxFovGe3H3RH7Ij5OGe9TMqaWFK2E1A4OKfeXY3Ldm4eX+HEE0/cfLQMsE5Q/BXghS984Vdue9vb3q4G/g+4bjKAmJeAfZ0Ei3GtEOCD2TKhIHr7qzH1IfYwkHxyLQwt3yyWCrhcCBkgI8ZBUbZgQDPLe1ndbLCWTN/McPP9mc98ZoLWhKDLnjhk2dj8DqGH8bMrb4QBq25hvnbfwXDJP0egkLfvICZ48hG0dpnZkjKD5v1kcGUDxghLuyzsFgIX3ZqB6ZBxBJP22hmYlDVi6s//nKWeWBFuxgBjRbud1cR/mDfC2rsCEJPId/COG5OFe5zMmGtxOUVYYVkBze0xfTZjlw80i0XDWOFPzwe3jXcASJ8z9lkhj8Ljw40Qgj3Ti/Z0a86Bao9tL8P3jHveg6l3ayU0xfYdCG0vMLQrDkGZfoHzXNt0003fe3GtiWrXeVXfatzLcy7FK9T/u4+WAdYJir8SPPnJT/5J+Y/3IafdmhNuAiYFEyVAbOLCltsPkw9g0pux2M1A0IxPCDUfsmPISDJjZGLAMOznZzJzZkbKzMK5MI8Odn04VhE46qijxrgSwswx1dl2nJRMJlJcVWHy0pAWBBopl3aiIVtTZE0AwodArLV22mh3kwUL4xWAQYQR7LvvvqOdd955gXBgrO2X7ozefnOus7MrwjsL6ZLujPYdSEppru2+++7Tflh4AwT96S9+cAsI2mH3KIHljEUgv8Ogs6oaTT/7c6U9cXGGnhiT7m7LdVZuY4mBX/AKg6cfZGQxLjwHHkOTP/7xj6e7AuRZXGc+a4TvHiOzJdED3t4csgfFrfkH7Bp0TIhvlDyEM/VYgEKTrHvxBp0oSkVbF8uaCNRc/Ltq1/oW1PW9or6XZa3cugV3f0UorfuDZTo/oQZsR0xwVpoG7JclOwNBYWYH42cydneGn8OF49XSeYezsJ3xYwGBVt3zuZmwnsiZpPFNZzuO97znPfP9sTZm/24AlwYaFanDBPtTBoICzZYU4HxgNtZCEbYWsjC8rsGTMYXQCaNHYNr1Zl872j5CHoZvbTT7V4VpfuELX1hw9gD1+10YR8//N+6wELPQL0I5/c42LVkdXlrm6DGPecy8sMP3DVMzbYEfZ/6QNEC94JaxNdOPQI+QyDoSYkkJWOc/i+kQQJSX9zkQybsJdHxA53aDoQUjuKBD2o5w+cEPfjC1qLbZZpsFAXtwZ5cfeO+7HkDDnh+OA3VLw8KHa07+cBuwvhgDl2HBzb1YvgituSD9z290oxt9c3QJgDEMzWROFX4mRStL2nl2TbDeaB381eC9733v6vvd734/KsaXrT026uYqEwmtIwRF8BDNs/v80aDsK3WKIM+hQcKYHcxG8JgJQqwwsoADbkw6Z5gksJ1tze3rHnKVAKk3Bwll+5EIg6QAxuTGPZZJlGuxJEiPpB+0GbzQZiZpt5Cc3dWzn7A+8A1bwNmKs4ZpNw3v5blMysRsou1nciY90gzHwoqxsqXScRSXzkte8pIpM07ZN7/5zUe3uMUtpsfpJj3X/neXj+XqQDX+cjKVnKraFy/6AKPsrJvfiUHARCMMk/GWRXIIoZ4lZrz1GA3jbwEJncZqZGz7mNgtyHjElRW6ieCCzhxr8rteGAm9ECP0TgVWumwxMM4u2/E39yntytYmuJFJnSX+iKDAOsdaRjjWnLig+vS0PfbY47ujiwlPecpTtin627OsuJWky8/xmM8dcMABl1pYrHM9/ZXhec973rfKBfWYIoY/wLj5OOfZwbdA7vswGLRD/7c2DIO0hkQQGM3cQW2nqsIEmVQBNELn59utlPLCOKp/C8xzT1oLwEC+P/nJT85PFlxO0aoITrOzLJYGAoJ0YFxJ4MyuE8x3JjYLEmkzazLADW4ap9taqPAb5urdXs1wU+ftb3/7aZA7QeZovEDP0gFHCDLjLcwj541k8RpMPfWFIUZgsE4h9XFOe9oXPJHqGvB4BFjExrgHUg77OBHTSf85JySCj/rTrggtVnBDqy6L/nQB5p0DnKyRaymXbCUz6+5upW+44RAuxx577KCgt3Zv5akLLNyM9NNj0eeVP1xP+d6QkTRy483CGaHElihkokFX1b+jSyH41OgSQNV7ZtHDWXZbF25zkNE2o2WAdRbF/wJ8/vOf/9lDHvKQ3xVx71JEsqF9p2zPgaaJQLAm0wPO9glbg7LrgMkC0aCdo/1TJ9YI9RAU778hQCYXwcqkjMaqgMF0s92aZdr11Kc+dcqEYjXknAoyqsiewQVh1wnuNDNANGi7gZigZjRkAlG/rToSBiwAnZ2Gdss1BAP+dVtPPBP/PYcjpa64aqJl2jKzbz/Xo61n1XrcTUl7JcbQgdXqjB3WFmNk3AdyL/i1bx0lBRdR7iWWkDZFUIcBpw+pI3GGKAOpMwFstu1AiUERsbsUGnF77DcHz+APzddCBprF4nXcAksTVw0bS/Z4GILHChQ06Z1cGT/PN6dZc8/zj35ZAKHAJDmDXRRIh/VGoAg6UsWh2arz/LIin1Hu3ONGlwAe/OAHn1t4/+f6XBWX7hw9nvGBD3xgyQv3ZsG6GMX/Euyzzz7vfc1rXrNeBePeVIRyBcxQr1TtW2igkcNcIEomGiayBYo1VQjTgTc2K/NENvMEYKpe1xGAgcHU0/74zt/ylrdcpM/dpxuI64k+ZbsDFlBFq/V6jXw4WCjMzitgvdIWlxUMJXXm+fQTQUAMBMFHW+y+oq1cg5FzFoK3P8GdhSDqgdC4jyIMY2WkH+94xzumvvUIgQjE+P4RjomVJNU0MR/q7C4/TouzRko8IJCysLZoa/oQZoVCwZjZEsr1jEGuh3EFwnRTbxa8xbJJuWknsQ1oCSYIva1uGWOMO/jmPllP0C2uRPY8QqiAC8YFiw+rAldShFvaHpw6CG3Bw7MIGVyJPaZBUN1jbOUHi9D94jksX3aKtaLDfEKw+vha6i4cv6kUik+PLiGUkLlxuT03jtBn/FN+4WdZDi9aJyj+l6AIIhT/rpe97GWbFiN7SdITSFHElYKW07UgTHtrhhCvc9HN9CwkeIasF2tRlMFktrAIILwIBHsSBjJRE2CND/2jH/3o6Etf+tKCsj3Z8c1mYud3rJCkeZIBxRGOAIw9bhFWtsNI88n9uGVwydCmTNiUB+OhvUx8u8a6gMx9zhPh7OcetPUaD8ajQ+rHYnviE584zdZB0wyAb9JYwRPuRp6zlm2XD0I65QQ/uBf5Rph0lw8CJteyRgFBHFxkXUvaeMIJJ0yFXdpAbAMBDe6cUADdwPQBrkFzpsuUnXo5OtUxqOAD5QDa8WJUaBl6zyl/cfchvGwt2BrHejQNYP1QLu/bEmWOOPje3byO4VEG9YOv9DljFvrHupubI4eVa/Hfd9lll0t8xnXharNq/0oEnuKE1/3ud7+7cVn+Z40uBayLUfwvw93vfvc31NeX0M56qqzjBfajmtkx4XCD+BqaF9aKYxFo4DwDc7Jgcllm8mjs3YyGsUUjfsUrXjF1nzBZuoUSN1UYAy4HrAHO7wjQdgejvUsubWCxVRgdDJJMFiY8mhvlOD3Te3ChjSMMwVkEGe3AVcNE7Awbqy9AxhbbOsD0fOiOs8lg+OAJxpxn6Z8ZLYForCxWOVM+Kcy2zAhYE8PB1ZRFkHk/FlDcZFkNHYERV1PqSFzCDNh+eyw5Kx52i4J7Z2LRR28aadq39k6WlnFt1yRjmt8RFqz/sQvOcwZLxu2EWXuHZly13bqnrd56g+e7C9CWPspEysdyU+bX78uifGYJibNHlwKq3itUO1Y4zjk3JtG8LrVVsU5Q/C/DrW996z+X3/dpRWy/gmGwv4uzRzLgZiwQoyeZfeYwLAKzYQhct/ZFjMLuLNoB4CIImNiZKDxvhpDy4tOOG+rDH/7wNH3RwcNA0jzD+FJ2cvJZVe42oml5Q0Deh2nAWKib7CkmY55jFXEmpl1TPaCMy6NrhTAItoqnbV1YO6CLJkoQPZo+mzVyQiHtB/J82s42L/znA4Pva0QcJ+B36mcvJYLvaQOr1hE6wU9wlgytZFdFQEQYxN0UIRMrLWUGh+zi2i0Kp6Q61pO6I2TiCqIt3LM1ERcJwsZ0aCUEV1DACgIKD7EaxjT9w+UCrTKfaDv05vVHdgHZ2nCMzc8iRNyn/E+/rEgxVrh8k7CBoJmr78Jy9T1vjz32+N7oUkKNx++qvPO8jmOuLys2QKO4FLDO9XQZwN577/3zV77yla8rwn5l/nf/uAO0XVsjfTaAeYzryGayNYvuIrBbgwlp9wFlQHBoueRnW/MKY4GZw0ijkb773e+eLpD60Ic+NA2O5qjUBHkjHBCMbH3ABIbZE6Qlq4fJ6/x7r0QPhBkyIZ0eSH3RnsO80BbNIIw/+sABUmizeZ9rtMeWSr59hoNdgV3LA+e4PHBrRViY0ZHsQDuxWNBoYUZ2b2AR0XYv7sPiCkNNIkGuE7hO/yJYwuTzTIQEG/RZOJhGoE1cp1h1thBzD3ci789tejdvNQQc4MaSwOKC4YNv8BYAP7jSYtkyX2ijceU4CmM9mVz0DBT+U4bjfNA6YxXAymF7dQQb2U/sLICFWu+vqrZ/+Ja3vOUHR8sAhdPfFz6zovbKuC7n2rdhKUvZxuOHo0sB6wTFZQQ777zz6w866KAH1UDuECKM1ppJRmZJwFoRv7lugrZWj2bsZ5mcTA7cHp5wTuszc7FfN4DvGybt4B+ARZDA9fOf//x5gWMtO1prmEg02/wmO4dtNWC2DnZb+8S1E3yxmy0rvQm+ooWnzJQPDixojC+Yez4ZD7QyGAOCAGZpl0NndODB4wfuAIQt53vYkoPBwog4VvdCrQdB48413EMW/j0WBY2wTiJnr7MfGHs7kWTB5otzG9TNjyFKCIFz6A9hRSou+PCaDgQXbkfHBWibhaDdojBrMrYQTI4T5N24CzmHPWChi5vKWXDUT5v72EDj3jqGD+UHWBNFzAWLNbQZsBUzV/63Cv/Pi4dhtAxQ9HJW4ecCx1DmaHSjav+d69Iho0sB6wTFZQQ5nvBVr3rVfqVpHFhEeAViFRAjBIVWao2XSRXA/QHhInRcHuWQaQNTQdCYuHB/sD+VNWQHthEobqt9wWjYTGIYCJM039EAw6xyPxoXGjuCJr9JFaU8XCcpj+A3PnuEbO5lgtIvct0JgHPdbbarwP3uTNd+afretVMLDQsgBAHWnWNFjIdXzhP7YD1JMpJiFTmLyQvKWNTFPWcXIXTjbgp9ZOFcaIG9tBgfxhQLJrjzoj3qDETAsaeRcef+gzNoGFq1m06B13mFJcA7zpoiNuPsLzNrBAU4DGABs7qfeijf8QcrWb5O3VYUaGPusXgv4xNaxs2ZZ2Mp4kaco70/Fd5e/KhHPerXo2WCqn89J7zYjVf3bl2/69Z4MrqEsE5QXIbwzGc+83MveclLXlcD/KwQEIffo/WY2XjhDlqxLQ5nxbCJnzU7M58wCrZhgGGhMTKZnKIJY3VaKpMc6wNmgc+fyePJSpm5nuciJHAz4OZAU6Q+NFjSU/M72i8LldiWBPdNvp1RAy7zG4uga5MB49p4s/ZpgRlAEKPpOq2WMsEXGiYCy0kIMPouOGCitCHWV+5HCKY/ZoYB8OGsKVJPA6w7wN0UhkYcKO3CEmNDyX5aIgzZW7dbccH/TjYf/QKfuKWcGeVYW18w2IWPGbzx77kRCK0QW+kWiwUYuOsKgpMwbC07W86pttBsxiuCIoD7lLPWOe+7yltdzzz/KU95yhdHywhz51FsCM3SzjkF68af//znM6nOG11CWCcoLmO4/e1v/5/f/OY3H1iEd4MQEy4RArdo7gG7PLprIZObYCxCg8kVwO8eQuZ4yxAuO1siMKxR2mfLRLM7oO8/ZaEEc7MLwPfDrDj7AKaZ9sDssWiIVcCMrU2mrDA7YidYJBwd68Cvs2cCZkowAwudIcthohgQAhKmD8Cw7I4BD/72jr9e/AYTYrwDPtnNQhkBinuDBADWylh5gPFn/NmpF5deIAHt3OODkIYJM0Zo+BYAVkJgoBa23dUXcGDciwsZB1toFoZeywBN22UHPlnPMBmIN0CP3EfAO24FWGh4pwLGqAsWNuFMORxtGrzkWnBe8bs33ehGN3rLaJmh2nSN6sOGc78X8Ioa4/XKfXjVunX66BLCOkFxGcPd7na3M1796lfvV4P5hiLCq4So0IbI4GGyoyH4O+DdKtFsHcNAu+d6vuN3TlAzGk/cEPbDB2C6diXZh+tFVbTPrrHORAKUD1MMQ8vkwRXG0ZpktvC+mMvqevf8wtXKem89x0dgaPQZ/MF0/N+BRharhbmw3QfxCePNJj19QcgFELR5DhcQzDrA2oW8g8bOsymLXXRhztTjdRHQAvXm22cyoM1jIQZSLnEfmDlpwU4UiHBIEkJoz9u+QC8kQeDnJ8uqWxtmsgELA7vqeN+KEEJ2yPXHuEKLeR988D6C0GPheQPeHIdz+qvpuQsMxsJ7rEFXzD+ywyIUktWHS1Rbj3+q4nbP2WWXXS4cLTNUmzauzxQRCGrwWXVvUG1YJygu7/CgBz3oowUJOO2V/zAL+6C7S8TmuzVfxzI8CZyjHkKOkAgBc1aDNcWAYyQBmLsD3GhWnvDOHuk+ajJyPInDNDloyYHP3K/r59S7JxWD+m75nb9bBJ/MjbOLkV+zfNE71PfNiultW+VuUWWt58wUzqWIQIzVgcvLmYJpF0wxfu20j7RNMyuYgeMrCCnqA2cIGsYOSwwhEeBoXC8wdKKBtV2PDXs6EQwOmC5wLbHgMNB3DcaVl36yrxYL7Xx8KQvtohXD5LG0wA8BYiyGFUofhhEznghPXGEoDbTHFl4XErbmoDNokAWF6U+UDOg1+CV+Yksb8Pwx3XQLBty6HNpq4XiBtrbJmJIGLjfVCWVJPPHe9773sgSvO9Q4Xa3atz7j5NhNtS2TeuXoUsA6QbEWwNZbb/2Xd73rXS+vQOOji6jWt2mb35ns1mKswXUXieMODhRaO0SbRKtLamRcQXYN2VKwZTHkigkwWSBQ3AGeVNSLi4SVyik3E7sm+6Su/X7jjTf+aU3yLxcjPbCY2E933HHHPw2g7YCvf/3rVznttNOuXb77O9TEvE/VfeOqY/OKT1ytyh+TV8/EdYCbdoITYhsBXCEINWeEBcBBt9ywllYphdcuqFxTDv28VozGz/i6LoQ/TIprCH+XCRPvCxApC6uLkwIZI3Y6tauI9vGuV8zTBlx5JAvYBYlyg6Cjf+AH2vFOAbZKUS5g4vQfevRaFwLFCHXwh0sO3HuXZcedoG8rWxYegF1Vedd965luWBFz1/572223fUIJiUus0a8Jahxvh/eg84TqyxVLsbpFPfaT0SWEdYJiLYHHP/7xx7/2ta/9v6UJvpgJa7cHBOwV2148Zk2L5+wygqi9A2sYG3ECDjeCyaAV2nfLxKJcxx9oV3cD2YyHieEmSZpmCYXVpQmeUxr9Kde61rUOqsn8thKcv7njHe947ppwNidAfjL3+a+f/vSnVzjppJM2rkmxYwmQR1Q9N6s2XK/as16PJ9A/Ww5hhrEsSDnlVECEa/qDWU9fwQNB4WjyuG8sRLq1kDKJyaDZp67ECsj2YqFdnol2bKsozxD4Tl1o59AE/eQ/W7hnzyniOikjY86Gf6uUnorbzGsawBvMCNzwjLV8AObsOATvs17DcQ0sD7ugsJKI4TnVO0KCflM/ShFC3kLUQoLrjCOCzzEHKwcBrFB+O3aDECSWlu8Syj8rGn/gIx7xiEu1jmENMK56r4fih8Wr/m5U93eu5y7x5oDrBMVaBDe4wQ1efswxx+xexHeTMAYmKv51iNoZTRAGriVcJBdo6w+ecXDQWjRuC5iRTXUYGNA1Lz7OjHIwHCHjVMjUWQziT9e//vUP3nzzzd9Xr32/GNW522yzzVlJGx5dQqjyEmD5bX0+XkLjM0ccccTVqk/bnXLKKQ8v3/Wty6q4RX1WEmxkywf6RdAXHGPxsNKaZ91v0kY5bAnt1Gmu4IJxI6bg9GILDru02GjOO/0i5NFsU3eEDdZZgD2kUsf/1957gMlVXemiu1pCWSi0clYrIiGBEAYjEJYAg00QNiBHjAPzwGDsO9hzmfE17w0O3wzGg3HGeIbhjgfbAxoyJhuRwYDAIggFJEQr54CEQKHr/X/5/D2rj06sKqklav/fd7rO2WefUNVr7RX32nJ1yc3IulP6/1MYsk6XXEE2BqJB0K6OZ903Nn4g4am5FRIWbLP31aBuFRe9o121j1YuhabWbJD1Y12eNutJv63KtkjAsARJUyghQ8qMjq1gsMqXjY8pNmH/d1GWpr4jBSCE2CZ8h+nf+MY3qpYGG4Vly5b1AI03WN4VzRGBwJp81VVX1WErq56UFxQHEGCavv/zn//8G2CO+0F87azrww5U1oy2prM1/20aoSVmDRDSqJVdFAS9mn3aNpCsd5AmSFgXlM1QsZqVjXlYl1TglnkSA/sX+J3dPkAgNNZywzOfvP/++7tiUBy5cuXKy/D7flmCmAOL0nOtJqaBWwM0fxPm6NusKQ2+igfod9dgpAHfuvE00NiMLWncmkimtEteo1XuNLjachqyzKTR6xy/G2Mzyv5i6QgJB5Y/53P5XSRgXnnlFXfGGWeU3lX1rQhZHRrMJTjsxDXRlP3/67cgFIOwg7utbWXjHBKcWtRHa6UrjrRnT8s1322g2rpYZXnxHpaeJazDCQmWh4Qod5+NBYn/FDOy/2/9Nvg/tD311FO3uH0M0PUofO8eUdaSiXUNmzFjRj0ERVnuLy8oDjB8/etff/QXv/jFtxGvuFalkzXwiCAJMZZ1cajN+oqt31n9ZHlYa0EMLe1RA5idHGZjJ8qJtymyh4TW1NB7Enofk7LZZ18JiTAKf51otBXbS/fdd98l8+fPfwTvcSEGopP4nhxQVJdIQkKCRL/NTrPyGn8L1U9iP2qPEhaE3A82+K12uS70m9nijPrf2ZiCXFNWC1awXKVQNNgqa4yuJMVH2JfXan4MP1nmgsUANVOeCwAxRsV1unkPFQ5USRW2WTqRG0m+eAkAm7ZrLQ9LR/oNbDrrTrOYlAY3WhSEJhjKrRIWEHZuD++hEiSErDzN1LYCwSoyVuHRe1jLmJAQtO5G0bq1IMUHwf+2K/oehsufd/sQeMYuvMcuqxCKfsS7QBfQxEBXZuaTFxQHIC677LIfX3vtteeAAI637RocLHHbDBFCWpPVJiwB6VOELSHEAYNF+6B1lK7nsdIY5XMXs1kGFcRkdnaooMFS7xMMeF1cKyAQTr/H8/9r1qxZR7/44os34nsebst7yIWhwUMasAYJuXQ4iGlwV8KBBg+VwFC9Kt2XsBlodjlO+ecpuNRPFqAmDMrKlHYv373WuZCQEH3w+bwfjxUP4AxvpUbz/0zATVfqy2VqlRWlOSU8VvxK8RibJqu0Ub2//s+CBiybLqwUZBs30G/Md6Kg4KJJCgpbRUcxGlkiNibCY03cVJxJBSJtooCNqRma3CtRIWxNW/4y6aclmjB1nJppYsGCBfVuHwPP3Yl3bbKJAQqq6112//WH3+nKhBcUByiGDh36ZWh9fwYB95B7Qf90ErUYWMX1RNRh87cplMJns070yRXYXn755dKazGQypktqYFLRP9Wtsal3GqQkJFTkT6UniqFsLAv0H1aNOvnlAu/EH+b5u+++e/q8efNuwcB5EtuljZp+zQODLDFuSr20300+ev4Wmhtiff6qZKuBT4OUgqP6TSWMFc/hebtkK8/LgqFg4Ax3+uIVl+B9KAgUH1BgXAM778H3Zx+5l/h/ZXKBKsaqtpbSqK2LTum2tjKuSq1IaEhhsHMubKxC95DA1G+h1d9kBcl6stYv30NrOqjCsmi9ziR8KMhPYaGy6fpdrftI11qrLWzlKZAuwabvauMyYaue5+HyOxqvfL/bt2jA+3TiO5DurAuQ7xIkrHRsbGwsu9y4FxQHKM4777xFP/vZz74IAvhvEHI7G5iyy5nuChX1s4FQax5LI5PbQIzKe7GWP5fi5L1YalpF9qSVyg+rLKB2ZtF4EaaeqQHV+oElrEKmPpeErSi3uxqABbV+9uzZp8HVdyqCgjMxQJ6J36QL3vMdDFK9+V05CGvgUAaOqt4qBVharR38rJDmtXINacKb3EYSOPwtVctKgxT/dyq1Yf3stAr4XrQitNaFTdFVEF7xBf5PVXxQbjW52PTdeB/VCZMFwHfWe/F6TQgdPHjws/it3sVAeDwG7Q5KRbWZU3ZwlwKhdkE0RmiQZzyFrjBeQ8vCZp3xXVQZmHEYLYSlxAwF+m2RPgo9+z+UC8pmSMl6s4OsdW+JjpV1JiEst5md8KoYSSD0q7LCXBLwe5yO/1t7CS0pkvIIBDRDjET3x10Z8ILiAMaUKVMeePzxx68DEfxvMGKdNBelU1oNV+a4Bi87YAk24C0TnUzGJTvJfPDdlwr1kQGOOeaY5kFGqaNydYRnyIopBZtnbt0t4fTaF154YRpOzXKtjGCm7H3cbr311pJJMXPmzKaHHnpoGN7xBHznaRiwjsd3GIjv1kVWmR0crNvBask2mC9tlINbeFU+a+0RGhxVn0rzLfR/1iAvISS3pK5XmW8pA1rxj89mkJj/d2rZGixVniLY9mDQXQnL8nYMxs/g/ltx32HYuuB57w0YMOB5vNdL/N3guuu2aNGiE/D7fBptH8dvdSj6t9N30ECq50iZsbPPJfz4/Uh/FDo8zwKGRNjVZTOW9N1oVSl2QPB5Si/mPgWrdX/a7Ccb0xNvRAW925ryKeF3t65g9Q0E/QwoIt/cF7Oxiddee20kFIkZRiC0eEertOF/83F83OjKgBcUBzCYKoqB61pousdgUJ+u7BZ+quidrARpE2IWCQ2bxmn97Bws6FZgKXBqrGB2t2TJkmbm4mp0CiLa9RtsJpMYw9aoIqzLywazpY0pzxwMPtkdAILC4lOf+tQec/hWsP3nM8880/GNN96YBr/+2fjtJ+J3GY3v0QP/jzppkDZl0sZlNHhLY7a/kwY9/ab6jWRZELZQoP7H0nQljDWwSUOWi8n6qiFYivifb8TxHgzG7XHfQ3r37r0DwmM3tvd79er1Dra56PcABtYHTjzxxNTAJ2iUWT1/xLPvv+eeew6DwDiMvw2+83F4/mQ8v79cT3Krha1OvqfKuXAjtO653l3WDq+RokQLV6VmCFlR0vb1myswrxpWVqDrfyUXFmEDwnpPS8eyuBQTsALCWoLBew1duXLlV/D5G7cPgGdTSPS16daEdaG1+Z+JjifA3TsMvL3U5UTBeRzw+N3vfjcZLiH6OXsrgKoKmUqdtPMsbFA2XJuGBCP/M+9FDY4Cgpv6DRs2zJ188snNBQMJK3DEbOHyE9J8w1o2wU+tF2zy+p+6/PLLT+RpdxCBVgcG0xErVqyYgO9yDL7bODSPh+DrhO/cGb9jJ/wmdbIKFFiVMFHgmtCgr/RcMbvN0Vc5DQkc9ZF2rZiF/O3WQuD/l+5EWDBbjzzyyFsnTJjwf3HubQi9enx2xzUbYSGsQ3xiI4RGUzU13yeffLLHwoULv4jf6QoIkP6KXQR1j94cNWrUHuyP0WArtxFjJTxWNVvSoSwHuqI054ffnwFvWgsSkqqqq5n/An+XcePGNacTS3DZeTM25dcO/KJhxaL0P+E78dly50o4y5rWWvBQxN6CgjGy3DkMcYCl0gH/s9sRY/w4hFFzjIqbBK51r/G3Qv+/Ax1c63LCC4qDBDfccMMZa9as+TcwSD/5IJWNowlZNvAq4WGDrTKPadLTiuD6yMyxV6kL+nFpwsP/XCoUyHWUZS3ovmIym32lZxEaBG2Gi67h+/K51AR5XzDPMri9xmSZhX2gAy4YfO1DemAAHrp+/XouszYav00dmLQ9vvcQbJ1xPAS/Ty/8Hr2x30G/nSb+abPl2a3FKOFBKDhMrVsDLLVmDq7079PPzxUG+XuPGTPm9cMOO+xqCIH/ZrkYt58BgTFk7ty5X8WANgnftS2+w59gufzr0KFDO0Ao/AN+I5au6cbfg7RIQaEJhBAmpXuQZvhd5I4izeO7lH4bVYplN/yeb+H3G4B79baz6vk7jh07toVrRr+9/PmicUKfclPJ7ar/C39r9leNMPGWKh9ImeP3Qd8i/i9nfv7zn7/PVRHwAhwFQfTH5cuX9+P72Cw5/l6ybAjN+sd73Au+PxeWc64MKC8oDh4Ufv7zn58KZvktiLuPTEu6kBjUI8GqVpG0VWlNBImX2U0vvfRSaRCx+fBkFgoHbtSQOPjwOgqNsLUiv6fNm1eGirRjq9lqYJOLSvMPgtXt1owePfpkBNL3ZXmDAwL43ermzJnTE5ZbPTdYc6Px+9O/fCp+r7HY78p+Ckba1EZbPiQ8sVGDXZCVtAe0sB3/30OpYeKeyxsaGv7vscce++OpU6ducq0MWmLQaAthq+XXv/71OfgdrgFNjJBAkFuJ1q1SlbUGOH8bZuZRW6eFCitpDWh2Nn6Tfz3llFNeeuqppwZjsPwEzn0av9FhLIqnOSRcjleWmtx8Sk7QQEuEXVM25ZfX8rla+c+6YJWSrEQS0ToExp8nTpw4Dd+9aoL6lVde+Sa+248w8NdJoGkMoKC12Vj8pAcBVsV6WFonQXF4Nc+zfIzi4EHxsssue+j666//PAjxJ2Ce8Up7VL0bEqtcUwQIpYhzBebLUxOj2W41DGXPSEio5g8ZkwIFhO3Gjx/fIsBHKLXQTkpSaYZwvrmYTcLDzqRF/y5wSwxxFa7nezAgSMddH2zEM/zz4IMP/gzumXE4fxwGwSn4HMT0FObF4zfajsFyM6zIv+D33opB4H2bIYTffzsGuvboziq7RQxcdej7MmhgDLTtPdAen4IQXuUOEITiP83AoH8X6GY5vvunQHufwPdhNeB2wezqgpQNTfJkzSpawvg99kDRuAGD/9Wf+cxneL1cmEy5fvWmm26ahd/0c+g/A/cYj8+2FDwa2Mk7cvvZ1FkbP9GnnVNiizDaFHA7aVDvrPgG/o9jwYOc/n6bqwJgofXB9z8dimJd+N1tZWP7DoHLuQM2TrzLJSi8RXEQ4g9/+MMUaIxXg6mOJUOxDQNuyWKQL9emKdpJSarDQ3Od7iWWdKCwoJCgBsc6+tx4HV0YZ599dosgtqwIpXZaU93GROQ+2ROqEyVtMSgf0YS2/33hhRf+2HmUNG740UtLpEEINMGX/O53v/vd3dX2bR+o4PcHXQxrbGwcgMOB8+fP/z4Ul5FyudGNw5iLBkYoMVfCgrg6TgAJiPHRHXgs6G0I3F0fx/UnWUVGZVJIu3ZBKRufUAxE7jG5cqxwUJDdpimTF2UR4dzDeNZ5559//lZXIZ5//vnBUAjueOuttybbdGT9VlqHRGuUyAMAnt4Dq+JW/LZfSPvdLLxFcRDis5/97DN33XXXTAzoM0EQF0OrGAeTvo7EzkHY1h8SodjqnAwE0nSnP5tCgqApzaCnrAWCwoeMyVgFIQ1KMRDe186jIGyKoZkV2rwv10ogdGgyH+c8SggYd6OrUQTffzE3Btuvueaa/yPXG2lNgWy54b761a/efNRRR6UOdogNvI0Pbowl/QqD5HMYTCfwOMqaEO3aFFg7GMt61/wK0btcPUr4IJTlF0yOPQHtl6L5alchwLsd8S6DNSufChghxdCWjbfuYIwXm9HnJVhi/dB9Rdbn1TmPgxLQ9Ndceumlv4TWcDLM6W8hED0/qMpashSY9kp3EnzUpbIMI0eOLAX/aEHQUoBW8R4Ie/cf//hH9/vf/74UQBQDiFEI1gSKshzUZudRSAuzAsWmiYpgbeAd149jINh5eBjAOt4OBeV9KjJ2USVZswQG3W05b8t03ndBg78PWwvabOq32qRsSQDY1flsBQIFkok9pgimmdHeEVbH126//fY+rkJwIh8UxHVyJYeVNWXDhYUe3r8ev18j+C9XlWZvURzECHyyrI760zvuuOM/ITA+BD/o0bAmjgNBDgIR9cTWjgIBxLIZxLMUgoQrxj0Dgln3ve9973eIYZRMCmaEaAEdMQsHc86vOOGEE0rHys7ZFSy1qcwnEWS4bIiYSFqNsnzYR7VxgCEIxk3E5xzn4RFg2rRpO5977rlliEUcbUvma44JaQsunbKKSsJl80cE/K/EPTorlVhppKRPBYQJBdGbIooF2ol6hA1oKzanvhIi4MdBiBl+G90vdxUA994NHu+juGFTqJaYEiBszFBleND2OfDvavfX6sqZ4AXFBwCBwNiA7QFu1NAx+HbmDFkurI74QxMIuOnEE098F5bEu+x/wQUXTAKxtVV2krIkjFuo2bpgzIJBQGvCatBXDMJm5LQxFTrbhhYxUhqiuRfXvu7hPDwMGPy//vrr58D9+UktayuXkyxUuFhZHiO3VXH66ae/hrjFv0Oh+jqPVfjSKjnBOzRbEVKSVK0gHLQmFMewRTjtzG/xDATcl++5555/OeusszK7fsLA/bbh/XfLtWsznsIT//QeJsW3Ldo3Ib7RIWu6tBcUH0AEi/8kFtsDA3Ix9pLLhwTMgBsn5Ej7EaFTA2Gsgq4sazmI6MJCwLqcVLrBrgcgrU3uJzBgR9yDhdMecR4eBhiUHwNtvIvYRCdpyapTBe18J1yoG1wZoKKEwPm/4H6f4XwL3k9rgcgqsGuYq+S+Jk9qFrdNX7Yz4AumjIed7W3qSnVD7O/Xs2fP/mS5ExwhOAdCwPXnu6gcvE1ft8qcyqjI4sdvWs85THCBZZ5L4WMUNQowRnPGG4mHM7Nt5ofWWeAkPFuzhxDx29na1hzXOcskYVPcHgNjnYdHCCeddNJfQIvzSCMcyLUIUTDhtPjAAw/ktiYEBM6X4X7Xa/BW+RDr07eBa1nImi1uJ5jKirbxApslKMVIgoe8hGdNh5t4misTeJc+urddz0M8x9/KzsERAmHB1OntebLpvKCoUUBb6w8Caq9j5qaToMgIzIhiQJzBb2Y8kei0eI71yRJ1dS1XArNmt5hNs4vl77XZJEGsY+rdd9/dyXl4GBxxxBHb8fHvGNh2QYnZSVo0/vbGCtOGi7jnLbjfbq1LrrIcdt0VW/pGAkBBarmlbNaTrGg70z6cahukrndeuXLlN2DZtHNlAPfsxufZrENbkUEWhQSHPoOssRWTJ0/OZcl4QVGjgEuJgqIUCZMlQBcTs6QGDhyozKiSRcF9ntfcCVWsLZqKmntMiXMJDWt66znWf2qW/OyK4/7OwyOEn/zkJ9dPmTLlCLhoWJvqEbME6RJXIXCfpaDdh7lvBYWC11prxZbCkQCx1oZdTIrQAC0tX24fm8gRCJBxGOjLKkPeqVOnzpwZrpiIhJkmvirFXTEUy5+wZno99thjbfI8zwuKGkWwTGOLdFeuckaCYkoihQMtC5bx0GI2YgYRvtxUtvyB1bjEJLIybBVVq+3guBOId7jz8IjA5Zdf/sbXvva1baDJ/9WrV68F2O4+/PDDL3EVYsaMGe/CxXot6HCHBnu6uLRIlF3SVy6mPWbRL1kfoncVfjSVB1qk4FqNPwg0d8EzD3VlALy3UGtzEMrG0ruqyrRgS9jjfXv07t27Q57n+WB27aKdBmsRM8zRkquJAWyZ0NJMpLGokqmsAkIT72wNf7mcbPkPG/gjRNg41xGCosF5eCQArqZ5r7322tHjx4/fbsp1VAQoQs+/8847z4JeTxIvqBIv43SEmfPTfJ34Qas5SpDYPlKWNEhbxYxAW9muM/BlJ9xnI+7X02ZVif9sFdzw2u+HHnpoV7w3BUXmGI+3KGoUGLC7hLM0pk2bVnI9qVCaDYypTat62VXQiHD9G+srtYsWKehnU2hxDdd06OY8PFIAS2JbtYQEccIJJ7wDi/gGHYtOZT3LvWSVKmnxcknJhapaVIRoW0qSdbvKukD7ariQyloKGPc4bNu2bf+M++zR8+0KgjYOaGMrgXuMtbRG5XmeFxQ1Cgz4vax2I9OZxE9NylbFJGzmkny4NrvDBvFs0DssjGyRNS3rGmRm9HUeHq0AWND3gu6fkuavlQVVvl20rcFffEDYuQtaOlbLx2oegy2ho43tcOk+ftppp612ZQD3uBN8eh6EUxu5eJkmq3vbGAohl1iwTsdaWBWj8zzPC4oaBEz4OmhFQzTIEyQiBrGlEQUBwxYmLDfNjBUxErIabJsYS9fqXjYLw8Y0QMA+RuHRKmCsonv37rfLmtDAa+lbfEDY5WW5acEixe/EU6R5Cg1VIbD8gU+uKvhwudbR9u3b38C73gy+Wy4ekpWvd7dWvEqJBMUVX8e5DqtXr+6c9XleUNQghgwZwnovLO/d7NtUoE3WAjemzL711lula1RjP6yx2PxtEaQN4mlfE+20fgLBNgXJ8VwvKDxaDaDje6H1r5DWrRRZZRKJRxT0ljUsi8OubGfrPNlVC+18DNzr7aFDh+Yq9W0Ba4RF/V4GLzUqG0uLhdlJg+JVPZ/vuWbNGi7q9EZjY2PXrM/zwewaxOLFiztQo7CaE7fvf//7xREjRhRI3DRjWbqDGtEFF1zgTjzxxGaGsG4qpcZaIUHYZSP1aeMbhKyToM+hCFT2hA+6ZqunerQezjvvvDdvvvnmu6CpX6qkCypHGmDtsqrKMFKih8li2qsgpvrb6rPkFwzwr2LAXunKBKyCZbjHLrifNuL+u7G1VZFOuY31PVTDTfzOTCtsO9Fvwq233roxy2p3XlDUIDZt2jQYBNuR+zZTYt26dQWVAyC0vOaPfvSj0hwLrk3BeRXK7tD62CprHDBAiwl5KuRm88ntqniqPgvCPQQaznbn4dE6KGJAvf/dd9+9GHTcxlZEllvJzplQ+qmdO2QDybKUJTS0dLE0fwieO/OsBxEGy/TMnTt3FO5XxDu3VXzE1pqSUqZ6U4phYH8EhGDXbt26tRs5ciSTSNalPc+7nmoQ8+bNo4rRVtlIhM2MaDKrqMmldMcdd7hLLrnE3XjjjaWlVMMuJlui3PpJwznliovYNb0Dk75jz549y5p85OFRJSzFAL7VunIUtJagULKHllGVu0duKlnbdh1tW80gcEdtQjD5BVcBcJ9DcJ93MOAPVxYWwfVoLA/L/SU+C2Zmt8G7NsAqeRTfIZOw8oKiBoEBecSFF17YTgsSCVFBPEIaFYnwv/7rv9wVV1xRWk2PsPnbdkKdnaikwoDqT82nzixkFDyviVaLh0droW/fvmtB8xvEB4TcpFZQqIaTqi0T1v3KfrQe6szaKyphE1jTGyZNmrTYVYA5c+YcgvsM2LJlS3+zPkeL5BMJLVk5qnwbWB2rpkyZsgPtPbKsB+MFRQ1ixowZDYMHDy5wHW2reRDhssk2FVbnuBreY4895ixDiRhV5kMEa++n0gViIBEtgWMu6tLPeXi0EqDA7ARtbrNziKToqNS5oMC1jWHQ3UQal8DQxD1Ccx0CV9CcUaNGlbWWhoB7dcRzzsI71YsHtfqfeC4onths0VjXLyyaccH3aKI1n/Y8LyhqECDoLs8++2yRhCwBYQlKBB32v5qZ1M2rftHvGV7MXbAT8LjZ6p+6hxgJx+0hNAY4D49WAvihDopRnZQYW2mAPEFBIbepBIjK1ygD0BYDJJSsYQdq8FpqTCANEExfwjtdaEt32CqyBN9JFrtS1Ddv3sx32w1BsSN4vzX4DqnZT15Q1CDAEBOeeOKJFr5MEryyNqz5SlihQXB/9OjRJVeUUmp1bZNZKUyzsC2TaOEZnecWlDdvj/sOcR4erYTly5dvAW9skVJjJ5ESSo8VDVvFx7qlpBzZuROhuRYVFTScPXt2B1gu0/HM3VTUFBuxrjDN9bBCRK4otL+F4/ZPPfVU18mTJ+/AdxmKc4mywAuKGsOtt97ahhkPINaCzfOWdm8XHQrPqJa/lu0c3KlhISDWnB3Fev4SDFouVUJHtXGg1TRH3mxgMAh2+3UpPFoNvXv3LoAWN4ve7doUcpOqVI3oWgqSUlKlvSt5w9Z4InC8B/sVWRT19fUdwXO/BO9tUtBcAsEusqTYhQSJVvHDNmr9+vWHo88OTvjD+bdnzZpVSHqmFxQ1hpEjR/ZE0LgvB3gRvM0Bl1VAWNeTrVfD8sZjxowp+WBpVVBAcJ8ajFxSmjNh60bZJRtlwtOnq4VgWODMeXi0ErjaHOhwtY2zKcVVvEIalkJkK7Iqo89OuFM8wE7cA3b27NmzIkEBPmsPvmrE/XbaZ3Nj5We9h5kF3iwoVKYd/HoaLKLSJFd859TMJy8oagwgivolS5aUFksJ13qywqAQsdhK0VTD5KxtMgwFBTeVMxCjyNwOr/oFdJRpz82+B/qPf+2117o4D49WApSWpcpYsinfBJUexQDEG3YNCtG7LT0eUVWWNTB3uQpAAcG5HsAWPS949+b3skU6Cbm9VMaja9eufXD8PXoYNm3a9P7MmTMTK9n6CXc1BmgV3TZs2NBWRGRS9lrUs9HgbdeOEBGeeuqpzSXIGRyzk3yUaaE1tWWGK6hmmUu56BQ4gQk9cOHChQxoL3QeHq2DtbIANNjLjaoBWecVZyP9aoIe6ViJIeF080Ap2zxkyJAFrkywThvcte/jWd0h0A6Vgkfwucp8skqeYoZ6fwSyS9Z/p06dPjlixIgjWYF26dKldAm/F/dcb1HUGFjnpVu3bh2s5aB6+jK37TlrdeA694lPfMIddthhTuUCunTpMotuLE7CgwAqxSq0PKSpa9NiEh6hjBIjJEjMPWGVHOU8PFoJoGm6hYrWpSRekNvGTqLTuhVyrUo5kkVC2jYLBpXMCQzShXLf7/Of/zznPHTesmXLRlgCza4nuwSxFDa7FIDNxmJ/8iwEy914l89CYLyX9lwvKGoM0ByKXAvb1oOx8xqUNWFLewiIb3AORskPKuKcNGnS32qCEedX0MJQkFumuIqsWUGhPHMxICfhQXgUIGTOpdbkPDxaAaDTDeCBkuqt1FclYthU7yazcqOthKwSH4SEigLaBPptxz3XuDLB+RcLFizYgN1eUMp6KMZIKCFFgkoxFrmD7TyLpr+uX39Y9+7dhwX8mVjF1jNkjQHEswPEsVMVXOUaspYEYWIKpf0Pf/jD7qKLLmpeJjJglu3QbNbiXmtldlNYUEioDLOtsGnLHVg3FZdaNeZ5v4985COeLj1aBbAONoEG37OCgdBAbyfjKS5h3VAqpy/rw66lTaBt7eTJk3e7CjBmzJh6POObeH4PWTLiY7uoGJUvWux8FyWemPpqm3D+ZfT7f/GdV0EAJRYG9AxZY4CQeBcEUuzb96/rBNmAm03/IyQ4WOrji1/8YokhFLAOiPPfgkyRF+WPpTVBgoQAadZiuNkKmoQ100nMujf6zZ82bVrZxdI8PCoBrOUVGIS32ooCdhIbYRUo1YUK11ZSH12v+AD6by1UuEIfru+LgX6KZozLfSwhYAWc3kkTY+UyZn8odY/j3GrwXcfZs2e3SXqmFxQ1BgiKhSCwrVwf2zIACUcERMjC4DZ27NhSiQJaB7QWgvUj3kH7v7AviP92md+8h2IVIk6VPxDxKrgtlxV8rSqP8B7abilUcalLD488gOKzGYrUXPKGiu1pkCdkLTBjzxa7lMJlswhlcSjZI7hP2WtQBCjAgu+D9+ts4x+EXMjkJSpfVNbkWuZ3kUsYMcZtK1as2Iy2v4Er+kNQ7LakKWdeUNQYjjvuuE0g4pV9+vRprj9jNZ7wAit0UQ0bNqxFuWSe79Wr17fBVMt5DVxHs3Gv7bpWbicSq52dav210nLknuIxSxsgYP628/BoRXBZVNKoXY9C8yIE8YMRAC1SyXWNXFCmBM5brgK8+OKLbaFYDcCg/ysIig02jVdzkpQeq3lM5C+9XxDY/k8cPojzt8AK+Rbe86tpypkXFDUGEgSI50WmyHFtCfk0w5NzbJ0m+C9bTDLC5/YhQ4bcrnvCNbUW/V+3gT6b3y3TmIzHc3RNsSAhPyWMqKGBqbbgXu86D49WBPjjWVrdVoHiZzgrUMJCE/FstqCt2qoNtN6EvhXNoeA6FLDuO+L+i8E3nWSdM/OKFgTfRemvbJdFIwUv4Omm0aNH/2zx4sUfhoVx6+rVq8+96667EuuseUFRg4AWcSeYYBvMzb2ykUho/fv3d6eccgpX/XLXXHNNifBsgA5E+fupU6c2LwqP+7wLQnzBChfr0hIjcZ9uJm40m2Wqm3UtlqC97IwQD49q4PDDD3+JmUkKRtv4nYVNlSVsxVlbVl/CBvzD8h1rXYXAvUfC8r4Yux34XnKDqUCg+M0WMNTaM8Hs7JFPP/30Anz+B5S1M+EReAk8fWHSM72gqEGMHDlyNohnLhjCTZgwoUTM48aNc8ccc0xJu//Sl77kfvCDH7jzzz+/JCSojdBNRB8nl1BE26+sqYr9JhDuD0Gca2x5cQW+yWBK41NJD5UUEBEHDLmawXHn4dGKgAW9FYPnLRp8bcopM/Sk2FjFSC4gu262PU+A7pvgsk2ds5AG3P8l3Pd+8NU8vouKE2rWNflUih0VMlobJgC/Hu3/31VXXdV0+eWX3493nAPLYg6uPykpLd3PzK5BcDC+4YYb/hvaxHFf/vKX6zh4jxgxoiQUOKizlpPiC3ZgD7Im/tjQ0PB6+J5f+cpXlv/sZz/7VWNj43e1XKqKA6p0gJ3cpwlBMtOJXTaP0MOjFYGBdhEUmT0YaNvYyaMSChqcGRwmlBgizd0mhZiaUCy9sdlVCDzjz1DCZuA9+qvKrWZfSzjouXxX8jVL7gSuseXo11z5AErhD26++ebb1q1b9zwUxy+g6T+inuktihoFAtR3gWg2aF7EmjVrSjEDgr5Oafx2hicJDULgEfpJI25ZhLb1G/R/WVke4UXlrQksDYwgcfNZIOgm5+FxAAAD7Xp87NbcBH1KGBBKj5UipeA2wTkMEi5yB0Hp2g6+qzhZY+zYsW+BdzgRqqdiEEoxVyFCs85LC5cY4hudcdyZx7IgcO3t2Bbg/SbHPdMLihrFaaed9hYG/es0qJPQaLIq11qlNUR8QSnwTbQo4u4J62T1wIEDv86iZcor5/0UxFaGiC1WxmOeD/p1cx4eBwBAi5tAryWFKCiP35xCrsl1CmTL4rBptFZZ0twKriaHIHNVXKu45zy9D5clBr/S/fsqJ7zK/WvX02DFhGASHj0InXie7id+fvSjH70N5wa3sWldIXhBUcMYNGjQv0EbWqDBmsSk5RtVz95O6MHnNjBJoo8Vbq0XYBncJ6EQLJTitJqemEdmvF1SEveuaHlID49qAa7SLqDPOrlGbZKGBn7FIuRelaCQUmS1+iDOsQs0/o6rEMuWLeuIwf4l7G7TfA+8b1OfPn260hUmy4aKH11T5D8qfnT/gjeXo22Zvd/w4cPfg0U/BO8X+25eUNQwTj/99HU9e/b8viVwEpX8nTbjI7AsNmBLnOoPP+fO/v37/x+WQNbM0ai5GnYRJH2ifcwzzzyTun6vh8e+Buj+EGnYcudoAp2EhZ04GtbiCZ1XXTUM1G9xRTlXISAA2oJfOKhvZKA6UOLaIs4wrHfv3qV4hNJ5gxnYpc8gO2oOBUPolgW8Yzuc2xj3TC8oahxHHnnkE5rHYMsmM8uJ+3ZhIWBxv379tqXd8wtf+MJ8aDdX2aJpKu9hloNsUZ6coN8VVo2PU3i0OkCT/UCfbexSpjZQrU9lHWmVRrs0qk2bDWIYK6tRdQAxinfAn09jdy2e2wQroQgroyQguClllxvjjosXLy7NmQrS27eH7xe4zebjMzaZxAuKGgcIa5OdjU0oYCetxGR0vJeloBmZoaGh4dfQdmbJNFf58WAGdinYpxr+yqzCflcIokOdh0crAzTfCfTYxqZ7k06ti8mmzVKZYkKGeMlmO5lgctnrUIRx3XXX7ezateurnJ09evToxXwnWg7ctAofU3lVuoPvx2oM4Lst4XvdeeedQ8GX6yDwJsQ9zwuKGgfM1R0YpBsVtLYFzzTBTvEGptZl1YgQq3hvwIABV+L6v2jtXrq1pO0o71vrUhBo67Nq1ap+zsOjlQE6r4cVUZC1G7S1WOHOlvZQuXxlCkpBsmtXABUtgWoxa9asPT169HgAfLkLg/8GDPI7WGONz2KskZ+sz2ZL+aP/NrzfOzjXYj0MCMDpCIS/Casj9v28oKhxfOpTn9pDAWCDy/okcREyY8EQG/Pc+5xzzlkIIv0l7r1D95fZLgEkIg4C5j1gefR1Hh6tDGjkfW3FWAkFu/KdTUcthBb7svMoAryHgfg1V0UMHTr0GQizHZw0x1XvKJjkOqbAosBg2jvnUfAYwuQt9L/ju9/9bvMXY8AelsdwxCpfBO89EvcsLyg8SNSrROwmw6l0zs4uBbFtyXtvBLZngXgXyyoRA6kcgk2VxTPaQGgMdB4erQsS/9DwQlu2xpMERKlzwCvKjpIloYWDAuFCZWm7qyImTpy4ctCgQc/Bkjirb9++3enOZaqsFDxY5831qeh+Qvt7sB7a/OM//mOzV+DJJ5/8OCz7RvIdrl8R9ywvKDxIQG3tzFOZ0nb5Uh5DI1npcgIWyxZoO3dr5S8b4LY188V4ECDHOg+PVsStt97KGkqjLa0yxkYoC1B8Ir4hNPGOUMafrHPcYyfibxtclTFu3Lj7165d20Mp5kpv5ycnzlJ46F1gYaxvbGzcJPfx7Nmz24I3vwYF8E9498MnTZr0RtxzvKDwIDGXggiaOS0tRCmt0pzAIOXmgD8PZnrfzpkomgVeFPgjEM8Y4ZdC9WhN1NfX98HA2sMuMapS+FYwEKJntUnZKpjlSAN65yzv1IzBPGCNNQzwsyCAHqX1IHcx17bXYmEMwFNgBBNq29pkEZYAgZC4FgpgNxYsTIo/eob0IMEcEp5UJG1K8QSr/edFQ0PDq7j/5vAEOwkmbQFT9TrzzDM7OA+PVgIGzo4caGVVE0qNlfCwZW2U5cRPW0RQMYNAwOxEHKCqgoLgvKUhQ4bM1doyBIWDXepYK03CKmpat25dcxn/E088ccX48eP/BCFSgBB5IOk5XlB4EAUxhWrWSEDYle6w396VgalTpy7BvZYoE0QVZRWbsFYMhVYHRt48PFoJcOV0gwXRjjQqPrD1k5SAEV5TW2W8NaeC6amabAesGTVq1D6pPIBg9VJYCnvIP3y+XetFa2ZzrgeExREQKg26jhbJ888/3w995h999NGJ68B4QeFBgiklhosxlP9tJ8cRe6zNnRMg4IU2q8oyndXMgIa33367wXl4tBIQHB6Dj04SBipgKStbfGFXtBNrhEt+mMKYVbcmBFgD4yAYSulVvXr1KrnJJDQotOBKK1kUGzduLIC3DkEMptR32bJlo/AdJyxfvnxn2jO8oPAgER+qlD4tfmKznQxTlF3QDPd7jfcgEZNxNLeChKy1KgIzvTM0nJHOw6OVAJpsAL2WBlPF0rRCnC3Xoar4Nm4h/hHfUNgElnLB7SOsXLlyCJ8T1HJqfq/BgweXLAkuRMYaUBByvfEe05gSz/OrV6+eCXfUAh0nwQsKDw7enbQvn6oWZ7HVMcEMnV2ZAMEuAKG+L4tFNaD0TDKXhAbaT3YeHq2DAuj9CLt6neJqco9aF6osbik/diU8KV9BqmzujMEseOSRR0bv2LHjRK2R0bdv39JCReQlWhd0PY0cOZJuqd3Y37Fo0aLnaFHMnTu3z/r16++FW7gxy3O8oPAogLgHaSa2DWTbHPKA2MvOA4cZvJzZVXI5WZeWBIVMdjz/KF8c0KM1MHv27G4Y8CcpeM0BV7Czre0EUrlsaS0zjZapqapCID4Cbeeeg5SGF198sRPiEd/F+/YN+GbZiBEj5jElVl6AwLJ5HEJjLhU9uKn+acyYMfXYbwsBkrmkiBcUNQ4MyB1A1ANE+IQEhUoRSFBgK3vwhhm8EcT8vvy54VngdrIfjofCnB7qPDz2MzDo9sJgWloXxQzyzVlPymYKlxS3WYLK6iOkAEFRquoSvxBoHfBuF+O9zuSz6V6CJbEO2w09e/YsMj5BATZgwACHuMTrOP8Gv0ufPn2mzps37z5aGnmC615Q1DhAUH3AHO0UVBYDqN6+CJ5EBv/nIFcmoJltoOvJrnZq52hIYATBw0Nx3Nt5eOxnQEj0AO13VJyBgy0HVbli5YaVUJD71KbRqqCmrIpACSo7ESQK3bp16wllajsC1F0aGhqWwu20C9bETvDyxu7du+9Wmvvw4cPdkiVL1h5xxBFb6ZKCa+oPuHwA+v0blMSeWZ/nBUWNY/ny5VO0b0sUSGBY5nAVrLE+fvz47azHr6UbBTvpjsG4gPngBTtkqvPw2M8A7Y0HrbfXwE+/vwlIl9qUCWULA4bTZ7VwkfgJtL3QVRF4XhGC6CKW3YDQuH3Dhg3vQwj8I4TBN1kKh++9YsWKUrwCgmMIFMI3ub948eIBgwYN+uSaNWu2IMCdeUVJLyhqHOvWrRtu5jCU2jRwqxa/zGpoVmXNoyA46xP3WWRdXGI0O7FJzAUiPhk+2EOch8d+AisCYPCdbmlRs5up4CiQLbestYbtindR8b0ePXpUdQ7FqlWrhm3duvUwCIGn8NkFrqWnsE/vwCzESN7j+zDTiWXH8f4d8G7dBw4slVGbAOGyA4LrZfT/G5bxyPI8LyhqHCCsiZrfphml4Xo1cj+BCTa7CgAtZ5VdVEXPtEJKabl4r6GrV6/u4jw89hOmTp06GPR+omYyi+4pFOhGImQNK7NJkAIka4OQKzdQtha7KgKD/4fAtx0x2K+AS/gEBKu5JsUTeG+uf92JabISUnj30fgcjz4vIH7RZsGCBaPw+QzOT+7Xr18mq8ILihoHiGiCXbhIyz2q2ithVvSqaFEhMNlyEHjJVythIYa05n0gsAZs27Ytsw/Vw6NSwLo+DjRfSqJQqrasBVVUtlaDXeJXAW8zcbRZePAcLIrVrorgIkO4Pxcb2gNh8Us0/fTwww9vhHJ1Ei0HZj5RuLEGFPj5NWwDYWlcgs8X8E4fqq+vX4/3XH3LLbdkysbygqKG8cADD4wH4YwVYdt0VVvbSUE9DNyZfZpRAPOthGDYoyqy4aVQCQqJIE23Y9euXQ9zHh77BwUMrDMwqDdPjCMfBKUvSp+ETfYgNN9CQWsJFfGPUr5ZmsZVEeCldnAf7erSpcufce8bJ02atIjt4NHpY8aM+V/kVy5cxHfv06fPDrS/hnfcBYF1H95zOK6pw/Gf4W7LFGT3gqKGsX79+mNBUHV2Yp1g01hlUqNPr/DqWHkAjasjl5e0q+gpJmHbNLkJMZFxzsNjP+BPf/pTA+h9kq1xJitXbcpmslWVNTlVgkNzKmSdqx1tq1wVgXedw/UlYCW8qDRXxBu64LkD8Mznuf4Ea01xsbHBgwf/AQKjEW17EPguQoCswfXrcf4WXJap2qcXFDWMtWvXfpgmtoha9fSl7QsqS4D2wa+//nrZmhGIdgfuv0umuiwJa1HYuAiee8yiRYvKDqB7eGTFypUrp4O+R9q1JiLqkDWv8y7hoRiErApZ46G1KDhol19+OQKwDP6C5++Bstc8IxCWw6jOnTu/jOdtVskRBLlXjRw58lWce5YTZnENA9nbJk6cuA6uqswrVnpBUcMAIY2S9mQXLrKQph+cGwpG6uTKBIJvqyCMdpKJwhkiei5TZM0SlEdCUFQUF/HwyIiTQJNtbTVYu9ojeUT1yXSONKzqsHaTEmQs8u07w9HvCrFmzZrnEYtYiFhD8yRYvGOnvn37Xg8X2maufUFL56ijjloyduzYd8DHjYMGDRrI6ggIdLcpZFz7XvCCokbx3HPPHcrMIlkSphxyi0C2jSPAdO3X2NhYtoaPe9AvWgiVNmiRbaWaT4EAG4HzfsU7j32K3/3udz1A26V4mBQnZgIqsUOCQpaC0slVnVWuU9KykjPUTtCSnjJlyg5XRUyfPv09CILrwJ8lRg1cwv0nT578BnjrXZzrAqXrVrT9PzwPS2Mp2opoG4Hv+kje53lBUaN4++23J4PI+sp0JmRSa/EVa3YHa0j0gU+0ooC2zHMtTG9LHyg1lhkb0ubwzNOch8c+BOhwJBSlUeESNuFy+JyhTVBYaOIoYwFSrGxJGmXvBYJln5QYh1CYDX5snsj3yiuv3MHPBx54YFtDQ8NNRx555E0TJkxYwzYucISA9zPofx3eZ7bLCS8oahQwTyeydpP8sbZ+DSFLORQ/aAuztb8rE717924KJt61CFrL9WSKDzYzGo5Pv+uuu/o6D499h6mg/85KC6fLhha2lCjRqk17lXBQPTS7HoWqxsoSQb92bt+gCMtid/DcosqFX3XVVU2PPfbY35xyyil7rVqH/pt1TR54QVGj2LJly0imAsrdY2eSWneqmET19TFw93FlYuPGjW3BQAVb+kBBc5spYt1SEGgN0IK+7Tw89gFuuummDnAXnS4Xq11ClCAtshqskizCixWxWqz6m+zAUhvdUIGlXNXyHVlAYeGqCC8oahD0Z4L4h0hLspUwi2ZheLUR0vK3bt1a9iQ4DPrdWYfGBKtb1JUi5HKyWhw+J/qy4x77ArCQe0EAHGXLhmsiqEqIsxQG3aGbNm1qrklmF/qSdaFU2vA6Fuh70FcY8IKiBgGzlKvIHSXT2WYdcTYnmUSaEY+VHst9MFbZbqB169YNBlN1kNUgc90Gz/VODBQas3/02rVrezkPjyoDdPhJbD3sDGylbxfNiowq8kfapdBQlVhl6cnitosbGcFTVe2+NeAFRQ0CGtIgCIMOtgigLc4nTUhxC6UGsh2m9iTEDLq6MoDnjOKHZSw7qU8MKmFhctkHImh4hfPwqCIefPBBLuRzkdJeCdIdIZ6goJAyZcuHK71b7YxpSKnSORP3qygB5ECAFxQ1CBD0oWCQUiXA8KLxhCbeMaODTKAlHtm+ZMmS01evXn2WKwN4zhC5umygUGY6Yedx8Hlqw/njnYdHFQGreixoezxjEEqDVRIF6XPz5s2lMhiyrqXYKOtJs7BJpyo9o4KCJqbHRx3046wXFDWIlStXHgEi7mKLmxGKD1gTnEykpR3ZhoB0O8QLruQKWy4nWOdfabfW1aR9ntOMUh2bdyx7LQwPjyhgoD8LylBBrlVZE6LPcJqsVrcjP1h3rbWMpQDpevIN+q9xBzm8oKhBQJM63a7URU2IMQFu9Lmq1j4tCm5kDGpJ3Fjf/vHHHz/sueeeG49bFfJsYKh3o1a1k/+XUMYImQ+Bc5YZKWWWoO9LwX2c+QyjkHDO48CH/f+G/5eFam6PPPJIPejrIrmWNMmTtE7Y9Sc4f0IT6KRIyWLg9dpstWVrbbDKqzvI4bW0Dzb2GjRvu+22gU8//fQUEr5KKas8snLHOUBv2LChtC1btqwkHJYvX96cM04GufPOO6/E7c5z0UXFiubZ2ueKXP3FYDaIrliEGJHMisB3KctE7qdgzeFC0nfLeC4J4ff2KA/h/3051yYdl3Nfi+KWLVs+CcWnRI+yYjmwU1ki/THTiXSJfpz/U6JFQrSq+RY2HdZm78mqCFxaVV20qDXgLYqDF1k0p736YuC/BBpSH+WEk9hZQpnEzjYSPpdQXLx4sXvyySfdU0895ebOnVvy13Kj8OB1cF99dObMmW1inlsX3v/Sl77UnjO79UJybdk5G2RS+oTJnBQUfA5iIiWrAsz72bvvvrunuWddxLPybOHf0rmY3yzlHrVoweShu/Bn2hamnTpXvf95abvhhhsOBR2fo8Feqd9K4NDgT2uaGDp0aOkcLQuet4saSdGyCpcVGHxGsAbLQU0n3qI4cGAJKavGlLVP6X733XdfT7iMLlCwmpoUV8LisYhd2vwLL7zAwmPNwkNZHTh+DwP6/Pr6+rtnzZrVlPEdXK9evTh/oqs132XuywXFtENaLrRgWCL5lVdeca+++mpJgICxO5166qkX4VbXhL6bi3iHLNZARRppyvPVp+AOXsskz+9TyHAurU8xoW9VB1kM5BNA5yeTnm0cjAoThYFcrXR5clP2k10WlX2LZilfxTFsRWRtuO6djN/jgKUVLyj2P/IIgELMuSyCZC/NDoPux2BCD1TQmPEICQluVlsiY5BpyBAUJriG5cGvwTV3duvWbSnM8fdefvnlzBZpz549O+D+bWyVWBUjlHZGDe6tt94qMS6tGO7TBUBmRQDdvf7661fOmDHjVlgWjaHbFxO+exSKKb9XGsOmCYCkQS/c70BAHlrKel2hzPas9F02QMvnYABvZysVK5BN2pMiRT6RVaHilUoXD6eU21I0yiBUlQNYyYMSvo+lgThlsdXpxAuKfYOsRF4JM2Xp33zul7/85Ti4na7jsapbklG0XrZMbrp9Vq9e7QYMGFAicgWxIRxuxmB/9WOPPWbrxNSlPLeZwHG/7nh+Wztrlc/k86V5MTZCxpw/f75bsGBB6V3EnNTy8NkR7/1PuN0FoWflYaS0QSjufJwwihM6aYLE3iPu/L5CngG+kKFPnrakdiGvS9z+3okC/5prrukOur6ItEcliEJBxf6UEk7+oFVNmqSSxDYtYmQX+JI1rGslRJTtRPAeUHZ2mu9UTHj3pO8X+532B3yMonqI8tHGnY/zs9ZFtNdFtNdFtNdFbG30iUH47zDY1ksToqDo3Llzc9VWO8GtT58+JcI/7bTTWDPm8YaGho/j3N9CSDSF75uwtTgP5uwABiqtpsfnqqaOXFt8Nq0HCilYKiWhIWFiLR64w2ZeeeWVwyO+Z9w7xP0meba4/0OW9vD/2MW0RdGKc9XRrLO8QyHmO8R9z7oyt6T/S9T/rU2GrS7rtVB4/gkKSGfVcJLAsNWS169fX1KOONjDZdpcSobCgu5RbhISyhCUy0nCgv1Jz6TjwGpJ4/uktrT/5T6HtyjKRyFHe6GC44rv9+Mf/3gcAsKnUXPiIE2CVwBbmUwK3sl8JoOQIcBY6x988MGng1u1SXhmIvBs1vw/hBqahJLV0MRoDGbzHRk0Vz++j1J3KeDA6FyjYnnEY7JoW8UM/YtltEVZIuG2qGPn0rXKqPumIS/dVLKf595JbXn75sI///M/94Eb83OkN5XbsGXBmazBY7o6GStjEgVpbuTIkc2uJlUNkNuJio54yBSybBYY5Cm4e5e5v/KO/m/h/1+cm6ng4mNdmSyoasELinyIYoYw8+dlrDTGyMqcsfcBAR8LLakXNSgOwqpVw0GXUN43tR9qUprr0L17dzLPST/84Q/H/P3f//2bCc9OxOTJkzvgPheC2brZlcOkjSkYSEbls4877riSoHjxxRd3g6HbUrBRcEkDRJB7tGsptCySfLtpx1naihWcC79Xwe3N8JW4rKKQRktZ2/Kcz3su6jitPRcOP/zwdrCUb0Tcq70UD9IeB3WVA6erc968eaVNM6/ZL7w+i6xgCQ9b8kb7CopTUOC5891fLYQstBNFM2m045zbtzENLyjSkUbshYRz4f20vlXX8M4999whCxcu/AwJlwLCFjhTvEACg1AWiKwNaFU9EJu4DKe+5eIFZdTzmwEX1hnQ0j6rBYk0N0IlExRQ1Psx24rvdcYZZ/zg0UcfPRFtx8OMb08GhEUyBwLtF64l7VZiGVRLMKTtZ+1bCO1HaZhZkYUGk+gprzApV2ik9c/SHotp06a1P//88y+FsnQi50Oo4CQz65TuTdqCYuLefPPNkjJFy5btgwcPbrGAlzKdBK07YeukKYhNpYt8d9RRR1FQWIvCub3pInwuauCPsy6SUM41e8ELir1RjoZfLkOWey7TPgbabiD678HvfwIJmu4mModS++R7VWkCaURwN5VMbpng48ePP2HmzJk9Zs2a9Y7LxsAtrCy8w8c3btzYngyqLCdbV0euAILPFjP379//VZy7CYw2CZrgJ8F0Z0A7++29995LP1Vbl09AhNvzCIg4YZFVCOQZIPSZpEm6mH5RfeJoK41Oo/om9UtrC++nnYtry9unAD74QmNj4+Wa3KkANmMIbKMlTZDWSf8c4Ovr60s8QKvargJpZ2jbyaJWYAi0kHken5zuLQtYQsDtg88wLP0UUvomwguKlsgqELIKg3Lbs9w7cR8De19YAj967bXXSrGJvn37lsxgCgoygvLBFbQjggwNp4AzNfvA39pvypQpoyAoXol4ZiJg8rcHI04sXRRYE0o9DCYjld5DueuqLcWAOp6/A26AJmxzcPmcj370o7+YM2cOyyEkuZ3Kba+WpVBJn6yCx4Xa5NYID+5Fl0xXhQraoj7T2pL249oy01oUvvWtb02AAPgGaK6DZmCTvqgsaY3roB5TKcNJrijyCifakV6lQNmJeVp7ws7AFmiJy3XFZ4L+b7rwwgtn3HjjjZzeHTXIJwmApP0oJSELrRdcToFR64IijVALMcdZtK+kc+X0dS4j833zm9/8HFxG/7By5cp6uZmoGXFT4E2ErVIamnSkYwoJMgs1ezDTSsQFWNgsiV4iGfpjH/vYOGhUg22+urKctECM5m3QR0xXAAQcBVtx6dKlLH3QLBQefvhh1cwJv0cS0Rcz9K1USBRz9inm6JP0/Dik0UmYzuLotxyhkdYW3o86jmvL3Qe09HUoS/1I+9L+VSmWoGLELCcqU4yDKW5BuuQ1qtmkOIateKw0WblzRcecMMrSN6Rltt12222HffrTn/4quv7Ixf//k/bzngsLgrBQieqTCG9R/A+yDv55mCyvQEkTUlGfLfYvvfTSr8BN8x0Q/iFMNdWMUw7QdCVpMSISN60L+WtpQZBZFIxj+6pVq6hRNUHgzL7llls2u3hNPvw+zcBzTsbWnvdXnSi+D8F9PpPPkkDje9L9hD4bFi1atMX9D42mCYMkws/aXo6QiGrLIwjynAvvxyGLcIhqyyMwsny6lOO4gT5JAGQRICVcfPHFY0DrJ9KFRJqn4kPaUnCaPMBBXYKDtNivX79mIXDkkUeWBIZNHbfzJhSTUPVl7tNtSgEBnlExy1L7T3/6008ec8wxv3n++ee5dmrS4G/bigltaef0W0XRS2YBIdSqoMgyABdcPAPlaXM59u1n+HxSnxIuu+yysxYvXvz3YIpDyBSqi08ip4ZDM5h+WLqhyDCyIjRTm/1Z40lZIWSgFStWPPLEE0/c4JKFhAu/D5izcPTRRx+5YMGCs3v06NEiw0rLTNrFiiSgONEvyLbqCvdTP1yyNeNz0wRJ1v5ZhIU9jhvM447jzmURHC50rhDadxH79jhNQSlXYMTtpwmMuLak9vC5KG3ZTZ8+vT/44AYoO52pMJGeVaJD7k5aEkyBFehmovsJsbGSAKFyQytXLicVzSTswkYqKc6+5DsIg+b4BPsE1Q26DRw4kLXOdpj3rkRA2D5NMdc0md8mTTgknq9FQRFH0HEDf9rmMrY7l53xMgsH7o8bN67DhAkTvghf/tegzXRUwT+bekpNhwTNbA7OOiVRB3MSHAdyaj9kHPlqCXw+ifYfvv3226xjUBfx7EgMGjSo3ahRo07hqnS4vi/vx+eTicioFAZsk+amQDrPaSY4+rYfMWLEeRBq18INtjviMXkFQ5bzxRzHUftpwiLcnrSfdI84ARF1HG5Lo8eoc1F9o+4bbnMJ/VxKm9qLLgPNWUydOnUMlIzvLFy4cBBpnRYB6Z7zIUiDzK5T3EHp4GyjIGAbM58QDysN9nKT2rIddj1s8RrvSwv8pZdeKu3LjauYCJSfLXgXG9R2Lp0W0gRGk2spKMNbIejjQs+09JMJtSYokoRE2pa1YqVLaXMxn7GCIKKtxTHM5X+A5v95DPoFajgiahKqgsRKd5W5zX40yckwNJNV9CxwTRVhcTyAAfon8O+uctmtCTLEIcOHD78YTHQ+GK8rmU+L0/PZtBbkAqPriyBT8Zw0M83Q7t279wkNDQ3/ivfYnPHxxSqeyyo00tqzfKYJC/tJxAmKrIN0Gh1m6Re+d9yz4o6T2nILB+H4448fCoXje3Pnzp1ImpICQsVE5TiCcjAlWpPlTMiSPuGEE5otbAkGleaQm0nl8vlJZYvPoFBShhT5j8JJq9/h2Xc+/vjjdKXa7KfwZxahYTclMViLosklC5kowWF/90jUkqDIKiTqMuzHXRe+Z9yxC52Lei+Xsl86hsbdFgR9PFfqIoGKMKOWbyQUzNYsUzET+1NwnHrqqTTbi4MHD26H6y9De1v0bY/rWIJjx3333ffvV1111SsuAmDS/mCwy/Aup7IIIBmS70DTm0zHIDU/6cMVo7JN5Tn4DhQoTFek4IKwwqm29rfNimKZ57MIDNuWJEyKKW3h9iwCwiLrwJvWN4oeswiGLMpMVFtVrQeLM888cyIUjIuhiEzgwE16VgCaLibSmioAKC5B2tOiXVRixo8fXxrweS0tbSV6iF41M9tOvpNiQxoeOnToHly3+dlnn+0GPmjL+0AhWvjGG2/8h2tJx+UoDuEB3wqMsHVhj5vc/wiIpIl/scKill1PcQIi7TNNaDiXzHDlMl1kf7p0MKivgQY1XCmnyuvW7GcOztanKg1JGhE/mfHxuc99bvfHPvax5RisN4HRCrhuO5huO0zqJTDH34RZve6xxx7b5CIGbpj7E3HvK8A4E8hwWgRGbiWmu2qiHd+HwkDmv8qJKOBN8B7As88999w2l09QpA02WQajYspxWp9yBEaU4CiY46iBNLyfdaAN902ivyx9XMxxnrak+6YCgevxiK/9E+h1qOidg7qNK8A6dh/60IdKcTqluHIgV00xWrikQQoK7ttMPWU62Yl1Sq3VnAxaymedddYvQLN3DBkyZBwuHYd+74DWH4Sg4kShOGsi3BY+3xQ6F2VNFFxLoWEFhn1G+LgQ8S57oVYERRRBxwmJqOJnBRdf5C1JWLiENpewn8aAzcdBGeNrP/KRj1wMAm+AGdyfBfg40JMZSLxK8ZNLShVjqb3X19dvBfM0Dhs2bG5jY+N93/nOd1bgPrug9e+ClgT+2RVFQPY7FWGqjwYj/AD3HUqBII2LQowDP99BFgsZS7WmyGAsl0AmZV++D2ItsnQ2Iih4czARz2pBYa0n6jiMuIE2ql/UPfIKivBxMUNb+FzB7f2dw7QSR0dx75GGuHum0W3etqT2uL6x/3PExDrAfXox6HeITdCQy5WDO/dJa0FGXbMLVMkV5BHwQEkY0GWkon/6tBlPmqBK+tVcjKDcx6J77733DlgTG9HtKWxPmneOm5lt9+Osi0LoOCwwmsynhIQsCRfxnKaY3zWuLb/kPkgRN3hnrYYZJyii3E1pGlmaYEgTEnFtJWAQbnPSSSd179+/fxeY0f2gIfVETKIAQl4HLakO5+ugeW0Ace9eunTp1tmzZ28G0TfF3M4OUJGD6Kc//enhECz/Dq2pG33AsiKomZF5EAgvMRuPxbBK16VpT+2OwoMaGftBEyv5kPGeP3r66af/4OIRNejnGRQr6VttwZHUN45ewoO6c8m/hx10kr57Er3GvY9Lact6rpjzGtJJ4fzzz//sn//857/T8qWE0lZt+ioHeiorpEXSGoUGBQaVFCo4uE9pRUVau4xRUGBIudImFy5pVFlOzCjkqpC4x2/uv//+X7nyLdCo/1fcfpQrSlv4mNueiLao+0S9X826nrJaFHFCI2lzGT5dxnaXob1FGy2ABx98kO4hbstcwiCfcl+1x72jmzFjxiegxX0dWlU3u1IYhQGZlgKBG4PnZCoyKo95jmCsQtkjSpdl5giC8w+vX7/+Hpd90CmG3jWLEMjbN27w1j3Cvt9yBoa4Z+szTlDEWVFJn+F9qxTYNufS6TNxMHfZBUQhQ/8WOOKIIwbBpXSJnQOkSZ02+KxPDuxaX4J0SperFiuigGBih66VW0qxDLmddF9uvEYrMo4cOfINt7cAj+K9sJUQ1T9OSNg2KyQsTURZEnWh5yXR/15ttTzhLsq6yCIsbN8kARHFcFn3dRylNcf1dwn9MjNeyn2aCeiUU045ApbJt6FxlWhIGVXUxOR2UjCbTKTsKzK06u1QeFiA8bZDK3sIFspPEPx710VbNHHvlnSc+Xul9LOIEhxRzF9MOBe+T9QAEr53nYsXHuF7Zhl0kpCqmLhsQqLosgt9e03afUlnu0B726F8dNbSuirDYWsylS4IBnrF6NiflgBpkqnhjGHQIma76FjLnkpgaFEiJYFQSPD6KVOmPP6Xv/zlZRf/+xRj2qLoJKo9yaKQcAiPRy7iWtunmPC8FqgFQZHEVOGB2m55rIq0+xcS3sm2FWPeqRxUQzjE3hOMuREMVLTpt/T5Sjio2JoWR1JWkxiXx8pBp8sKgoem/05YGSwV8hlocx0wALTBczY9/PDDz/7qV7960+07JAmBrNfY67IIgvCx1fqinlNI2Jzbe/AJC4Wii9dOXcpz486loZCzf9S1iYBFu+6MM874DVyYX1mzZk0/WBSl39BaqlZAKH6hCXc8z9nYpNnXX3+95Pqky4kuKS3VS8GgCaMqZkk6Z3uw7vbW+fPn//bJJ5/MUzTTthUz7of/t0n/07rQflhIRAkL+67FuJf/oCKO0eJW3or7DAuJOpfMxC7iOOq9DlpgYP/2E088cQ4G/dJ3oVWhLBOZ5tLcaMZrFraynYYOHVo8+eSTd4DR3xs8eHATmK8JboGV2Bqhqb2NYHrjK6+88vZvf/vbtyF09rgPDpLM/bCWF8fgUfQWd7+oQcU+y7lojfegwcyZMwfCGh0JC6M/aK0eW2/QXS+caiPrQkFpWLhc4W4XYhR1CxcunDBnzpySkkPLd9SoUW7s2LGle8pVqrWzNe9ILidaEpycB6HzBvr97aOPPrrBVY5ixLH9vzW56P9tXEzCfu4JHdvr4oROCV5QZBMSbULXFNzeSy/aZ9UEJk2a1GXYsGFngyHHYWDvCaEwCIzUBvucg9E2MN2LDLCje1MQCCyMGDFiJ3zLSwcOHPgQGO21efPmrd+8efNObLsWLVq0IybTqlYQptfwfjHhfNwgQygrRggPOM5ls6Q+EIAVe8jRRx99ASzYS0iXVHBYMWD48OElxYZCwGY+0cKgIGG7KgxwYzIG+v/8oYce+g+3/2AD1rvd3sJiT2g/LCDSAtvOhWjB13rae3AvpHwStEMPcTWOl19+eRu23+m4U6dOdRMnTuw8aNCgjuPHj+8OBmsDK2E3J+sxj5yaWH19fQHMufXqq69eWeMCIQlh+gzHzzRA6HwUjVpLxK7doQGlZnHMMcc0wF36dSg0x1NAMPuJ7ibWQGOMQgFqxtnoiqKlzLkVtEZoVSgDKnBjQZYUX3f7F1JMlXIbLnETZWUmKbFRSkYL1IKgCPuFo87nvQ9VY0rlcIDbuRqzKiygYTU999xz9NO+c88996x1HuUi7DfWwL7HtRQAUdeE27jtdNmQOmAc7DjnnHOOhRX7bSgtg1QRgJ9aHlhrU9ClRNBqoCVBYaLAttao4DkqPxAwPdz+g7UeRA9x/aKuy9J3L9RSMNsiKqioz7itELpW/6Q9Lj42EbWf5f08PphIi02E2+PiXVlSHZNoOup5Fh9Imjz77LOnw1V0JQb3bnIr0UJQRVlaEMrKU0UBU6SyZHWoBD/nXVB4rFy5soD4GmdhP+yqg/D/MOr/GD5O+h8XY+6fJDj2Qq1ZFOH9KMYJ/5BKO7O1UmxblLkfFkRZ9rMcR8ELmv2HYhl9ko7jhEP4uBBzPqygRD0nSUjEvVuaOzYOBywtQkhMWrVq1fcRtO6g4DYHfloSzH5SUUrCZuSpMizdUaznxCw+XsN9ChRWhcXnmpjHptFL3GAdJ/DtNeUIjGLEMzMJi8xVQQ9yRMUbora4PrY9CWlCx7aF2+1xln9wlmuqifBgZT/D/ZLa4s670P2Tjvclyv3t4/4PLuE46lyeeyVt4Rm6Ue15B4+8v8e+QlgZi6OZ0juce+65R2Jg/xcIgi50L6mmk9a45r4m12mZYE0eZbsW99KkPc7/oeBg3zFjxtwI3NykaoPx378Ycz6tX1Jb+P/YlLBF9Q0/P/Z/VqvVY5MGg7hAH8/VmU/dL20ClP0shtqS2ouhPuH2JC0yyhWRB0n3tvvFlH5J1yZdk3Ych/CAkeda27+YoU9Se9z3LWbor+MorT5OmXEufqCMGmwKEcfhZxVj9tPeM+oeWRBlicch7XduPkZMYhRiDlfDpdSdFgDn7NhFtDTTWoUENXGUwoMWBgWJJvJpdjaFRJDevQy4LyiBU3per1692sBC2RPEMcLvl4Uu4vgsbczSfjjttcnFj3Hh9qh3KKGWBIUlwjAjNaVcZ/vL5VQXassqLOyny9heTGkLXxvFoEkMmKbxH0ywlTPzoFjGubxCrxxBElY0kugrz7sUXDRdORet3MT1KUeIuIT7VJX2YBGcjMB0b5Xf1zwfTcDTuu381MQ6BrNVtoP9OMdCJfk1efS4445zV1xxRTdYG1fWsRZ/27YdWHcK595ZuHDhE9ddd90fg8QOizy0EfVp95OsxCSrIk44JCLLP/KDgqjBnFtU0b+4/YKLnpkdVRww6plRn1n3sxyntdvzWRm5nP77A1Z4l3Od9ss5n/U4i6YY9RneF7LSSV7kpc0sdFgubdo+xRzXRGL69OkD6+vrr8LgPZkVleVGUlkPld/XRFAV/VOJfvXVeu/9+/ffM23atHmIeSzFvbatWbNmCasUIEi+eu7cuWthYbwLwbRj3bp1u0PfwUUcx/3f44REeICPcjtFWRNpQqMp4X1KqDVBEf4MD/x1MZ9xbXGbc8lCI+44z37UcVp7JefyIGzdFFL2w6imdVMs83wWIRFuyyoYtB+nLYb7RqGQoy3qd4+ipTSlJist5hEcWc/HXRNFR1aJKCDgXHfRRRdNhKAYtnHjxn4QDL0w6HfEJ+vtd4Yl0AtuqVLt/W7durXHcSn1FJYEKwXQXVXE+Xc3b948f8CAAbf/8Ic/fNk8J/xcl9CWR3EoumRBER7ooyyKqH37GSV8wu9WQrUGhoMFUYN2kpWQJBjCVkSaVZGVCaOYMuk4y+DgEvrmOV9p/0oRHvCy9C+3TzHHcZ4BIPxZibCwyKI0RO3H8UQWIZFHWGR5vyTsS1orV5mIOldNukgSFk0Jx0mCIbeQIPY3o7c2kgblOGFQKGNzCcdR+1GfceeKLr8wiUIS4xZdNtqI6hO+Nu1exdAzw59R/bMiqxDI0zeJ4bO05REWWd8zTVlIo7U8dBpudxn3k9qS2sN90ugjCfaaLHSUVUDkFRZ56SFtk+soi/AIb1HvtRdqrYRH1GCUBM2+di6fYEhrcy47A7sMbS7DuaRr4pguLyO2FrIMAJUIjaTBP24/bsCPYtJiwrVx949CHD2E28M0bfez0meacKhEYJQjBKqJLLSSRDdp9JPl/59HYNgYQ1yWU9K9U3GwDATVRhJhpw32WQRDnv2ktqR3dCn7UceVtlUDaQO6+mQi4BjEKQJpx1HtSUIgaj/uOM9gkSQoot4zbnCNG9CTaDAPrSY9I2k/y3EeVEovUSimtBUznItry0ILSUIirj3LlvZ+kahVQUHEEWrS4L4vBULWz7S28H6ec1nada4Y6leM6WPP23uGrw+3FV02oRJGMce5LMwet5/UluUz6zn9DpmZ2mVTMrIIiLRr0p4V1xZ1HNdmzxUjjqPandublqLOxSHtN89LN3n/33H7aYIiS3vaO0eille4I9IGo6jzeQWDi+mT1s9l7Oti7u1yHqcx6YGKLEyf1r9Y5n4xx7lyhEjUsXPJ3zlNeYiiwSx0nJVWswoOl9AWVhT2J4o5jvPSR5qQSGtLO04751xOASEcyAPA/kbcIJp1YI/rn/c+LmdblvakfZfh2jjEaf4Flz6YFRPuFXeftPs6ly4IsvTZl4JD+1mFTNozswj4PHSbRstJtJeHh1yGc+F+YfoIX1d08TQZ1z8KWekjjq6qKTSizmU9H3XsXA4BIXhBsTcKGY/zDO6VCIK8+3nORR2rrejyMe7+pqW8AiOvAMl6rpjxfFTfPANKeN+2RQlq+xluS6PPrJ9p57K0p7XZc5XSWVZBEtWe9TiPkhDVp1KB4lwy/UUJ2lR4QZGMPINs2n4hZ7/wfrhP0WV7ftRxXFs57QcC8gqNqLZyhUZS32LOtjzn42AHgjwDeznCIcv5tGuLLhu97i9Uk1aKFbaVI1DC+1HHueEFRTZkJegs2lQ5wqaSc3nbs9BEa9NNVsLPqi1GtaX1ycqYWc7luT6uLQrlDO55hEA5tBvVN4q30s5VijyDZ57/R14aKVa5zaW0lQUvKPIhC+GmDdrlCoByjivtFz5XDO23Bv3kJf5qC4twex5tM++1cW1J7USW/2+19u1xFnpPut6l9G0NoVEsoy2vxRE+zts/ra1ieEFRObIMrmnMkpex87bleU64vbUEQjnIy/Bp5/IKgf3VrxyUo2RUw2LI0yfLuX2JsCIUdz6pLY9ikKd/ubRdFXhBsW+Q1/JIaiunfyVMmIcm1DfuuxYj+iT9Lmn9bVsasvQtZ2CuxELJ0j/r9ysX5SgLaf0qEQxZ6S2OLtLoybnkZ6T91uX8D9Payr0u67mqwwuK/Y+8jBFuK0cAZTmXp0/StUkMXI7rqhhx/yz98wiUcs9Xwsj7ldFTkNeirKbVmnYu/C52P9wmpCkZeYRxOf/Haiogaef2C7ygOHCQR4BkHWQrEUp5kGZZVIoww++P67LctxqC6EBD1v9lJZZp1KBejXfKgn1JE5Wcz9tvv8ILioMDeYRD3PWVPPtgQF5NsRr3qMYzDybkVWbyXJO37/5AOUpJMUMf5w4ymmnjPA5mhAkzr6aWFQcDURdd9d7zoGXoVkY1tH372RrIGkDOeo8PBLxF4WERHhwPNvqIe28/2B94iIsdHCgoN6bh4eERA69weOxPFEKfea7x8PDw8PDw8PDw8PDw2K/4/wF+SSjIjR4daAAAAABJRU5ErkJggg=='\r\n};\n\n// NOTE do not expose in public api\r\n/** Controls helper used in html. */\r\nclass BarControlsHelper {\r\n /**\r\n * Will get the value or execute the function to get the value.\r\n * @param value\r\n */\r\n resolveValue(value) {\r\n return resolveValue(value);\r\n }\r\n /**\r\n * Will return an Observable based on a value which can be of different types.\r\n * @param value\r\n */\r\n resolveValue$(value) {\r\n return resolveValue$(value);\r\n }\r\n iterateObject(obj) {\r\n return Object.keys(resolveValue(obj));\r\n }\r\n}\r\nBarControlsHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarControlsHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarControlsHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarControlsHelper, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarControlsHelper, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }] });\n\n// NOTE do not expose\r\n/** Internal provider containing the behavior of clickable elements. */\r\nclass BarClickableElementBehavior {\r\n constructor(domSanitizer, router) {\r\n this.domSanitizer = domSanitizer;\r\n this.router = router;\r\n }\r\n /** Invoked by anchor tags without routerLink. */\r\n linkClick(event, item) {\r\n let clickExecuted = false;\r\n if (item.action) {\r\n const actionResult = item.action(event);\r\n // allow action to return true to also allow default link behavior\r\n // by default if there is an action we prevent further execution (with undefined return value)\r\n clickExecuted = actionResult != null && typeof actionResult === 'boolean' ? !actionResult : true;\r\n }\r\n else if (event.ctrlKey) {\r\n let url = null;\r\n if (item.routerUrl)\r\n url = resolveValue(item.routerUrl);\r\n // NOTE that for routerLink behavior is default\r\n else if (item.href) {\r\n const href = resolveValue(item.href);\r\n if (href)\r\n url = typeof href === 'string' ? href : this.domSanitizer.sanitize(SecurityContext.URL, href);\r\n }\r\n if (url) {\r\n openUrl(url, '_blank');\r\n clickExecuted = true;\r\n }\r\n }\r\n else if (item.routerUrl) {\r\n const routerUrl = resolveValue(item.routerUrl);\r\n this.router.navigateByUrl(routerUrl);\r\n clickExecuted = true;\r\n }\r\n // in case a href has been execute, we don't want it to be executed\r\n if (clickExecuted && (item.href || item.routerUrl)) {\r\n event.preventDefault();\r\n }\r\n }\r\n linkClickWithRouterCommands(event, item) {\r\n if (item.action) {\r\n // we invoke the action\r\n const result = item.action(event);\r\n // consumer can define whether he handled the click meaning routerLink has to be prevented\r\n if (result === false) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }\r\n }\r\n }\r\n}\r\nBarClickableElementBehavior.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarClickableElementBehavior, deps: [{ token: i1$1.DomSanitizer }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarClickableElementBehavior.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarClickableElementBehavior, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarClickableElementBehavior, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () { return [{ type: i1$1.DomSanitizer }, { type: i1.Router }]; } });\n\nclass BarLinkComponent {\r\n constructor(controlsHelper, clickableElementBehavior) {\r\n this.controlsHelper = controlsHelper;\r\n this.clickableElementBehavior = clickableElementBehavior;\r\n // NOTE needed for ag grid cells with links to avoid losing the cell borders\r\n /** Whether to inject a zero whiteline if hidden. */\r\n this.zeroWhiteLineIfHidden = false;\r\n this.clicked = new EventEmitter();\r\n }\r\n get hidden() {\r\n return resolveValue(this.item.hidden || false);\r\n }\r\n get disabled() {\r\n return resolveValue(this.item.disabled || false);\r\n }\r\n get tooltip() {\r\n return resolveValue(this.item.title || '');\r\n }\r\n get tooltipClass() {\r\n return resolveValue(this.item.tooltipClass || '');\r\n }\r\n get content() {\r\n return resolveValue$(this.item.content);\r\n }\r\n get srText() {\r\n return resolveValue$(this.item.icon.srText);\r\n }\r\n get iconClass() {\r\n return resolveValue(this.item.icon.class);\r\n }\r\n get iconStyle() {\r\n return resolveValue(this.item.icon.style);\r\n }\r\n /**\r\n * performs the union of:\r\n - internal needed classes (disabled)\r\n - css classes needed for component layout\r\n - custom css classed defined by consumer\r\n */\r\n get ngClass() {\r\n const result = {};\r\n result['disabled'] = resolveValue(this.item.disabled);\r\n if (this.linkClass != null) {\r\n result[this.linkClass] = true;\r\n }\r\n if (this.ommitCssClass !== true) {\r\n const cssClass = resolveValue(this.item.cssClass);\r\n if (cssClass) {\r\n result[cssClass] = true;\r\n }\r\n }\r\n return result;\r\n }\r\n get iconExists() {\r\n return !!this.item.icon;\r\n }\r\n get iconHasPosition() {\r\n var _a;\r\n return this.iconExists && !!((_a = this.item.icon) === null || _a === void 0 ? void 0 : _a.position);\r\n }\r\n get iconHasLeftPosition() {\r\n return this.iconHasPosition && this.item.icon.position === 'left' ? true : false;\r\n }\r\n get iconHasRightPosition() {\r\n return this.iconHasPosition && this.item.icon.position === 'right' ? true : false;\r\n }\r\n get iconHasTopPosition() {\r\n return this.iconHasPosition && this.item.icon.position === 'top' ? true : false;\r\n }\r\n ngAfterViewInit() {\r\n if (this.item.handleElement != null) {\r\n // hook on native element\r\n this.item.handleElement(this.element.nativeElement);\r\n }\r\n }\r\n linkClick(event) {\r\n this.clickableElementBehavior.linkClick(event, this.item);\r\n this.clicked.emit();\r\n }\r\n // invoked in case an action is defined and a routerLink\r\n linkClickWithRouterLink(event) {\r\n this.clickableElementBehavior.linkClickWithRouterCommands(event, this.item);\r\n }\r\n executeHref() {\r\n let href = undefined;\r\n if (this.item.href) {\r\n href = resolveValue(this.item.href);\r\n }\r\n else if (this.item.routerUrl) {\r\n href = this.item.routerUrl;\r\n }\r\n return href;\r\n }\r\n}\r\nBarLinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLinkComponent, deps: [{ token: BarControlsHelper }, { token: BarClickableElementBehavior }], target: i0.ɵɵFactoryTarget.Component });\r\nBarLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarLinkComponent, selector: \"bar-link\", inputs: { item: \"item\", linkClass: \"linkClass\", ommitCssClass: \"ommitCssClass\", zeroWhiteLineIfHidden: \"zeroWhiteLineIfHidden\" }, outputs: { clicked: \"clicked\" }, viewQueries: [{ propertyName: \"element\", first: true, predicate: [\"element\"], descendants: true }], ngImport: i0, template: \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n ​\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.RouterLinkWithHref, selector: \"a[routerLink],area[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: i1.RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: i6.MatTooltip, selector: \"[matTooltip]\", exportAs: [\"matTooltip\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLinkComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-link', template: \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n ​\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: BarControlsHelper }, { type: BarClickableElementBehavior }]; }, propDecorators: { item: [{\r\n type: Input\r\n }], linkClass: [{\r\n type: Input\r\n }], ommitCssClass: [{\r\n type: Input\r\n }], zeroWhiteLineIfHidden: [{\r\n type: Input\r\n }], element: [{\r\n type: ViewChild,\r\n args: ['element']\r\n }], clicked: [{\r\n type: Output\r\n }] } });\n\nclass BarBannerComponent {\r\n constructor() {\r\n this.hide = new EventEmitter();\r\n this.visible = true;\r\n }\r\n ngOnChanges(changes) {\r\n var _a, _b;\r\n // put back to visible if a banner is assigned\r\n if (changes.banner) {\r\n if (this.banner)\r\n this.visible = true;\r\n if ((_a = this.banner) === null || _a === void 0 ? void 0 : _a.heroImageSrc)\r\n this.imageSrc = this.banner.heroImageSrc;\r\n else {\r\n switch ((_b = this.banner) === null || _b === void 0 ? void 0 : _b.heroImage) {\r\n case 'biet':\r\n this.imageSrc = BAR_BANNER_IMAGE.BIET;\r\n break;\r\n case 'boom':\r\n this.imageSrc = BAR_BANNER_IMAGE.BOOM;\r\n break;\r\n case 'koe':\r\n this.imageSrc = BAR_BANNER_IMAGE.KOE;\r\n break;\r\n default:\r\n this.imageSrc = undefined;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n get heroImageIsDefined() {\r\n return this.banner && ((this.banner.heroImage && this.banner.heroImage !== 'none') || this.banner.heroImageSrc != null);\r\n }\r\n doHide() {\r\n var _a;\r\n this.visible = false;\r\n this.hide.emit();\r\n if ((_a = this.banner) === null || _a === void 0 ? void 0 : _a.onClose) {\r\n this.banner.onClose();\r\n }\r\n }\r\n}\r\nBarBannerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarBannerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarBannerComponent, selector: \"bar-banner\", inputs: { banner: \"banner\", environment: \"environment\", closeDisabled: \"closeDisabled\" }, outputs: { hide: \"hide\" }, usesOnChanges: true, ngImport: i0, template: \"\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i4.MatButton, selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]\", inputs: [\"disabled\", \"disableRipple\", \"color\"], exportAs: [\"matButton\"] }, { kind: \"directive\", type: i6.MatTooltip, selector: \"[matTooltip]\", exportAs: [\"matTooltip\"] }, { kind: \"component\", type: BarLinkComponent, selector: \"bar-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarBannerComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-banner', template: \"\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\" }]\r\n }], propDecorators: { banner: [{\r\n type: Input\r\n }], environment: [{\r\n type: Input\r\n }], closeDisabled: [{\r\n type: Input\r\n }], hide: [{\r\n type: Output\r\n }] } });\n\nclass BarBreadcrumbComponent {\r\n constructor() {\r\n this.breadcrumbLabelField = 'title';\r\n this.navigate = new EventEmitter();\r\n }\r\n navigateCrumb(crumb, crumbIndex) {\r\n this.navigate.emit({ crumb, crumbIndex });\r\n }\r\n navigateRoot() {\r\n this.navigate.emit({ crumb: null, crumbIndex: -1 });\r\n }\r\n}\r\nBarBreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarBreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarBreadcrumbComponent, selector: \"bar-breadcrumb\", inputs: { items: \"items\", breadcrumbs: \"breadcrumbs\", breadcrumbLabelField: \"breadcrumbLabelField\" }, outputs: { navigate: \"navigate\" }, ngImport: i0, template: \"

Navigeer naar

\\r\\n
    \\r\\n \\r\\n
  • \\r\\n 0\\\">\\r\\n \\r\\n
  • \\r\\n
    \\r\\n \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n \\r\\n
  • \\r\\n
    \\r\\n
\", dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: i3.MatRipple, selector: \"[mat-ripple], [matRipple]\", inputs: [\"matRippleColor\", \"matRippleUnbounded\", \"matRippleCentered\", \"matRippleRadius\", \"matRippleAnimation\", \"matRippleDisabled\", \"matRippleTrigger\"], exportAs: [\"matRipple\"] }, { kind: \"component\", type: BarLinkComponent, selector: \"bar-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarBreadcrumbComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-breadcrumb', template: \"

Navigeer naar

\\r\\n
    \\r\\n \\r\\n
  • \\r\\n 0\\\">\\r\\n \\r\\n
  • \\r\\n
    \\r\\n \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n \\r\\n
  • \\r\\n
    \\r\\n
\" }]\r\n }], propDecorators: { items: [{\r\n type: Input\r\n }], breadcrumbs: [{\r\n type: Input\r\n }], breadcrumbLabelField: [{\r\n type: Input\r\n }], navigate: [{\r\n type: Output\r\n }] } });\n\n/** Data for confirmation dialog */\r\nclass BarConfirmOptions {\r\n constructor() {\r\n /** Whether we want a refute button to not confirm */\r\n this.refutable = true;\r\n }\r\n}\n\n/** Component used by the confirm service with material dialog. */\r\nclass BarConfirmComponent {\r\n constructor(translate, data) {\r\n this.translate = translate;\r\n this.data = data;\r\n this.hasTitle = this.data.title != null;\r\n this.title = this.data == null || this.data.title == null ? null : resolveValue$(this.data.title);\r\n this.message = this.data == null || this.data.message == null ? null : resolveValue$(this.data.message);\r\n this.confirmText =\r\n this.data == null || this.data.confirmText == null ? this.translate.get('DOMAIN_BAR_CONTROLS.CONFIRM.OK') : resolveValue$(this.data.confirmText);\r\n this.refuteText =\r\n this.data == null || this.data.refuteText == null ? this.translate.get('DOMAIN_BAR_CONTROLS.CONFIRM.CANCEL') : resolveValue$(this.data.refuteText);\r\n this.refutable = this.data == null || this.data.refutable == null ? true : this.data.refutable;\r\n this.closeable = this.data == null || this.data.closeable == null ? true : this.data.closeable;\r\n this.buttonVariant = this.data.buttonVariant;\r\n }\r\n}\r\nBarConfirmComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarConfirmComponent, deps: [{ token: i1$2.BarI18nService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });\r\nBarConfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarConfirmComponent, selector: \"bar-confirm\", ngImport: i0, template: \"

\\r\\n {{title | async}}\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i3$1.MatDialogClose, selector: \"[mat-dialog-close], [matDialogClose]\", inputs: [\"aria-label\", \"type\", \"mat-dialog-close\", \"matDialogClose\"], exportAs: [\"matDialogClose\"] }, { kind: \"directive\", type: i3$1.MatDialogTitle, selector: \"[mat-dialog-title], [matDialogTitle]\", inputs: [\"id\"], exportAs: [\"matDialogTitle\"] }, { kind: \"directive\", type: i3$1.MatDialogContent, selector: \"[mat-dialog-content], mat-dialog-content, [matDialogContent]\" }, { kind: \"directive\", type: i3$1.MatDialogActions, selector: \"[mat-dialog-actions], mat-dialog-actions, [matDialogActions]\", inputs: [\"align\"] }, { kind: \"component\", type: i4.MatButton, selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]\", inputs: [\"disabled\", \"disableRipple\", \"color\"], exportAs: [\"matButton\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarConfirmComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-confirm', template: \"

\\r\\n {{title | async}}\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\" }]\r\n }], ctorParameters: function () {\r\n return [{ type: i1$2.BarI18nService }, { type: BarConfirmOptions, decorators: [{\r\n type: Inject,\r\n args: [MAT_DIALOG_DATA]\r\n }] }];\r\n } });\n\nclass BarDateTimePickerComponent {\r\n constructor(controlContainer, ngZone, i18nService) {\r\n this.controlContainer = controlContainer;\r\n this.ngZone = ngZone;\r\n this.i18nService = i18nService;\r\n /** DateTime picker type. */\r\n this.pickerType = 'date';\r\n /** Whether a range should be selected. */\r\n this.range = false;\r\n /** Which kind of range select mode in case range is true. */\r\n this.rangeSelectMode = 'default';\r\n this.readonly = false;\r\n this.required = undefined;\r\n this.includeSeconds = false;\r\n /** Ensures that the input textbox always contains a valid value on blur. If the form control value is null the input is emptied. */\r\n this.ensureValidInput = true;\r\n this._pickerType = 'calendar';\r\n this._selectMode = 'single';\r\n this.selectionTitle = this.i18nService.instant('DOMAIN_BAR_CONTROLS.DATE_TIME_PICKER.SELECTION_TITLE.DATE');\r\n }\r\n ngOnChanges(changes) {\r\n if (changes.formControl || changes.formControlName) {\r\n this.control = this.formControl || this.controlContainer.control.get(this.formControlName);\r\n }\r\n if (changes.pickerType) {\r\n switch (this.pickerType) {\r\n case 'dateTime': {\r\n this._pickerType = 'both';\r\n this.selectionTitle = this.i18nService.instant('DOMAIN_BAR_CONTROLS.DATE_TIME_PICKER.SELECTION_TITLE.DATE_TIME');\r\n break;\r\n }\r\n case 'time': {\r\n this._pickerType = 'timer';\r\n this.selectionTitle = this.i18nService.instant('DOMAIN_BAR_CONTROLS.DATE_TIME_PICKER.SELECTION_TITLE.TIME');\r\n break;\r\n }\r\n default: {\r\n this._pickerType = 'calendar';\r\n this.selectionTitle = this.i18nService.instant('DOMAIN_BAR_CONTROLS.DATE_TIME_PICKER.SELECTION_TITLE.DATE');\r\n break;\r\n }\r\n }\r\n }\r\n if (changes.range || changes.rangeSelectMode) {\r\n this.defineSelectMode();\r\n }\r\n }\r\n onBlur() {\r\n var _a, _b;\r\n if (this.ensureValidInput &&\r\n this.control &&\r\n this.control.value == null &&\r\n ((_b = (_a = this.input) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.value) &&\r\n this.input.nativeElement.value.length > 0) {\r\n this.input.nativeElement.value = null;\r\n }\r\n }\r\n defineSelectMode() {\r\n if (!this.range)\r\n this._selectMode = 'single';\r\n else {\r\n switch (this.rangeSelectMode) {\r\n case 'from': {\r\n this._selectMode = 'rangeFrom';\r\n break;\r\n }\r\n case 'to': {\r\n this._selectMode = 'rangeTo';\r\n break;\r\n }\r\n default: {\r\n this._selectMode = 'range';\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n registerOnTouched(fn) {\r\n this.formControlDirective.valueAccessor.registerOnTouched(fn);\r\n }\r\n registerOnChange(fn) {\r\n this.formControlDirective.valueAccessor.registerOnChange(fn);\r\n }\r\n writeValue(obj) {\r\n this.ngZone.runOutsideAngular(() => {\r\n window.setTimeout(() => {\r\n this.ngZone.run(() => {\r\n this.formControlDirective.valueAccessor.writeValue(obj);\r\n });\r\n });\r\n });\r\n }\r\n setDisabledState(isDisabled) {\r\n this.formControlDirective.valueAccessor.setDisabledState(isDisabled);\r\n }\r\n focus() {\r\n var _a, _b;\r\n (_b = (_a = this.input) === null || _a === void 0 ? void 0 : _a.nativeElement) === null || _b === void 0 ? void 0 : _b.focus();\r\n }\r\n}\r\nBarDateTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarDateTimePickerComponent, deps: [{ token: i1$3.ControlContainer }, { token: i0.NgZone }, { token: i1$2.BarI18nService }], target: i0.ɵɵFactoryTarget.Component });\r\nBarDateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarDateTimePickerComponent, selector: \"bar-date-time-picker\", inputs: { formControl: \"formControl\", formControlName: \"formControlName\", labelForId: \"labelForId\", label: \"label\", pickerType: \"pickerType\", min: \"min\", max: \"max\", startAt: \"startAt\", range: \"range\", rangeSelectMode: \"rangeSelectMode\", readonly: \"readonly\", required: \"required\", includeSeconds: \"includeSeconds\", dateTimeFilter: \"dateTimeFilter\", ensureValidInput: \"ensureValidInput\" }, providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: BarDateTimePickerComponent,\r\n multi: true\r\n }\r\n ], viewQueries: [{ propertyName: \"input\", first: true, predicate: [\"input\"], descendants: true }, { propertyName: \"formControlDirective\", first: true, predicate: FormControlDirective, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: \"\\r\\n {{label}}\\r\\n \\r\\n \\r\\n \\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1$3.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1$3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$3.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"directive\", type: i1$3.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i4.MatButton, selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]\", inputs: [\"disabled\", \"disableRipple\", \"color\"], exportAs: [\"matButton\"] }, { kind: \"component\", type: i6$2.MatFormField, selector: \"mat-form-field\", inputs: [\"color\", \"appearance\", \"hideRequiredMarker\", \"hintLabel\", \"floatLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i6$2.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i6$2.MatSuffix, selector: \"[matSuffix]\" }, { kind: \"directive\", type: i7.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\"], exportAs: [\"matInput\"] }, { kind: \"directive\", type: i8.OwlDateTimeTriggerDirective, selector: \"[owlDateTimeTrigger]\", inputs: [\"owlDateTimeTrigger\", \"disabled\"] }, { kind: \"directive\", type: i8.OwlDateTimeInputDirective, selector: \"input[owlDateTime]\", inputs: [\"required\", \"owlDateTime\", \"owlDateTimeFilter\", \"_disabled\", \"min\", \"max\", \"selectMode\", \"rangeSeparator\", \"value\", \"values\"], outputs: [\"dateTimeChange\", \"dateTimeInput\"], exportAs: [\"owlDateTimeInput\"] }, { kind: \"component\", type: i8.OwlDateTimeComponent, selector: \"owl-date-time\", inputs: [\"backdropClass\", \"panelClass\", \"startAt\", \"endAt\", \"pickerType\", \"pickerMode\", \"disabled\", \"opened\", \"scrollStrategy\"], outputs: [\"afterPickerClosed\", \"afterPickerOpen\", \"yearSelected\", \"monthSelected\", \"dateSelected\"], exportAs: [\"owlDateTime\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarDateTimePickerComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-date-time-picker', providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: BarDateTimePickerComponent,\r\n multi: true\r\n }\r\n ], template: \"\\r\\n {{label}}\\r\\n \\r\\n \\r\\n \\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: i1$3.ControlContainer }, { type: i0.NgZone }, { type: i1$2.BarI18nService }]; }, propDecorators: { input: [{\r\n type: ViewChild,\r\n args: ['input']\r\n }], formControlDirective: [{\r\n type: ViewChild,\r\n args: [FormControlDirective, { static: true }]\r\n }], formControl: [{\r\n type: Input\r\n }], formControlName: [{\r\n type: Input\r\n }], labelForId: [{\r\n type: Input\r\n }], label: [{\r\n type: Input\r\n }], pickerType: [{\r\n type: Input\r\n }], min: [{\r\n type: Input\r\n }], max: [{\r\n type: Input\r\n }], startAt: [{\r\n type: Input\r\n }], range: [{\r\n type: Input\r\n }], rangeSelectMode: [{\r\n type: Input\r\n }], readonly: [{\r\n type: Input\r\n }], required: [{\r\n type: Input\r\n }], includeSeconds: [{\r\n type: Input\r\n }], dateTimeFilter: [{\r\n type: Input\r\n }], ensureValidInput: [{\r\n type: Input\r\n }] } });\n\nvar BarEditPageLoadReason;\r\n(function (BarEditPageLoadReason) {\r\n /** Regular load */\r\n BarEditPageLoadReason[BarEditPageLoadReason[\"Load\"] = 0] = \"Load\";\r\n /** Load because a save happened */\r\n BarEditPageLoadReason[BarEditPageLoadReason[\"Save\"] = 1] = \"Save\";\r\n /** Load after undo */\r\n BarEditPageLoadReason[BarEditPageLoadReason[\"Undo\"] = 2] = \"Undo\";\r\n})(BarEditPageLoadReason || (BarEditPageLoadReason = {}));\n\n/** BAR edit page initialization arguments. */\r\nclass BarEditPageLoadArgs {\r\n}\n\n/** Arguments object for edit page save. */\r\nclass BarEditPageSaveArgs {\r\n constructor() {\r\n /** Whether to prevent the load after a successfull save. */\r\n this.preventLoad = false;\r\n }\r\n}\n\n/** The trigger which caused the save action. */\r\nvar BarEditPageSaveReason;\r\n(function (BarEditPageSaveReason) {\r\n /** The save happened because the user clicked on the save button. */\r\n BarEditPageSaveReason[BarEditPageSaveReason[\"Default\"] = 0] = \"Default\";\r\n /** The save happened because of an autosave. */\r\n BarEditPageSaveReason[BarEditPageSaveReason[\"Autosave\"] = 1] = \"Autosave\";\r\n /** Custom reason (save function invoked). */\r\n BarEditPageSaveReason[BarEditPageSaveReason[\"Custom\"] = 2] = \"Custom\";\r\n})(BarEditPageSaveReason || (BarEditPageSaveReason = {}));\n\n/** Options for performing a save operation. */\r\nclass BarEditPageSaveOptions {\r\n constructor() {\r\n /** The reason why a save is performed */\r\n this.reason = BarEditPageSaveReason.Custom;\r\n /** Whether to suppress the save message. */\r\n this.suppressSaveMessage = false;\r\n /** Whether the page should exist edit modus and go back into readonly or disabled modus. */\r\n this.exitEdit = false;\r\n }\r\n}\n\nvar BarToastMessageType;\r\n(function (BarToastMessageType) {\r\n BarToastMessageType[\"Success\"] = \"success\";\r\n BarToastMessageType[\"Warning\"] = \"warning\";\r\n BarToastMessageType[\"Error\"] = \"error\";\r\n BarToastMessageType[\"Info\"] = \"info\";\r\n})(BarToastMessageType || (BarToastMessageType = {}));\n\n/** Confirmation dialog service. */\r\nclass BarConfirmService {\r\n // depends on material dialog\r\n constructor(dialog) {\r\n this.dialog = dialog;\r\n }\r\n /**\r\n * Opens a confirm dialog.\r\n * @param data Data needed for the dialog.\r\n */\r\n open(data) {\r\n return this.handleConfirmation(data);\r\n }\r\n /**\r\n * Opens a confirm dialog and triggers when confirmed.\r\n * @param data\r\n */\r\n confirm(data) {\r\n return this.handleConfirmation(data).pipe(mergeMap((result) => {\r\n if (result)\r\n return of(undefined);\r\n else\r\n return EMPTY;\r\n }));\r\n }\r\n /**\r\n * Opens a confirm dialog and triggers when refuted (not confirmed).\r\n * @param data\r\n */\r\n refute(data) {\r\n return this.handleConfirmation(data).pipe(mergeMap((result) => {\r\n if (!result)\r\n return of(undefined);\r\n else\r\n return EMPTY;\r\n }));\r\n }\r\n handleConfirmation(data) {\r\n const config = {\r\n height: data.height == null ? '190px' : data.height,\r\n width: data.width == null ? '450px' : data.width,\r\n data: data\r\n };\r\n if (data.closeable != null) {\r\n config.disableClose = !data.closeable;\r\n }\r\n const dialogRef = this.dialog.open(BarConfirmComponent, config);\r\n return dialogRef.afterClosed();\r\n }\r\n}\r\nBarConfirmService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarConfirmService, deps: [{ token: i3$1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarConfirmService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarConfirmService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarConfirmService, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () { return [{ type: i3$1.MatDialog }]; } });\n\n/** Options for BarLayoutModule */\r\nclass BarLayoutModuleOptions {\r\n}\n\n/** Contains shared state within the layout module. */\r\nclass BarLayoutStateService {\r\n constructor(injector, options, coreState) {\r\n this.injector = injector;\r\n this.options = options;\r\n this.coreState = coreState;\r\n }\r\n /** Home url override for the layout module (disconnected modus). */\r\n get homeUrlOverride() {\r\n var _a;\r\n return (_a = this.options.data) === null || _a === void 0 ? void 0 : _a.homeUrl;\r\n }\r\n /** Final home url. If override provides the override is used otherwise the core home functionality is used. */\r\n get homeUrl() {\r\n let result = this.homeUrlOverride;\r\n if (result == null) {\r\n if (this.core.homeAction != null) {\r\n result = this.getUrlFromActionDef(this.core.homeAction);\r\n if (result == null) {\r\n result = this.coreState.config.homeUrl;\r\n }\r\n }\r\n else {\r\n result = this.coreState.config.homeUrl;\r\n }\r\n }\r\n return result;\r\n }\r\n get rootUrl() {\r\n var _a, _b, _c;\r\n return (this.core.rootAction != null ? this.getUrlFromActionDef(this.core.rootAction) : null) || ((_c = (_b = (_a = this.coreState) === null || _a === void 0 ? void 0 : _a.location) === null || _b === void 0 ? void 0 : _b.spa) === null || _c === void 0 ? void 0 : _c.url);\r\n }\r\n get secLevel() {\r\n var _a;\r\n return ((_a = this.options.data) === null || _a === void 0 ? void 0 : _a.environment) != null || this.coreState == null\r\n ? this.options.data.environment\r\n : this.getSecLevelString(this.coreState.toepassing.securityLevel);\r\n }\r\n // avoid IOC cyclic dependency error\r\n get core() {\r\n return this.injector.get(BarCoreService);\r\n }\r\n getSecLevelString(securityLevel) {\r\n switch (securityLevel) {\r\n case BarSecurityLevel.Development:\r\n return 'DEV';\r\n case BarSecurityLevel.Test:\r\n return 'TST';\r\n case BarSecurityLevel.Production:\r\n return 'PRD';\r\n default:\r\n return 'Unknown';\r\n }\r\n }\r\n getUrlFromActionDef(action) {\r\n let result = null;\r\n // here we decide what's the url based on the definition\r\n if (action.href != null) {\r\n result = resolveValue(action.href);\r\n }\r\n else if (action.routerUrl != null) {\r\n result = resolveValue(action.routerUrl);\r\n }\r\n else if (action.routerCommands != null) {\r\n result = resolveValue(action.routerCommands).join('/');\r\n }\r\n return result;\r\n }\r\n}\r\nBarLayoutStateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutStateService, deps: [{ token: i0.Injector }, { token: BarLayoutModuleOptions }, { token: i1$4.BarCoreStateService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarLayoutStateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutStateService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutStateService, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () {\r\n return [{ type: i0.Injector }, { type: BarLayoutModuleOptions }, { type: i1$4.BarCoreStateService, decorators: [{\r\n type: Optional\r\n }] }];\r\n } });\n\nconst IMAGES_PREFIX = 'images/all/';\r\nconst BAR_LAYOUT_CONSTANTS = {\r\n IMAGES: {\r\n FAVICON: IMAGES_PREFIX + 'VO-favicon.ico'\r\n },\r\n GVK_KEYS: {\r\n MENU_STATE: 'domain.basisarch.web.core.menuState',\r\n PAGE_STATE: 'domain.basisarch.web.core.pageState'\r\n }\r\n};\n\n// NOTE do not expose this, this is a man-in-the-middle class\r\n/** Internal service for gvk stuff with the layout.*/\r\nclass BarLayoutInternalGvkService {\r\n constructor(gvkManager, coreState, moduleOptions) {\r\n this.gvkManager = gvkManager;\r\n this.coreState = coreState;\r\n this.moduleOptions = moduleOptions;\r\n // event emitter invoked when the layout needs to set the menu state\r\n this.barMenuStateChanged = new EventEmitter();\r\n // invoked when the layout needs to set the compact modus\r\n this.compactChanged = new EventEmitter();\r\n this.gvkSettings = {\r\n // storage under webcore appcode because it should be compatible with Legacy MVC apps\r\n appCode: 'BWCWUI',\r\n // run in GVK version 1 which is compatible with MVC applications\r\n compatibilityMode: BarGvkCompatibilityMode.Version_1\r\n };\r\n // flag used to determine whether the page state can be changed by the behavior subject subcribes in the layout service\r\n this.allowPersistPageState = true;\r\n this._disabled = false;\r\n }\r\n /** Whether disabled */\r\n get disabled() {\r\n // user storage must be injected\r\n return this.gvkManager == null || !this.coreState || !this.coreState.basiscontext || this.moduleOptions.gvk === false || this._disabled;\r\n }\r\n /** Invoked before user interface is loaded */\r\n preInit() {\r\n // use a global observable\r\n return new Observable((subscriber) => {\r\n if (this.disabled) {\r\n // disabled do nothing\r\n subscriber.next();\r\n subscriber.complete();\r\n }\r\n else {\r\n this.gvkManager.checkDisabled(this.gvkSettings.appCode).then((disabled) => {\r\n this._disabled = disabled;\r\n if (disabled) {\r\n // user storage back-end disabled do nothing\r\n subscriber.next();\r\n subscriber.complete();\r\n }\r\n else {\r\n const menuState$ = from(this.gvkManager.getItem(BAR_LAYOUT_CONSTANTS.GVK_KEYS.MENU_STATE, this.gvkSettings));\r\n const pageState$ = from(this.gvkManager.getItem(BAR_LAYOUT_CONSTANTS.GVK_KEYS.PAGE_STATE, this.gvkSettings));\r\n // combine observables\r\n forkJoin([menuState$, pageState$]).subscribe((result) => {\r\n const menuState = result[0];\r\n const pageState = result[1];\r\n // set local state\r\n this.barMenuState =\r\n menuState && menuState['bar-layout-menu'] && menuState['bar-layout-menu']['OTHER']\r\n ? menuState['bar-layout-menu']['OTHER']['bar-menu-state'] || 'default'\r\n : 'default';\r\n this.barPageState =\r\n pageState && pageState['html'] && pageState['html']['OTHER']\r\n ? pageState['html']['OTHER']['barPageState'] || 'default'\r\n : 'default';\r\n // local state defined, complete the observable when all state is retrieved (forkJoin)\r\n subscriber.next();\r\n subscriber.complete();\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n /** Does the initialization. */\r\n init() {\r\n if (!this.disabled) {\r\n // CSS will apply itself for the menu based on next dom value\r\n document.documentElement.setAttribute('data-bar-menu-state', this.barMenuState);\r\n this.barMenuStateChanged.emit(this.barMenuState);\r\n document.documentElement.setAttribute('data-bar-page-layout', this.barPageState);\r\n this.allowPersistPageState = false;\r\n // notify the layout to set compact and touch modus (without saving to gvk)\r\n this.compactChanged.emit(this.barPageState === 'compact');\r\n this.allowPersistPageState = true;\r\n }\r\n }\r\n /**\r\n * Persist the chosen menu state into the user storage.\r\n * @param barMenuState State of the menu.\r\n */\r\n persistMenuState(barMenuState) {\r\n if (!this.disabled) {\r\n // use legacy GVK format for compatibility with ASP.NET MVC applications\r\n const value = {\r\n _gvk_timeStamp: new Date().getTime(),\r\n _gvk_setName: BAR_LAYOUT_CONSTANTS.GVK_KEYS.MENU_STATE,\r\n 'bar-layout-menu': {\r\n OTHER: {\r\n 'bar-menu-state': barMenuState\r\n }\r\n }\r\n };\r\n // save in the user storage\r\n this.gvkManager.setItem(BAR_LAYOUT_CONSTANTS.GVK_KEYS.MENU_STATE, value, this.gvkSettings);\r\n }\r\n }\r\n // Set new page state and save to gvk\r\n /**\r\n * Persists the chosen page state into the user storage.\r\n * @param barPageState State of the page.\r\n */\r\n persistPageState(barPageState) {\r\n if (!this.disabled && this.allowPersistPageState) {\r\n document.documentElement.setAttribute('data-bar-page-layout', barPageState);\r\n // use legacy GVK format for compatibility with ASP.NET MVC applications\r\n const value = {\r\n _gvk_timeStamp: new Date().getTime(),\r\n _gvk_setName: BAR_LAYOUT_CONSTANTS.GVK_KEYS.PAGE_STATE,\r\n html: {\r\n OTHER: { barPageState: barPageState }\r\n }\r\n };\r\n this.gvkManager.setItem(BAR_LAYOUT_CONSTANTS.GVK_KEYS.PAGE_STATE, value, this.gvkSettings);\r\n }\r\n }\r\n}\r\nBarLayoutInternalGvkService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutInternalGvkService, deps: [{ token: i1$5.BarGvkManager, optional: true }, { token: i1$4.BarCoreStateService, optional: true }, { token: BarLayoutModuleOptions }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarLayoutInternalGvkService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutInternalGvkService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutInternalGvkService, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () {\r\n return [{ type: i1$5.BarGvkManager, decorators: [{\r\n type: Optional\r\n }] }, { type: i1$4.BarCoreStateService, decorators: [{\r\n type: Optional\r\n }] }, { type: BarLayoutModuleOptions }];\r\n } });\n\n/** Internal BAR layout service NOT EXPOSED */\r\nclass _BarInternalLayoutService {\r\n constructor(injector, location, translate, state, gvk) {\r\n this.injector = injector;\r\n this.location = location;\r\n this.translate = translate;\r\n this.state = state;\r\n this.gvk = gvk;\r\n this.injectSection = new EventEmitter();\r\n this.clearSection = new EventEmitter();\r\n /** internal banner used by meldingen, we use an internal banner otherwise we cannot define a custom banner\r\n because of the rxjs timing uncertainties we would always override the custom banner through the meldingen\r\n this way the external banner (BarLayoutService) always gets priority over this one */\r\n this.banner$$ = new BehaviorSubject(null);\r\n /** Internal content actions used for frameworking purposes. */\r\n this.internalContentActions$$ = new BehaviorSubject([]);\r\n /** Whether the app loader processing is pending. */\r\n this.appLoadingPending$$ = new BehaviorSubject(true);\r\n /** Whether the first app loader appearance is still on. */\r\n this.firstAppLoading$$ = new BehaviorSubject(true);\r\n this.deviceType$$ = new BehaviorSubject(undefined);\r\n // pipeline of actions to be executed after current run\r\n this.actionPipeline = [];\r\n }\r\n get smallDevice() {\r\n return window.innerWidth < 1200;\r\n }\r\n get backAction() {\r\n return {\r\n action: () => {\r\n this.back();\r\n },\r\n title: this.translate.instant('DOMAIN_BAR_LAYOUT.BACK'),\r\n icon: {\r\n class: 'fas fa-arrow-left',\r\n srText: this.translate.instant('DOMAIN_BAR_LAYOUT.BACK'),\r\n iconOnly: true\r\n }\r\n };\r\n }\r\n // avoid IOC cyclic dependency error\r\n get core() {\r\n return this.injector.get(BarCoreService);\r\n }\r\n ngOnDestroy() {\r\n // complete all behavior subjects\r\n this.banner$$.complete();\r\n this.internalContentActions$$.complete();\r\n this.appLoadingPending$$.complete();\r\n this.firstAppLoading$$.complete();\r\n this.deviceType$$.complete();\r\n }\r\n /** Queues an action to be executed in next ng iteration (in case dev mode). */\r\n queueAction(action) {\r\n if (isDevMode()) {\r\n this.actionPipeline.push(action);\r\n if (!this.timeoutResult) {\r\n // NOTE avoid value has changed after it was checked issues\r\n // one timeout to cause one change detection (group all layout actions together)\r\n this.timeoutResult = window.setTimeout(() => {\r\n this.actionPipeline.forEach((ac) => {\r\n ac();\r\n });\r\n this.timeoutResult = undefined;\r\n this.actionPipeline = [];\r\n });\r\n }\r\n }\r\n else {\r\n action();\r\n }\r\n }\r\n back() {\r\n this.location.back();\r\n }\r\n setMenuState(state) {\r\n document.documentElement.setAttribute('data-bar-menu-state', state);\r\n // gvk will give us the menu state\r\n this.gvk.persistMenuState(state);\r\n }\r\n /** Sets the internal content actions. */\r\n setInternalContentActions(internalContentActions) {\r\n this.internalContentActions$$.next(internalContentActions);\r\n }\r\n init() {\r\n // this will define the icon button with the home icon\r\n this.internalMainAction = {\r\n title: this.translate.instant('DOMAIN_BAR_LAYOUT.MAINSCREEN'),\r\n icon: {\r\n class: 'fas fa-home',\r\n srText: this.translate.instant('DOMAIN_BAR_LAYOUT.MAINSCREEN'),\r\n iconOnly: true\r\n }\r\n };\r\n if (this.state.homeUrlOverride != null) {\r\n // use provides an override for the layout module use this (which is href for now)\r\n this.internalMainAction.href = this.state.homeUrlOverride;\r\n }\r\n else {\r\n this.internalMainAction.action = () => {\r\n // just use default core functionality if no override\r\n this.core.navigateHome();\r\n };\r\n }\r\n this.internalContentActions$ = this.internalContentActions$$.asObservable();\r\n }\r\n}\r\n_BarInternalLayoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: _BarInternalLayoutService, deps: [{ token: i0.Injector }, { token: i2.Location }, { token: i1$2.BarI18nService }, { token: BarLayoutStateService }, { token: BarLayoutInternalGvkService }], target: i0.ɵɵFactoryTarget.Injectable });\r\n_BarInternalLayoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: _BarInternalLayoutService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: _BarInternalLayoutService, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i2.Location }, { type: i1$2.BarI18nService }, { type: BarLayoutStateService }, { type: BarLayoutInternalGvkService }]; } });\n\nclass BarLayoutSectionInjection {\r\n}\n\n/**\r\n * Holds loading information.\r\n */\r\n// NOTE next is needed because of static property\r\n// @dynamic\r\nclass BarLoadingOptions {\r\n static get default() {\r\n return { enabled: true, overlay: true, delay: 500 };\r\n }\r\n}\n\n// NOTE NULL or true means true\r\n/**\r\n * Options to reset the BAR layout.\r\n */\r\nclass BarResetLayoutOptions {\r\n}\n\n/** Public BAR layout service */\r\nclass BarLayoutService {\r\n constructor(translate, injector, gvk) {\r\n this.translate = translate;\r\n this.injector = injector;\r\n this.gvk = gvk;\r\n /** Whether the layout chrome should be hidden showing only the application content. */\r\n this.hidden$ = new BehaviorSubject(false);\r\n this.helpLink$ = new BehaviorSubject(null);\r\n this.title$ = new BehaviorSubject(null);\r\n this.subTitle$ = new BehaviorSubject(null);\r\n this.mainHeader$ = new BehaviorSubject(null);\r\n this.documentTitle$ = new BehaviorSubject(null);\r\n this.sidebar$ = new BehaviorSubject(true);\r\n this.banner$ = new BehaviorSubject(null);\r\n this.appMenuItems$ = new BehaviorSubject(null);\r\n this.menuItems$ = new BehaviorSubject([]);\r\n this.menuItemsAutoCollapse$ = new BehaviorSubject(false);\r\n this.externalLinkGroups$ = new BehaviorSubject(null);\r\n this.strikingActions$ = new BehaviorSubject(null);\r\n this.operations$ = new BehaviorSubject(null);\r\n this.submitActions$ = new BehaviorSubject(null);\r\n this.moreActions$ = new BehaviorSubject(null);\r\n this.contentActions$ = new BehaviorSubject(null);\r\n this.mainAction$ = new BehaviorSubject(null);\r\n /** Loading overlay visible or not. This is used when the app is loaded, but when something is loading (e.g. network, http call). */\r\n this.loading$ = new BehaviorSubject(false);\r\n this.loadingOptions$ = new BehaviorSubject(BarLoadingOptions.default);\r\n /** Global app loading overlay visible or not. Only to be used in exceptional cases. The loader is mainly used to indicate that the entire app is loading. */\r\n this.appLoading$ = new BehaviorSubject(true);\r\n /** Whether layout http interception is performed */\r\n this.interception$ = new BehaviorSubject(true);\r\n this.compact$ = new BehaviorSubject(false);\r\n this.touch$ = new BehaviorSubject(false);\r\n this.menuState$ = new BehaviorSubject('default');\r\n this.mobileFriendly$ = new BehaviorSubject(false);\r\n this.appVersion$ = new BehaviorSubject(null);\r\n this.preventMenuStateEvents = false;\r\n this.deviceType$ = this.internalLayout.deviceType$$.asObservable();\r\n }\r\n get menuAction() {\r\n const translationText = this.translate.instant(this.menuState$.getValue() !== 'closed' ? 'DOMAIN_BAR_LAYOUT.MENU.CLOSE_MENU' : 'DOMAIN_BAR_LAYOUT.MENU.OPEN');\r\n return {\r\n action: () => {\r\n this.menuState$.next(this.menuState$.getValue() !== 'closed' ? 'closed' : this.internalLayout.smallDevice ? 'overlay' : 'pinned');\r\n },\r\n title: translationText,\r\n icon: {\r\n class: 'fas fa-bars',\r\n srText: translationText,\r\n iconOnly: true\r\n }\r\n };\r\n }\r\n get internalLayout() {\r\n return this.injector.get(_BarInternalLayoutService);\r\n }\r\n ngOnDestroy() {\r\n // complete all behavior subjects to ensure all subscribers close (avoid leaks)\r\n this.hidden$.complete();\r\n this.helpLink$.complete();\r\n this.title$.complete();\r\n this.subTitle$.complete();\r\n this.documentTitle$.complete();\r\n this.sidebar$.complete();\r\n this.banner$.complete();\r\n this.appMenuItems$.complete();\r\n this.menuItems$.complete();\r\n this.menuItemsAutoCollapse$.complete();\r\n this.externalLinkGroups$.complete();\r\n this.strikingActions$.complete();\r\n this.operations$.complete();\r\n this.submitActions$.complete();\r\n this.moreActions$.complete();\r\n this.contentActions$.complete();\r\n this.mainAction$.complete();\r\n this.loading$.complete();\r\n this.loadingOptions$.complete();\r\n this.appLoading$.complete();\r\n this.interception$.complete();\r\n this.compact$.complete();\r\n this.touch$.complete();\r\n this.menuState$.complete();\r\n this.mobileFriendly$.complete();\r\n this.appVersion$.complete();\r\n }\r\n init() {\r\n this.documentTitle$.subscribe((title) => {\r\n // only set document title when title is not null, a document title is always required\r\n if (title)\r\n document.title = title;\r\n });\r\n this.compact$.subscribe((compact) => {\r\n if (compact !== null)\r\n this.gvk.persistPageState(compact ? 'compact' : 'default');\r\n });\r\n this.menuState$.subscribe((state) => {\r\n if (!this.preventMenuStateEvents) {\r\n this.internalLayout.setMenuState(state);\r\n }\r\n });\r\n this.gvk.barMenuStateChanged.subscribe((barMenuState) => {\r\n // gvk will give us the menu state and we have to assign it to the local variable because the layout is bound to it\r\n // NOTE in this case we don't want menu state events to avoid cycles\r\n this.preventMenuStateEvents = true;\r\n this.menuState$.next(barMenuState);\r\n this.preventMenuStateEvents = false;\r\n });\r\n // hook to gvk internal compact changed because we don't want cyclic dependency\r\n this.gvk.compactChanged.subscribe((compact) => {\r\n this.compact$.next(compact);\r\n });\r\n this.hidden$.subscribe((value) => {\r\n // in case hidden we need to hide the header and footer (embedded modus)\r\n // we hide the wrapper so that we hide the dynamic html\r\n const headerWrapper = document.getElementById('flanders-header-wrapper');\r\n if (headerWrapper)\r\n headerWrapper.style.display = value ? 'none' : 'block';\r\n const footerWrapper = document.getElementById('flanders-footer-wrapper');\r\n if (footerWrapper)\r\n footerWrapper.style.display = value ? 'none' : 'block';\r\n });\r\n // Subscribe contentActions for adding padding to the H1 so that the actions don't overlap with the H1\r\n combineLatest([this.contentActions$, this.mainHeader$]).subscribe(([contentActions, mainHeader]) => {\r\n const addPaddingToHeader = (padding) => {\r\n const mainWrapper = document.getElementsByClassName('bar-layout-page-content');\r\n if (mainWrapper && mainWrapper.length) {\r\n const pageHeader = mainWrapper[0].getElementsByTagName('h1');\r\n if (pageHeader && pageHeader.length)\r\n pageHeader[0].style.paddingRight = padding ? `${padding + 30}px` : '0';\r\n }\r\n };\r\n if (contentActions && contentActions.length && !mainHeader) {\r\n // Timeout of 0 required for rendering the DOM\r\n setTimeout(() => {\r\n const contentActionsTopElements = document.getElementsByClassName('bar-layout-page-content__actions--top');\r\n if (contentActionsTopElements.length) {\r\n const contentActionsWidth = contentActionsTopElements[0].getBoundingClientRect().width;\r\n addPaddingToHeader(contentActionsWidth);\r\n }\r\n }, 0);\r\n }\r\n else {\r\n addPaddingToHeader(0);\r\n }\r\n });\r\n }\r\n reset(options = new BarResetLayoutOptions()) {\r\n // by default we enable the sidebar\r\n if (options.clearSidebar !== false) {\r\n this.sidebar$.next(true);\r\n }\r\n // clear out values which are specific to a page\r\n if (options.clearStrikingActions !== false) {\r\n this.strikingActions$.next(null);\r\n }\r\n if (options.clearOperations !== false) {\r\n this.operations$.next(null);\r\n }\r\n if (options.clearExternalLinks !== false) {\r\n this.externalLinkGroups$.next(null);\r\n }\r\n if (options.clearSubmitActions !== false) {\r\n this.submitActions$.next(null);\r\n }\r\n if (options.clearContentActions !== false) {\r\n this.contentActions$.next(null);\r\n }\r\n if (options.clearMoreActions !== false) {\r\n this.moreActions$.next(null);\r\n }\r\n if (options.clearTitle !== false) {\r\n this.title$.next(null);\r\n }\r\n if (options.clearSubTitle !== false) {\r\n this.subTitle$.next(null);\r\n }\r\n if (options.clearMenu !== false) {\r\n this.menuItems$.next(null);\r\n }\r\n if (options.clearAppMenu === true) {\r\n this.appMenuItems$.next(null);\r\n }\r\n if (options.clearBanner !== false) {\r\n this.banner$.next(null);\r\n }\r\n if (options.clearHelp !== false) {\r\n this.helpLink$.next(null);\r\n }\r\n if (options.clearInterception !== false) {\r\n this.interception$.next(true);\r\n }\r\n if (options.clearMainHeader !== false)\r\n this.mainHeader$.next(null);\r\n if (this.appLoading$.getValue())\r\n this.appLoading$.next(false);\r\n }\r\n /* Inject a component into a section of the layout dynamically and returns an observable with the component ref.\r\n * Use this component ref to pass additional data.\r\n * @param component Component to inject into the layout\r\n * @param section Section within the layout to inject the component into\r\n */\r\n injectSection(component, section) {\r\n const prepInjection = (component, section) => {\r\n const injection = new BarLayoutSectionInjection();\r\n injection.section = section;\r\n injection.component = component;\r\n this.internalLayout.injectSection.emit(injection);\r\n return injection.componentRef;\r\n };\r\n return new Observable((subscriber) => {\r\n const complete = () => {\r\n const result = prepInjection(component, section);\r\n subscriber.next(result);\r\n return subscriber.complete();\r\n };\r\n this.internalLayout.queueAction(() => complete());\r\n });\r\n }\r\n /**\r\n * Clears the given section\r\n * @param section Given section in the layout.\r\n */\r\n clearSection(section) {\r\n return new Observable((subscriber) => {\r\n const complete = () => {\r\n this.internalLayout.clearSection.emit(section);\r\n subscriber.next();\r\n subscriber.complete();\r\n };\r\n this.internalLayout.queueAction(() => {\r\n complete();\r\n });\r\n });\r\n }\r\n}\r\nBarLayoutService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutService, deps: [{ token: i1$2.BarI18nService }, { token: i0.Injector }, { token: BarLayoutInternalGvkService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarLayoutService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutService, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }], ctorParameters: function () { return [{ type: i1$2.BarI18nService }, { type: i0.Injector }, { type: BarLayoutInternalGvkService }]; } });\n\nclass BarToastMessage {\r\n constructor(message) {\r\n this.id = message.id ? message.id : generateUuid();\r\n this.text = message.text;\r\n this.type = message.type ? message.type : BarToastMessageType.Warning;\r\n this.persistent =\r\n message.persistent === undefined ? false : message.persistent;\r\n this.component = message.component;\r\n this.componentParameters = message.componentParameters;\r\n if (!message.duration && message.text) {\r\n const textLength = Math.floor(message.text.length / 120);\r\n this.duration = 5000 + textLength * 1000;\r\n }\r\n else {\r\n this.duration =\r\n !message.duration ||\r\n (message.duration && message.duration < 5000)\r\n ? 5000\r\n : message.duration;\r\n }\r\n }\r\n}\n\n/**\r\n * Provides bar toast messages.\r\n */\r\nclass BarToastMessageService {\r\n constructor() {\r\n this.messages$ = new BehaviorSubject([]);\r\n this.messageRemovalBucket = {};\r\n }\r\n get messages() {\r\n return this.messages$.asObservable();\r\n }\r\n addMessage(message) {\r\n const toastMessage = new BarToastMessage(message);\r\n const messages = this.messages$.getValue();\r\n // prevent duplicate messages\r\n // requirement for duplicates: same text & age < 500ms (must have text prop set)\r\n let foundDuplicate = false;\r\n if (message.text) {\r\n const now = Date.now();\r\n foundDuplicate = Object.keys(this.messageRemovalBucket).find((key) => {\r\n if (this.messageRemovalBucket[key].message.text)\r\n return this.messageRemovalBucket[key].message.text === message.text && now - this.messageRemovalBucket[key].time < 500;\r\n else\r\n return false;\r\n });\r\n }\r\n if (!foundDuplicate) {\r\n this.messages$.next(messages && messages.length ? [...messages, toastMessage] : [toastMessage]);\r\n if (!toastMessage.persistent) {\r\n this.messageRemovalBucket[toastMessage.id] = {\r\n timer: setTimeout(() => {\r\n this.removeMessage(toastMessage.id);\r\n }, toastMessage.duration),\r\n time: Date.now(),\r\n message: message\r\n };\r\n }\r\n }\r\n }\r\n removeMessage(id) {\r\n const messages = this.messages$.getValue();\r\n const messageIndex = messages.findIndex((m) => m.id === id);\r\n messages.splice(messageIndex, 1);\r\n this.messages$.next(messages);\r\n if (this.messageRemovalBucket[id])\r\n this.deleteFromBucket(id);\r\n }\r\n removeMessages() {\r\n this.messages$.next([]);\r\n Object.keys(this.messageRemovalBucket).forEach((id) => {\r\n this.deleteFromBucket(id);\r\n });\r\n }\r\n deleteFromBucket(id) {\r\n clearTimeout(this.messageRemovalBucket[id].timer);\r\n delete this.messageRemovalBucket[id];\r\n }\r\n}\r\nBarToastMessageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarToastMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarToastMessageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarToastMessageService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarToastMessageService, decorators: [{\r\n type: Injectable,\r\n args: [{\r\n providedIn: 'root'\r\n }]\r\n }] });\n\n// NOTE added this to avoid Ivy compilation errors (classes without decorators)\r\n/** @deprecated Use the angular component instead.\r\n * Edit page base class component. */\r\nclass BarEditPageBaseComponent {\r\n /**\r\n * Constructor accepting injector.\r\n * @param injector Injector needed for the base component to get all it's needed providers.\r\n */\r\n constructor(injector) {\r\n /** Whether the item in the page is deletable in case in edit modus. A delete button will appear. */\r\n this.deletable = false;\r\n /** If an edit page is disabled or readonly and deletable the delete button doesn't show. With this property we force the delete button to appear in all cases. */\r\n this.forceDeletable = false;\r\n /** Whether the item in the page is saveable in case in edit modus. If true (default) the save and undo buttons appear. */\r\n this.saveable = true;\r\n /** Whether the page is in readonly. This means we don't have save/undo/delete buttons. */\r\n this.readonly = false;\r\n /** Whether editable. If not defined it is immediately editable if not readonly.\r\n * If readonly == true && editable == true then an edit button appears. */\r\n this.editable = null;\r\n /** Whether to automatically define the save model. It will be filled in the model property of BarEditPageSaveArgs. */\r\n this.autoGenerateSaveModel = true;\r\n /** Whether the undo action must be confirmed */\r\n this.confirmUndo = false;\r\n /** Whether the save action must be confirmed */\r\n this.confirmSave = false;\r\n /** Whether to show an undo message after doing the undo. */\r\n this.showUndoMessage = false;\r\n /** Whether to show a delete message after doing the delete. */\r\n this.showDeleteMessage = false;\r\n /** Whether to show a save message after doing a save. */\r\n this.showSaveMessage = true;\r\n /** Whether to force to be in valid modus even if the form is invalid */\r\n this.forceValid = false;\r\n /** Whether to force that the edit button is visible even if edit disabled in case using the editable flag */\r\n this.forceEditActionVisible = false;\r\n /** Whether the form must be valid in case the form is pristine.\r\n * The default behavior is false: In case pristine no validation is done. */\r\n this.enforceValidOnPristine = false;\r\n /** Whether the before unload event, in case the user navigates away (href), is disabled. */\r\n this.beforeUnloadDisabled = false;\r\n /** Whether to show an extra warning when the form is invalid and a save occurs. */\r\n this.showSaveMessageOnInvalid = true;\r\n this.savePending$ = new BehaviorSubject(false);\r\n this._disabled = false;\r\n this._submitted = false;\r\n // edit tooltip override (to show tooltip in case disabled)\r\n this._editTooltip = null;\r\n this.firstLoad = true;\r\n // NOTE this flag is used in case we have disabled/readonly modus with editable functionality (edit button)\r\n this.disabledEditing = null;\r\n // avoid constructor injection because this makes it less flexible\r\n this._route = injector.get(ActivatedRoute);\r\n this._layout = injector.get(BarLayoutService);\r\n this._internalLayout = injector.get(_BarInternalLayoutService);\r\n this._translate = injector.get(BarI18nService);\r\n this._confirm = injector.get(BarConfirmService);\r\n this._toastMessage = injector.get(BarToastMessageService);\r\n }\r\n // NOTE here we use { static: false } because form can be assigned with *ngIf\r\n // we use a set property because we need to do register the form submit to invoke the save when the viewchild gets assigned\r\n /** Represents the edit form in case the consuming code is using template driven forms. */\r\n set formElement(formElement) {\r\n if (formElement != null) {\r\n this._formElement = formElement;\r\n // unsubscribe in case already subscribed to prevent multiple subscriptions\r\n if (this.ngSubmitSubscription)\r\n this.ngSubmitSubscription.unsubscribe();\r\n // here we make sure a submit performs a save and set up the system for submit on enter\r\n this.ngSubmitSubscription = this.formElement.ngSubmit.subscribe(() => {\r\n this.save({\r\n reason: BarEditPageSaveReason.Default,\r\n // only make readonly in case the form is editable (and property is being used must not be NULL)\r\n exitEdit: this.editable === true\r\n }).subscribe();\r\n });\r\n }\r\n }\r\n get formElement() {\r\n return this._formElement;\r\n }\r\n // NOTE here we use { static: false } because form can be assigned with *ngIf\r\n // we also use a set property because we need to do register the hidden submit button in the form\r\n /** Represents the element ref of the form */\r\n set formRef(formRef) {\r\n if (formRef != null) {\r\n this._formRef = formRef;\r\n // add a hidden button for screenreaders (web toegankelijkheid)\r\n const btn = document.createElement('button');\r\n btn.type = 'submit';\r\n btn.className = 'sr-only';\r\n btn.tabIndex = -1;\r\n btn.innerText = this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.SAVE');\r\n btn.setAttribute('aria-hidden', 'true');\r\n this.formRef.nativeElement.appendChild(btn);\r\n }\r\n }\r\n get formRef() {\r\n return this._formRef;\r\n }\r\n /** Whether the edit page has changed */\r\n get dirty() {\r\n return this.formWrapper != null ? this.formWrapper.dirty : false;\r\n }\r\n /** Whether the edit page is valid. */\r\n get valid() {\r\n // the page is valid in case the form is valid or if the consumer forces it to be valid (forceValid)\r\n return this.forceValid || (this.formWrapper != null ? this.formWrapper.valid : true);\r\n }\r\n /** Whether the edit page has not changed */\r\n get pristine() {\r\n return !this.dirty;\r\n }\r\n /** Whether the edit page is not valid. */\r\n get invalid() {\r\n return !this.valid;\r\n }\r\n get showValidations() {\r\n return this.submitted && this.invalid && !this.readonly;\r\n }\r\n /** Whether the user performed a submit directly or indirectly. */\r\n get submitted() {\r\n return this._submitted;\r\n }\r\n set submitted(value) {\r\n this._submitted = value;\r\n if (this.formRef != null) {\r\n // avoid developer to remember setting this\r\n if (value) {\r\n this.formRef.nativeElement.classList.add('ng-submitted');\r\n }\r\n else {\r\n this.formRef.nativeElement.classList.remove('ng-submitted');\r\n }\r\n }\r\n this._onSubmitted(value);\r\n }\r\n /** Whether the page is in disabled modus.\r\n * This means we have save/undo buttons but these appear as disabled and the form gets disabled. */\r\n get disabled() {\r\n // disabled is determined if form is disabled and if not using a form we use the flag to determine if disabled\r\n return this.formWrapper != null ? this.formWrapper.disabled : this._disabled;\r\n }\r\n set disabled(value) {\r\n this._disabled = value;\r\n this.applyEnabledDisabledLogic();\r\n }\r\n /** Gets the tooltip on the delete button. */\r\n get deleteTooltip() {\r\n return this._deleteTooltip || this.deleteContent || this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.DELETE');\r\n }\r\n set deleteTooltip(value) {\r\n this._deleteTooltip || value;\r\n }\r\n /** Tooltip on the save button */\r\n get saveTooltip() {\r\n return this._saveTooltip || this.saveContent || this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.SAVE');\r\n }\r\n set saveTooltip(value) {\r\n this._saveTooltip = value;\r\n }\r\n /** Tooltip on the edit button. */\r\n get editTooltip() {\r\n return this._editTooltip || this.editContent || this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.EDIT');\r\n }\r\n set editTooltip(tooltip) {\r\n this._editTooltip = tooltip;\r\n }\r\n /** Tooltip on the undo button. */\r\n get undoTooltip() {\r\n return this._undoTooltip || this.undoContent || this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.UNDO');\r\n }\r\n set undoTooltip(value) {\r\n this._undoTooltip = value;\r\n }\r\n /** Delete success message. */\r\n get deleteMessage() {\r\n return this._deleteMessage || this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.DELETE');\r\n }\r\n set deleteMessage(value) {\r\n this._deleteMessage = value;\r\n }\r\n /** Save success message. */\r\n get saveMessage() {\r\n return this._saveMessage || this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.SAVE');\r\n }\r\n set saveMessage(value) {\r\n this._saveMessage = value;\r\n }\r\n /** Undo performed message */\r\n get undoMessage() {\r\n return this._undoMessage || this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.UNDO');\r\n }\r\n set undoMessage(value) {\r\n this._undoMessage = value;\r\n }\r\n /** @deprecated Use confirmDeleteOptions. Message within delete confirmation. */\r\n get confirmDeleteMessage() {\r\n return this._confirmDeleteMessage || this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE_DELETE');\r\n }\r\n set confirmDeleteMessage(value) {\r\n this._confirmDeleteMessage = value;\r\n }\r\n /** Message within undo confirmation. */\r\n get confirmUndoMessage() {\r\n return this._confirmUndoMessage || this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE_UNDO');\r\n }\r\n set confirmUndoMessage(value) {\r\n this._confirmUndoMessage = value;\r\n }\r\n /** Message within save confirmation. */\r\n get confirmSaveMessage() {\r\n return this._confirmSaveMessage || this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE_SAVE');\r\n }\r\n set confirmSaveMessage(value) {\r\n this._confirmSaveMessage = value;\r\n }\r\n /** Reference to form control which can be reactive or template-driven. */\r\n get formWrapper() {\r\n let result = null;\r\n if (this.form != null) {\r\n // reactive form gets presedence over reactive\r\n result = this.form;\r\n }\r\n else if (this.formElement != null) {\r\n // in case of template driven forms we have reactive form component inside the template driven form\r\n result = this.formElement.form;\r\n }\r\n return result;\r\n }\r\n ngOnInit() {\r\n this.defineLayout();\r\n this.defineBeforeUnload();\r\n this.onInit();\r\n this._route.data.subscribe((data) => {\r\n if (data.model !== undefined) {\r\n // by convention we get the model from the activated route through a resolver\r\n // but it is not mandatory to use resolver\r\n // in that case the consumer needs to call the load manually\r\n const load$ = this.load(data.model, true, BarEditPageLoadReason.Load);\r\n if (load$ !== undefined) {\r\n // if load is not a void we subscribe to it as an observable\r\n load$.subscribe();\r\n }\r\n }\r\n });\r\n }\r\n ngOnDestroy() {\r\n // complete the pending save behavior subject\r\n this.savePending$.complete();\r\n if (this.ngSubmitSubscription)\r\n this.ngSubmitSubscription.unsubscribe();\r\n this.clearLayout();\r\n this.onDestroy();\r\n }\r\n /** Performs a delete and returns an Observable which is false in case the delete was aborted or if delete is not possible.\r\n * (disabled, readonly, not deletable). */\r\n delete() {\r\n return new Observable((subscriber) => {\r\n if ((this.disabled || this.readonly) && !this.forceDeletable) {\r\n subscriber.next(false);\r\n subscriber.complete();\r\n }\r\n else {\r\n const confirmOptions = this.confirmDeleteOptions ? this.confirmDeleteOptions : {};\r\n if (!confirmOptions.message)\r\n confirmOptions.message = this.confirmDeleteMessage;\r\n if (!confirmOptions.title)\r\n confirmOptions.title = this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE');\r\n this._confirm.confirm(confirmOptions).subscribe(() => {\r\n // it's up to the consumer to define what happens after a delete in the onDelete:\r\n // - redirect to other URL\r\n // - Do a route navigation\r\n // - Stay on the same page but\r\n // (for example deleting last versie in a dossier which would lead to the previous version)\r\n const delete$ = this.onDelete();\r\n if (delete$ != null) {\r\n this.onDelete().subscribe((result) => {\r\n const deleted = typeof result === 'boolean' ? result : true;\r\n if (deleted && this.showDeleteMessage) {\r\n this._toastMessage.addMessage({\r\n text: this.deleteMessage,\r\n type: BarToastMessageType.Success\r\n });\r\n }\r\n subscriber.next(deleted);\r\n subscriber.complete();\r\n });\r\n }\r\n else {\r\n subscriber.next(false);\r\n subscriber.complete();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n // implement BarEditPageConsumer\r\n requestSave(input) {\r\n return this.save(input);\r\n }\r\n /**\r\n * Saves everything and returns an Observable which is false in case invalid.\r\n */\r\n save(input = { reason: BarEditPageSaveReason.Custom }) {\r\n return new Observable((subscriber) => {\r\n const completeSave = (value) => {\r\n this.savePending$.next(false);\r\n subscriber.next(value);\r\n subscriber.complete();\r\n };\r\n // don't do anything as long as it a save is pending (to avoid having onSave called while a save is already ongoing)\r\n this.savePending$\r\n .pipe(skipWhile((pending) => pending), take(1))\r\n .subscribe(() => {\r\n this.savePending$.next(true);\r\n // pre-saving logic\r\n const savingResult$ = resolveValue$(this.onSaving());\r\n savingResult$.subscribe((savingResult) => {\r\n const options = this.processSaveOptions(input);\r\n // in case the consumer returns false we stop proceeding\r\n if (typeof savingResult === 'boolean' && savingResult === false) {\r\n completeSave(false);\r\n }\r\n else {\r\n // if nothing has changed or if it is readonly or disabled we just mark it as completed true\r\n // enforceValidOnPristine is used to force validation and save even if it is pristine\r\n // NOTE that a form which is invalid but nothing has changed in an autosave scenario does not enforce validity\r\n // and doesn't cause an onSave action to be invoked\r\n const ommitSave = ((this.readonly || this.disabled) && (this.editable == null || this.editable === false)) ||\r\n (options.reason == BarEditPageSaveReason.Autosave && this.pristine && (this.valid || !this.enforceValidOnPristine));\r\n if (ommitSave) {\r\n completeSave(true);\r\n }\r\n // if it isn't valid we mark it as completed false\r\n else if (!this.valid) {\r\n // if not dirty we want to mark the form as dirty so that the save button is enabled\r\n this.markDirty();\r\n // show an extra message why validation has failed\r\n this.tryEmitSaveMessageOnInvalid(options.reason);\r\n this.submitted = true;\r\n completeSave(false);\r\n }\r\n else {\r\n this.submitted = true;\r\n const performSave = () => {\r\n const args = new BarEditPageSaveArgs();\r\n args.reason = options.reason;\r\n args.model = this.autoGenerateSaveModel ? this.getMutedModel(options.data) : null;\r\n args.data = options.data;\r\n // in case we are doing an auto save we do not need to reload the model because we are navigating away\r\n args.preventLoad = options.reason == BarEditPageSaveReason.Autosave;\r\n const save$ = this.onSave(args);\r\n // check if we have something to save\r\n if (save$ != null) {\r\n save$\r\n .pipe(catchError((err) => {\r\n completeSave(false);\r\n return throwError(err);\r\n }))\r\n .subscribe((model) => {\r\n // by default we have a success, we can only block the save by returning a boolean of false\r\n let success = true;\r\n let loadModel = true;\r\n // if we got a boolean result and the orinal model is not a boolean\r\n // we assume the boolean indicates whether a success occured or a failure\r\n if (typeof model === 'boolean' && typeof this.model !== 'boolean') {\r\n // if we got a boolean the success is defined by the result we got (boolean)\r\n success = model;\r\n // a boolean means we didn't really get a model, so we won't assign it\r\n model = null;\r\n loadModel = false;\r\n }\r\n else if (model == undefined) {\r\n // here we have a void return so we won't load anything regarding the model\r\n loadModel = false;\r\n }\r\n if (success) {\r\n if (this.showSaveMessage && options.suppressSaveMessage !== true) {\r\n this._toastMessage.addMessage({\r\n text: this.saveMessage,\r\n type: BarToastMessageType.Success\r\n });\r\n }\r\n // here we check if we should go into readonly or disabled after saving\r\n if (options.exitEdit === true) {\r\n if (this.disabledEditing) {\r\n this.disabled = true;\r\n }\r\n else {\r\n this.readonly = true;\r\n }\r\n // reset flag\r\n this.disabledEditing = null;\r\n }\r\n const complete = () => {\r\n this.markPristine();\r\n completeSave(true);\r\n };\r\n // here we check if the consumer wants to have the load called again\r\n // (maybe user wants to navigate away whereby the load is irrelevant)\r\n if (args.preventLoad !== true) {\r\n // do the load again and call the onLoad\r\n const load$ = this.load(model, loadModel, BarEditPageLoadReason.Save);\r\n if (load$ !== undefined) {\r\n load$.subscribe(() => {\r\n complete();\r\n });\r\n }\r\n else\r\n complete();\r\n }\r\n else\r\n complete();\r\n }\r\n else {\r\n // we were not successfull meaning we have to show the error message again (if enabled)\r\n this.tryEmitSaveMessageOnInvalid(args.reason);\r\n completeSave(false);\r\n }\r\n });\r\n }\r\n else {\r\n // nothing to save\r\n completeSave(true);\r\n }\r\n };\r\n // check if we need to ask for a confirmation\r\n if (this.confirmSave) {\r\n const confirmOptions = this.confirmSaveOptions ? this.confirmSaveOptions : {};\r\n if (!confirmOptions.message)\r\n confirmOptions.message = this.confirmSaveMessage;\r\n if (!confirmOptions.title)\r\n confirmOptions.title = this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE');\r\n // we are about to save: ask confirmation\r\n this._confirm.open(confirmOptions).subscribe((result) => {\r\n if (result) {\r\n // do the save in case the user confirms\r\n performSave();\r\n }\r\n else {\r\n // the user refutes to do the save after having been asked for a confirmation\r\n completeSave(false);\r\n }\r\n });\r\n }\r\n else {\r\n // no confirmation needed -> just perform the save\r\n performSave();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n });\r\n }\r\n undo() {\r\n return new Observable((subscriber) => {\r\n const undoLogic = () => {\r\n this.model = this.deepClone(this.originalModel);\r\n this.doLoad(BarEditPageLoadReason.Undo);\r\n this.markPristine();\r\n if (this.showUndoMessage) {\r\n this._toastMessage.addMessage({\r\n text: this.undoMessage,\r\n type: BarToastMessageType.Info\r\n });\r\n }\r\n const complete = () => {\r\n // complete the global observable\r\n subscriber.next();\r\n subscriber.complete();\r\n };\r\n // call the undo which can return an Observable of void or be of return type void\r\n const undo$ = this.onUndo();\r\n if (undo$ != null) {\r\n undo$.subscribe(() => {\r\n complete();\r\n });\r\n }\r\n else {\r\n complete();\r\n }\r\n };\r\n if (this.confirmUndo) {\r\n const confirmOptions = this.confirmUndoOptions ? this.confirmUndoOptions : {};\r\n if (!confirmOptions.message)\r\n confirmOptions.message = this.confirmUndoMessage;\r\n if (!confirmOptions.title)\r\n confirmOptions.title = this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE');\r\n this._confirm.confirm(confirmOptions).subscribe(() => {\r\n undoLogic();\r\n });\r\n }\r\n else {\r\n undoLogic();\r\n }\r\n });\r\n }\r\n /** First time initialization. */\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onInit() { }\r\n /**\r\n * Loading (load the data).\r\n * @param args\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n onLoad(args) { }\r\n /** Ovveride to perform action when clicking the edit button to go into edit modus (pencil) in case using the editable flag. */\r\n onEdit() { }\r\n /** Override to perform action before the save and before validation.\r\n * Prevent the save from proceeding by returning (observable of) false. */\r\n onSaving() { }\r\n /** Override to perform the save after validation has succeeded.\r\n * An observable is returned with the model or a boolean for success or no success (in case the model is not a boolean)\r\n * or a void if nothing has to happen. */\r\n onSave(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n args) {\r\n return null;\r\n }\r\n /** Override to perform the delete.\r\n * An observable is returned with a boolean for success or no success/abort or a void which means success. */\r\n onDelete() {\r\n return null;\r\n }\r\n /** Override to perform undo. */\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onUndo() { }\r\n /** Override this for destruction. */\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onDestroy() { }\r\n /** Collects a cloned model including all the changes and extra data. */\r\n getMutedModel(data) {\r\n // in case the model is an object we apply cloning logic (advanced)\r\n // in case the model is null we check if the form element contains an object (FormGroup versus FormControl/FormArray)\r\n if (typeof this.model === 'object' || (!this.model && typeof this.form.value === 'object')) {\r\n const clonedModel = {};\r\n // clone original model\r\n Object.assign(clonedModel, this.model);\r\n if (this.form != null) {\r\n // apply the form if it exists\r\n Object.assign(clonedModel, this.form.value);\r\n }\r\n if (data != null) {\r\n Object.assign(clonedModel, data);\r\n }\r\n return clonedModel;\r\n }\r\n else {\r\n return this.form.value;\r\n }\r\n }\r\n // Internal function\r\n _onSubmitted(submitted) { }\r\n load(\r\n // the model being loaded\r\n model = undefined, \r\n // whether to assign the model and to make internal clone for undo purposes\r\n loadModel = true, \r\n // the reason why the load is invoked\r\n reason = BarEditPageLoadReason.Load, \r\n // whether to call the onload function again on the consumer (which one does not always want)\r\n callOnLoad = true) {\r\n if (loadModel) {\r\n this.model = model;\r\n // keep original model for undo purposes\r\n this.originalModel = this.deepClone(this.model);\r\n }\r\n return this.doLoad(reason, callOnLoad);\r\n }\r\n deepClone(model) {\r\n // NOTE in case we have the @lvflanders/bar module we use the deepClone method otherwise the begar function\r\n return model != null ? deepClone(model) : null;\r\n }\r\n doLoad(reason, callOnLoad = true) {\r\n this.submitted = false;\r\n if (callOnLoad) {\r\n const args = new BarEditPageLoadArgs();\r\n args.reason = reason;\r\n args.firstLoad = this.firstLoad;\r\n args.model = this.model;\r\n this.firstLoad = false;\r\n if (callOnLoad)\r\n return this.onLoad(args);\r\n }\r\n }\r\n applyEnabledDisabledLogic() {\r\n if (this.formWrapper != null) {\r\n if (this._disabled) {\r\n this.formWrapper.disable();\r\n }\r\n else {\r\n this.formWrapper.enable();\r\n }\r\n }\r\n }\r\n defineBeforeUnload() {\r\n window.onbeforeunload = (e) => {\r\n // in case nothing changed or not active just return\r\n if (this.beforeUnloadDisabled || this.pristine || this.disabled || this.readonly) {\r\n return;\r\n }\r\n e = e || window.event;\r\n // For IE and Firefox\r\n if (e) {\r\n e.returnValue = this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.LEAVE_PAGE');\r\n }\r\n // For Safari / Chrome\r\n return this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.LEAVE_PAGE');\r\n };\r\n }\r\n clearLayout() {\r\n // clear the internal content actions because these were defined in this base component\r\n this._internalLayout.setInternalContentActions([]);\r\n }\r\n defineLayout() {\r\n this._internalLayout.setInternalContentActions([\r\n {\r\n icon: {\r\n class: 'fa fa-pencil-alt',\r\n iconOnly: () => this.editContent == null,\r\n srText: this.editTooltip\r\n },\r\n hidden: () => {\r\n // visible in case it is editable and in readonly or editable modus\r\n // difference between readonly and disabled is just that the form is disabled in case of disabled\r\n const visible = this.editable === true && (this.readonly || this.disabled);\r\n return !visible;\r\n },\r\n title: () => this.editTooltip,\r\n action: () => {\r\n // action depends on what flag we are using\r\n if (this.readonly === true) {\r\n // we are in readonly modus to go in edit modus\r\n this.readonly = false;\r\n this.disabledEditing = false;\r\n }\r\n else if (this.disabled === true) {\r\n // we are in disabled modus to go in edit modus\r\n this.disabled = false;\r\n this.disabledEditing = true;\r\n }\r\n this.onEdit();\r\n },\r\n disabled: () => {\r\n return this.editable === false;\r\n },\r\n content: () => this.editContent\r\n },\r\n {\r\n icon: {\r\n class: 'fas fa-save',\r\n iconOnly: () => this.saveContent == null,\r\n srText: this.saveTooltip\r\n },\r\n disabled: () => {\r\n return !this.dirty || this.disabled;\r\n },\r\n action: () => {\r\n if (this.formElement != null) {\r\n // emit the submit on the element (default enter key support)\r\n this.formElement.ngSubmit.emit();\r\n }\r\n else {\r\n // the user didn't put the form element template variable just immediately save it\r\n this.save({\r\n reason: BarEditPageSaveReason.Default,\r\n // exit edit modus in case the form is editable (and property is being used must not be NULL)\r\n exitEdit: this.editable === true\r\n }).subscribe();\r\n }\r\n },\r\n hidden: () => {\r\n return this.readonly || !this.saveable || (this.disabled && this.editable === true);\r\n },\r\n title: () => this.saveTooltip,\r\n content: () => this.saveContent\r\n },\r\n {\r\n icon: {\r\n class: 'fa fa-trash',\r\n iconOnly: () => this.deleteContent == null,\r\n srText: this.deleteTooltip\r\n },\r\n disabled: () => {\r\n return this.disabled && !this.forceDeletable;\r\n },\r\n action: () => {\r\n this.delete().subscribe();\r\n },\r\n hidden: () => {\r\n return (this.readonly && !this.forceDeletable) || !this.deletable || (this.disabled && this.editable === true);\r\n },\r\n title: () => this.deleteTooltip,\r\n content: () => this.deleteContent\r\n },\r\n {\r\n icon: {\r\n class: 'fas fa-undo',\r\n iconOnly: () => this.undoContent == null,\r\n srText: this.undoTooltip\r\n },\r\n disabled: () => {\r\n return !this.dirty || this.disabled;\r\n },\r\n action: () => {\r\n this.undo().subscribe();\r\n },\r\n hidden: () => {\r\n return this.readonly || !this.saveable || (this.disabled && this.editable === true);\r\n },\r\n title: () => this.undoTooltip,\r\n content: () => this.undoContent\r\n }\r\n ]);\r\n }\r\n markDirty() {\r\n if (this.formWrapper != null) {\r\n this.formWrapper.markAsDirty();\r\n }\r\n }\r\n markPristine() {\r\n if (this.formWrapper != null) {\r\n this.formWrapper.markAsPristine();\r\n }\r\n }\r\n processSaveOptions(options) {\r\n // make sure we have an options object with default settings\r\n if (options == null) {\r\n options = new BarEditPageSaveOptions();\r\n }\r\n if (options.reason == null) {\r\n // if no reason defined we assume it is custom\r\n options.reason = BarEditPageSaveReason.Custom;\r\n }\r\n return options;\r\n }\r\n tryEmitSaveMessageOnInvalid(reason) {\r\n if (this.showSaveMessageOnInvalid) {\r\n this._toastMessage.addMessage({\r\n text: this._translate.instant('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.' + (reason == BarEditPageSaveReason.Autosave ? 'INVALID_AUTOSAVE' : 'INVALID')),\r\n type: BarToastMessageType.Error\r\n });\r\n }\r\n }\r\n}\r\nBarEditPageBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageBaseComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });\r\nBarEditPageBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarEditPageBaseComponent, viewQueries: [{ propertyName: \"formElement\", first: true, predicate: [\"formElement\"], descendants: true }, { propertyName: \"formRef\", first: true, predicate: [\"formRef\"], descendants: true }], ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageBaseComponent, decorators: [{\r\n type: Directive\r\n }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { formElement: [{\r\n type: ViewChild,\r\n args: ['formElement']\r\n }], formRef: [{\r\n type: ViewChild,\r\n args: ['formRef']\r\n }] } });\n\nclass BarEditPageService {\r\n constructor() {\r\n // internal observables\r\n this.__load$ = new Subject();\r\n this.__requestSave$ = new Subject();\r\n this.__undo$ = new Subject();\r\n this.__delete$ = new Subject();\r\n /** Internal property. Do not use. */\r\n this._load$ = this.__load$.asObservable();\r\n /** Internal property. Do not use. */\r\n this._requestSave$ = this.__requestSave$.asObservable();\r\n /** Internal property. Do not use. */\r\n this._undo$ = this.__undo$.asObservable();\r\n /** Internal property. Do not use. */\r\n this._delete$ = this.__delete$.asObservable();\r\n }\r\n ngOnDestroy() {\r\n this.__load$.complete();\r\n this.__requestSave$.complete();\r\n this.__undo$.complete();\r\n this.__delete$.complete();\r\n }\r\n /** Invokes the load on the edit page with a given model. */\r\n load(model, options = { loadModel: true, reason: BarEditPageLoadReason.Load, callOnLoad: true }) {\r\n return new Observable((subscriber) => {\r\n this.__load$.next({ model, options, subscriber });\r\n });\r\n }\r\n /** Requests a save with validation and returns a flag determining whether it was saved. */\r\n requestSave(options) {\r\n return new Observable((subscriber) => {\r\n this.__requestSave$.next({ options, subscriber });\r\n });\r\n }\r\n /** Performs the undo. */\r\n undo() {\r\n return new Observable((subscriber) => {\r\n this.__undo$.next({ subscriber });\r\n });\r\n }\r\n /** Performs delete and returns a flag determining whether it was deleted. */\r\n delete() {\r\n return new Observable((subscriber) => {\r\n this.__delete$.next({ subscriber });\r\n });\r\n }\r\n}\r\nBarEditPageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarEditPageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageService });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageService, decorators: [{\r\n type: Injectable\r\n }] });\n\nvar BarRemarkType;\r\n(function (BarRemarkType) {\r\n BarRemarkType[BarRemarkType[\"Blocking\"] = 0] = \"Blocking\";\r\n BarRemarkType[BarRemarkType[\"Important\"] = 1] = \"Important\";\r\n BarRemarkType[BarRemarkType[\"Info\"] = 2] = \"Info\";\r\n})(BarRemarkType || (BarRemarkType = {}));\n\n/**\r\n * Provides bar remark help functionality.\r\n */\r\nclass BarRemarkService {\r\n constructor() {\r\n this.mapping = {\r\n blocking: { class: 'fa-times-circle', color: 'error' },\r\n important: { class: 'fa-exclamation-circle', color: 'warning' },\r\n info: { class: 'fa-info-circle', color: 'info' }\r\n };\r\n }\r\n getIcon(type) {\r\n return this.mapping[type]['class'];\r\n }\r\n getIconColor(type) {\r\n return this.mapping[type]['color'];\r\n }\r\n}\r\nBarRemarkService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarRemarkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarRemarkService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarRemarkService, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarRemarkService, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }] });\n\nclass BarRemarkComponent {\r\n constructor(remarkService, elementRef) {\r\n this.remarkService = remarkService;\r\n this.elementRef = elementRef;\r\n }\r\n get type() {\r\n return BarRemarkType[this.remark != null ? this.remark.type : this.typeInternal].toLowerCase();\r\n }\r\n get content() {\r\n return this.remark != null ? resolveValue$(this.remark.content) : null;\r\n }\r\n ngOnInit() {\r\n if (this.elementRef.nativeElement.attributes['blocking'] != null) {\r\n this.typeInternal = BarRemarkType.Blocking;\r\n }\r\n else if (this.elementRef.nativeElement.attributes['important'] != null) {\r\n this.typeInternal = BarRemarkType.Important;\r\n }\r\n else if (this.elementRef.nativeElement.attributes['info'] != null) {\r\n this.typeInternal = BarRemarkType.Info;\r\n }\r\n }\r\n}\r\nBarRemarkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarRemarkComponent, deps: [{ token: BarRemarkService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\r\nBarRemarkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarRemarkComponent, selector: \"bar-remark\", inputs: { remark: \"remark\" }, ngImport: i0, template: \"
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n  \\r\\n \\r\\n
\\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: BarLinkComponent, selector: \"bar-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarRemarkComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-remark', template: \"
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n  \\r\\n \\r\\n
\\r\\n
\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: BarRemarkService }, { type: i0.ElementRef }]; }, propDecorators: { remark: [{\r\n type: Input\r\n }] } });\n\n/** Represents a single remark */\r\nclass BarRemarkListComponent {\r\n constructor() {\r\n this.autoSort = true;\r\n }\r\n set remarks(remarks) {\r\n this.remarkList = remarks == null ? [] : remarks.slice(0);\r\n if (this.autoSort) {\r\n this.remarkList.sort((a, b) => {\r\n if (a.type == b.type) {\r\n return 0;\r\n }\r\n else if (a.type == BarRemarkType.Blocking || b.type == BarRemarkType.Info) {\r\n return -1;\r\n }\r\n else {\r\n return 1;\r\n }\r\n });\r\n }\r\n }\r\n}\r\nBarRemarkListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarRemarkListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarRemarkListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarRemarkListComponent, selector: \"bar-remark-list\", inputs: { remarks: \"remarks\", autoSort: \"autoSort\" }, queries: [{ propertyName: \"remarkComponents\", predicate: i0.forwardRef(function () { return BarRemarkComponent; }) }], ngImport: i0, template: \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\", dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"component\", type: BarRemarkComponent, selector: \"bar-remark\", inputs: [\"remark\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarRemarkListComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-remark-list', template: \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\" }]\r\n }], propDecorators: { remarkComponents: [{\r\n type: ContentChildren,\r\n args: [forwardRef(() => BarRemarkComponent)]\r\n }], remarks: [{\r\n type: Input\r\n }], autoSort: [{\r\n type: Input\r\n }] } });\n\nclass BarEditPageLoaderComponent {\r\n}\r\nBarEditPageLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarEditPageLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarEditPageLoaderComponent, selector: \"bar-edit-page-loader\", inputs: { hidden: \"hidden\" }, ngImport: i0, template: \"\", dependencies: [{ kind: \"component\", type: i3$2.MatProgressBar, selector: \"mat-progress-bar\", inputs: [\"color\", \"value\", \"bufferValue\", \"mode\"], outputs: [\"animationEnd\"], exportAs: [\"matProgressBar\"] }, { kind: \"pipe\", type: i1$2.TranslatePipe, name: \"translate\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageLoaderComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-edit-page-loader', template: \"\" }]\r\n }], propDecorators: { hidden: [{\r\n type: Input\r\n }] } });\n\nclass BarEditPageWrapperComponent extends BarEditPageBaseComponent {\r\n constructor(injector, editPageService) {\r\n super(injector);\r\n this.editPageService = editPageService;\r\n this.destroyed$ = new Subject();\r\n this.preventSubmittedEvents = false;\r\n /** Determines if loading progress bar must appears in case no model is uses (modelless modus). */\r\n this.showLoading = undefined;\r\n /** Event that occurs that a save needs to occur at the consumer after validation checks. */\r\n this.saveRequested = new EventEmitter();\r\n /** Occurs when the save is completed and has been executed. Some code can be executed at the consumer. */\r\n this.saveCompleted = new EventEmitter();\r\n /** Event that occurs that a delete needs to occur at the consumer. */\r\n this.deleteRequested = new EventEmitter();\r\n /** Event that occurs when an undo is requested. Use this to perform custom undo logic. */\r\n this.undoRequested = new EventEmitter();\r\n /** Event that occurs when the save button is pressed to indicate that the user submitted the form. */\r\n this.submittedChange = new EventEmitter();\r\n /** Event that occurs when the edit button (pencil) is pressed. Use this to perform extra logic. */\r\n this.editRequested = new EventEmitter();\r\n this.hookInEditPageService();\r\n }\r\n /** Sets the data retrieved from back-end. */\r\n set data(value) {\r\n // invoke the load method\r\n if (value) {\r\n // call the onload method again in case first time or if the reference has changed\r\n this.load(value, true, BarEditPageLoadReason.Load, this._data == null);\r\n this._data = value;\r\n }\r\n }\r\n get data() {\r\n return this._data;\r\n }\r\n set editForm(value) {\r\n this.form = value;\r\n }\r\n get editForm() {\r\n return this.form;\r\n }\r\n ngOnInit() {\r\n super.ngOnInit();\r\n if (this.saveSuccess$) {\r\n this.saveSuccess$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\r\n var _a;\r\n if ((_a = this.saveArgs) === null || _a === void 0 ? void 0 : _a.subscriber) {\r\n this.saveCompleted.emit(this.saveArgs.args);\r\n this.saveArgs.subscriber.next(value);\r\n this.saveArgs.subscriber.complete();\r\n this.saveArgs = undefined;\r\n }\r\n });\r\n }\r\n if (this.saveFailed$) {\r\n this.saveFailed$.pipe(takeUntil(this.destroyed$)).subscribe((error) => {\r\n var _a;\r\n if ((_a = this.saveArgs) === null || _a === void 0 ? void 0 : _a.subscriber) {\r\n this.saveArgs.subscriber.error(error);\r\n this.saveArgs.subscriber = undefined;\r\n this.saveArgs = undefined;\r\n }\r\n });\r\n }\r\n if (this.deleteSuccess$) {\r\n this.deleteSuccess$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\r\n var _a;\r\n if ((_a = this.deleteArgs) === null || _a === void 0 ? void 0 : _a.subscriber) {\r\n this.deleteArgs.subscriber.next(value);\r\n this.deleteArgs.subscriber.complete();\r\n this.deleteArgs = undefined;\r\n }\r\n });\r\n }\r\n if (this.deleteFailed$) {\r\n this.deleteFailed$.pipe(takeUntil(this.destroyed$)).subscribe((error) => {\r\n var _a;\r\n if ((_a = this.deleteArgs) === null || _a === void 0 ? void 0 : _a.subscriber) {\r\n this.deleteArgs.subscriber.error(error);\r\n this.deleteArgs.subscriber = undefined;\r\n this.deleteArgs = undefined;\r\n }\r\n });\r\n }\r\n if (this.model$) {\r\n this.model$\r\n .pipe(filter((model) => model != null), takeUntil(this.destroyed$))\r\n .subscribe((model) => {\r\n // whenever model changes invoke the load\r\n super.load(model);\r\n });\r\n }\r\n }\r\n ngOnDestroy() {\r\n var _a, _b;\r\n super.ngOnDestroy();\r\n this.destroyed$.next(undefined);\r\n this.destroyed$.complete();\r\n this.saveCompleted.complete();\r\n this.saveRequested.complete();\r\n this.deleteRequested.complete();\r\n this.undoRequested.complete();\r\n this.submittedChange.complete();\r\n this.editRequested.complete();\r\n if (((_a = this.deleteArgs) === null || _a === void 0 ? void 0 : _a.subscriber) && !this.deleteArgs.subscriber.closed) {\r\n this.deleteArgs.subscriber.complete();\r\n }\r\n if (((_b = this.saveArgs) === null || _b === void 0 ? void 0 : _b.subscriber) && !this.saveArgs.subscriber.closed) {\r\n this.saveArgs.subscriber.complete();\r\n }\r\n }\r\n setSubmitted(submitted) {\r\n this.preventSubmittedEvents = true;\r\n this.submitted = submitted;\r\n }\r\n onLoad(args) {\r\n if (this.loading) {\r\n // avoid value has changed after it was checked error\r\n window.setTimeout(() => {\r\n this.loading(args);\r\n });\r\n }\r\n }\r\n onSaving() {\r\n if (this.beforeSaving)\r\n return this.beforeSaving();\r\n }\r\n onUndo() {\r\n if (this.undoing)\r\n return this.undoing();\r\n this.undoRequested.emit();\r\n }\r\n onSave(args) {\r\n // classic modus input callback with observable result\r\n if (this.saving)\r\n return this.saving(args);\r\n // asynchronous mode (ngrx)\r\n // the consumer returns a void meaning he wants to work asynchronously because we expect observable in classic mode\r\n return new Observable((subscriber) => {\r\n // store the subscriber which will be completed elsewhere (asynchronously)\r\n this.saveArgs = { subscriber, args };\r\n this.saveRequested.emit(args);\r\n });\r\n }\r\n onDelete() {\r\n // classic modus input callback with observable result\r\n if (this.deleting)\r\n return this.deleting();\r\n // asynchronous mode (ngrx)\r\n // the consumer returns a void meaning he wants to work asynchronously because we expect observable in classic mode\r\n return new Observable((subscriber) => {\r\n this.deleteArgs = { subscriber };\r\n this.deleteRequested.emit();\r\n });\r\n }\r\n onEdit() {\r\n this.editRequested.emit();\r\n }\r\n _onSubmitted(submitted) {\r\n if (!this.preventSubmittedEvents)\r\n this.submittedChange.emit(submitted);\r\n this.preventSubmittedEvents = false;\r\n }\r\n /*** Hooks in the edit page service which is registered on the root component containing the bar-edit-page component. */\r\n hookInEditPageService() {\r\n if (!this.editPageService)\r\n return;\r\n this.editPageService._load$.subscribe((data) => {\r\n var _a, _b, _c;\r\n const load$ = this.load(data.model, ((_a = data.options) === null || _a === void 0 ? void 0 : _a.loadModel) || true, ((_b = data.options) === null || _b === void 0 ? void 0 : _b.reason) || BarEditPageLoadReason.Load, ((_c = data.options) === null || _c === void 0 ? void 0 : _c.callOnLoad) || true);\r\n const complete = () => {\r\n data.subscriber.next();\r\n data.subscriber.complete();\r\n };\r\n // check that onLoad returns an observable\r\n if (load$ !== undefined) {\r\n load$.subscribe(() => {\r\n // complete invoker\r\n complete();\r\n });\r\n }\r\n else {\r\n complete();\r\n }\r\n });\r\n this.editPageService._requestSave$.subscribe((data) => {\r\n this.requestSave(data.options).subscribe((outcome) => {\r\n data.subscriber.next(outcome);\r\n data.subscriber.complete();\r\n });\r\n });\r\n this.editPageService._undo$.subscribe((data) => {\r\n this.undo().subscribe(() => {\r\n data.subscriber.next();\r\n data.subscriber.complete();\r\n });\r\n });\r\n this.editPageService._delete$.subscribe((data) => {\r\n this.delete().subscribe((outcome) => {\r\n data.subscriber.next(outcome);\r\n data.subscriber.complete();\r\n });\r\n });\r\n }\r\n}\r\nBarEditPageWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageWrapperComponent, deps: [{ token: i0.Injector }, { token: BarEditPageService, optional: true }], target: i0.ɵɵFactoryTarget.Component });\r\nBarEditPageWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarEditPageWrapperComponent, selector: \"bar-edit-page-wrapper\", inputs: { beforeSaving: \"beforeSaving\", saving: \"saving\", saveSuccess$: \"saveSuccess$\", saveFailed$: \"saveFailed$\", deleteSuccess$: \"deleteSuccess$\", deleteFailed$: \"deleteFailed$\", loading: \"loading\", deleting: \"deleting\", undoing: \"undoing\", showLoading: \"showLoading\", data: \"data\", editForm: \"editForm\", model$: \"model$\" }, outputs: { saveRequested: \"saveRequested\", saveCompleted: \"saveCompleted\", deleteRequested: \"deleteRequested\", undoRequested: \"undoRequested\", submittedChange: \"submittedChange\", editRequested: \"editRequested\" }, usesInheritance: true, ngImport: i0, template: \"\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1$3.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1$3.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1$3.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"component\", type: BarRemarkListComponent, selector: \"bar-remark-list\", inputs: [\"remarks\", \"autoSort\"] }, { kind: \"component\", type: BarEditPageLoaderComponent, selector: \"bar-edit-page-loader\", inputs: [\"hidden\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageWrapperComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-edit-page-wrapper', template: \"\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\" }]\r\n }], ctorParameters: function () {\r\n return [{ type: i0.Injector }, { type: BarEditPageService, decorators: [{\r\n type: Optional\r\n }] }];\r\n }, propDecorators: { beforeSaving: [{\r\n type: Input\r\n }], saving: [{\r\n type: Input\r\n }], saveSuccess$: [{\r\n type: Input\r\n }], saveFailed$: [{\r\n type: Input\r\n }], deleteSuccess$: [{\r\n type: Input\r\n }], deleteFailed$: [{\r\n type: Input\r\n }], loading: [{\r\n type: Input\r\n }], deleting: [{\r\n type: Input\r\n }], undoing: [{\r\n type: Input\r\n }], showLoading: [{\r\n type: Input\r\n }], data: [{\r\n type: Input\r\n }], editForm: [{\r\n type: Input\r\n }], model$: [{\r\n type: Input\r\n }], saveRequested: [{\r\n type: Output\r\n }], saveCompleted: [{\r\n type: Output\r\n }], deleteRequested: [{\r\n type: Output\r\n }], undoRequested: [{\r\n type: Output\r\n }], submittedChange: [{\r\n type: Output\r\n }], editRequested: [{\r\n type: Output\r\n }] } });\n\n/** Edit page component for pages with edit actions and autosave support. */\r\nclass BarEditPageComponent {\r\n constructor() {\r\n /** Whether the page is in readonly. This means we don't have save/undo/delete buttons. */\r\n this.readonly = false;\r\n /** Whether the item in the page is deletable in case in edit modus. A delete button will appear. */\r\n this.deletable = false;\r\n /** If an edit page is disabled or readonly and deletable the delete button doesn't show. With this property we force the delete button to appear in all cases. */\r\n this.forceDeletable = false;\r\n /** Whether the item in the page is saveable in case in edit modus. If true (default) the save and undo buttons appear. */\r\n this.saveable = true;\r\n /** Whether editable. If not defined it is immediately editable if not readonly.\r\n * If readonly == true && editable == true then an edit button appears. */\r\n this.editable = null;\r\n /** Whether to automatically define the save model. It will be filled in the model property of BarEditPageSaveArgs. */\r\n this.autoGenerateSaveModel = true;\r\n /** Whether the undo action must be confirmed */\r\n this.confirmUndo = false;\r\n /** Whether the save action must be confirmed */\r\n this.confirmSave = false;\r\n /** Whether to show an undo message after doing the undo. */\r\n this.showUndoMessage = false;\r\n /** Whether to show a delete message after doing the delete. */\r\n this.showDeleteMessage = false;\r\n /** Whether to show a save message after doing a save. */\r\n this.showSaveMessage = true;\r\n /** Whether to force to be in valid modus even if the form is invalid */\r\n this.forceValid = false;\r\n /** Whether to force that the edit button is visible even if edit disabled in case using the editable flag */\r\n this.forceEditActionVisible = false;\r\n /** Whether the form must be valid in case the form is pristine.\r\n * The default behavior is false: In case pristine no validation is done. */\r\n this.enforceValidOnPristine = false;\r\n /** Whether the before unload event, in case the user navigates away (href), is disabled. */\r\n this.beforeUnloadDisabled = false;\r\n /** Whether to show an extra warning when the form is invalid and a save occurs. */\r\n this.showSaveMessageOnInvalid = true;\r\n /** Whether loading progress bar should appear or not. Use this in modelless modus where no model is used. */\r\n this.loading = undefined;\r\n this.submittedChange = new EventEmitter();\r\n /** Event that occurs that a save needs to occur at the consumer after validation checks. */\r\n this.saveRequested = new EventEmitter();\r\n /** Event that occurs when the save is completed and has been executed. Some code can be executed at the consumer. */\r\n this.saveCompleted = new EventEmitter();\r\n /** Event that occurs that a delete needs to occur at the consumer. */\r\n this.deleteRequested = new EventEmitter();\r\n /** Event that occurs when an undo is requested. Use this to perform custom undo logic. */\r\n this.undoRequested = new EventEmitter();\r\n /** Event that occurs when the edit button (pencil) is pressed. Use this to perform extra logic. */\r\n this.editRequested = new EventEmitter();\r\n }\r\n ngOnChanges(changes) {\r\n // NOTE this won't be needed once the bar-edit-page-base.component is gone\r\n // use timeout to be sure wrapper is initialized and to avoid value has changes after it was checked\r\n window.setTimeout(() => this.applyChanges(changes));\r\n }\r\n ngOnDestroy() {\r\n this.saveRequested.complete();\r\n this.saveCompleted.complete();\r\n this.deleteRequested.complete();\r\n this.undoRequested.complete();\r\n this.submittedChange.complete();\r\n this.editRequested.complete();\r\n }\r\n /** Requests a save returning false in case invalid. */\r\n requestSave(input) {\r\n return this.wrapper.requestSave(input);\r\n }\r\n /** Requests a delete */\r\n requestDelete() {\r\n return this.wrapper.delete();\r\n }\r\n /** Requests an undo. */\r\n requestUndo() {\r\n return this.wrapper.undo();\r\n }\r\n applyChanges(changes) {\r\n for (const propName in changes) {\r\n const change = changes[propName];\r\n switch (propName) {\r\n // here we pass input fields values to ordinary fields in the wrapper\r\n case 'disabled': {\r\n this.wrapper.disabled = change.currentValue;\r\n break;\r\n }\r\n case 'readonly': {\r\n this.wrapper.readonly = change.currentValue;\r\n break;\r\n }\r\n case 'deletable': {\r\n this.wrapper.deletable = change.currentValue;\r\n break;\r\n }\r\n case 'forceDeletable': {\r\n this.wrapper.forceDeletable = change.currentValue;\r\n break;\r\n }\r\n case 'saveable': {\r\n this.wrapper.saveable = change.currentValue;\r\n break;\r\n }\r\n case 'editable': {\r\n this.wrapper.editable = change.currentValue;\r\n break;\r\n }\r\n case 'editContent': {\r\n this.wrapper.editContent = change.currentValue;\r\n break;\r\n }\r\n case 'autoGenerateSaveModel': {\r\n this.wrapper.autoGenerateSaveModel = change.currentValue;\r\n break;\r\n }\r\n case 'confirmUndo': {\r\n this.wrapper.confirmUndo = change.currentValue;\r\n break;\r\n }\r\n case 'confirmSave': {\r\n this.wrapper.confirmSave = change.currentValue;\r\n break;\r\n }\r\n case 'showUndoMessage': {\r\n this.wrapper.showUndoMessage = change.currentValue;\r\n break;\r\n }\r\n case 'showDeleteMessage': {\r\n this.wrapper.showDeleteMessage = change.currentValue;\r\n break;\r\n }\r\n case 'showSaveMessage': {\r\n this.wrapper.showSaveMessage = change.currentValue;\r\n break;\r\n }\r\n case 'forceValid': {\r\n this.wrapper.forceValid = change.currentValue;\r\n break;\r\n }\r\n case 'forceEditActionVisible': {\r\n this.wrapper.forceEditActionVisible = change.currentValue;\r\n break;\r\n }\r\n case 'enforceValidOnPristine': {\r\n this.wrapper.enforceValidOnPristine = change.currentValue;\r\n break;\r\n }\r\n case 'beforeUnloadDisabled': {\r\n this.wrapper.beforeUnloadDisabled = change.currentValue;\r\n break;\r\n }\r\n case 'showSaveMessageOnInvalid': {\r\n this.wrapper.showSaveMessageOnInvalid = change.currentValue;\r\n break;\r\n }\r\n case 'deleteTooltip': {\r\n this.wrapper.deleteTooltip = change.currentValue;\r\n break;\r\n }\r\n case 'deleteContent': {\r\n this.wrapper.deleteContent = change.currentValue;\r\n break;\r\n }\r\n case 'saveTooltip': {\r\n this.wrapper.saveTooltip = change.currentValue;\r\n break;\r\n }\r\n case 'saveContent': {\r\n this.wrapper.saveContent = change.currentValue;\r\n break;\r\n }\r\n case 'editTooltip': {\r\n this.wrapper.editTooltip = change.currentValue;\r\n break;\r\n }\r\n case 'undoTooltip': {\r\n this.wrapper.undoTooltip = change.currentValue;\r\n break;\r\n }\r\n case 'undoContent': {\r\n this.wrapper.undoContent = change.currentValue;\r\n break;\r\n }\r\n case 'deleteMessage': {\r\n this.wrapper.deleteMessage = change.currentValue;\r\n break;\r\n }\r\n case 'saveMessage': {\r\n this.wrapper.saveMessage = change.currentValue;\r\n break;\r\n }\r\n case 'undoMessage': {\r\n this.wrapper.undoMessage = change.currentValue;\r\n break;\r\n }\r\n case 'confirmDeleteMessage': {\r\n this.wrapper.confirmDeleteMessage = change.currentValue;\r\n break;\r\n }\r\n case 'confirmDeleteOptions': {\r\n this.wrapper.confirmDeleteOptions = change.currentValue;\r\n break;\r\n }\r\n case 'confirmUndoMessage': {\r\n this.wrapper.confirmUndoMessage = change.currentValue;\r\n break;\r\n }\r\n case 'confirmUndoOptions': {\r\n this.wrapper.confirmUndoOptions = change.currentValue;\r\n break;\r\n }\r\n case 'confirmSaveMessage': {\r\n this.wrapper.confirmSaveMessage = change.currentValue;\r\n break;\r\n }\r\n case 'confirmSaveOptions': {\r\n this.wrapper.confirmSaveOptions = change.currentValue;\r\n break;\r\n }\r\n case 'loading': {\r\n this.wrapper.showLoading = change.currentValue;\r\n break;\r\n }\r\n case 'submitted': {\r\n this.wrapper.setSubmitted(change.currentValue);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}\r\nBarEditPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarEditPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarEditPageComponent, selector: \"bar-edit-page\", inputs: { saving: \"saving\", save: \"save\", saveSuccess$: \"saveSuccess$\", saveFailed$: \"saveFailed$\", load: \"load\", delete: \"delete\", deleteSuccess$: \"deleteSuccess$\", deleteFailed$: \"deleteFailed$\", undo: \"undo\", data: \"data\", model$: \"model$\", form: \"form\", disabled: \"disabled\", readonly: \"readonly\", deletable: \"deletable\", forceDeletable: \"forceDeletable\", saveable: \"saveable\", editable: \"editable\", autoGenerateSaveModel: \"autoGenerateSaveModel\", confirmUndo: \"confirmUndo\", confirmSave: \"confirmSave\", showUndoMessage: \"showUndoMessage\", showDeleteMessage: \"showDeleteMessage\", showSaveMessage: \"showSaveMessage\", forceValid: \"forceValid\", forceEditActionVisible: \"forceEditActionVisible\", enforceValidOnPristine: \"enforceValidOnPristine\", beforeUnloadDisabled: \"beforeUnloadDisabled\", showSaveMessageOnInvalid: \"showSaveMessageOnInvalid\", loading: \"loading\", editContent: \"editContent\", deleteTooltip: \"deleteTooltip\", saveTooltip: \"saveTooltip\", saveContent: \"saveContent\", editTooltip: \"editTooltip\", undoTooltip: \"undoTooltip\", undoContent: \"undoContent\", deleteMessage: \"deleteMessage\", deleteContent: \"deleteContent\", saveMessage: \"saveMessage\", undoMessage: \"undoMessage\", confirmDeleteMessage: \"confirmDeleteMessage\", confirmDeleteOptions: \"confirmDeleteOptions\", confirmUndoMessage: \"confirmUndoMessage\", confirmUndoOptions: \"confirmUndoOptions\", confirmSaveMessage: \"confirmSaveMessage\", confirmSaveOptions: \"confirmSaveOptions\", submitted: \"submitted\" }, outputs: { submittedChange: \"submittedChange\", saveRequested: \"saveRequested\", saveCompleted: \"saveCompleted\", deleteRequested: \"deleteRequested\", undoRequested: \"undoRequested\", editRequested: \"editRequested\" }, viewQueries: [{ propertyName: \"wrapper\", first: true, predicate: BarEditPageWrapperComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: \"\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\", dependencies: [{ kind: \"component\", type: BarEditPageWrapperComponent, selector: \"bar-edit-page-wrapper\", inputs: [\"beforeSaving\", \"saving\", \"saveSuccess$\", \"saveFailed$\", \"deleteSuccess$\", \"deleteFailed$\", \"loading\", \"deleting\", \"undoing\", \"showLoading\", \"data\", \"editForm\", \"model$\"], outputs: [\"saveRequested\", \"saveCompleted\", \"deleteRequested\", \"undoRequested\", \"submittedChange\", \"editRequested\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-edit-page', template: \"\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\" }]\r\n }], propDecorators: { wrapper: [{\r\n type: ViewChild,\r\n args: [BarEditPageWrapperComponent]\r\n }], saving: [{\r\n type: Input\r\n }], save: [{\r\n type: Input\r\n }], saveSuccess$: [{\r\n type: Input\r\n }], saveFailed$: [{\r\n type: Input\r\n }], load: [{\r\n type: Input\r\n }], delete: [{\r\n type: Input\r\n }], deleteSuccess$: [{\r\n type: Input\r\n }], deleteFailed$: [{\r\n type: Input\r\n }], undo: [{\r\n type: Input\r\n }], data: [{\r\n type: Input\r\n }], model$: [{\r\n type: Input\r\n }], form: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], readonly: [{\r\n type: Input\r\n }], deletable: [{\r\n type: Input\r\n }], forceDeletable: [{\r\n type: Input\r\n }], saveable: [{\r\n type: Input\r\n }], editable: [{\r\n type: Input\r\n }], autoGenerateSaveModel: [{\r\n type: Input\r\n }], confirmUndo: [{\r\n type: Input\r\n }], confirmSave: [{\r\n type: Input\r\n }], showUndoMessage: [{\r\n type: Input\r\n }], showDeleteMessage: [{\r\n type: Input\r\n }], showSaveMessage: [{\r\n type: Input\r\n }], forceValid: [{\r\n type: Input\r\n }], forceEditActionVisible: [{\r\n type: Input\r\n }], enforceValidOnPristine: [{\r\n type: Input\r\n }], beforeUnloadDisabled: [{\r\n type: Input\r\n }], showSaveMessageOnInvalid: [{\r\n type: Input\r\n }], loading: [{\r\n type: Input\r\n }], editContent: [{\r\n type: Input\r\n }], deleteTooltip: [{\r\n type: Input\r\n }], saveTooltip: [{\r\n type: Input\r\n }], saveContent: [{\r\n type: Input\r\n }], editTooltip: [{\r\n type: Input\r\n }], undoTooltip: [{\r\n type: Input\r\n }], undoContent: [{\r\n type: Input\r\n }], deleteMessage: [{\r\n type: Input\r\n }], deleteContent: [{\r\n type: Input\r\n }], saveMessage: [{\r\n type: Input\r\n }], undoMessage: [{\r\n type: Input\r\n }], confirmDeleteMessage: [{\r\n type: Input\r\n }], confirmDeleteOptions: [{\r\n type: Input\r\n }], confirmUndoMessage: [{\r\n type: Input\r\n }], confirmUndoOptions: [{\r\n type: Input\r\n }], confirmSaveMessage: [{\r\n type: Input\r\n }], confirmSaveOptions: [{\r\n type: Input\r\n }], submitted: [{\r\n type: Input\r\n }], submittedChange: [{\r\n type: Output\r\n }], saveRequested: [{\r\n type: Output\r\n }], saveCompleted: [{\r\n type: Output\r\n }], deleteRequested: [{\r\n type: Output\r\n }], undoRequested: [{\r\n type: Output\r\n }], editRequested: [{\r\n type: Output\r\n }] } });\n\nclass BarHierarchicalActionConfig {\r\n constructor() {\r\n this.navigate = true;\r\n this.edit = true;\r\n this.move = true;\r\n this.delete = true;\r\n this.create = true;\r\n this.view = true;\r\n }\r\n}\n\nclass BarHierarchicalListItemMoveConfig {\r\n}\n\nclass BarHierarchicalListItemComponent {\r\n constructor() {\r\n this.actionConfig = new BarHierarchicalActionConfig();\r\n this.itemLabelField = 'title';\r\n this.itemIdField = 'id';\r\n this.itemTooltipField = 'tooltip';\r\n this.moveEnabled = false;\r\n this.itemClickActionType = 'edit';\r\n this.itemClickHideAction = false;\r\n this.action = new EventEmitter();\r\n this.itemRendered = false;\r\n this.itemCompactMode = false;\r\n }\r\n get enableItemClick() {\r\n const type = this.item.itemClickActionType ? this.item.itemClickActionType : this.itemClickActionType;\r\n const globalActive = this.actionConfig[type];\r\n const itemTypeNotSet = this.item[type] === undefined;\r\n const itemTypeActive = this.item[type] !== undefined && this.item[type];\r\n return (globalActive && itemTypeNotSet) || itemTypeActive;\r\n }\r\n get optionMenuEnabled() {\r\n return this.actionEnabled('create') || this.actionEnabled('edit') || this.actionEnabled('delete') || this.actionEnabled('move');\r\n }\r\n ngAfterViewInit() {\r\n this.itemRendered = true;\r\n }\r\n ngDoCheck() {\r\n if (this.itemRendered)\r\n this.itemCompactMode = this.hierarchicalListItem.nativeElement.offsetWidth < 380;\r\n }\r\n doAction(actionType) {\r\n this.action.emit(actionType);\r\n }\r\n actionEnabled(type) {\r\n const globalActive = this.actionConfig[type];\r\n const itemTypeNotSet = this.item[type] === undefined;\r\n const itemTypeActive = this.item[type] !== undefined && this.item[type];\r\n const itemClickActionTypeActive = this.item.itemClickActionType === type || (this.itemClickActionType === type && this.item.itemClickActionType === undefined);\r\n // active on the item itself or global active and NOT disabled on item\r\n // AND\r\n // clickAction is current type and not set to hidden\r\n return ((globalActive && itemTypeNotSet) || itemTypeActive) && ((itemClickActionTypeActive && !this.itemClickHideAction) || !itemClickActionTypeActive);\r\n }\r\n}\r\nBarHierarchicalListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarHierarchicalListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarHierarchicalListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarHierarchicalListItemComponent, selector: \"bar-hierarchical-list-item\", inputs: { item: \"item\", index: \"index\", actionConfig: \"actionConfig\", itemLabelField: \"itemLabelField\", itemIdField: \"itemIdField\", itemTooltipField: \"itemTooltipField\", moveEnabled: \"moveEnabled\", moveConfig: \"moveConfig\", itemClickActionType: \"itemClickActionType\", itemClickHideAction: \"itemClickHideAction\" }, outputs: { action: \"action\" }, viewQueries: [{ propertyName: \"hierarchicalListItem\", first: true, predicate: [\"listItem\"], descendants: true }], ngImport: i0, template: \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ item[itemLabelField] }}\\r\\n \\r\\n \\r\\n \\r\\n {{ item[itemLabelField] }}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i4.MatButton, selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]\", inputs: [\"disabled\", \"disableRipple\", \"color\"], exportAs: [\"matButton\"] }, { kind: \"directive\", type: i6.MatTooltip, selector: \"[matTooltip]\", exportAs: [\"matTooltip\"] }, { kind: \"directive\", type: i6$1.MatBadge, selector: \"[matBadge]\", inputs: [\"matBadgeDisabled\", \"matBadgeColor\", \"matBadgeOverlap\", \"matBadgePosition\", \"matBadge\", \"matBadgeDescription\", \"matBadgeSize\", \"matBadgeHidden\"] }, { kind: \"component\", type: i6$3.MatMenu, selector: \"mat-menu\", exportAs: [\"matMenu\"] }, { kind: \"component\", type: i6$3.MatMenuItem, selector: \"[mat-menu-item]\", inputs: [\"disabled\", \"disableRipple\", \"role\"], exportAs: [\"matMenuItem\"] }, { kind: \"directive\", type: i6$3.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", exportAs: [\"matMenuTrigger\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarHierarchicalListItemComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-hierarchical-list-item', template: \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ item[itemLabelField] }}\\r\\n \\r\\n \\r\\n \\r\\n {{ item[itemLabelField] }}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\" }]\r\n }], propDecorators: { item: [{\r\n type: Input\r\n }], index: [{\r\n type: Input\r\n }], actionConfig: [{\r\n type: Input\r\n }], itemLabelField: [{\r\n type: Input\r\n }], itemIdField: [{\r\n type: Input\r\n }], itemTooltipField: [{\r\n type: Input\r\n }], moveEnabled: [{\r\n type: Input\r\n }], moveConfig: [{\r\n type: Input\r\n }], itemClickActionType: [{\r\n type: Input\r\n }], itemClickHideAction: [{\r\n type: Input\r\n }], action: [{\r\n type: Output\r\n }], hierarchicalListItem: [{\r\n type: ViewChild,\r\n args: ['listItem']\r\n }] } });\n\nclass BarHierarchicalListComponent {\r\n constructor(confirmService) {\r\n this.confirmService = confirmService;\r\n /* Optional. By default all actions are enabled. */\r\n this.actionConfig = new BarHierarchicalActionConfig();\r\n /* Complete hierarchical structure */\r\n this.items = [];\r\n /* The field of the provided items to use for displaying the title in the cards */\r\n this.itemLabelField = 'title';\r\n /* The field of the provided items to use as unique identifier */\r\n this.itemIdField = 'id';\r\n /* The field of the provided items to use as an alternative tooltip */\r\n this.itemTooltipField = 'tooltip';\r\n /* If the component is used in a dialog, delete action needs to be handled by application (dialog in dialog not possible) */\r\n this.dialog = false;\r\n /* Pass breadcrumbs so a nested list can be directly viewed */\r\n this.breadcrumbs = [];\r\n /* An optional width declaration for the list */\r\n this.listWidth = 'auto';\r\n /* Action type of the click on the text in the list item, default is edit */\r\n this.itemClickActionType = 'edit';\r\n /* Wether or not to hide the action button defined as itemClickActionType (global or on item level) */\r\n this.itemClickHideAction = false;\r\n /* Whether to show the filter above the list. This will filter the root elements and the children. */\r\n this.filterable = false;\r\n /* Outputs the specific component to view */\r\n this.view = new EventEmitter();\r\n /* Outputs the parent component, where to create the new item in as a child */\r\n this.create = new EventEmitter();\r\n /* Outputs the specific component to edit */\r\n this.edit = new EventEmitter();\r\n /* Outputs the specific component to delete */\r\n this.delete = new EventEmitter();\r\n /* Outputs an object with all old and new location info (parent+index), if parent changed,... */\r\n this.move = new EventEmitter();\r\n this.moveConfig = new BarHierarchicalListItemMoveConfig();\r\n this.moveEnabled = false;\r\n this.filterText = new FormControl(undefined);\r\n this._activeList = [];\r\n }\r\n get activeList() {\r\n return this._activeList;\r\n }\r\n set activeList(value) {\r\n this._activeList = value;\r\n this.tryApplyFilter();\r\n }\r\n get parent() {\r\n return this.breadcrumbs.length ? this.breadcrumbs[this.breadcrumbs.length - 1].item : null;\r\n }\r\n ngOnInit() {\r\n // NOTE debounce timer based on BAR doc search\r\n this.filterText.valueChanges.pipe(debounce(() => timer(500))).subscribe((val) => {\r\n this.tryApplyFilter();\r\n });\r\n }\r\n ngOnChanges(changes) {\r\n if (changes.items) {\r\n // set active list based on breadcrumbs\r\n this.activeList = this.getActiveParentList(changes.items.currentValue);\r\n }\r\n }\r\n doAction(actionType, item, index) {\r\n switch (actionType) {\r\n case 'create': {\r\n let path = null;\r\n // 1. Add btn clicked on specific item: create new item as child of provided item\r\n if (item) {\r\n path = [...this.breadcrumbs, { item, index }];\r\n // 2. Add button on top clicked\r\n // 2.1. Breadcrumb active (nested parent item)\r\n }\r\n else if (this.breadcrumbs.length) {\r\n path = [...this.breadcrumbs];\r\n }\r\n // 2.2 Add to root: path = null\r\n this.create.emit({ item: null, path });\r\n break;\r\n }\r\n case 'edit': {\r\n this.edit.emit({ item, path: [...this.breadcrumbs] });\r\n break;\r\n }\r\n case 'view': {\r\n this.view.emit({ item, path: [...this.breadcrumbs] });\r\n break;\r\n }\r\n case 'delete': {\r\n // responsibility of the application to show the delete prompt when dialog is true (dialog in dialog is not possible)\r\n if (!this.dialog) {\r\n this.confirmService\r\n .confirm({\r\n message: `Bent je zeker dat je item met titel \"${item[this.itemLabelField]}\" wilt verwijderen?`,\r\n title: 'Verwijderen'\r\n })\r\n .subscribe(() => {\r\n this.delete.emit({ item, path: [...this.breadcrumbs] });\r\n });\r\n }\r\n else {\r\n this.delete.emit({ item, path: [...this.breadcrumbs] });\r\n }\r\n break;\r\n }\r\n case 'move': {\r\n this.moveConfig = Object.assign(Object.assign({}, new BarHierarchicalListItemMoveConfig()), { oldParent: this.parent, oldIndexWithinParent: index, item });\r\n this.moveEnabled = true;\r\n break;\r\n }\r\n case 'navigate': {\r\n this.activeList = item.children;\r\n this.breadcrumbs.push({ item, index });\r\n break;\r\n }\r\n }\r\n }\r\n moveItem(index) {\r\n const newParent = this.parent;\r\n this.moveConfig = Object.assign(Object.assign({}, this.moveConfig), { newParent, newIndexWithinParent: index, parentChanged: this.hasParentChanged(this.moveConfig.oldParent, newParent) });\r\n this.move.emit(this.moveConfig);\r\n // reset move\r\n this.moveCancel();\r\n }\r\n moveCancel() {\r\n this.moveEnabled = false;\r\n this.moveConfig = new BarHierarchicalListItemMoveConfig();\r\n }\r\n navigateCrumb(value) {\r\n const { crumb, crumbIndex } = value;\r\n if (crumb && crumb.item) {\r\n this.activeList = crumb.item.children;\r\n }\r\n else {\r\n // home breadcrumb clicked\r\n this.activeList = this.items;\r\n }\r\n this.breadcrumbs.splice(crumbIndex + 1);\r\n }\r\n // check if maybe equal (in case both null), then check if one of the is null and then compare objects against each other\r\n hasParentChanged(oldParent, newParent) {\r\n return (oldParent != newParent ||\r\n (oldParent == newParent && oldParent != null && newParent != null && oldParent[this.itemIdField] != newParent[this.itemIdField]));\r\n }\r\n clearFilter() {\r\n this.filterText.setValue(null);\r\n }\r\n getActiveParentList(items) {\r\n // nested item\r\n if (this.breadcrumbs.length) {\r\n let parent = null;\r\n this.breadcrumbs.forEach((crumb, index) => {\r\n parent = index === 0 ? items[crumb.index] : parent.children[crumb.index];\r\n });\r\n return parent.children ? parent.children : [];\r\n }\r\n else {\r\n return items;\r\n }\r\n }\r\n tryApplyFilter() {\r\n if (!this.filterable || !this.filterText.value)\r\n this.filteredList = this.activeList;\r\n else {\r\n this.filteredList = this.activeList.filter((item) => this.checkFilterMatchRecursive(item));\r\n }\r\n }\r\n checkFilterMatchRecursive(item) {\r\n const label = item[this.itemLabelField] || '';\r\n if (label.toUpperCase().indexOf(this.filterText.value.toUpperCase()) > -1)\r\n return true;\r\n if (item.children) {\r\n for (let i = 0; i < item.children.length; i++) {\r\n if (this.checkFilterMatchRecursive(item.children[i])) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\nBarHierarchicalListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarHierarchicalListComponent, deps: [{ token: BarConfirmService }], target: i0.ɵɵFactoryTarget.Component });\r\nBarHierarchicalListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarHierarchicalListComponent, selector: \"bar-hierarchical-list\", inputs: { actionConfig: \"actionConfig\", items: \"items\", itemLabelField: \"itemLabelField\", itemIdField: \"itemIdField\", itemTooltipField: \"itemTooltipField\", dialog: \"dialog\", breadcrumbs: \"breadcrumbs\", listWidth: \"listWidth\", itemClickActionType: \"itemClickActionType\", itemClickHideAction: \"itemClickHideAction\", filterable: \"filterable\" }, outputs: { view: \"view\", create: \"create\", edit: \"edit\", delete: \"delete\", move: \"move\" }, usesOnChanges: true, ngImport: i0, template: \"\\r\\n\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n \\r\\n Filter\\r\\n \\r\\n \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n
    \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"directive\", type: i1$3.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1$3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$3.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i4.MatButton, selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]\", inputs: [\"disabled\", \"disableRipple\", \"color\"], exportAs: [\"matButton\"] }, { kind: \"directive\", type: i6.MatTooltip, selector: \"[matTooltip]\", exportAs: [\"matTooltip\"] }, { kind: \"component\", type: i6$2.MatFormField, selector: \"mat-form-field\", inputs: [\"color\", \"appearance\", \"hideRequiredMarker\", \"hintLabel\", \"floatLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i6$2.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i6$2.MatSuffix, selector: \"[matSuffix]\" }, { kind: \"directive\", type: i7.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\"], exportAs: [\"matInput\"] }, { kind: \"component\", type: BarBreadcrumbComponent, selector: \"bar-breadcrumb\", inputs: [\"items\", \"breadcrumbs\", \"breadcrumbLabelField\"], outputs: [\"navigate\"] }, { kind: \"component\", type: BarHierarchicalListItemComponent, selector: \"bar-hierarchical-list-item\", inputs: [\"item\", \"index\", \"actionConfig\", \"itemLabelField\", \"itemIdField\", \"itemTooltipField\", \"moveEnabled\", \"moveConfig\", \"itemClickActionType\", \"itemClickHideAction\"], outputs: [\"action\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarHierarchicalListComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-hierarchical-list', template: \"\\r\\n\\r\\n
\\r\\n
\\r\\n
    \\r\\n
  • \\r\\n \\r\\n Filter\\r\\n \\r\\n \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n
    \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: BarConfirmService }]; }, propDecorators: { actionConfig: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], itemLabelField: [{\r\n type: Input\r\n }], itemIdField: [{\r\n type: Input\r\n }], itemTooltipField: [{\r\n type: Input\r\n }], dialog: [{\r\n type: Input\r\n }], breadcrumbs: [{\r\n type: Input\r\n }], listWidth: [{\r\n type: Input\r\n }], itemClickActionType: [{\r\n type: Input\r\n }], itemClickHideAction: [{\r\n type: Input\r\n }], filterable: [{\r\n type: Input\r\n }], view: [{\r\n type: Output\r\n }], create: [{\r\n type: Output\r\n }], edit: [{\r\n type: Output\r\n }], delete: [{\r\n type: Output\r\n }], move: [{\r\n type: Output\r\n }] } });\n\nvar BarLoadingDuration;\r\n(function (BarLoadingDuration) {\r\n BarLoadingDuration[BarLoadingDuration[\"Short\"] = 0] = \"Short\";\r\n BarLoadingDuration[BarLoadingDuration[\"Long\"] = 1] = \"Long\";\r\n})(BarLoadingDuration || (BarLoadingDuration = {}));\n\n/*\r\n based on https://manuel-rauber.com/2016/01/05/angular-2-spinner-component/\r\n we didn't want to link with a third party module\r\n*/\r\nclass BarLoadingComponent {\r\n constructor() {\r\n /* Whether to block the page or work on element */\r\n this.blockPage = false;\r\n this.fromDirective = false;\r\n this.isDelayedRunning = false;\r\n }\r\n set isRunning(value) {\r\n if (this.options && this.options.enabled === false) {\r\n return;\r\n }\r\n if (!value) {\r\n this.cancelTimeout();\r\n this.isDelayedRunning = false;\r\n return;\r\n }\r\n if (this.currentTimeout) {\r\n return;\r\n }\r\n this.currentTimeout = window.setTimeout(() => {\r\n this.isDelayedRunning = value;\r\n this.cancelTimeout();\r\n }, this.delay);\r\n }\r\n get duration() {\r\n return this.options && this.options.duration ? (BarLoadingDuration[this.options.duration] === 'Short' ? 'short' : 'long') : 'short';\r\n }\r\n get delay() {\r\n return this.options && this.options.delay ? this.options.delay : 0;\r\n }\r\n ngOnDestroy() {\r\n this.cancelTimeout();\r\n }\r\n cancelTimeout() {\r\n clearTimeout(this.currentTimeout);\r\n this.currentTimeout = undefined;\r\n }\r\n}\r\nBarLoadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarLoadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarLoadingComponent, selector: \"bar-loading\", inputs: { options: \"options\", blockPage: \"blockPage\", isRunning: \"isRunning\" }, ngImport: i0, template: \"
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{ options?.message || ('DOMAIN_BAR_CONTROLS.LOADING' | translate)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i2$2.MatCard, selector: \"mat-card\", exportAs: [\"matCard\"] }, { kind: \"component\", type: i3$2.MatProgressBar, selector: \"mat-progress-bar\", inputs: [\"color\", \"value\", \"bufferValue\", \"mode\"], outputs: [\"animationEnd\"], exportAs: [\"matProgressBar\"] }, { kind: \"pipe\", type: i1$2.TranslatePipe, name: \"translate\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLoadingComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-loading', template: \"
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{ options?.message || ('DOMAIN_BAR_CONTROLS.LOADING' | translate)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\" }]\r\n }], propDecorators: { options: [{\r\n type: Input\r\n }], blockPage: [{\r\n type: Input\r\n }], isRunning: [{\r\n type: Input\r\n }] } });\n\n/** Represents a single melding */\r\nclass BarMeldingComponent {\r\n constructor(sanitizer) {\r\n this.sanitizer = sanitizer;\r\n }\r\n ngOnChanges(changes) {\r\n if (changes.melding) {\r\n this.sanitizedMeldingContent = this.melding.content ? this.sanitizer.bypassSecurityTrustHtml(this.melding.content) : null;\r\n }\r\n }\r\n getIconClass(type) {\r\n switch (type) {\r\n case BarMeldingType.Belangrijk:\r\n return 'fas fa-exclamation-triangle';\r\n case BarMeldingType.Informatief:\r\n return 'fas fa-info-circle';\r\n case BarMeldingType.Opgelost:\r\n return 'fas fa-check-circle';\r\n default:\r\n return null;\r\n }\r\n }\r\n getTypeTitle(type) {\r\n switch (type) {\r\n case BarMeldingType.Belangrijk:\r\n return 'Belangrijk';\r\n case BarMeldingType.Informatief:\r\n return 'Informatief';\r\n case BarMeldingType.Opgelost:\r\n return 'Opgelost';\r\n default:\r\n return 'Melding';\r\n }\r\n }\r\n getStatusForMeldingType(type) {\r\n const statusTypeMapping = {\r\n BELANGRIJK: 'warning',\r\n OPGELOST: 'success',\r\n INFORMATIEF: 'info'\r\n };\r\n if (statusTypeMapping[type]) {\r\n return `status-indicator--${statusTypeMapping[type]}`;\r\n }\r\n return null;\r\n }\r\n}\r\nBarMeldingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarMeldingComponent, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });\r\nBarMeldingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarMeldingComponent, selector: \"bar-melding\", inputs: { melding: \"melding\" }, usesOnChanges: true, ngImport: i0, template: \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{getTypeTitle(melding.meldingType)}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarMeldingComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-melding', template: \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{getTypeTitle(melding.meldingType)}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\" }]\r\n }], ctorParameters: function () { return [{ type: i1$1.DomSanitizer }]; }, propDecorators: { melding: [{\r\n type: Input\r\n }] } });\n\n// NOTE based on bar-link, action-button.\r\n/** Renders a button with a menu when clicked on. */\r\nclass BarMenuButtonComponent {\r\n constructor(router, clickableElementBehavior) {\r\n this.router = router;\r\n this.clickableElementBehavior = clickableElementBehavior;\r\n /** Disabled or enabled */\r\n this.disabled = false;\r\n /** Option type of the button (mat-stroked-button,...) */\r\n this.type = BarActionButtonType.Default;\r\n this.items = [];\r\n }\r\n ngOnInit() {\r\n this.actionButton = {\r\n content: this.content,\r\n disabled: this.disabled,\r\n title: this.tooltip,\r\n type: this.type\r\n };\r\n if (this.iconClass) {\r\n this.actionButton.icon = {\r\n class: this.iconClass,\r\n iconOnly: !this.content\r\n };\r\n }\r\n }\r\n buttonClick(event, item) {\r\n if (item.action) {\r\n const actionResult = item.action(event);\r\n // allow action to return true to also allow default link behavior\r\n // by default if there is an action we prevent further execution (with undefined return value)\r\n if (actionResult != null && typeof actionResult === 'boolean' ? !actionResult : true)\r\n return;\r\n }\r\n // NOTE no else because we could perfectly invoke an action and then navigating (if not true returned to mark as handled by the action\r\n if (item.routerCommands)\r\n this.router.navigate(item.routerCommands);\r\n else if (item.routerUrl)\r\n this.router.navigateByUrl(item.routerUrl);\r\n else if (item.href)\r\n openUrl(item.href, item.target);\r\n }\r\n linkClick(event, item) {\r\n this.clickableElementBehavior.linkClick(event, item);\r\n }\r\n // invoked in case an action is defined and a routerLink\r\n linkClickWithRouterCommands(event, item) {\r\n this.clickableElementBehavior.linkClickWithRouterCommands(event, item);\r\n }\r\n executeHref(item) {\r\n let href = undefined;\r\n if (item.href) {\r\n href = item.href;\r\n }\r\n else if (item.routerUrl) {\r\n href = item.routerUrl;\r\n }\r\n return href;\r\n }\r\n}\r\nBarMenuButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarMenuButtonComponent, deps: [{ token: i1.Router }, { token: BarClickableElementBehavior }], target: i0.ɵɵFactoryTarget.Component });\r\nBarMenuButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarMenuButtonComponent, selector: \"bar-menu-button\", inputs: { content: \"content\", disabled: \"disabled\", tooltip: \"tooltip\", iconClass: \"iconClass\", type: \"type\", items: \"items\" }, viewQueries: [{ propertyName: \"trigger\", first: true, predicate: MatMenuTrigger, descendants: true }, { propertyName: \"menuTrigger\", first: true, predicate: [\"menuTrigger\"], descendants: true }], ngImport: i0, template: \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.content}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.content}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"directive\", type: i1.RouterLinkWithHref, selector: \"a[routerLink],area[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"component\", type: i6$3.MatMenu, selector: \"mat-menu\", exportAs: [\"matMenu\"] }, { kind: \"component\", type: i6$3.MatMenuItem, selector: \"[mat-menu-item]\", inputs: [\"disabled\", \"disableRipple\", \"role\"], exportAs: [\"matMenuItem\"] }, { kind: \"directive\", type: i6$3.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", exportAs: [\"matMenuTrigger\"] }, { kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarMenuButtonComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-menu-button', template: \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.content}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{item.content}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: i1.Router }, { type: BarClickableElementBehavior }]; }, propDecorators: { trigger: [{\r\n type: ViewChild,\r\n args: [MatMenuTrigger]\r\n }], menuTrigger: [{\r\n type: ViewChild,\r\n args: ['menuTrigger']\r\n }], content: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], tooltip: [{\r\n type: Input\r\n }], iconClass: [{\r\n type: Input\r\n }], type: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }] } });\n\nclass BarRemarkCounters {\r\n constructor() {\r\n this.blocking = 0;\r\n this.important = 0;\r\n this.info = 0;\r\n }\r\n}\n\n/** Represents a single remark */\r\nclass BarRemarkSummaryComponent {\r\n constructor(controlsHelper, remarkService, translate) {\r\n this.controlsHelper = controlsHelper;\r\n this.remarkService = remarkService;\r\n this.translate = translate;\r\n }\r\n set remarks(remarks) {\r\n this.counters = new BarRemarkCounters();\r\n if (remarks && remarks.length) {\r\n this.counters = remarks.reduce((counters, remark) => {\r\n if (BarRemarkType.Blocking === remark.type)\r\n counters.blocking++;\r\n if (BarRemarkType.Important === remark.type)\r\n counters.important++;\r\n if (BarRemarkType.Info === remark.type)\r\n counters.info++;\r\n return counters;\r\n }, this.counters);\r\n }\r\n }\r\n get totaal() {\r\n return this.counters.blocking + this.counters.important + this.counters.info;\r\n }\r\n getTranslation(counter) {\r\n const translationKey = `DOMAIN_BAR_CONTROLS.REMARKS.REMARK_${counter.toUpperCase()}_${this.counters[counter] > 1 ? 'N' : '1'}`;\r\n return this.translate.instant(translationKey, {\r\n count: this.counters[counter]\r\n });\r\n }\r\n}\r\nBarRemarkSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarRemarkSummaryComponent, deps: [{ token: BarControlsHelper }, { token: BarRemarkService }, { token: i1$2.BarI18nService }], target: i0.ɵɵFactoryTarget.Component });\r\nBarRemarkSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarRemarkSummaryComponent, selector: \"bar-remark-summary\", inputs: { counters: \"counters\", remarks: \"remarks\" }, ngImport: i0, template: \" 0\\\">\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n
{{ getTranslation(counter) }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n {{ 'DOMAIN_BAR_CONTROLS.REMARKS.NO_REMARKS' | translate }}\\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"pipe\", type: i1$2.TranslatePipe, name: \"translate\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarRemarkSummaryComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-remark-summary', template: \" 0\\\">\\r\\n \\r\\n
0\\\">\\r\\n \\r\\n
{{ getTranslation(counter) }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n {{ 'DOMAIN_BAR_CONTROLS.REMARKS.NO_REMARKS' | translate }}\\r\\n\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: BarControlsHelper }, { type: BarRemarkService }, { type: i1$2.BarI18nService }]; }, propDecorators: { counters: [{\r\n type: Input\r\n }], remarks: [{\r\n type: Input\r\n }] } });\n\n/** Represents a remark overview */\r\nclass BarRemarkOverviewComponent {\r\n}\r\nBarRemarkOverviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarRemarkOverviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarRemarkOverviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarRemarkOverviewComponent, selector: \"bar-remark-overview\", inputs: { remarks: \"remarks\" }, ngImport: i0, template: \"

{{ 'DOMAIN_BAR_CONTROLS.REMARKS.TOTAL_SUMMARY' | translate }}

\\r\\n\\r\\n\\r\\n 0\\\">\\r\\n

{{ 'DOMAIN_BAR_CONTROLS.REMARKS.DETAILS' | translate }}

\\r\\n \\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: BarRemarkListComponent, selector: \"bar-remark-list\", inputs: [\"remarks\", \"autoSort\"] }, { kind: \"component\", type: BarRemarkSummaryComponent, selector: \"bar-remark-summary\", inputs: [\"counters\", \"remarks\"] }, { kind: \"pipe\", type: i1$2.TranslatePipe, name: \"translate\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarRemarkOverviewComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-remark-overview', template: \"

{{ 'DOMAIN_BAR_CONTROLS.REMARKS.TOTAL_SUMMARY' | translate }}

\\r\\n\\r\\n\\r\\n 0\\\">\\r\\n

{{ 'DOMAIN_BAR_CONTROLS.REMARKS.DETAILS' | translate }}

\\r\\n \\r\\n
\\r\\n\" }]\r\n }], propDecorators: { remarks: [{\r\n type: Input\r\n }] } });\n\n/** BAR search screen placeholder component which defines the search screen layout in a technology agnostic way. */\r\nclass BarSearchScreenComponent {\r\n constructor(translate) {\r\n this.translate = translate;\r\n // default no toolbar\r\n this.showToolbar = false;\r\n // Enable extended criteria for the search\r\n this.hasExtendedCriteria = false;\r\n // Extra info section above the search results.\r\n this.hasInfoSection = false;\r\n // Whether the info section is fixed and should always appear.\r\n this.fixedInfoSection = true;\r\n // Disabled search (to be used with validation or...)\r\n this.searchDisabled = false;\r\n // If the form was submitted and a search was triggered\r\n this.searched = false;\r\n // Optional: Extended search fields\r\n this.showExtendedCriteria = false;\r\n // Optional: use internal form of this component\r\n // Provide a formGroup with the searchCriteria / extendedSearchCriteria\r\n this.internalForm = false;\r\n // Manual search means that we tell the component when the search is done through the searched property\r\n this.manualSearch = false;\r\n // Scroll into view on search/init\r\n this.autoScroll = true;\r\n /** Allows to override the text on the search button */\r\n this.searchText = this.translate.instant('DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH');\r\n /** Allows to override the text on the reset search button */\r\n this.resetText = this.translate.instant('DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_CRITERIA_RESET');\r\n /** Whether pressing the enter key on a global level triggers the search. By global we mean if the search filters are not focussed. */\r\n this.globalEnterTriggersSearch = false;\r\n // Extended criteria toggled\r\n this.showExtendedCriteriaChange = new EventEmitter();\r\n // User clicked search\r\n this.search = new EventEmitter();\r\n // User clicked initialize form\r\n this.reset = new EventEmitter();\r\n }\r\n get extendedCriteriaToggleText() {\r\n return this.translate.instant(`DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_FIELDS_${this.showExtendedCriteria ? 'HIDE' : 'SHOW'}`);\r\n }\r\n onKeyDown(e) {\r\n if (this.globalEnterTriggersSearch) {\r\n e.preventDefault();\r\n this.doSearch();\r\n }\r\n }\r\n doSearch() {\r\n if (!this.manualSearch)\r\n this.searched = true;\r\n this.search.emit();\r\n if (this.autoScroll) {\r\n this.searchResults.nativeElement.scrollIntoView(true);\r\n }\r\n }\r\n doReset() {\r\n this.reset.emit();\r\n if (this.autoScroll) {\r\n this.searchForm.nativeElement.scrollIntoView(true);\r\n }\r\n }\r\n toggleExtendedCriteria() {\r\n this.showExtendedCriteria = !this.showExtendedCriteria;\r\n this.showExtendedCriteriaChange.emit(this.showExtendedCriteria);\r\n }\r\n}\r\nBarSearchScreenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarSearchScreenComponent, deps: [{ token: i1$2.BarI18nService }], target: i0.ɵɵFactoryTarget.Component });\r\nBarSearchScreenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarSearchScreenComponent, selector: \"bar-search-screen\", inputs: { showToolbar: \"showToolbar\", actions: \"actions\", hasExtendedCriteria: \"hasExtendedCriteria\", hasInfoSection: \"hasInfoSection\", fixedInfoSection: \"fixedInfoSection\", searchDisabled: \"searchDisabled\", searched: \"searched\", showExtendedCriteria: \"showExtendedCriteria\", internalForm: \"internalForm\", manualSearch: \"manualSearch\", autoScroll: \"autoScroll\", headerSearchCriteria: \"headerSearchCriteria\", headerSearchResults: \"headerSearchResults\", searchText: \"searchText\", resetText: \"resetText\", globalEnterTriggersSearch: \"globalEnterTriggersSearch\" }, outputs: { showExtendedCriteriaChange: \"showExtendedCriteriaChange\", search: \"search\", reset: \"reset\" }, host: { listeners: { \"window:keydown.enter\": \"onKeyDown($event)\" } }, viewQueries: [{ propertyName: \"searchResults\", first: true, predicate: [\"searchResults\"], descendants: true }, { propertyName: \"searchForm\", first: true, predicate: [\"searchForm\"], descendants: true }], ngImport: i0, template: \"
\\r\\n

{{headerSearchCriteria || 'DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_CRITERIA' | translate}}

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

{{ headerSearchResults || 'DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_RESULT' | translate }}

\\r\\n

Start zoekopdracht voor resultaten

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1$3.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1$3.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1$3.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"component\", type: i4.MatButton, selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]\", inputs: [\"disabled\", \"disableRipple\", \"color\"], exportAs: [\"matButton\"] }, { kind: \"component\", type: i5.MatToolbar, selector: \"mat-toolbar\", inputs: [\"color\"], exportAs: [\"matToolbar\"] }, { kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"pipe\", type: i1$2.TranslatePipe, name: \"translate\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarSearchScreenComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-search-screen', template: \"
\\r\\n

{{headerSearchCriteria || 'DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_CRITERIA' | translate}}

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

{{ headerSearchResults || 'DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_RESULT' | translate }}

\\r\\n

Start zoekopdracht voor resultaten

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: i1$2.BarI18nService }]; }, propDecorators: { searchResults: [{\r\n type: ViewChild,\r\n args: ['searchResults']\r\n }], searchForm: [{\r\n type: ViewChild,\r\n args: ['searchForm']\r\n }], showToolbar: [{\r\n type: Input\r\n }], actions: [{\r\n type: Input\r\n }], hasExtendedCriteria: [{\r\n type: Input\r\n }], hasInfoSection: [{\r\n type: Input\r\n }], fixedInfoSection: [{\r\n type: Input\r\n }], searchDisabled: [{\r\n type: Input\r\n }], searched: [{\r\n type: Input\r\n }], showExtendedCriteria: [{\r\n type: Input\r\n }], internalForm: [{\r\n type: Input\r\n }], manualSearch: [{\r\n type: Input\r\n }], autoScroll: [{\r\n type: Input\r\n }], headerSearchCriteria: [{\r\n type: Input\r\n }], headerSearchResults: [{\r\n type: Input\r\n }], searchText: [{\r\n type: Input\r\n }], resetText: [{\r\n type: Input\r\n }], globalEnterTriggersSearch: [{\r\n type: Input\r\n }], showExtendedCriteriaChange: [{\r\n type: Output\r\n }], search: [{\r\n type: Output\r\n }], reset: [{\r\n type: Output\r\n }], onKeyDown: [{\r\n type: HostListener,\r\n args: ['window:keydown.enter', ['$event']]\r\n }] } });\n\n/** Default simple select list component using working with BarListItem. */\r\nclass BarSelectListComponent {\r\n constructor(controlContainer) {\r\n this.controlContainer = controlContainer;\r\n this.checkboxMultiSelection = false;\r\n this.clearable = true;\r\n this.closeOnSelect = true;\r\n this.searchable = true;\r\n this.readonly = false;\r\n this.change = new EventEmitter();\r\n }\r\n get control() {\r\n return this.formControl || this.controlContainer.control.get(this.formControlName);\r\n }\r\n registerOnTouched(fn) {\r\n this.formControlDirective.valueAccessor.registerOnTouched(fn);\r\n }\r\n registerOnChange(fn) {\r\n this.formControlDirective.valueAccessor.registerOnChange(fn);\r\n }\r\n writeValue(obj) {\r\n this.formControlDirective.valueAccessor.writeValue(obj);\r\n }\r\n setDisabledState(isDisabled) {\r\n this.formControlDirective.valueAccessor.setDisabledState(isDisabled);\r\n }\r\n focus() {\r\n // timeout needed to have effect in certain situations (ngAfterViewInit)\r\n window.setTimeout(() => {\r\n this.ngSelect.searchInput.nativeElement.focus();\r\n });\r\n }\r\n}\r\nBarSelectListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarSelectListComponent, deps: [{ token: i1$3.ControlContainer }], target: i0.ɵɵFactoryTarget.Component });\r\nBarSelectListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarSelectListComponent, selector: \"bar-select-list\", inputs: { formControl: \"formControl\", formControlName: \"formControlName\", items: \"items\", multiple: \"multiple\", checkboxMultiSelection: \"checkboxMultiSelection\", maxSelectedItems: \"maxSelectedItems\", labelForId: \"labelForId\", disabled: \"disabled\", clearable: \"clearable\", grouping: \"grouping\", closeOnSelect: \"closeOnSelect\", searchable: \"searchable\", readonly: \"readonly\" }, outputs: { change: \"change\" }, providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: BarSelectListComponent,\r\n multi: true\r\n }\r\n ], viewQueries: [{ propertyName: \"ngSelect\", first: true, predicate: [\"ngSelect\"], descendants: true }, { propertyName: \"formControlDirective\", first: true, predicate: FormControlDirective, descendants: true, static: true }], ngImport: i0, template: \"\\r\\n \\r\\n \\r\\n {{ item.text }}\\r\\n \\r\\n \\r\\n {{item['group'] || 'Unnamed group'}}\\r\\n \\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1$3.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1$3.CheckboxControlValueAccessor, selector: \"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]\" }, { kind: \"directive\", type: i1$3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$3.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: i1$3.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"component\", type: i3$3.NgSelectComponent, selector: \"ng-select\", inputs: [\"bindLabel\", \"bindValue\", \"markFirst\", \"placeholder\", \"notFoundText\", \"typeToSearchText\", \"addTagText\", \"loadingText\", \"clearAllText\", \"appearance\", \"dropdownPosition\", \"appendTo\", \"loading\", \"closeOnSelect\", \"hideSelected\", \"selectOnTab\", \"openOnEnter\", \"maxSelectedItems\", \"groupBy\", \"groupValue\", \"bufferAmount\", \"virtualScroll\", \"selectableGroup\", \"selectableGroupAsModel\", \"searchFn\", \"trackByFn\", \"clearOnBackspace\", \"labelForId\", \"inputAttrs\", \"tabIndex\", \"readonly\", \"searchWhileComposing\", \"minTermLength\", \"editableSearchTerm\", \"keyDownFn\", \"typeahead\", \"multiple\", \"addTag\", \"searchable\", \"clearable\", \"isOpen\", \"items\", \"compareWith\", \"clearSearchOnAdd\"], outputs: [\"blur\", \"focus\", \"change\", \"open\", \"close\", \"search\", \"clear\", \"add\", \"remove\", \"scroll\", \"scrollToEnd\"] }, { kind: \"directive\", type: i3$3.NgOptgroupTemplateDirective, selector: \"[ng-optgroup-tmp]\" }, { kind: \"directive\", type: i3$3.NgOptionTemplateDirective, selector: \"[ng-option-tmp]\" }, { kind: \"pipe\", type: i1$2.TranslatePipe, name: \"translate\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarSelectListComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-select-list', providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: BarSelectListComponent,\r\n multi: true\r\n }\r\n ], template: \"\\r\\n \\r\\n \\r\\n {{ item.text }}\\r\\n \\r\\n \\r\\n {{item['group'] || 'Unnamed group'}}\\r\\n \\r\\n\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: i1$3.ControlContainer }]; }, propDecorators: { ngSelect: [{\r\n type: ViewChild,\r\n args: ['ngSelect', { static: false }]\r\n }], formControlDirective: [{\r\n type: ViewChild,\r\n args: [FormControlDirective, { static: true }]\r\n }], formControl: [{\r\n type: Input\r\n }], formControlName: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], multiple: [{\r\n type: Input\r\n }], checkboxMultiSelection: [{\r\n type: Input\r\n }], maxSelectedItems: [{\r\n type: Input\r\n }], labelForId: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], clearable: [{\r\n type: Input\r\n }], grouping: [{\r\n type: Input\r\n }], closeOnSelect: [{\r\n type: Input\r\n }], searchable: [{\r\n type: Input\r\n }], readonly: [{\r\n type: Input\r\n }], change: [{\r\n type: Output\r\n }] } });\n\nvar BarTileSize;\r\n(function (BarTileSize) {\r\n BarTileSize[BarTileSize[\"Normal\"] = 0] = \"Normal\";\r\n BarTileSize[BarTileSize[\"Small\"] = 1] = \"Small\";\r\n BarTileSize[BarTileSize[\"Large\"] = 2] = \"Large\";\r\n BarTileSize[BarTileSize[\"Medium\"] = 3] = \"Medium\";\r\n})(BarTileSize || (BarTileSize = {}));\n\nclass BarTileComponent {\r\n constructor(router) {\r\n this.router = router;\r\n this.favorite = new EventEmitter();\r\n this.cancelClick = false;\r\n }\r\n get aditionalTileClasses() {\r\n const classList = {\r\n 'bar-tile--disabled': this.tile.disabled,\r\n 'bar-tile--clickable': !this.tile.disabled && (this.tile.href || this.tile.routerLink || this.tile.routerUrl || this.tile.action),\r\n 'bar-tile--hidden': this.tile.hidden\r\n };\r\n classList[`bar-tile--size-${BarTileSize[this.tile.size || BarTileSize.Normal].toLowerCase()}`] = true;\r\n return classList;\r\n }\r\n get srText() {\r\n return resolveValue$(this.tile.icon.srText);\r\n }\r\n get title() {\r\n return resolveValue$(this.tile.title || '');\r\n }\r\n get truncateTitle() {\r\n return this.tile.truncateTitle == null ? true : this.tile.truncateTitle;\r\n }\r\n get content() {\r\n return this.tile.content ? resolveValue$(this.tile.content) : of(undefined);\r\n }\r\n get contentTooltip() {\r\n return this.tile.contentTooltip ? of(this.tile.contentTooltip) : this.tile.defaultContentTooltipEnabled !== false ? this.content : of(undefined);\r\n }\r\n get icon() {\r\n return !!this.tile.icon;\r\n }\r\n get iconClass() {\r\n const untouchedClass = resolveValue(this.tile.icon.class);\r\n return this.isCustomIcon ? `bar-tile__custom-icon ${untouchedClass}` : untouchedClass;\r\n }\r\n get iconStyle() {\r\n return 'color: #8bae00; ' + resolveValue(this.tile.icon.style);\r\n }\r\n get isCustomIcon() {\r\n return resolveValue(this.tile.icon.class).includes('bar-tile__custom-icon');\r\n }\r\n get body() {\r\n return this.tile.body;\r\n }\r\n get bodyTooltip() {\r\n return this.tile.bodyTooltip || (this.tile.defaultBodyTooltipEnabled !== false ? this.body : undefined);\r\n }\r\n get truncateBody() {\r\n return this.tile.truncateBody == null ? true : this.tile.truncateBody;\r\n }\r\n get moreInformationLink() {\r\n return this.tile.moreInformationLink;\r\n }\r\n get isFavorite() {\r\n return this.tile.isFavorite;\r\n }\r\n get hideFavoriteIndicator() {\r\n return this.tile.hideFavoriteIndicator;\r\n }\r\n emitFavorite(event) {\r\n event.stopPropagation();\r\n if (this.tile.id) {\r\n this.favorite.emit({ id: this.tile.id, value: !this.isFavorite });\r\n }\r\n else {\r\n this.favorite.emit(!this.isFavorite);\r\n }\r\n }\r\n /** Check if current position is set (left is default) */\r\n iconHasPosition(position) {\r\n return (this.tile.icon.position || 'left') === position;\r\n }\r\n tileClicked(event) {\r\n if (this.cancelClick) {\r\n this.cancelClick = false;\r\n return;\r\n }\r\n event.preventDefault();\r\n if (!resolveValue(this.tile.disabled)) {\r\n if (this.tile.action)\r\n this.tile.action();\r\n if (this.tile.routerLink) {\r\n const params = { queryParams: {}, fragment: '' };\r\n if (this.tile.queryParams)\r\n params.queryParams = resolveValue(this.tile.queryParams);\r\n if (this.tile.fragment)\r\n params.fragment = resolveValue(this.tile.fragment);\r\n else\r\n delete params.fragment;\r\n this.router.navigate(resolveValue(this.tile.routerLink), params);\r\n }\r\n if (this.tile.routerUrl)\r\n this.router.navigateByUrl(resolveValue(this.tile.routerUrl));\r\n if (this.tile.href) {\r\n const url = resolveValue(this.tile.href);\r\n openUrl(url, this.tile.target);\r\n }\r\n }\r\n }\r\n linkClicked() {\r\n this.cancelClick = true;\r\n }\r\n}\r\nBarTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarTileComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });\r\nBarTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarTileComponent, selector: \"bar-tile\", inputs: { tile: \"tile\" }, outputs: { favorite: \"favorite\" }, ngImport: i0, template: \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i6.MatTooltip, selector: \"[matTooltip]\", exportAs: [\"matTooltip\"] }, { kind: \"component\", type: BarLinkComponent, selector: \"bar-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarTileComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-tile', template: \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { tile: [{\r\n type: Input\r\n }], favorite: [{\r\n type: Output\r\n }] } });\n\nclass BarTileGroupComponent {\r\n constructor() {\r\n this.favorite = new EventEmitter();\r\n }\r\n ngAfterContentInit() {\r\n this.contentTiles.forEach((tile) => {\r\n tile.favorite.subscribe((data) => this.favoriteClicked(data));\r\n });\r\n }\r\n favoriteClicked(event) {\r\n this.favorite.emit(event);\r\n }\r\n}\r\nBarTileGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarTileGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarTileGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarTileGroupComponent, selector: \"bar-tile-group\", inputs: { tiles: \"tiles\" }, outputs: { favorite: \"favorite\" }, queries: [{ propertyName: \"contentTiles\", predicate: BarTileComponent }], ngImport: i0, template: \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: BarTileComponent, selector: \"bar-tile\", inputs: [\"tile\"], outputs: [\"favorite\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarTileGroupComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-tile-group', template: \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\" }]\r\n }], propDecorators: { tiles: [{\r\n type: Input\r\n }], favorite: [{\r\n type: Output\r\n }], contentTiles: [{\r\n type: ContentChildren,\r\n args: [BarTileComponent]\r\n }] } });\n\nclass BarTileListComponent {\r\n constructor() {\r\n this.group = true;\r\n this.favorite = new EventEmitter();\r\n }\r\n ngAfterContentInit() {\r\n this.contentGroups.forEach((group) => {\r\n group.favorite.subscribe((data) => this.favoriteClicked(data));\r\n });\r\n }\r\n ngOnChanges(changes) {\r\n if (this.group)\r\n this.computeGroups();\r\n }\r\n computeGroups() {\r\n this.tileGroups = [];\r\n if (this.tiles && this.tiles.length) {\r\n let currentGroup = null;\r\n this.tiles.forEach((tile) => {\r\n if (!currentGroup || tile.initiator) {\r\n currentGroup = [];\r\n this.tileGroups.push(currentGroup);\r\n }\r\n currentGroup.push(tile);\r\n });\r\n }\r\n }\r\n favoriteClicked(event) {\r\n this.favorite.emit(event);\r\n }\r\n}\r\nBarTileListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarTileListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarTileListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarTileListComponent, selector: \"bar-tile-list\", inputs: { tiles: \"tiles\", group: \"group\" }, outputs: { favorite: \"favorite\" }, queries: [{ propertyName: \"contentGroups\", predicate: BarTileGroupComponent }], usesOnChanges: true, ngImport: i0, template: \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\", dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: BarTileComponent, selector: \"bar-tile\", inputs: [\"tile\"], outputs: [\"favorite\"] }, { kind: \"component\", type: BarTileGroupComponent, selector: \"bar-tile-group\", inputs: [\"tiles\"], outputs: [\"favorite\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarTileListComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-tile-list', template: \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\" }]\r\n }], propDecorators: { tiles: [{\r\n type: Input\r\n }], group: [{\r\n type: Input\r\n }], favorite: [{\r\n type: Output\r\n }], contentGroups: [{\r\n type: ContentChildren,\r\n args: [BarTileGroupComponent]\r\n }] } });\n\nclass BarViewContainerRefDirective {\r\n constructor(viewContainerRef) {\r\n this.viewContainerRef = viewContainerRef;\r\n }\r\n}\r\nBarViewContainerRefDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarViewContainerRefDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\r\nBarViewContainerRefDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarViewContainerRefDirective, selector: \"[bar-view-container-ref]\", ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarViewContainerRefDirective, decorators: [{\r\n type: Directive,\r\n args: [{\r\n selector: '[bar-view-container-ref]'\r\n }]\r\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });\n\nclass BarToastMessageComponent {\r\n constructor(toastService) {\r\n this.toastService = toastService;\r\n this.progress = 98;\r\n }\r\n get typeClass() {\r\n return `bar-toast-message__item--${this.message.type}`;\r\n }\r\n get typeIcon() {\r\n const iconMapping = {\r\n success: 'fa-check',\r\n warning: 'fa-exclamation',\r\n error: 'fa-times',\r\n info: 'fa-info'\r\n };\r\n return iconMapping[this.message.type];\r\n }\r\n get progressBarId() {\r\n return `progress-bar-${this.message.id}`;\r\n }\r\n ngOnInit() {\r\n if (this.message.component) {\r\n const viewContainerRef = this.barViewContainerRef.viewContainerRef;\r\n viewContainerRef.clear();\r\n const componentRef = viewContainerRef.createComponent(this.message.component);\r\n componentRef.instance.data = this.message.componentParameters;\r\n }\r\n }\r\n ngAfterViewInit() {\r\n this.setIntervalForMessage();\r\n }\r\n ngOnDestroy() {\r\n if (this.interval)\r\n clearInterval(this.interval);\r\n }\r\n removeMessage() {\r\n this.toastService.removeMessage(this.message.id);\r\n }\r\n setIntervalForMessage() {\r\n if (!this.message.persistent) {\r\n const stepInterval = Math.floor(this.message.duration / 100);\r\n const progressFillElement = document.querySelector(`#${this.progressBarId} .mat-progress-bar-primary.mat-progress-bar-fill`);\r\n progressFillElement.style.transitionDuration = `${stepInterval}ms`;\r\n progressFillElement.style.transitionTimingFunction = 'linear';\r\n this.interval = setInterval(() => {\r\n this.progress = this.progress - 1;\r\n if (this.progress <= 0)\r\n clearInterval(this.interval);\r\n }, stepInterval);\r\n }\r\n }\r\n}\r\nBarToastMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarToastMessageComponent, deps: [{ token: BarToastMessageService }], target: i0.ɵɵFactoryTarget.Component });\r\nBarToastMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarToastMessageComponent, selector: \"bar-toast-message\", inputs: { message: \"message\" }, viewQueries: [{ propertyName: \"barViewContainerRef\", first: true, predicate: BarViewContainerRefDirective, descendants: true, static: true }], ngImport: i0, template: \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i3$2.MatProgressBar, selector: \"mat-progress-bar\", inputs: [\"color\", \"value\", \"bufferValue\", \"mode\"], outputs: [\"animationEnd\"], exportAs: [\"matProgressBar\"] }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: i4.MatButton, selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]\", inputs: [\"disabled\", \"disableRipple\", \"color\"], exportAs: [\"matButton\"] }, { kind: \"directive\", type: BarViewContainerRefDirective, selector: \"[bar-view-container-ref]\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarToastMessageComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-toast-message', template: \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: BarToastMessageService }]; }, propDecorators: { barViewContainerRef: [{\r\n type: ViewChild,\r\n args: [BarViewContainerRefDirective, { static: true }]\r\n }], message: [{\r\n type: Input\r\n }] } });\n\nclass BarToastMessagesComponent {\r\n constructor(element, toastService) {\r\n this.element = element;\r\n this.toastService = toastService;\r\n this.parentElement = this.element.nativeElement.parentElement;\r\n }\r\n get messages() {\r\n return this.toastService.messages;\r\n }\r\n onFullscreenChange(e) {\r\n if (document.fullscreenElement) {\r\n document.fullscreenElement.appendChild(this.element.nativeElement);\r\n }\r\n else {\r\n this.parentElement.appendChild(this.element.nativeElement);\r\n }\r\n }\r\n}\r\nBarToastMessagesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarToastMessagesComponent, deps: [{ token: i0.ElementRef }, { token: BarToastMessageService }], target: i0.ɵɵFactoryTarget.Component });\r\nBarToastMessagesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarToastMessagesComponent, selector: \"bar-toast-messages\", host: { listeners: { \"document:fullscreenchange\": \"onFullscreenChange($event)\" } }, ngImport: i0, template: \"
\\r\\n \\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: BarToastMessageComponent, selector: \"bar-toast-message\", inputs: [\"message\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarToastMessagesComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-toast-messages', template: \"
\\r\\n \\r\\n
\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: BarToastMessageService }]; }, propDecorators: { onFullscreenChange: [{\r\n type: HostListener,\r\n args: ['document:fullscreenchange', ['$event']]\r\n }] } });\n\n/** BAR wrapper around AutoNumericJS */\r\nclass BarAutoNumericDirective {\r\n constructor(input) {\r\n this.input = input;\r\n }\r\n /**\r\n * Handles the changes on keyup.\r\n * @param value The value in the input\r\n */\r\n handleChangeKeyup(value) {\r\n this.handleChange(value);\r\n }\r\n /**\r\n * Handles the changes on blur.\r\n * @param value The value in the input\r\n */\r\n handleChangeBlur(value) {\r\n this.fnOnTouched();\r\n }\r\n handlePaste(e) {\r\n if (this.ignoreInvalidPaste && this.instance._onPasteFunc != null) {\r\n try {\r\n // call the original paste func from AutoNumeric\r\n this.instance._onPasteFunc(e);\r\n }\r\n catch (_a) {\r\n // NOTE we don't want hard errors when the paste fails, just let it fails with no action\r\n }\r\n }\r\n }\r\n get ignoreInvalidPaste() {\r\n return this.barAutoNumeric != null && this.barAutoNumeric.onInvalidPaste && this.barAutoNumeric.onInvalidPaste.toLowerCase() == 'ignore';\r\n }\r\n ngOnInit() {\r\n // NOTE we use self because we need to access the this within a defineproperty set and get\r\n const self = this;\r\n // create a new property on the native element so that the value can be defined by using a test framework\r\n // it didn't seem possible to overwrite the value property\r\n Object.defineProperty(this.input.nativeElement, 'numericValue', {\r\n get() {\r\n // NOTE use self because this would point to the nativeElement\r\n return self.instance.getNumber();\r\n },\r\n set(newVal) {\r\n // NOTE use self because this would point to the nativeElement\r\n self.writeValue(newVal);\r\n }\r\n });\r\n // instantiate the AutoNumeric JS\r\n this.instance = new AutoNumeric(this.input.nativeElement, this.barAutoNumeric);\r\n const origPreparePastedText = this.instance._preparePastedText;\r\n this.instance._preparePastedText = (text) => {\r\n // in case the consumer allows dot als alternative but a comma is expected we assume the dot is a comma\r\n if (this.barAutoNumeric &&\r\n this.barAutoNumeric.decimalCharacter === ',' &&\r\n this.barAutoNumeric.decimalCharacterAlternative === '.' &&\r\n this.barAutoNumeric.digitGroupSeparator !== '.' &&\r\n text.indexOf('.') > -1) {\r\n text = text.replace('.', ',');\r\n }\r\n return origPreparePastedText.call(this.instance, text);\r\n };\r\n this.input.nativeElement.setAttribute('autocomplete', 'off');\r\n this.input.nativeElement.className += ` text-${this.barAutoNumeric.align ? this.barAutoNumeric.align : 'right'}`;\r\n // unbind the normal paste event (because it causes hard errors) in case we don't want those errors (option in AutoNumeric)\r\n if (this.ignoreInvalidPaste && this.instance._onPasteFunc != null) {\r\n this.input.nativeElement.removeEventListener('paste', this.instance._onPasteFunc);\r\n }\r\n }\r\n ngOnDestroy() {\r\n if (this.instance != null) {\r\n // remove the AutoNumeric instance on destroy\r\n this.instance.remove();\r\n }\r\n }\r\n ngOnChanges(changes) {\r\n if (this.instance != null && changes.barAutoNumeric) {\r\n this.instance.update(this.barAutoNumeric);\r\n }\r\n if (changes.disabled) {\r\n this.applyDisabled();\r\n }\r\n }\r\n /**\r\n * Happens when value is passed from the form system.\r\n * @param value The value from the form system which is always a number or null.\r\n */\r\n writeValue(value) {\r\n if (value == null) {\r\n // clear the value\r\n this.instance.clear();\r\n }\r\n else {\r\n // assign the value to the AutoNumeric JS (set)\r\n this.instance.set(value);\r\n }\r\n }\r\n registerOnChange(fn) {\r\n // register the on change callback\r\n this.fnOnChange = fn;\r\n }\r\n registerOnTouched(fn) {\r\n // register the on touched callback\r\n this.fnOnTouched = fn;\r\n }\r\n setDisabledState(disabled) {\r\n this.disabled = disabled;\r\n this.applyDisabled();\r\n }\r\n applyDisabled() {\r\n this.input.nativeElement.disabled = this.disabled;\r\n }\r\n handleChange(value) {\r\n // if empty pass on null\r\n if (this.checkValueIsEmpty(value)) {\r\n this.instance.clear();\r\n this.fnOnChange(null);\r\n }\r\n else {\r\n // transform to real number\r\n const number = this.instance.getNumber();\r\n // pass this number to the form system\r\n this.fnOnChange(number);\r\n }\r\n }\r\n checkValueIsEmpty(value) {\r\n var _a;\r\n // the value is considered empty if empty or if it only contains the currency symbol (in case it is set)\r\n return value == '' || (((_a = this.barAutoNumeric) === null || _a === void 0 ? void 0 : _a.currencySymbol) && value === this.barAutoNumeric.currencySymbol);\r\n }\r\n}\r\nBarAutoNumericDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarAutoNumericDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\r\nBarAutoNumericDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarAutoNumericDirective, selector: \"input[barAutoNumeric]\", inputs: { barAutoNumeric: \"barAutoNumeric\", disabled: \"disabled\" }, host: { listeners: { \"keyup\": \"handleChangeKeyup($event.target.value)\", \"blur\": \"handleChangeBlur($event.target.value)\", \"paste\": \"handlePaste($event)\" } }, providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => BarAutoNumericDirective),\r\n multi: true\r\n }\r\n ], exportAs: [\"barAutoNumeric\"], usesOnChanges: true, ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarAutoNumericDirective, decorators: [{\r\n type: Directive,\r\n args: [{\r\n selector: 'input[barAutoNumeric]',\r\n exportAs: 'barAutoNumeric',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => BarAutoNumericDirective),\r\n multi: true\r\n }\r\n ]\r\n }]\r\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { barAutoNumeric: [{\r\n type: Input\r\n }], disabled: [{\r\n type: Input\r\n }], handleChangeKeyup: [{\r\n type: HostListener,\r\n args: ['keyup', ['$event.target.value']]\r\n }], handleChangeBlur: [{\r\n type: HostListener,\r\n args: ['blur', ['$event.target.value']]\r\n }], handlePaste: [{\r\n type: HostListener,\r\n args: ['paste', ['$event']]\r\n }] } });\n\nclass BarClickOutsideDirective {\r\n constructor(el, ngZone, platformId) {\r\n this.el = el;\r\n this.ngZone = ngZone;\r\n this.platformId = platformId;\r\n this.clickOutsideEnabled = true;\r\n this.attachOutsideOnClick = false;\r\n this.delayClickOutsideInit = false;\r\n this.emitOnBlur = false;\r\n this.exclude = '';\r\n this.excludeBeforeClick = false;\r\n this.clickOutsideEvents = '';\r\n this.clickOutside = new EventEmitter();\r\n this.nodesExcluded = [];\r\n this.events = ['click'];\r\n this.initOnClickBody = this.initOnClickBody.bind(this);\r\n this.onClickBody = this.onClickBody.bind(this);\r\n this.onWindowBlur = this.onWindowBlur.bind(this);\r\n }\r\n ngOnInit() {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return;\r\n }\r\n this.init();\r\n }\r\n ngOnDestroy() {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return;\r\n }\r\n this.removeClickOutsideListener();\r\n this.removeAttachOutsideOnClickListener();\r\n this.removeWindowBlurListener();\r\n }\r\n ngOnChanges(changes) {\r\n if (!isPlatformBrowser(this.platformId)) {\r\n return;\r\n }\r\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\r\n this.init();\r\n }\r\n }\r\n init() {\r\n if (this.clickOutsideEvents !== '') {\r\n this.events = this.clickOutsideEvents.split(',').map((e) => e.trim());\r\n }\r\n this.excludeCheck();\r\n if (this.attachOutsideOnClick) {\r\n this.initAttachOutsideOnClickListener();\r\n }\r\n else {\r\n this.initOnClickBody();\r\n }\r\n if (this.emitOnBlur) {\r\n this.initWindowBlurListener();\r\n }\r\n }\r\n initOnClickBody() {\r\n if (this.delayClickOutsideInit) {\r\n setTimeout(this.initClickOutsideListener.bind(this));\r\n }\r\n else {\r\n this.initClickOutsideListener();\r\n }\r\n }\r\n excludeCheck() {\r\n if (this.exclude) {\r\n try {\r\n const nodes = Array.from(document.querySelectorAll(this.exclude));\r\n if (nodes) {\r\n this.nodesExcluded = nodes;\r\n }\r\n }\r\n catch (err) {\r\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\r\n }\r\n }\r\n }\r\n onClickBody(ev) {\r\n if (!this.clickOutsideEnabled) {\r\n return;\r\n }\r\n if (this.excludeBeforeClick) {\r\n this.excludeCheck();\r\n }\r\n if (!this.el.nativeElement.contains(ev.target) && !this.shouldExclude(ev.target)) {\r\n this.emit(ev);\r\n if (this.attachOutsideOnClick) {\r\n this.removeClickOutsideListener();\r\n }\r\n }\r\n }\r\n /**\r\n * Resolves problem with outside click on iframe\r\n * @see https://github.com/arkon/ng-click-outside/issues/32\r\n */\r\n onWindowBlur(ev) {\r\n setTimeout(() => {\r\n if (!document.hidden) {\r\n this.emit(ev);\r\n }\r\n });\r\n }\r\n emit(ev) {\r\n if (!this.clickOutsideEnabled) {\r\n return;\r\n }\r\n this.ngZone.run(() => this.clickOutside.emit(ev));\r\n }\r\n shouldExclude(target) {\r\n for (const excludedNode of this.nodesExcluded) {\r\n if (excludedNode.contains(target)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n initClickOutsideListener() {\r\n this.ngZone.runOutsideAngular(() => {\r\n this.events.forEach((e) => document.body.addEventListener(e, this.onClickBody));\r\n });\r\n }\r\n removeClickOutsideListener() {\r\n this.ngZone.runOutsideAngular(() => {\r\n this.events.forEach((e) => document.body.removeEventListener(e, this.onClickBody));\r\n });\r\n }\r\n initAttachOutsideOnClickListener() {\r\n this.ngZone.runOutsideAngular(() => {\r\n this.events.forEach((e) => this.el.nativeElement.addEventListener(e, this.initOnClickBody));\r\n });\r\n }\r\n removeAttachOutsideOnClickListener() {\r\n this.ngZone.runOutsideAngular(() => {\r\n this.events.forEach((e) => this.el.nativeElement.removeEventListener(e, this.initOnClickBody));\r\n });\r\n }\r\n initWindowBlurListener() {\r\n this.ngZone.runOutsideAngular(() => {\r\n window.addEventListener('blur', this.onWindowBlur);\r\n });\r\n }\r\n removeWindowBlurListener() {\r\n this.ngZone.runOutsideAngular(() => {\r\n window.removeEventListener('blur', this.onWindowBlur);\r\n });\r\n }\r\n}\r\nBarClickOutsideDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarClickOutsideDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });\r\nBarClickOutsideDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarClickOutsideDirective, selector: \"[clickOutside]\", inputs: { clickOutsideEnabled: \"clickOutsideEnabled\", attachOutsideOnClick: \"attachOutsideOnClick\", delayClickOutsideInit: \"delayClickOutsideInit\", emitOnBlur: \"emitOnBlur\", exclude: \"exclude\", excludeBeforeClick: \"excludeBeforeClick\", clickOutsideEvents: \"clickOutsideEvents\" }, outputs: { clickOutside: \"clickOutside\" }, usesOnChanges: true, ngImport: i0 });\r\nBarClickOutsideDirective.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarClickOutsideDirective });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarClickOutsideDirective, decorators: [{\r\n type: Injectable\r\n }, {\r\n type: Directive,\r\n args: [{ selector: '[clickOutside]' }]\r\n }], ctorParameters: function () {\r\n return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: Object, decorators: [{\r\n type: Inject,\r\n args: [PLATFORM_ID]\r\n }] }];\r\n }, propDecorators: { clickOutsideEnabled: [{\r\n type: Input\r\n }], attachOutsideOnClick: [{\r\n type: Input\r\n }], delayClickOutsideInit: [{\r\n type: Input\r\n }], emitOnBlur: [{\r\n type: Input\r\n }], exclude: [{\r\n type: Input\r\n }], excludeBeforeClick: [{\r\n type: Input\r\n }], clickOutsideEvents: [{\r\n type: Input\r\n }], clickOutside: [{\r\n type: Output\r\n }] } });\n\n// Inspired by https://github.com/kuuurt13/ng-block-ui/blob/master/lib/directives/block-ui.directive.ts\r\nclass BarLoadingDirective {\r\n constructor(templateRef, viewRef) {\r\n this.templateRef = templateRef;\r\n this.viewRef = viewRef;\r\n }\r\n set barLoading(isRunning) {\r\n this.isRunning = isRunning;\r\n if (this.componentRef != null) {\r\n this.componentRef.instance.isRunning = isRunning;\r\n }\r\n }\r\n set barLoadingOptions(options) {\r\n this.options = options;\r\n if (this.componentRef != null) {\r\n this.componentRef.instance.options = options;\r\n }\r\n }\r\n ngOnInit() {\r\n this.viewRef.createEmbeddedView(this.templateRef);\r\n // get the real element on which directive is applied\r\n const parentElement = this.viewRef.element.nativeElement.previousSibling;\r\n parentElement.style.position = 'relative';\r\n // create the bar loading component\r\n this.componentRef = this.viewRef.createComponent(BarLoadingComponent);\r\n this.componentRef.instance.isRunning = this.isRunning;\r\n this.componentRef.instance.options = this.options;\r\n // put it into the component on which the directive is applied\r\n parentElement.appendChild(parentElement.nextSibling);\r\n // tell the component it is being invoked from the directive\r\n this.componentRef.instance.fromDirective = true;\r\n }\r\n}\r\nBarLoadingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLoadingDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\r\nBarLoadingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarLoadingDirective, selector: \"[barLoading]\", inputs: { barLoading: \"barLoading\", barLoadingOptions: \"barLoadingOptions\" }, ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLoadingDirective, decorators: [{\r\n type: Directive,\r\n args: [{ selector: '[barLoading]' }]\r\n }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { barLoading: [{\r\n type: Input\r\n }], barLoadingOptions: [{\r\n type: Input\r\n }] } });\n\nclass BarNgMatLabelDirective {\r\n constructor(elRef, ngZone) {\r\n this.elRef = elRef;\r\n this.ngZone = ngZone;\r\n }\r\n ngOnInit() {\r\n // run timeout outisde angular because it concerns purely DOM manipulation\r\n this.ngZone.runOutsideAngular(() => {\r\n setTimeout(() => {\r\n const el = this.elRef.nativeElement;\r\n const label = el.querySelector('mat-label');\r\n if (label) {\r\n // set wrapping on the label\r\n label.setAttribute('style', 'white-space:normal;');\r\n // add 2px for minimal spacing between input and label (material does this as well)\r\n const heightToSet = label.clientHeight + 2;\r\n // set additional inline style for maximized wrapping and required marker inline mode\r\n const formFieldLabel = el.querySelector('label.mat-form-field-label');\r\n formFieldLabel.setAttribute('style', `display: inline;`);\r\n const requiredMarker = el.querySelector('span.mat-form-field-required-marker');\r\n if (requiredMarker)\r\n requiredMarker.setAttribute('style', `margin-left: 0;`);\r\n // set required height on the elements\r\n const formFieldWrapper = el.querySelector('div.mat-form-field-wrapper');\r\n formFieldWrapper.setAttribute('style', `margin-top: ${heightToSet}px;`);\r\n const formFieldLabelWrapper = el.querySelector('span.mat-form-field-label-wrapper');\r\n formFieldLabelWrapper.setAttribute('style', `top: -${heightToSet}px; padding-top: ${heightToSet}px;`);\r\n }\r\n else {\r\n console.warn('\"barNgMatLabel\" mat-label not found, cannot change properties for label wrapping...');\r\n }\r\n }, 0);\r\n });\r\n }\r\n}\r\nBarNgMatLabelDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarNgMatLabelDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\r\nBarNgMatLabelDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarNgMatLabelDirective, selector: \"[barNgMatLabel]\", ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarNgMatLabelDirective, decorators: [{\r\n type: Directive,\r\n args: [{\r\n selector: '[barNgMatLabel]'\r\n }]\r\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; } });\n\n// specifying formats for parsing dd/MM/yyyy kk:mm dates. Docs: https://date-fns.org/v2.0.0-beta.4/docs/parse\r\nconst BAR_DEFAULT_DATE_TIME_FORMATS = {\r\n parseInput: 'dd/MM/yyyy HH:mm || dd/MM/yyyy HH:mm:ss || dd/MM/yyyy',\r\n fullPickerInput: 'dd/MM/yyyy HH:mm:ss',\r\n datePickerInput: 'dd/MM/yyyy',\r\n timePickerInput: 'HH:mm:ss',\r\n monthYearLabel: 'MMM yyyy',\r\n dateA11yLabel: 'dd/MM/yyyy',\r\n monthYearA11yLabel: 'MMMM yyyy'\r\n};\r\nconst getOwlDateFnsDateTimeAdapterOptionsInstance = function () {\r\n const _this = Object.assign({}, this);\r\n delete _this.getInstance;\r\n return _this;\r\n};\r\n/** InjectionToken for date-fns date adapter to configure options. */\r\nconst OWL_DATEFNS_DATE_TIME_ADAPTER_OPTIONS = new InjectionToken('OWL_DATEFNS_DATE_TIME_ADAPTER_OPTIONS', {\r\n providedIn: 'root',\r\n factory: OWL_DATEFNS_DATE_TIME_ADAPTER_OPTIONS_FACTORY\r\n});\r\n/** @docs-private */\r\nfunction OWL_DATEFNS_DATE_TIME_ADAPTER_OPTIONS_FACTORY() {\r\n return {\r\n locale: nl,\r\n weekStartsOn: 1,\r\n getInstance: getOwlDateFnsDateTimeAdapterOptionsInstance\r\n };\r\n}\r\n/** Creates an array and fills it with values. */\r\nfunction range(length, valueFunction) {\r\n const valuesArray = Array(length);\r\n for (let i = 0; i < length; i++) {\r\n valuesArray[i] = valueFunction(i);\r\n }\r\n return valuesArray;\r\n}\r\nclass BarDateFnsDateTimeAdapter extends DateTimeAdapter {\r\n constructor(owlDateTimeLocale, options) {\r\n super();\r\n this.owlDateTimeLocale = owlDateTimeLocale;\r\n this.options = options;\r\n this.setLocale(owlDateTimeLocale, options);\r\n }\r\n setLocale(locale, options) {\r\n super.setLocale(locale);\r\n if (options) {\r\n if (!this.options) {\r\n this.options = options;\r\n }\r\n else {\r\n for (const key in options) {\r\n this.options[key] = options[key];\r\n }\r\n }\r\n }\r\n this.options.getInstance = getOwlDateFnsDateTimeAdapterOptionsInstance;\r\n const dateFnsLocaleData = this.options.locale.localize;\r\n this._localeData = {\r\n longMonths: range(12, (i) => dateFnsLocaleData.month(i, { width: 'wide' })),\r\n shortMonths: range(12, (i) => dateFnsLocaleData.month(i, { width: 'abbreviated' })),\r\n narrowMonths: range(12, (i) => dateFnsLocaleData.month(i, { width: 'narrow' })),\r\n longDaysOfWeek: range(7, (i) => dateFnsLocaleData.day(i, { width: 'wide' })),\r\n shortDaysOfWeek: range(7, (i) => dateFnsLocaleData.day(i, { width: 'abbreviated' })),\r\n narrowDaysOfWeek: range(7, (i) => dateFnsLocaleData.day(i, { width: 'short' })),\r\n dates: range(31, (i) => String(this.getDate(this.createDate(2017, 0, i + 1))))\r\n };\r\n }\r\n getYear(date) {\r\n return getYear(this.clone(date));\r\n }\r\n getMonth(date) {\r\n return getMonth(this.clone(date));\r\n }\r\n getDay(date) {\r\n return getDay(this.clone(date));\r\n }\r\n getDate(date) {\r\n return getDate(this.clone(date));\r\n }\r\n getHours(date) {\r\n return getHours(this.clone(date));\r\n }\r\n getMinutes(date) {\r\n return getMinutes(this.clone(date));\r\n }\r\n getSeconds(date) {\r\n return getSeconds(this.clone(date));\r\n }\r\n getTime(date) {\r\n return getTime(this.clone(date));\r\n }\r\n getNumDaysInMonth(date) {\r\n return getDaysInMonth(this.clone(date));\r\n }\r\n differenceInCalendarDays(dateLeft, dateRight) {\r\n return differenceInCalendarDays(dateLeft, dateRight);\r\n }\r\n getYearName(date) {\r\n return String(format(date, 'yyyy'));\r\n }\r\n getMonthNames(style) {\r\n switch (style) {\r\n case 'narrow':\r\n return this._localeData.narrowMonths;\r\n case 'short':\r\n return this._localeData.shortMonths;\r\n default:\r\n return this._localeData.longMonths;\r\n }\r\n }\r\n getDayOfWeekNames(style) {\r\n switch (style) {\r\n case 'narrow':\r\n return this._localeData.narrowDaysOfWeek;\r\n case 'short':\r\n return this._localeData.shortDaysOfWeek;\r\n default:\r\n return this._localeData.longDaysOfWeek;\r\n }\r\n }\r\n getDateNames() {\r\n return this._localeData.dates;\r\n }\r\n toIso8601(date) {\r\n return this.clone(date).toISOString();\r\n }\r\n isEqual(dateLeft, dateRight) {\r\n if (dateLeft && dateRight) {\r\n return isEqual(this.clone(dateLeft), this.clone(dateRight));\r\n }\r\n return dateLeft === dateRight;\r\n }\r\n isSameDay(dateLeft, dateRight) {\r\n if (dateLeft && dateRight) {\r\n return isSameDay(this.clone(dateLeft), this.clone(dateRight));\r\n }\r\n return dateLeft === dateRight;\r\n }\r\n isValid(date) {\r\n return isValid(this.clone(date));\r\n }\r\n invalid() {\r\n return new Date(NaN);\r\n }\r\n isDateInstance(obj) {\r\n return isDate(obj);\r\n }\r\n addCalendarYears(date, amount) {\r\n return addYears(this.clone(date), amount);\r\n }\r\n addCalendarMonths(date, amount) {\r\n return addMonths(this.clone(date), amount);\r\n }\r\n addCalendarDays(date, amount) {\r\n return addDays(this.clone(date), amount);\r\n }\r\n setHours(date, amount) {\r\n return setHours(this.clone(date), amount);\r\n }\r\n setMinutes(date, amount) {\r\n return setMinutes(this.clone(date), amount);\r\n }\r\n setSeconds(date, amount) {\r\n return setSeconds(this.clone(date), amount);\r\n }\r\n createDate(year, month, date, hours = 0, minutes = 0, seconds = 0) {\r\n if (month < 0 || month > 11) {\r\n throw Error(`Invalid month index \"${month}\". Month index should be between 0 and 11.`);\r\n }\r\n if (date < 1) {\r\n throw Error(`Invalid date \"${date}\". Date should be greater than 0.`);\r\n }\r\n if (hours < 0 || hours > 23) {\r\n throw Error(`Invalid hours \"${hours}\". Hours should be between 0 and 23.`);\r\n }\r\n if (minutes < 0 || minutes > 59) {\r\n throw Error(`Invalid minutes \"${minutes}\". Minutes should between 0 and 59.`);\r\n }\r\n if (seconds < 0 || seconds > 59) {\r\n throw Error(`Invalid seconds \"${seconds}\". Seconds should be between 0 and 59.`);\r\n }\r\n const result = this.createDateWithOverflow(year, month, date, hours, minutes, seconds);\r\n // If the result isn't valid, the date must have been out of bounds for this month.\r\n if (!this.isValid(result)) {\r\n throw Error(`Invalid date \"${date}\" for month with index \"${month}\".`);\r\n }\r\n return result;\r\n }\r\n clone(date) {\r\n // NOTE polaris fix warning\r\n if (typeof date === 'string')\r\n return parseISO(date);\r\n return toDate(date);\r\n }\r\n now() {\r\n return new Date();\r\n }\r\n format(date, displayFormat) {\r\n date = this.clone(date);\r\n if (!this.isValid(date)) {\r\n throw Error('DateFnsDateTimeAdapter: Cannot format invalid date.');\r\n }\r\n return format(date, displayFormat, this.options.getInstance());\r\n }\r\n parse(value, parseFormat) {\r\n if (value && typeof value === 'string') {\r\n if (parseFormat) {\r\n if (typeof parseFormat === 'string') {\r\n parseFormat = parseFormat.split('||');\r\n }\r\n if (!Array.isArray(parseFormat)) {\r\n throw Error('DateFnsDateTimeAdapter: Invalid date parse format string set: ' + JSON.stringify(parseFormat));\r\n }\r\n for (let i = 0; i < parseFormat.length; i++) {\r\n const parsedDate = parse(value, parseFormat[i].trim(), new Date(), this.options.getInstance());\r\n if (this.isValid(parsedDate)) {\r\n return parsedDate;\r\n }\r\n }\r\n }\r\n else {\r\n return parseISO(value);\r\n }\r\n }\r\n return value ? this.clone(value) : null;\r\n }\r\n /**\r\n * Returns the given value if given a valid DateFns or null. Deserializes valid ISO 8601 strings\r\n * (https://www.ietf.org/rfc/rfc3339.txt) and valid Date objects into valid DateFns and empty\r\n * string into null. Returns an invalid date for all other values.\r\n */\r\n deserialize(value) {\r\n let date;\r\n if (typeof value === 'string') {\r\n if (!value) {\r\n return null;\r\n }\r\n date = this.parse(value, null);\r\n }\r\n else {\r\n date = this.clone(value);\r\n }\r\n if (date && this.isValid(date)) {\r\n return date;\r\n }\r\n return super.deserialize(value);\r\n }\r\n /**\r\n * Creates a date but allows the month and date to overflow.\r\n * @param {number} year\r\n * @param {number} month\r\n * @param {number} date\r\n * @param {number} hours -- default 0\r\n * @param {number} minutes -- default 0\r\n * @param {number} seconds -- default 0\r\n * @returns The new date, or null if invalid.\r\n * */\r\n createDateWithOverflow(year, month, date, hours = 0, minutes = 0, seconds = 0) {\r\n const result = new Date(year, month, date, hours, minutes, seconds);\r\n if (year >= 0 && year < 100) {\r\n result.setFullYear(this.getYear(result) - 1900);\r\n }\r\n return result;\r\n }\r\n}\r\nBarDateFnsDateTimeAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarDateFnsDateTimeAdapter, deps: [{ token: OWL_DATE_TIME_LOCALE, optional: true }, { token: OWL_DATEFNS_DATE_TIME_ADAPTER_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarDateFnsDateTimeAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarDateFnsDateTimeAdapter });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarDateFnsDateTimeAdapter, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () {\r\n return [{ type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [OWL_DATE_TIME_LOCALE]\r\n }] }, { type: undefined, decorators: [{\r\n type: Optional\r\n }, {\r\n type: Inject,\r\n args: [OWL_DATEFNS_DATE_TIME_ADAPTER_OPTIONS]\r\n }] }];\r\n } });\n\n/** @deprecated Use build in owl datetime settings through BarControlsModule.forRoot() and BarControlsModule.forChild() or use extend BarDateTimeIntl to change defaults. */\r\nconst BarOwlDateTimeIntl = {\r\n /** A label for the up second button (used by screen readers). */\r\n upSecondLabel: 'Seconde verhogen',\r\n /** A label for the down second button (used by screen readers). */\r\n downSecondLabel: 'Seconde verlagen',\r\n /** A label for the up minute button (used by screen readers). */\r\n upMinuteLabel: 'Minuut verhogen',\r\n /** A label for the down minute button (used by screen readers). */\r\n downMinuteLabel: 'Minuut verlagen',\r\n /** A label for the up hour button (used by screen readers). */\r\n upHourLabel: 'Uur verhogen',\r\n /** A label for the down hour button (used by screen readers). */\r\n downHourLabel: 'Uur verlagen',\r\n /** A label for the previous month button (used by screen readers). */\r\n prevMonthLabel: 'Vorige maand',\r\n /** A label for the next month button (used by screen readers). */\r\n nextMonthLabel: 'Volgende maand',\r\n /** A label for the previous year button (used by screen readers). */\r\n prevYearLabel: 'Vorig jaar',\r\n /** A label for the next year button (used by screen readers). */\r\n nextYearLabel: 'Volgend jaar',\r\n /** A label for the previous multi-year button (used by screen readers). */\r\n prevMultiYearLabel: 'Vorige 21 jaren',\r\n /** A label for the next multi-year button (used by screen readers). */\r\n nextMultiYearLabel: 'Volgende 21 jaren',\r\n /** A label for the 'switch to month view' button (used by screen readers). */\r\n switchToMonthViewLabel: 'Verwisselen van jaar naar maand',\r\n /** A label for the 'switch to year view' button (used by screen readers). */\r\n switchToMultiYearViewLabel: 'Verwisselen van maand naar jaar',\r\n /** A label for the cancel button */\r\n cancelBtnLabel: 'Annuleren',\r\n /** A label for the set button */\r\n setBtnLabel: 'Instellen',\r\n /** A label for the range 'from' in picker info */\r\n rangeFromLabel: 'Van',\r\n /** A label for the range 'to' in picker info */\r\n rangeToLabel: 'Tot',\r\n /** A label for the hour12 button (AM) */\r\n hour12AMLabel: 'AM',\r\n /** A label for the hour12 button (PM) */\r\n hour12PMLabel: 'PM'\r\n};\n\nclass BarDateTimeIntl extends OwlDateTimeIntl {\r\n constructor() {\r\n super(...arguments);\r\n this.upSecondLabel = BarOwlDateTimeIntl.upSecondLabel;\r\n this.downSecondLabel = BarOwlDateTimeIntl.downSecondLabel;\r\n this.upMinuteLabel = BarOwlDateTimeIntl.upMinuteLabel;\r\n this.downMinuteLabel = BarOwlDateTimeIntl.downMinuteLabel;\r\n this.upHourLabel = BarOwlDateTimeIntl.upHourLabel;\r\n this.downHourLabel = BarOwlDateTimeIntl.downHourLabel;\r\n this.prevMonthLabel = BarOwlDateTimeIntl.prevMonthLabel;\r\n this.nextMonthLabel = BarOwlDateTimeIntl.nextMonthLabel;\r\n this.prevYearLabel = BarOwlDateTimeIntl.prevYearLabel;\r\n this.nextYearLabel = BarOwlDateTimeIntl.nextYearLabel;\r\n this.prevMultiYearLabel = BarOwlDateTimeIntl.prevMultiYearLabel;\r\n this.nextMultiYearLabel = BarOwlDateTimeIntl.nextMultiYearLabel;\r\n this.switchToMonthViewLabel = BarOwlDateTimeIntl.switchToMonthViewLabel;\r\n this.switchToMultiYearViewLabel = BarOwlDateTimeIntl.switchToMultiYearViewLabel;\r\n this.cancelBtnLabel = BarOwlDateTimeIntl.cancelBtnLabel;\r\n this.setBtnLabel = BarOwlDateTimeIntl.setBtnLabel;\r\n this.rangeFromLabel = BarOwlDateTimeIntl.rangeFromLabel;\r\n this.rangeToLabel = BarOwlDateTimeIntl.rangeToLabel;\r\n this.hour12AMLabel = BarOwlDateTimeIntl.hour12AMLabel;\r\n this.hour12PMLabel = BarOwlDateTimeIntl.hour12PMLabel;\r\n }\r\n}\r\nBarDateTimeIntl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarDateTimeIntl, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\r\nBarDateTimeIntl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarDateTimeIntl });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarDateTimeIntl, decorators: [{\r\n type: Injectable\r\n }] });\n\nconst DOMAIN_BAR_CONTROLS = {\r\n LOADING: 'Laden...',\r\n TILE: {\r\n CANCEL_FAVORITE: 'Annuleren als favoriet',\r\n MARK_FAVORITE: 'Aanmerken als favoriet',\r\n REMOVE_TILE: 'Tegel verwijderen'\r\n },\r\n REMARKS: {\r\n REMARK_BLOCKING_1: 'Er is 1 blokkerende opmerking',\r\n REMARK_BLOCKING_N: 'Er zijn {{count}} blokkerende opmerkingen',\r\n REMARK_IMPORTANT_1: 'Er is 1 belangrijke opmerking',\r\n REMARK_IMPORTANT_N: 'Er zijn {{count}} belangrijke opmerkingen',\r\n REMARK_INFO_1: 'Er is 1 informatieve opmerking',\r\n REMARK_INFO_N: 'Er zijn {{count}} informatieve opmerkingen',\r\n NO_REMARKS: 'Er werden geen opmerkingen geregistreerd.',\r\n DETAILS: 'Details',\r\n REQUEST: 'Aanvraag',\r\n TOTAL_SUMMARY: 'Overzicht opmerkingen'\r\n },\r\n CONFIRM: {\r\n OK: 'Bevestigen',\r\n CANCEL: 'Annuleren',\r\n CLOSE: 'Sluiten'\r\n },\r\n SEARCH_SCREEN: {\r\n SEARCH: 'Zoeken',\r\n SEARCH_CRITERIA: 'Zoekvelden',\r\n SEARCH_CRITERIA_RESET: 'Zoekvelden initialiseren',\r\n SEARCH_RESULT: 'Zoekresultaat',\r\n SEARCH_FIELDS_SHOW: 'Uitgebreide zoekvelden tonen',\r\n SEARCH_FIELDS_HIDE: 'Uitgebreide zoekvelden verbergen'\r\n },\r\n DATE_TIME_PICKER: {\r\n SELECTION_TITLE: {\r\n DATE_TIME: 'Datum en tijd kiezen',\r\n DATE: 'Datum kiezen',\r\n TIME: 'Tijd kiezen'\r\n }\r\n },\r\n SELECT_LIST: {\r\n SELECT: 'Selecteer'\r\n }\r\n};\r\nconst GENERAL = {\r\n SAVE: 'Opslaan',\r\n CANCEL: 'Annuleren',\r\n NEW: 'Nieuw',\r\n VIEW: 'Bekijken',\r\n ADD: 'Toevoegen',\r\n EDIT: 'Wijzigen',\r\n DELETE: 'Verwijderen',\r\n REMOVE: 'Verwijderen',\r\n REFRESH: 'Herladen',\r\n SEARCH: 'Zoeken',\r\n FILTER: 'Filteren',\r\n SORT: 'Sorteren',\r\n OVERVIEW: 'Overzicht',\r\n SEARCH_RESULTS: 'Zoekresultaten',\r\n DETAILS: 'Details'\r\n};\r\nvar translations$1 = {\r\n DOMAIN_BAR_CONTROLS,\r\n GENERAL\r\n};\n\n// NOTE we use a startupservice here for the translations because in disconnected modus it should work (without initialized hooks)\r\nclass BarControlsStartupService {\r\n constructor(translate) {\r\n this.translate = translate;\r\n }\r\n load() {\r\n this.translate.addTranslations('DOMAIN_BAR_CONTROLS', translations$1.DOMAIN_BAR_CONTROLS);\r\n this.translate.addTranslations('GENERAL', translations$1.GENERAL);\r\n return Promise.resolve();\r\n }\r\n}\r\nBarControlsStartupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarControlsStartupService, deps: [{ token: i1$2.BarI18nService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarControlsStartupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarControlsStartupService });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarControlsStartupService, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () { return [{ type: i1$2.BarI18nService }]; } });\n\nfunction controlsStartupServiceFactory(startup) {\r\n // AOT-proof setup: https://github.com/angular/angular-cli/issues/5158\r\n const fn = () => startup.load();\r\n return fn;\r\n}\r\nfunction dateTimeLocaleFactory(locale) {\r\n return () => locale;\r\n}\r\nconst publicComponents = [\r\n BarTileComponent,\r\n BarActionButtonComponent,\r\n BarTileListComponent,\r\n BarTileGroupComponent,\r\n BarLinkComponent,\r\n BarLoadingComponent,\r\n BarLoadingDirective,\r\n BarRemarkComponent,\r\n BarRemarkListComponent,\r\n BarRemarkSummaryComponent,\r\n BarRemarkOverviewComponent,\r\n BarToastMessagesComponent,\r\n BarToastMessageComponent,\r\n BarAutoNumericDirective,\r\n BarViewContainerRefDirective,\r\n BarClickOutsideDirective,\r\n BarSearchScreenComponent,\r\n BarHierarchicalListComponent,\r\n BarBreadcrumbComponent,\r\n BarNgMatLabelDirective,\r\n BarEditPageComponent,\r\n BarEditPageLoaderComponent,\r\n BarBannerComponent,\r\n BarSelectListComponent,\r\n BarDateTimePickerComponent,\r\n BarMeldingComponent,\r\n BarMenuButtonComponent\r\n];\r\nconst internalComponents = [BarConfirmComponent, BarEditPageWrapperComponent, BarHierarchicalListItemComponent];\r\nconst owlDateTimeProviders = [\r\n { provide: OwlDateTimeIntl, useClass: BarDateTimeIntl },\r\n { provide: OWL_DATE_TIME_LOCALE, useFactory: dateTimeLocaleFactory, deps: [LOCALE_ID] },\r\n { provide: DateTimeAdapter, useClass: BarDateFnsDateTimeAdapter },\r\n { provide: OWL_DATE_TIME_FORMATS, useValue: BAR_DEFAULT_DATE_TIME_FORMATS },\r\n { provide: OWL_DATEFNS_DATE_TIME_ADAPTER_OPTIONS, useValue: { locale: nl, weekStartsOn: 1 } }\r\n];\r\nclass BarControlsModule {\r\n static forRoot() {\r\n return {\r\n ngModule: BarControlsModule,\r\n // following services need to be singleton over all modules\r\n providers: [\r\n BarControlsStartupService,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: controlsStartupServiceFactory,\r\n deps: [BarControlsStartupService],\r\n multi: true\r\n },\r\n ...owlDateTimeProviders\r\n ]\r\n };\r\n }\r\n static forChild() {\r\n return {\r\n ngModule: BarControlsModule,\r\n // following services need to be singleton over all modules\r\n providers: [...owlDateTimeProviders]\r\n };\r\n }\r\n}\r\nBarControlsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarControlsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\r\nBarControlsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: BarControlsModule, declarations: [BarTileComponent,\r\n BarActionButtonComponent,\r\n BarTileListComponent,\r\n BarTileGroupComponent,\r\n BarLinkComponent,\r\n BarLoadingComponent,\r\n BarLoadingDirective,\r\n BarRemarkComponent,\r\n BarRemarkListComponent,\r\n BarRemarkSummaryComponent,\r\n BarRemarkOverviewComponent,\r\n BarToastMessagesComponent,\r\n BarToastMessageComponent,\r\n BarAutoNumericDirective,\r\n BarViewContainerRefDirective,\r\n BarClickOutsideDirective,\r\n BarSearchScreenComponent,\r\n BarHierarchicalListComponent,\r\n BarBreadcrumbComponent,\r\n BarNgMatLabelDirective,\r\n BarEditPageComponent,\r\n BarEditPageLoaderComponent,\r\n BarBannerComponent,\r\n BarSelectListComponent,\r\n BarDateTimePickerComponent,\r\n BarMeldingComponent,\r\n BarMenuButtonComponent, BarConfirmComponent, BarEditPageWrapperComponent, BarHierarchicalListItemComponent], imports: [CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n BarI18nModule,\r\n MatCardModule,\r\n MatProgressBarModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatBadgeModule,\r\n MatToolbarModule,\r\n MatMenuModule,\r\n MatRippleModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n NgSelectModule,\r\n OwlDateTimeModule,\r\n OwlNativeDateTimeModule], exports: [BarTileComponent,\r\n BarActionButtonComponent,\r\n BarTileListComponent,\r\n BarTileGroupComponent,\r\n BarLinkComponent,\r\n BarLoadingComponent,\r\n BarLoadingDirective,\r\n BarRemarkComponent,\r\n BarRemarkListComponent,\r\n BarRemarkSummaryComponent,\r\n BarRemarkOverviewComponent,\r\n BarToastMessagesComponent,\r\n BarToastMessageComponent,\r\n BarAutoNumericDirective,\r\n BarViewContainerRefDirective,\r\n BarClickOutsideDirective,\r\n BarSearchScreenComponent,\r\n BarHierarchicalListComponent,\r\n BarBreadcrumbComponent,\r\n BarNgMatLabelDirective,\r\n BarEditPageComponent,\r\n BarEditPageLoaderComponent,\r\n BarBannerComponent,\r\n BarSelectListComponent,\r\n BarDateTimePickerComponent,\r\n BarMeldingComponent,\r\n BarMenuButtonComponent] });\r\nBarControlsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarControlsModule, imports: [CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n BarI18nModule,\r\n MatCardModule,\r\n MatProgressBarModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatBadgeModule,\r\n MatToolbarModule,\r\n MatMenuModule,\r\n MatRippleModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n NgSelectModule,\r\n OwlDateTimeModule,\r\n OwlNativeDateTimeModule] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarControlsModule, decorators: [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [...publicComponents, ...internalComponents],\r\n exports: [...publicComponents],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n BarI18nModule,\r\n MatCardModule,\r\n MatProgressBarModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatBadgeModule,\r\n MatToolbarModule,\r\n MatMenuModule,\r\n MatRippleModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n NgSelectModule,\r\n OwlDateTimeModule,\r\n OwlNativeDateTimeModule\r\n ]\r\n }]\r\n }] });\n\n/**\r\n * Represents a clickable BAR element.\r\n */\r\n// NOTE that we use delegates to mimic computed properties.\r\nclass BarLink {\r\n}\n\nclass BarTile extends BarLink {\r\n constructor() {\r\n super(...arguments);\r\n /** Whether the body property is also shown as a tooltip by default. */\r\n this.defaultBodyTooltipEnabled = true;\r\n /** Whether the body should be truncated. */\r\n this.truncateBody = true;\r\n /** Whether the title property is also shown as a tooltip by default. */\r\n this.defaultContentTooltipEnabled = true;\r\n /** Whether the title should be truncated. */\r\n this.truncateTitle = true;\r\n }\r\n}\n\nvar BarTileStyle;\r\n(function (BarTileStyle) {\r\n BarTileStyle[BarTileStyle[\"Default\"] = 0] = \"Default\";\r\n BarTileStyle[BarTileStyle[\"Variant1\"] = 1] = \"Variant1\";\r\n BarTileStyle[BarTileStyle[\"Variant2\"] = 2] = \"Variant2\";\r\n BarTileStyle[BarTileStyle[\"Variant3\"] = 3] = \"Variant3\";\r\n})(BarTileStyle || (BarTileStyle = {}));\n\nclass BarRemark {\r\n}\n\nclass BarExternalLinkGroup {\r\n}\n\n/**\r\n * Represents a button to be placed in the action BAR.\r\n */\r\n// NOTE that we use delegates to mimic computed properties.\r\nclass BarActionButton {\r\n}\n\nclass BarIcon {\r\n}\n\n/**\r\n * Represents a menu item.\r\n */\r\nclass BarMenuItem extends BarLink {\r\n}\n\n/** Represents a tag used in a menu item */\r\nclass BarMenuItemTag {\r\n}\n\nvar BarMenuItemTagType;\r\n(function (BarMenuItemTagType) {\r\n BarMenuItemTagType[\"Success\"] = \"success\";\r\n BarMenuItemTagType[\"Warning\"] = \"warning\";\r\n BarMenuItemTagType[\"Error\"] = \"error\";\r\n BarMenuItemTagType[\"Info\"] = \"info\";\r\n BarMenuItemTagType[\"Default\"] = \"default\";\r\n})(BarMenuItemTagType || (BarMenuItemTagType = {}));\n\n/**\r\n * Represents a app menu item.\r\n */\r\nclass BarAppMenuItem extends BarLink {\r\n}\n\nvar BarLayoutSection;\r\n(function (BarLayoutSection) {\r\n BarLayoutSection[BarLayoutSection[\"Utilities\"] = 0] = \"Utilities\";\r\n BarLayoutSection[BarLayoutSection[\"MenuActionBarTopLeft\"] = 1] = \"MenuActionBarTopLeft\";\r\n BarLayoutSection[BarLayoutSection[\"MenuActionBarTopRight\"] = 2] = \"MenuActionBarTopRight\";\r\n BarLayoutSection[BarLayoutSection[\"ActionBarTopLeft\"] = 3] = \"ActionBarTopLeft\";\r\n BarLayoutSection[BarLayoutSection[\"ActionBarTopRight\"] = 4] = \"ActionBarTopRight\";\r\n BarLayoutSection[BarLayoutSection[\"MenuTop\"] = 5] = \"MenuTop\";\r\n BarLayoutSection[BarLayoutSection[\"ContentActionBarTopRight\"] = 6] = \"ContentActionBarTopRight\";\r\n BarLayoutSection[BarLayoutSection[\"ContentActionBarBottomRight\"] = 7] = \"ContentActionBarBottomRight\";\r\n BarLayoutSection[BarLayoutSection[\"MenuBottom\"] = 8] = \"MenuBottom\";\r\n BarLayoutSection[BarLayoutSection[\"MenuActionBarBottomLeft\"] = 9] = \"MenuActionBarBottomLeft\";\r\n BarLayoutSection[BarLayoutSection[\"MenuActionBarBottomRight\"] = 10] = \"MenuActionBarBottomRight\";\r\n BarLayoutSection[BarLayoutSection[\"ActionBarBottomLeft\"] = 11] = \"ActionBarBottomLeft\";\r\n BarLayoutSection[BarLayoutSection[\"ActionBarBottomRight\"] = 12] = \"ActionBarBottomRight\";\r\n BarLayoutSection[BarLayoutSection[\"GlobalHeaderRight\"] = 13] = \"GlobalHeaderRight\";\r\n})(BarLayoutSection || (BarLayoutSection = {}));\n\n// based on https://angular.io/guide/dynamic-component-loader\r\n/**\r\n * Anchor directive to inject components dynamically in the layout.\r\n */\r\nclass BarLayoutAnchorDirective {\r\n constructor(viewContainerRef) {\r\n this.viewContainerRef = viewContainerRef;\r\n }\r\n set barLayoutAnchor(name) {\r\n this.defineSection(name);\r\n }\r\n defineSection(name) {\r\n switch (name) {\r\n case 'utilities':\r\n this.section = BarLayoutSection.Utilities;\r\n break;\r\n case 'menu-action-bar-top-left':\r\n this.section = BarLayoutSection.MenuActionBarTopLeft;\r\n break;\r\n case 'menu-action-bar-top-right':\r\n this.section = BarLayoutSection.MenuActionBarTopRight;\r\n break;\r\n case 'action-bar-top-left':\r\n this.section = BarLayoutSection.ActionBarTopLeft;\r\n break;\r\n case 'action-bar-top-right':\r\n this.section = BarLayoutSection.ActionBarTopRight;\r\n break;\r\n case 'menu-top':\r\n this.section = BarLayoutSection.MenuTop;\r\n break;\r\n case 'content-action-bar-top-right':\r\n this.section = BarLayoutSection.ContentActionBarTopRight;\r\n break;\r\n case 'content-action-bar-bottom-right':\r\n this.section = BarLayoutSection.ContentActionBarBottomRight;\r\n break;\r\n case 'menu-bottom':\r\n this.section = BarLayoutSection.MenuBottom;\r\n break;\r\n case 'menu-action-bar-bottom-left':\r\n this.section = BarLayoutSection.MenuActionBarBottomLeft;\r\n break;\r\n case 'menu-action-bar-bottom-right':\r\n this.section = BarLayoutSection.MenuActionBarBottomRight;\r\n break;\r\n case 'action-bar-bottom-left':\r\n this.section = BarLayoutSection.ActionBarBottomLeft;\r\n break;\r\n case 'action-bar-bottom-right':\r\n this.section = BarLayoutSection.ActionBarBottomRight;\r\n break;\r\n case 'global-header-right':\r\n this.section = BarLayoutSection.GlobalHeaderRight;\r\n break;\r\n default:\r\n this.section = null;\r\n break;\r\n }\r\n }\r\n}\r\nBarLayoutAnchorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutAnchorDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\r\nBarLayoutAnchorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarLayoutAnchorDirective, selector: \"[barLayoutAnchor]\", inputs: { barLayoutAnchor: \"barLayoutAnchor\" }, ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutAnchorDirective, decorators: [{\r\n type: Directive,\r\n args: [{\r\n selector: '[barLayoutAnchor]'\r\n }]\r\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { barLayoutAnchor: [{\r\n type: Input\r\n }] } });\n\n/** Represents a device type. */\r\nvar BarDeviceType;\r\n(function (BarDeviceType) {\r\n /** Desktop. */\r\n BarDeviceType[BarDeviceType[\"Desktop\"] = 0] = \"Desktop\";\r\n /** Tablet. */\r\n BarDeviceType[BarDeviceType[\"Tablet\"] = 1] = \"Tablet\";\r\n /** Smartphone, GSM, handheld. */\r\n BarDeviceType[BarDeviceType[\"Mobile\"] = 2] = \"Mobile\";\r\n /** Unknown device type. */\r\n BarDeviceType[BarDeviceType[\"Unknown\"] = 3] = \"Unknown\";\r\n})(BarDeviceType || (BarDeviceType = {}));\n\nconst CLASS_SELECTED_ITEM = 'bar-menu-link--selected';\r\nclass BarLayoutMenuListComponent {\r\n constructor(router, sanitizer, layout, controlsHelper) {\r\n this.router = router;\r\n this.sanitizer = sanitizer;\r\n this.layout = layout;\r\n this.controlsHelper = controlsHelper;\r\n this.menuLevel = 0;\r\n this.path = '';\r\n this.items = [];\r\n this.parentExpanded = true;\r\n }\r\n menuItemClicked(event, item, index) {\r\n if (!this.getItemProp(item, 'disabled')) {\r\n // auto close menu when in overlay modus and menu item has a link\r\n if (this.layout.menuState$.getValue() === 'overlay' && (item.routerLink || item.routerUrl))\r\n this.layout.menuState$.next('closed');\r\n // if menu item has children, trigger expansion logic\r\n if (item.children && item.children.length)\r\n this.menuItemToggleClicked(event, index);\r\n if (item.action)\r\n item.action();\r\n if (item.routerUrl) {\r\n // when routerUrl is configured we want to use SPA navigation not href navigation\r\n event.preventDefault();\r\n this.router.navigateByUrl(resolveValue(item.routerUrl)).then((val) => {\r\n if (val)\r\n window.scrollTo(0, 0);\r\n });\r\n }\r\n }\r\n else\r\n return false;\r\n }\r\n menuItemToggleClicked(event, index) {\r\n event.stopPropagation();\r\n const tempItem = Object.assign(this.items[index]);\r\n if (!tempItem.disabled || !resolveValue(tempItem.disabled)) {\r\n tempItem.expanded = !tempItem.expanded;\r\n this.items = this.items.map((mapItem, mapIndex) => {\r\n if (mapIndex === index)\r\n return Object.assign(mapItem, tempItem);\r\n return mapItem;\r\n });\r\n }\r\n }\r\n getItemProp(item, property) {\r\n if (item[property])\r\n if (property === 'href')\r\n return this.sanitizer.bypassSecurityTrustUrl(resolveValue(item[property]));\r\n else\r\n return resolveValue(item[property]);\r\n else if (property === 'routerLink')\r\n return '/';\r\n else if (property === 'href' && item.href == null && item.routerUrl != null)\r\n // in case the href property is retrieved but we don't have an actual href we set the routerUrl as the href\r\n return resolveValue(item.routerUrl);\r\n else\r\n return null;\r\n }\r\n getPath(index) {\r\n return this.path.length ? `${this.path}.${index}` : `${index}`;\r\n }\r\n getLinkClasses(item, index) {\r\n const menuLevelClasses = this.menuLevel < 3 ? 'bar-menu-link--level-' + this.menuLevel : 'bar-menu-link--level-deep';\r\n let activeItemClasses = '';\r\n let url = null;\r\n if (item.routerLink) {\r\n const link = resolveValue(item.routerLink);\r\n url = this.router.createUrlTree(link);\r\n }\r\n else if (item.routerUrl) {\r\n const tempUrl = resolveValue(item.routerUrl);\r\n if (tempUrl != null) {\r\n url = this.router.parseUrl(tempUrl);\r\n }\r\n }\r\n if (url != null) {\r\n // pathMatch check wether or not to match full path isActive's \"exact\" property, default true\r\n // map UrlTree to string\r\n const serializedUrl = this.router.serializeUrl(url);\r\n // remove queryparams and fragment as it is not needed for url check\r\n const currentUrl = this.router.url.split('?')[0].split('#')[0];\r\n // when pathmatch is prefix we check if the menu item is part of the current url (the start of)\r\n const active = item.pathMatch && item.pathMatch === 'prefix' ? currentUrl.indexOf(serializedUrl) === 0 : serializedUrl === currentUrl;\r\n if (active)\r\n activeItemClasses = CLASS_SELECTED_ITEM;\r\n }\r\n // if the consumer marked the menu item as selected we mark it as selected\r\n if (item.selected === true)\r\n activeItemClasses = CLASS_SELECTED_ITEM;\r\n // if the consumer explicitly marked it as not selected, make sure it doesn't appear as selected (because of url match)\r\n else if (item.selected === false && activeItemClasses)\r\n activeItemClasses = undefined;\r\n const clickableClasses = item.href || item.routerLink || item.routerUrl || item.action ? 'bar-menu-link--clickable' : '';\r\n return `${menuLevelClasses} ${activeItemClasses} ${clickableClasses}`;\r\n }\r\n getTagClasses(tag) {\r\n const classes = [];\r\n if (tag.class)\r\n classes.push(tag.class);\r\n classes.push(`bar-menu-link_tag--${tag.type || 'no-type'}`);\r\n return classes;\r\n }\r\n hasLink(item) {\r\n return resolveValue(item['disabled']) ? false : resolveValue(item.routerLink) || this.hasDefaultLink(item);\r\n }\r\n hasDefaultLink(item) {\r\n return resolveValue(item.href) || resolveValue(item.routerUrl);\r\n }\r\n}\r\nBarLayoutMenuListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMenuListComponent, deps: [{ token: i1.Router }, { token: i1$1.DomSanitizer }, { token: BarLayoutService }, { token: BarControlsHelper }], target: i0.ɵɵFactoryTarget.Component });\r\nBarLayoutMenuListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarLayoutMenuListComponent, selector: \"bar-layout-menu-list\", inputs: { menuLevel: \"menuLevel\", path: \"path\", items: \"items\", parentExpanded: \"parentExpanded\" }, ngImport: i0, template: \"
    0 ? 'bar-menu__sub-menu' : ''\\\">\\r\\n \\r\\n
  • \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.RouterLinkWithHref, selector: \"a[routerLink],area[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"component\", type: i4.MatButton, selector: \"button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]\", inputs: [\"disabled\", \"disableRipple\", \"color\"], exportAs: [\"matButton\"] }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: i6.MatTooltip, selector: \"[matTooltip]\", exportAs: [\"matTooltip\"] }, { kind: \"component\", type: BarLayoutMenuListComponent, selector: \"bar-layout-menu-list\", inputs: [\"menuLevel\", \"path\", \"items\", \"parentExpanded\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMenuListComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-layout-menu-list', template: \"
    0 ? 'bar-menu__sub-menu' : ''\\\">\\r\\n \\r\\n
  • \\r\\n \\r\\n
    \\r\\n \\r\\n
    \\r\\n
  • \\r\\n
    \\r\\n
\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1$1.DomSanitizer }, { type: BarLayoutService }, { type: BarControlsHelper }]; }, propDecorators: { menuLevel: [{\r\n type: Input\r\n }], path: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }], parentExpanded: [{\r\n type: Input\r\n }] } });\n\nclass BarLayoutMenuStrikingActionsComponent {\r\n constructor(layout) {\r\n this.layout = layout;\r\n this.strikingActions$ = new BehaviorSubject([]);\r\n }\r\n ngOnInit() {\r\n this.layout.strikingActions$.subscribe((actions) => {\r\n const transformActions = (actions) => {\r\n return actions.map((a) => {\r\n a.type = BarActionButtonType.Stroked;\r\n return a;\r\n });\r\n };\r\n if (actions)\r\n this.strikingActions$.next(transformActions(actions));\r\n else\r\n this.strikingActions$.next(actions);\r\n });\r\n }\r\n}\r\nBarLayoutMenuStrikingActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMenuStrikingActionsComponent, deps: [{ token: BarLayoutService }], target: i0.ɵɵFactoryTarget.Component });\r\nBarLayoutMenuStrikingActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarLayoutMenuStrikingActionsComponent, selector: \"bar-layout-menu-striking-actions\", ngImport: i0, template: \"\\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMenuStrikingActionsComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-layout-menu-striking-actions', template: \"\\r\\n\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: BarLayoutService }]; } });\n\nclass BarLayoutMenuExternalLinksComponent {\r\n constructor(layout) {\r\n this.layout = layout;\r\n }\r\n isExternal(link) {\r\n return link.target && link.target === '_blank';\r\n }\r\n}\r\nBarLayoutMenuExternalLinksComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMenuExternalLinksComponent, deps: [{ token: BarLayoutService }], target: i0.ɵɵFactoryTarget.Component });\r\nBarLayoutMenuExternalLinksComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarLayoutMenuExternalLinksComponent, selector: \"bar-layout-menu-external-links\", ngImport: i0, template: \"\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"component\", type: BarLinkComponent, selector: \"bar-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMenuExternalLinksComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-layout-menu-external-links', template: \"\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: BarLayoutService }]; } });\n\nclass BarLayoutMenuOperationsComponent {\r\n constructor(layout) {\r\n this.layout = layout;\r\n this.operations$ = new BehaviorSubject([]);\r\n }\r\n ngOnInit() {\r\n this.layout.operations$.subscribe((actions) => {\r\n const transformActions = (actions) => {\r\n return actions.map((a) => {\r\n a.type = BarActionButtonType.Default;\r\n return a;\r\n });\r\n };\r\n if (actions)\r\n this.operations$.next(transformActions(actions));\r\n else\r\n this.operations$.next(actions);\r\n });\r\n }\r\n}\r\nBarLayoutMenuOperationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMenuOperationsComponent, deps: [{ token: BarLayoutService }], target: i0.ɵɵFactoryTarget.Component });\r\nBarLayoutMenuOperationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarLayoutMenuOperationsComponent, selector: \"bar-layout-menu-operations\", ngImport: i0, template: \"\\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMenuOperationsComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-layout-menu-operations', template: \"\\r\\n\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: BarLayoutService }]; } });\n\nclass BarLayoutMenuComponent {\r\n constructor(router, internalLayout, layout, coreState) {\r\n this.router = router;\r\n this.internalLayout = internalLayout;\r\n this.layout = layout;\r\n this.coreState = coreState;\r\n this.items = [];\r\n this.init();\r\n }\r\n get mainAction() {\r\n return this.layout.mainAction$.getValue() || this.internalLayout.internalMainAction;\r\n }\r\n get menuAction() {\r\n return this.layout.menuAction;\r\n }\r\n get smallDevice() {\r\n return this.internalLayout.smallDevice;\r\n }\r\n get menuState() {\r\n return this.layout.menuState$.getValue();\r\n }\r\n get menuToggleMetaIcon() {\r\n return this.stateMapping[this.menuState ? this.menuState : 'default'].icon;\r\n }\r\n get menuToggleMetaText() {\r\n return this.stateMapping[this.menuState ? this.menuState : 'default'].text;\r\n }\r\n ngOnDestroy() {\r\n this.menuSubscriber.unsubscribe();\r\n if (this.routeSubscriber)\r\n this.routeSubscriber.unsubscribe();\r\n }\r\n menuToggleClicked(event) {\r\n this.stateMapping[this.menuState ? this.menuState : 'default'].action();\r\n }\r\n setMenuState(menuState) {\r\n this.layout.menuState$.next(menuState);\r\n }\r\n init() {\r\n /* Default info: window width < 1200px equals overlay mode, > 1200px equals pinned mode */\r\n this.stateMapping = {\r\n closed: {\r\n icon: 'fas fa-caret-right',\r\n text: 'Menu openen',\r\n action: () => {\r\n this.layout.menuState$.next('overlay');\r\n }\r\n },\r\n pinned: {\r\n icon: 'fas fa-caret-left',\r\n text: 'Menu sluiten',\r\n action: () => {\r\n this.layout.menuState$.next(this.mobileFriendly ? 'overlay' : 'closed');\r\n }\r\n },\r\n overlay: {\r\n icon: 'fas fa-caret-right',\r\n text: 'Menu pinnen',\r\n action: () => {\r\n this.layout.menuState$.next(this.mobileFriendly ? 'pinned' : 'pinned');\r\n }\r\n },\r\n default: {\r\n icon: this.smallDevice ? 'fas fa-caret-right' : 'fas fa-caret-left',\r\n text: this.smallDevice ? 'Menu pinnen' : 'Menu sluiten',\r\n action: () => {\r\n this.smallDevice ? this.layout.menuState$.next('pinned') : this.layout.menuState$.next(this.mobileFriendly ? 'overlay' : 'closed');\r\n }\r\n }\r\n };\r\n this.menuSubscriber = this.layout.menuItems$.subscribe((items) => {\r\n if (items && items.length) {\r\n this.items = this.setExpandedStateForActiveItems(items);\r\n this.findMenuItemRecursive(items, '');\r\n }\r\n else {\r\n this.items = [];\r\n }\r\n });\r\n this.layout.menuItemsAutoCollapse$.subscribe((autoCollapse) => {\r\n if (autoCollapse) {\r\n this.routeSubscriber = this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n // close inactive submenu's\r\n const collapsedMenus = this.closeInactiveSubmenus(this.layout.menuItems$.getValue());\r\n // set new menu (only active tree is expanded)\r\n this.layout.menuItems$.next(collapsedMenus);\r\n }\r\n });\r\n }\r\n else if (this.routeSubscriber) {\r\n this.routeSubscriber.unsubscribe();\r\n }\r\n });\r\n }\r\n /** Sets the items expand property to true if a subItem is active, if not to false */\r\n setExpandedStateForActiveItems(items) {\r\n return items.map((item) => {\r\n // only set expanded items for the current application\r\n if (!item.appCode || item.appCode === this.coreState.toepassing.code) {\r\n // first check if expanded has been preconfigured, if so skip checking\r\n if (!item.expanded) {\r\n if (item.routerLink) {\r\n const stringifiedRouterLink = resolveValue(item.routerLink).join('/');\r\n let hasActiveSubChild;\r\n if (item.children && item.children.length)\r\n hasActiveSubChild = this.hasSubItemWithActiveRouterLink(item.children);\r\n item.expanded = hasActiveSubChild || window.location.pathname.includes(stringifiedRouterLink);\r\n }\r\n else if (item.children && item.children.length) {\r\n item.expanded = this.hasSubItemWithActiveRouterLink(item.children);\r\n }\r\n }\r\n // if expanded, continue checking the node's tree to expand further\r\n if (item.expanded && item.children && item.children.length)\r\n this.setExpandedStateForActiveItems(item.children);\r\n }\r\n return item;\r\n });\r\n }\r\n /** Check if an item with children has an active routerLink\r\n * return true if a subChild is active (can be nested inifitely deep)\r\n * return false if no subChild is active\r\n **/\r\n hasSubItemWithActiveRouterLink(items) {\r\n const itemHasActiveSubItem = items.find((subItem) => {\r\n if (subItem.routerLink) {\r\n const stringifiedRouterLink = resolveValue(subItem.routerLink).join('/');\r\n // when routerlink is in pathname always return true\r\n if (window.location.pathname.includes(stringifiedRouterLink))\r\n return window.location.pathname.includes(stringifiedRouterLink);\r\n }\r\n // no routerLink\r\n // or routerLink is not in the pathname\r\n // then continue checking the node's tree\r\n if (subItem.children && subItem.children.length)\r\n return this.hasSubItemWithActiveRouterLink(subItem.children);\r\n return false;\r\n });\r\n return !!itemHasActiveSubItem;\r\n }\r\n /**\r\n * Auto mechanism to collapse inactiv expanded submenus\r\n * We set all the expanded properties to false\r\n * Due to the subscription of menuItems$ the setExpandedStateForActiveItems method will be called and will set only the active sub menu to an active state\r\n */\r\n closeInactiveSubmenus(menuItems) {\r\n return menuItems.map((item) => {\r\n item.expanded = false;\r\n if (item.children && item.children.length)\r\n item.children = this.closeInactiveSubmenus(item.children);\r\n return item;\r\n });\r\n }\r\n getPath(path, index) {\r\n return path.length ? `${path}.${index}` : `${index}`;\r\n }\r\n findMenuItemRecursive(menuItems, path) {\r\n for (let index = 0; index < menuItems.length; index++) {\r\n const menuItem = menuItems[index];\r\n if (menuItem.routerLink) {\r\n const urlTree = this.router.createUrlTree(resolveValue(menuItem.routerLink));\r\n if (this.router.isActive(urlTree, true)) {\r\n // active item found, set it expanded (does not mather if doens't have child items)\r\n menuItem.expanded = true;\r\n return menuItem;\r\n }\r\n }\r\n if (menuItem.children && menuItem.children.length) {\r\n const subMenuItem = this.findMenuItemRecursive(menuItem.children, this.getPath(path, index));\r\n if (subMenuItem)\r\n return subMenuItem;\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\nBarLayoutMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMenuComponent, deps: [{ token: i1.Router }, { token: _BarInternalLayoutService }, { token: BarLayoutService }, { token: i1$4.BarCoreStateService, optional: true }], target: i0.ɵɵFactoryTarget.Component });\r\nBarLayoutMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarLayoutMenuComponent, selector: \"bar-layout-menu\", inputs: { mobileFriendly: \"mobileFriendly\" }, viewQueries: [{ propertyName: \"barLayoutMenuAnchors\", predicate: BarLayoutAnchorDirective, descendants: true }], ngImport: i0, template: \"\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"component\", type: BarLayoutMenuListComponent, selector: \"bar-layout-menu-list\", inputs: [\"menuLevel\", \"path\", \"items\", \"parentExpanded\"] }, { kind: \"component\", type: BarLayoutMenuStrikingActionsComponent, selector: \"bar-layout-menu-striking-actions\" }, { kind: \"directive\", type: BarLayoutAnchorDirective, selector: \"[barLayoutAnchor]\", inputs: [\"barLayoutAnchor\"] }, { kind: \"component\", type: BarLayoutMenuExternalLinksComponent, selector: \"bar-layout-menu-external-links\" }, { kind: \"component\", type: BarLayoutMenuOperationsComponent, selector: \"bar-layout-menu-operations\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMenuComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-layout-menu', template: \"\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\" }]\r\n }], ctorParameters: function () {\r\n return [{ type: i1.Router }, { type: _BarInternalLayoutService }, { type: BarLayoutService }, { type: i1$4.BarCoreStateService, decorators: [{\r\n type: Optional\r\n }] }];\r\n }, propDecorators: { mobileFriendly: [{\r\n type: Input\r\n }], barLayoutMenuAnchors: [{\r\n type: ViewChildren,\r\n args: [BarLayoutAnchorDirective]\r\n }] } });\n\nclass BarMeerActiesComponent {\r\n constructor(router, controlsHelper) {\r\n this.router = router;\r\n this.controlsHelper = controlsHelper;\r\n this.moreActionsButton = {\r\n title: 'Meer acties',\r\n icon: {\r\n class: 'fas fa-ellipsis-h',\r\n srText: 'Meer acties',\r\n iconOnly: true\r\n }\r\n };\r\n }\r\n menuItemClicked(event, item) {\r\n if (item.action)\r\n item.action();\r\n if (item.routerLink)\r\n this.router.navigate(resolveValue(item.routerLink));\r\n if (item.routerUrl)\r\n this.router.navigateByUrl(resolveValue(item.routerUrl));\r\n if (item.href)\r\n window.open(resolveValue(item.href), resolveValue(item.target));\r\n }\r\n}\r\nBarMeerActiesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarMeerActiesComponent, deps: [{ token: i1.Router }, { token: BarControlsHelper }], target: i0.ɵɵFactoryTarget.Component });\r\nBarMeerActiesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarMeerActiesComponent, selector: \"bar-meer-acties\", inputs: { top: \"top\", items: \"items\" }, ngImport: i0, template: \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"component\", type: i6$3.MatMenu, selector: \"mat-menu\", exportAs: [\"matMenu\"] }, { kind: \"component\", type: i6$3.MatMenuItem, selector: \"[mat-menu-item]\", inputs: [\"disabled\", \"disableRipple\", \"role\"], exportAs: [\"matMenuItem\"] }, { kind: \"directive\", type: i6$3.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", exportAs: [\"matMenuTrigger\"] }, { kind: \"directive\", type: i6.MatTooltip, selector: \"[matTooltip]\", exportAs: [\"matTooltip\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarMeerActiesComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-meer-acties', template: \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: i1.Router }, { type: BarControlsHelper }]; }, propDecorators: { top: [{\r\n type: Input\r\n }], items: [{\r\n type: Input\r\n }] } });\n\nclass BarLayoutPageComponent {\r\n constructor(internalLayout, layout) {\r\n this.internalLayout = internalLayout;\r\n this.layout = layout;\r\n this.withRouting = true;\r\n this.internalContentActions = [];\r\n }\r\n get menuAction() {\r\n return this.layout.menuAction;\r\n }\r\n get smallDevice() {\r\n return this.internalLayout.smallDevice;\r\n }\r\n get sidenavMode() {\r\n /* Default info: window width < 1200px equals overlay mode, > 1200px equals pinned mode */\r\n const stateModeMapping = {\r\n closed: 'side',\r\n overlay: 'over',\r\n pinned: 'side',\r\n default: this.smallDevice ? 'over' : 'side'\r\n };\r\n return this.menuState ? stateModeMapping[this.menuState] : stateModeMapping['default'];\r\n }\r\n /* based on the screen size we need to redefine the exact menu state (overlay or pinned) when in default mode */\r\n get menuStateExact() {\r\n return this.menuState === 'default' ? (this.smallDevice ? 'overlay' : 'pinned') : this.menuState;\r\n }\r\n ngOnInit() {\r\n this.internalContentActionsSubscription = this.internalLayout.internalContentActions$.subscribe((contentActions) => {\r\n this.internalLayout.queueAction(() => {\r\n this.internalContentActions = contentActions || [];\r\n });\r\n });\r\n this.submitActionsSubscription = this.layout.submitActions$.subscribe((submitActions) => {\r\n this.internalLayout.queueAction(() => {\r\n this.submitActions = submitActions;\r\n });\r\n });\r\n this.contentActionsSubscription = this.layout.contentActions$.subscribe((contentActions) => {\r\n this.internalLayout.queueAction(() => {\r\n this.contentActions = contentActions;\r\n });\r\n });\r\n this.moreActionsSubscription = this.layout.moreActions$.subscribe((moreActions) => {\r\n this.internalLayout.queueAction(() => {\r\n this.moreActions = moreActions;\r\n });\r\n });\r\n this.sidebarSubscription = this.layout.sidebar$.subscribe((sidebar) => {\r\n this.internalLayout.queueAction(() => {\r\n this.sidebar = sidebar;\r\n });\r\n });\r\n this.menuStateSubscription = this.layout.menuState$.subscribe((menuState) => {\r\n this.internalLayout.queueAction(() => {\r\n this.menuState = menuState;\r\n });\r\n });\r\n this.mainActionSubscription = this.layout.mainAction$.subscribe((mainAction) => {\r\n this.internalLayout.queueAction(() => {\r\n this.mainAction = mainAction || this.internalLayout.internalMainAction;\r\n });\r\n });\r\n this.layout.appVersion$.subscribe((appVersion) => {\r\n this.internalLayout.queueAction(() => {\r\n this.appVersion = appVersion;\r\n });\r\n });\r\n this.mainHeaderSubscription = this.layout.mainHeader$.subscribe((mainHeader) => {\r\n this.internalLayout.queueAction(() => {\r\n this.mainHeader = mainHeader;\r\n });\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.internalContentActionsSubscription.unsubscribe();\r\n this.submitActionsSubscription.unsubscribe();\r\n this.contentActionsSubscription.unsubscribe();\r\n this.moreActionsSubscription.unsubscribe();\r\n this.sidebarSubscription.unsubscribe();\r\n this.menuStateSubscription.unsubscribe();\r\n this.mainActionSubscription.unsubscribe();\r\n this.mainHeaderSubscription.unsubscribe();\r\n }\r\n // Close menu when clicked (or pressed ESC) when backdrop is active (mode = 'over')\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n handleBackdropEvent(event) {\r\n this.layout.menuState$.next('closed');\r\n }\r\n}\r\nBarLayoutPageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutPageComponent, deps: [{ token: _BarInternalLayoutService }, { token: BarLayoutService }], target: i0.ɵɵFactoryTarget.Component });\r\nBarLayoutPageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarLayoutPageComponent, selector: \"bar-layout-page\", inputs: { mobileFriendly: \"mobileFriendly\", touch: \"touch\", env: \"env\", withRouting: \"withRouting\" }, viewQueries: [{ propertyName: \"barLayoutMenuComponent\", first: true, predicate: BarLayoutMenuComponent, descendants: true }, { propertyName: \"barLayoutPageAnchors\", predicate: BarLayoutAnchorDirective, descendants: true }], ngImport: i0, template: \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{ mainHeader }}\\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n Versie: {{ appVersion }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.RouterOutlet, selector: \"router-outlet\", outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }, { kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"component\", type: i6$4.MatSidenav, selector: \"mat-sidenav\", inputs: [\"fixedInViewport\", \"fixedTopGap\", \"fixedBottomGap\"], exportAs: [\"matSidenav\"] }, { kind: \"component\", type: i6$4.MatSidenavContainer, selector: \"mat-sidenav-container\", exportAs: [\"matSidenavContainer\"] }, { kind: \"component\", type: i6$4.MatSidenavContent, selector: \"mat-sidenav-content\" }, { kind: \"component\", type: BarMeerActiesComponent, selector: \"bar-meer-acties\", inputs: [\"top\", \"items\"] }, { kind: \"directive\", type: BarLayoutAnchorDirective, selector: \"[barLayoutAnchor]\", inputs: [\"barLayoutAnchor\"] }, { kind: \"component\", type: BarLayoutMenuComponent, selector: \"bar-layout-menu\", inputs: [\"mobileFriendly\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutPageComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-layout-page', template: \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{ mainHeader }}\\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n Versie: {{ appVersion }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\" }]\r\n }], ctorParameters: function () { return [{ type: _BarInternalLayoutService }, { type: BarLayoutService }]; }, propDecorators: { mobileFriendly: [{\r\n type: Input\r\n }], touch: [{\r\n type: Input\r\n }], env: [{\r\n type: Input\r\n }], withRouting: [{\r\n type: Input\r\n }], barLayoutPageAnchors: [{\r\n type: ViewChildren,\r\n args: [BarLayoutAnchorDirective]\r\n }], barLayoutMenuComponent: [{\r\n type: ViewChild,\r\n args: [BarLayoutMenuComponent]\r\n }] } });\n\n/** Widget injected into burgerprofiel header in case impersonating (tech page). */\r\nclass BarImpersonationWidgetComponent {\r\n constructor(auth, coreState, toepassing) {\r\n this.auth = auth;\r\n this.coreState = coreState;\r\n this.toepassing = toepassing;\r\n }\r\n ngOnInit() {\r\n var _a;\r\n this.content = (_a = this.coreState.basiscontext) === null || _a === void 0 ? void 0 : _a.fullUsername;\r\n this.toepassing.basiscontextChanged.subscribe((basisContext) => {\r\n this.content = basisContext === null || basisContext === void 0 ? void 0 : basisContext.fullUsername;\r\n });\r\n }\r\n logOff() {\r\n this.auth.logOff().subscribe();\r\n }\r\n}\r\nBarImpersonationWidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarImpersonationWidgetComponent, deps: [{ token: i1$4.BarAuthService }, { token: i1$4.BarCoreStateService }, { token: i1$4.BarToepassingService }], target: i0.ɵɵFactoryTarget.Component });\r\nBarImpersonationWidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarImpersonationWidgetComponent, selector: \"ng-component\", ngImport: i0, template: \"\\r\\n
\\r\\n {{ content}}\\r\\n \\r\\n Uitloggen\\r\\n \\r\\n
\" });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarImpersonationWidgetComponent, decorators: [{\r\n type: Component,\r\n args: [{ template: \"\\r\\n
\\r\\n {{ content}}\\r\\n \\r\\n Uitloggen\\r\\n \\r\\n
\" }]\r\n }], ctorParameters: function () { return [{ type: i1$4.BarAuthService }, { type: i1$4.BarCoreStateService }, { type: i1$4.BarToepassingService }]; } });\n\n/** Internal class to centralize burgerprofiel widgets logic. */\r\nclass BarBurgerprofielEngine {\r\n constructor(ngZone, coreState, auth, resolver, injector) {\r\n this.ngZone = ngZone;\r\n this.coreState = coreState;\r\n this.auth = auth;\r\n this.resolver = resolver;\r\n this.injector = injector;\r\n this.sessionInterval = undefined;\r\n }\r\n /** Whether the global header and footer are to be shown. */\r\n get visible() {\r\n return (\r\n // not for polaris\r\n this.coreState &&\r\n // must be active in configuration\r\n (this.config.headerFooterActive ||\r\n // or application code must be active in configuration\r\n (this.config.headerFooterActiveAppCodes && this.config.headerFooterActiveAppCodes.indexOf(this.coreState.toepassing.code) > -1)));\r\n }\r\n get vl() {\r\n return window['vl'];\r\n }\r\n get config() {\r\n var _a, _b, _c;\r\n return ((_c = (_b = (_a = this.coreState) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.baasStatic) === null || _c === void 0 ? void 0 : _c.burgerprofiel) || { headerFooterActive: false };\r\n }\r\n /** Initializes the widgets if possible. */\r\n tryInitialize() {\r\n return new Observable((subscriber) => {\r\n const complete = () => {\r\n subscriber.next();\r\n subscriber.complete();\r\n };\r\n if (this.visible && this.auth) {\r\n const doInit = () => {\r\n if (this.vl) {\r\n // Capture any widget that is present or will be present on the webpage.\r\n this.vl.widget.client.capture((widget) => {\r\n // Only process the widget if widget is a global header.\r\n if (widget.getPluginTypeId() === 'global_header') {\r\n // Get the Citizen Profile Session extension from the global header widget.\r\n widget.getExtension('citizen_profile.session').then((session) => {\r\n // setup session\r\n this.configureSession(session);\r\n // try extend session automatically\r\n this.tryRegisterSessionExtend(session);\r\n // do some custom processing\r\n this.customProcessing();\r\n });\r\n widget.on('citizen_profile.session.logout.request', (logoutRequest) => {\r\n this.tryPerformLogout(logoutRequest);\r\n });\r\n }\r\n });\r\n }\r\n complete();\r\n };\r\n if (this.vl)\r\n doInit();\r\n else {\r\n let cdnScripts;\r\n if (this.config.cdnScripts) {\r\n if (!this.config.cdnRootUrl)\r\n cdnScripts = this.config.cdnScripts;\r\n else {\r\n cdnScripts = this.config.cdnScripts.map((cdnScript) => {\r\n if (checkUrlAbsolute(cdnScript))\r\n return cdnScript;\r\n return concatUrl(this.config.cdnRootUrl, cdnScript);\r\n });\r\n }\r\n }\r\n else {\r\n cdnScripts = [\r\n 'https://prod.widgets.burgerprofiel.vlaanderen.be/api/v1/node_modules/@govflanders/vl-widget-polyfill/dist/index.js',\r\n 'https://prod.widgets.burgerprofiel.vlaanderen.be/api/v1/node_modules/@govflanders/vl-widget-client/dist/index.js'\r\n ];\r\n }\r\n let toInject = '';\r\n cdnScripts.forEach((cdnScript) => {\r\n const scriptTag = ``;\r\n toInject += scriptTag;\r\n });\r\n // load third party deps\r\n postscribe(document.body, toInject, {\r\n done: () => doInit()\r\n });\r\n }\r\n }\r\n else\r\n complete();\r\n });\r\n }\r\n /** Mounts the header if possible. */\r\n tryMountHeader(element) {\r\n if (this.vl && this.config.widgetRootUrl && this.config.headerWidgetId) {\r\n let url = this.config.widgetRootUrl;\r\n if (!url.endsWith('/'))\r\n url += '/';\r\n url += this.config.headerWidgetId;\r\n this.vl.widget.client\r\n .bootstrap(url)\r\n .then((widget) => {\r\n return (widget\r\n // Zoek het DOM-element met ID \"global-header\" welke we gaan\r\n // gebruiken om de widget aan de koppelen. Zodra men de widget\r\n // zijn \"mount\" gedrag triggered zal het DOM-element vervangen\r\n // worden maar niet verwijderd. Het \"umount\" gedrag zal het\r\n // originele DOM-element opnieuw herstellen.\r\n .setMountElement(element)\r\n // Geef instructie aan de widget instantie om \"mount\" gedrag\r\n // uit te voeren.\r\n .mount());\r\n })\r\n .catch(console.error.bind(console));\r\n }\r\n }\r\n /** Mounts the header if possible. */\r\n tryMountFooter(element) {\r\n if (this.vl && this.config.widgetRootUrl && this.config.footerWidgetId) {\r\n let url = this.config.widgetRootUrl;\r\n if (!url.endsWith('/'))\r\n url += '/';\r\n url += this.config.footerWidgetId;\r\n this.vl.widget.client\r\n .bootstrap(url)\r\n .then((widget) => {\r\n return (widget\r\n // Zoek het DOM-element met ID \"global-header\" welke we gaan\r\n // gebruiken om de widget aan de koppelen. Zodra men de widget\r\n // zijn \"mount\" gedrag triggered zal het DOM-element vervangen\r\n // worden maar niet verwijderd. Het \"umount\" gedrag zal het\r\n // originele DOM-element opnieuw herstellen.\r\n .setMountElement(element)\r\n // Geef instructie aan de widget instantie om \"mount\" gedrag\r\n // uit te voeren.\r\n .mount());\r\n })\r\n .catch(console.error.bind(console));\r\n }\r\n }\r\n tryPerformLogout(logoutRequest) {\r\n // Acknowledge the logout request to prevent the session extension from performing default\r\n // action due to response timeout (5 seconds).\r\n logoutRequest.acknowledge();\r\n switch (logoutRequest.getRequest().getReason()) {\r\n // Logout was requested by the user. This request should never be rejected in normal\r\n // circumstances.\r\n case 'user': {\r\n if (this.sessionInterval !== undefined) {\r\n window.clearInterval(this.sessionInterval);\r\n this.sessionInterval = undefined;\r\n }\r\n // Accept the request for website logout.\r\n logoutRequest.accept();\r\n if (this.auth.logOff)\r\n this.auth.logOff().subscribe();\r\n break;\r\n }\r\n // Logout was requested as the citizen profile extension has detected inactivity from\r\n // the user.\r\n case 'inactivity':\r\n // Logout was requested because the citizen profile extension has detected an expired\r\n // session which prevents the user from accessing citizen profile without a step-up.\r\n // This could be the result of an application logout or external logout.\r\n case 'expired':\r\n default: {\r\n // Reject the request for website logout.\r\n // NOTE LV: we don't have the concept of an expired session or inactivity\r\n logoutRequest.reject();\r\n break;\r\n }\r\n }\r\n }\r\n tryRegisterSessionExtend(session) {\r\n /**\r\n * Event handler which extends a Citizen Profile session.\r\n */\r\n function activityEventHandler() {\r\n // Inform the Citizen Profile Session extension about activity.\r\n session.extend();\r\n }\r\n if (this.config.useActivityTracking) {\r\n // NOTE this is the way according to burgerprofiel technical documentation\r\n // Build a list of event names which should be used for activity tracking.\r\n const eventNames = ['mousedown', 'mousemove', 'mousewheel', 'DOMMouseScroll', 'scroll', 'wheel', 'keydown', 'keypress', 'touchmove', 'touchstart'];\r\n // Iterate through the events names.\r\n for (let i = 0; i < eventNames.length; i++) {\r\n // Register our event handler given event name.\r\n window.addEventListener(eventNames[i], activityEventHandler);\r\n }\r\n }\r\n else if (this.config.sessionExtendTimeoutSeconds > 0) {\r\n // NOTE the LV way: just try to keep the session permanently alive\r\n // buiten angular om change detection te voorkomen door interval\r\n this.ngZone.runOutsideAngular(() => {\r\n // elke 5 minuten de sessie verlengen\r\n this.sessionInterval = window.setInterval(() => {\r\n activityEventHandler();\r\n }, this.config.sessionExtendTimeoutSeconds * 1000);\r\n });\r\n }\r\n }\r\n configureSession(session) {\r\n // This variable is purely to indicate which values are allowed (true / false).\r\n const websiteHasAuthenticatedSession = this.auth.authenticated;\r\n // Inform the session extension about the current session state of the website.\r\n session.configure({\r\n active: websiteHasAuthenticatedSession,\r\n endpoints: {\r\n loginUrl: this.config.loginUrl,\r\n loginRedirectUrl: this.config.loginRedirectUrl,\r\n logoutUrl: this.config.logoutUrl\r\n }\r\n });\r\n }\r\n // NOTE temporary\r\n customProcessing() {\r\n var _a;\r\n if (!this.config.impersonationOverrideEnabled || !((_a = this.coreState.basiscontext) === null || _a === void 0 ? void 0 : _a.impersonate))\r\n return;\r\n // here we inject our own widget using the css of burgerprofiel\r\n const element = document.querySelector('.vlw__primary-bar__plugins__item.vlw__profile');\r\n if (element) {\r\n // Resolve the component factory\r\n const factory = this.resolver.resolveComponentFactory(BarImpersonationWidgetComponent);\r\n // Create an instance of the component\r\n const componentRef = factory.create(this.injector);\r\n element.innerHTML = '';\r\n // Attach the component to the container element\r\n element.appendChild(componentRef.location.nativeElement);\r\n // Trigger change detection to update the component\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n }\r\n}\r\nBarBurgerprofielEngine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarBurgerprofielEngine, deps: [{ token: i0.NgZone }, { token: i1$4.BarCoreStateService, optional: true }, { token: i1$4.BarAuthService, optional: true }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarBurgerprofielEngine.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarBurgerprofielEngine });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarBurgerprofielEngine, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () {\r\n return [{ type: i0.NgZone }, { type: i1$4.BarCoreStateService, decorators: [{\r\n type: Optional\r\n }] }, { type: i1$4.BarAuthService, decorators: [{\r\n type: Optional\r\n }] }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }];\r\n } });\n\n// NOTE this will be used in disconnected modus (Polaris) or if config is missing\r\nconst DEFAULT_WIDGETS_CONFIG = {\r\n widgetUrl: '//widgets.vlaanderen.be/widget/live/{widgetId}',\r\n headerWidgetId: '1ebe22634f1d4cc2b4c5a05de8f78d0c',\r\n footerWidgetId: '6a87cf7f6e8d443187a349c7ccc0a794'\r\n};\r\nclass BarClassicWidgetsEngine {\r\n constructor(coreState) {\r\n this.coreState = coreState;\r\n }\r\n /** Legacy modus means we are working with the script tags in the old index.html. */\r\n get legacyModus() {\r\n return document.getElementById('flanders-header') != null && document.getElementById('flanders-footer') != null;\r\n }\r\n get config() {\r\n var _a, _b, _c;\r\n return ((_c = (_b = (_a = this.coreState) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.baasStatic) === null || _c === void 0 ? void 0 : _c.classicWidgets) || DEFAULT_WIDGETS_CONFIG;\r\n }\r\n tryMountHeader(element) {\r\n // only mount if online (avoid errors SPOT offline)\r\n if (navigator.onLine && !this.legacyModus) {\r\n const url = this.config.widgetUrl.replace('{widgetId}', this.config.headerWidgetId);\r\n postscribe(element, ``);\r\n return true;\r\n }\r\n return false;\r\n }\r\n tryMountFooter(element) {\r\n // only mount if online (avoid errors SPOT offline)\r\n if (navigator.onLine && !this.legacyModus) {\r\n const url = this.config.widgetUrl.replace('{widgetId}', this.config.footerWidgetId);\r\n postscribe(element, ``);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\nBarClassicWidgetsEngine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarClassicWidgetsEngine, deps: [{ token: i1$4.BarCoreStateService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarClassicWidgetsEngine.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarClassicWidgetsEngine });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarClassicWidgetsEngine, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () {\r\n return [{ type: i1$4.BarCoreStateService, decorators: [{\r\n type: Optional\r\n }] }];\r\n } });\n\nclass BarGlobalHeaderDirective {\r\n constructor(elRef, burgerprofielEngine, classicWidgetsEngine) {\r\n this.elRef = elRef;\r\n this.burgerprofielEngine = burgerprofielEngine;\r\n this.classicWidgetsEngine = classicWidgetsEngine;\r\n }\r\n ngOnInit() {\r\n // burgerprofiel header\r\n if (this.burgerprofielEngine.visible)\r\n this.burgerprofielEngine.tryMountHeader(this.elRef.nativeElement);\r\n // classic header\r\n else\r\n this.classicWidgetsEngine.tryMountHeader(this.elRef.nativeElement);\r\n }\r\n}\r\nBarGlobalHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarGlobalHeaderDirective, deps: [{ token: i0.ElementRef }, { token: BarBurgerprofielEngine }, { token: BarClassicWidgetsEngine }], target: i0.ɵɵFactoryTarget.Directive });\r\nBarGlobalHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarGlobalHeaderDirective, isStandalone: true, selector: \"bar-global-header\", ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarGlobalHeaderDirective, decorators: [{\r\n type: Directive,\r\n args: [{\r\n selector: 'bar-global-header',\r\n standalone: true\r\n }]\r\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: BarBurgerprofielEngine }, { type: BarClassicWidgetsEngine }]; } });\n\nclass BarGlobalFooterDirective {\r\n constructor(elRef, burgerprofielEngine, classicWidgetsEngine) {\r\n this.elRef = elRef;\r\n this.burgerprofielEngine = burgerprofielEngine;\r\n this.classicWidgetsEngine = classicWidgetsEngine;\r\n }\r\n ngOnInit() {\r\n // burgerprofiel header\r\n if (this.burgerprofielEngine.visible)\r\n this.burgerprofielEngine.tryMountFooter(this.elRef.nativeElement);\r\n // classic header\r\n else\r\n this.classicWidgetsEngine.tryMountFooter(this.elRef.nativeElement);\r\n }\r\n}\r\nBarGlobalFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarGlobalFooterDirective, deps: [{ token: i0.ElementRef }, { token: BarBurgerprofielEngine }, { token: BarClassicWidgetsEngine }], target: i0.ɵɵFactoryTarget.Directive });\r\nBarGlobalFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarGlobalFooterDirective, isStandalone: true, selector: \"bar-global-footer\", ngImport: i0 });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarGlobalFooterDirective, decorators: [{\r\n type: Directive,\r\n args: [{\r\n selector: 'bar-global-footer',\r\n standalone: true\r\n }]\r\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: BarBurgerprofielEngine }, { type: BarClassicWidgetsEngine }]; } });\n\nconst STORAGE_KEY_PREFIX = 'lvflanders.bar.ng.ui.';\n\nconst READ_MELDINGEN_KEY = `${STORAGE_KEY_PREFIX}readMeldingen`;\r\n/** Represents a single opmerking */\r\nclass BarMeldingenComponent {\r\n constructor() {\r\n this.meldingen = [];\r\n this.initialized = false;\r\n this.meldingenCollapsed = false;\r\n }\r\n ngOnChanges(changes) {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (changes.meldingen) {\r\n // Init readMeldingen\r\n const cachedMeldingen = yield this.getCachedMeldingIds();\r\n //Remove stale meldingen and set readMeldingen\r\n const meldingenToKeep = [];\r\n cachedMeldingen.forEach((cachedMeldingId) => {\r\n const melding = this.meldingen.find((mld) => mld.id === cachedMeldingId);\r\n if (melding)\r\n meldingenToKeep.push(melding);\r\n });\r\n yield this.saveMeldingenToKeep(meldingenToKeep);\r\n this.readMeldingen = meldingenToKeep;\r\n // Check if meldingen should be displayed\r\n this.unreadMeldingen = this.meldingen.filter((_) => !this.readMeldingen.map((mld) => mld.id).includes(_.id));\r\n if (!this.unreadMeldingen.length)\r\n this.meldingenCollapsed = true;\r\n this.initialized = true;\r\n }\r\n });\r\n }\r\n get toggleMessage() {\r\n if (this.meldingenCollapsed) {\r\n return 'Open meldingen';\r\n }\r\n else {\r\n return 'Sluit meldingen';\r\n }\r\n }\r\n get numberOfBelangrijk() {\r\n return this.meldingen.filter((_) => _.meldingType === BarMeldingType.Belangrijk).length;\r\n }\r\n get numberOfOpgelost() {\r\n return this.meldingen.filter((_) => _.meldingType === BarMeldingType.Opgelost).length;\r\n }\r\n get numberOfInformatief() {\r\n return this.meldingen.filter((_) => _.meldingType === BarMeldingType.Informatief).length;\r\n }\r\n get toggleIconClass() {\r\n if (this.meldingenCollapsed) {\r\n return 'fas fa-chevron-right';\r\n }\r\n else {\r\n return 'fas fa-chevron-down';\r\n }\r\n }\r\n toggleMeldingen() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n if (this.meldingenCollapsed) {\r\n this.openMeldingen();\r\n }\r\n else {\r\n yield this.closeMeldingen();\r\n }\r\n });\r\n }\r\n closeMeldingen() {\r\n return __awaiter(this, void 0, void 0, function* () {\r\n this.meldingenCollapsed = true;\r\n // Mark current unreadMeldingen as Read\r\n this.readMeldingen = [...this.readMeldingen, ...this.unreadMeldingen];\r\n this.unreadMeldingen = [];\r\n yield this.saveMeldingenToKeep(this.readMeldingen);\r\n });\r\n }\r\n openMeldingen() {\r\n this.meldingenCollapsed = false;\r\n }\r\n // NOTE use indexed db cache storage again when localforage has been replaced because there was an issue with this system\r\n // see TFS task #314157\r\n getCachedMeldingIds() {\r\n let result;\r\n // Init readMeldingen\r\n const strCachedMeldingen = window.localStorage.getItem(READ_MELDINGEN_KEY);\r\n if (strCachedMeldingen) {\r\n result = JSON.parse(strCachedMeldingen);\r\n }\r\n else\r\n result = [];\r\n return Promise.resolve(result);\r\n }\r\n saveMeldingenToKeep(meldingenToKeep) {\r\n window.localStorage.setItem(READ_MELDINGEN_KEY, JSON.stringify(meldingenToKeep.map((_) => _.id)));\r\n return Promise.resolve();\r\n }\r\n}\r\nBarMeldingenComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarMeldingenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarMeldingenComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarMeldingenComponent, selector: \"bar-meldingen\", inputs: { meldingen: \"meldingen\" }, usesOnChanges: true, ngImport: i0, template: \"
\\r\\n
\\r\\n
\\r\\n \\r\\n {{toggleMessage}}\\r\\n \\r\\n {{numberOfBelangrijk}}\\r\\n {{numberOfOpgelost}}\\r\\n {{numberOfInformatief}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n  \\r\\n

Reeds gelezen

\\r\\n  \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: BarMeldingComponent, selector: \"bar-melding\", inputs: [\"melding\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarMeldingenComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-meldingen', template: \"
\\r\\n
\\r\\n
\\r\\n \\r\\n {{toggleMessage}}\\r\\n \\r\\n {{numberOfBelangrijk}}\\r\\n {{numberOfOpgelost}}\\r\\n {{numberOfInformatief}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n  \\r\\n

Reeds gelezen

\\r\\n  \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\" }]\r\n }], propDecorators: { meldingen: [{\r\n type: Input\r\n }] } });\n\nclass BarLayoutComponent {\r\n constructor(\r\n // layout is exposed (public) as it is used for binding\r\n layout, \r\n // layout service used internally and not exposed to outside\r\n internalLayout, core, state, coreState, router, translate, gvk, burgerprofielEngine, classicWidgetsEngine, ngZone, toastMessage, breakpointObserver, options) {\r\n this.layout = layout;\r\n this.internalLayout = internalLayout;\r\n this.core = core;\r\n this.state = state;\r\n this.coreState = coreState;\r\n this.router = router;\r\n this.translate = translate;\r\n this.gvk = gvk;\r\n this.burgerprofielEngine = burgerprofielEngine;\r\n this.classicWidgetsEngine = classicWidgetsEngine;\r\n this.ngZone = ngZone;\r\n this.toastMessage = toastMessage;\r\n this.breakpointObserver = breakpointObserver;\r\n this.options = options;\r\n this.box = true;\r\n this.withRouting = true;\r\n this.skipLink = { main: null, menu: null };\r\n this.mobileFriendly = false;\r\n this.touch = false;\r\n this.compact = false;\r\n // NOTE this controls the *ngIf meaning no external scripts will be invoked\r\n this.globalHeaderFooterEnabled = true;\r\n this.menuOverlayOpen = false;\r\n this.layoutInitialized = true;\r\n this.configureHeaderFooterHalted = false;\r\n }\r\n get env() {\r\n return this.state.secLevel;\r\n }\r\n get devOrTest() {\r\n return ['DEV', 'TST'].find((env) => env === this.env);\r\n }\r\n get banner() {\r\n // the external banner always gets priority over the internal banner\r\n return this.externalBanner || this.internalBanner;\r\n }\r\n // NOTE this controls the display style property meaning external scripts are loaded even if not shown\r\n get showGlobalHeaderFooter() {\r\n return !this.compact && !this.touch;\r\n }\r\n ngOnInit() {\r\n this.globalHeaderFooterEnabled = this.options.globalHeaderFooter !== false;\r\n this.legacyIndexHtmlProcessing();\r\n this.forceHideBox = (this.box && this.burgerprofielEngine.visible) || this.options.globalHeaderFooter === false;\r\n this.layout.documentTitle$.next(this.coreState == null || this.coreState.basiscontext == null || this.coreState.basiscontext.zone == 'E'\r\n ? this.translate.instant('DOMAIN_BAR_LAYOUT.TITLE')\r\n : this.coreState.toepassing.naam);\r\n this.internalLayout.init();\r\n this.layout.init();\r\n this.layout.hidden$.subscribe((hidden) => {\r\n this.internalLayout.queueAction(() => {\r\n this.hidden = hidden;\r\n this.tryConfigureLegacyHeaderFooter();\r\n if (hidden)\r\n document.body.style.backgroundColor = 'unset';\r\n else\r\n document.body.removeAttribute('style');\r\n });\r\n });\r\n if (this.withRouting) {\r\n this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n // initial only executed once\r\n if (this.layoutInitialized) {\r\n // check if we have to initially hide the header/footer before we remove the loader\r\n this.tryConfigureLegacyHeaderFooter();\r\n // short wait time to properly load header/footer\r\n // run timeout outside angular (avoid change detection cycle)\r\n this.ngZone.runOutsideAngular(() => {\r\n setTimeout(() => {\r\n // hide app loader\r\n this.defineAppLoading(false, true);\r\n this.layoutInitialized = false;\r\n });\r\n });\r\n }\r\n // set up baselink, pathName is the url without origin and without hash, query,...\r\n const baseLink = location.pathname;\r\n this.skipLink.main = `${baseLink}#maincontent`;\r\n this.skipLink.menu = `${baseLink}#mainmenu`;\r\n // if Fragment is present, focus it (will scroll into view automatically)\r\n if (event.urlAfterRedirects.indexOf('#') > -1) {\r\n const fragment = event.urlAfterRedirects.substring(event.urlAfterRedirects.indexOf('#') + 1);\r\n const element = document.getElementById(fragment);\r\n // make sure tabindex (-1, 0) is present on the to be focussed element (otherwise it will not work);\r\n if (element)\r\n element.focus();\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n // check if we have to initially hide the header/footer before we remove the loader\r\n this.tryConfigureLegacyHeaderFooter();\r\n // hide app loader\r\n this.defineAppLoading(false, true);\r\n // set up baselink, pathName is the url without origin and without hash, query,...\r\n const baseLink = location.pathname;\r\n this.skipLink.main = `${baseLink}#maincontent`;\r\n this.skipLink.menu = `${baseLink}#mainmenu`;\r\n }\r\n this.defineFavIcon();\r\n if (this.env) {\r\n document.body.classList.add(this.env);\r\n }\r\n this.core.errorOccurred.subscribe(() => {\r\n this.toastMessage.addMessage({\r\n text: this.translate.instant('DOMAIN_BAR_CORE.GENERIC_ERROR'),\r\n type: BarToastMessageType.Error\r\n });\r\n });\r\n this.layout.sidebar$.subscribe((sidebar) => {\r\n this.internalLayout.queueAction(() => {\r\n this.sidebar = sidebar;\r\n });\r\n });\r\n this.layout.title$.subscribe((title) => {\r\n this.internalLayout.queueAction(() => {\r\n this.title = title;\r\n });\r\n });\r\n this.layout.subTitle$.subscribe((subTitle) => {\r\n this.internalLayout.queueAction(() => {\r\n this.subTitle = subTitle;\r\n });\r\n });\r\n this.layout.loading$.subscribe((loading) => {\r\n this.internalLayout.queueAction(() => {\r\n this.loading = loading;\r\n });\r\n });\r\n this.layout.mobileFriendly$.subscribe((mobileFriendly) => {\r\n this.internalLayout.queueAction(() => {\r\n this.mobileFriendly = mobileFriendly;\r\n });\r\n });\r\n this.layout.touch$.subscribe((touch) => {\r\n const bodyTouch = document.body.classList.contains('touch');\r\n if (touch && !bodyTouch)\r\n document.body.classList.add('touch');\r\n else if (!touch && bodyTouch)\r\n document.body.classList.remove('touch');\r\n this.internalLayout.queueAction(() => {\r\n this.touch = touch;\r\n this.tryConfigureLegacyHeaderFooter();\r\n });\r\n });\r\n this.layout.compact$.subscribe((compact) => {\r\n this.internalLayout.queueAction(() => {\r\n this.compact = compact;\r\n this.tryConfigureLegacyHeaderFooter();\r\n });\r\n });\r\n this.layout.appMenuItems$.subscribe((appMenuItems) => {\r\n this.internalLayout.queueAction(() => {\r\n this.appMenuItems = appMenuItems;\r\n this.processAppMenuItems();\r\n });\r\n });\r\n // internal banner (set through meldingen system)\r\n this.internalLayout.banner$$.subscribe((banner) => {\r\n this.internalBanner = banner;\r\n });\r\n // external banner (set by any consumer of the library)\r\n this.layout.banner$.subscribe((banner) => {\r\n // for the external banner we use the queing system to avoid 'value has changed after it was checked' errors\r\n // this is not needed for the internal banner\r\n this.internalLayout.queueAction(() => {\r\n this.externalBanner = banner;\r\n });\r\n });\r\n this.internalLayout.injectSection.subscribe((injection) => {\r\n injection.componentRef = this.injectSection(injection);\r\n });\r\n this.internalLayout.clearSection.subscribe((section) => {\r\n this.clearSection(section);\r\n });\r\n this.gvk.init();\r\n let firstLoad = true;\r\n this.layout.appLoading$.subscribe((value) => {\r\n // on first load don't do anything and let standard flow handle it\r\n if (!firstLoad) {\r\n this.defineAppLoading(value);\r\n }\r\n else\r\n firstLoad = false;\r\n });\r\n if (this.coreState) {\r\n this.coreState.meldingen$.subscribe((meldingen) => {\r\n // get the meldingen from the layout state\r\n this.meldingen = meldingen === null || meldingen === void 0 ? void 0 : meldingen.filter((m) => m.meldingType != BarMeldingType.Banner);\r\n });\r\n }\r\n this.initBreakpointObserver();\r\n }\r\n get mobileItems() {\r\n if (!this.mobileAppMenuItems)\r\n return [];\r\n if (this.mobileAppMenuItems.length < 2) {\r\n return [];\r\n }\r\n else if (this.mobileAppMenuItems.length < 6) {\r\n return this.mobileAppMenuItems;\r\n }\r\n else {\r\n return [\r\n ...this.mobileAppMenuItems.slice(0, 4),\r\n { content: 'Meer', icon: { srText: 'Meer', position: 'top', class: 'fas fa-ellipsis-h' }, action: (e) => (this.menuOverlayOpen = true) }\r\n ];\r\n }\r\n }\r\n get restOfMobileItems() {\r\n return this.mobileAppMenuItems.slice(4);\r\n }\r\n ngOnChanges(changes) {\r\n if (changes.appMenuItems) {\r\n this.processAppMenuItems();\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.internalLayout.injectSection.unsubscribe();\r\n this.internalLayout.clearSection.unsubscribe();\r\n if (this.breakpointObserverSubscription)\r\n this.breakpointObserverSubscription.unsubscribe();\r\n }\r\n navigateHome() {\r\n // if not home url override (disconnected modus) we use the core functionality to navigate\r\n if (this.state.homeUrlOverride == null) {\r\n this.core.navigateHome();\r\n return false;\r\n }\r\n return true;\r\n }\r\n navigateRoot(event) {\r\n this.core.navigateRoot(true, event);\r\n return false;\r\n }\r\n defineAppMenuLinkClass(item) {\r\n return item.selected ? 'menu-lv__item menu-lv__item active' : 'menu-lv__item';\r\n }\r\n exitCompact() {\r\n this.layout.compact$.next(false);\r\n }\r\n // injects a component into a section of the layout\r\n injectSection(injection) {\r\n // create a factory for the component (component maker) or use factory if one has been given\r\n // clear the content within the anchor\r\n this.clearSection(injection.section);\r\n const sectionAnchor = this.getSectionAnchor(injection.section);\r\n if (sectionAnchor) {\r\n // inject the component into the anchor\r\n const componentRef = this.getSectionAnchor(injection.section).viewContainerRef.createComponent(injection.component);\r\n componentRef.changeDetectorRef.detectChanges();\r\n return componentRef;\r\n }\r\n return undefined;\r\n }\r\n // clears a section within the layout\r\n clearSection(section) {\r\n const sectionAnchor = this.getSectionAnchor(section);\r\n if (sectionAnchor)\r\n sectionAnchor.viewContainerRef.clear();\r\n }\r\n // gets the directive for injection\r\n getSectionAnchor(section) {\r\n let anchors = [...this.barLayoutAnchors.toArray()];\r\n // NOTE null in hidden modus\r\n if (this.pageComponent) {\r\n anchors = [\r\n ...anchors,\r\n ...this.pageComponent.barLayoutPageAnchors.toArray(),\r\n ...this.pageComponent.barLayoutMenuComponent.barLayoutMenuAnchors.toArray()\r\n ];\r\n }\r\n return anchors.find((directive) => directive.section == section);\r\n }\r\n defineFavIcon() {\r\n if (this.coreState != null) {\r\n const url = this.coreState.location.baasStatic.url + BAR_LAYOUT_CONSTANTS.IMAGES.FAVICON;\r\n const element = document.getElementById('favicon');\r\n element.setAttribute('href', url);\r\n }\r\n // NOTE in case disconnected (no state) the user must just provide default fav icon in the root folder\r\n }\r\n /** @deprecated Remove this in @lvflanders BAR 16 */\r\n tryConfigureHeaderFooter() {\r\n if (this.configureHeaderFooterHalted)\r\n return true;\r\n // when touch or compact mode is enabled we hide the header/footer.\r\n const touchEnabled = this.layout.touch$.getValue() === true;\r\n const compactEnabled = this.layout.compact$.getValue() === true;\r\n const hiddenEnabled = this.layout.hidden$.getValue() === true;\r\n const flandersHeader = document.querySelector('#flanders-header + div');\r\n const flandersFooter = document.querySelector('#flanders-footer + div');\r\n if (flandersHeader && flandersHeader.innerHTML && flandersHeader.innerHTML.length) {\r\n if (touchEnabled || compactEnabled || hiddenEnabled) {\r\n flandersHeader.setAttribute('style', 'display:none');\r\n flandersFooter.setAttribute('style', 'display:none');\r\n }\r\n else {\r\n flandersHeader.setAttribute('style', 'display:inline');\r\n flandersFooter.setAttribute('style', 'display:inline');\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n /** @deprecated Remove this in @lvflanders BAR 16 */\r\n tryConfigureLegacyHeaderFooter() {\r\n // do not run this in case we are using the burgerprofiel widgets are to be shown and only allow in legacy modus\r\n if (!this.burgerprofielEngine.visible && this.classicWidgetsEngine.legacyModus && !this.tryConfigureHeaderFooter()) {\r\n if (!navigator || navigator.onLine) {\r\n // don't start an endless interval in case offline (ignore in case navigator api is not available)\r\n const flandersInterval = setInterval(() => {\r\n if (this.tryConfigureHeaderFooter())\r\n clearInterval(flandersInterval);\r\n }, 10);\r\n }\r\n else {\r\n // remove the header footer tags in case offline\r\n const flandersHeader = document.getElementById('flanders-header');\r\n if (flandersHeader)\r\n flandersHeader.parentNode.removeChild(flandersHeader);\r\n const flandersFooter = document.getElementById('flanders-footer');\r\n if (flandersFooter)\r\n flandersFooter.parentNode.removeChild(flandersFooter);\r\n this.configureHeaderFooterHalted = true;\r\n /* NOTE there is no requirement to process this when going from offline to online (internet connection)\r\n In touch modus the header and footer is never visible (SPOT). */\r\n }\r\n }\r\n }\r\n /** Defines the app loading whereby the app loader appears. */\r\n defineAppLoading(value, firstLoad = false) {\r\n const execute = () => {\r\n this.internalLayout.appLoadingPending$$.next(true);\r\n const complete = () => {\r\n this.internalLayout.appLoadingPending$$.next(false);\r\n if (firstLoad)\r\n this.internalLayout.firstAppLoading$$.next(false);\r\n };\r\n const loader = document.getElementById('app-loading');\r\n if (loader) {\r\n const appRootElements = document.getElementsByTagName('app-root');\r\n const appRoot = appRootElements.length ? appRootElements[0] : null;\r\n if (firstLoad && this.internalLayout.lastAppLoadingRequest) {\r\n console.info('Request for app loader to stay open.');\r\n // still in first load but a last request came in to have it stayting open, dont't proceed further\r\n // stop the subsequent app loading calls (last one wins)\r\n this.internalLayout.firstAppLoading$$.observers.forEach((obs) => obs.complete());\r\n complete();\r\n }\r\n else {\r\n if (!value) {\r\n loader.setAttribute('class', 'app-loading-fade-out');\r\n if (appRoot)\r\n appRoot.removeAttribute('style');\r\n // after the animation of 500ms we remove the loader as it stack above the content and is no longer needed\r\n // NOTE run outside ngzone to avoid change detection cycle\r\n this.ngZone.runOutsideAngular(() => {\r\n setTimeout(() => {\r\n loader.style.display = 'none';\r\n loader.removeAttribute('class');\r\n document.body.style.overflow = 'unset';\r\n complete();\r\n }, 500);\r\n });\r\n }\r\n else {\r\n loader.removeAttribute('class');\r\n loader.style.display = '';\r\n // hide app root because it is rendered underneath the app-loading\r\n if (appRoot)\r\n appRoot.style.display = 'none';\r\n complete();\r\n }\r\n }\r\n }\r\n else {\r\n // no loader just make sure everything is false\r\n complete();\r\n }\r\n };\r\n if (firstLoad) {\r\n // on first load we just execute the code\r\n execute();\r\n }\r\n else {\r\n // remember last requested value\r\n this.internalLayout.lastAppLoadingRequest = value;\r\n // wait for firstload to be finished\r\n const firstAppLoadingComplete$ = this.internalLayout.firstAppLoading$$.pipe(skipWhile((firstLoad) => firstLoad), take(1));\r\n // and also wait in case app loading has already been invoked and it is not done yet\r\n const appLoadingComplete$ = this.internalLayout.appLoadingPending$$.pipe(skipWhile((loading) => loading), take(1));\r\n forkJoin([firstAppLoadingComplete$, appLoadingComplete$]).subscribe(() => {\r\n execute();\r\n });\r\n }\r\n }\r\n processAppMenuItems() {\r\n this.desktopAppMenuItems = this.appMenuItems\r\n ? this.appMenuItems.filter((ami) => !ami.hidden && (ami.mobile == null || ami.mobile === false))\r\n : undefined;\r\n this.mobileAppMenuItems = this.appMenuItems\r\n ? [...this.appMenuItems.filter((ami) => !ami.hidden && (ami.mobile == null || ami.mobile === true))]\r\n : undefined;\r\n }\r\n /** @deprecated Remove this in @lvflanders BAR 16 */\r\n legacyIndexHtmlProcessing() {\r\n if (this.classicWidgetsEngine.legacyModus) {\r\n console.warn('Legacy index.html modus detected. Please use @lvflanders/util-ng version 2.7.3 or higher for major 12 or version 3.2.1 or higher for major 14.');\r\n if (this.burgerprofielEngine.visible) {\r\n // in case we use the burgerprofiel widgets we need to remove the flanders header & footer\r\n const legacyHeader = document.getElementById('flanders-header-wrapper');\r\n if (legacyHeader)\r\n legacyHeader.parentNode.removeChild(legacyHeader);\r\n const legacyFooter = document.getElementById('flanders-footer-wrapper');\r\n if (legacyFooter)\r\n legacyFooter.parentNode.removeChild(legacyFooter);\r\n }\r\n }\r\n }\r\n initBreakpointObserver() {\r\n var _a;\r\n if (!((_a = this.options.responsive) === null || _a === void 0 ? void 0 : _a.enabled))\r\n return;\r\n const mobileMaxWidth = this.options.responsive.mobileWidth || 768;\r\n const tabletMaxWidth = this.options.responsive.tabletWidth || 991;\r\n if (tabletMaxWidth <= mobileMaxWidth)\r\n console.error(`Tablet width (${tabletMaxWidth} px) cannot be smaller or equal to the mobile width (${mobileMaxWidth} px).`);\r\n const tabletMinWidth = mobileMaxWidth + 1;\r\n const mobileWidthExpression = `(max-width: ${mobileMaxWidth}px)`;\r\n const tabletWidthExpression = `(min-width: ${tabletMinWidth}px) and (max-width: ${tabletMaxWidth}px)`;\r\n this.breakpointObserverSubscription = this.breakpointObserver.observe([mobileWidthExpression, tabletWidthExpression]).subscribe((result) => {\r\n const [isMobile, isTablet] = [result.breakpoints[mobileWidthExpression], result.breakpoints[tabletWidthExpression]];\r\n const deviceType = isMobile ? BarDeviceType.Mobile : isTablet ? BarDeviceType.Tablet : BarDeviceType.Desktop;\r\n this.internalLayout.deviceType$$.next(deviceType);\r\n const touch = isMobile || isTablet;\r\n this.layout.touch$.next(touch);\r\n });\r\n }\r\n}\r\nBarLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutComponent, deps: [{ token: BarLayoutService }, { token: _BarInternalLayoutService }, { token: i1$4.BarCoreService }, { token: BarLayoutStateService }, { token: i1$4.BarCoreStateService, optional: true }, { token: i1.Router }, { token: i1$2.BarI18nService }, { token: BarLayoutInternalGvkService }, { token: BarBurgerprofielEngine }, { token: BarClassicWidgetsEngine }, { token: i0.NgZone }, { token: BarToastMessageService }, { token: i11.BreakpointObserver }, { token: BarLayoutModuleOptions }], target: i0.ɵɵFactoryTarget.Component });\r\nBarLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarLayoutComponent, selector: \"bar-layout\", inputs: { appMenuItems: \"appMenuItems\", box: \"box\", withRouting: \"withRouting\" }, viewQueries: [{ propertyName: \"pageComponent\", first: true, predicate: BarLayoutPageComponent, descendants: true }, { propertyName: \"barLayoutAnchors\", predicate: BarLayoutAnchorDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: \"\\r\\n \\r\\n Naar hoofdinhoud\\r\\n Naar hoofdnavigatiemenu\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ title }}\\r\\n \\r\\n

{{ subTitle }}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: i2.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"directive\", type: i1.RouterOutlet, selector: \"router-outlet\", outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }, { kind: \"component\", type: BarLinkComponent, selector: \"bar-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }, { kind: \"component\", type: BarLoadingComponent, selector: \"bar-loading\", inputs: [\"options\", \"blockPage\", \"isRunning\"] }, { kind: \"component\", type: BarToastMessagesComponent, selector: \"bar-toast-messages\" }, { kind: \"component\", type: BarBannerComponent, selector: \"bar-banner\", inputs: [\"banner\", \"environment\", \"closeDisabled\"], outputs: [\"hide\"] }, { kind: \"directive\", type: BarGlobalHeaderDirective, selector: \"bar-global-header\" }, { kind: \"directive\", type: BarGlobalFooterDirective, selector: \"bar-global-footer\" }, { kind: \"directive\", type: BarLayoutAnchorDirective, selector: \"[barLayoutAnchor]\", inputs: [\"barLayoutAnchor\"] }, { kind: \"component\", type: BarLayoutPageComponent, selector: \"bar-layout-page\", inputs: [\"mobileFriendly\", \"touch\", \"env\", \"withRouting\"] }, { kind: \"component\", type: BarMeldingenComponent, selector: \"bar-meldingen\", inputs: [\"meldingen\"] }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i1$2.TranslatePipe, name: \"translate\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-layout', template: \"\\r\\n \\r\\n Naar hoofdinhoud\\r\\n Naar hoofdnavigatiemenu\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ title }}\\r\\n \\r\\n

{{ subTitle }}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\" }]\r\n }], ctorParameters: function () {\r\n return [{ type: BarLayoutService }, { type: _BarInternalLayoutService }, { type: i1$4.BarCoreService }, { type: BarLayoutStateService }, { type: i1$4.BarCoreStateService, decorators: [{\r\n type: Optional\r\n }] }, { type: i1.Router }, { type: i1$2.BarI18nService }, { type: BarLayoutInternalGvkService }, { type: BarBurgerprofielEngine }, { type: BarClassicWidgetsEngine }, { type: i0.NgZone }, { type: BarToastMessageService }, { type: i11.BreakpointObserver }, { type: BarLayoutModuleOptions }];\r\n }, propDecorators: { barLayoutAnchors: [{\r\n type: ViewChildren,\r\n args: [BarLayoutAnchorDirective, {}]\r\n }], pageComponent: [{\r\n type: ViewChild,\r\n args: [BarLayoutPageComponent]\r\n }], appMenuItems: [{\r\n type: Input\r\n }], box: [{\r\n type: Input\r\n }], withRouting: [{\r\n type: Input\r\n }] } });\n\nvar _BarUnavailableLayoutComponent_instances, _BarUnavailableLayoutComponent_ngZone, _BarUnavailableLayoutComponent_state, _BarUnavailableLayoutComponent_tryHideLoader;\r\nclass BarUnavailableLayoutComponent {\r\n constructor() {\r\n _BarUnavailableLayoutComponent_instances.add(this);\r\n _BarUnavailableLayoutComponent_ngZone.set(this, inject(NgZone));\r\n _BarUnavailableLayoutComponent_state.set(this, inject(BarCoreStateService));\r\n this.showGlobalHeaderFooter = false;\r\n }\r\n ngOnInit() {\r\n __classPrivateFieldGet(this, _BarUnavailableLayoutComponent_instances, \"m\", _BarUnavailableLayoutComponent_tryHideLoader).call(this);\r\n const randomNumber = generateRandomNumber(1, 8);\r\n this.imagePath = `${__classPrivateFieldGet(this, _BarUnavailableLayoutComponent_state, \"f\").location.baasStatic.url}images/all/lv-melding-circle-0${randomNumber}.png`;\r\n this.hiResImagePath = `${__classPrivateFieldGet(this, _BarUnavailableLayoutComponent_state, \"f\").location.baasStatic.url}images/all/lv-melding-circle-0${randomNumber}@2x.png`;\r\n }\r\n ngOnChanges(changes) {\r\n if (changes.title)\r\n document.title = this.title || __classPrivateFieldGet(this, _BarUnavailableLayoutComponent_state, \"f\").toepassing.naam;\r\n }\r\n}\r\n_BarUnavailableLayoutComponent_ngZone = new WeakMap(), _BarUnavailableLayoutComponent_state = new WeakMap(), _BarUnavailableLayoutComponent_instances = new WeakSet(), _BarUnavailableLayoutComponent_tryHideLoader = function _BarUnavailableLayoutComponent_tryHideLoader() {\r\n const loader = document.getElementById('app-loading');\r\n // don't proceed if no loader or if loader already hidden\r\n if (!loader || loader.style.display === 'none')\r\n return;\r\n const appRootElements = document.getElementsByTagName('app-root');\r\n loader.setAttribute('class', 'app-loading-fade-out');\r\n const appRoot = appRootElements.length ? appRootElements[0] : null;\r\n if (appRoot)\r\n appRoot.removeAttribute('style');\r\n // after the animation of 500ms we remove the loader as it stack above the content and is no longer needed\r\n // NOTE run outside ngzone to avoid change detection cycle\r\n __classPrivateFieldGet(this, _BarUnavailableLayoutComponent_ngZone, \"f\").runOutsideAngular(() => {\r\n setTimeout(() => {\r\n loader.style.display = 'none';\r\n loader.removeAttribute('class');\r\n document.body.style.overflow = 'unset';\r\n }, 500);\r\n });\r\n};\r\nBarUnavailableLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarUnavailableLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarUnavailableLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarUnavailableLayoutComponent, isStandalone: true, selector: \"bar-unavailable-layout\", inputs: { title: \"title\", content: \"content\", showGlobalHeaderFooter: \"showGlobalHeaderFooter\" }, usesOnChanges: true, ngImport: i0, template: \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"Afbeelding\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{ title }}\\r\\n

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

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: BarGlobalFooterDirective, selector: \"bar-global-footer\" }, { kind: \"directive\", type: BarGlobalHeaderDirective, selector: \"bar-global-header\" }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarUnavailableLayoutComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-unavailable-layout', standalone: true, imports: [NgIf, BarGlobalFooterDirective, BarGlobalHeaderDirective], template: \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\\"Afbeelding\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{ title }}\\r\\n

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

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\" }]\r\n }], propDecorators: { title: [{\r\n type: Input\r\n }], content: [{\r\n type: Input\r\n }], showGlobalHeaderFooter: [{\r\n type: Input\r\n }] } });\n\nconst ERROR_RESIZE_OBSERVER = 'ResizeObserver loop limit exceeded';\r\nclass BarLayoutErrorHandlerHook {\r\n /** Invoked by the error handler. */\r\n run(args) {\r\n var _a;\r\n // NOTE we can get this error due to the header/flanders footer burgerprofiel\r\n // https://stackoverflow.com/a/50387233/2174621\r\n if (((_a = args.error) === null || _a === void 0 ? void 0 : _a.message) === ERROR_RESIZE_OBSERVER || args.error === ERROR_RESIZE_OBSERVER) {\r\n args.handled = true;\r\n // warning, still notify that this problem exists\r\n console.warn(args.error);\r\n }\r\n }\r\n}\r\nBarLayoutErrorHandlerHook.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutErrorHandlerHook, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarLayoutErrorHandlerHook.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutErrorHandlerHook });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutErrorHandlerHook, decorators: [{\r\n type: Injectable\r\n }] });\n\n/** Lifecycle hook for layout module. */\r\nclass BarLayoutInitializedHook {\r\n constructor(coreState, layout, gvk, burgerprofielEngine) {\r\n this.coreState = coreState;\r\n this.layout = layout;\r\n this.gvk = gvk;\r\n this.burgerprofielEngine = burgerprofielEngine;\r\n // NOTE must occur after baas static initialized hook\r\n this.order = 3;\r\n this._framework = true;\r\n }\r\n run() {\r\n var _a;\r\n if (((_a = this.coreState.toepassing) === null || _a === void 0 ? void 0 : _a.versie) && !this.layout.appVersion$.getValue())\r\n this.layout.appVersion$.next(this.coreState.toepassing.versie);\r\n return forkJoin([this.burgerprofielEngine.tryInitialize(), this.gvk.preInit()]).pipe(map(() => undefined));\r\n }\r\n}\r\nBarLayoutInitializedHook.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutInitializedHook, deps: [{ token: i1$4.BarCoreStateService }, { token: BarLayoutService }, { token: BarLayoutInternalGvkService }, { token: BarBurgerprofielEngine }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarLayoutInitializedHook.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutInitializedHook });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutInitializedHook, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () { return [{ type: i1$4.BarCoreStateService }, { type: BarLayoutService }, { type: BarLayoutInternalGvkService }, { type: BarBurgerprofielEngine }]; } });\n\n/** Lifecycle hook for layout module for defining the meldingen. */\r\nclass BarLayoutMeldingenHook {\r\n constructor(coreState, internalLayout, meldingenStore) {\r\n this.coreState = coreState;\r\n this.internalLayout = internalLayout;\r\n this.meldingenStore = meldingenStore;\r\n this._framework = true;\r\n }\r\n run() {\r\n this.coreState.meldingen$.subscribe((meldingen) => {\r\n const bannerMeldingen = meldingen === null || meldingen === void 0 ? void 0 : meldingen.filter((m) => m.meldingType == BarMeldingType.Banner).sort((a, b) => b.id - a.id);\r\n // NOTE for testing purposes const bannerMeldingen: Partial[] = [\r\n // {\r\n // id: 666,\r\n // bannerImage: 'boom',\r\n // bannerTitle: 'test titel',\r\n // bannerUrl: 'https://www.microsoft.com',\r\n // bannerUrlText: 'test url'\r\n // }\r\n // ];\r\n if ((bannerMeldingen === null || bannerMeldingen === void 0 ? void 0 : bannerMeldingen.length) > 0) {\r\n const bannerMelding = bannerMeldingen[0];\r\n // check whether the banner has been marked as closed (so we don't show it again)\r\n this.meldingenStore.getItem(this.getBannerClosedKey(bannerMelding.id)).then((value) => {\r\n if (!value) {\r\n const defineBannerImageSrc = (code) => {\r\n var _a, _b, _c;\r\n if (code) {\r\n const image = (_c = (_b = (_a = this.coreState.config) === null || _a === void 0 ? void 0 : _a.baasStatic) === null || _b === void 0 ? void 0 : _b.banner) === null || _c === void 0 ? void 0 : _c.images[code.toLowerCase()];\r\n if (image) {\r\n return concatUrl(this.coreState.location.baasStatic.url, '/images/all/banner', image);\r\n }\r\n else\r\n console.warn(`No image found for banner with code '${code}'`);\r\n }\r\n return null;\r\n };\r\n // map the melding to a banner\r\n const banner = {\r\n title: bannerMelding.bannerTitle,\r\n link: bannerMelding.bannerUrl\r\n ? {\r\n href: bannerMelding.bannerUrl,\r\n content: bannerMelding.bannerUrlText,\r\n target: '_blank'\r\n }\r\n : undefined,\r\n content: bannerMelding.bannerUrlText && !bannerMelding.bannerUrl ? bannerMelding.bannerUrlText : undefined,\r\n heroImageSrc: defineBannerImageSrc(bannerMelding.bannerImage),\r\n onClose: () => {\r\n this.hideBannerMelding(bannerMelding.id);\r\n }\r\n };\r\n this.internalLayout.banner$$.next(banner);\r\n }\r\n else\r\n this.internalLayout.banner$$.next(null);\r\n });\r\n }\r\n else\r\n this.internalLayout.banner$$.next(null);\r\n });\r\n }\r\n getBannerClosedKey(id) {\r\n return `bannerClosed_${id}`;\r\n }\r\n hideBannerMelding(id) {\r\n // mark as closed we don't need to wait for promise to finish\r\n this.meldingenStore.setItem(this.getBannerClosedKey(id), true);\r\n }\r\n}\r\nBarLayoutMeldingenHook.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMeldingenHook, deps: [{ token: i1$4.BarCoreStateService }, { token: _BarInternalLayoutService }, { token: BAR_MELDINGEN_CACHE }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarLayoutMeldingenHook.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMeldingenHook });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutMeldingenHook, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () {\r\n return [{ type: i1$4.BarCoreStateService }, { type: _BarInternalLayoutService }, { type: i1$5.BarCacheStore, decorators: [{\r\n type: Inject,\r\n args: [BAR_MELDINGEN_CACHE]\r\n }] }];\r\n } });\n\n// https://stackoverflow.com/a/46078299/2174621\r\nclass BarLayoutHttpParams extends BarHttpParams {\r\n constructor(\r\n /** This means that the request should block the user interface */\r\n blocking = true, \r\n /**This means this is a request that should pass the interceptor but happens in background*/\r\n backgroundRequest = false, \r\n /**This means interception should be ommited*/\r\n ommitInterceptor = false, options) {\r\n super(backgroundRequest, ommitInterceptor, options);\r\n this.blocking = blocking;\r\n }\r\n}\n\n/**\r\n * Internal http interceptor to trap requests and show the loading indication.\r\n */\r\nclass BarLayoutHttpInterceptor {\r\n constructor(options, layout) {\r\n this.options = options;\r\n this.layout = layout;\r\n // we keep a count because multiple requests could be started asynchronously\r\n this.loadingCount = 0;\r\n }\r\n intercept(req, next) {\r\n // if no interceptor behavior needed at global module level: just handle the request\r\n if (this.options.interceptor === false)\r\n return next.handle(req);\r\n // by default everything is not a background request and is blocking\r\n let backgroundRequest = false;\r\n let ommitInterceptor = false;\r\n let blocking = true;\r\n // check if we have custom bar params\r\n if (req.params instanceof BarHttpParams) {\r\n backgroundRequest = req.params.backgroundRequest;\r\n ommitInterceptor = req.params.ommitInterceptor;\r\n }\r\n if (req.params instanceof BarLayoutHttpParams) {\r\n blocking = req.params.blocking;\r\n }\r\n if (backgroundRequest || !blocking || ommitInterceptor || !this.layout.interception$.getValue()) {\r\n // ignore interceptor for:\r\n // - background requests\r\n // - it is non blocking call: through BarHttpParams\r\n // - BAR interceptors are ommitted in general\r\n // - the user has explicitely deifned the interception is disabled\r\n return next.handle(req);\r\n }\r\n else {\r\n this.layout.loading$.next(true);\r\n this.loadingCount++;\r\n // https://stackoverflow.com/a/50620910/2174621\r\n return next.handle(req).pipe(finalize(() => {\r\n // request completes, errors, or is cancelled\r\n this.handleResponse();\r\n }));\r\n }\r\n }\r\n handleResponse() {\r\n this.loadingCount--;\r\n if (this.loadingCount == 0) {\r\n this.layout.loading$.next(false);\r\n }\r\n }\r\n}\r\nBarLayoutHttpInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutHttpInterceptor, deps: [{ token: BarLayoutModuleOptions }, { token: BarLayoutService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarLayoutHttpInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutHttpInterceptor });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutHttpInterceptor, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () { return [{ type: BarLayoutModuleOptions }, { type: BarLayoutService }]; } });\n\nclass MapToIterablePipe {\r\n transform(value, args) {\r\n const result = [];\r\n if (value != null) {\r\n value.forEach((value, key) => {\r\n //console.log(key, value);\r\n result.push({ key: key, value: value });\r\n });\r\n }\r\n return result;\r\n }\r\n}\r\nMapToIterablePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: MapToIterablePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\r\nMapToIterablePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: MapToIterablePipe, name: \"mapToIterable\" });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: MapToIterablePipe, decorators: [{\r\n type: Pipe,\r\n args: [{ name: 'mapToIterable' }]\r\n }] });\n\nvar translations = {\r\n BACK: 'Terug',\r\n HOME: 'Home',\r\n MAINSCREEN: 'Hoofdscherm',\r\n TITLE: 'E-loket Landbouw en Visserij',\r\n HEADER_TITLE: 'E-loketDepartement Landbouw & Visserij',\r\n HEADER_LINK_TITLE: 'Landbouw en Visserij Vlaanderen',\r\n CLOSE_COMPACT_MODUS: 'Sluit compacte modus',\r\n MENU: {\r\n OVERLAY_OPEN_BTN: 'Open een overlappend menu en klik erbuiten om het te sluiten',\r\n CLOSE_MENU: 'Klik hier om het menu te sluiten',\r\n COLLAPSE_MENU: 'Klap het menu weg',\r\n PIN_MENU: 'Pin het menu vast',\r\n OPEN: 'Open het menu'\r\n },\r\n EDIT_PAGE: {\r\n LOADING: 'Laden...',\r\n ACTION: {\r\n SAVE: 'Opslaan',\r\n UNDO: 'Ongedaan maken',\r\n DELETE: 'Verwijderen',\r\n EDIT: 'Wijzigen'\r\n },\r\n ARE_YOU_SURE_DELETE: 'Bent u zeker dat u deze gegevens wilt verwijderen?',\r\n ARE_YOU_SURE_UNDO: 'Bent u zeker dat u eventuele wijzigingen ongedaan wilt maken?',\r\n ARE_YOU_SURE_SAVE: 'Bent u zeker dat u de wijzigingen wilt bewaren?',\r\n ARE_YOU_SURE: 'Bent u zeker?',\r\n MESSAGE: {\r\n SAVE: 'De gegevens werden bewaard',\r\n UNDO: 'De gegevens werden ongedaan gemaakt',\r\n DELETE: 'De gegevens werden verwijderd',\r\n LEAVE_PAGE: 'Opgelet, uw wijzigingen zijn niet opgeslagen: bent u zeker dat u deze pagina wilt afsluiten? Niet bewaarde gegevens zullen verloren gaan.',\r\n INVALID: 'Gelieve de schermvalidatie(s) op te lossen',\r\n INVALID_AUTOSAVE: 'Gelieve de schermvalidatie(s) op te lossen of de wijzigingen ongedaan te maken'\r\n }\r\n }\r\n};\n\n// NOTE we use a startupservice here for the translations because in disconnected modus it should work (without initialized hooks)\r\nclass BarLayoutStartupService {\r\n constructor(translate) {\r\n this.translate = translate;\r\n }\r\n load() {\r\n this.translate.addTranslations('DOMAIN_BAR_LAYOUT', translations);\r\n return Promise.resolve();\r\n }\r\n}\r\nBarLayoutStartupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutStartupService, deps: [{ token: i1$2.BarI18nService }], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarLayoutStartupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutStartupService });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutStartupService, decorators: [{\r\n type: Injectable\r\n }], ctorParameters: function () { return [{ type: i1$2.BarI18nService }]; } });\n\nfunction layoutStartupServiceFactory(startup) {\r\n // AOT-proof setup: https://github.com/angular/angular-cli/issues/5158\r\n const fn = () => startup.load();\r\n return fn;\r\n}\r\nclass BarLayoutModule {\r\n /** Import through this function in the app root module */\r\n static forRoot(config = {}) {\r\n if (!config)\r\n config = {};\r\n if (!config.data)\r\n config.data = {};\r\n if (config.gvk === undefined || config.gvk === null)\r\n config.gvk = true;\r\n return {\r\n ngModule: BarLayoutModule,\r\n // following services need to be singleton over all modules\r\n providers: [\r\n // https://stackoverflow.com/a/43293449/2174621\r\n {\r\n provide: BarLayoutModuleOptions,\r\n useValue: config\r\n },\r\n Location,\r\n {\r\n provide: LocationStrategy,\r\n useClass: PathLocationStrategy\r\n },\r\n BarLayoutStartupService,\r\n BarBurgerprofielEngine,\r\n BarClassicWidgetsEngine,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: layoutStartupServiceFactory,\r\n deps: [BarLayoutStartupService],\r\n multi: true\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: BarLayoutHttpInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: BAR_INITIALIZED,\r\n useClass: BarLayoutInitializedHook,\r\n multi: true\r\n },\r\n {\r\n provide: BAR_INITIALIZED,\r\n useClass: BarLayoutMeldingenHook,\r\n multi: true\r\n },\r\n {\r\n provide: BAR_ERROR_HANDLER,\r\n useClass: BarLayoutErrorHandlerHook,\r\n multi: true\r\n }\r\n ]\r\n };\r\n }\r\n /** Import through this function in a lazy loaded module (only in case problems occur with interceptors) */\r\n static forChild() {\r\n return {\r\n ngModule: BarLayoutModule,\r\n providers: [\r\n {\r\n // interceptor herdefinieren kan mogelijks probleem zijn in lazy loaded module\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: BarLayoutHttpInterceptor,\r\n multi: true\r\n }\r\n ]\r\n };\r\n }\r\n}\r\nBarLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\r\nBarLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutModule, declarations: [BarLayoutComponent,\r\n BarLayoutMenuListComponent,\r\n BarLayoutMenuStrikingActionsComponent,\r\n BarMeerActiesComponent,\r\n MapToIterablePipe,\r\n BarLayoutAnchorDirective,\r\n BarLayoutMenuComponent,\r\n BarLayoutMenuExternalLinksComponent,\r\n BarLayoutMenuOperationsComponent,\r\n BarLayoutPageComponent,\r\n BarLayoutAnchorDirective,\r\n BarMeldingenComponent], imports: [CommonModule,\r\n FormsModule,\r\n RouterModule,\r\n BarI18nModule,\r\n BarControlsModule,\r\n MatSidenavModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatCheckboxModule,\r\n BarGlobalHeaderDirective,\r\n BarGlobalFooterDirective], exports: [BarLayoutComponent] });\r\nBarLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutModule, imports: [CommonModule,\r\n FormsModule,\r\n RouterModule,\r\n BarI18nModule,\r\n BarControlsModule,\r\n MatSidenavModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatCheckboxModule] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarLayoutModule, decorators: [{\r\n type: NgModule,\r\n args: [{\r\n declarations: [\r\n BarLayoutComponent,\r\n BarLayoutMenuListComponent,\r\n BarLayoutMenuStrikingActionsComponent,\r\n BarMeerActiesComponent,\r\n MapToIterablePipe,\r\n BarLayoutAnchorDirective,\r\n BarLayoutMenuComponent,\r\n BarLayoutMenuExternalLinksComponent,\r\n BarLayoutMenuOperationsComponent,\r\n BarLayoutPageComponent,\r\n BarLayoutAnchorDirective,\r\n BarMeldingenComponent\r\n ],\r\n exports: [BarLayoutComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n RouterModule,\r\n BarI18nModule,\r\n BarControlsModule,\r\n MatSidenavModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatTooltipModule,\r\n MatCheckboxModule,\r\n BarGlobalHeaderDirective,\r\n BarGlobalFooterDirective\r\n ]\r\n }]\r\n }] });\n\n/** Guards for deactivating edit detail page components. */\r\nclass BarEditPageCanDeactivateGuard {\r\n canDeactivate(component) {\r\n return component.requestSave ? component.requestSave({ reason: BarEditPageSaveReason.Autosave }) : of(true);\r\n }\r\n}\r\nBarEditPageCanDeactivateGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageCanDeactivateGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\r\nBarEditPageCanDeactivateGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageCanDeactivateGuard, providedIn: 'root' });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarEditPageCanDeactivateGuard, decorators: [{\r\n type: Injectable,\r\n args: [{ providedIn: 'root' }]\r\n }] });\n\nclass BarHierarchicalListItemActionInfo {\r\n}\n\nclass BarBreadcrumb {\r\n}\n\nvar _BarBlockingMeldingComponent_state, _BarBlockingMeldingComponent_domSanitizer;\r\nconst DEFAULT_TITLE = 'Pagina onbeschikbaar';\r\nconst DEFAULT_CONTENT = 'De pagina is onbeschikbaar';\r\nclass BarBlockingMeldingComponent {\r\n constructor() {\r\n _BarBlockingMeldingComponent_state.set(this, inject(BarCoreStateService));\r\n _BarBlockingMeldingComponent_domSanitizer.set(this, inject(DomSanitizer));\r\n this.showGlobalHeaderFooter = false;\r\n this.scaling = undefined;\r\n this.title = DEFAULT_TITLE;\r\n this.content = __classPrivateFieldGet(this, _BarBlockingMeldingComponent_domSanitizer, \"f\").bypassSecurityTrustHtml(DEFAULT_CONTENT);\r\n }\r\n get isMediumScaled() {\r\n return this.scaling === 'medium';\r\n }\r\n ngOnInit() {\r\n this.homeUrl = __classPrivateFieldGet(this, _BarBlockingMeldingComponent_state, \"f\").config.homeUrl;\r\n }\r\n ngOnChanges(changes) {\r\n if (changes._title)\r\n this.title = this._title || DEFAULT_TITLE;\r\n if (changes._content)\r\n this.content = __classPrivateFieldGet(this, _BarBlockingMeldingComponent_domSanitizer, \"f\").bypassSecurityTrustHtml(this._content || DEFAULT_CONTENT);\r\n }\r\n}\r\n_BarBlockingMeldingComponent_state = new WeakMap(), _BarBlockingMeldingComponent_domSanitizer = new WeakMap();\r\nBarBlockingMeldingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarBlockingMeldingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\r\nBarBlockingMeldingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"14.3.0\", type: BarBlockingMeldingComponent, isStandalone: true, selector: \"bar-blocking-melding\", inputs: { _title: [\"title\", \"_title\"], _content: [\"content\", \"_content\"], showGlobalHeaderFooter: \"showGlobalHeaderFooter\", scaling: \"scaling\" }, host: { properties: { \"class.scaled-medium\": \"this.isMediumScaled\" } }, usesOnChanges: true, ngImport: i0, template: \"\\r\\n \\r\\n Terug naar het Startscherm\\r\\n \\r\\n\\r\\n\", dependencies: [{ kind: \"component\", type: BarUnavailableLayoutComponent, selector: \"bar-unavailable-layout\", inputs: [\"title\", \"content\", \"showGlobalHeaderFooter\"] }] });\r\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BarBlockingMeldingComponent, decorators: [{\r\n type: Component,\r\n args: [{ selector: 'bar-blocking-melding', standalone: true, imports: [BarUnavailableLayoutComponent], template: \"\\r\\n \\r\\n Terug naar het Startscherm\\r\\n \\r\\n\\r\\n\" }]\r\n }], propDecorators: { _title: [{\r\n type: Input,\r\n args: ['title']\r\n }], _content: [{\r\n type: Input,\r\n args: ['content']\r\n }], showGlobalHeaderFooter: [{\r\n type: Input\r\n }], scaling: [{\r\n type: Input\r\n }], isMediumScaled: [{\r\n type: HostBinding,\r\n args: ['class.scaled-medium']\r\n }] } });\n\n/*\r\n * Public API Surface of @lvflanders/bar-ng-ui\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { BAR_BANNER_IMAGE, BAR_DEFAULT_DATE_TIME_FORMATS, BarActionButton, BarActionButtonComponent, BarActionButtonType, BarAppMenuItem, BarAutoNumericDirective, BarBannerComponent, BarBlockingMeldingComponent, BarBreadcrumb, BarBreadcrumbComponent, BarClickOutsideDirective, BarConfirmOptions, BarConfirmService, BarControlsModule, BarDateFnsDateTimeAdapter, BarDateTimeIntl, BarDateTimePickerComponent, BarDeviceType, BarEditPageBaseComponent, BarEditPageCanDeactivateGuard, BarEditPageComponent, BarEditPageLoadArgs, BarEditPageLoadReason, BarEditPageLoaderComponent, BarEditPageSaveArgs, BarEditPageSaveOptions, BarEditPageSaveReason, BarEditPageService, BarExternalLinkGroup, BarHierarchicalActionConfig, BarHierarchicalListComponent, BarHierarchicalListItemActionInfo, BarHierarchicalListItemMoveConfig, BarIcon, BarLayoutComponent, BarLayoutHttpParams, BarLayoutModule, BarLayoutSection, BarLayoutService, BarLink, BarLinkComponent, BarLoadingComponent, BarLoadingDirective, BarLoadingDuration, BarLoadingOptions, BarMeldingComponent, BarMenuButtonComponent, BarMenuItem, BarMenuItemTag, BarMenuItemTagType, BarNgMatLabelDirective, BarOwlDateTimeIntl, BarRemark, BarRemarkComponent, BarRemarkCounters, BarRemarkListComponent, BarRemarkOverviewComponent, BarRemarkService, BarRemarkSummaryComponent, BarRemarkType, BarResetLayoutOptions, BarSearchScreenComponent, BarSelectListComponent, BarTile, BarTileComponent, BarTileGroupComponent, BarTileListComponent, BarTileSize, BarTileStyle, BarToastMessage, BarToastMessageComponent, BarToastMessageService, BarToastMessageType, BarToastMessagesComponent, BarUnavailableLayoutComponent, BarViewContainerRefDirective, BarBurgerprofielEngine as _BarBurgerprofielEngine, _BarInternalLayoutService, controlsStartupServiceFactory, dateTimeLocaleFactory, layoutStartupServiceFactory };\n//# sourceMappingURL=lvflanders-bar-ng-ui.mjs.map\n","import * as lvFlandersBarNgUi from '../dist/@lvflanders/bar-ng-ui';\r\n\r\n// global glue variable for externals\r\nif (window['lvflanders'] == null) window['lvflanders'] = {};\r\nif (window['lvflanders'].bar == null) window['lvflanders'].bar = {};\r\nif (window['lvflanders'].bar.ng == null) window['lvflanders'].bar.ng = {};\r\n\r\nwindow['lvflanders'].bar.ng.ui = lvFlandersBarNgUi;\r\n\r\nexport { lvFlandersBarNgUi };"],"names":["leafPrototypes","getProto","factory","modules","installedModules","moduleId","exports","module","id","loaded","call","m","c","p","obj","_postscribe","_postscribe2","__esModule","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","postscribe","_writeStream","_writeStream2","utils","newObj","_interopRequireWildcard","doNothing","OPTIONS","afterAsync","afterDequeue","afterStreamStart","afterWrite","autoFix","beforeEnqueue","beforeWriteToken","tok","beforeWrite","str","done","error","e","Error","msg","releaseAsync","nextId","queue","active","nextStream","args","shift","options","last","stream","runStream","apply","undefined","el","html","name","streams","doc","ownerDocument","stash","close","open","write","writeln","_write","_len","Array","_key","join","_len2","_key2","oldOnError","win","onerror","url","line","isFunction","defaults","test","window","document","getElementById","substr","jquery","cancel","abort","push","WriteStream","_prescribe","_prescribe2","BASEATTR","PROXY_STYLE","PROXY_SCRIPT","getData","attr","val","getAttribute","existy","String","setData","value","setAttribute","removeAttribute","root","instance","Constructor","TypeError","_classCallCheck","this","defaultView","parentWindow","parser","actuals","proxyHistory","proxyRoot","createElement","nodeName","scriptStack","writeQueue","_writeQueue","deferredRemote","arg","_callFunction","_writeImpl","fn","type","toString","_onScriptStart","_onScriptDone","append","script","style","tokens","readToken","isScript","isStyle","_writeStaticTokens","_handleScriptToken","_handleStyleToken","chunk","_buildChunk","actual","proxy","innerHTML","_walkChunk","raw","len","tokenRaw","attrs","tagName","replace","unary","node","stack","isElement","nodeType","parentIsProxyOf","parentNode","appendChild","unshift","toArray","childNodes","_this","remainder","clear","src","SRC","_writeScriptToken","TYPE","_writeStyleToken","_buildStyle","_insertCursor","content","styleSheet","sheet","cssText","createTextNode","eachKey","which","cursor","replaceChild","outerWrites","_buildScript","asyncRelease","_shouldRelease","_scriptLoadHandler","text","cleanup","onload","onreadystatechange","success","failure","err","reattachEventListener","evt","handler","_onload","slice","_onerror","readyState","hasAttribute","__webpack_require__","_HtmlParser","_HtmlParser2","supports","streamReaders","_fixedReadTokenFactory","_fixedReadTokenFactory2","_utils","detect","comment","endTag","atomicTag","startTag","chars","HtmlParser","fix","fixedTokenOptions","_readToken","_readTokenImpl","_peekToken","_peekTokenImpl","prepend","token","peekToken","readTokens","handlers","rest","tokenToString","escapeAttributes","escapedAttrs","escapeQuotes","browserHasFlaw","tagSoup","selfClose","work","_typeof","Symbol","iterator","constructor","index","indexOf","_tokens","CommentToken","CharsToken","start","match","RegExp","AtomicTagToken","booleanAttrs","REGEXES","EndTagToken","fillAttr","_ret","v","StartTagToken","TagToken","Token","html5Unary","formatTag","defaultValue","_","prefix","readTokenImpl","lastTagNameEq","toUpperCase","containsTagName","newStack","prepareNextToken","selfCloseFix","CLOSESELF","closeLast","tagSoupFix","pop","tmp","correct","EMPTY","thing","each","arr","isTag","tag","toLowerCase","x","_defaults","ret","array","__webpack_module_cache__","cachedModule","__webpack_modules__","getPrototypeOf","t","mode","then","ns","create","r","def","current","getOwnPropertyNames","forEach","d","definition","o","defineProperty","enumerable","get","prop","toStringTag","ng","common","core","forms","material","badge","button","card","dialog","divider","formField","icon","input","menu","progressBar","toolbar","tooltip","router","locale","lvflanders","bar","i18n","shared","platformBrowser","rxjs","operators","sidenav","cdk","layout","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","__classPrivateFieldGet","receiver","state","kind","f","has","SuppressedError","http","checkbox","BarActionButtonType","BarActionButtonComponent","zeroWhiteLineIfHidden","showIconOnly","item","resolveValue","iconOnly","routerLink","disabled","resolveValue$","title","srText","iconClass","class","iconStyle","counter","hidden","Default","buttonClicked","event","action","navigate","routerUrl","navigateByUrl","href","openUrl","minVersion","version","ngImport","deps","selector","inputs","template","dependencies","exportAs","decorators","Component","ctorParameters","propDecorators","Input","BAR_BANNER_IMAGE","BIET","BOOM","KOE","BarControlsHelper","iterateObject","keys","providedIn","Injectable","BarClickableElementBehavior","domSanitizer","linkClick","clickExecuted","actionResult","ctrlKey","sanitize","SecurityContext","preventDefault","linkClickWithRouterCommands","stopPropagation","BarLinkComponent","controlsHelper","clickableElementBehavior","clicked","EventEmitter","tooltipClass","ngClass","linkClass","ommitCssClass","cssClass","iconExists","iconHasPosition","_a","position","iconHasLeftPosition","iconHasRightPosition","iconHasTopPosition","ngAfterViewInit","handleElement","element","nativeElement","emit","linkClickWithRouterLink","executeHref","outputs","viewQueries","propertyName","first","predicate","descendants","ViewChild","Output","BarBannerComponent","hide","visible","ngOnChanges","changes","_b","banner","heroImageSrc","imageSrc","heroImage","heroImageIsDefined","doHide","onClose","environment","closeDisabled","usesOnChanges","BarBreadcrumbComponent","breadcrumbLabelField","navigateCrumb","crumb","crumbIndex","navigateRoot","items","breadcrumbs","BarConfirmOptions","refutable","BarConfirmComponent","translate","data","hasTitle","message","confirmText","refuteText","closeable","buttonVariant","MAT_DIALOG_DATA","Inject","BarDateTimePickerComponent","controlContainer","ngZone","i18nService","pickerType","range","rangeSelectMode","readonly","required","includeSeconds","ensureValidInput","_pickerType","_selectMode","selectionTitle","instant","formControl","formControlName","control","defineSelectMode","onBlur","registerOnTouched","formControlDirective","valueAccessor","registerOnChange","writeValue","runOutsideAngular","setTimeout","run","setDisabledState","isDisabled","focus","BarEditPageLoadReason","BarEditPageSaveReason","BarToastMessageType","labelForId","label","min","max","startAt","dateTimeFilter","providers","provide","NG_VALUE_ACCESSOR","useExisting","multi","FormControlDirective","static","BarEditPageLoadArgs","BarEditPageSaveArgs","preventLoad","BarEditPageSaveOptions","reason","Custom","suppressSaveMessage","exitEdit","BarConfirmService","handleConfirmation","confirm","pipe","mergeMap","of","refute","config","height","width","disableClose","afterClosed","BarLayoutModuleOptions","BarLayoutStateService","injector","coreState","homeUrlOverride","homeUrl","homeAction","getUrlFromActionDef","rootUrl","_c","rootAction","location","spa","secLevel","getSecLevelString","toepassing","securityLevel","BarCoreService","BarSecurityLevel","routerCommands","optional","Optional","BAR_LAYOUT_CONSTANTS","FAVICON","IMAGES_PREFIX","MENU_STATE","PAGE_STATE","BarLayoutInternalGvkService","gvkManager","moduleOptions","barMenuStateChanged","compactChanged","gvkSettings","appCode","compatibilityMode","BarGvkCompatibilityMode","allowPersistPageState","_disabled","basiscontext","gvk","preInit","Observable","subscriber","complete","checkDisabled","menuState$","from","getItem","pageState$","forkJoin","subscribe","menuState","pageState","barMenuState","barPageState","init","documentElement","persistMenuState","_gvk_timeStamp","Date","getTime","_gvk_setName","OTHER","setItem","persistPageState","_BarInternalLayoutService","injectSection","clearSection","banner$$","BehaviorSubject","internalContentActions$$","appLoadingPending$$","firstAppLoading$$","deviceType$$","actionPipeline","smallDevice","innerWidth","backAction","back","ngOnDestroy","queueAction","isDevMode","timeoutResult","ac","setMenuState","setInternalContentActions","internalContentActions","internalMainAction","navigateHome","internalContentActions$","asObservable","BarLayoutSectionInjection","BarLoadingOptions","enabled","overlay","delay","BarResetLayoutOptions","BarLayoutService","hidden$","helpLink$","title$","subTitle$","mainHeader$","documentTitle$","sidebar$","banner$","appMenuItems$","menuItems$","menuItemsAutoCollapse$","externalLinkGroups$","strikingActions$","operations$","submitActions$","moreActions$","contentActions$","mainAction$","loading$","loadingOptions$","default","appLoading$","interception$","compact$","touch$","mobileFriendly$","appVersion$","preventMenuStateEvents","deviceType$","internalLayout","menuAction","translationText","getValue","compact","headerWrapper","display","footerWrapper","combineLatest","contentActions","mainHeader","addPaddingToHeader","padding","mainWrapper","getElementsByClassName","pageHeader","getElementsByTagName","paddingRight","contentActionsTopElements","contentActionsWidth","getBoundingClientRect","reset","clearSidebar","clearStrikingActions","clearOperations","clearExternalLinks","clearSubmitActions","clearContentActions","clearMoreActions","clearTitle","clearSubTitle","clearMenu","clearAppMenu","clearBanner","clearHelp","clearInterception","clearMainHeader","component","section","prepInjection","injection","componentRef","BarToastMessage","generateUuid","Warning","persistent","componentParameters","duration","textLength","Math","floor","BarToastMessageService","messages$","messageRemovalBucket","messages","addMessage","toastMessage","foundDuplicate","now","find","time","timer","removeMessage","messageIndex","findIndex","splice","deleteFromBucket","removeMessages","clearTimeout","BarEditPageBaseComponent","deletable","forceDeletable","saveable","editable","autoGenerateSaveModel","confirmUndo","confirmSave","showUndoMessage","showDeleteMessage","showSaveMessage","forceValid","forceEditActionVisible","enforceValidOnPristine","beforeUnloadDisabled","showSaveMessageOnInvalid","savePending$","_submitted","_editTooltip","firstLoad","disabledEditing","_route","ActivatedRoute","_layout","_internalLayout","_translate","BarI18nService","_confirm","_toastMessage","formElement","_formElement","ngSubmitSubscription","unsubscribe","ngSubmit","save","formRef","_formRef","btn","className","tabIndex","innerText","dirty","formWrapper","valid","pristine","invalid","showValidations","submitted","classList","add","remove","_onSubmitted","applyEnabledDisabledLogic","deleteTooltip","_deleteTooltip","deleteContent","saveTooltip","_saveTooltip","saveContent","editTooltip","editContent","undoTooltip","_undoTooltip","undoContent","deleteMessage","_deleteMessage","saveMessage","_saveMessage","undoMessage","_undoMessage","confirmDeleteMessage","_confirmDeleteMessage","confirmUndoMessage","_confirmUndoMessage","confirmSaveMessage","_confirmSaveMessage","form","ngOnInit","defineLayout","defineBeforeUnload","onInit","model","load$","load","Load","clearLayout","onDestroy","confirmOptions","confirmDeleteOptions","onDelete","deleted","Success","requestSave","completeSave","skipWhile","pending","take","onSaving","savingResult","processSaveOptions","Autosave","performSave","getMutedModel","save$","onSave","catchError","throwError","loadModel","markPristine","Save","tryEmitSaveMessageOnInvalid","confirmSaveOptions","markDirty","undo","undoLogic","deepClone","originalModel","doLoad","Undo","Info","undo$","onUndo","confirmUndoOptions","onLoad","onEdit","clonedModel","callOnLoad","disable","enable","onbeforeunload","returnValue","delete","markAsDirty","markAsPristine","Directive","BarEditPageService","__load$","Subject","__requestSave$","__undo$","__delete$","_load$","_requestSave$","_undo$","_delete$","BarRemarkType","BarLoadingDuration","BarTileSize","BarRemarkService","mapping","blocking","color","important","info","getIcon","getIconColor","BarRemarkComponent","remarkService","elementRef","remark","typeInternal","attributes","Blocking","Important","BarRemarkListComponent","autoSort","remarks","remarkList","sort","a","b","queries","remarkComponents","ContentChildren","forwardRef","BarEditPageLoaderComponent","BarEditPageWrapperComponent","editPageService","super","destroyed$","preventSubmittedEvents","showLoading","saveRequested","saveCompleted","deleteRequested","undoRequested","submittedChange","editRequested","hookInEditPageService","_data","editForm","saveSuccess$","takeUntil","saveArgs","saveFailed$","deleteSuccess$","deleteArgs","deleteFailed$","model$","filter","closed","setSubmitted","loading","beforeSaving","undoing","saving","deleting","outcome","usesInheritance","BarEditPageComponent","applyChanges","wrapper","requestDelete","requestUndo","propName","change","currentValue","BarHierarchicalActionConfig","edit","move","view","BarHierarchicalListItemMoveConfig","BarHierarchicalListItemComponent","actionConfig","itemLabelField","itemIdField","itemTooltipField","moveEnabled","itemClickActionType","itemClickHideAction","itemRendered","itemCompactMode","enableItemClick","globalActive","itemTypeNotSet","itemTypeActive","optionMenuEnabled","actionEnabled","ngDoCheck","hierarchicalListItem","offsetWidth","doAction","actionType","itemClickActionTypeActive","moveConfig","BarHierarchicalListComponent","confirmService","listWidth","filterable","filterText","FormControl","_activeList","activeList","tryApplyFilter","parent","valueChanges","debounce","getActiveParentList","path","oldParent","oldIndexWithinParent","children","moveItem","newParent","newIndexWithinParent","parentChanged","hasParentChanged","moveCancel","clearFilter","setValue","filteredList","checkFilterMatchRecursive","BarLoadingComponent","blockPage","fromDirective","isDelayedRunning","isRunning","currentTimeout","cancelTimeout","BarMeldingComponent","sanitizer","melding","sanitizedMeldingContent","bypassSecurityTrustHtml","getIconClass","BarMeldingType","getTypeTitle","getStatusForMeldingType","statusTypeMapping","BELANGRIJK","OPGELOST","INFORMATIEF","BarMenuButtonComponent","actionButton","buttonClick","MatMenuTrigger","trigger","menuTrigger","BarRemarkCounters","BarRemarkSummaryComponent","counters","reduce","totaal","getTranslation","translationKey","count","BarRemarkOverviewComponent","BarSearchScreenComponent","showToolbar","hasExtendedCriteria","hasInfoSection","fixedInfoSection","searchDisabled","searched","showExtendedCriteria","internalForm","manualSearch","autoScroll","searchText","resetText","globalEnterTriggersSearch","showExtendedCriteriaChange","search","extendedCriteriaToggleText","onKeyDown","doSearch","searchResults","scrollIntoView","doReset","searchForm","toggleExtendedCriteria","actions","headerSearchCriteria","headerSearchResults","host","listeners","HostListener","BarSelectListComponent","checkboxMultiSelection","clearable","closeOnSelect","searchable","ngSelect","searchInput","multiple","maxSelectedItems","grouping","BarTileComponent","favorite","cancelClick","aditionalTileClasses","tile","size","Normal","truncateTitle","contentTooltip","defaultContentTooltipEnabled","untouchedClass","isCustomIcon","includes","body","bodyTooltip","defaultBodyTooltipEnabled","truncateBody","moreInformationLink","isFavorite","hideFavoriteIndicator","emitFavorite","tileClicked","params","queryParams","fragment","linkClicked","BarTileGroupComponent","ngAfterContentInit","contentTiles","favoriteClicked","tiles","BarTileListComponent","group","contentGroups","computeGroups","tileGroups","currentGroup","initiator","BarViewContainerRefDirective","viewContainerRef","BarToastMessageComponent","toastService","progress","typeClass","typeIcon","warning","progressBarId","barViewContainerRef","createComponent","setIntervalForMessage","interval","clearInterval","stepInterval","progressFillElement","querySelector","transitionDuration","transitionTimingFunction","setInterval","BarToastMessagesComponent","parentElement","onFullscreenChange","fullscreenElement","BarAutoNumericDirective","handleChangeKeyup","handleChange","handleChangeBlur","fnOnTouched","handlePaste","ignoreInvalidPaste","_onPasteFunc","barAutoNumeric","onInvalidPaste","self","getNumber","set","newVal","AutoNumeric","origPreparePastedText","_preparePastedText","decimalCharacter","decimalCharacterAlternative","digitGroupSeparator","align","removeEventListener","update","applyDisabled","fnOnChange","checkValueIsEmpty","number","currencySymbol","BarClickOutsideDirective","platformId","clickOutsideEnabled","attachOutsideOnClick","delayClickOutsideInit","emitOnBlur","exclude","excludeBeforeClick","clickOutsideEvents","clickOutside","nodesExcluded","events","initOnClickBody","bind","onClickBody","onWindowBlur","isPlatformBrowser","removeClickOutsideListener","removeAttachOutsideOnClickListener","removeWindowBlurListener","split","map","trim","excludeCheck","initAttachOutsideOnClickListener","initWindowBlurListener","initClickOutsideListener","nodes","querySelectorAll","console","ev","contains","shouldExclude","excludedNode","addEventListener","PLATFORM_ID","BarLoadingDirective","templateRef","viewRef","barLoading","barLoadingOptions","createEmbeddedView","previousSibling","nextSibling","BarNgMatLabelDirective","elRef","heightToSet","clientHeight","requiredMarker","warn","BAR_DEFAULT_DATE_TIME_FORMATS","parseInput","fullPickerInput","datePickerInput","timePickerInput","monthYearLabel","dateA11yLabel","monthYearA11yLabel","getOwlDateFnsDateTimeAdapterOptionsInstance","getInstance","OWL_DATEFNS_DATE_TIME_ADAPTER_OPTIONS","InjectionToken","nl","weekStartsOn","valueFunction","valuesArray","BarDateFnsDateTimeAdapter","DateTimeAdapter","owlDateTimeLocale","setLocale","dateFnsLocaleData","localize","_localeData","longMonths","month","shortMonths","narrowMonths","longDaysOfWeek","day","shortDaysOfWeek","narrowDaysOfWeek","dates","getDate","createDate","getYear","date","clone","getMonth","getDay","getHours","getMinutes","getSeconds","getNumDaysInMonth","getDaysInMonth","differenceInCalendarDays","dateLeft","dateRight","getYearName","format","getMonthNames","getDayOfWeekNames","getDateNames","toIso8601","toISOString","isEqual","isSameDay","isValid","NaN","isDateInstance","isDate","addCalendarYears","amount","addYears","addCalendarMonths","addMonths","addCalendarDays","addDays","setHours","setMinutes","setSeconds","year","hours","minutes","seconds","createDateWithOverflow","parseISO","toDate","displayFormat","parse","parseFormat","isArray","JSON","stringify","parsedDate","deserialize","setFullYear","OWL_DATE_TIME_LOCALE","BarOwlDateTimeIntl","upSecondLabel","downSecondLabel","upMinuteLabel","downMinuteLabel","upHourLabel","downHourLabel","prevMonthLabel","nextMonthLabel","prevYearLabel","nextYearLabel","prevMultiYearLabel","nextMultiYearLabel","switchToMonthViewLabel","switchToMultiYearViewLabel","cancelBtnLabel","setBtnLabel","rangeFromLabel","rangeToLabel","hour12AMLabel","hour12PMLabel","BarDateTimeIntl","OwlDateTimeIntl","translations$1","LOADING","TILE","CANCEL_FAVORITE","MARK_FAVORITE","REMOVE_TILE","REMARKS","REMARK_BLOCKING_1","REMARK_BLOCKING_N","REMARK_IMPORTANT_1","REMARK_IMPORTANT_N","REMARK_INFO_1","REMARK_INFO_N","NO_REMARKS","DETAILS","REQUEST","TOTAL_SUMMARY","CONFIRM","OK","CANCEL","CLOSE","SEARCH_SCREEN","SEARCH","SEARCH_CRITERIA","SEARCH_CRITERIA_RESET","SEARCH_RESULT","SEARCH_FIELDS_SHOW","SEARCH_FIELDS_HIDE","DATE_TIME_PICKER","SELECTION_TITLE","DATE_TIME","DATE","TIME","SELECT_LIST","SELECT","SAVE","NEW","VIEW","ADD","EDIT","DELETE","REMOVE","REFRESH","FILTER","SORT","OVERVIEW","SEARCH_RESULTS","BarControlsStartupService","addTranslations","controlsStartupServiceFactory","startup","dateTimeLocaleFactory","publicComponents","internalComponents","owlDateTimeProviders","useClass","useFactory","LOCALE_ID","OWL_DATE_TIME_FORMATS","useValue","BarControlsModule","forRoot","ngModule","APP_INITIALIZER","forChild","declarations","imports","CommonModule","RouterModule","FormsModule","ReactiveFormsModule","BarI18nModule","MatCardModule","MatProgressBarModule","MatIconModule","MatDialogModule","MatDividerModule","MatButtonModule","MatTooltipModule","MatBadgeModule","MatToolbarModule","MatMenuModule","MatRippleModule","MatFormFieldModule","MatInputModule","NgSelectModule","OwlDateTimeModule","OwlNativeDateTimeModule","NgModule","BarLink","BarTile","BarTileStyle","BarMenuItemTagType","BarLayoutSection","BarDeviceType","BarRemark","BarExternalLinkGroup","BarActionButton","BarIcon","BarMenuItem","BarMenuItemTag","BarAppMenuItem","BarLayoutAnchorDirective","barLayoutAnchor","defineSection","Utilities","MenuActionBarTopLeft","MenuActionBarTopRight","ActionBarTopLeft","ActionBarTopRight","MenuTop","ContentActionBarTopRight","ContentActionBarBottomRight","MenuBottom","MenuActionBarBottomLeft","MenuActionBarBottomRight","ActionBarBottomLeft","ActionBarBottomRight","GlobalHeaderRight","CLASS_SELECTED_ITEM","BarLayoutMenuListComponent","menuLevel","parentExpanded","menuItemClicked","getItemProp","menuItemToggleClicked","scrollTo","tempItem","expanded","mapItem","mapIndex","property","bypassSecurityTrustUrl","getPath","getLinkClasses","menuLevelClasses","activeItemClasses","link","createUrlTree","tempUrl","parseUrl","serializedUrl","serializeUrl","currentUrl","pathMatch","selected","getTagClasses","classes","hasLink","hasDefaultLink","BarLayoutMenuStrikingActionsComponent","Stroked","transformActions","BarLayoutMenuExternalLinksComponent","isExternal","BarLayoutMenuOperationsComponent","BarLayoutMenuComponent","mainAction","menuToggleMetaIcon","stateMapping","menuToggleMetaText","menuSubscriber","routeSubscriber","menuToggleClicked","pinned","mobileFriendly","setExpandedStateForActiveItems","findMenuItemRecursive","autoCollapse","NavigationEnd","collapsedMenus","closeInactiveSubmenus","code","stringifiedRouterLink","hasActiveSubChild","hasSubItemWithActiveRouterLink","pathname","subItem","menuItems","menuItem","urlTree","isActive","subMenuItem","barLayoutMenuAnchors","ViewChildren","BarMeerActiesComponent","moreActionsButton","top","BarLayoutPageComponent","withRouting","sidenavMode","stateModeMapping","menuStateExact","internalContentActionsSubscription","submitActionsSubscription","submitActions","contentActionsSubscription","moreActionsSubscription","moreActions","sidebarSubscription","sidebar","menuStateSubscription","mainActionSubscription","appVersion","mainHeaderSubscription","handleBackdropEvent","touch","env","barLayoutPageAnchors","barLayoutMenuComponent","BarImpersonationWidgetComponent","auth","fullUsername","basiscontextChanged","basisContext","logOff","BarBurgerprofielEngine","resolver","sessionInterval","headerFooterActive","headerFooterActiveAppCodes","vl","baasStatic","burgerprofiel","tryInitialize","doInit","widget","client","capture","getPluginTypeId","getExtension","session","configureSession","tryRegisterSessionExtend","customProcessing","on","logoutRequest","tryPerformLogout","cdnScripts","cdnRootUrl","cdnScript","checkUrlAbsolute","concatUrl","toInject","tryMountHeader","widgetRootUrl","headerWidgetId","endsWith","bootstrap","setMountElement","mount","catch","tryMountFooter","footerWidgetId","acknowledge","getRequest","getReason","accept","activityEventHandler","extend","useActivityTracking","eventNames","sessionExtendTimeoutSeconds","websiteHasAuthenticatedSession","authenticated","configure","endpoints","loginUrl","loginRedirectUrl","logoutUrl","impersonationOverrideEnabled","impersonate","resolveComponentFactory","changeDetectorRef","detectChanges","DEFAULT_WIDGETS_CONFIG","widgetUrl","BarClassicWidgetsEngine","legacyModus","classicWidgets","navigator","onLine","BarGlobalHeaderDirective","burgerprofielEngine","classicWidgetsEngine","isStandalone","standalone","BarGlobalFooterDirective","READ_MELDINGEN_KEY","BarMeldingenComponent","meldingen","initialized","meldingenCollapsed","cachedMeldingen","getCachedMeldingIds","meldingenToKeep","cachedMeldingId","mld","saveMeldingenToKeep","readMeldingen","unreadMeldingen","toggleMessage","numberOfBelangrijk","meldingType","numberOfOpgelost","numberOfInformatief","toggleIconClass","toggleMeldingen","openMeldingen","closeMeldingen","strCachedMeldingen","localStorage","BarLayoutComponent","breakpointObserver","box","skipLink","main","globalHeaderFooterEnabled","menuOverlayOpen","layoutInitialized","configureHeaderFooterHalted","devOrTest","externalBanner","internalBanner","showGlobalHeaderFooter","globalHeaderFooter","legacyIndexHtmlProcessing","forceHideBox","zone","naam","tryConfigureLegacyHeaderFooter","backgroundColor","defineAppLoading","baseLink","urlAfterRedirects","substring","defineFavIcon","errorOccurred","subTitle","bodyTouch","appMenuItems","processAppMenuItems","meldingen$","initBreakpointObserver","mobileItems","mobileAppMenuItems","restOfMobileItems","breakpointObserverSubscription","defineAppMenuLinkClass","exitCompact","getSectionAnchor","sectionAnchor","anchors","barLayoutAnchors","pageComponent","directive","tryConfigureHeaderFooter","touchEnabled","compactEnabled","hiddenEnabled","flandersHeader","flandersFooter","flandersInterval","removeChild","execute","loader","appRootElements","appRoot","lastAppLoadingRequest","observers","obs","overflow","firstAppLoadingComplete$","appLoadingComplete$","desktopAppMenuItems","ami","mobile","legacyHeader","legacyFooter","responsive","mobileMaxWidth","mobileWidth","tabletMaxWidth","tabletWidth","mobileWidthExpression","tabletWidthExpression","observe","isMobile","isTablet","breakpoints","deviceType","Mobile","Tablet","Desktop","_BarUnavailableLayoutComponent_instances","_BarUnavailableLayoutComponent_ngZone","_BarUnavailableLayoutComponent_state","_BarUnavailableLayoutComponent_tryHideLoader","BarUnavailableLayoutComponent","inject","NgZone","BarCoreStateService","randomNumber","generateRandomNumber","imagePath","hiResImagePath","WeakMap","WeakSet","NgIf","ERROR_RESIZE_OBSERVER","BarLayoutErrorHandlerHook","handled","BarLayoutInitializedHook","order","_framework","versie","BarLayoutMeldingenHook","meldingenStore","bannerMeldingen","bannerMelding","getBannerClosedKey","defineBannerImageSrc","image","images","bannerTitle","bannerUrl","bannerUrlText","bannerImage","hideBannerMelding","BAR_MELDINGEN_CACHE","BarLayoutHttpParams","BarHttpParams","backgroundRequest","ommitInterceptor","BarLayoutHttpInterceptor","loadingCount","intercept","req","interceptor","handle","finalize","handleResponse","MapToIterablePipe","transform","Pipe","_BarBlockingMeldingComponent_state","_BarBlockingMeldingComponent_domSanitizer","translations","BACK","HOME","MAINSCREEN","TITLE","HEADER_TITLE","HEADER_LINK_TITLE","CLOSE_COMPACT_MODUS","MENU","OVERLAY_OPEN_BTN","CLOSE_MENU","COLLAPSE_MENU","PIN_MENU","OPEN","EDIT_PAGE","ACTION","UNDO","ARE_YOU_SURE_DELETE","ARE_YOU_SURE_UNDO","ARE_YOU_SURE_SAVE","ARE_YOU_SURE","MESSAGE","LEAVE_PAGE","INVALID","INVALID_AUTOSAVE","BarLayoutStartupService","layoutStartupServiceFactory","BarLayoutModule","Location","LocationStrategy","PathLocationStrategy","HTTP_INTERCEPTORS","BAR_INITIALIZED","BAR_ERROR_HANDLER","MatSidenavModule","MatCheckboxModule","BarEditPageCanDeactivateGuard","canDeactivate","BarHierarchicalListItemActionInfo","BarBreadcrumb","DEFAULT_TITLE","DEFAULT_CONTENT","BarBlockingMeldingComponent","DomSanitizer","scaling","isMediumScaled","_title","_content","properties","HostBinding","ui"],"sourceRoot":""}