{"version":3,"file":"scripts/@lvflanders/bar-ng-ui/lvflanders-bar-ng-ui-18.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.core\"","webpack://ng-cli/external var \"ng.material.core\"","webpack://ng-cli/external var \"ng.material.dialog\"","webpack://ng-cli/external var \"ng.material.formField\"","webpack://ng-cli/external var \"ng.material.menu\"","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.shared\"","webpack://ng-cli/external var \"window[\\\"date-fns\\\"]\"","webpack://ng-cli/external var \"ng.common\"","webpack://ng-cli/external var \"ng.material.tooltip\"","webpack://ng-cli/external var \"ng.router\"","webpack://ng-cli/external var \"lvflanders.bar.ng.core\"","webpack://ng-cli/external var \"ng.platformBrowser\"","webpack://ng-cli/external var \"ng.material.icon\"","webpack://ng-cli/external var \"ng.material.badge\"","webpack://ng-cli/external var \"ng.material.button\"","webpack://ng-cli/external var \"rxjs\"","webpack://ng-cli/external var \"rxjs.operators\"","webpack://ng-cli/external var \"ng.forms\"","webpack://ng-cli/external var \"ng.core.rxjsInterop\"","webpack://ng-cli/external var \"ng.material.input\"","webpack://ng-cli/external var \"ng.material.toolbar\"","webpack://ng-cli/external var \"ng.material.card\"","webpack://ng-cli/external var \"ng.material.progressBar\"","webpack://ng-cli/external var \"ng.material.sidenav\"","webpack://ng-cli/external var \"ng.cdk.layout\"","webpack://ng-cli/external var \"ng.common.http\"","webpack://ng-cli/external var \"ng.animations.browser\"","webpack://ng-cli/./node_modules/@angular/platform-browser/fesm2022/animations.mjs","webpack://ng-cli/external var \"ng.material.radio\"","webpack://ng-cli/./dist/@lvflanders/bar-ng-ui/fesm2022/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 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n @if (!(iconExists() && item().icon.iconOnly) && (!iconHasPosition() || iconHasLeftPosition() || iconHasRightPosition())) {\\r\\n @if (item().icon && (!item().icon.position || item().icon.position === 'left')) {\\r\\n \\r\\n }\\r\\n \\r\\n @if (item().icon?.position === 'right') {\\r\\n \\r\\n }\\r\\n }\\r\\n @if (iconHasTopPosition()) {\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n }\\r\\n @if (iconExists() && item().icon.iconOnly) {\\r\\n \\r\\n }\\r\\n @if (item().external) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n} @else if (zeroWhiteLineIfHidden()) {\\r\\n \\r\\n ​\\r\\n}\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i2.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLinkComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-link', standalone: true, imports: [NgClass, NgTemplateOutlet, RouterLink, RouterLinkActive, MatTooltipModule], template: \"@if (!hidden()) {\\r\\n \\r\\n @if (item().routerCommands) {\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n @if (!(iconExists() && item().icon.iconOnly) && (!iconHasPosition() || iconHasLeftPosition() || iconHasRightPosition())) {\\r\\n @if (item().icon && (!item().icon.position || item().icon.position === 'left')) {\\r\\n \\r\\n }\\r\\n \\r\\n @if (item().icon?.position === 'right') {\\r\\n \\r\\n }\\r\\n }\\r\\n @if (iconHasTopPosition()) {\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n }\\r\\n @if (iconExists() && item().icon.iconOnly) {\\r\\n \\r\\n }\\r\\n @if (item().external) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n} @else if (zeroWhiteLineIfHidden()) {\\r\\n \\r\\n ​\\r\\n}\\r\\n\" }]\n }] });\n\nclass BarTileComponent {\n constructor() {\n this.#router = inject(Router);\n this.tile = input.required();\n this.favorite = output();\n this.#cancelClick = false;\n this.additionalTileClasses = computed(() => {\n const classList = {\n 'bar-tile--disabled': this.tile().disabled,\n 'bar-tile--clickable': !this.tile().disabled && (this.tile().href || this.tile().routerCommands || this.tile().routerUrl || this.tile().action),\n 'bar-tile--hidden': this.tile().hidden\n };\n classList[`bar-tile--size-${BarTileSize[this.tile().size || BarTileSize.Normal].toLowerCase()}`] = true;\n return classList;\n });\n this.srText = computed(() => {\n return this.tile().icon.srText;\n });\n this.truncateTitle = computed(() => {\n return this.tile().truncateTitle == null ? true : this.tile().truncateTitle;\n });\n this.tooltip = computed(() => {\n return this.tile().tooltip || '';\n });\n this.contentTooltip = computed(() => {\n return this.tile().contentTooltip || (this.tile().defaultContentTooltipEnabled !== false ? this.tile().content : undefined);\n });\n this.icon = computed(() => {\n return !!this.tile().icon;\n });\n this.iconClass = computed(() => {\n const untouchedClass = this.tile().icon.class;\n return this.#isCustomIcon() ? `bar-tile__custom-icon ${untouchedClass}` : untouchedClass;\n });\n this.iconStyle = computed(() => {\n return 'color: #8bae00; ' + this.tile().icon.style;\n });\n this.bodyTooltip = computed(() => {\n return this.tile().bodyTooltip || (this.tile().defaultBodyTooltipEnabled !== false ? this.tile().body : undefined);\n });\n this.truncateBody = computed(() => {\n return this.tile().truncateBody == null ? true : this.tile().truncateBody;\n });\n this.moreInformationLink = computed(() => {\n return this.tile().moreInformationLink;\n });\n this.isFavorite = computed(() => {\n return this.tile().isFavorite;\n });\n this.hideFavoriteIndicator = computed(() => {\n return this.tile().hideFavoriteIndicator;\n });\n this.disabled = computed(() => resolveSignalValue(this.tile().disabled));\n this.hidden = computed(() => resolveSignalValue(this.tile().hidden));\n this.#isCustomIcon = computed(() => {\n return this.tile().icon.class.includes('bar-tile__custom-icon');\n });\n }\n #router;\n #cancelClick;\n #isCustomIcon;\n emitFavorite(event) {\n event.stopPropagation();\n if (this.tile().id) {\n this.favorite.emit({ id: this.tile().id, value: !this.isFavorite });\n }\n else {\n this.favorite.emit(!this.isFavorite);\n }\n }\n async tileClicked(event) {\n if (this.#cancelClick) {\n this.#cancelClick = false;\n return;\n }\n event.preventDefault();\n if (!this.tile().disabled) {\n if (this.tile().action) {\n const actionResult = this.tile().action();\n if (actionResult instanceof Promise)\n await actionResult;\n }\n if (this.tile().routerCommands) {\n const params = { queryParams: {}, fragment: '' };\n if (this.tile().queryParams)\n params.queryParams = this.tile().queryParams;\n if (this.tile().fragment)\n params.fragment = this.tile().fragment;\n else\n delete params.fragment;\n this.#router.navigate(this.tile().routerCommands, params);\n }\n if (this.tile().routerUrl)\n this.#router.navigateByUrl(this.tile().routerUrl);\n if (this.tile().href) {\n openUrl(this.tile().href, this.tile().target);\n }\n }\n }\n linkClicked() {\n this.#cancelClick = true;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarTileComponent, isStandalone: true, selector: \"bar-tile\", inputs: { tile: { classPropertyName: \"tile\", publicName: \"tile\", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { favorite: \"favorite\" }, ngImport: i0, template: \"@if (!hidden()) {\\r\\n \\r\\n @if (tile().headerLeft || tile().headerRight) {\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n }\\r\\n @if (icon() || tile().content || !hideFavoriteIndicator()) {\\r\\n
\\r\\n
\\r\\n @if (icon()) {\\r\\n
\\r\\n \\r\\n
\\r\\n }\\r\\n @if (tile().image?.class && !icon()) {\\r\\n
\\r\\n }\\r\\n
\\r\\n
\\r\\n @if (!hideFavoriteIndicator()) {\\r\\n
\\r\\n \\r\\n
\\r\\n }\\r\\n \\r\\n }\\r\\n @if (tile().body || moreInformationLink()) {\\r\\n
\\r\\n @if (tile().body) {\\r\\n
\\r\\n }\\r\\n @if (moreInformationLink()) {\\r\\n
\\r\\n \\r\\n
\\r\\n }\\r\\n \\r\\n }\\r\\n @if (tile().footerLeft || tile().footerRight) {\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n }\\r\\n \\r\\n}\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i2.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"component\", type: BaasLinkComponent, selector: \"baas-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }, { kind: \"pipe\", type: HtmlToPlaintextPipe, name: \"htmlToPlaintext\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarTileComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-tile', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass, MatTooltipModule, BaasLinkComponent, HtmlToPlaintextPipe], template: \"@if (!hidden()) {\\r\\n \\r\\n @if (tile().headerLeft || tile().headerRight) {\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n }\\r\\n @if (icon() || tile().content || !hideFavoriteIndicator()) {\\r\\n
\\r\\n
\\r\\n @if (icon()) {\\r\\n
\\r\\n \\r\\n
\\r\\n }\\r\\n @if (tile().image?.class && !icon()) {\\r\\n
\\r\\n }\\r\\n
\\r\\n
\\r\\n @if (!hideFavoriteIndicator()) {\\r\\n
\\r\\n \\r\\n
\\r\\n }\\r\\n \\r\\n }\\r\\n @if (tile().body || moreInformationLink()) {\\r\\n
\\r\\n @if (tile().body) {\\r\\n
\\r\\n }\\r\\n @if (moreInformationLink()) {\\r\\n
\\r\\n \\r\\n
\\r\\n }\\r\\n \\r\\n }\\r\\n @if (tile().footerLeft || tile().footerRight) {\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n }\\r\\n \\r\\n}\\r\\n\" }]\n }] });\n\nclass BarTileGroupComponent {\n constructor() {\n this.tiles = input();\n this.favorite = output();\n this.contentTiles = contentChildren(BarTileComponent);\n effect(() => {\n this.contentTiles().forEach((tile) => {\n tile.favorite.subscribe((data) => this.favoriteClicked(tile));\n });\n });\n }\n favoriteClicked(event) {\n this.favorite.emit(event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarTileGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarTileGroupComponent, isStandalone: true, selector: \"bar-tile-group\", inputs: { tiles: { classPropertyName: \"tiles\", publicName: \"tiles\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { favorite: \"favorite\" }, queries: [{ propertyName: \"contentTiles\", predicate: BarTileComponent, isSignal: true }], ngImport: i0, template: \"
\\r\\n \\r\\n @if (tiles() && tiles().length) {\\r\\n @for (tile of tiles(); track $index) {\\r\\n \\r\\n }\\r\\n }\\r\\n
\\r\\n\", dependencies: [{ kind: \"component\", type: BarTileComponent, selector: \"bar-tile\", inputs: [\"tile\"], outputs: [\"favorite\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarTileGroupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-tile-group', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [BarTileComponent], template: \"
\\r\\n \\r\\n @if (tiles() && tiles().length) {\\r\\n @for (tile of tiles(); track $index) {\\r\\n \\r\\n }\\r\\n }\\r\\n
\\r\\n\" }]\n }], ctorParameters: () => [] });\n\nclass BarTileListComponent {\n constructor() {\n this.tiles = input();\n this.group = input(true);\n this.favorite = output();\n this.contentGroups = contentChildren(BarTileGroupComponent);\n this.tileGroups = computed(() => {\n const tileGroups = [];\n if (this.tiles() && this.tiles().length) {\n let currentGroup = null;\n this.tiles().forEach((tile) => {\n if (!currentGroup || tile.initiator) {\n currentGroup = [];\n tileGroups.push(currentGroup);\n }\n currentGroup.push(tile);\n });\n }\n return tileGroups;\n });\n effect(() => {\n if (this.contentGroups()) {\n this.contentGroups().forEach((group) => group.favorite.subscribe((data) => this.favoriteClicked(data)));\n }\n });\n }\n favoriteClicked(event) {\n this.favorite.emit(event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarTileListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarTileListComponent, isStandalone: true, selector: \"bar-tile-list\", inputs: { tiles: { classPropertyName: \"tiles\", publicName: \"tiles\", isSignal: true, isRequired: false, transformFunction: null }, group: { classPropertyName: \"group\", publicName: \"group\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { favorite: \"favorite\" }, queries: [{ propertyName: \"contentGroups\", predicate: BarTileGroupComponent, isSignal: true }], ngImport: i0, template: \"
\\r\\n \\r\\n @if (!group()) {\\r\\n @for (tile of tiles(); track $index) {\\r\\n \\r\\n }\\r\\n } @else if (tileGroups() && tileGroups().length) {\\r\\n @for (tileGroup of tileGroups(); track $index) {\\r\\n \\r\\n }\\r\\n }\\r\\n
\\r\\n\", dependencies: [{ kind: \"component\", type: BarTileGroupComponent, selector: \"bar-tile-group\", inputs: [\"tiles\"], outputs: [\"favorite\"] }, { kind: \"component\", type: BarTileComponent, selector: \"bar-tile\", inputs: [\"tile\"], outputs: [\"favorite\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarTileListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-tile-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [BarTileGroupComponent, BarTileComponent], template: \"
\\r\\n \\r\\n @if (!group()) {\\r\\n @for (tile of tiles(); track $index) {\\r\\n \\r\\n }\\r\\n } @else if (tileGroups() && tileGroups().length) {\\r\\n @for (tileGroup of tileGroups(); track $index) {\\r\\n \\r\\n }\\r\\n }\\r\\n
\\r\\n\" }]\n }], ctorParameters: () => [] });\n\nvar BarTileStyle;\n(function (BarTileStyle) {\n BarTileStyle[BarTileStyle[\"Default\"] = 0] = \"Default\";\n BarTileStyle[BarTileStyle[\"Variant1\"] = 1] = \"Variant1\";\n BarTileStyle[BarTileStyle[\"Variant2\"] = 2] = \"Variant2\";\n BarTileStyle[BarTileStyle[\"Variant3\"] = 3] = \"Variant3\";\n})(BarTileStyle || (BarTileStyle = {}));\n\nvar BarRemarkType;\n(function (BarRemarkType) {\n BarRemarkType[BarRemarkType[\"Blocking\"] = 0] = \"Blocking\";\n BarRemarkType[BarRemarkType[\"Important\"] = 1] = \"Important\";\n BarRemarkType[BarRemarkType[\"Info\"] = 2] = \"Info\";\n})(BarRemarkType || (BarRemarkType = {}));\n\n/**\n * Provides bar remark help functionality.\n */\nclass BarRemarkService {\n constructor() {\n this.mapping = {\n blocking: { class: 'fa-times-circle', color: 'error' },\n important: { class: 'fa-exclamation-circle', color: 'warning' },\n info: { class: 'fa-info-circle', color: 'info' }\n };\n }\n getIcon(type) {\n return this.mapping[type]['class'];\n }\n getIconColor(type) {\n return this.mapping[type]['color'];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRemarkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRemarkService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRemarkService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass BarRemarkComponent {\n constructor() {\n this.#remarkService = inject(BarRemarkService);\n this.#elementRef = inject((ElementRef));\n this.remark = input();\n this.color = computed(() => this.#remarkService.getIconColor(this.#type()));\n this.icon = computed(() => this.#remarkService.getIcon(this.#type()));\n this.#typeInternal = signal(undefined);\n this.#type = computed(() => {\n return BarRemarkType[this.remark() != null ? this.remark().type : this.#typeInternal()].toLowerCase();\n });\n }\n #remarkService;\n #elementRef;\n #typeInternal;\n #type;\n ngOnInit() {\n if (this.#elementRef.nativeElement.attributes['blocking'] != null) {\n this.#typeInternal.set(BarRemarkType.Blocking);\n }\n else if (this.#elementRef.nativeElement.attributes['important'] != null) {\n this.#typeInternal.set(BarRemarkType.Important);\n }\n else if (this.#elementRef.nativeElement.attributes['info'] != null) {\n this.#typeInternal.set(BarRemarkType.Info);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRemarkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarRemarkComponent, isStandalone: true, selector: \"bar-remark\", inputs: { remark: { classPropertyName: \"remark\", publicName: \"remark\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"
\\r\\n \\r\\n
\\r\\n @if (remark()?.content) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @if (remark()?.link) {\\r\\n  \\r\\n }\\r\\n
\\r\\n
\\r\\n\", dependencies: [{ kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: BaasLinkComponent, selector: \"baas-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRemarkComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-remark', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatIcon, BaasLinkComponent], template: \"
\\r\\n \\r\\n
\\r\\n @if (remark()?.content) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @if (remark()?.link) {\\r\\n  \\r\\n }\\r\\n
\\r\\n
\\r\\n\" }]\n }] });\n\n/** Represents a single remark */\nclass BarRemarkListComponent {\n constructor() {\n this.remarks = input();\n this.autoSort = input(true);\n this.remarkList = computed(() => {\n const result = this.remarks() == null ? [] : [...this.remarks()];\n if (this.autoSort()) {\n result.sort((a, b) => {\n if (a.type === b.type) {\n return 0;\n }\n else if (a.type === BarRemarkType.Blocking || b.type === BarRemarkType.Info) {\n return -1;\n }\n else {\n return 1;\n }\n });\n }\n return result;\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRemarkListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarRemarkListComponent, isStandalone: true, selector: \"bar-remark-list\", inputs: { remarks: { classPropertyName: \"remarks\", publicName: \"remarks\", isSignal: true, isRequired: false, transformFunction: null }, autoSort: { classPropertyName: \"autoSort\", publicName: \"autoSort\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"
\\r\\n \\r\\n @for (remark of remarkList(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n
\\r\\n\", dependencies: [{ kind: \"component\", type: BarRemarkComponent, selector: \"bar-remark\", inputs: [\"remark\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRemarkListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-remark-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [BarRemarkComponent], template: \"
\\r\\n \\r\\n @for (remark of remarkList(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n
\\r\\n\" }]\n }] });\n\nclass BarI18nPipe {\n #i18n = inject(BaasI18n);\n transform(value, ...args) {\n const params = args && args.length ? args[0] : {};\n return this.#i18n.get(value, params);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarI18nPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"18.2.13\", ngImport: i0, type: BarI18nPipe, isStandalone: true, name: \"i18n\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarI18nPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18n',\n standalone: true\n }]\n }] });\n\n/** Represents a single remark */\nclass BarRemarkSummaryComponent {\n #remarkService;\n #i18n;\n constructor() {\n this.#remarkService = inject(BarRemarkService);\n this.#i18n = inject(BaasI18n);\n this._counters = model(undefined, { alias: 'counters' });\n this.remarks = input();\n this.counters = computed(() => {\n if (!this._counters())\n return [];\n return Object.entries(this._counters())\n .filter(([, counter]) => counter)\n .map(([type, counter]) => {\n return {\n type,\n color: this.#remarkService.getIconColor(type),\n icon: this.#remarkService.getIcon(type),\n content: this.#defineTranslation(type, counter)\n };\n });\n });\n this.totaal = computed(() => {\n if (!this._counters())\n return 0;\n return this._counters().blocking + this._counters().important + this._counters().info;\n });\n effect(() => {\n const remarks = this.remarks();\n untracked(() => {\n let counters = { blocking: 0, important: 0, info: 0 };\n if (remarks && remarks.length) {\n counters = remarks.reduce((counters, remark) => {\n if (BarRemarkType.Blocking === remark.type)\n counters.blocking++;\n if (BarRemarkType.Important === remark.type)\n counters.important++;\n if (BarRemarkType.Info === remark.type)\n counters.info++;\n return counters;\n }, counters);\n }\n this._counters.set(counters);\n });\n });\n }\n #defineTranslation(type, counter) {\n const translationKey = `DOMAIN_BAR_CONTROLS.REMARKS.REMARK_${type.toUpperCase()}_${counter > 1 ? 'N' : '1'}`;\n return this.#i18n.get(translationKey, {\n count: counter\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRemarkSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarRemarkSummaryComponent, isStandalone: true, selector: \"bar-remark-summary\", inputs: { _counters: { classPropertyName: \"_counters\", publicName: \"counters\", isSignal: true, isRequired: false, transformFunction: null }, remarks: { classPropertyName: \"remarks\", publicName: \"remarks\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { _counters: \"countersChange\" }, ngImport: i0, template: \"@if (totaal() > 0) {\\r\\n \\r\\n @for (counter of counters(); track counter.type) {\\r\\n
\\r\\n \\r\\n
{{ counter.content }}
\\r\\n
\\r\\n }\\r\\n} @else if (totaal() === 0) {\\r\\n {{ 'DOMAIN_BAR_CONTROLS.REMARKS.NO_REMARKS' | i18n }}\\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"pipe\", type: BarI18nPipe, name: \"i18n\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRemarkSummaryComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-remark-summary', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatIcon, BarI18nPipe], template: \"@if (totaal() > 0) {\\r\\n \\r\\n @for (counter of counters(); track counter.type) {\\r\\n
\\r\\n \\r\\n
{{ counter.content }}
\\r\\n
\\r\\n }\\r\\n} @else if (totaal() === 0) {\\r\\n {{ 'DOMAIN_BAR_CONTROLS.REMARKS.NO_REMARKS' | i18n }}\\r\\n}\\r\\n\" }]\n }], ctorParameters: () => [] });\n\n/** Represents a remark overview */\nclass BarRemarkOverviewComponent {\n constructor() {\n this.remarks = input.required();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRemarkOverviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarRemarkOverviewComponent, isStandalone: true, selector: \"bar-remark-overview\", inputs: { remarks: { classPropertyName: \"remarks\", publicName: \"remarks\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"

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

\\r\\n\\r\\n\\r\\n@if (remarks().length > 0) {\\r\\n

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

\\r\\n \\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: BarRemarkSummaryComponent, selector: \"bar-remark-summary\", inputs: [\"counters\", \"remarks\"], outputs: [\"countersChange\"] }, { kind: \"component\", type: BarRemarkListComponent, selector: \"bar-remark-list\", inputs: [\"remarks\", \"autoSort\"] }, { kind: \"pipe\", type: BarI18nPipe, name: \"i18n\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarRemarkOverviewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-remark-overview', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [BarRemarkSummaryComponent, BarRemarkListComponent, BarI18nPipe], template: \"

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

\\r\\n\\r\\n\\r\\n@if (remarks().length > 0) {\\r\\n

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

\\r\\n \\r\\n}\\r\\n\" }]\n }] });\n\n// @deprecated Don't use callbacks or observable properties. NOTE do not expose in public api\n/** Controls helper used in html. */\nclass BarControlsHelper {\n /**\n * Will get the value or execute the function to get the value.\n * @param value\n */\n resolveValue(value) {\n return resolveValue(value);\n }\n /**\n * Will return an Observable based on a value which can be of different types.\n * @param value\n */\n resolveValue$(value) {\n return resolveValue$(value);\n }\n iterateObject(obj) {\n return Object.keys(resolveValue(obj));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarControlsHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarControlsHelper, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarControlsHelper, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * @deprecated Use BaasLink within <baas-layout> with OnPush change detection.\n * Represents a clickable BAR element.\n */\n// NOTE that we use delegates to mimic computed properties.\nclass BarLink {\n}\n\n/** @deprecated Use BaasLinkComponent within <baas-layout> with OnPush change detection. */\nclass BarLinkComponent {\n constructor() {\n this.controlsHelper = inject(BarControlsHelper);\n this.#clickableElementBehavior = inject(BarInteractiveElementBehavior);\n // NOTE needed for ag grid cells with links to avoid losing the cell borders\n /** Whether to inject a zero whiteline if hidden. */\n this.zeroWhiteLineIfHidden = false;\n this.clicked = new EventEmitter();\n }\n #clickableElementBehavior;\n get hidden() {\n return resolveValue(this.item.hidden || false);\n }\n get disabled() {\n return resolveValue(this.item.disabled || false);\n }\n get tooltip() {\n return resolveValue(this.item.title || '');\n }\n get tooltipClass() {\n return resolveValue(this.item.tooltipClass || '');\n }\n get content() {\n return resolveValue$(this.item.content);\n }\n get srText() {\n return resolveValue$(this.item.icon.srText);\n }\n get iconClass() {\n return resolveValue(this.item.icon.class);\n }\n get iconStyle() {\n return resolveValue(this.item.icon.style);\n }\n /**\n * performs the union of:\n - internal needed classes (disabled)\n - css classes needed for component layout\n - custom css classed defined by consumer\n */\n get ngClass() {\n const result = {};\n result['disabled'] = resolveValue(this.item.disabled);\n if (this.linkClass != null) {\n result[this.linkClass] = true;\n }\n if (this.ommitCssClass !== true) {\n const cssClass = resolveValue(this.item.cssClass);\n if (cssClass) {\n result[cssClass] = true;\n }\n }\n return result;\n }\n get iconExists() {\n return !!this.item.icon;\n }\n get iconHasPosition() {\n return this.iconExists && !!this.item.icon?.position;\n }\n get iconHasLeftPosition() {\n return this.iconHasPosition && this.item.icon.position === 'left' ? true : false;\n }\n get iconHasRightPosition() {\n return this.iconHasPosition && this.item.icon.position === 'right' ? true : false;\n }\n get iconHasTopPosition() {\n return this.iconHasPosition && this.item.icon.position === 'top' ? true : false;\n }\n ngAfterViewInit() {\n if (this.item.handleElement != null) {\n // hook on native element\n this.item.handleElement(this.element.nativeElement);\n }\n }\n async linkClick(event) {\n await this.#clickableElementBehavior.linkClick(event, this.item);\n this.clicked.emit();\n }\n // invoked in case an action is defined and a routerLink\n async linkClickWithRouterLink(event) {\n await this.#clickableElementBehavior.linkClickWithRouterCommands(event, this.item);\n }\n executeHref() {\n let href = undefined;\n if (this.item.href) {\n href = resolveValue(this.item.href);\n }\n else if (this.item.routerUrl) {\n href = this.item.routerUrl;\n }\n return href;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarLinkComponent, isStandalone: true, 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: \"@if (item && !hidden) {\\r\\n \\r\\n @if (item.routerLink == null) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n @if (item.routerLink != null) {\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n @if (!(iconExists && item.icon.iconOnly) && (!iconHasPosition || iconHasLeftPosition || iconHasRightPosition)) {\\r\\n @if (item.icon && (!item.icon.position || (item.icon.position && item.icon.position === 'left'))) {\\r\\n \\r\\n }\\r\\n \\r\\n @if (item.icon && item.icon.position && item.icon.position === 'right') {\\r\\n \\r\\n }\\r\\n }\\r\\n @if (iconHasTopPosition) {\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n @if (iconExists && item.icon.iconOnly) {\\r\\n \\r\\n }\\r\\n @if (item.external) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n}\\r\\n\\r\\n@if (zeroWhiteLineIfHidden && (!item || hidden)) {\\r\\n ​\\r\\n}\\r\\n\", dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"directive\", type: i1.RouterLinkActive, selector: \"[routerLinkActive]\", inputs: [\"routerLinkActiveOptions\", \"ariaCurrentWhenActive\", \"routerLinkActive\"], outputs: [\"isActiveChange\"], exportAs: [\"routerLinkActive\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i2.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLinkComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-link', standalone: true, imports: [NgTemplateOutlet, NgClass, AsyncPipe, RouterModule, MatTooltipModule], template: \"@if (item && !hidden) {\\r\\n \\r\\n @if (item.routerLink == null) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n @if (item.routerLink != null) {\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n @if (!(iconExists && item.icon.iconOnly) && (!iconHasPosition || iconHasLeftPosition || iconHasRightPosition)) {\\r\\n @if (item.icon && (!item.icon.position || (item.icon.position && item.icon.position === 'left'))) {\\r\\n \\r\\n }\\r\\n \\r\\n @if (item.icon && item.icon.position && item.icon.position === 'right') {\\r\\n \\r\\n }\\r\\n }\\r\\n @if (iconHasTopPosition) {\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n @if (iconExists && item.icon.iconOnly) {\\r\\n \\r\\n }\\r\\n @if (item.external) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n}\\r\\n\\r\\n@if (zeroWhiteLineIfHidden && (!item || hidden)) {\\r\\n ​\\r\\n}\\r\\n\" }]\n }], propDecorators: { item: [{\n type: Input\n }], linkClass: [{\n type: Input\n }], ommitCssClass: [{\n type: Input\n }], zeroWhiteLineIfHidden: [{\n type: Input\n }], element: [{\n type: ViewChild,\n args: ['element']\n }], clicked: [{\n type: Output\n }] } });\n\n/** Generates a button or anchor (link) with material button internally. */\nclass BaasActionButtonComponent {\n constructor() {\n this.#clickableElementBehavior = inject(BarInteractiveElementBehavior);\n /** Action button item. */\n this.item = input.required();\n // NOTE needed for ag grid cells with action buttons to avoid losing the cell borders\n /** Whether to inject a zero whiteline if hidden. */\n this.zeroWhiteLineIfHidden = input(false);\n this.disabled = computed(() => resolveSignalValue(this.item().disabled));\n this.hidden = computed(() => resolveSignalValue(this.item().hidden));\n }\n #clickableElementBehavior;\n async buttonClicked(event) {\n await this.#clickableElementBehavior.buttonClick(event, this.item());\n }\n async linkAction(event) {\n const actionResult = this.item().action(event);\n // if a promise was given await it\n if (actionResult instanceof Promise)\n await actionResult;\n // the user returns false meaning we need to stop propagation\n else if (actionResult === false) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BaasActionButtonComponent, isStandalone: true, selector: \"baas-action-button\", inputs: { item: { classPropertyName: \"item\", publicName: \"item\", isSignal: true, isRequired: true, transformFunction: null }, zeroWhiteLineIfHidden: { classPropertyName: \"zeroWhiteLineIfHidden\", publicName: \"zeroWhiteLineIfHidden\", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: \"bar-action-button\" }, ngImport: i0, template: \"@if (!hidden()) {\\r\\n
\\r\\n @if (item().icon?.iconOnly) {\\r\\n @if (item().type === 'anchor') {\\r\\n @if (item().routerCommands || item().routerUrl) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n @switch (item().variant) {\\r\\n @case ('flat') {\\r\\n @if (item().type === 'anchor') {\\r\\n @if (item().routerCommands || item().routerUrl) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n }\\r\\n @case ('stroked') {\\r\\n @if (item().type === 'anchor') {\\r\\n @if (item().routerCommands || item().routerUrl) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n }\\r\\n @case ('raised') {\\r\\n @if (item().type === 'anchor') {\\r\\n @if (item().routerCommands || item().routerUrl) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n }\\r\\n @default {\\r\\n @if (item().type === 'anchor') {\\r\\n @if (item().routerCommands || item().routerUrl) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n }\\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n @if (item().icon && (!item().icon.position || (item().icon.position && item().icon.position === 'left'))) {\\r\\n \\r\\n }\\r\\n \\r\\n {{ item().content }}\\r\\n \\r\\n @if (item().icon && item().icon.position && item().icon.position === 'right') {\\r\\n \\r\\n }\\r\\n \\r\\n }\\r\\n
\\r\\n} @else if (zeroWhiteLineIfHidden()) {\\r\\n \\r\\n ​\\r\\n}\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2$2.MatAnchor, selector: \"a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i2$2.MatButton, selector: \" button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] \", exportAs: [\"matButton\"] }, { kind: \"component\", type: i2$2.MatIconAnchor, selector: \"a[mat-icon-button]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"component\", type: i2$2.MatIconButton, selector: \"button[mat-icon-button]\", exportAs: [\"matButton\"] }, { kind: \"ngmodule\", type: MatBadgeModule }, { kind: \"directive\", type: i1$1.MatBadge, selector: \"[matBadge]\", inputs: [\"matBadgeColor\", \"matBadgeOverlap\", \"matBadgeDisabled\", \"matBadgePosition\", \"matBadge\", \"matBadgeDescription\", \"matBadgeSize\", \"matBadgeHidden\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i2.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasActionButtonComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-action-button', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass, NgTemplateOutlet, RouterLink, MatIconModule, MatButtonModule, MatBadgeModule, MatTooltipModule], host: { class: 'bar-action-button' }, template: \"@if (!hidden()) {\\r\\n
\\r\\n @if (item().icon?.iconOnly) {\\r\\n @if (item().type === 'anchor') {\\r\\n @if (item().routerCommands || item().routerUrl) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n @switch (item().variant) {\\r\\n @case ('flat') {\\r\\n @if (item().type === 'anchor') {\\r\\n @if (item().routerCommands || item().routerUrl) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n }\\r\\n @case ('stroked') {\\r\\n @if (item().type === 'anchor') {\\r\\n @if (item().routerCommands || item().routerUrl) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n }\\r\\n @case ('raised') {\\r\\n @if (item().type === 'anchor') {\\r\\n @if (item().routerCommands || item().routerUrl) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n }\\r\\n @default {\\r\\n @if (item().type === 'anchor') {\\r\\n @if (item().routerCommands || item().routerUrl) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n } @else {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n }\\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n @if (item().icon && (!item().icon.position || (item().icon.position && item().icon.position === 'left'))) {\\r\\n \\r\\n }\\r\\n \\r\\n {{ item().content }}\\r\\n \\r\\n @if (item().icon && item().icon.position && item().icon.position === 'right') {\\r\\n \\r\\n }\\r\\n \\r\\n }\\r\\n
\\r\\n} @else if (zeroWhiteLineIfHidden()) {\\r\\n \\r\\n ​\\r\\n}\\r\\n\" }]\n }] });\n\n/** @deprecated Use BaasLink within <baas-layout> with OnPush change detection.\n * Represents a button to be placed in the action BAR.\n */\n// NOTE that we use delegates to mimic computed properties.\nclass BarActionButton {\n}\n\nvar BarActionButtonType;\n(function (BarActionButtonType) {\n BarActionButtonType[\"Default\"] = \"default\";\n BarActionButtonType[\"Stroked\"] = \"stroked\";\n BarActionButtonType[\"Flat\"] = \"flat\";\n BarActionButtonType[\"Raised\"] = \"raised\";\n})(BarActionButtonType || (BarActionButtonType = {}));\n\n/** @deprecated Use BaasActionButtonComponent within <baas-layout> with OnPush change detection. */\nclass BarActionButtonComponent {\n constructor() {\n this.#router = inject(Router);\n // NOTE needed for ag grid cells with action buttons to avoid losing the cell borders\n /** Whether to inject a zero whiteline if hidden. */\n this.zeroWhiteLineIfHidden = false;\n }\n #router;\n get showIconOnly() {\n return this.item.icon && resolveValue(this.item.icon.iconOnly);\n }\n get routerLink() {\n return resolveValue(this.item.routerLink);\n }\n get disabled() {\n return resolveValue(this.item.disabled);\n }\n get tooltip() {\n return resolveValue$(this.item.title || '');\n }\n get content() {\n return resolveValue$(this.item.content);\n }\n get srText() {\n return resolveValue$(this.item.icon.srText);\n }\n get iconClass() {\n return resolveValue(this.item.icon.class);\n }\n get iconStyle() {\n return resolveValue(this.item.icon.style);\n }\n get badge() {\n return resolveValue$(this.item.counter || null);\n }\n get hidden() {\n return resolveValue(this.item.hidden);\n }\n get type() {\n return !this.item.type ? BarActionButtonType.Default : this.item.type;\n }\n buttonClicked(event) {\n if (this.item.action)\n this.item.action(event);\n if (this.item.routerLink) {\n this.#router.navigate(resolveValue(this.item.routerLink));\n }\n if (this.item.routerUrl)\n this.#router.navigateByUrl(resolveValue(this.item.routerUrl));\n if (this.item.href) {\n const url = resolveValue(this.item.href);\n openUrl(url, this.item.target);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarActionButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarActionButtonComponent, isStandalone: true, selector: \"bar-action-button\", inputs: { item: \"item\", zeroWhiteLineIfHidden: \"zeroWhiteLineIfHidden\" }, host: { classAttribute: \"bar-action-button\" }, ngImport: i0, template: \"@if (item && !hidden) {\\r\\n
\\r\\n @if (showIconOnly) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n @if (type === 'default') {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n @if (type === 'flat') {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n @if (type === 'stroked') {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n @if (type === 'raised') {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n @if (item.icon && (!item.icon.position || (item.icon.position && item.icon.position === 'left'))) {\\r\\n \\r\\n }\\r\\n \\r\\n {{ content | async }}\\r\\n \\r\\n @if (item.icon && item.icon.position && item.icon.position === 'right') {\\r\\n \\r\\n }\\r\\n \\r\\n }\\r\\n
\\r\\n}\\r\\n\\r\\n@if (zeroWhiteLineIfHidden && (!item || hidden)) {\\r\\n ​\\r\\n}\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"ngmodule\", type: MatBadgeModule }, { kind: \"directive\", type: i1$1.MatBadge, selector: \"[matBadge]\", inputs: [\"matBadgeColor\", \"matBadgeOverlap\", \"matBadgeDisabled\", \"matBadgePosition\", \"matBadge\", \"matBadgeDescription\", \"matBadgeSize\", \"matBadgeHidden\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i2.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2$2.MatButton, selector: \" button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] \", exportAs: [\"matButton\"] }, { kind: \"component\", type: i2$2.MatIconButton, selector: \"button[mat-icon-button]\", exportAs: [\"matButton\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarActionButtonComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-action-button', host: { class: 'bar-action-button' }, standalone: true, imports: [NgClass, NgTemplateOutlet, AsyncPipe, MatBadgeModule, MatTooltipModule, MatButtonModule, MatIconModule], template: \"@if (item && !hidden) {\\r\\n
\\r\\n @if (showIconOnly) {\\r\\n \\r\\n \\r\\n \\r\\n } @else {\\r\\n @if (type === 'default') {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n @if (type === 'flat') {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n @if (type === 'stroked') {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n @if (type === 'raised') {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n @if (item.icon && (!item.icon.position || (item.icon.position && item.icon.position === 'left'))) {\\r\\n \\r\\n }\\r\\n \\r\\n {{ content | async }}\\r\\n \\r\\n @if (item.icon && item.icon.position && item.icon.position === 'right') {\\r\\n \\r\\n }\\r\\n \\r\\n }\\r\\n
\\r\\n}\\r\\n\\r\\n@if (zeroWhiteLineIfHidden && (!item || hidden)) {\\r\\n ​\\r\\n}\\r\\n\" }]\n }], propDecorators: { item: [{\n type: Input\n }], zeroWhiteLineIfHidden: [{\n type: Input\n }] } });\n\n// NOTE based on bar-link, action-button.\n/** Renders a button with a menu when clicked on. */\nclass BarMenuButtonComponent {\n constructor() {\n this.#clickableElementBehavior = inject(BarInteractiveElementBehavior);\n /** Content in master button */\n this.content = input();\n /** Disabled or enabled */\n this.disabled = input(false);\n /** Tooltip */\n this.tooltip = input();\n /** Icon class. */\n this.iconClass = input();\n /** Option variant of the button (mat-stroked-button,...) */\n this.variant = input('default');\n this.items = input([]);\n this.actionButton = computed(() => {\n return {\n content: this.content(),\n disabled: this.disabled(),\n tooltip: this.tooltip(),\n variant: this.variant(),\n icon: this.iconClass()\n ? {\n class: this.iconClass(),\n iconOnly: !this.content()\n }\n : undefined\n };\n });\n this.enrichedItems = computed(() => {\n return this.items().map((item) => {\n return {\n ...item,\n disabled: computed(() => resolveSignalValue(item.disabled)),\n hidden: computed(() => resolveSignalValue(item.hidden))\n };\n });\n });\n }\n #clickableElementBehavior;\n async buttonClick(event, item) {\n await this.#clickableElementBehavior.buttonClick(event, item);\n }\n async linkClick(event, item) {\n await this.#clickableElementBehavior.linkClick(event, item);\n }\n // invoked in case an action is defined and a routerLink\n async linkClickWithRouterCommands(event, item) {\n await this.#clickableElementBehavior.linkClickWithRouterCommands(event, item);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarMenuButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarMenuButtonComponent, isStandalone: true, selector: \"bar-menu-button\", inputs: { content: { classPropertyName: \"content\", publicName: \"content\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: \"tooltip\", publicName: \"tooltip\", isSignal: true, isRequired: false, transformFunction: null }, iconClass: { classPropertyName: \"iconClass\", publicName: \"iconClass\", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: \"variant\", publicName: \"variant\", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \" \\r\\n\\r\\n @for (item of enrichedItems(); track $index) {\\r\\n @if (!item.hidden()) {\\r\\n @if (item.type === 'anchor') {\\r\\n @if (item.routerCommands) {\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ item.content }}\\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n {{ item.content }}\\r\\n \\r\\n }\\r\\n } @else if (!item.type || item.type === 'button') {\\r\\n \\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"component\", type: i1$2.MatMenu, selector: \"mat-menu\", inputs: [\"backdropClass\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"xPosition\", \"yPosition\", \"overlapTrigger\", \"hasBackdrop\", \"class\", \"classList\"], outputs: [\"closed\", \"close\"], exportAs: [\"matMenu\"] }, { kind: \"component\", type: i1$2.MatMenuItem, selector: \"[mat-menu-item]\", inputs: [\"role\", \"disabled\", \"disableRipple\"], exportAs: [\"matMenuItem\"] }, { kind: \"directive\", type: i1$2.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", inputs: [\"mat-menu-trigger-for\", \"matMenuTriggerFor\", \"matMenuTriggerData\", \"matMenuTriggerRestoreFocus\"], outputs: [\"menuOpened\", \"onMenuOpen\", \"menuClosed\", \"onMenuClose\"], exportAs: [\"matMenuTrigger\"] }, { kind: \"component\", type: BaasActionButtonComponent, selector: \"baas-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarMenuButtonComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-menu-button', standalone: true, imports: [NgClass, NgStyle, RouterLink, MatButtonModule, MatMenuModule, BaasActionButtonComponent, MatIconModule], changeDetection: ChangeDetectionStrategy.OnPush, template: \" \\r\\n\\r\\n @for (item of enrichedItems(); track $index) {\\r\\n @if (!item.hidden()) {\\r\\n @if (item.type === 'anchor') {\\r\\n @if (item.routerCommands) {\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ item.content }}\\r\\n \\r\\n \\r\\n } @else {\\r\\n \\r\\n \\r\\n {{ item.content }}\\r\\n \\r\\n }\\r\\n } @else if (!item.type || item.type === 'button') {\\r\\n \\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n\" }]\n }] });\n\n/** Data for confirmation dialog */\nclass BarConfirmOptions {\n constructor() {\n /** Whether we want a refute button to not confirm */\n this.refutable = true;\n }\n}\n\n/** Component used by the confirm service with material dialog. */\nclass BarConfirmComponent {\n constructor() {\n this.#i18n = inject(BaasI18n);\n this.#data = inject(MAT_DIALOG_DATA);\n this.hasTitle = this.#data.title != null;\n this.title = this.#data == null || this.#data.title == null ? null : this.#data.title;\n this.message = this.#data == null || this.#data.message == null ? null : this.#data.message;\n this.confirmText = this.#data?.confirmText == null ? this.#i18n.get('DOMAIN_BAR_CONTROLS.CONFIRM.OK') : this.#data.confirmText;\n this.refuteText = this.#data?.refuteText == null ? this.#i18n.get('DOMAIN_BAR_CONTROLS.CONFIRM.CANCEL') : this.#data.refuteText;\n this.refutable = this.#data == null || this.#data.refutable == null ? true : this.#data.refutable;\n this.closeable = this.#data == null || this.#data.closeable == null ? true : this.#data.closeable;\n this.buttonVariant = this.#data.buttonVariant;\n }\n #i18n;\n #data;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarConfirmComponent, isStandalone: true, selector: \"bar-confirm\", ngImport: i0, template: \"@if (hasTitle) {\\r\\n

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

\\r\\n}\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n @if (refutable) {\\r\\n \\r\\n }\\r\\n\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: MatDialogModule }, { kind: \"directive\", type: i1$3.MatDialogClose, selector: \"[mat-dialog-close], [matDialogClose]\", inputs: [\"aria-label\", \"type\", \"mat-dialog-close\", \"matDialogClose\"], exportAs: [\"matDialogClose\"] }, { kind: \"directive\", type: i1$3.MatDialogTitle, selector: \"[mat-dialog-title], [matDialogTitle]\", inputs: [\"id\"], exportAs: [\"matDialogTitle\"] }, { kind: \"directive\", type: i1$3.MatDialogActions, selector: \"[mat-dialog-actions], mat-dialog-actions, [matDialogActions]\", inputs: [\"align\"] }, { kind: \"directive\", type: i1$3.MatDialogContent, selector: \"[mat-dialog-content], mat-dialog-content, [matDialogContent]\" }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2$2.MatButton, selector: \" button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] \", exportAs: [\"matButton\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarConfirmComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-confirm', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatDialogModule, MatButtonModule], template: \"@if (hasTitle) {\\r\\n

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

\\r\\n}\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n @if (refutable) {\\r\\n \\r\\n }\\r\\n\\r\\n\" }]\n }] });\n\n/** Confirmation dialog service. */\nclass BarConfirmService {\n #dialog = inject(MatDialog);\n /**\n * Opens a confirm dialog.\n * @param data Data needed for the dialog.\n */\n open(data) {\n return this.#handleConfirmation(data);\n }\n /**\n * Opens a confirm dialog and triggers when confirmed.\n * @param data\n */\n confirm(data) {\n return this.#handleConfirmation(data).pipe(mergeMap((result) => {\n if (result)\n return of(undefined);\n else\n return EMPTY;\n }));\n }\n /**\n * Opens a confirm dialog and triggers when refuted (not confirmed).\n * @param data\n */\n refute(data) {\n return this.#handleConfirmation(data).pipe(mergeMap((result) => {\n if (!result)\n return of(undefined);\n else\n return EMPTY;\n }));\n }\n #handleConfirmation(data) {\n const config = {\n height: data.height == null ? '190px' : data.height,\n width: data.width == null ? '450px' : data.width,\n data: data\n };\n if (data.closeable != null) {\n config.disableClose = !data.closeable;\n }\n const dialogRef = this.#dialog.open(BarConfirmComponent, config);\n return dialogRef.afterClosed();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarConfirmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarConfirmService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarConfirmService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/** @deprecated In favour of BaasIcon */\nclass BarIcon {\n}\n\n/** BAR wrapper around AutoNumericJS */\nclass BarAutoNumericDirective {\n #input = inject(ElementRef);\n /**\n * Handles the changes on keyup.\n * @param value The value in the input\n */\n handleChangeKeyup(value) {\n this.#handleChange(value);\n }\n /**\n * Handles the changes on blur.\n * @param value The value in the input\n */\n handleChangeBlur(value) {\n this.#fnOnTouched();\n }\n handlePaste(e) {\n if (this.#ignoreInvalidPaste && this.#instance._onPasteFunc != null) {\n try {\n // call the original paste func from AutoNumeric\n this.#instance._onPasteFunc(e);\n }\n catch {\n // NOTE we don't want hard errors when the paste fails, just let it fails with no action\n }\n }\n }\n #instance;\n #fnOnChange;\n #fnOnTouched;\n get #ignoreInvalidPaste() {\n return this.barAutoNumeric != null && this.barAutoNumeric.onInvalidPaste && this.barAutoNumeric.onInvalidPaste.toLowerCase() == 'ignore';\n }\n ngOnInit() {\n // NOTE we use self because we need to access the this within a defineproperty set and get\n const self = this;\n // create a new property on the native element so that the value can be defined by using a test framework\n // it didn't seem possible to overwrite the value property\n Object.defineProperty(this.#input.nativeElement, 'numericValue', {\n get() {\n // NOTE use self because this would point to the nativeElement\n return self.#instance.getNumber();\n },\n set(newVal) {\n // NOTE use self because this would point to the nativeElement\n self.writeValue(newVal);\n }\n });\n // instantiate the AutoNumeric JS\n this.#instance = new AutoNumeric(this.#input.nativeElement, this.barAutoNumeric);\n const origPreparePastedText = this.#instance._preparePastedText;\n this.#instance._preparePastedText = (text) => {\n // in case the consumer allows dot als alternative but a comma is expected we assume the dot is a comma\n if (this.barAutoNumeric &&\n this.barAutoNumeric.decimalCharacter === ',' &&\n this.barAutoNumeric.decimalCharacterAlternative === '.' &&\n this.barAutoNumeric.digitGroupSeparator !== '.' &&\n text.indexOf('.') > -1) {\n text = text.replace('.', ',');\n }\n return origPreparePastedText.call(this.#instance, text);\n };\n this.#input.nativeElement.setAttribute('autocomplete', 'off');\n this.#input.nativeElement.className += ` text-${this.barAutoNumeric.align ? this.barAutoNumeric.align : 'right'}`;\n // unbind the normal paste event (because it causes hard errors) in case we don't want those errors (option in AutoNumeric)\n if (this.#ignoreInvalidPaste && this.#instance._onPasteFunc != null) {\n this.#input.nativeElement.removeEventListener('paste', this.#instance._onPasteFunc);\n }\n }\n ngOnDestroy() {\n if (this.#instance != null) {\n // remove the AutoNumeric instance on destroy\n this.#instance.remove();\n }\n }\n ngOnChanges(changes) {\n if (this.#instance != null && changes.barAutoNumeric) {\n this.#instance.update(this.barAutoNumeric);\n }\n if (changes.disabled) {\n this.#applyDisabled();\n }\n }\n /**\n * Happens when value is passed from the form system.\n * @param value The value from the form system which is always a number or null.\n */\n writeValue(value) {\n if (value == null) {\n // clear the value\n this.#instance.clear();\n }\n else {\n // assign the value to the AutoNumeric JS (set)\n this.#instance.set(value);\n }\n }\n registerOnChange(fn) {\n // register the on change callback\n this.#fnOnChange = fn;\n }\n registerOnTouched(fn) {\n // register the on touched callback\n this.#fnOnTouched = fn;\n }\n setDisabledState(disabled) {\n this.disabled = disabled;\n this.#applyDisabled();\n }\n #applyDisabled() {\n this.#input.nativeElement.disabled = this.disabled;\n }\n #handleChange(value) {\n // if empty pass on null\n if (this.#checkValueIsEmpty(value)) {\n this.#instance.clear();\n this.#fnOnChange(null);\n }\n else {\n // transform to real number\n const number = this.#instance.getNumber();\n // pass this number to the form system\n this.#fnOnChange(number);\n }\n }\n #checkValueIsEmpty(value) {\n // the value is considered empty if empty or if it only contains the currency symbol (in case it is set)\n return value == '' || (this.barAutoNumeric?.currencySymbol && value === this.barAutoNumeric.currencySymbol);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarAutoNumericDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"18.2.13\", type: BarAutoNumericDirective, isStandalone: true, selector: \"input[barAutoNumeric]\", inputs: { barAutoNumeric: \"barAutoNumeric\", disabled: \"disabled\" }, host: { listeners: { \"keyup\": \"handleChangeKeyup($event.target.value)\", \"blur\": \"handleChangeBlur($event.target.value)\", \"paste\": \"handlePaste($event)\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BarAutoNumericDirective),\n multi: true\n }\n ], exportAs: [\"barAutoNumeric\"], usesOnChanges: true, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarAutoNumericDirective, decorators: [{\n type: Directive,\n args: [{\n selector: 'input[barAutoNumeric]',\n exportAs: 'barAutoNumeric',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => BarAutoNumericDirective),\n multi: true\n }\n ],\n standalone: true\n }]\n }], propDecorators: { barAutoNumeric: [{\n type: Input\n }], disabled: [{\n type: Input\n }], handleChangeKeyup: [{\n type: HostListener,\n args: ['keyup', ['$event.target.value']]\n }], handleChangeBlur: [{\n type: HostListener,\n args: ['blur', ['$event.target.value']]\n }], handlePaste: [{\n type: HostListener,\n args: ['paste', ['$event']]\n }] } });\n\nclass BarDateTimePickerComponent {\n #controlContainer;\n #ngZone;\n #i18n;\n #destroyRef;\n #formControlDisabled;\n // NOTE we must always have a form control\n #defaultFormControl;\n #formControlEventsSubscription;\n #onChange;\n #onTouch;\n constructor() {\n this.#controlContainer = inject(ControlContainer, { optional: true });\n this.#ngZone = inject(NgZone);\n this.#i18n = inject(BaasI18n);\n this.#destroyRef = inject(DestroyRef);\n this.input = viewChild.required('input');\n this.formControlDirective = viewChild.required(FormControlDirective);\n this.formControl = input();\n this.formControlName = input();\n this.value = input();\n /** Id used to associate with label for. */\n this.labelForId = input();\n /** Label text. If left out no label is used. */\n this.label = input();\n /** Wether to wrap the label over multiple lines. */\n this.wrapLabel = input(false);\n /** Tooltip for the label. */\n this.labelTooltip = input();\n /** DateTime picker type. */\n this._pickerType = input('date', { alias: 'pickerType' });\n /** Min selectable date. */\n this.min = input();\n /** Max selectable date. */\n this.max = input();\n /** Start date at which to start the calendar. */\n this.startAt = input();\n /** Whether a range should be selected. */\n this.range = input(false);\n /** Which kind of range select mode in case range is true. */\n this.rangeSelectMode = input('default');\n this.readonly = input(false);\n this.required = input(undefined);\n this.includeSeconds = input(false);\n /** Allows to filter specific dates. */\n this.dateTimeFilter = input();\n /** Ensures that the input textbox always contains a valid value on blur. If the form control value is null the input is emptied. */\n this.ensureValidInput = input(true);\n this.pickerType = computed(() => {\n switch (this._pickerType()) {\n case 'dateTime':\n return 'both';\n case 'time':\n return 'timer';\n default:\n return 'calendar';\n }\n });\n this.selectionTitle = computed(() => {\n switch (this._pickerType()) {\n case 'dateTime':\n return this.#i18n.get('DOMAIN_BAR_CONTROLS.DATE_TIME_PICKER.SELECTION_TITLE.DATE_TIME');\n case 'time':\n return this.#i18n.get('DOMAIN_BAR_CONTROLS.DATE_TIME_PICKER.SELECTION_TITLE.TIME');\n default:\n return this.#i18n.get('DOMAIN_BAR_CONTROLS.DATE_TIME_PICKER.SELECTION_TITLE.DATE');\n }\n });\n this.selectMode = computed(() => {\n if (!this.range())\n return 'single';\n else {\n switch (this.rangeSelectMode()) {\n case 'from':\n return 'rangeFrom';\n case 'to':\n return 'rangeTo';\n default:\n return 'range';\n }\n }\n });\n this.#formControlDisabled = signal(undefined);\n this.disabled = computed(() => this.#formControlDisabled() || this.readonly());\n // NOTE we must always have a form control\n this.#defaultFormControl = new FormControl();\n this.control = signal(this.#defaultFormControl);\n this.#onChange = () => { };\n this.#onTouch = () => { };\n effect(() => {\n if (this.value())\n this.#defaultFormControl.setValue(this.value());\n });\n effect(() => {\n if (this.formControl())\n this.control.set(this.formControl());\n else if (this.#controlContainer && this.formControlName())\n this.control.set(this.#controlContainer.control.get(this.formControlName()));\n else\n this.control.set(this.#defaultFormControl);\n const syncFormControlDisabled = () => this.#formControlDisabled.set(this.control().disabled);\n syncFormControlDisabled();\n // NOTE unsubscribe in case the formControl would change while the date time picker is still alive\n if (this.#formControlEventsSubscription)\n this.#formControlEventsSubscription.unsubscribe();\n this.#formControlEventsSubscription = this.control()\n .events.pipe(filter((event) => event instanceof StatusChangeEvent), takeUntilDestroyed(this.#destroyRef))\n .subscribe((value) => untracked(() => syncFormControlDisabled()));\n }, { allowSignalWrites: true });\n // NOTE used in case ngModel is defined\n // Subscribe to control value changes and propagate them to the parent form/ngModel\n // because the default form control does not propage changes back to consumer\n this.#defaultFormControl.valueChanges.pipe(takeUntilDestroyed()).subscribe((value) => {\n if (this.#onChange)\n this.#onChange(value);\n if (this.#onTouch)\n this.#onTouch();\n });\n }\n onBlur() {\n if (this.ensureValidInput() &&\n this.control() &&\n this.control().value == null &&\n this.input()?.nativeElement?.value &&\n this.input().nativeElement.value.length > 0) {\n this.input().nativeElement.value = null;\n }\n }\n registerOnTouched(fn) {\n this.#onTouch = fn;\n this.formControlDirective().valueAccessor.registerOnTouched(fn);\n }\n registerOnChange(fn) {\n this.#onChange = fn;\n this.formControlDirective().valueAccessor.registerOnChange(fn);\n }\n writeValue(obj) {\n this.#ngZone.runOutsideAngular(() => {\n window.setTimeout(() => {\n this.#ngZone.run(() => {\n this.formControlDirective().valueAccessor.writeValue(obj);\n });\n });\n });\n }\n setDisabledState(isDisabled) {\n this.formControlDirective().valueAccessor.setDisabledState(isDisabled);\n }\n focus() {\n this.input()?.nativeElement?.focus();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarDateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarDateTimePickerComponent, isStandalone: true, selector: \"bar-date-time-picker\", inputs: { formControl: { classPropertyName: \"formControl\", publicName: \"formControl\", isSignal: true, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: \"formControlName\", publicName: \"formControlName\", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: true, isRequired: false, transformFunction: null }, labelForId: { classPropertyName: \"labelForId\", publicName: \"labelForId\", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: \"label\", publicName: \"label\", isSignal: true, isRequired: false, transformFunction: null }, wrapLabel: { classPropertyName: \"wrapLabel\", publicName: \"wrapLabel\", isSignal: true, isRequired: false, transformFunction: null }, labelTooltip: { classPropertyName: \"labelTooltip\", publicName: \"labelTooltip\", isSignal: true, isRequired: false, transformFunction: null }, _pickerType: { classPropertyName: \"_pickerType\", publicName: \"pickerType\", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: \"min\", publicName: \"min\", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: \"max\", publicName: \"max\", isSignal: true, isRequired: false, transformFunction: null }, startAt: { classPropertyName: \"startAt\", publicName: \"startAt\", isSignal: true, isRequired: false, transformFunction: null }, range: { classPropertyName: \"range\", publicName: \"range\", isSignal: true, isRequired: false, transformFunction: null }, rangeSelectMode: { classPropertyName: \"rangeSelectMode\", publicName: \"rangeSelectMode\", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: \"required\", publicName: \"required\", isSignal: true, isRequired: false, transformFunction: null }, includeSeconds: { classPropertyName: \"includeSeconds\", publicName: \"includeSeconds\", isSignal: true, isRequired: false, transformFunction: null }, dateTimeFilter: { classPropertyName: \"dateTimeFilter\", publicName: \"dateTimeFilter\", isSignal: true, isRequired: false, transformFunction: null }, ensureValidInput: { classPropertyName: \"ensureValidInput\", publicName: \"ensureValidInput\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: BarDateTimePickerComponent,\n multi: true\n },\n [...BAR_DATE_TIME_PROVIDERS]\n ], viewQueries: [{ propertyName: \"input\", first: true, predicate: [\"input\"], descendants: true, isSignal: true }, { propertyName: \"formControlDirective\", first: true, predicate: FormControlDirective, descendants: true, isSignal: true }], ngImport: i0, template: \"\\r\\n @if (label) {\\r\\n {{ label() }}\\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1$4.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$4.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$4.RequiredValidator, selector: \":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\", inputs: [\"required\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1$4.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: OwlDateTimeModule }, { kind: \"directive\", type: i2$3.OwlDateTimeTriggerDirective, selector: \"[owlDateTimeTrigger]\", inputs: [\"owlDateTimeTrigger\", \"disabled\"] }, { kind: \"directive\", type: i2$3.OwlDateTimeInputDirective, selector: \"input[owlDateTime]\", inputs: [\"required\", \"owlDateTime\", \"owlDateTimeFilter\", \"_disabled\", \"min\", \"max\", \"selectMode\", \"rangeSeparator\", \"value\", \"values\"], outputs: [\"dateTimeChange\", \"dateTimeInput\"], exportAs: [\"owlDateTimeInput\"] }, { kind: \"component\", type: i2$3.OwlDateTimeComponent, selector: \"owl-date-time\", inputs: [\"backdropClass\", \"panelClass\", \"startAt\", \"endAt\", \"pickerType\", \"pickerMode\", \"disabled\", \"opened\", \"scrollStrategy\"], outputs: [\"afterPickerClosed\", \"beforePickerOpen\", \"afterPickerOpen\", \"yearSelected\", \"monthSelected\", \"dateSelected\"], exportAs: [\"owlDateTime\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i4.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i4.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i4.MatSuffix, selector: \"[matSuffix], [matIconSuffix], [matTextSuffix]\", inputs: [\"matTextSuffix\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i5.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: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i2.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarDateTimePickerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-date-time-picker', providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: BarDateTimePickerComponent,\n multi: true\n },\n [...BAR_DATE_TIME_PROVIDERS]\n ], standalone: true, imports: [NgClass, FormsModule, ReactiveFormsModule, OwlDateTimeModule, MatIconModule, MatFormFieldModule, MatInputModule, MatTooltipModule], template: \"\\r\\n @if (label) {\\r\\n {{ label() }}\\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\" }]\n }], ctorParameters: () => [] });\n\n/** BAR search screen placeholder component which defines the search screen layout in a technology agnostic way. */\nclass BarSearchScreenComponent {\n constructor() {\n this.#i18n = inject(BaasI18n);\n this.searchResults = viewChild.required('searchResults');\n this.searchForm = viewChild.required('searchForm');\n // default no toolbar\n this.showToolbar = input(false);\n // Dynamic actions in toolbar\n this.actions = input();\n // Enable extended criteria for the search\n this.hasExtendedCriteria = input(false);\n // Extra info section above the search results.\n this.hasInfoSection = input(false);\n // Whether the info section is fixed and should always appear.\n this.fixedInfoSection = input(true);\n // Disabled search (to be used with validation or...)\n this.searchDisabled = input(false);\n // If the form was submitted and a search was triggered\n this.searched = model(false);\n // Optional: Extended search fields\n this.showExtendedCriteria = model(false);\n // Optional: use internal form of this component\n // Provide a formGroup with the searchCriteria / extendedSearchCriteria\n this.internalForm = input(false);\n // Manual search means that we tell the component when the search is done through the searched property\n this.manualSearch = input(false);\n // Scroll into view on search/init\n this.autoScroll = input(true);\n /** Use this property to override the default search criteria header */\n this.headerSearchCriteria = input();\n /** Use this property to override the default search results header */\n this.headerSearchResults = input();\n /** Allows to override the text on the search button */\n this.searchText = input(this.#i18n.get('DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH'));\n /** Allows to override the text on the reset search button */\n this.resetText = input(this.#i18n.get('DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_CRITERIA_RESET'));\n /** Whether pressing the enter key on a global level triggers the search. By global we mean if the search filters are not focussed. */\n this.globalEnterTriggersSearch = input(false);\n // User clicked search\n this.search = output();\n // User clicked initialize form\n this.reset = output();\n this.extendedCriteriaToggleText = computed(() => {\n return this.#i18n.get(`DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_FIELDS_${this.showExtendedCriteria() ? 'HIDE' : 'SHOW'}`);\n });\n }\n #i18n;\n onKeyDown(e) {\n if (this.globalEnterTriggersSearch()) {\n e.preventDefault();\n this.doSearch();\n }\n }\n doSearch() {\n if (!this.manualSearch())\n this.searched.set(true);\n this.search.emit();\n if (this.autoScroll()) {\n this.searchResults().nativeElement.scrollIntoView(true);\n }\n }\n doReset() {\n this.reset.emit();\n if (this.autoScroll()) {\n this.searchForm().nativeElement.scrollIntoView(true);\n }\n }\n toggleExtendedCriteria() {\n this.showExtendedCriteria.update((showExtendedCriteria) => !showExtendedCriteria);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarSearchScreenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarSearchScreenComponent, isStandalone: true, selector: \"bar-search-screen\", inputs: { showToolbar: { classPropertyName: \"showToolbar\", publicName: \"showToolbar\", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: \"actions\", publicName: \"actions\", isSignal: true, isRequired: false, transformFunction: null }, hasExtendedCriteria: { classPropertyName: \"hasExtendedCriteria\", publicName: \"hasExtendedCriteria\", isSignal: true, isRequired: false, transformFunction: null }, hasInfoSection: { classPropertyName: \"hasInfoSection\", publicName: \"hasInfoSection\", isSignal: true, isRequired: false, transformFunction: null }, fixedInfoSection: { classPropertyName: \"fixedInfoSection\", publicName: \"fixedInfoSection\", isSignal: true, isRequired: false, transformFunction: null }, searchDisabled: { classPropertyName: \"searchDisabled\", publicName: \"searchDisabled\", isSignal: true, isRequired: false, transformFunction: null }, searched: { classPropertyName: \"searched\", publicName: \"searched\", isSignal: true, isRequired: false, transformFunction: null }, showExtendedCriteria: { classPropertyName: \"showExtendedCriteria\", publicName: \"showExtendedCriteria\", isSignal: true, isRequired: false, transformFunction: null }, internalForm: { classPropertyName: \"internalForm\", publicName: \"internalForm\", isSignal: true, isRequired: false, transformFunction: null }, manualSearch: { classPropertyName: \"manualSearch\", publicName: \"manualSearch\", isSignal: true, isRequired: false, transformFunction: null }, autoScroll: { classPropertyName: \"autoScroll\", publicName: \"autoScroll\", isSignal: true, isRequired: false, transformFunction: null }, headerSearchCriteria: { classPropertyName: \"headerSearchCriteria\", publicName: \"headerSearchCriteria\", isSignal: true, isRequired: false, transformFunction: null }, headerSearchResults: { classPropertyName: \"headerSearchResults\", publicName: \"headerSearchResults\", isSignal: true, isRequired: false, transformFunction: null }, searchText: { classPropertyName: \"searchText\", publicName: \"searchText\", isSignal: true, isRequired: false, transformFunction: null }, resetText: { classPropertyName: \"resetText\", publicName: \"resetText\", isSignal: true, isRequired: false, transformFunction: null }, globalEnterTriggersSearch: { classPropertyName: \"globalEnterTriggersSearch\", publicName: \"globalEnterTriggersSearch\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { searched: \"searchedChange\", showExtendedCriteria: \"showExtendedCriteriaChange\", search: \"search\", reset: \"reset\" }, host: { listeners: { \"window:keydown.enter\": \"onKeyDown($event)\" } }, viewQueries: [{ propertyName: \"searchResults\", first: true, predicate: [\"searchResults\"], descendants: true, isSignal: true }, { propertyName: \"searchForm\", first: true, predicate: [\"searchForm\"], descendants: true, isSignal: true }], ngImport: i0, template: \"
\\r\\n

{{ headerSearchCriteria() || ('DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_CRITERIA' | i18n) }}

\\r\\n @if (internalForm()) {\\r\\n
\\r\\n \\r\\n
\\r\\n } @else {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @if (hasExtendedCriteria()) {\\r\\n
\\r\\n \\r\\n
\\r\\n @if (showExtendedCriteria()) {\\r\\n
\\r\\n \\r\\n
\\r\\n }\\r\\n }\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n@if (hasInfoSection() && (searched() || fixedInfoSection())) {\\r\\n
\\r\\n \\r\\n
\\r\\n}\\r\\n\\r\\n
\\r\\n

{{ headerSearchResults() || ('DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_RESULT' | i18n) }}

\\r\\n @if (!searched()) {\\r\\n

Start zoekopdracht voor resultaten

\\r\\n }\\r\\n
\\r\\n @if (showToolbar()) {\\r\\n \\r\\n @for (action of actions(); track $index) {\\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: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2$2.MatButton, selector: \" button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] \", exportAs: [\"matButton\"] }, { kind: \"ngmodule\", type: MatToolbarModule }, { kind: \"component\", type: i2$4.MatToolbar, selector: \"mat-toolbar\", inputs: [\"color\"], exportAs: [\"matToolbar\"] }, { kind: \"component\", type: BaasActionButtonComponent, selector: \"baas-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"pipe\", type: BarI18nPipe, name: \"i18n\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarSearchScreenComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-search-screen', standalone: true, imports: [NgClass, NgTemplateOutlet, MatButtonModule, MatToolbarModule, BaasActionButtonComponent, BarI18nPipe], template: \"
\\r\\n

{{ headerSearchCriteria() || ('DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_CRITERIA' | i18n) }}

\\r\\n @if (internalForm()) {\\r\\n
\\r\\n \\r\\n
\\r\\n } @else {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @if (hasExtendedCriteria()) {\\r\\n
\\r\\n \\r\\n
\\r\\n @if (showExtendedCriteria()) {\\r\\n
\\r\\n \\r\\n
\\r\\n }\\r\\n }\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n@if (hasInfoSection() && (searched() || fixedInfoSection())) {\\r\\n
\\r\\n \\r\\n
\\r\\n}\\r\\n\\r\\n
\\r\\n

{{ headerSearchResults() || ('DOMAIN_BAR_CONTROLS.SEARCH_SCREEN.SEARCH_RESULT' | i18n) }}

\\r\\n @if (!searched()) {\\r\\n

Start zoekopdracht voor resultaten

\\r\\n }\\r\\n
\\r\\n @if (showToolbar()) {\\r\\n \\r\\n @for (action of actions(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\" }]\n }], propDecorators: { onKeyDown: [{\n type: HostListener,\n args: ['window:keydown.enter', ['$event']]\n }] } });\n\n/** Represents a tag used in a menu item */\nclass BaasMenuItemTag {\n}\n\n/**\n * @deprecated use BaasMenuItem in conjuction with <baas-layout>\n * Represents a menu item.\n */\nclass BarMenuItem extends BarLink {\n}\n\n/** Represents a tag used in a menu item */\nclass BarMenuItemTag {\n}\n\nvar BarMenuItemTagType;\n(function (BarMenuItemTagType) {\n BarMenuItemTagType[\"Success\"] = \"success\";\n BarMenuItemTagType[\"Warning\"] = \"warning\";\n BarMenuItemTagType[\"Error\"] = \"error\";\n BarMenuItemTagType[\"Info\"] = \"info\";\n BarMenuItemTagType[\"Default\"] = \"default\";\n})(BarMenuItemTagType || (BarMenuItemTagType = {}));\n\n/*\n based on https://manuel-rauber.com/2016/01/05/angular-2-spinner-component/\n we didn't want to link with a third party module\n*/\nclass BarLoadingComponent {\n #delay;\n #currentTimeout;\n constructor() {\n this.options = model(undefined);\n /* Whether to block the page or work on element */\n this.blockPage = input(false);\n this.running = model(false);\n this.fromDirective = signal(false);\n this.delayedRunning = signal(false);\n this.duration = computed(() => {\n return this.options()?.duration || 'short';\n });\n this.#delay = computed(() => this.options()?.delay || 0);\n this.#currentTimeout = undefined;\n effect(() => {\n const running = this.running();\n this.#log('Running = ' + running);\n untracked(() => {\n if (this.options()?.enabled === false) {\n this.#log('Loading disabled; skipping');\n return;\n }\n if (!running) {\n this.#cancelTimeout();\n this.#log('Delayed running false');\n this.delayedRunning.set(false);\n return;\n }\n if (this.#currentTimeout !== undefined) {\n this.#log('Existing timeout, skipping');\n return;\n }\n this.#log('Creating new timeout');\n this.#currentTimeout = window.setTimeout(() => {\n this.#log('In timeout, delayed running ' + running);\n this.delayedRunning.set(running);\n this.#cancelTimeout();\n }, this.#delay());\n });\n });\n }\n ngOnDestroy() {\n this.#cancelTimeout();\n }\n #cancelTimeout() {\n if (this.#currentTimeout !== undefined) {\n this.#log('Cancelling timeout');\n window.clearTimeout(this.#currentTimeout);\n this.#currentTimeout = undefined;\n }\n }\n #log(message) {\n if (this.options()?.logging === true) {\n console.log(`[BarLoadingComponent] ${message}`);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarLoadingComponent, isStandalone: true, selector: \"bar-loading\", inputs: { options: { classPropertyName: \"options\", publicName: \"options\", isSignal: true, isRequired: false, transformFunction: null }, blockPage: { classPropertyName: \"blockPage\", publicName: \"blockPage\", isSignal: true, isRequired: false, transformFunction: null }, running: { classPropertyName: \"running\", publicName: \"running\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { options: \"optionsChange\", running: \"runningChange\" }, ngImport: i0, template: \"
\\r\\n \\r\\n @if (delayedRunning() && (!options() || options()?.overlay || !options()?.overlay)) {\\r\\n
\\r\\n \\r\\n @if (duration() === 'long') {\\r\\n \\r\\n }\\r\\n
\\r\\n @if (duration() === 'short') {\\r\\n \\r\\n }\\r\\n {{ options()?.message || ('DOMAIN_BAR_CONTROLS.LOADING' | i18n) }}\\r\\n
\\r\\n
\\r\\n
\\r\\n }\\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: MatCardModule }, { kind: \"component\", type: i1$5.MatCard, selector: \"mat-card\", inputs: [\"appearance\"], exportAs: [\"matCard\"] }, { kind: \"ngmodule\", type: MatProgressBarModule }, { kind: \"component\", type: i1$6.MatProgressBar, selector: \"mat-progress-bar\", inputs: [\"color\", \"value\", \"bufferValue\", \"mode\"], outputs: [\"animationEnd\"], exportAs: [\"matProgressBar\"] }, { kind: \"pipe\", type: BarI18nPipe, name: \"i18n\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLoadingComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-loading', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass, MatCardModule, MatProgressBarModule, BarI18nPipe], template: \"
\\r\\n \\r\\n @if (delayedRunning() && (!options() || options()?.overlay || !options()?.overlay)) {\\r\\n
\\r\\n \\r\\n @if (duration() === 'long') {\\r\\n \\r\\n }\\r\\n
\\r\\n @if (duration() === 'short') {\\r\\n \\r\\n }\\r\\n {{ options()?.message || ('DOMAIN_BAR_CONTROLS.LOADING' | i18n) }}\\r\\n
\\r\\n
\\r\\n
\\r\\n }\\r\\n
\\r\\n\" }]\n }], ctorParameters: () => [] });\n\n// Inspired by https://github.com/kuuurt13/ng-block-ui/blob/master/lib/directives/block-ui.directive.ts\nclass BarLoadingDirective {\n #templateRef;\n #viewRef;\n // holds reference to the bar loading component\n #componentRef;\n constructor() {\n this.#templateRef = inject(TemplateRef);\n this.#viewRef = inject(ViewContainerRef);\n this.barLoading = input();\n this.barLoadingOptions = input();\n effect(() => {\n const barLoading = this.barLoading();\n untracked(() => {\n if (this.#componentRef != null) {\n this.#componentRef.instance.running.set(barLoading);\n }\n });\n });\n effect(() => {\n const options = this.barLoadingOptions();\n untracked(() => {\n if (this.#componentRef != null) {\n this.#componentRef.instance.options.set(options);\n }\n });\n });\n }\n ngOnInit() {\n this.#viewRef.createEmbeddedView(this.#templateRef);\n // get the real element on which directive is applied\n const parentElement = this.#viewRef.element.nativeElement.previousSibling;\n parentElement.style.position = 'relative';\n // create the bar loading component\n this.#componentRef = this.#viewRef.createComponent(BarLoadingComponent);\n this.#componentRef.instance.running.set(this.barLoading());\n this.#componentRef.instance.options.set(this.barLoadingOptions());\n // put it into the component on which the directive is applied\n parentElement.appendChild(parentElement.nextSibling);\n // tell the component it is being invoked from the directive\n this.#componentRef.instance.fromDirective.set(true);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLoadingDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"18.2.13\", type: BarLoadingDirective, isStandalone: true, selector: \"[barLoading]\", inputs: { barLoading: { classPropertyName: \"barLoading\", publicName: \"barLoading\", isSignal: true, isRequired: false, transformFunction: null }, barLoadingOptions: { classPropertyName: \"barLoadingOptions\", publicName: \"barLoadingOptions\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLoadingDirective, decorators: [{\n type: Directive,\n args: [{ selector: '[barLoading]', standalone: true }]\n }], ctorParameters: () => [] });\n\n/**\n * Holds loading information.\n */\n// NOTE next is needed because of static property\n// @dynamic\nclass BarLoadingOptions {\n static get default() {\n return { enabled: true, overlay: true, delay: 500 };\n }\n}\n\nconst BAAS_LAYOUT_STATE = new InjectionToken('Layout settings');\nconst BAAS_LAYOUT_GVK = new InjectionToken('Layout GVK enabled');\n\nconst IMAGES_PREFIX = 'images/all/';\nconst BAR_LAYOUT_CONSTANTS = {\n IMAGES: {\n FAVICON: IMAGES_PREFIX + 'VO-favicon.ico'\n },\n GVK_KEYS: {\n MENU_STATE: 'domain.basisarch.web.core.menuState',\n PAGE_STATE: 'domain.basisarch.web.core.pageState'\n }\n};\n\n// NOTE do not expose this, this is a man-in-the-middle class\n/** Internal service for gvk stuff with the layout.*/\nclass BarLayoutInternalGvkService {\n constructor() {\n this.#window = inject(_BaasWindow);\n this.#gvkManager = inject(BarGvkManager, { optional: true });\n this.#state = inject(BaasAppState, { optional: true });\n this.#gvkEnabled = inject(BAAS_LAYOUT_GVK);\n // event emitter invoked when the layout needs to set the menu state\n this.barMenuStateChanged = new EventEmitter();\n // invoked when the layout needs to set the compact modus\n this.compactChanged = new EventEmitter();\n this.#gvkSettings = {\n // storage under webcore appcode because it should be compatible with Legacy MVC apps\n appCode: 'BWCWUI',\n // run in GVK version 1 which is compatible with MVC applications\n compatibilityMode: BarGvkCompatibilityMode.Version_1\n };\n // flag used to determine whether the page state can be changed by the behavior subject subcribes in the layout service\n this.#allowPersistPageState = true;\n this.#disabled = false;\n }\n #window;\n #gvkManager;\n #state;\n #gvkEnabled;\n #gvkSettings;\n // flag used to determine whether the page state can be changed by the behavior subject subcribes in the layout service\n #allowPersistPageState;\n #barMenuState;\n #barPageState;\n #disabled;\n /** Whether disabled */\n get disabled() {\n // user storage must be injected\n return this.#gvkManager == null || !this.#state || !this.#state.basiscontext || this.#gvkEnabled === false || this.#disabled;\n }\n /** Invoked before user interface is loaded */\n async preInit() {\n if (!this.disabled) {\n const disabled = await this.#gvkManager.checkDisabled(this.#gvkSettings.appCode);\n this.#disabled = disabled;\n if (!disabled) {\n const menuState = await this.#gvkManager.getItem(BAR_LAYOUT_CONSTANTS.GVK_KEYS.MENU_STATE, this.#gvkSettings);\n const pageState = await this.#gvkManager.getItem(BAR_LAYOUT_CONSTANTS.GVK_KEYS.PAGE_STATE, this.#gvkSettings);\n // combine observables\n // set local state\n this.#barMenuState =\n menuState && menuState['bar-layout-menu'] && menuState['bar-layout-menu']['OTHER']\n ? menuState['bar-layout-menu']['OTHER']['bar-menu-state'] || 'default'\n : 'default';\n this.#barPageState =\n pageState && pageState['html'] && pageState['html']['OTHER'] ? pageState['html']['OTHER']['barPageState'] || 'default' : 'default';\n }\n }\n }\n /** Does the initialization. */\n init() {\n if (!this.disabled) {\n // CSS will apply itself for the menu based on next dom value\n document.documentElement.setAttribute('data-bar-menu-state', this.#barMenuState);\n this.barMenuStateChanged.emit(this.#barMenuState);\n document.documentElement.setAttribute('data-bar-page-layout', this.#barPageState);\n this.#allowPersistPageState = false;\n // notify the layout to set compact and touch modus (without saving to gvk)\n this.compactChanged.emit(this.#barPageState === 'compact');\n // timeout as effects run asynchronously (in BaasShellComponent) we have an effect on this which triggers gvk persistPageState\n this.#window.setTimeoutOutsideAngular(() => (this.#allowPersistPageState = true));\n }\n }\n /**\n * Persist the chosen menu state into the user storage.\n * @param barMenuState State of the menu.\n */\n persistMenuState(barMenuState) {\n if (!this.disabled) {\n // use legacy GVK format for compatibility with ASP.NET MVC applications\n const value = {\n _gvk_timeStamp: new Date().getTime(),\n _gvk_setName: BAR_LAYOUT_CONSTANTS.GVK_KEYS.MENU_STATE,\n 'bar-layout-menu': {\n OTHER: {\n 'bar-menu-state': barMenuState\n }\n }\n };\n // save in the user storage\n this.#gvkManager.setItem(BAR_LAYOUT_CONSTANTS.GVK_KEYS.MENU_STATE, value, this.#gvkSettings);\n }\n }\n // Set new page state and save to gvk\n /**\n * Persists the chosen page state into the user storage.\n * @param barPageState State of the page.\n */\n persistPageState(barPageState) {\n if (!this.disabled && this.#allowPersistPageState) {\n document.documentElement.setAttribute('data-bar-page-layout', barPageState);\n // use legacy GVK format for compatibility with ASP.NET MVC applications\n const value = {\n _gvk_timeStamp: new Date().getTime(),\n _gvk_setName: BAR_LAYOUT_CONSTANTS.GVK_KEYS.PAGE_STATE,\n html: {\n OTHER: { barPageState: barPageState }\n }\n };\n this.#gvkManager.setItem(BAR_LAYOUT_CONSTANTS.GVK_KEYS.PAGE_STATE, value, this.#gvkSettings);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutInternalGvkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutInternalGvkService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutInternalGvkService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/** Internal BaaS layout service NOT EXPOSED */\nclass _BaasInternalLayoutService {\n #layoutState;\n #injector;\n #location;\n #i18n;\n #gvk;\n // avoid IOC cyclic dependency error (because core service is bound to initializers)\n get #core() {\n return this.#injector.get(BarCoreService);\n }\n #mainAction;\n #backAction;\n // TODO in responsive modus this should be a computed based on device type?\n #smallDevice;\n constructor() {\n this.#layoutState = inject(BAAS_LAYOUT_STATE);\n this.#injector = inject(Injector);\n this.#location = inject(Location);\n this.#i18n = inject(BaasI18n);\n this.#gvk = inject(BarLayoutInternalGvkService);\n // this will define the icon button with the home icon\n this.internalContentActions = signal([]);\n /** internal banner used by meldingen, we use an internal banner otherwise we cannot define a custom banner\n because of the async timing uncertainties we would always override the custom banner through the meldingen\n this way the external banner (BaasLayout) always gets priority over this one */\n this.banner = signal(null);\n this.deviceType = signal(undefined);\n this.#mainAction = signal(undefined);\n this.mainAction = this.#mainAction.asReadonly();\n this.#backAction = signal(undefined);\n this.backAction = this.#backAction.asReadonly();\n // TODO in responsive modus this should be a computed based on device type?\n this.#smallDevice = signal(undefined);\n this.smallDevice = this.#smallDevice.asReadonly();\n effect(() => {\n // NOTE whenever devicetype is altered we need to recompute if it concerns a small device\n this.deviceType();\n untracked(() => this.#defineSmallDevice());\n });\n }\n onResize(event) {\n this.#defineSmallDevice();\n }\n setMenuState(state) {\n document.documentElement.setAttribute('data-bar-menu-state', state);\n // gvk will give us the menu state\n this.#gvk.persistMenuState(state);\n }\n init() {\n this.#backAction.set({\n action: () => {\n this.#location.back();\n },\n tooltip: this.#i18n.get('DOMAIN_BAR_LAYOUT.BACK'),\n icon: {\n class: 'fas fa-arrow-left',\n srText: this.#i18n.get('DOMAIN_BAR_LAYOUT.BACK'),\n iconOnly: true\n }\n });\n const mainAction = {\n tooltip: this.#i18n.get('DOMAIN_BAR_LAYOUT.MAINSCREEN'),\n icon: {\n class: 'fas fa-home',\n srText: this.#i18n.get('DOMAIN_BAR_LAYOUT.MAINSCREEN'),\n iconOnly: true\n }\n };\n if (this.#layoutState.homeUrl != null) {\n // use provides an override for the layout module use this (which is href for now)\n mainAction.href = this.#layoutState.homeUrl;\n }\n else {\n mainAction.action = () => {\n // just use default core functionality if no override\n this.#core.navigateHome();\n };\n }\n this.#mainAction.set(mainAction);\n this.#defineSmallDevice();\n }\n #defineSmallDevice() {\n this.#smallDevice.set(window.innerWidth < 1200);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BaasInternalLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BaasInternalLayoutService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BaasInternalLayoutService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [], propDecorators: { onResize: [{\n type: HostListener,\n args: ['window:resize', ['$event']]\n }] } });\n\n/** Public BaaS layout service */\nclass BaasLayoutService {\n constructor() {\n this.#internalLayout = inject(_BaasInternalLayoutService);\n /** Whether the UI interceptor is enabled or disabled. */\n this.interception = true;\n this.title = signal(undefined);\n this.subTitle = signal(undefined);\n this.mainHeader = signal(undefined);\n this.sidebar = signal(undefined);\n this.banner = signal(undefined);\n this.appMenuItems = signal(undefined);\n this.menuItems = signal(undefined);\n this.menuItemsAutoCollapse = signal(undefined);\n this.menuState = signal(undefined);\n this.externalLinkGroups = signal(undefined);\n this.strikingActions = signal(undefined);\n this.operations = signal(undefined);\n this.submitActions = signal(undefined);\n this.moreActions = signal(undefined);\n this.contentActions = signal(undefined);\n this.mainAction = signal(undefined);\n /** Loading overlay visible or not. This is used when the app is loaded, but when something is loading (e.g. network, http call). */\n this.loading = signal(undefined);\n this.loadingOptions = signal(undefined);\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. */\n this.appLoading = signal(undefined);\n this.compact = signal(undefined);\n this.touch = signal(undefined);\n this.mobileFriendly = signal(undefined);\n this.appVersion = signal(undefined);\n /** @experimental Device type which can only be used in responsive layout modus. Otherwise the value remains undefined. */\n this.deviceType = this.#internalLayout.deviceType.asReadonly();\n }\n #internalLayout;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutService, decorators: [{\n type: Injectable\n }] });\n\nconst BAR_BANNER_IMAGE = {\n BIET: 'data:image/png;base64,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',\n BOOM: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASEAAAEmCAYAAAAtGCajAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAU5wSURBVHgB7L0HmFXV2f596lRmYOhNiqCIKAh2TewFe4tdUWPsGntiiTFGjV2j2LuCYi+osdcosXexotgA6UOZPud8v9969+IjJnlT/voSdPZ1zTUz5+y99mrPve6nrGelUm1X2/Wtq1gspuvq6npNmDChPNV2tV3f85VJtV1t199e2euuu+7hiRMnHpZqu9qu7/lqA6G262+uL7/88oChQ4dO79ix47v33nvvBqm2q+36Hq9cqu1quxa7AKDlPv3006EtLS1rTp069YiFCxc+y8fPpNqutut7utpAqO36q2vKlCkt6XR6+aqqqhc6dOhwzgcffPBpqu1qu77Hq00d+4Fds2bNWubOO+/cQONy6t+87rvvvk14fr/W1tb8119/vWImk1nj4IMPbp9qu9qu7/FqA6Ef2HXPPfecNHny5MfvuOOOrVP/5jVkyJA/FwqFYysqKlYHxHrDhH61YMGCE1NtV9v1PV5tIPQDuh555JEeNTU1H/Tp0+fcxsbGT779/auvvlrxvz3/ySefDAWEVv3888+fmzRp0u1z587t0rlz56//E1bVdrVd/+rVBkI/oGvkyJFTMSiXo0bNxqZT+u3vMThv+e677971954FdDbO5XJjAZ4rZs6cufYaa6yxPWXUYpjeetq0aTv96U9/Kk21XW3X93C1gdAP7Orbt++XyyyzTA9+/mpsX3nllcNxuZ/x1FNPzfx7z33xxRfPvvnmm6f169dv/V69ehVKSkpmDBw4cA7PzQaIxuCy3zfVdrVd38PVBkI/kAtDcsVll1224YQJE9a4++67j8bAfCxqVInfffzxx6WwoOUrKyuXB4i2f+aZZ7b59vMbbrhhC6rXPbjoJ5aVlWUfe+yxIgDUnr9Xxi60Wu/eva9KtV1t1/dwtYHQ/3Jh3M3+X6gh2lyw1+RhIz1feOGFAe+//36n1L95YcspjhgxYuRPfvKTnffbb7+X+ftVACVEPKNOrbTmmmuWjR079pvm5maBabBt+3YZ2IKavvrqqzyAVdGuXbver7/++qxbb7215a677trfOgJmXcaPH39Jqu1qu77Dq83g+E+uiRMnHoKN5f7bbrtt2qmnnlpMp9PF1HdwYQReBsEuIvBN8+fP7w7TGNWlS5fhsI7efLz3Kqus8vK3n4kG4n9UB0Dj4Lq6usux6aQ++OCDR9ZZZ52r+H/IoEGDVkHVWuWNN97oyefn/Pa3vz1npZVWaorPPf300zm+v7m6uvpu2NKlfNRt+vTpxXHjxvGq9DRAbVdUs7/gut+ktLR0m9mzZ5+53XbbTUm1XW3Xd3C1BSv+kwuhq8U+cv3hhx/+wTfffJPBsHvc4gL871yXXnrpiClTpnRBqN/D/f1nPipZccUV77zqqqsuxe5yGEKe7d69u4J/AN/9DQi999573QCV1WE4T2DzqV/8O5nNFVdcseLyyy8vSMmMVuFdvwPMPkelupq/p+y+++4dBg8e/Az3/lW5qmLHHXfccNhPnvZ1w0CdevHFF9OAbwrj9Feoae94DyxtXQDu9wDQN6m2q+36jq42EPoHl0I9fPjwHEyloUePHpsggJsBGK9hoP2PAGjOnDkdcKELLuvhiRpdXl7eEQGf1a1bt6lnnHHGx08++eSDMJVNKioq3s9ms6P/XhmohsfBVH623HLLPXj77bc/uuuuuz7g55999lkZbOonqFz9Tj755CJ2nzRqVxOg1ZN33bfWWmuN/PDDDyfxzjdlU5FJ8XeGvwv+jRr3Jt9vjko4m2eqJk+enKcu8wHc3+2www5zH3roIW1D2+Xz+XHc3gZCbdd3drXZhP7BhaH3QATxK0Do0CeeeKIIWLS+9tprd/ynMTOAQstPf/rTp/fee+87ALUDKavdmDFjulx//fVrwoJ6YEjOAz7VAErfyy+//G9sQgIN6lodLvi+sLM9qM/lZ555ZrD59O/fvwHAGXv66advveWWWxapt6CSBzCf5v7DUbNGrbbaarWA3M/vvffejj6DCtYd4/MtgFfXpPxzYGIV2IXaw7SsiyzwzZqamqZ58+b9dNiwYZYzBIa1fartaru+w6sNhP7BdfTRR1+BIfZ9BHoFjMbPwg7eBZA2vuCCCwbfcssty6X+zatr164LcH3fR1nd3nnnnVUAs/lrr732n1F/NnvwwQdPbmxsXMX7Nt1002tRhZ675JJLqv3fbRj+holt0dDQcAq2mTexJ73IR6NhPZfF8lEZL9t5552/+uijjzLt27cvPv/88915x46U14l3VPPuo1DHvobVzPZ+VK08dp+BL7/8cp429oDx3AzzmY79KIv6lYIVpahTH971kxNPPPEZVNFHAaZVqf+5qbar7foOrzYQ+gcXjOBnCOptsJZmDLwv49a+CAFfabfddnsaRnI3XqKKf6c8mEZ3VKItUGcOfvzxx1WVxtTW1g4GGOZQ7nYDBgzotu6666b5fQr/bzZ16tQ7Ub9G8d5PqUsN722ur69P4TkbRr02xQi99XPPPdcllo8KdhZAs6CpqSk1Y8aM9BprrDGvT58+Od4r4Bg/lANU1x09evQOuuyxE9VR3izq08T/FwGsQ2BNnQAZin69BRZ0PcxomU6dOo0AzLQR3YU96CJAbGiq7Wq7vsMrm2q7/uaC9RyKcfYGhH9LhDaFcD+FEJ4CIHVDHZmPrWhVWMyCf7U8mM6yf/7zn+9GyI+ETTTCZrKoe6sBGNW4xD9addVVK/BadYK9pACdIvajnQCoQTCfHQCPsS+99NJ83nsGz3anuDTqVwbb0M2AzMfrr7/+3DvvvLO4ySabnM53m/KuEgzHqZtuuqmMz1KwrhTgl8Kek+bnsCOPPPIRPruc50+nnCGoXqvyfz/AquNf/vKXHGWW6F3Djr0KfZBHXetAueWwo6uwF+0BGH6darvaru/wamNC37peeeWVDRD+3oBCSrsIAKRBeQdsMAtRjZqxD71pvMy/UybsYgT2oFI8VTKZMjxY+dVXX/0VbEFfoAJ9in0mC9uYCfgswGtWBJTKNthgg9Qee+xRhKmstfLKK59JPcpRj1IYnwOzge2cAlB8CJAd6zt69uzZBIi0DhkypBmmVcTonVKtwohdxDY0jnftgor5DKDSEXazEf8vh42oElvPinvttVdn6lQC+8nCgubTzjLe4U8zfTEfdvbEsssu+8Vmm22Wp57/8sKFGlhy//3374aR/0CN4Km2q+36O1dbnNC3LgSzHx6jSbCHD3GDL4faVXj22WebAaTP+frt9dZb7+Gtt956OkL5umDVr1+/1/9ZmbCNcozA98GENoZxZGBUTYDF7FtvvbU7tqJv+Gmv4MN+FqJWlc+dO3eaMT0HHnhgCjbyCMbh/jCh/gBSZuLEiXnsQ6lDDjkkhcqmO34eQPMiZa573XXXVcBWWnDzy2hS1D/11FNPPbTRRhtN47PjKX9TDOTjaFqG/1OAUagf6t9cDNYdKH8SKtp7APC2AFI9dqbpuu25JbfnnnveS5nLYxv6EAA9DkN33T9rNwyuE+D5ImA2ABC6CzA+C5b2ht/R3mqAtLjCCivMT7VdP+qrbXVa7EINa4/gbYg36HAEsT+soRm1KQ87KRcIUM3m4HXaAy/RvRMmTHgaFW2Lf6Xc3r17N2C/qYRlNWKLWQjrmIFBuApQKMJgugESZZRf1DDMPRnd9KhhH8G4irCdkYDDIIzNs2FkdbCdGTKcG264IcXzKepYDbhtxn2VGJdTsJ4cwCGYGimd2nfffftR373vvvvu3wBKO+KNSwMkKcpMwZhqabNG7XayLIB1AGVt63cYppuxCWncrtp88833wEA9nvdv+Pbbbx8EaN2NvWrA/9ZmAHYFgPEY7i3cfPPNf4HlHRcByAs1dIfZs2evo7cRsNqatm6nBzDVdv3orrY4ocUuhHA+NpleprOAqWRhFU0AhCpUGmEpQ5B+jmo0A/ZRhmrVH5bSG+HZABvPc4BKDXaWIkAw+9vlGpeDa/4oPFXLwSZGUd4agE8lrKQIiMhWZsOqamAX/QCWubCDR1HJWvhsVew4u1x00UUTebYH4FBK3QoATfGtt94qwmQK3JPjI71nRRhVWnVOlQ3QC0AEsxoiwFDvI84444xGq8N9RVjILNq3gHaWY/sqgZloPHenfYoyBLgqwCnNsyUY0S9CvavXVgSz0Xi+Kcb50yjjGgDxRdrX+O02wxwvg0VuSN+0CpCvvfbaHgDePbzzU9reh3a1AvZNDzzwwCBA8jzBFYB+CdBah3vexZ71Uart+lFcPxp1jFW8IwIzH3bQDmayA0LVG0G5BhDpAHhMxgMWIpBPO+208XiWtuQeDcRZhER16rMRI0bUITwzAYC7EZ5RCORqqDR1AAPEpeIQ/ndz6AqwjPsBrqu//X4Mxb0GDx48Fnf3+hqMFXbUmhS2JpnSc2+++WY/2EEfXOR1/P582223zWPv+RC2tSn/tyDE5XjS0thsUnV1dQJFM/emYRv5yy+/3DQeLQBX7oQTTkjxWRFANbapFlBsD8uS7TRhHC+RJVGP9JgxY4qAQh3teoV3bCD7Eax4VzP9keG3xu/ZAN3CbbbZpg9tLz788MOnwaam8t76DTfc8DFA1AjsvwEL1U+A6c5rrrkGQlU+jHdfBaP81ahRo57gmW3vu+++Maho6wCAh8EKN6bPGnnP0aiCC6nvZOq7Js//R0GhbdfSd/1omBCr6wqAzgg8QoNgMIchgLWoOH0xng5m1d8LpjOZ2zII+3DVMNhKLSyjEytzFttLP5hCE4Ix5Nhjjy0H0FaF0Xxz1VVXPXPcccdtwecnAip9tLEgdHMpczZs401+FiUWAxDqAbyHEOD1ARztObKRNAZrgwvXg73U894iglmB922wWy+M40EwiwhtCQykCNi43UyDdRr2lEe4DSUwEDL15JNPFrHjtPBMDkBpBdhaTNPqO2iLUdQ52tuw1lprVbgt41e/+pWqXOVdd921LiDQCrBlYWAymBxtDmyIulbDwFL0QwpG8xQewbUBzmXHjh278wEHHDCdZk3/e33tlhIA82xA8XTY1f70w/kyNhjVCpQzkvd85ZAAbF0MvKRulQB7lnprG5vE/20A9CO6fjQuelSDaQj+SrChdVBf3oVl6IIejtC3suL3RFAPYfWfjEAe8dBDD8lUqmBCH+JF+hzB7gVLeJ9VfxZsoh/PjUf4V1txxRXfM9YH5pHl96vYc/qipgwEIPZAkHvDHBZt0kJw60855ZT+gEk7/u2pgRnBK2JjSrvfC1XkbYSvp+oUdpk03xf5LAUzUJ0x7kcXu6pUCtUv/ctf/rKIYKe9B6BIo35lAZIMdZVZZQDDLGBQIlABmmm8bY0YxxfyI8CWYNsJjMr9aoBYGgN7GuDQLpbSZiQIwZoytLN8q622mk/7azDQjwck7j3vvPOe+Gf9DRB/AYjdC8gsS5tH8H536PfD1rYH71yddujJ2xewrcA2VKvNDJY6FWb2+IUXXvh0qu360Vw/GhDacccdy1HBfoNhdnWAaDjqgXl23D/VHkHog0p1HULzIcI3CsEp5Z40AtMZQGhmhX4d1tADxtKHMhaiSqyGXaSOe9MAzxy+m4hQVSLYl/FcRze9IsDf4HH6qyyGv/3tb3e+/fbb9wVYcqhV7uHy/SkZCO/vqW2HK41qV8TwKzilAbU0gjlZYYVF5GBUaX4HAKJusp8GGFJeMILp6LpP7bDDDilBizYWsRWl9YQBJjlA8FUAswb1qx0q41zAp9zvANb0xhtvbGxQCu+f9UoDwGlc8mnUrjSAnac+VTvttNM59MHbAMacf6XPd9tttwwM9J5hw4Z1B8zT1LUaz+IMQL6w/vrrzwaU5gHojYBPN7eaAPzP4OEbgLfvfv5uTLVdP4rrB62O6XYGMHbmz+cAlBEYP9cDOKpgAiEGSMEFiBoQvrkI7X54gE7DSFqJYC5AYCoxUqf5/zMYyGzunYjKlOG5uQjWEIRmK1b0B2Eca3L/ss8//3wT9/R++umnBwNAB7Ca3xnroY0EIbzhyiuv3AkwELgC+Ahi2oTwdBls6NYOmUkK0FGFCiCpOgVI9cdbpnomO2lEqOtuueWWDrwzjf2kDDWweOSRR6YRavd7GRuU0ohM29OwGF3lKe+FcawNeJagSha5twrjdsowAA3qgqLvBpA0rr8NexlGf6VoWyt1L9LmDODzIH2wHU2a9I/6HI9be949jvbcSxsr7rjjjg4AWEcAcaGeMH7eAFg70OePU/5RvKfBtCH0sYbxbWBab6O21abarh/N9YN20WOcHYUAjUa490J4DkCgq1BVUgiiKSpkH9pTyoxA5vZBgFAH3d4IYztUtwLC/xGgsx5Mpz3qynMARjWAMpJVejsEKGsAIOC2OV6oXpCH6995551RMIjZ2GwecptGrAf2mp4CBGV96dYLQKR49tlnpzCxuNE0hVqWRn0xt5C793Vvy2oMWlQdCwxF28+dd96Zwt1dAgC2ItRpXfUYe1OHHnqocTdFGEsRA7ubb40vSk2YMCF9xRVXFDWuA0juJyvxHmwxab7PCYT2AyCUAmxTCeiksYsNhGXp1SuMHj06DXPKyZjoN5nXdf9oEy+fVwOAG9N/PVFJL7v00kvPApDORzX9kp8q2vQ+KupGgOya1OF4+r0dNqZZ9PUzBl/C0h6DoeXbEuv/uK4ftDqGAL4GUxiHvN3y6quvDthnn33CxkwYQRBq7SIKH6DQ0Q2drvgKL8Za91o1wVQygFY7gGfA/vvvvzoCux4A0B31bKFlAjjL8rzq3JuoSHkA7BRc4T9Hjfolzx6Fx6oU28362I76AkB9UDvWkYEdc8wxwZbjuww8NAIaRtAKWBa4N43ApjEgp62f3iwN3tYZsLJeGrWNYq6dO3dutSqbdh/qrlqnwTrYc9yq4W+N4Np+eFcadUpg0kifSt6fVg2i7mk/g4EISkXelQeY0qiHCwGtgh47gPZegPQlmM56gPWqW2yxxWOAa72A8bvf/U4b1YoAyZ8B2a4A6k9ge7fRP70AmRd47iHeNZR6LGPua8Aom2wREfA7A6Dvbbnlli4AG/Kuy1ZbbbUX8VIWUm3Xj+L6QYOQExlXdwUgsQcr72zUgBo+LmJ4TWNkTmkQlg3AcoJBFgFLu7VCcJAJIfzttI9gYykCDDV+jvHWvz9HfRkKILyPQC0HKL376KOPjkF9ewK39F4wp2UQwhKYyjCErjdG5r0QyEGUlzEWB8AxlYYG5qAKUa/izjvvrEs8q63H9wAIAmKwG2koNpjR52QnAMVHsBWI3rJh/BDkAiwi/eCDD7bwTB0gUCqD0q0OU0tzXz3sKCu4Uddg6wEQvV/WJLtJC3YCka56XPICsTFIJQCkOZWajj/++PtoL3g1UEP8IzCjh2BtlXjufgOIyACPoz1lqm/UTZZ2KWVejlr5wk033fQC4DoZ1rkT5T1Fv/dDBcuiLuvtawZ8MngE9eSdR/sWAsBvMnbfSQbLtuu///rBG6aPOOKIemwfL/DnRvx0Q7VpRmA0gjYjECFthUnAtKtol1BIDSA0pQVAk0F1MO4mI1ipxiHItYBKOfdWUd48GNUkQOQwPEd/gREIcPuy8vdQzeK+MphEV9UfBDMjmBjno9rjbncDBLULobLIjLSX6Movov4INjKiFMIZ2iFwYiNKw6TSgFCvvffeO2s9Ve8AzLRsh2s+bG8mNqBqVLcMHq2FPgNLKsCiSixfNS961Ww7dQ1AZ3S1Zfk/RvwFlGd9WmBZn/H51zCmSoB6R1SoIozK7RyrU+6xPLsXrGsoKl9HmM0YnjuXe6+FPZ4Asxu+/fbbl9K/H+2yyy7zaNf6AP7zAN/6qI3Nu+66az0gWYHa+cWYMWPm0vfXnnrqqY+1AdCP6/rBg9DVV19duP/++79GeOtQTXZA4AWDNLaHHIxBQWv1fwUalpIeOnRoHUCQRSVJG3GMOqZx2l3o5m1WdWplpc6jktTyWSNCmuHnBmwh+yPAxyCoGwBAGYBAY7Ou7xQApdoXko0ZYMh7PsYeFJKLIeBpbTIIclFDMsLoe9M86/0BIIwpQvhV0QSL9LXXXlvUpY6gF62fbMZ0rNikSgHcjth+BKgiLKQUlpGlfjkA6TXa1QNVx20bAYg0fgtGls/3RYzzgmyKMt4AZL4GrCfwk6fuR6EurQ2YDvF93DsI9tSXct0SUo/heS7tORBGthl9sAaffQ2oX04fHcpnG+OKf+eqq646jOdeoQ4dYZtroR5naEOW+mQAq/GA8qEsECPOP//8TzCmqzpuhSdz9h/+8IeGNlD6YV8/Chc9wLI6AjcOdaYMRqJB+htW8RkIv16aIrYN91sZOGjqizxqRYbfaeNxAAyjj8PWDY24t9122zsI5sus2D+DyRg1PAUBfAM1aFsE9QBd+gixuyuyMKgAQAj3pwYG8lxOmw4qSwmqX473z4UVleMWr8culZehGZQIa0ijrqkyht3w2H50ywfjM2ClyzzYtmRb1EcDvExO1tcKcDXBthoQeBmIWRebaWMd93QG8ErVfwQyt33IAPWiUV768MMPr1c9pC45yujNM31Qm+6m3PGA3c646vujQvXVg6cHjvpXajtCbSyjDe0A4SHUvRlQ2/Wxxx67CSDdB5DqCpguAAg3MGXJfvvtVwubPBF29jpgPAuArQd059A+45rW4p17wPA+5+8K+uhJ1LO1YKx9L7nkkg8Bo385dUrbtXRdPwoQwnYx5ec///nyCNNwPVEAUBUTvkYjMLaW7Lhx41SLPgA4alApsgh+et9999Voq40orbqDcM1B7SrtpWEmlfoEAPmMFT539NFH349ANqOKrYpAbozr/GZYluV01MYEQH300EMP9dILJ+sASNKPPPJICWCVwUhcrq0KFlOlgdrIZ4Q52Ku0C3nBKoLqJEDpQsfYHRibnjPA1G0b1nMOXrLygw46KAMryQG687inknbcCwjM4rleCHM7VTYZlu1T3QIYijIxWFER5qa6ZqL9orFCGrR55qeoZn3X5aKuaHLtq3mnMUJlluWmWvqxnPd5ZFEXDOkLTzrppIvo76n08/J47U4BsIwoH0y91wCcfso78ryjPepiR/qwhj5zAViRHzfpehrIHqhlowDKEsakL6xuPer7AUzqjVTb9YO8fhQg5O5sgGf3e+65ZzBAE9y/qjaswi2AwhOs6AN0w/OTMepYQZQJjR07NuTvce8VwpdD0HJ4nwSxFXh+d2wqq+Hp+vDggw+ez+p+AMbod1j1l8EYPsJnNHYbbwQraAVIFgAoC2AeldpdWOXfR/3qYsCgxmA3iwpQGstlOj6vQZl3ycyKggbsRfWsGaHPGmCojQmgSxnQCOPKAUAhi71ueDxlX9DWrgBoT0DoPH5v5HYPVCRP4kgb2CgACWzapQyU1C6Ecdroa88wk11pxO6DkbsCBlOtfQr1aTYgUwqAN1C39jI1VKwC/ZEBSNvRzv6A6Hy9YADlfngoh9DdH9I/3WCEWUGWZ/W+zaX9VbzD1CXWyU14QSV1i4l1sz9gdGfwfd9f/OIXJQcccMAkjNwFD3VkkchffPHFLam2a6m/fhQghHt9GCvqRbqddYfrJjfjIBO8AJAsB0NS5cmy6me0/SBA6bvvvjsYbjUS67rWFe32B71OGFQFmCw2jfmwhYcuuOCCCwGWbRDcQbCj/rCIwC70bgEWOUAqg7CVYKiuRria+fwrXPn9qEtGt7s70/V+6aWybsYF6Z5H4POXXXZZcLULQIIEDCujfciAR+1OvC+FUTh/5JFHymaCbQu7TQn16gjQmaLD4MF+AF0nVUOBy20aqncCksZxY6O0PdlewxSoy2uAYU/KThtLZV9xWbci9qgqAEB7Wl6bl4Z8QEMjuDFKJsgfBKBugerWmbavCGAKxF3xHuoFzMjq8CI20VeP0tcrudvfNsD0GgA6Nwp3UvXVDkfZRdreC+DqTB+VUrfPYHzbUv+j6MfpANzkVNu11F8/ChC6/PLLzd/Tk8l8FoLzGpR/vcRYmzFqGKHSkyWj0FPmvqfUFlts4QbPAAbaX1R9FAwAINwjOIEhDRhyd4GxDFOYuXc2zKCd7MAIZdmG9h3eleW5LJ40BTULSHSgDu7LSiXRyylsTO4PC4nKBAhTvRrzs+mmmwZwsSw1QQ3mt99+u7YbU3nodRO00tRRwEsZZCiwGWoASNbDdD4ChAbDgkJbtP/oBTOuCIE3lUjwrAkwgrQ76XlXL132ApBlqSqqmvqDqqmqVuT+ZurfChvJeq+szzabQREVM49dqpOGfQDcdLTGYoXocDM9Akjay4YAiouM49Qnx0+pYQH0r9tWZIP1LBALaMceAOEkQHMDyqrl9/sbbLDBQ6m26wdx/agiU1GnKsaPHz/HVVyAcc8WjCSoPxinU0mSeN3i8wGSKoQ9CKigI1sAUEz/mtp8883DvTIUDc3G/iB8TYBRA2pFDqEvf+KJJ0JZgMWiLSK6+wU0hdFnYFZByAUSsyDCDIr+70ZVVSqYQdj3ZV2p0+e8oy9AUHQfFm0JzMkd7gCNaTsCC/J/2Z7GY5mMxmYZjnXxPvtB9Y+r6P44bU2GHiSqY6in2ygEG4AjeARligIo7vYQT6Q9SpsVzxQNLxDctGdhVLYM8xqZzygEQvpju1X74nYSQxRQrQKgXnPNNYFZyjZ9bptttjHCO8Ry8fd87HXvAY4fwsxeom8v5p4X6eeNPYwx9f9w4VEcRFtYV6pfi2evtV1L5vrBMiHPc8cbc/xZZ501aeuttz6bCb0pk/gtVuHNYBddTQYvAGmoxvsSbCDaf1z1NUADNsErplBrn9FADRC0GjuE3cTvGvid83tBAyGcgS2ko65zwC2r2131yTIUYveByWRkNG48NXBQ971bNfzeH+si4zKeJwEXI5mL2msQmnLKC9GLBhW6wVTBFjRkbRqTEdy3Eez2gEzOz2U5/hZErY9qmGqfu/QBi/kAYi0AWSkACmBGZRt9rXpoVkcZmXX2/ZalqqYh3Fgn66vR3HYJrIKT4CcY0qYC5WgHy9pW7UCqgQIi9iC9g25Bqde7Zi5tyxcYrav9YYQ2YFWisZwxWob3DKSMmwDm7tRjJdXlk08++ZXRo0e3pv6Dy2OvWXQ8TfY66vfwlVdeOSvVdi2x6wcJQuY2ZrJuCYtZD8E7FBVnG4RgTT4bjAF1FYS5HoEvU/WRzTz88MMKa5HJ3aLQIxyZuEvd1dqtDDIJE37xk1XYELz8aaed9mmSKzmDe7+dws1zWdU2V3Jz8SjUrvJGRWsf0YZimQqdhljjhgQT2FVR47SsxXppgxIwNNQKAAKQnyegFxKQyai0PSHI1jtDud095sfvZF/uL4tMTQZCeZMBnxdgMTXuyudvVaAS1VBsXQ+j8iynbUcg1EBukKUsacsttxRYBYi0gKUq5++EtTVQv5BSVjXPgyIBGuuS2XjjjefRv2U4BAIIo4oWTah23333qZ59jvrWSabks7Ig+5g+nALwvYO628NUtQaR8v4S8x0BQptz31fU6Tje2XT11Vc3p/6DC4/lytT/SN4/gj6qoc73M5aptmvJXD/IDawwGt3SKzOZt4LuD9fuIhAgMJsjfHqjqqNqogoiA0Il+ApVrRnwaFG1UOVIQGE2AjPP7RUffvhhCd6iot4cAwWxeeRY3f1RyN7XU6XAI8xNCpYBhMbi4C0TZFoBp2aNvKgjxuqE8gWj4447LhiG3XxqXVSDYAchoND7FHbtM6pAApbPRG+Wni7sMjm9ZTIXwLQFAGpVXdS24i76M844I4ASgLA7wHIEYDTTIE0vQY1yXkHtWksg2HnnndOwxIeN4cH2M9f4qWTvWXi3tjDbK/vxc9pUBtNs4bmm88477w3tStq2BPf777+/WjVWT6SgJsNyHKzLQw89NBDgC/2gTcxnBFf6sYI2LY/XsdTntCXxngW8bxc9hQDQALxzl/1vqT4Yp86UW/n3vgPIu6y77rp/RJXcAZVzPu16KR6L3XYtmWupsAkx6ZdhlTWncxUqjCvl/xYzYoBhKWAyjgm3pXufpO9xqwQAY06dt806CJjsMWHCBBOS1bLi/hoj9XHc25PVusJ9VbIMhVxDM0JRZEUPUdSqNjInWEzYsY6aFvLuaORW1VBdEkgQKBOSZQBBVa+pTP5p2KNWOfHEEw00nIqXqIf7tA455JB6hLPcjbM+qzDKChRWBUQbkOVpyBYMZCKyMVUowcsf2Zc/qniCpMJ/0EEHBZZnriDY4YfI70qUewvfVyHY5sX+CQC3peofbfrKVCT8XQ+oCLTl7ppHWDOyKRmaNiwBUIYGm2gF4N2Mr3E9MBmByTqocmrcx4YUVDxTiey5556CjeUWAUyDQbWhmUKlE+/OOTZuumUxmEndy1D5KtyQq83K34mt6mHq8zh98RdU0Jf/kS2Hfj3ARYZ2X/v3vgfAdkEdvJR61gPc58K4XjATZqrtWiLXUgFCqiasbIcilGe7NcFjaRCMh1BHbvKEUgzGwTaAwG2O92QC33eHZQzndzXqxdWyCAWWSf/kJPO61tbuBBh1cke5AozA1CH4z8MadsctPuyII464kv+XhyUVjFdBAOZTxhO8c31sRZ1MGmYOam0j7kBHQIuPPfaYRuoQ2+IKr9Dq3ULI3XCq+997i6bjMGsiwPPxmWee2QtvnXFDxd12261VNYV2Zqmi5QQXv+qRQAhwFnSFy7BkPNZb43e0H+G6roeJlSmw9gXl6dYXECxL8HoP4Z2GUC8DcPa99957p9IH03nXQG6vob71vKfc7R6AagNtbgBAajA2W+dgADfro94+3PTBJiQ4yRphV8G7BjiFeptwX1ZothCNzsYxaeB2IRCsVEt5tgDoXMlisephhx22hltRqF/WdzCmBVTZrB5Cy5ctwYrmUscF3HMEbPG+fzRXLrzwQjMivMD4PMm9k+irPy7OdGjfRozp8XffffdGjO/7lLUf6uM73NMWc7SErqXCJqS+fvDBB7+N0XhXwAXs6dYZgfwUD9HVTMyvzznnnCmoA+0Q+r1NSMakXcVjchDuI5mM1bh7P2Gyd8QusgCWU0YZgzBOZrSxYPic6a5zvp/Gd9fi6VmOyXmwRmfBj1XaTZwms+8EMHXRg6WbW9uOm04xfrspVbd3cOG77WL11VfX7hE8XGZJpOyM7MT7FUjBBjbTEUEO6VfdduHJE7yzFTbRwP0lCPUcyiyzDrIeAMt0qMEwDAMJLnsNzgKA3if6xC0UacDHeJwQma3A33jjjd7XAgv7gP8HcF9P95PRxirK/QTmtxVdvB3vqqVNNdpsBBHAqdz+MTobFhhUJk/p0HAsuAEuabeNuDXFfXFmcAQgi3oOARuDHFV1QzyTrn2Z3VFHHRUWA1mmMUv0wZqeKssz5pdWvU2jwjUDUPdSxxVZUOa44RhgatIxgLNhR8DoL5deeuk/zEF9wgknNFP3rSh7W0B0MAvAX3A8TInfw9r6Mm9+b0gGHrwaWFnv3XfffVyq7Vpi11Lloj/22GNXRGgeY7LPQNB6IgBdmKCTWDkHIEQHMuFrYBbLswJuj+2iBgGexySvZoWfxu+eFDELweikLUMBU71RkPEsvQVY/QoW9CR2grEI226qXayOn3CvaqBxhY2qSUzqUr1qqkgARlHgUQ1Zf/31v2LV7n3LLbcEY7Lnyrs9wr1dBh/KXtwc6rtV5wAfo5obAalSbS3agGA9glFkF9qn8jIhWZUqXzRwCzCWo3FYdUjPk6oX7w62FYMQTz/99CJ2l7BZFVVxC3fzA5CbwIK2BOxKKTcPOJjV8BbKeIo6HU2910IFy7pTXxYHe5FBpPWQ6V7X06fKKPui3xbyzlb6s/XWW2+tsW3YkopuChaoNGgLgoKl3kXVVNOTMGaN3F9mn8mSjATXXgQgFBiPEDulSqnBGrtcEdbZxNhmKedPI0eO3O6fzRFB+8gjj7ySsdwUAG3mvfdRz1/7HZ7RSsbwLPr+UNr6J/rxSObKdH4WptquJXYtVYZpBGkNBKMrK/9QWEFnJlILwtSJiW1SrPq99tqrGTDZGcHupMsdgOqgJwoVpCcrr5kKOyRbMhZK8XVD+z8sZdj1119/A+rYAYDKK1D0RkDEVy6LILlKG3BYz98LzDz4i1/8IuxcBxAKrNiu9mntOzIcvVR6iRQmBMd81EGA/R92UK/BVqOygg5ANLDaFxDY99ydzjuaYSp1gJcpVTOeS2YlUO8aBBbZhBtY3YSqcCvYshLVP9UjGFhRhiFAYbwNcUP0Tz3PHQYgXYlt5mNU1jthA29T97k83wFv1CDe/y7vXwlgKWgYV43SBqN6JdC6l031jzroOQv2KICt3Drw/nKPLlJNdId+copH8ATyfyqyJTNaastyE7E2J+8xstx6e5CjoO177DvbmhyHpBpeCiCZ2XEEn3f99pxwSw7MJn/77bdv4v8wtp6AznKAaxlA/hntWJnPZHuO9x+4d1sYVR2MayRt2qwNgJb8tdS46D0dlYmzGUL/xWuvvTZMdzhCmmXVNZy/CsHeFQHfmJW5UdXIbRh6dvzRSKvREwE1cVg4q0vPlBQf1cC9TEX+bkBoegBYo5icpQb66Z0y97PBeAhNOcBRYb4f3tGky1xh8V2oCI141kwApvE0nIpx/PHH6xbPmuDLPVuoizKijCksVMFUo8zxgyoym3b04R22p47yzKtTxe9p/F+N8M6GZd3Jc8NVA2VJqjmyC1mTgu0GUj83ub3eOX9kIbYb0DbeZgDtuFXAAojX4f/V+L4Kw3oDde4A8HSkzqsBXiX2k4zMeB73ism07AON0tzfBKjn/B8bVwsgVAqgFTTuu8lXQ7rR1OYwAqTCjn/ZG8ymgfqrUpUIXKpq3N9qWhU3CmvYlhHZf4I/72wwqX+SwsTFp442/xHG9CKqd8Pi84LF5qfc9y4gv9Upp5zyR37cKGxKlW708aSxY8fezrufwAZm/x9P2yYz/s/AlOcyvpNf0mredi3Ra6kBIQyvJ6MqrcBEFYRWRJArNbiqyrC6FhDKVldE43+Y6C1MRCdxYCwCgbYY1Qi8OiGVhR4e2YiA4F4l3OOVMIY+fG7+nBC74+qvELqjnAk7j5V6DEDnFo087/AkVONgvuT7rqpgMS5HxmIEtjYO68jKHwIaTWzmyg+wPMB7OsOEpqLGjMeL0xG7Ukfq8i7u+tNQaTSID0EQZwCMkwGXGYDqCBiBZ4mFgEbrpmfOfVfaYVSdZGR6tGyrrnQByveaphbQboFhlWO7WR/ADnu9ABTVsY6wyOEARd7NubRdYMq7/cO66uVyO4jAZPZH81a7JcR0J8ZC6R7Ta+iR1pQTPGACiTYjVVWBTHWK/s0YoW2yfg8QAFQyqqka3413kiHK6FxcALlJjNEltHkq399Bf97D2F+H+jkvzgfVLhjmHwDGjblvFdqS5bN3uFeHxC7mQeLHPh4K27kCT10j/bMtfTKA905BpX6O+lwLM/yPAh7bru/uWmpA6IADDtgR0NgZV/oqrHAXYfzMIPzfICh3IVwvMrn7M3nNuWyqipzRwYBSyJrolgQNq7IHWYS2FGN4XPVNMI/dIRyzI4goQNouPKY4CRIM7mEEavLJJ5/8AQbNtT0xQ+Gm7FLsDJ0RviZASiHPob58xKreEaFsRXAXsIqb1+cZvGd1CHdHAQAAGwDTuBKhuwMWNfCBBx5YB8HJY1OZwf87wzJu1PsHuO4NQPZyZz7A4gGB9XyWoS5ho60gg+3H6OmF1L2Rz/OqnxqmVY1kIeYiUv3j/l701/KCqsCoygaL1Ehfy/338bxnq5XDyMLxQYKcJEFQsEzHwL1egrOqrH1p39D/RlKnfvrTn4Zd/oCiBwQI8vMAxDKZ5x/+8Ac9fFn3ickUDXoEBEIMlXXTPa+n0ihrxwdjeg1s5TfY6h7YZ599xgOcr3/bGG1ea0D5J9TtYBaHOtp+LgtMB+q0Ie9ZSYZKP+cBzuv4/mnadhXtvAiQakTV+wMMaRlAvg6GNzvVdi3Ra6kAIeh9FybRWIDHdKBHIIj15qo5+uijrzz88MO3hvEsg0DfhJBtJhAIEgh9yD7o5JYxuEqrVkn9XY0VUH9kFrraFQx3yLv6Q/EnIUgdFSxtFK74P/vZzzoBWmuqEiXnhIWVnnsbzQ/kIYJGKiP0nRU0BYrvv1D9YCW+E6Gv4z19EFjPDysAMh9T1taA3lYKvlsdUIu68a52PLs+wtUX4eutwZd2VxpxDBiVYBw23UhgWxrV3fbgu3A5VxoiYEpWmEZWw64qnyAk6AgsxvgkSdICk/B/hL4MG9nK1L8M5tZosCZqZi5GMGvLkkGqKqnyafsR5Gy/Nh8ZjCELgpZxQR6YKHChOpfZ7z6nIV3juSlMBHptVfadgZuOAeMpgKcxrJsPyTF5lbp/TN+9cOedd/7dQELGZkXqc6fAx8JTyjs35O+16QuPXAobe7EjZTFmf07dVqTf96cudYDUQcyTXZgb5+JJ+yzVdi3xa6kAodGjR9cBOm/CQgYikFMRnHW32GKLOwCAbgjEcUzkav5eD2GZg42nixMeYKoHLNy3lHXLgpPb7IMG7rk/TEbgEcvafQxKVFiNkhaEmKgdDRp0hTdmJ2ZW9F5jfCwPVuRqn77ssstyMgNYWkZAM7hOz4/vBTQ6Aywf8Xk3Jn4DatgNgMtWZjEEQIZT1z6WxWefYfdx+0RzkoZD131vMz3KQlS59HoJPkZ4aysRRBRmY29Ql/JGW8tcTGhv2wQawUdGoGqlx0kvF5/J0DJ+p1tcwJTVJPvD8pQdtn1oWDY2yD4SeAUZgzMFoiQnUTjz3v811lP/AHACfHIySFALUXeCS17Asy810qvi2c+CmyDL/S30dasqlXWnvp15djjvqH3iiSfe+vZ84LkcYzIdBnkA/VdlDJK2I+1V1OVjPu9ibBV99hVMrDP9vwvjVwYD/gmgX8m7uvHZYywen2DAbweD6g2j/asDHRnTZTEBdLviiitmLvbedNv2ju/+WmoOP8QO8SBswGjZp5jMg3B9r4KAD2F1M3BxddT8wU5sBU2DLBOygtU4CJIsQJex0bpMxlaEPKd65oqtcOy+++6qLiaDL8gCEuOoAtcEuNxG+TKgFWQGAEjw3ChIBuT5tzlxBAjun+9+LC9tIyYx4/29ePYXCPGO/D0F9tB63nnnVRpFLXgdddRRaTxXy8oaEKyw6quqKLgIUytAOh/GMB4w2ENjuO59QVEQEZBss0BgfWRdMVpagBIUDNQzPklwMCsjn4e9bT5n+g/tVdq8TAsieOtx076DUAb7lgxFxDM+Ce9jkbrrHVyoUd2MAapk2tW0Qdlmgzfta9UqQRGW0kzfCPKljkOiIgaGZH0FQlVb6pDXfgQgPgHj/JDnD+XZ3wAEDbCyOn5KmAOrUwYe/lsvpO7LsPD08N2AY9HYJJ59BWbWz2hpy9x0001Lx4wZU4s9yXCIYLy/6qqr3KN3yTHHHPMoQNsbj+ZNzKlymOMs5sMz1P8CxwBg/wmgtQZ/Hu7/zLnVALzTae/P6KM2j9p3eC01cUKoXr0QiA2YWCW4Y6dgI1oZwXHzaCkqw2ZM0mEKoqqVQmY08YEHHjgPil4dk9S7OmvnUZA1hrr1QhUBYDB5lkbWOTCUCoQ8r41HFYtXT6SsAQhIRXI6RtgHpesZFS0wBpOLqbJRn4KMisneCMjc48F+CN0a2oAQ9jLe1QgovI7qtKmubg21CEhgabrFNf66R813aLQ98sgjC7y7UcM695Vqf9Ggjq0rbYoQ1bELL7wwGOcFJNvNe1thcVlBTUaWhBcE8AQMWwDuV3jfWvSbkdFhJ78ucgFIwBYgUIVaELqwQMmSZCyyqQQ0UpdccolpUcIzMkZd8AKO75Hp2DaBUPd+ovYFJuVnMc5IEPJLy8OT9iEgO0jvHe14GhXzLfryKG131lNHgRHZgql1E0D1nsk6ZYnWQbC1fJmf4wy4yMRaZb6MR14AkgFTZpH3fIDH8jiwbhXedwj9OANAHYw6uTrA+57tBhSHMw7l9M8E/zdQEgC6ivv3op3vM2e+SLVd38m11BimWWnnY4QdAJXuhPD+BqbTD4FbmUlzMsLVyiTayFVbWq4dx8mNYJS6mhv7oirhiu9KnSSUD6u+4GGsjzYUPWuwmpwxLayyOaOqDQFABWuXqGIBvDwZA1q+kEk6B4EIu+eNpNborMfNLQd8ZtbAtZi4vVlpK5i0JdD+clS+AYKHMTcCom521UQmu6eQvubJrZ7UymdTAaQq3nkvgvMFADtYNcmwAlmcrnD3hcnYAMMApkYuAxrBaC0wKXhchiQEwNh7770/ArD7uL1D1zqAYRCmwF1MvGgBZAE8VUsN3uEwSNUx3e+Ch79lSjCLZr1egpS2HQMqUa2KqJAFwGcOdqkKXfXuxLd99pvqrjmINFa7qdgATfuLseksAKn+ysjoO0MxUjG8QfVPe5fgb3ZGACfEt7mICCyMVTPsaxq2oHaqxLS1QD2mAng1ArJjY6wV5RaoY44y6ul7T4R9m+/H8TMYu9btjMVfrrvuuvmWbSwY9T9qt912G3r++ed/Rl9fx9xpZE5NYW69CBtrSLVd38m1VKXyUHdn0h7okcJMmOHmzuGnDBZ0DALagrDkVDuM2NXO4wR3pXeVdsLidQorsnYIVTP3VWmoFgiSHD0pty2YAP/6668XzFpUX/BY5XRLe1+S1kMgMzF8pQAmQ5JdKSTcV0S9y6jOyBwUZuwsqnVNCN1MWEQJVD+r904w0iCu2kRZb1P/62Aw68IkJgIo91PHjan/RbC44/kuK7jqSTLmCFCaYT4eU4donPX9Zlg06ZmgYbu1Jxl17G9Vv/Hjx3dGJSt3Myz3N3J/XnXIGCVP9pAtyiS09+j2p79DwntVGcrQ/iNgGDPkhlrtScFILugJcrIeDzLkmRIZnXYxgdD2Cfr2sXXj/6+x6bXyW+9cyEuU2Ige4b6JsMdhMI5P6buO1gnQaDCdrouMjIxyC+ZTMg6JhaTJgwbcC6iNzhACI69xx1dx7zzKL4MN1b388ssLALOp1HMWfXY17xqBIb7unnvuuYYxexkgfemQQw6ZGm0+9MuWLAB/4N3rM2eOAYzf5/5VeMeH1PEF5kebSvYdXUsVCLmLnusLVtcqhG0QYFIKc1iNFVPjc84JqyrgXilW1aygodCqOgAsC5jIJQqsEzkxXMpIWiknHG6ojcRV2yOZEYw6JnkZK2xO1UsAUFVxH5SeIzew6vp3n5UqmQZeyzAHtExKd7T3y8QQYg3BLbi4K/h/Hu7lDxCUrqy0GVbgRup5GmDxGkD1AGAxTG8OwrwKtqnbmPSDAabVBDO9dzIGjcUImyxGA3Zau5SA5+ZR26XNyAyHGr1VDwUgwde6+DesZSrlNLqbXpCQDQk+silzKOkRc/Oo8TwyC8HS37KgBKiNiM4ILgIBAtvAOOQER0EFYbVuASQEZg3Vvsfv+LxoqllISwV1aHKsAJ08QDCJMtbgvmFma6QeHWViAEaz8V4m8mdsW3lXxnqpbqp6ewrtvffeW+q4+xk/dYxhK++azGIxxcBH3tmNcj4CmCcDdhMZ387070AA7L1zzjnna5jkKAzrR7NQvQCD2g3G/Q7zoiNjvQEgVA3QfkYZQxhjjwqvo7+v/08TqrVdf3stVSAEyHyDIBwCsGyCIM0APDrJRAAJty2EpOwAQAMspJZJXqkaIkAoLBipS90moCAqsKpfsBAnuQnMgvqmQXXPPffUOJ3BOJyJyc2MHr744otD9kUZhl4hN6iqGpmTxy0XGmgFA+0yBioq7AKAxlY/MxkaAllAMMooo9wjpr2P975vPMwRRxwxBpbSfOKJJ34GgP2ae3pjsF4bgR4hc1EFEohkNQb48XxOFSoenqgNSSaibUnGIlPwUvBVmVTlBATVIphdFXahcMyQQEV7Q6yP/aSqJ+MQkO1P+itELRuuoGFZJqRLXrXWgxpNOgZohdgiVS3rlHjnQr/KEgVx+1sw060PiyvBLpaFfTTqrXP/nLFV1KHeIEPzCGnjEsQBjC/piw78uK8sqKIyM71xtKWWBabMtrsI8LuRciowUud5voS+reX/QeYkAuCmw5hWp22zmBt/ghENoX3bon5uzXPbMheWpS6GNvSmr1ZFBf4Fc6CGcWykz8dz/zqq7zz/KJ8/iYr2HyVUa7v+9lrqkprts88+wxGEPkySdm5TcGMoXqQQDyTdx6uketYxMYpOMYGYzzmpFWLtFsa6qB4omG4k9bffMbmKbikw9SsqR14WpRonk1JATdfBKhw2hvodwFdvio5tt93WrRvhmCC9P7IghdG4GXMp+71H4CA4pbw7zyraSWO0ZdKWbtR1voZVPE8rYYe6BbAIQYACIACzUDe3YGtsjs9oXFUQtSlpV7HuqkXW1U2h2nX0jlnHaCzWgKtrPxpy7Q8Zm0xKsDCHtHWwL9yz5nvcyyXTk/14GcSpmmaQoWVh+PfjAOxu0zCkQGO4YKHA7rLLLs2CXHKkkRtsi1dffbVsMbBRvG3tPErI9yfqWJMMTlCVkQqmlN2HsXpLdVBQNfbLlCh+j7rUXvXb9xsTZYK1JPZL8KtgbIZQRkZwpD1DqUc5/W/GTbMxrOTeQtjUCmYgoM4LKWsf+vYbQOt1vnoUpvoFda2h7zeVVQvmvOexf8U7ZqQ27emcarv+6bVUMSEGtZTJM5KJMsCjbIx6Vhic9Ajlh8zRTtpuVH+YoC2woAVMvvYyHNNMaCRV5VCNSvIph71lCp5MAJbl9g9P4AgqiKs+glxgFfUEiRBB7UTcaaedwtlcsBoNs1kjry3PxPRQ+3Byq+58d7xrPDZIUhVJ5uP7EV4ZUQYBnXTCCSdsgn3kJZjVaQh7F4RxRdrTTxuLapKucNUgQUZWIStR0EydEQ3PCnHMSe0udhmE6pf/89N82GGH3Ttu3LgVBQiYVTExNJu/R7Aomq7DvXKJOqbHNHjtBFHZkDY02E0zbC1DH9TyrjJZnt9pU/LoH/d+yRQFNlmSdiJAweOozaJo/wSvn/Y6Ddn27TXXXBOS9avqaog2YFIPoSzSSxBNdtN3ASCMIUrDVBv5zNNiS+0fwUwXvGNrxkfumeVYcI975rRJhdNMXCBUBQFtt2zUoba9yeIwkbFZyZS+o0aNmoJafzv178RCswfzYRPG5x76aw3mVCvgV+19vKMPns5bued/zT/EGO/NQmPepkUJ+NxW5LHkqbbrr66lCoSOOuqoKlb7J6DyvZgkywNCJnQPGx+32Wabzqg1zUxiY3S+ZPKZR1mbRzjeOQlODInjtTkopKpxBtDJChRyg/g07ioQCoC7uHGRh7PBALY3AIAeCoI5k/3OOmm89UwtPE+hHF3nvotVvhUhCHvFtCFpHNcjxardzArrWfau9h1py2B+1kZoDzTlqIF/vL8q7l1TQJOjfoIB2HckSedD9LLJ53WBW19tUrCPeTC5UlVEvXlu8qWcZWF4GXeqC5IyO9U1VVXboWrjplSPPjI9LAI9F6EsSfpDlU2m51HNssr51L3Sz6IdzZM/DBsQBGRvN910U1B5VUVlXW6lkQ1ps1Ntsw0Ckva1yNhsa9wu4mUuJhcI+9uyAKJ5AEcJhv08rLdUoE0YZ9jX5sIiCLrRmPHKaxszmpz2tXjmvfUA+MzXlKff92URmIPXdCXGZhnqnGP8Z/KetQHxl6nfM4z7MgCcauJKlFsNQJkxwWjw61HFnvzf5imLSA31Hshi9jZANEVjN2O+M2N46I033th2VNG3rqUKhDB81jAZDoH97IggdNAQq2cFkAnqCeCQlfYjwO2doB7D7BYLk36pDukWl/2YgB61paBXSIF2IgscCpmg5qqtkGtDSew9nn3VGyH1/LAWJnmj54QhKBlXcuN99BbJKMzpowBR3YxCqCFZEIQlNbAaZw8//PB5MCQzGGpEnQJofEJ5u5tETAEWgAS9JMwg7APTkydIWneP4xFBjReSjaiWyHAS9W8mYKIQ5nAhB2DS0wVQ5lQJZWcepigoKvA+mzDHkLpWj6IGbwCmQve9DE4bmGANiM50ky/t1RNe1FgsQFmmRmiF3HAHjdqCW5IQLTxvvybZBkJubu+T6VmOi4T9H0FIZiNIWWYEJY8fAmgaYZNleiYt2/6T4dJ/wftnPiVjw6yzdZLdJuwqq02K9tfynhLa3gKbWhY1OY/qviEqfTnA/xhj2Jcy58k86Y+96Yt21H+EbRfkqGeBuVZL2dNPOumk5zwt5Nvz01M8ttpqKxniONo5HeP+DvxvEv0C47c87+jEgvNkqu36q2upAiHYxUmwiZMQxHaurtoDnJRMzpdxyfZSiP3MCe6Pk0/7gvuuNMhqvAQYzD0cPDeqEPE8MQXEZxPbifEtwXbhir3llltmmJBZfprc6KoLWgF0r1M0+JrVUDuK3iXBQjuMWQ1jYKSHLeLdEtBM+RESf1GXauh6M+DoSaklAo9hBRE8ZEOCoQIsI0hsPMGeonB6jzYbjeL+TTkVgG04hkjBVH3TEKwXSWO6QGZd9CIJjqo6MjIE70v60PPh3dEezhZT0H3efpGx7L777jMRsg4a6T0lRBVNw77tkKnBctwEnE6M5yEwVPZjXQVn6mWqlPn06XwAq9L+FWTtv+Rc+xAW4EECqKcBfFEjQ31ldNR58tixY9sh1M2MkfnBDbmYSz3Lbbs78HXPJzm6A1CrignUjot9b9Q1anQJC9kAxqeSei+nnY2yl6V/tP3Uo2aNBwTrUNkqdCCwgMxFJavE6dAA0zNrwhXUYRfseo8vPjd1CtBvuzG2JzOPtqX+g+krzzZ7+Oyzz55B++vMXQSLmpRqu/7qWmpAKEm1+j5qhInHTMca7AvuFmdwZzHInT0pwj1U5r5RLRIoEkNqOP5GlqRK4gmmGjMVVpmSqojCoMfLoDhtCAqUdpFETfsUlaujagyg53YFV/KgNwgG2md0JyvYUHzZSR0qSV4G5mkXGqEVfNUWVRwFRYZleQhMCxM3a2J5y7Wd2nos1wyO1sN6axcCKObz25W6HoAoSc5rD22wPxRkmQ2fu/LW8tvgyBCkqWD6Xt8h+AiSsj/tSwB4ezMwCmaCDDavYHuK54kZtUz92qsCYVuy2Rmfl0UKinrXDDKkftMQ8HaJKhlCGQQk7U5GodNH5TgKSgxNMDOlddN7IBOzzZ7GAWiFnfQa4g2itG8FOH66YCjPm23ArJewpAUAWpXMx7rSxwZlGutk/wWg9oADFx2ZjHm+BVOzJtiXgFc3U5QwBoZy5GSyzIdPAL1Pufd15tC1zz777PL0TV834PJMOey6mj7Rq9YFB8mfYJsL4vw0gBJg3opnutOkgbRhASD7Oirgpcyd/twyhDGZgE2oMdV2/dW11IAQakwPJvsDMIcervYafBMvkfT/XCbd81dccUUvhKCz7EDbijYF9xQZoaubXC+PNhrBydVbIdC4ivAFATRhGa8KLmY9ZEYgO6FR6zqquvF8RraUHLujl6YBdpL3SB8NuqoIurKZ6DnP6opnvbudRMCzHgqlwqZ7HGYXvpPZaSy2nQpzDPDzXQKQ/7MqCwStpnzVIO6GWdUYBUrgEFj8LXNismdQOUzcZsR3AKCY0lYVTBZowN9uu+2Wht0E1pKkvvDstcBmAIBm22tYg59ZP495lmHplk82xoY0s/7wzDzq9hjvWNl6yHRUxYyM9l76PAAEIDgDUKiyz9xvZj/BLloAi6zjIxO64YYbMrIbQHgaKmwVC0dIni9rTYBblddgyymwpI4Gl3qAgPY8+9sFxfF2z5r2QlVEgdL+dQ+c4CnIYwsziHQW9Si3DfRDF+q4EgvbjRifXwAs1+a9awN+OT2nghFtaaBPhvDO4WedddYdF198cTBQ6zXFGP1T+uhws2syVjejMj8Na3sDILqQ/4+iLvPOPPPMauxan6barkXXUgNC2HDcdzUbAXRHdPBSARRfMAmrZAesPvuboIqBNt1oRlXAldzk8AKWk44JXdSQqoBrP1AoAbCQDExQ0rajLUlGo+pzxx13BAbmlgSBywmdbM9Q+FpQ4/LaojQ6Gykt8LmJUxZmrI22Db+zDh5ymByJE0IGEqOzxtewpwwhziXeG8EgHY/yiT+qY7w7nwRjZoxJUrAVKj1eqniyIVVMVTAEraBQ6i0TeBRwE+TLTrQPxSDGCKj+NhG9nkENyNz3HvWrBGhNrxrAUre798moBH9Zmt9poEbdKQXwB/F5TkO3bdM9bxJ/vIKhXapYAGA7ml+Uifqd9hv6RjZSjLmLZLQauRlbjemeTd9gvA7tzDNOTSwWWfpS+1Al6mILn78C8HSXZf5P16YDcBtKIOO0H2SJG264YaiX42wbTN3Ld+UCJgz2PcCoI+z3UL171LMfqtvBlNlRJufY8Yz2qHYuUvTpYYDs7J///Of3n3766S+ed955s3/3u9+Vsdh8TLvdgziGfvhmjz32OJS+3g8gn02Zj2HHegm73IJU27XoWmpACK9Odyb8O0zKHZioXVWbGOwOGlJZIZdNEmZVmTJUAFCwnOSu9G6EdBVVQFU1dCPr4VJNEdCMtVG9wmjoniEPSgwJz3T7aiRWgAG6iUzCGpNzCQQKDODiu8O+Kfc5qaK4EqtquLPbVBbuyJf2Y59yBW6VtiMMsxQUJuhCKH05k9SE9gpPiNx2+4HvsCzVCn8EVRmGR0XLpmQKAqBsi8vo74IhATCfkCyedmZkd0le56CueVS0faKdyjaZc0fBlLHg3ZvlXjvq2GDmSBiMbKtUt7IGYFmZzILVPgRBanS2j2U6sESPItJDFc4hM9ZHALYPfY/HQOu9EsRtl/2ieqzaa7kuKBrWBT8Zp6qrKhd1K6Fd86h/Bc+2ahviPS0GNPKsbvMvGe9LUc2eoQ9/AqOqsB9ts6ED2tesj3Ww/wy8lFHJoFnAPmaedFL1Q20uMk+6U7cFgPsM2r8BZW+IetWffi5jjCcDULPpw2oWm8cpvyft7spYDALUtqTevX/7298Ops5r0dYP8MpNpR1zqPca1G17fvpQ5myA6XPY6QrHHnvsa5dffnlbxHVyLU0gVMFEW8CEHYSQDWVC5BROwcTVWTVG1UVhcHV2pWNytZhr2o2UCowBgP72Oym7RmYnP8UHj4vswpNMBS0Zg54cBVjjJUKgu7/EuriKO5k1SHukjak8nNiwK93eLeZcNgZHVUgBw37g8dEyj1bqLEi45ywDINRh3K7UZqVHTXXNeCID8qjjV6yq5QiWe8ZCLJD2GYBxkW0nyWMUTupIjmQOG2gVQhPeJ+k+TO4WTvvQQC07EXB17SOI4Yw0vp8HALXjPTnqntcWRt9V8FkLQldQHQHUjMVpRaCbsamZk7uJ9+W0F6n2ab+Kp8UathCPQTJPkJHIvtP/jV3SbhZd66NGjWqk7/M+o8NAkFRtUwU0cJTxm8fnZfSnp53Mpo870Vfz6fsvALBPUOf+fM455zxFnw5Bve4OYyvXIG3/6CQQMBPvp3vZ0h426cJBX04A8Ofz09Wk+zBAVe0MAHgt932DetdMWdZrGerZZJS5+br5fyBzopQf06/8hIVgNnNqJcrfnHFZnTa2o4/2oU/G0+6zAboBOjjoj2kPPfTQs3yehSG99+1c2T/ma6kBodtuu20hLtXCdddd9zCDaA7inyn8TIpUzDUdI4dlGaok0PZGmE5e42U84kchNLhRAUjsGkXvg2V8A9hUa2BmUpmW1Ymb1asi83Aja5I/OoDYGWecUQ+wFAC4nPEo2gtMCUI5np+uoH+NsJUgRDnUuqzeEb13qCZ51T1VjbvuuqvSXM/aKExW77HN2mssC+GtNGMiv3NuP1G4NR67wrOyajMJYQTarDTMem6Z+X1Uz1SbbK/fu0FXoRMg7SsAMcQICaICqAZgwKXUeCJB1z4RsLSxCOjmlZZ1utHWgwK0d1B+vQZl6vcV9a3RPuWCoGqVJPAPjgHZEupKMwIb8jfJ8vxc17uqXJKk36wFLwLy5gbKCPqyV+1rqqUwkAo9cePHj3/K450ou0HViLI7IODTAKPdYBWHoGqvygJSrodR4Cn+zznXwaPIFUI4DGzlb0GplbZ1u//++we4GBhqQZ/XA6TX846BjN+xtHuIcUd8X2PaW8asjPc18GwTffwxY6nNrRxDfTVjWULfedKuqt6y3FfPvNuQKvRyTnqYAm3uyHzqpNufulzRFrT4/19LlYs+XqgOazNBt8BYnUGYCgqeHij1fo2dMhTpP5PMDYdBGBVAJ2gSb5NKUkc0ACDvAyS98aJVCWoKtSs3K33eHdqASoiIdhI/9thjGlGLGC1lWzkAodnjpDXUasdQsFUjZDae2MFkbMaVW6IKhYrnXiZtEIHBKIgIUy3vMwtaiP/RfqH6YP20+9CunACrUCcxNMpXwXa6Q5R3fw6LeQwBn0tZzwFSw7VdGafjlguT3vuuuEVD5qOBWbVGZmW8lIAt8OENClkFBAHVJtuAsTgjICEwwQhuEjdtaG5Zx5NYpVAJiDJP1SyBxvJkmcn7rHeOtrcAfg3adBwbyzFi2tAJPZPYybpRRhbmNR0AakIFlHGVWBf7hLFVxW7YYYcdfg7QlDGGO7pHDHWtlXp9Sv1XoL1fA4Y5vWf2k30qOMv4tA05/ka0q5rpIeN/A56MiQoMk3fqIZtBH5Tg/BCIprI4tXJvZxcMFpHpfNaB52ahAn+IKn4xdViL9v6Z8hupZ8joKeBouzOSnsWuVEaXhGhkmEO9YHrvMCbjmZuLmBB9PwxmVHrhhRfWpn6E11IJQgz8TxnkoUyq6Uyqeazo7fbdd9+Mx7ooPLIVVSFpuYxHoRB0kqC+IJRJOtOcDAQ16E/Q5SEalpk4rTCYcPoprCXnBEpO7QjbAwzh5+c9vCHdPGseocp6bI3C7oGBsoskH3Me1qY7XQ9dMTltI52s1ALKk0zMKUYza5DmR0NyBqPxpwjQBUz4+Qjoa5Sn96W7oJGkPnXlDis8n1XDtGoQUO0/G3FfxntkDnqHNJbH3fcyHNVMvDeeTRa8WgKPAioDM5xAo70G4i222CIYiU1ANnbs2GAzE6ASz1pG21GMCbJegoWgb9sUaiOv/W06FI3RAH0GQ3NeQNW+ZFiAbFJmhDBPoS3tNfoC+O0As0dYXFZgvHKqY+ZukrnKamDAz8OIM4x5Pf+v/Pvf/74zatIA+raOMSt3qw7fxVNrp1JuyPVkX8gmKXMhrDjYmfi7woRn9j12uWCzg/EuTx9UsCCUUkZ35kln2toK6CykTzpSxnz68HXKHclYbkefGQbxCeD3KWBbzjiYC70O8Huf+/sKeO5bs9+ZJ7UAb57+OJkFL2zl4LutjzvuuBLqP5j5Op22/SiT7i+VIMTk3MIk5gzymkzs9h4no4E22Q2vkbboj3uaZAXGspg6VYOorMhLQBKceK7UDHoIc7X3qXYxwSoR5OCCliUIZqpMMglBAIHpyKTKwEKCXUr7iylBdtxxx1aAJBvTrupJ0xgs+3FCGg+jUZhnvmIVf5DnhzIRe8i+3GjJ5K5FAH6J6nQ1wnI7AvIqzz4N89qSFbk6tj8RfgFGQ7aZI7uaUE3w03it0Hmwo1tSZB4CiKu9e7W0naleKhga3lUhBBRVjwceeMCk/B7kqDob7EwCmODsCm9/6ADwPdbB7wVpGUdyPlhQ/VQFfV/iJQsBkYKPP6poSQpZQd0xqGIM5/BTroEfYR6s18q/YU/zeH9epou6VcFC8QLj9hfauwGg8Q59tYKGeJ55jQVjgPY/6phlzGfLUN3CYbZM+rYcoJ3H/x8xLj1dYKyLc0HGRLmzABJPHXFbUHvDLlw0dC7QJ69x3/XYczY85JBDmnFmLGveKtVFFggzIgxmAVgNIO4ikCfMeCZ939U2CPZ6RrG1lem9BYDOp5zZ9Ncx2J66MNfOZrFYi+dvveCCC9qY0NJwQZtXYIIvh0D/Gvr/LCxD4+JQBC/kO3aLhMIiyOhq1RBpYi8F3ZXXVdt4GyZ2M6vnPJ7zIMPuFJ076aSTpPBhz5LGYVdUXepHH320WwPCUcxJArOs2zu8FDYFPdkKkdW4LCPyPg3d2ETCaR6qdGZ4NE8PwluNMK7PZO6huqB7PYmCbuR3HsF4HONv9rTTTpuJbaYWNeYX3N9RU4csSmEXbA01+OUvf7kooZhCJQMx7Yc76mU/er/09mlPkpUJUBq/BUVPINEIbH6gK664QtUo5AySeei92n333d102wgA5AUbALEgIzGKXHDR/iOztH0yIYMZYwrY/fbbL7RXsDL3kowIZuixQAGgFVAB2TFBhTYh3Vf0YzWfZXjXE6hgt6MGljMundy3xULznuk+qMMxjMdC+rcL9cqxIMwEsFdOot9N0j99++23Pxn1bgvaW8r4fw5b6ux+M4DHo8NDKlje36oqr2fPsA6Yi7mqitrLAM8CAJNJIrCzgGavs846awGfdaBu5c4FxxaGJ+h5oGYqOdGk4YYbbsizgHVRfdahYftts5utWTim0/83sWDU028P07a+9FsZ6mmJKWjMM4VKVp/6kV1LHQgdf/zx8wGa5zCWNjJRJ910000jmfzrmO4UG0c4tkdgUHUQlDBo6r0KqoVqinYLI3ZZQbMIZzmTqgQhLHCv52I1Y3MoxON73ENmviHjTzQga9x18ql6ITwNJlOTJSmYBvXp7vf98WwvJ54rv0CmUCusCl1yDHRwtwt2xtwkWRsfZDJ+CTuZgc3lIlb62z2nj7L3pB7tfS5u2ZC1CTyyDuumYMHA5vGZMSjlMJ1m7BcBLI0nsi98Lu6T0yYTwwtGjhw5j/rkPU5IAXPrivYiMwpoWNcWZv3MlgioalNJxx3sMgqApxXm2ci78hrvtQfFnfyeBmJMkkBoGQKQUe0CnOAtKNJ/pQBaBxaOjEdRG9RHGR+iXt3O/efyDvN+T4F9CIgbM4aTUJPWQsjrAZ/2/FZ9ns2iM4Y+W4Wfn2611VbtVbEYLyPTK6jrZ7SzRibnQmHiNfvQ//VgsjjVAkgtlO/mX4FFJ4Eqe4WboZlP3elTnQrBIaBBnwXLfN4LWXRKzTYJmOS0xenBVG3VK0kffCl42U7a9QmLwueM92c8dxQMugefVQLAb9LGZzCMv5L6EV5LHQiZ0Q6GsOgsqiuvvPIxQOXgX/ziF9J+d60bk6JtJ7i7zQHEylY0ZN8z5ln53XkfYmP0ahknwkQz54yql9sn3HUe7BbuPVOANPZqY3KPmeCm5w2gm8ZErDbTn88KONhCwhFCApiCT/WCvcX8Q+Ytkr0s5r1JxR3+CiqCMI2JuCKCOox3H86krQAsdgZ4DkdAeiWpPYJtxHb7t8+rJiKIcxEak4Hl+bzBc+YBg/aepGHdVR0ELHNRa3sxL5CufIMxFTYPBLz77rvLr7322hA3pJsc8NaTF+J2BCrzFAlo9qsAGxOlGRRo3mfTzHJfCz9ZNwfzXUFB9B4DHe1L+1xGFTeXCmQxmZr1Sdz44egkxuY+wHAjQCRL/45gwdkTcBnh4QIAaFfG8XpAa2MEN6f3jfHtivAbSv4y/bGBQU7JRlrVPO1NtdS5g9HX7mVLmFize/r0mqqi6UhgsWhgDpXqFdWlf9BBBxnPVCJoywAdX4DGZPuGfGTow5BSRJuh4G4COuPHjBkzXQrA1MG5YL8DhJ0YhyH8bMqY1FDvSrMb0H+z6f+7AavP/1U5oIwy5vOut9xyyzuppfxaKm1Ci19Q2BD9DINZnslXjiCWmviciW7u5VbdxwYPuuJp59ALoxAIRLqkDcDT/iNDkFarimkv8cc80do6UMOaWDnD6Q4xnzRqUrVG72RzZXCFu7K72xsB9h1BFdS7pE1GIZOFRbVQQZPZmBPa7xCoSv4uBYTKZRh834EJvwz/t1OVkX3pNfPdrPxNeoEsB8F7wf1WtEMGN5kyzShZBViWmjUA1WSeGQsVRoFI17XGeyO5rYsRyrS/LO4ns8087wGIYWOsAYT2hQzAk2plmdo+kgyTgXXaRvrdvWCtnnum4Vy2KZBrE1E9s++0BRkgGg3UAqDGYb1W1LtR5kU/N9EOc/dsAej3pe8a6bftATQzSf6Fenak/R5bdC7v3Ajgr0YQSy2f55ahP2bzXEfYTIXtte+MYgdAZqMq1SSqYIiT4l3NMCbzVQcHhSmA6eOZgFGNSfEBrPmoz2V61lTv3WpjKhjtd5QhC3M/nCpurYsM/ZGXQdoe7xWoZIQAk3mqPoIBTQFIezJnVmJeVQDEzQBPgYXwet49QcM0/V85ZsyYlm+fb2Z6kIsuusjPC8z5DKB4Kn1dOm7cuBdSS/m11IOQg8VE/hmq0QhWxdeYdANYyWd4AofxPgYImrCe/0tYabMG12l0lFlEb5MrlYKfeHp0wadMhWH5MgkEIQCZE05vkvEwMAR304cV1ahoXfdGOhsigMBmk+yAbk8IRnGzQLoyOzml5k5qjciqBAY6GlAZk5dZDwVZAUrYxlzqNY/vXkUA+5v/RruQK7AUn7p7vHOOCd8Xm1B5sirXwrKmMLF7cq+H14fgTN8huNC0wBRVJ2VVgpxqSqIaZjRgC1YCTpIJoIV+87z3wBJj9PNuu+0WbFKyLe4PqVTMcinjs0x/7EOBSNDyPt9h3+vVMnRBwzVMcz6A9i5tWIYfz2d7hvr1RWBfBzwGU4fyPfbYQxvQazx7DyD4DW7uLcyKqOctSbifp13LAUQVvtP4MPsQUKljYZjFZ13NEQ1TAQumVzCO7/COLoBj3q01esYAhRraXNClztiWGYXufLGO2nbcMC2wyHIwNGcNIWBsSz0TToYLuLzKvMga5e1Cx3uaaK8BoJ0B6fa0o1oWqG2Qzz6kDnUAygU8OotFqz9tuwE1rfMBBxzwFgATstYx3stT93Vgpkfec889D7hPDYY2gnfWYTtc6lW4pR6EMHYexUp4KqtPO4RvgCs5K/t4JtVKDFh7BY9J8zKC2Fe3sJ4gWY+gYZ4a7RSqH3pJpNrGdWigNPufaS0EBF3+5qvRaxTTVjjBBBdVNKOhPaXD01l53lMhVAGbPTM++bxgAKLbSXhOL4wpLfJuoHRDqu9VzZMhyI4U8HiyhMJs1DFAdxV1l/EIQmUKtYDA1YX7qhA8sx3GhPQ599Px2SwEsYsCKksz2X4SbBhAR++dRzBTRg41LNiXWPUL9GW99h37IBqhKUcbWjHxioUMAK76BknK/Ky/qpUqriqaDFGGJCipignsAo92Mdv561//2oMESvzMrTYAULnJ6hwfnq+mj9yzNou6bgVTqBREjVrHmN4eYF/wxz/+cSfaPRBQ1wsWwNr+0KZlwjKeKXdbCvWcmhyj3cPO4j0lqHhvoyb1NJ80LLeEvi2YPN+4MT2e9pELg4uN80nWpCqKE2CBye7NrCloCMowSuOgQvYCz65TNQVUKmDnZS4UzJFWD0swCJZySrQZMrafUs+zjcBmnnYDyPrThm1o14WMbV/AfTX66XrqtIBFZADgty1tHUB5B2GUn3z99de/Q/uuYX6+NGrUqI6AVUgPgtrbjvLXPuOMM2qvuuqqpSYie6kEISOQ8Zwcfswxx/yagTlKj5ArHyvZXACoiUm8IuqScRuuvgsBp+VNvG4of+KiD+lAnbgKo0m3VCewFQS3tqlAjeyNmxbdc6TgCQoCmZNe4KFMaXZQ37QtUY8Cf89iYlXCiDwqKNiExo4da3RsSJoP+JhYy6jqUhhDOGBQtchyjVnxb9mKP0lOHG8poQ2DmbhrUZ4H+X1BWzpYHzMFGkUtAFm+dRY0NKbDLjqpfmgU9/RVVUtUkMCCBAi3mAASMxDWau+zPI25FihLErwM4Ez6Idhz7B9VMC/7FwHIJrv8g7EbVSLEYRkvZf8KSrIIQVPPmfvo7D/jfwDoEuxQIfukQZ6W6zOCFOy2BuHtjqCGI6tpd6vGdu4vZ/Vfia7pZv0UdNkoKk8tqmeZiw5jWq63zvawELTuvffeDdoLVYs9vIC+e18VnO+qBC33ybmw8L6PUdu7qtoBiMWY8N/ntJUJmqr1Oii0G5li1sMOHHvq12wGRwFPZgQgmCZYQMwZnOni4v/05/u893EY/CmA+GuA7EaUuyXt6Ep9K2ynp9VS7tvYfPqzMBzNHN6Z7zdLUty2P+WUU26nzwfRB7+hz7ozv26DkfZhPv2Oz1dgaIYDXk+nlpJrqQQhAKZ4zjnnvMwq9hKTdx8BBSFpYKAnADI3691iRRrIwNUzqVuZRMaJhFQMCoACrhvflT9RE8KGVT9zG4cBeuahkYYb1UtZBaNmYwJ2hVIvkUZF04HIFiin1RQbTIQKBKD1V7/6VUgn4rHJZilEpQjR1Lp9EcSc9iieTycnpQpgAXQUdIVRdcy6yiRkC7RDQ7WT/SuA4i8mzOeZjnRHOokzCvvJktzSIY5IVcE2aIvRa3XJJZeoVgb7jO5797ghjLKO4NpXXTTmSXVRVVGjvvYQ62Q/qI4KTrIq+1A7kgDi3wKBxvskVibUWTXVPvY7QLwZT2Yw+gtoGrLN+2R9rJsgKkj6tz/R1qQB3LExjol+Ndf3m7Rz2iabbCKIG+/zJcbq9mbXNCxBb54A5Ljy03jyySffCFNbCcZZQvlvmjWSvhoCAFYAmuUaw5MTekPOIoFLZkN5rSY5Q/16n3Z0FwhZ+EIWR2OrZEGCrfYm7YEauFXpqGfI4GB/6jSg/c1uDTEIFtb8jtt6aM+9sJXRlHkuQNdPhwWfuZp4aMMHvPs+nu3Cu1YFjHaij6qo0wf0RXuYq/sJv2JO78A72/H+v/DO8YzhH6nT/rDB1fX04l0df9ZZZy0V7v6lWh1D3aplhe/G5HtPQy4r0fP87M9gjXByIzzHMUDDmAAddCu7Y1swiieKKhBG5bo5U0OsK7kC5MRy8it06u9Oau0fGjoFIJNnKZTmBVLwsUVpuG5mIhgjkmZVqmO1dFVMm0ZE75cqljYiDdYKqIGTUnPeOYfJl3N7SEz4rhogq4kAFLMsJulJ2gNqK7Hq6zbOaINScLRh2CaZgb+5QlCigikyacOKGSW9X2HyHlUYPXSCiaBiHwkIMiCFURajd0u7j5dnhpm4XsHVlW+fKaCyItNv2AYBzPbqirculs04FVnZv8KuYfraYFdx5z8C3AjAG98TWFBMpqbBWrCkfp8I7txTZhoOAxBhWc/x/OOMSS/GrotsCwApu/nmmz30MKjKXp5TRj2HsnjsCfCsyzgNwKh7P303FKDL83/Y7pMkzAvzQialSqgqfcIJJ8iAe1522WUhba3eMsuV+egM8T2CLoymjkXrY8+SE5BkTi4sttEFyr8Bs6xR9rCh6fTJ/qiVngZbk2x3cdErXHHFFZ4428VUxMzdTWCoC2h3f8B9HqB8B/8fzrPzmRO/ph/rZc7Ym0ajok3h702YIyM0F1DP2cyN284999yF3zZw/zdeSzUIMekqGegzWWm3ZtV08FQDVjZK1pzNDMQmGAlrmFQLETo3aYYI2QRgnCxFj/uFzYRUEwrNFltsETajGlukiuF+MGm0+r6qm94zgKugALqKSs/dE4YA5c3uZ1wQ95YAVB431F6mwwQvKPgyG39brqdb8P4mVvRgv9FDps1FgVUYNFgrjNqkEm9a8ChhR6qHoejtKnO/mapWYhsqGARHX9ytTYVJGeKKEJIvYTgTEYJl9EwJTNqNVDV8TkGSaVi+f/s+2Y6xPqpPgo3Mx8BDvXvUN5zYqpFZlUtwMlATwdReFQJE7ScBxT4GVFuoowCZwbtTrSPAdrnr3rgqd+6rSgu4vs/6yZ4efPBBQcp3d0Sw3C9m/JDxNyfQvi433njjgm233fZxWM5GLAiVo0ePblL1sc22i3F+S3WY92mP2Y96eAxUCX8Ps/4CpmzXjbkCpkZ5x84DCzzGSXAB2IwDMpFc1ra5sLlH0F33gmty1JDG/Dzg1lkmKaPSdmiiPPONw0I18oc8Vptvvrn5nboC+vMMkHWxMULdzcJmkHQQjSJnoexOX5VRj99zX1fqOYj+aeT3Z8ybe5kjW9EvbglagfG5g3k3kWf6U6eRgLjsqzsgVsU8fKgNhL7ny/zMDNRWCMTyrM4vsCq397RNvgqxIU4e2QqDUmrmPwSvNDntIeyNYgUNG1INaHRFlykIOAqgE0o154ILLggpNpyUMhEntvuXXC01zkrJBSxVEaOSjSuSijPR83yWj0GBrnhGXCvsSQS3gJbFgJiHgdRR53A6rEIkPffdlq0wq5oopP5tRLWePlmKBnPrL7gZr0QZRkl3BXBGU5cVPSIJQW6POtFTl3kMWNT4LhjKmuLJqKqa/q0AC+Ya7F3VfbcJ+wUjDcwI6kIPL1Rg9Z7JnmwvwJ2xzt4jkODpacYWkqUf5sL4ymRe5vi2/920qqoX44W8/Ns+ip+5ZUIgct+eeZ7plznUy1M+VgAYyujH2R6bTfu2gw12BqA/AUA7aAuTRdqf9MlcgLOnzEUV0MXFfFKqiY6jXjyj262PDMK6uUHXvnA8jSnTuO3BldrCdL1zv2EPgeVg4G5xi4mga6Cn5QO4ziftijYrqNca/ZmrRSPOHQfGv8zUInogZaHOGdmlbXeOya4BWOPKNgOYl2XMFgI8/a0zbKsb/diLef4G7bzTk1Hot28Yz9Poj17avgQ2+ucDAPDe1FJwLdUgxMQeCgD9gQ5/hkmrp2SgqoNudEFEV7ARyYbPszqVRoOvApHkIC56vyH/5rihHJNbabQN+6RUuYx98Wxz1RmFyAlnecbPuDomzCe4btHBgyqiSsEky5s2Q/aiUMioPLRPW5GgFveUSf/NFy2rEExECSdiEowYgCECxmInSGhgD2wm2QsWWI37plxxWaGzCM4C8yIjxO01mCbCLNMLHj9tWdqCZCXR3R+P25HlCETasPxMtVG1z/ACM3jIVASpyNS0OQlE2pJkW7bF3M0yJJPFuxAkoJs67rjjHIOv6ccqwVAmZbsclyRBfyrJElDUwwhjyRmYR58uoD4VjEkn2Ew7+uGZ3//+94+icizPs2sDDl2oQzbZxS+Ae+pIJ/sqOY7bfEWhfbIgAzUjG3TPnPV3HJPgTuvbYiwVoJKT8chQTbHrgY/2pcGM2oU8l07wVaWi/HAKiQxbtVYwk9XKhvl8BmWU6z2T4bmAuNhx38LkCGtjn8J8cSES0OijFiPIUduaGdsS6jeIfh1B/VfknhEA3Me0/S7atx7zcQPaMok57zl5pczZXwHik78tM4zPcMagHfbB/5rNskvb4YeVrFq/p6NXQyeX+ezD4I1kYvZh4nRQVWJS18GCSnSZJieoFphM2kUmm6pTwTGwTOBRxVItSlbJEFymqiRbYdIXdthhh7nm9VEgpNkapXXfy1Dch5UYk6dQNZOdmTMnpMLQsyZYuQ/NpPrGAGl7kukwOea55UTXvIm/BDInfcyWKBAqONopBB8vAcJLZpJ4wVIxrsnntBt5P5N5BmUfwmpoqothptlg1S+TAQmg3mOd7RtXaNmNbRVIBQLrLhjYH7IChUKmoxoi0Mi+7B8AvtktK4nNJtiRtAXFDAEmIKMupqsNAi4A8a6CC4Kqnwnjk2DI8F4vAco2+f4klch8xsONooKqO/fbAVoe8yy4VdB/a7uNg7FeG6HsrwHe55OjsFNJwGdgFoKt2ylcOGR1shyDVFVlTXVrW40OZwExcLXBaG+P7EbgVaV0SMx0flCuIQVGjDepVsqOdD4INi4avKuB95sDfFEgqH3quDLXQiI7VVuzMThXfK/bZZw7Bq3GxUSwpw91qBjGUMY8kS4aCf8Si+Rwxi5ndDfjb0zcKJ7Zh/r3YZz6sah2MMQCxvfc2Wef/VfR1M8//3wV9TyIdvfG+fJi6r/kWqpACPDYnQlZ7d4gdHDPgh8EovdkoDq4ncAIaVbxo2EtG1544YUlGh2ZbFMYsOp99923honvpM3LJpKgvcBmtK1I2TEwhuOPXUk9KI8yygQfPA0h5aq2EoVXD5fPecGALgdsNhCYDNl3ArmPTRuPDMBMjW7m3G677VqYmJMQVPPOlFNuQcO1qpc2KuvgBE//Dx0JE1uhdlJaJ3/LEBQmjaReCpiClthArHfloYceOowJvrwBlqa1UMj1Mmm70qbjM4KJ7fe9qiS2SXuYAO3rBRz/jnFK2EnCM/6PTcT2yaxSkampzvmjsOkJM07J+scEc4IK75pDO0I0uExEoIsgK2MSEBVK2yLYqkoilEZJG9ckcMr83KFu9sNWPaC0cXP6vj91X+D/JiZD+AqwlFbanLOO0Z4mkCr8hijIanQ6yOasv31k/2ME1hHh1pccwGz8j0CxkDrMgjl+yft7ylpQi5qZc3mjufVAum9MZgPA5zwMwG099q0LhoxVMBcA7QvbqqNCwJFpavsD0J13tcyLUscpUQtdsJ6hrycBlDK8GbRpNvVb0f6AJbrZuZnnPkS1zdInDzD/e8Dk2vE+Xj33XBw3MxaXHw/FRH0bxFzB0Xd1c+q/5FpqQAj63I5VaiiD2MgEN7XFWkyCzZhoC+n09q5UqjwMdh8mT286utEJyE8HVzu9Jgxs1hVL9UiAcHK6VYEJVK/QQrVbFR5W3AKTKQuL0ZAYV/ngKfO3E9d0rLIpyujDxKnULUo5pnHNGpCni1wG4oka5u3B9mMsSifKyHq2vO599zC5AqoquIIn2SGNYG5lcjYZGZ2oWcUk/1EIK/Dv5JDHRf3jcwKY6oqnhmgMdU+cNqkzzzyzVRXRvzXE2kYBVdXDTb22zzgYBdWASwC7HpAIm1ETtaKg0CisMrskaVvYRa+wKczWJcm9FIQ6AqU2GNmAsTsyEpkV71ZlKCS5kQIwWgfLtV3eZ3kKvInLWBwyeuu01ynYlOdx1Bm8QmELhkf2mFXSpPjYCHPUOWdbBDnBzU3H2nb0kAoG1tfxEzisT8zEqHqkXdBDGY0Vc4Hgs1YWujLa05/vTNPo+XM5286PwBdyehsR7wGSHo7J2Gq/qtADyli6KTp77LHHGjMVgh1V510QXDhc5JhHkymzB8DYBDM/nTEYrheQ9/eivH4eMcTfnWn3YNqR044FEM7n/RfALk+hjSvSnt48z5D1baIfOwpugM4zqGSLwAb7puEBtfRNI0bzutR/ybXUgBAehKbzzz+/FIAZywpSzeS4BSF6AoHf4LDDDpsHslcyeDMBiGUVAgbzcVbIaihzOwauxfPk1bOhqi2PPvqoEbEhPkihQTBd+dz1nD3xxBM9xz5z5ZVXBnUkplCNLn3VMW0ksig3zbqDXaM1E9GAwmxy/I1VNj5IV38jgq5NKdgmBEsBx1VQdqU3w8hlAUKhk0EhJJaTTc4hC6DjhE1YTzpmL/SKqhqgM8tzxmRxup7NGuiKqcAhnAqtNp4m1NiQrVFVStuNdRII/FtjqkBHH+cPOeSQEN2snSRJH2IfLMCu5DFAYYOmAOWzqoQxx5B9JqDI3mQEqh/aOWSlqrOqPUYf0++ZCKayLn+0UwkEgof9rqBqDBY4BX6/U22TDQp4fNZo7JCnjRhkKZjDRGcDxPX0bTltnEnbX+Kd/WO2R43QgIln/tRRVql97BywfSYgs19kpPaF7eD7PO02Att0JqWqrgYy2q9GWcueZbSqdzC8YLwGbEod8z333DPYjQzQFOzo4xIWwgJgVVAVNB+UYwS4uFdNpqJd6E3a/gDq/iaMVanvhRn+mUXyA0DzVQzYq3gaLNdhvPNMyhhAWbX01S6U9SpT4WMPVKBem4BFb+JB/sD5AUvrhWq8A33fAafBy6n/omupUsdQC6ZBQ++mQ89BEJ7CMPkSE/uPGNqOdzMf+r7HFAdDKgCzHMLUzqyAnqPO1YSLtOX666+fwSSbzUrfwdUQoWoACPKsSMFdK7hIzRUCBd5VXMGM9gVdzQIY79V1mwOAjMwuifFDlF1wG4JI4eSGUeUEtcRuo5AGYDEbI0bVEK2tMduz3AVFAS8xQqdju+OxP4naFUBIcFAgnfzJ6azlCfMLJ6aaK8jJL8hYN3Maa4cytEBA0jakIAl8/thvCp1/x0tGIhAJjLbfSG8E3NU/lCvg2hfx/DPv939Zl5+pxsm2ZAqCkbmj7RM/sw2qXZ4/pnoiGMUMiLJP/2fhaTSHt++WvQnUI0eOLDgeusFNLqYDgTZ76omqrzYrk6AZuuEm3QoA0oWpinmTse628ZhjjrGMSjfMxjgm20Kffg270IbYYJ9S5wbKKqGvzPedkzWaEkYWqeoGMBSMqJdl68TwzDntdEZgjxs3LkSpuxXEzbdxW4lJ2DzPTXVLe6TbW5ItHyGWivevxvyrBsDnUvc/q2Zy72923333s5nvuuFVQY0Of4i+7EMbPkMWDnaa0PZ3PffNk2bp/3b8XQ0znMlzW/H+4QDodpS1PkD8FprFlNR/ybVUgdBNN91UgA3NYrItx+SYDbho5NUYtze2kGZAoszVV2+Eqy6DUM/qkWESFJgcLBZfTUVIzmfCfcGk/SmDNoFV9T0m1zcMbk+D4gQFDdxOdCcGk8j8ytLqEJ4vmEjrucIeMe0tqgnaa6Jx1c2egNmiM7BY4Vuoa9ipbb1gW8FNL5PQNqKKo8vfCSxb03uiECdR0BrBW9xuYB/ELROqhQkLSifeJVfhACwe3axKpndQb40sxJMk/P/Xv/61/RjiYAQ7VSABV3CKsTCCre+P5Sm4Ao+rt+8USKy79fV735+ktA2sSGETRDB+BgHXnuSGTYHPsr0ELO1Q2kAERQ3ePmvYg30siFDvnIxEIbXf4sZX22wkt3vX9DjKKFWVHQcut2cYBJk64IAD6j2xhPdkubfEHEIyHjMQyMZkVLIvVVHqPo2yn9JeR5+bmbGR+s7Gw3mlOfOpTz8DTwV0VVBVOVXeVBKxjlpoWhDd9f7vqSraCN29P+vxxx/PGy5iXJntSLYZmVitwMIokwt9ICsW1ACVVhYSmjZwZfrrFgAoS/t2p05PU7fldt111+W5d0va+ByLp3mYhpgPiZ9+MKWvAOxBLMSe5rI88rErTHBrwG8T7l+WPu7Fu+Zh53w89V9yLXUueoOvUKemI2gNCMAK/GzPRO6mOmEoPtdMJmGOn9eZFLUAUA8zFgJalzOA0xEWrXZbIHA9WDFKEcIhpowwdYP6ti5ujYmyoJifWuqvICp0CqmCm4TsB7XG/xUCBlsqXo/9wnikILBMYl3jWVdFV3QBTVuBgOaOboyKJcnROF9Qz1o3o1JuJlHx6kxJYl18f+K6Di5/7QoGEApivl/hhmZrBHd1Nie0eXkU9HQMRkz2zZm83cTxYfV1BU8SuAVBYPVfyO8S71XgzCNkGwUljaqCi8/6vQBpnfzbz2M6U9Qe7XZm5Q8sxp322mRiuIE/AoC2DT8znAJmWFAF1Nskk5IdJad3zN9qq62yqpfJMU1h/1+SL1sjd9jLZp1iOlpNPPYR9Suh79u550tjtonsqJeBrOEQAVmIbRMU3AANWA7lHZ14/wUA7SbUrQ/j+hn91YcyutG+JrMVAKxvGgzIO0ppt6k4Mvxk3bahHW3rrbdups3N2oEA4lkAU4keVlTGnI4K5w592QIQ5TS4eyBAYuMLW23o0xqAMQsIfQDwDgI4t6X+67HQ7AdoljLW8z1zj/q3o45nMnYjYZkd6Yf5hiEgDx0N3RCwccZM5P2f8f8yOk64dyHlnnrNNdf8y7mLvu/rvxqEpNnmC1o86pNOXMnd1EzivVkt1oU6H89geEDfBCZFHeD0EiviiRgjaxjMNZn8kxnY0QjUlkyQ91zxKOZ5Bszd5QMPOuig19HxOz377LPlUfCc7AJOPEZIgInqkAKk4GgTUTA9617qzGoWcvIYKauakITvh9WZVX7GrbfeWulnuuoVVFUT2tCEIJWqovHcFzCgx1ixTVvhXNfgWeCd2oaaEDLZW0f+nsmK9zjCM1hGoidFFSaequGhh9b33nvvDXFIRuAKQjIH1SPamvH9gppsJtpwbLNgxuQuAXiaqOdcJn1ZYshfFDOkwMaDDAVnGY2CHE/oEAiol/OqYLpV1R1jh/yefvAMskDfrLtXEkYRwheM0br//vvDVhHrI7BQF0/d0OgfDycI46DaaKoOVaOoWqrGJdtFwnYa43yss2132wT9UzBq2tS+MtOYwsSxFLy0F1kv5smdqC6rUrdOzAm3fXSkjjMp4yjm3yq8+2vqMJP29TIvuDmg7FM9jb7PIE3qm19vvfWM13IzbTnvrpNheQqL57Vp8zN3EYDmcdtl0SjvokA/1VGPBuZ0LxYpQbHMTA8CHGyqHbadx5kfd5jUDZDubOoSgDwPUJUwB7vbHvvEuDDA2qyTY3n/ZjpEeHctsnHd6NGjp6X+S67/WhDS0o9l/yes6iNZTV4WiMaPH78TiH4nk+1YBnRLVpFp3DcZCt+Zjr+RVbyUiewBdbcgYLNYuZ486qijzkAIh8B+hjMhlkUIdmTi9IE1POyEZMJ0oZwaAKBZqs5gPs5K0pnJEjYgCRxOEITJo5pN2Bf2DiXbDsIKD/PRlR+DCvXABY+QQqSaAxg4Odw7FEDOMH3LcXuHthLBi8lh1r93KOMkypqCLWY9XdROar1k/JhjWkGsQDAGWTcFVdZmmaomqj6UV9TWoFCa7VH15sgjjwxqnAwjiV8K2y0Er+gqZ2UsGLekKkk79fJVmRnROgsAqmOCVQQPwVmhibFK0RWehC548mw4BEBAdP+aKqZRwqqFptMFLMMGUVblvCqIrNK62XeRfVpvY4sYxwVmTxSsVC/tuxhhbf/pqfL0XOtjuwR/6yIzs1zrIwMBWD6lnnM9YZaxq4iR7kkUeYhpcmHhvsH8LOfY04Z6gPpm6voVdfdElB3obzMwjvDEXJ0B9oHtjpuiVdXckuLpKrCPvPvQGLda3tvj5z//uU4CE6jJAMuwidkfYbuJCc5MH4Pdybzi8xin9sayGTcmaxTkmFMHaXBH7dqGBaYHbViZ+dnFo8T5Xe5maePS7BdtbzCnTjCnTTWoG9dEf85ibG7j3t4nn3zydE0cqSV8/VeAEB1UdvHFF7fE/+m8vvxcRYePZOK5A/omDasYW7dmkDdkQDzzW/fpIDwI9ayInaHAH4H+OzFZ3gNwLmEwujLhNkS4fsckGMgArMxkX8bzqhiI3gz6aqziHZgQfQ2K413mfalnwL5AGPogxB4dE1b5JDugK2lILh+PrVGNcmV2sseYHieTlyuRnyUJsFIx1anGTT/DZe+BjgGo/EwPHe/sg2ANpD5bIFBVhgCoHibbNSzfK2Rp9B0m1lLtUgi0mxiPZF0A1pCe1ecSd3RQ1zyHTPVFJhO9bXxewMhpXiPtLu6Bc0tKDnUoMCrLFrTMEinQxr1ZMeF+3PoR4228NCLbfl3jjEMBFaFFcNxrr71y3mcyOCO3TajGghG8dYKPdY19qLq2xx57fAzIdoDROBb1sBX32BVjAnltX4BBI4tUzvobiOjiIENSyF0IZIcwgi8BofaU38h3nejTesY+BD+aTiUCM2p+iJ7nHR09LMAsBywQLR77TP1mIrgr83dfxtwyQoCiY+yz5gtinr1L3bsxJs0e/Ap7KVOFFVBpczsZiqBCf8tCtf2pdoeFRgcAdZ7E2NVwXyXPtE+CHPWqugFZkNKR8hbzfgdAZzW3BWljMiMD42lWgQBw7n80Vk0G7O4BAG0B5RhDZwyUkfvDAcoW6vHn1H/BtcRBiMEYyKTaEY/FHDp0A+wqH5x00kka/HYDNNZCTbqDDpv0yCOPzEbFmOCuc4PymHz9EWDZTi0T4H3+nsHEHYrRsJSJshKD0Y+yl8NGY2Cgm1jdUW0QXdhCAeWf5+F+CgwTtQTaqxG0jIm0HN+VRVtHdIcnO62Du94YDD1QTvTkjPZFZ5kp7Ko4Mg9XYYUDQZ7DRDXFRNYJO2rUqKAiyJK0G/gO2QTlVCIoA3mmivbr8SoivO/Tvpq4S973aFPC69HkBL322ms9xrkV0PBgxXCMtYxAkIxbPaIKo0fHYEpXe646z0ajnDoArAx2Od89WYl3MICc7UnOSAvAqw1JwBSYrItl+ndst8CA3SPkarI9fibQINw5WIZxUgX3z6meyV5gBTn7ysuyVEWSDABBdcOe9i7juowOA8tQxUKAWi+99NJMNNDDlg0QDPYqbEctLgwaqpOjihYaVEh/GNphQGB7D5V0S4e5q2FPCmVMhJaKhzjGxHduqaENdP+cbpSxLELcgzrotaqQsVh3n5N1aHRmPDvRT3eb+8nUK/aNe9GMPdKzp+poO1Ubk6OGgqosMOtQATRLDAMwutyN1TJV1fLohXSbCYDiFo2uzOta+qDMfZAaymWTLpgaxrV1WZ5qqWo/8zSjym8QJs818f352CifPeWUUyrOPPPMuaklfC1REDKMHDQ3FkLUvg2W4/lRb+DBGcXgHqAKxMTckIH/CvYzwWegn6+x4n8JSKzgIXUAw9YYNccyGY+FPo9Afein8DPZc7rcDTpjsLMmA3O3vKDhCi/DQLg6YJQuUTDNkHj88ceH1VMVJUnrumh1VgCdrPvvv388rsYjgV2lwnlfCmLcgKkgKYAxZoiJpKt4US4dN2/6/T333BNASoGSOSjsGoKlzj6bnMz6JcbJl2jLik5Wjbe6gt3NzYTPsnLKsIKHxkmvQVsVTIFajAGFv80VFI9pZjU14jcAml4vk8CpztkG+qfg8T/WNzllI+SkjodH2h/J8cqLbGW+J2lfUK3sD0FFA30S8d0ESMzFLiEoFI4++ugv+KzmV7/6VdhG4b0R3FS7DJ2gPlUymGSzazBIu9ob72P/WF8Thvm/dWSMF/B/qWOrh9SjdARenpty+eWXv82z/XSRM0+CyiKzM7WLoBsBRWYTFxK3Vpi3XLscZWaZA3lPaFENk81GoLWPLrjggnDYJPOvL5+VG/Co0VnVzPq7sddtPPaPaq+UVvVfcGHs6p2vhgNonBbErbfz1e0tztkY1iDbA/T0oplFIYQMCLqJk8Sd+iFjqGzRvgT4GlzM6A89xwawuq9sc57ZiLFcEw3ktiW9036JgtD111/fhMG2FmZwCgK4Bh/9+re//a1njO8CQHVF1epm9DATYN0999xzypVXXtn8m9/8poIBfRMUX5HPR7KiDWKV7c8KsQETpoYB/opB/Bxm0E0Dp+AhBU1idIL73pWDCRSE0B3VqjGqJ96ranDdddelop7vZwqebMJ7HFj1cw9JdIJJtR38xfP++KwrsSsTQt5qzuZo7BawnLhuCE2yKYY4mngMkOV4aKACj4ekwITqiat6cHKSaHgfZRcEASOZ6b8QiGjbVGH8LfD6PpmaE9d6+A5BzPZoTBbwBD+EKQT6aR9JVCoTtn9lLm4N0wpa3Kxq3yQ77YNbPO49S2xVYUxj0CJlNGD38SDJUK5C7EZg1OrpqHZGjZebRN6jf7xfoIqnssr2AFJPbG1nnySHOabiNgtXesFCgXXlV82RXQBeblI2h1MQWvrnY9r+AmPcmzo+C+DrPW3QrS1TtM6w74J2KttJvzQafW3fyFxUsTxUUjCwv93G4TMCa6IeW4YqUgCwMWPGOM5XUy8NzsubVUHP3x/+8IcQRzRu3LhWGEhGVVQvoGpTks7D88vCHkYB1JAKmHLIWWQMUtxoHG15jpF2oiRIVGYfnAX2j3NR0NF04LjL2Nz8ylg1eZoMZRco+3Pu+QhZGYSs3HD++ecv0S0c/9cglP62/ccLA+TDTIQJrO7v3HHHHbszUTqzWm5mPIuuT6PQAZuR3PNzgGMaTGl/BFrgWZ6V8lpWk30Y1C4mM2dStEOQ65ikndxkKkOQ8iYxOIHdyDQ8awthNwOdKSgCe3BQAbkgoAz4VFfi6CFLcvYEELMsaUJMfh+NslEY/XHVNgkXHo35gFlpElT3V4GHCp4rZAzwczVXwDQGy4wM6XdyScNdeZmMc5ho0zzOx2cFEM88T9KVFFFVPjNCXFXDdhiwSD/ORZVdlJNagVblErhUB5noGdNIqOpYb9VV92jRT57DllfYVSNkDAqmDEmGJsgJmJEdCT4RRL1Ui4zrUWXUNSz4Uc/5CJX2t2oAcCHvLXfflXYcE5MJsMnJtSm3u8gKjbD2Xfa7jE4WqsHYxUPV8+yzz57nuV++Q0eB4GN9FW4PFgHknqNPPqbP30HgNuW+UoS/0pAOx8wjhqKaqwNAVdZ9btSjiX6eSl/V6F7XIJ4k9w8hAZH1yiTd+KyNEhXydcB3KM+szLzIa49R9fd+98sh9O57CyeyJipciI/yM+efaqUAasoO+9V5yUISPHgxKFS25YJhe1X1ZI3uhzPbo22wv12MbJPjC0P72Pcyn/YH5MbB5FcBtDU5LEsfdKbP77rhhhu+SS3B6/8UhBgIPVN3nXDCCTMBonfj51DlVlaJzzzO5I9//OPOuGvXd1OqqTCZPOrk5SYLZ/BqEaaHGIwPKGd3BErD8iYegIfwzmZi3MWEW58J09lDCwUhw+Kjyzd6hxQ2bUcMaCZJOqYBtUidQt4gj8oBRNoleWkWgVBUuzSIusIJbpapUCQpNhat5ElqVoEqbMGIuXqSlTT8yAKcdAq6rn5XZ4UwCrRBjU5gjc6uhtoy+F3j8TgInOdVzULvb+cqqyeMfmkP+JhPJqMQesY6E6zMsqLhPB5+6MquypZsMl3UTj83mI+65wU+64kB05QaweunLSzagFQNrG9UWb1+//vfh1UZYcjAyIrJLvt0ck59+Q477FDi3i6M8hUKklstjAmyH22r6plhDIIPNsBFqUYENAVRFUoma91dVHi2VNe1zNJxNADS/+Phl4zlSpSxGo6LrZwTusNZeBYa0Mg7Z6PGtHO8VMOtTxL2kKdN7g10/2G1jJd6h20tslTVRzMxRBUxsX01AJA96Y9s4uUzgVqwoQm0AiR1mAKIV9se2Y5hD84jFx37x/bLymV1tk9vFqpmvZkoaX8m9ofjwrxWtTIvle6/akC51Uht56/zwR/np4dC0hdPwH5uhZG9xEL/muDH+Ji/+i7sblenlvCVTv0fXSbCYpU6nQ58l9WhA4N4DxPm68XvMS6IyXkjHdSEUDNOf7qYVaszAzhxzTXXHK4AMRFN8CSVVzVJ69FQGBjQz5kUnZmA0/m9rB4IJ5aTic6fqlGOAfeM+UonDSvQdCZhO9iDdoOc3hAmZ1qbiYCicCpsgpfCKTtSCGPqUIXLSYPAqG+HCROTtEcjrcLuPTHNRTw91ahlf6tGuNXAXEVuO/C9Mfui73ElM5d1jCiOibAEJ99h4i8mY6PMjJ8ST/+wD2GQYWNmcr5anXuJuKoiC0sSZ4V2+K4kH/OiVBoCZkyoZpsBwWYFk7JlWv0TMJ3Ez4CYzsNnBQfHKGFUwYvlO2Sf9hEqdHAzR2A1O4F95IGGJjCTaXmvLFB7hz8yPu8RhEwYJis09krhVw2xj/zfyGeZn656QyrskxhrZDmU+TjCZ1T8LfTTfFTDX3Pfi7CBzTwoAOGvVsUUNFSTzH8tu0SYNfyHUAeHXXVPlQ4wCJ6vJM3vAt71GHNtxyTrYvD8KV+qazJHT4ulzdNpwzIGrwoQql/WGQA1HiwwR+eyNkqBXbXNeWm8l8BhHBOyUNhuu+2C/Q+ArUM1r0C2PGDBsc540ICxYfYnz2h7k8UZpFng/ZfyfiO4T8RYnmWun4Zc/SG1hK/vjQnR2AqEpTMrW6/zzjtvlmwHgXqVjpqEIO1Kxz18//33LzqWBBXpVwjOsXy3LgPWFWH+HCb0PBNlLSbSGMBrA9UGgOdRBqiXO8tZBXNMaM8VewDges69MgjbEGxHTYIC9oh6vEevMslqmEhNulZN+SFl594vWLke4P7heq00FipACp8sQsFXGKONI6pSSZ7nRfYhczbrQo3CGFmGIJJs+1ikflmW8TxOPtUiBUZDs8mwtOO4egN+zZ6U6qrtM66qcY+XyddVlzS4K3gCEsKXxeCYUy24+eabpekhUb9lJUfhCB6l9nFkcrYxnqYRgSnWUZXIK6qhtlF2oW0HdXUOPzU+x0+VLC8apaMdxb6z/bJIwQDgn20KD/slOT459J8LhICvEApQvkcblmqSTEhgknEaFa7ACkCqPQqb5fNsK+zMo5xDf/pbRhWdAqpu9rFAJOOgH3ubBpY6Gm/1EgvBNFjDZYzdJwB5X9TBnjI4GZmLgwZf7TEegeSCl/SPxl4TjS3k7/IkXbDzxHxS9m0n6qXqE9pvP7sTP5kTpiWp0agdbTgyN+1OlmObucLWG5m72Rv1Ipr4Tc8u7/NEW+09wS7oj2llsauGk2L4P+PC43gwD0K+IvciJkbwVp59mLZuyHtHrrfeemUA0UTK3Y7n70X7mJlagtf3BkIIVx8avwIT5ydMtEm33377QlboBjqonolVCii8z/8tnpWEDnuU0c4I2nmsjoMRsjmg+UUI2upMrk2ZuLPw3uhC7sUEHoQ9ZzYd/Ij5pJlojQych88ti7t5GkL4Ou/8lMHKAzav8p4KJthghKO9E8OVURsEk6MLk2A1j32W4iuwyS72YBtyAsUNocnZ72HldYL7vf97j8AVE9JHAXGVcoLJigSjGFvj/aafsA5eCqXxQjIGVNQACrRlBtS/nRNR166xNobiuxI6gc8444yQXiQxQEv300ZCe2ijE9fvte8IBpYfd9lH13c8z17bit/b5niPv61/rGt00cPU3ObhqlwjgCTglRU0FgffaPz2Gf9PcjW5lyuc0Q4gNHt+mZ+boTCmM7VunvpqilpVDRcJASiqOu6tE4Csk+pS4krPKLiCmqpqjNexb1XB4ykf1s/xhvFmZSm77bZbf57dEiAxwPVggGgQAvwN3/fE9Z9X8AUzvaDardxZ70ZlFz3atFB3P+MaQNV9gzJhbTSejuFcSGyExZjtQLUtYdLBseBn2AEFhVrUp3IByyybqlyAnTaeVjfbalg2B3YSnJlxjhgsyRjNd777nMzXd+ulda+gtk7k4Gv690sWwA6egZeM8wfM3YfoYwN2OyE/LwJOo5kjayIbl1900UXzU0vw+t5ACEDw4MHlmHStrNYTYUKLjh/xZAImWdUee+zxUyZcDybY5qhRA80PRCdtyqCVowuvz2BvbWwHE3MAVPkFJuTK5oWmQ8t5rtSjfqGy5e61YZC6I7geA1xB578NYA1lkFZg9QupPYxsdo+OkzU5/LAWIStzgiZH4IRJ70SP0cBeySmngdXEHDyCTAQSB1kbhDYDVSYmX4t7vyKLiCecKhiqDCZRj6qZ9VLoFFxVAAHA88nd+0Qbm3lnTuDTnuDk1WjNpQGynnqEY6AtC5BqNT2JQXLaJHQ/W348SNGVkL42YK00iZ8J7ZBlQPHnehyOlD9J+P5Xqpl9Ej1/XoJQVN/iWfQxOZn3WX5MR5s8k9PehpG5GfAuAFShTfalwGrKlIRlZFRNZS32iYDujvZrrrkmFVO0yhJ8n2CjGhb38MkKrLtuan8EINU9y1dd8h4YWSug2Ur/5g2XMEcPQm149+Pa7H73u991oh4Oaot5jlTBtNEBQm/yeQVs8wXAvsYd+ghxSM3q6awGB/LOaQDWi/THAD4LOYe0zdDmdHJ6StgAHfM/Jfm+BbJizDtlW3THM7/DMVLJkU8hSNG5KKrB/FTxyhwTbYmRPcPW5jIHDVYsUEZ77unK/HRjdnfAbQ7lG2xZQxvUKIz6b2W+/pl2nUwf144ePbo1tQSv7w2EoHh6A+bT6LcZnPVgMh/EeARW7E0RiKMYbNOcPsOgjmew9sUGtA0T6DJWyTWZbMMAEuOIFHBP+ByqypHk39U20MRgdHTTKIIddsobBbrLLru0B2TWZlWogEmVOikV1HiGl9Q/Md6VSYmdqE5iGYHfu7o5sMlRzGFya6c47LDDgoCqr3u/kyaqWAKR9ygc1LHupZdeKomxJjC6JoBOm0zOU1wVMgXQ3MSW734pVzXLFsSMAZHFYKzMq7J4v/WN4QUKph4/vs9Gt7+7w90rhj0gqJW21ysyEoAjQ31LraPti0f0aOeQXZm9UJUyZouMAYSqgTEzosBlH1rPJEJ4ke0r5jtK4lLC3wqf6lbc/GreawAnrwBZZ+0fUeV1jAUYxsBkZ0EtdjwUSu0rrvDeE49MUu1zG4g2KNUlVVTL0tMok0nCGEI7BSNVYO5Rdctr3LVNsKkpjP9Cxqo/KntfgLGKxbGcMZpCf1fYp543B0v+mjp0xnFQysLZx+Rlic3OLAVBPQTM51HO8ub+wbY0l/laOmrUqBDPZNS16iR9O4vxbuDZBvrAvWQz+KxEABTYI+tk7BbSp6Wwk+Dw0Hlhv9onehxlvmZjMGdUPD2FMj7ktzSrMcnM4GEI3ZM5rNroHrZejH0HxsTtOMMA8YeQgXn0aReAfnpqCV7fGwjhYu1C597BJNwU4SqFam6Pnv/+PffcM4dOLKEDf7fhhhv+joG+mY74DYOttf7PTB5p7xes/isxyXQ7F+x8VuoFUPr7AJZljXw2WRgTu9y8vdoEUM0y22677RxAqb1qgjEpMgc9HhobnZAKuZn+ZEXaVJh4BVchhNPQ/DDAlqWg6fXxiiqLQqjQOsgKsgCkwCkgfOc57UUPF2S1KklOTY0etJz5ll2Nk+yP4RkM8Boiw96lWC/vESi0v7jyK2TJPqhwMizg0IQOn0Mdy8Xd6Kp7qif+bT2jehO9cf72fwFXkPH+mE/atgHCIUGZAq8weDnhY3legqVCHmOmBE3BRyBOhCP0mUKkDcv/vVcAEoiMQLZvbVNMGSvAKUCWJXMxetgtJdZP4LAd2qJUPQ2e1DZiUCtMpIkxyrkYAAiNRlLrhdSgK0h72W7HSA+U/eciYZu1KXqyivWiT8zC8AzfVQFSy5lEH6GfQju64FEM20NgmAso+35UaAMUV9aeaF0dF+sq0Po3zKUd9c/Jhj1cwIMaVZFkm4JLklvbSO6FzIH53NOBef8c4N7HFK38fMR3LyIHM/l8Hn2iDa/cxSAJn3B3vd66oH7TJ2H7je92Ow1j293jrXlHqVuQeDZ4eZUD1fq4rYcx2Yv+u4yFb2M+P4g515s6ropXeP4555zzld7p1BK4vjcQYlX6/VNPPbUqQHMOHTmIFeEbqP99fscEmkmD70V4HmdwX1FA6ORvoJdrMdm6Iwxj+W59JnSZne7EQdAXgNwDEZhy07QyUFMYNCNTS2EPLazOGgTLWJEy0bNlnhjtFP4fk3lZlkIrE2CQ61yNEDb1fhlE2Kms+qPgRiagoMlIZFUKX8wkGKOHPWZFYVbAqGcBHb/FYEYmuL8zhx56aAAx3+nxxwBwgbZmYl7qJNw+eMrMwePKbQCcIffW3fPQ+d2KAORc/fSkJTmlZRgF9zvF1BzJefRhDOLpGTG6ObFZBKbij2AoQAhA0TgdQwgsb/FNr37nmewKtfaNmE/a8qLNzL6QpcQoaz+X1bn9IBq6Y1R0tD35WVRL4xYQmQNAEJLMGRiqgdXFwXr6fvfhJZHnnhsfsiBq17Mugpnj67YY6+9C4IZhP/P71P+os7KrShaEvtSxC0JdlmzPacQeo+pUan/Tz+Uw69VZsPomqXOLJp+zjYKj/a3qZJyWdh1ZOQttiNbWI2aktIscc3u+xmDKrmaRfYJ+fJY5p8OkP+rXT/h79J577umm63to/0Le3YU5+Cnzehmj2ZnDk2G+BpVqhgiblgUVFwHH0THyR0eFC5jtTOxD4R7ByAUZUF8fZ8jnsKjR9PXnLOpnspCW8vdlgNdNMNWFqSVw/T+DkMGHqCrr8NOMAXrELbfcEvKUYAB8ng4cykq8D6jcgYk5mtWpE4I1XbXs3HPPNWH9z/juVwDDROj4CCb/8kz+KibHNgCXKkTWqFEFFQCoMO8u6s1sj/JlMDp7Hrg2Ham+xy17+B91MEVmRgByoq677roa7EJyc1mIh/Gxas5HAMpYdUq0GfCd+WVCeHy0f8Sk6/4ttY87xaNnLO45UnAUDCekIGTqEScOBmXDDDxRM2sMC20wnWit8SPjxo3LMXELUPew8gs6/hYAo5tetSHJuBhURiN3E1UrHcMGEsbjSR7aJCq1IcheIuOJRugYjKd64ARN0n94iGEwilue8S+u8rYtpjGR6SnITvzEiNyq8TjZ8hLGX9U1qq0xqlz2Fc8Tk+UpEC4C1i2Cln25eB4iBSbWM7G3hbO4fFY1yzok20FCDJSg7rMyJpmcQqh7OoYXWJ5GYwTLzIfB2Ix3tmBKDDfQyrIYtzLmiSlXg6Hcgwqpd6VzxXYZ1awJwHljsjlT9NpO5nbR+aXjwEXOBGV60FzMZD1ujzGeynFzLuBpK2UOtMB+3QS9DOP8milfaM9I2vAK2sFbHqpAPS+gvF68+zoWjHsYg16AnYcWlDOXq1mkgqE6OXXF1LKhndieirbRRcvgSJm/44YqN5+xLlF1o32Gd3guWzf6YCxjtgP9vxr1ck/cn2jrBOqwRCKn/59AiJXKbRVSO3OWnACjWZeJc6ffXXbZZSU33njjwUysiwEFk4ldQidshGBdLQjhPRMAVmPgnjVnNIN2gpOYjjEHTdEBQwA10Iad5KotIPdcPBgeF5PxOJZ4CqYTlNWpjg4vjxkN3evkCoz3KR3tFhoa9ap4UqeJqKKQOulVT1SXBJYoLAqeEzomTLccQcj7I0Pyt0KvjcIfKbvAxuqZw1aQVU0ASGVaMq4KE8l7RjpluTMy7FnyvXHHuwJnvQRXwSuekJEcDRRsJwphTBdrvXnvR/RPT+1WCu7BBx8srQ59Fr179oVHEVlGPOU0yYwYWJDCFL1k8TRW+zXuY2McpkH/r0Zohpu7xnKc6IJLkpt60QGNjPN8focTbwV2f8tEojcxBk/q1fJ+3+E749lnAIqnuYazvAQbI4m9x/IFLlmW4xC9Z/aFC44qiN8ppMbU3HHHHWGTqPVHUFtN76rR3qOs7XfL9jnfLQtVzXMxsW/MFa1adf/994d6uBB5PLgAZdJ/Y9TsM/o4nEUv43HMPALaH9vhWXaWleSqzlqn448/3li0GuRgFvN+CM+sctRRR33KHDiVtoxinqyKA2Vbyp983XXXHeFcoPxPka1whlrMeyQzN45IlYwFPYSJuK3E99LPzRqg6fdSF6ZkQQ1tob5urB3BmJm7ak0AfB8W9XYA0zjKaUwtgev/CYROOumkVeiMLZk8qyJQ3yAQKx9wwAEPQ6UXwEyaTj311AcZkKEAygl07gcIQY9HHnlkV577hsmyB2AyF6PgfgjRIAZqmBOGsr7h+Qpdu6gk9UzSuawulUxCV45ybE0tRuMyGOHUUgXAyQxzyANSnm7Ryr21rHzlCqEg5SopfdY+Ie13NXUCOzhOWgU1cSfHo3PCd7Ql2CKc3K7orjDeK6OIsSlOYP93m4FgpdsY0EnHfVy83/1CBTdOer+qBLaDvOeam23R+gh4ApvMw/B+BXWrrbZK0YeBTgtqAo9lmiGQyRdUv7jTn7b2sN7aSQzlZzJmBK/FDcsCjmVog0n2xDk5gxE7xjbF9B5RXfOzJCmYYRXXIhh11G9T1VUvvxOw4+bKuHXFjcUyK/soYUktsOD5suaYBtbLtlvHGIulwPmde+1UZ/w+qpBeAk4SexQM1bbF72yrc8ANyDFVin0hm2E8FrBglRhhTF0yidE/9LXg7/YJx91nUIkEjqLMQZuhdbMNPitjpM8/VFWK6VsEc8HQcVZVtE+dO/aHKYJVx4yEd044TwUs47/46QJzWZX57aGO3ZhTu1CHFZj/eaPMsWWVMc59AR8zQqqCdda75vyRXatCw3LSeJxDAKuM1hAG2F2BOdLqgQvapLzfrT3GKmmzdOMz9a2krn2p60r04504kNahn84GdAsYw5dI3un/GIREVmjtmfzcyOq9I52/HT/L07inrr766k9/8YtfDICW7sAgH8sAmoGukcHqRIcuy4Ss5LPNmMwj3YzH4Oo+nczgLMuAV5kX2sGnAz2nvNEIaTveCWTeHdOHurIDIHnAYTIDXmM8jQPtxODzN6hX95133jmb7LEJO9adrK7GgMAzCEs/J5ATJp4+EVOExhVZ16oTTuGP567HOCHByBU9Ock1MAEvhcm/ZV3SZW0/sICwgVUmYlnJMTMhelgvGX0136OqYY5B6BQe3KYBLJxIceOmKo4AbB1U1ay3nwkYAqH3mdBMwFFI4xVtQ9Yrnpjq9grbZLsX3zwraCRnr4Xn7CNZG+C5DkC+nhuKqUtI3C+AyYRiYrQYEW7fWK/FcgRlkqOSct+eR/G8suhpjAGVPufvaPiWofgZglTAoB92msPOFjBGJdHwapSwAum7HSOBAhZV4pnwV1xxRSYmTPPHduuhc7ERgCxfO5J2qBhp7TgZOsG9jR44CKttj40qJLYTULRDuZiwkAZmoj1JgBMQZEACo/PUcjxY0bL0bNlHzNcQ76W3j/nraS9ZTAfOt6n8vIBafwflb2ooRozZSiKvw1FTMWuD++esgwulxx8ZXqD6yLiZzN+A15ASRFA64ogjwt5A0xjvvffezzD+d7BI/h7wnrCkAMjrPwahfffd1z1J8s5f0gkPQxeHMVnq6LBRTIATGKThMJw3BB1u70Pnd6IjSpPE8B1Nd8BglaGelDGxXnz44YefRYXalMEeC8u5kQmjHtwD9/vHJoTSgBZ3qbNq1DJxOuDqLzLAVaZacBAUMtULgK+PofEKlBNBYy4TRKOqx/No+Hubsl5mwFbSPR3jXWJ8UHTLO5mdQNoTNDZG1SZGysatCoKFoCAQOCEFQye5bEAhEuj8ToGWurvyJjvFLb/Z/VP0R15QEDxYkeeZo5k+Nf90i8zN9/iszM3LvrB9sgGFKRqkrbOqiwzJFTrWNTINf1SjZAo+Y79ZdkzNGtlItLf4To3k7k1DUN3HVxkjxxVyhTfJZ7MI7Hyf5ck87Zukf3Mxmllh15bhFZlaEs+06DOeLaqGa+/xc98h6CrBnmCLQbcBcCk3kM9nNbxapvcK4v7I2HxOb2hM5KaAGh+VCG1YGHzGvy3H46FdVLxfVdcL13yL6WCM/9LlrnooqBovlIR9GPcT3q/tyDFyvO1zgUewYGEOgC0gOO6ClrmV/M5xdMsIAFqL3WoK5VQzb0bJjARJ6wVTmZacRSaghzTCLpLOL3M46SG0XrJ+xxGVzVxUX/KueeaLOvzww3POYestKBtrxnOXI8ezltpUHtC4Vgb1E4ysU2nYFwza4Oeee66SgZvg5lMEoCuTaA/UpL4G8NGRBdUEVogCAps3qNDJgS2nBIEfRsdtpB5O5/YCsF5lEk9kwqwJc5hAR3ZlwDyiR3XmSwZmDpSyk8cD8+5gvI6MwVVRFuJK6IA4+NpW9H75nSciUPZLCEKez4c7sZ0I8bA9zyA3WNDBlnl5xYjg6OGJdohoAxH8FHxXRt+hcPvd1ltvHWwtengUCt2lyR6fMLGk6dbHY2oEupia1DzEtPcbnm3vqmektxNb8PBHu5FHW2v09D14ZJql6br8tW1Yn8jS4hVZyuJnmDmBkzO3wrtj7mbraF9aF/qq0ZWafg9jaHL3xcEmArfPL+7Wj32lnSye2RY9Ygqrhl2FKcYmeU/cGMv7WpgXekCDt82FxP61D0z5yvM5ACacnhHBWFD3R9ASRAX+GFrgj22J4QxxL55A7TucK/HoawHX89ypp5uEc9pf3NZjnc3xw3NFjdUyktVWWy2kDXG8uYJnzP60bD+TnWtD0qvoguB74sKmJyuJMStec8012qnqsQV5XFQX3t3Le+wjFzPnM22vp49M7RsixxPGH05moR++pk3VfBaAyVgzzz2jHOOC3gf8zCiaSXIbLaBuJYBjNe3YhkXm2iXlmo/XfwxCiYfL9JgfqXezeo9j0B+FdfRlUn5B4zZgEL+k81/j87foyBV1ZSYeg6yU1dVIiqm9R9cl6ss4JuGXTIin6NB9+K4HrKEPwtsFAffkhlYjiek8+vijge47cqV2ZYvGWye7oONKliQ3CytysiqGcHpWnFV55zBtLdEG4nNOTsqvZ2KYc6Ysblr1u+gF8vJ+hS1mHYwbXRdP76ogOLHj+WC+BzpcMOTAerotQUb0wAMPNMH+spapV8XTX/WaGXxmRKwTH7tCq2dVCRo+s+2222qjaDE/jO1GELKupK6IHhsT8xMlIKLqVZBZmGlPNqZAR6ASQPwdje3aonxPVEs998vTbBGOvKdXaBxVCOJOf9/h+1R7rVtUd6IHL7JXFoyixlP70Dr4HvvOvtBu52JgPyl4sIWPuNd0LqHMmCAtMjDBwz1XCJdH4wQgMrWHAi6o+Jzti3Yuy9Wgq93Oz9yXJltN8ncHAPUz/xc8NPC6VUNmysIaToB1EUOAi0miuxDNbN4e47f8EQxUr0w/YtujqmeMj04SAygNtpTJyUZkJc5d5KAgG6cdqk/mq87pYbOPbI9mBPua91e6dcY5nxjnm+iDWsa8gvGo2meffcJpLwK1dkHV1SRY1tOIMyzU7tP0dNoPkJdZgK0mku6A9VwM4H9JLcHrO4kTuvXWW/vAak5Xb6bjb6MDOjBBP2BCfIOwbU5ndqeTK3Vbqpv6g11iJp3ptgst/ibv6ofgPUZnf8Kg7Q5gfcXzq8BYOqHr5xPKPDU5EcOcKG8gjMyJ9iHnjQLhxIKZLUq5KRApUIKdE0Ojb3IqRPCaOEgOdLSrJAKTAfQqnJAaL73flTimAPFzJ+Liq3j0mkUvWlRHoMELDcx0dXQSeqy094uEkRZT/lS8FtWumIKWNgIBjzq5Mdc5KwAFyh/tLYb0e6KDTC9GhBvU6YZO1RJVAVfKeLyzaVXxmGWMN1Kw/FzBj2fAU89W7vtYwYeNmrZDw3eI5PbSNmdsjZ9Fw7Jt9rdg6kodjcfa3+z/COAxj1NUU2I0tIxN8FLoo0PAOnnOO991czx9XnCUYSrQlilDUHVyQdM+ZtkCZjyMUTCM9yZeqWCHcwxdEKLtzPEwBaq5mOm7YG/0HgFMlUkQE1R0dujRlN1gSwxHQcnOXDhdJBI7W/DGWheZk3PLfqZ9utRVi8Jiq1fNMY3szfZ68q91Mr2J88SwABcJ80arjtp2623f2UfUQSArsjDlcMkbYOk+txB24LyUxcqQZeEuwJoiKPN9Q0NM6oaJoAtzsxvza6ZxdZS/Oh7nK7FBLhHPmNd3AkIMVBcEZ0OE6GesCG8xYa83ty9AcZk7lwGa2Z7rBOq2s8PtNL77Eu9Plcfkope7QW8Bg70VLuatYAudWbVrEc4Bd955Z0lcrZlcVUyUUsrKYEybybO9jadRIBRgBVLDpJPESyFxUIw4dke0Hg6FiYnTxATJCmhOxnikj1suPMk1Rhsnyc1C2XEfVsytHDdqxt9+Hr1DCEjzCSeckKVf8rS/oM3HSaqr1zB82taKWzacYS7jSRKghedjDhrqbUbJrCucddWY7OSMnjxVOydtfD/Pf8wYvEJZA6MHLPYLPxk8jsFAaXujQVuGQN83A1AtY8eONdWq+Zu+YPXX+BMAM279WDwfUgTjmJ9IMI/Mw/Ldoye7WPw5r5hzKWYniP0XU8NaFkKRjbYuQw4ElWQzb3iv/WBfGQ2tbSXm9168PMcsJrLzsgyBwf9NH6JDwHIUWoS6XhWLsclG97w/AqXsif4soFYZxR+yGggctgEAy7h7XRXYd8VIap+zfynLNKtFFzzH3TH13niiiOk2krPvA7CijoWkZHrlnBeWYWoZFzdVUMNWZJKOmfOHxVl2MwcQKtNpI9OVXSaZFQMTs998HwyuC0zPU2TDZmQXZ56bTPmqfh7NNBG5ey+1hK7/JxByVVAtO/roo3djMnQGZfsw2Bt63A4dNI/OGg/YvMXEch+LRuR+xvGw8nrUbsYIUFbOaXfddVeee7+ggz8G3TsBIqWoGMsyqR71xEkD8rQ+AhINTJ56hMbUqj0N3nNCOAGcQJ5ZlRiVazV4O3B6HByYmHSegX4UMGwPC/izZ0bBPHrGCcxg5JMEVakki15YYaPaZRyIwhGNqNGg6ndJGo5gB2CCZTRa/va3v9Uj1LjbbrtJ1+ux++QNeINSh2Rq8fhhjaO2IcauOHEA3KwrMSDsRtZ5rGjlcWOoz8Y6OPGZzAXa15m6DYwqjvYmjJwt5qC2Pa6ksookzUQQfNvmlohHHnnEY1Hz5mZiMpczBqpeixKKeVlujJnyWf+O3rRoV/J/gcRyI2BGIIjpbmPwZLRXFf/ntFZDvDMRrGIktcIooMhC4oIg21W1jsw15tGOW1HisdOqLd5rxkHaqOuyNMZGCT7Oh6Rt5ukOqpf5qq2joRP2of3MnGz0DHnbI4AJ5CZpM+ma98f8UaeeeqrqdjCCw7QKsh7vkSUZUzRq1CiT1Ic6areSnVmmNiVZLEARovWNqNcO6DlsMnGPyb7wwguL/s+cqPd9PNeK9yzv/HaBMY2HnjnnoOWb29rFR1tUEswawgVkYxrHBWHmgylo56+66qq3H3LIIRekluD1H4GQQVSg7hvmskGAjsajc6CpM+iMCxiQ02n0eXz3BRNyfwbkXASmF8J5GR0y0pMvESrTNniyRBHDcQ5AqUQQuiAk8xigaagp/Zjk0yjvbYBjdTvPjYzmhTZWiMmRU8iTg/aCt0U15Jhjjon5kMtYCZqhxh8xgbpoT/A+DXdMVnNYV7IarMBg92IitzDJMzFKOEb/Cgh68ly9447wJHJ5karhFQ9DjMfnYBsLhw662ijwbmrUPcxkM89vsIlF972CEzcvKjgChwIS2Y31RvCM+Shf/DBGhTJJMeu9SlILYJQzDAJVZSaspJ2rq+kddI8LdrbBeBdXZCemKkuyEgf7nKtmclhjLmb583L1TDb3FhMWFBKo+xMTzC9+VE9kRbYtehq9zJPkRsoIgIvlpC4ibFMBLk80DXFLkc3YR44ZbKXFxGGeK+c9fm/9Y3hBfHfckhIzIMSobdPratAV3B0v66gqansFeoAqjIvzyLorpPaHHkRUmnBenEGoFGXkcTqyPoHY4FHBSuEXQGRFplsVjLXhmJ9atuP/0bPpuAlWboL1xz4VgDySSeZkfm9T+5ryVlUOWdN7WvQ4cYEJgCkFZLVtmv0yOFBoU9GjnpJA29BHpokx5kkmJqOOdr4kH5O207chAZudeOKJbyDTn6WW0PVvgxACtjkNXwVhexQW1HrzzTdP8BRIBOtLOvFrJt8cOn9bBGhjEPsAOwf0vZSBngBzeRfA2gCdv4yOXXj++edr/C1xUJNtEF0YoJ4KK6heSWetYla4xC7zPnrucQjMcMPPo+riJFKQVcGcXA40q0IzQmkIfjNqTRkre9YBoH5vMVky1LWrwV8OGCtSJtoqXMEVHgUwid7+qxXbK8bORPBYXAg02tI/05gw7RCggsGAsicnXHJ6RihDgHAl1iahPUTDuitxTPQeo6d59mtW0GoBTXtFzHMUvYCJp8vI2Cz9W4dQ2ZfVHrvsfjUmmQbVkEqEyVZQOJzkhhMoxAp83JhrOyN4+Lc2Lfsnnj7Be/QYBSNqjAmKgXn2ScxmaJ3iLn5/O3Y777xzw8UXX/w5C0M9Y+HOnHQE0SSQzpzT6eh5FBwMHEwOOGzxuCP3EQIG4Qgbr5j9MjmGKYyZ4ONnCpn1sY9lwu7rikddx+O8o7rt4hbTlQg63icTSgA6hEe4SVrvo/drAxOg4gZj2Y19bdyQxy855qr9/mh2cKw0GbgIysy002gPg+EWo31LdpV4PsOWDBhzAcD5hjZXAH5N2os0J7hxG5nJuV3E5+wDvXT2ufXT8aJtSHVYxuRWJIFJdc562jdJ0rmQ8Ih2NwJyPZCnpwGhdwDQLQ866KBe2Ac9feX/7CigfwmE6PAaVKAzAIHtmFRb0jGv0LEvx+9hHG/T4c9edtllazGRfwNKH8Wk/4ABOJCOK2HVWY7bZEI5gOgxGj0IY3Z385oYXOWE0JrvwOl5cFAY1CYGodS80UyinpT7Dt81m46VjhwoS4h5b5y8CqpJn/QsuK2Dgc4gIOUMxkLea84hB6E7QtkhqhmqQUy2hbCokni2ejzILyYBi6t2ZEBOVm0MgpbPxOjfGDGsN+Twww8vBRzTUXWSpUXbUzxyOcYhOTlclTRAuqrGjYcmhQecNJBnEI5MPPkjpnUwyZbg4rujwZhxyfsd93rcTAhchM43JqlDQ+oPk6yrgknvrW/czJtEki9Sv+JO93jAofE4Gu1jYGMMW4gqaWRAfi4wxKOPkn7Mbb/99p0QUllsNqpkcaOtv+3L6Kb3e9pah90nT19oqwmrPSqdnsLADmIUeVSLHVNBU8O4+8KiR9KyBPpYxxjEKBDHE2MdA9miZeglk/n4vKeZOidlj/aHoREKtwzZMmy/IK7wy3r1qsVTWAV5QzPsV8deFVIGKwOj7AWwGI+3bvJ0D8FCMHTczbbJnAxAv80225hpcSrjWqPBWyeOAZluwmZOhIyKzgFTxKjyKQOycOZSSC1rzJl2KdTsehavj3j/q3xfQVlVGqqZX93og2eZw1ehSq7Id9eZlpc59M5tt902I/V/dP1LIITOuC6/NqdyezOBB2DvGYFF/Vn00swFF1ywkFW/DiqbZWIPZsA/RP14E0pbyiAOpwMGMADPwUiWw+DZmUlwNhOuB4KXPfvss829U2qkp6uTE0xXZ7KR0ghVY4u0Mr9FJ6/KhBhARy6DcbfKBFVQWMby7e5OMECnlRViurTewC0nKewhC6qXa+sQ/ZMztTSKNzHIWaktnV4S4ze8onq1+MbP5LDARUZaP5MBRKYQMzB6trzJqlzttBvE87RkbDEZWAQ7J7GTX2F1hYxqTZKStABQ38EEX4FV2fOi4gmsi+J9UFcK9FMm7l53135y1E4IfDNmxb5EDfQIaZOKufPaaNlgII9qj0IScx9FD1fcUR8mCH2gcT8e/xzZXPzbdnmvQmg5XjHqORqKBQsM48H+ZAZIMw4o/BHAEpBbZPhPQgc8kTbMCwXYY5XNjEjbCoKydRX0rFs8+dW22x5DNJL4nADqjpV9o4teB4Hv83nr5W8ZjUxT8ILZB4DyHj1Lqmmmy9CGE3NIxVgfN67qfRSY9DwCHiFPtN8ZbxSN3Patc03XuX9jK8onEe/uLwx70lT3HBvtOvYbbS/1RFze52msmehyd4Fxp7yXDFYQdDuGdXXhs7/1HJpnXDMGc/UzFs3n+PsxxqgfjKqavuxI/5pDaCptWB22uC79vC9/9+FnPnN4AoRiwRlnnFF11lln1aW+5+ufghAd1RtwcQPqRCbuu4BAFej8OatnAwN+IJ23F0a5d9Bfp+DtMmPiiiD9hnRyezpgFp2/Kav+QIDJHfUv0kG9WUk621EYpEtckZ3M0lAvkV69WlsAoKQHqchEe5nJ0I8J0wtAqGLy1VL+k0zGoSYnc/LvsssuGe6rcvKZH9iBtEwmf61nLAEYn/CeElcPJl+zhy4KPk4OWYjCHHd4x3iUxVO8RmbkfU66qDbF1bz4P8fpTOW79q5GGiV9XluPrEeW499+Fs9Sj8LnFROyJ3FLdahiE6njGnG/l88ZEWv7EsaSicwjniFmWQKjoCmwGQBpfZ3YPBv2kylICobCpQqnnS2CRbRFxfZEb5/CjUDrr69I0toWVD3je6Mxf/F9Z/7EvV4KnCCrau2pETKDGKMTA0VjVoCoUutmjnFIjqP3G49j3JSbUAWWZJ+ZQlcPGOZlLHGDrJfMMW4/ETj8XqFN8k2F3xHAfH888DKy1ggm0fkgoGnwtn4AXYj5UbVkwQ0hH1GNdnxcOGQmqti2U+Zqlk3nZmLXkfEEBit4aCd0C5MHF1KmcXMakc3skJXlCMDOhcT+lDZNsK56U/q6adnPrYNz2vYbUGnZaAVVzPnuLEAbmIPd7JvUp9NOO+3UQl90ok5fMtZD+D2HvjPPkRktPqKcNRnbtTGKT0h9z9c/BSGMvWYg7MMEPomJvysNpx/v8mzxF+i4g5nMw5iU4/bdd98hdNRadMRxNL6e7w5BEDZi5Sl30vCTZ0Dn0gHt6Yxyj9yRsWjMcxWS9rqCOfieEMFAfQFjeZ53D0IIVqKTKhx8VRcm+Dx03UGUZbL1MDFkHerqGvhkGE6EZANlAx3/wumnn34pE2QAHf48dRzIBKjUbsMEb4JN5WKWv7g1I3QOgxnTYiTxOYvUs3hfnKBJoFtISShoREO2AqwgOsGjymAZ/h8TkMUyIguDJeVZnAZwv0cf600Mq3vcQMvnUuaQ5IwrjKGqpZM+OcQv3Gv7BS3tLtpSZF8KuTEuMjXvo0+ycQf74uerReCNUdaMS4WpPFSfqY9bCKqie9y+izmcvJKd9GEs9Yrpdo5n1Wu7M8Id20YLxtJ5I0aM8CjjRXY2hTgCSbR/Ocb2fcIi09Hu5HywPXpOzR6pkAqSvst7nAsxWFLbnMdvJ0ArIwnJ4HUG+JwqVhxPwUZQkCFpq3P84pYbP3ec3LMV1TTrYdn2QbRTuqgICgJK3PRsamJTcchcjF5WbTJLhAuWC5t1F/S8171lEUxjZLcAbNloIcHeY6oSFpq0KXKT/XbByG19fZdHZusI4qcCQDbb51e07R7auDbA9ix16O2GXcoex9xdAMEYxDu/Ydxepu1v88xgxul7P6/+n4IQ+qZnnM+mYwYyIP2Y7OPo/OPRS/dE/dGQ3AIVfInO+4bOusnDB03Fyt8GRb3CoPdNbD4ajAeNGTNGb1WZtNmVWlXM+AdZQFzJNSrrSmQyTkJ4VtKmEpNdOSkBqEomQ0h/6o8UW2rqCka9apkkBTp8IcJRRjlNqJMD+bsrlLqSVcMAstXNK8Rq4kDMxwbQI8avRCOz9XUSx0yEEYCsYzyYzgkY2YzfRVe/l/977C/6dx0TvkQmpL0i7tlKzpTX8xGOA7a9AobPMxmepo8m0g8rOmk9Isj3aAtIQCEdsz0ajm/dI1tSPXHljYnXnMBeTKZissVCVayZVT6ch+Y9PheZTCY5ITaCQMwznTDLsE8LsKuy7ZRVZ5yXNqeoLkYgi6fNCij2nwIamYuC77YYxqtMtuIzAraAIvuwDfaVtp8k2VgQToNOo5Hfz1WFrB/3tTI3/8f4lESzayfRFW4UejwYURuNlwzEoNDoLLDv4nYS6yNDSiLwQ8I4x8Z54H3xSCEDXwUlWaXP+pnePAHXxcAUxNSrqOs8yeQYDi6EgaRRdQL7lpnqyreP7BvfxfwIwbzM1bBQuPhoDDczgwnU/M76+6xGZ/e6xUhvnQ7/X3vnASdnVf392ZbeE0IgkBB6b1Kli0gRQRSULgIKSu8CgvxBOgKGKkoXBEGQpnSlNw29Q2ghvfdkszvv9/vknrzDumVmdxPa3M9ndmeeess5v3vaPVdjOv/fg0YNmTGjRFVawpSnXR/Q/12o7yqMzQrwldLjbNq9KSD9R+xAqwBYExmXp6dqgK2tnYGH7b3cQi7NghCVdY1O9fbbbz/1+OOPfxPC6EKnr0T9lqJDJyMC9qSjh7mfEUbEWgb79zT0AjrgZe77kTM5hNVDQ592CdFbacWoUN3FxsxIfCniN9t7y7gO0wrQebqZV4UB6syaGAnqJWKfIVE6SzlryeASrFUGACfTec/TyXMgqNdhjm4pr/KZ1P9sAHN1RPFNIOjp1HcgxDSPZ/YJ6cUi8ziLh3okkUmE2gWc9WOHjUiKXyg9hF3Ddya7TAfv094lcapShdShZGKmPok0vDoSNm1dijb/DeluY0Cqzq113JARsDVKOLtOhjUtREhlweiRtN/Z2bp63uPO3DKma5YAs6qU3TAzYPq8QiNxzMCxNiyKTK8kkHbjqIf4Z9IP87i/Y2Fy/EjxERJJqHq2u3C2t48NLrVv/a9KYWBpWiFeEZJohEsIUIJb2LMcd4GDMa2KYNJYAR8GdM97j9f7HCcqJxf7R1uPNhxVJ2xvRrFne8BJp/T7LBj9ZZwxAzUKK8H5TPsf26b31zl+LudQ2vVdLl5W5ZImnRxNA2ObnCycYFwxoMTuO51YDRtIO41knwByJ1vzE9le1beIxXJ7ctuIpzHbF01aSvbTvJ41A3HRPqSVnvIX7/8E0O4NGE+ijz/kowAwEDqULbP30M6uporl2kn0/a8BpSG8bxzawyza+5xbtecWcmkShGjMKlTyj6DtWIivC4y3Eh2zEh23B6DTlQEaZCg+DR5Ig/aDoNal4ddhqJ7DTDcCxj4agu0lAMm0EoKRnYbIK45rdIxI5ZRKtSLp727o9waD108m4Z7qyKUcNhsJSFFYYnOWdlB1k5pBUfc4M9eSvHsJCGdpZpFXIaybf/CDH7jdydkQ0QuIoOsdc8wxjzPAKzBw5napCNtASELBiKGORKCgoBnA42yt2uH7YwFoSFMY9eZBwHn7CGCuN6jMKN/Yb8rnx1qrsL34fGctjcz09ZYykAbam266qdJ1QbGy3Xe4VirsOxK5Xpdg+og+jiKzqHKYDF/pU3Bx1tbuEjaMFJG+wAYW4BFeLm0/1jf2QEvucbel7hceypBkw7AfklEApUUQ0F4V7ZeRIp2sTMHkkPVVqNe+JyX6dycJ+6ZC1aU+bbUdSd9C7YpwAWNzlIJi66OI7hbkNUBbP9+nFK3aKmg4hvR/lmtKTyP0JG1n96Vc4lk/e60eLF3lApS7YDjRGPOkjUiVSQlXacv3GSgorZvTRxuoUrt0Y/t9fmqLuYaypTL2tc9I+bWz5R/2C+3J1g/q+BA4Ew/ksYdm+5FZtzRBVKEG67ToLahTt07uLENbu2rC4LlZ4j+39Maele0YQn3uoa877b777ke6tx9jNBFX/zu5RVCaBKHDDz98G/79AqbdjkruRuVfQmTbCzGyOyjeV9EclWWm+7nTmZ1VX5B81mCAdgNkusE03zGGQXVLlNd9qYjpDOdaHIMEGYCRzD498dyMZFZ7FvQd7PbGEOXipjlQTTvkkEMyr0EwuIQQOzZIfMZ0OLPCUFMgwFrePxZGM/WrRtBaOl4kv4VB2R+j9ypIBN/i2hqIv57/M9OAOAt0D3e7JVSriEyORZkWiTxUCAlYhvFaGSzsGUgb9s/ce+65x1XopmSodAcFzs0EHC+DeTbQLRuu/YhdiWhi36WLWBCL9KohmWhn0e4VSyO8T3E8VrBbPBar4QU9Da4+25n52GOPzdLe7rXXXjNMzC+QxWLW2CHD7ykpW7ZgVlE/ciklQFat6x4AE1Jg7MDB9XNp92yu65BWxmegrf3CpSsCicn9ne1j7Z8qgxHehcGMMqsMZ0SxqmR4xVz2EOlhI6TC9xth7LscFyeHWKKiCq366zH7TK+l5/QgQnt1qFkGrGZmAcfC4D5tOu4aq2vd+yO3ke9h4sorjVg3x1+gNN+191in/fffvyJ5Ow2XyAIcpY8kSRvnM5P3TAIQuzrZmIXRZ2vfVML3fQaI+s4UN5fta2994S2DTitiDaIJ1ayz0qTPN9DTZ2AXks/cwXUOYNyF+sxmXE5Gzd8SPqmGH+rNb2Q+IsBsI/fn4xn/pR27wbN34yn8MLcISpMgBNFuhNi5BkR7i/mSAaP3YKSRIGcXBn2IRC2BucGaM5TpO7htDQZ3FRr+bfd3YnDdcC5LLSBhhMfDDoQgDIbqR6d8sMsuu9SanIyOewcCXlUiVcx10AxQS3aibFZ05pNxRX3VAxklGW3HKm66txW6f2cJASAybqbvYYcdpgF7o7vuustUItqUNBD2NSEWRN0TBu8u80WsSgQkRmqKYHSZw+fGHmUxu3tMYIoAOouESt2rIXSZUEkmO6bobJI33u1eadlWzkYwR6bHsMvYLoFFpo8lEb5PA6uifSzQDHCKvD2FgCYxxm6y9l8YdAV1GYiZvFrmk9AFNhm3MOTAvrAOjpvMaf3svwgqTOvH5ia7kkGfmQ2FdtUy4TzD8SEQeaUry92jS4+nk5LuZFT88agXXQzcU8UzA6A0ohoSk43Mj8SaZZgUwGQy+8XvSlABiLYtYpMEF6VN+0hwiEwKaRV7HQxZqZE+dqh1nF1K5POUxrwnJT3L0raq5tv/9q+g4kr6iJ2yfkor1tff0oHSiTvqOrb2pxK+kpd11v5j8Tr4yf3uuwatONG4meFuu+2Wqc3mvhJ4TLImbdmH2ojMUeX9HvdWaSe2vI7kZ465GoVCgLmvaYvpYgTnjgDievRtD73bPKOe8a/mXW/Jx/BRNyS+MTzvZCaD9xinRRKw2CQIQRzDQPl7AIP/nnzyyTfDLC9Q6ScBoZGbbrqpAYAr0NiOGvwg6Iow5ApO/K4yN5AGPjvMDtYTYIc5uM7uGsj0/IDCMwCwcQDZJnTSBAZ7iCqcBA8x6fHILP7hObLY2aoYGgwVdX0HIm5PvUA8t4OisgOR7BCVEMAUAG4pB1HbTNpQcApt6xnqi8+LnSBkBgElGD3l7c0AKdJ2hEcspJMAivhviSBHQVpxPq30Nola74jGVkWNdoXqYvEdMkAYsX0XhsnZJ510Ui1MUyMYeDzihNIi1s8YmJV6wv2uVKRb2ucKOtrf7LtIrxFLHkI1i2eF2iMTKnnJqDJFBP7x+z367lWuGaL6kfrHRagjkGKXksGVPlwRLthoB1TKuO2227rYL6G+6g1yLaAMa31kYOvv+qyQdlRVlF4cW9unJCXgxKLSAO7IS2T/SpchtQqm1iOyJwisgpBAiHc3W67hBgC21Rgg7p3N+2pipb6GbcMvdLE7qahWShO+R7XM30r9Sj4a642UdhW+7VNat++VYnyGk1FS+zJXutKQWoIqvGvUDIFIJoxcWh0/l/pVJ7uYk0JFjG1MkCG1KyHZZnnTxdMA8ByeMYlnd6WPu2i7grfHMHbVXFrDeNwGWG9mSmWkofcZg0s5Niq3iEqzhmlmTBeCTvm///u/WheqMmBLYEvQxX4SOq8L6DopCqbUCpmHyvSfMHllSBFDhw7N4iIEJA1xqmUan010lnZ26KZaRif2R8VYic423WsGOkpDEEKtyxDMasdsdz+z3mIAVEdd0matMx7C7zINurEzTmVyd85xSQN1qOP9S0t8ApveC2c9CKFTMK8fGSpUo7CFxKDGmqgQ1SMxWKRXKNzOJiKJLT5PBpLpwyirGlOYYMwSOYlC/ZNpbY/MlqQOjdMVqV9rlOQMcvMa1QCJX6YK0IvI41h4a4m8PIVGZxnF+gq6GlQ1bIbhO9RRr4vUGDKaM7qShwChJMHx3vwfzCMro++SfWtJNxQwvEDwcScMHAF1gpLgI63EmrbYe8zZWq9TuPulGcFTiU4JJVbc+991VebaieBBJR2Nx4595Am3hHSbghKNEq+HAaWJStsqPWjgVjKKTQ4EEumaMa/RpuJQug7P55mvCRDOp2ySWU4s2207TTTnffaV68BMRG/fuWGDYGPaEH9Ls8mj6GJmd2DNwMKlH6qdntcQL9jrhnfpCbRWpe3SfnBpSISURMiHJe3sm0/2uHxEb2tbpZ2doPkqvXtKhwgKPdzFmH6ciqS4mRs98s4XOL4m0vZ/Lr744ndzi6iUtHbsrLPO6k6HrQDgrAbwLMFAdKAB8xh4c6LM5pg5TjS8ZR4CDYMa6pyNlJaSyG12OgmnyvsMO4dY+8LAE2HSHs4G4anSBsBrXX1cZWdy3XJ0YCdjLOjAejtc8V2AcSCVjCRImdI9zzk+hnrdwLvXU5pSdHYAYjuckGjC8By2GBlDaSkC3QpnnPq0HVBILc7CMorSXmNpShXpE8DpTaqIc1EkIvtD5skGBIaxDSHRWFJskGrTxxBfL+05KYNkpiYJCE4EDeOXokikhXUKldMS1ynFRHCmq7MFWIk4Ajf9yLSowBlTCiTJqJ0t5yiMmbJ4nH7U5pbtDZa8U5UCWWSe9Hk+N/IeoYoYeZyBkAzoGAh62lliiYx9ojSWtuHJVC1VN/s58mT7vOjD8ET6HM+hzrhHXY39Zf0Bj5lICBqhs2cajew5N1pM0dCZCUEJzuFzAlB1dYKwXW7/45o8pSSBxbbrdVPSVKKxra5dU8pyXZdttrgZogCmiqY3ThA0ns6ARXlAW5NSoKqrYKzkY92cxCL7QuR2irVzgo111NaYHA0VaZde09Z86n/ox4b0dVcbFz8nJ0kH7EPy0pIAnamUn2PSeD63iEpJIETFpv3hD3+op9LH0QmmvRBYqmyIK3qVYoz4BN1fh+D6uS0PYt0cCVFGPPLII912JNOTnclVD7QRQLA1EIKgYqi6Ymi2LkaVzqhRB0jxXPtSSCsQWubFgPhmuQj2nHPOqTNBPnV4DunNjet6MjN2h4B7ct9ikYI0MjA6aGG/CanBErYXmTy+xzIEpaFY0BkeMtsVHjNLZUGy9nD1uyEifTSVvupUKAFZIuk69TFxZGUERRYafCkysUbI3hItBJOtjHZW9P3Wiz6aYDgDY+OSlI4RzczxefZVYd6jAIuU4C2T1ATWFNmbqU6Cdqg0gnvaX8s4pywxWsE+bHOVNvlURTxRqAdMPtPod3ODZ1HS4c0MI6qTjX0n0zNmc2C4avsrdpC1H5RaqeM8acIZyzaF509A3HXXXeeiklX7rNiQUK9XSKORSF/Q8LlGbXN4LsdGUtcemAk6RNvSLhkZfUp71tlzeFazTSmRbGZgzHerKoM/s11fBSkN6jK812vDEghwbWeTsUCuJBcJ2lzhrqteaQvpJO9vpZrIEW7f2wfmOLIOTtK220nCCTRyWwW9ppX5+aBlaSUZ9pXCMo+b/Y3E81/Us86M28r092je24X6Pks/9Yc+6uCb6rS7SjXv+RCzhWl1JuYWQSl5FT0z2SkM5JWInv1VfUDoPuqvyTCWBVchIfW/8MILM4MnA1GtITQC/FSdkmSRbUFiOLqDjr1DBs0GVunGDleiwWjtNtCZ6Oys4L3aDdKOo6MgZpOCu0q+ktmoHiLvRZ36ydBeT/F7Js47UCGex+rrkBBC/Qh7SgBJpIWQGQt3D7UUShWFkkaSImzzPGdH6loPE7iVsNKG1FITkkOoTi7DiOT5ul1h6mHuj44uX0cfVWP/uAiG2FCito5KAckOIjjVIZ0+j9Q3njbNNJNlPiVvh6l49bhu+YL8RwFEkWcovH+FUpp9FZKfQGHbw+Zin2DDqcOD+uj3v//9l3j3IKSzTl7jOCkZGihIXTvrRVVVV1qTOcz4J+A5Hj4r9i7jHVW0dzLt7izQO76xsNUobZlTlTS2IdLGonEWkDU1qtJS5i6XbmICCZe9knhKJp+1y/3HzN9tulvtbrZHEBMsjHy2L1T1pcuULldj8pyDDz64w3nnnSct5g888MDMm2VbjFrWW3booYdmNrHrrrsuc8QIVgKK/afB3AWw/ra9ejetY1pekQ8PqJOC9C89uH8Z92QR1eE0iEW7QTfykWk+JD1VMKWgCIR10o7AU9c0nnjiieMYw8URAMYhTd3J+9aljRN4zxm0YVX6YBimgOUxtSzHxPmP66+//qPcIiglgZDueRp4KJ8j//GPf6wIAfcWaEDXeaK7cToGHV5++eUVyRVqGo8srkMCwCbg3u+ZgdD0pQYh6n6UIfQq2Fm67w3yE8x8psYygUu7UrguJaTkqeoOSFWq8lkPc/kwUB2VEiKBle+WKcLtLJNHNrtQwUIlCcNsqGBppl+w/5alMKCxcIlHgdSS1S3ZVWq53ilZQ2FlineaibFyONcsFttIx4rywmhjCONOCPKffFbl2qcA253NQVw4Hsle8w/E+sthyA0holVp72AnzmSX0T7WraEqFoAUCdAK22QJ70+hrSp2nvXjLA7Aubp/2b/+9a+rMcN2CulIYInMjgKR6qL3R+S2IMF5PWXzjNg2nazBhhtvvLHM01lpQntP5JeOQEolgdhYwDaoPqWdWDPJQhXF37ELSEhctknakYGtn+qzMT1OdtJk2sE3owklEulOAAQ862DMzJPms13tjvpbpdrlYtrYJiiSrCnRq84ZhOjzjdK2PqZ3FcQC6LVb2X9OzIKq/SQPOLkotQi4Tuqqimnv+UwaM1paldK2Keklmsr+O/mnfsmkH8FL4Es2u2y8AaVu3Le4oEed+wKKa9G3veGNk+mXFwD/9VD7pnL/0zz3GOr54aWXXjottwhKSxHTlSB+75122qkjBuk1QNCVQfBfI/ZWqdOKwoDNbDMjmnPFALobbrghy9ertELH1ZkwymhdZ5xwm1Kmn3766R8zQP1o9FiIyyRjGUFo7wGBs7B3RVwJTyOdg2ugnTO3s4lEYxKzxx9/PMvVrN4ssUfidEVzZxyfKyDK8BKN5yXgwgWpUUI6qShYRR52oWDcrNOqGu82r+MdcxnELF0Fda1290zq2xfmmAoD1xksRtsWC1d4XdrtFMIfpyjMDPohj5q53XbbXYI0eSNSxFCOPQEIHa7aGvWKOkHIK9KebeijXqamdTLkmaZpzaKpnRULbVtxX31ButowtIfBPKTBUAljaUfkh6ZuteYXcjy0fwIE2dIA/k8F7DvCjK/S54srifrcWDCrWm3fu3jS/MwAm2qzGTOzxbVKCtRBdbIOCVqbXsawglqhDSsM4LGYWEZNe2tl75POoA+DGysicDNUzTDea2/RriWdCIpnnHFG1q0poZpb6EzFi2TeK6PdP4D+e6tCOsHJ9PaD0pnLajSmM0b5n/3sZ5n0g+SVvVtblu02xioFK2bSvHafFFibAYfSsqYNV71HgjjpFLtQlvJVic82CcrGCelh9rsSkOpaOFEsLm5V8ozwgoj6V0XUE+tkDI2eLeBRrwdp66uYSB5jErgbPn4BIeE++uLdRQVAWac3dvDKK6/8MZ1+P4j6LTpgOVffUtk9aMwAGN49z2cZV8CM1QHj8zztQtpyRGgTcd9yyy2ugckMfYrNeh8EEgnMhazmzsUIWYc3axQzzeKnnnqqhFCjCBvSSYq7yLa5tVMdvJiVQ2LwXMRIoBoIevWG1BuXI2H4ft39Xi8QafgM6eZ3v/tdNjOGrSftVpm1PzL3xX5k+QYr6eN3oRRjCaYOiSqpOPP0bFBXV6x35Jpq3+9M7GxYmB0Q8PyYz9vY1a6gPt2QMpb+7W9/eznnFocwfsgEcGYwoW5X8y0VAEq2A4dAVejqzwY59VnsKhLG40LjdQBU2MrCPR9tTP2m6J/N5infUH6PPfaYirrQ02UlthcCn017Z0MjfWQY+z+pmC68rD/ttNNMPVpRGNiYXPjZzB0AEzO5Yy9AFeb2jnqHe9zfMp1SQiwgTWkvFqyBU83xfCzfcHw9DjjkTzrppGzPet41+Ygjjuhy22231Vx11VUGzTpO9e6gC2hUY+fJ6E1VTRVJqS0WSmMHnafpQUkfyT2/zz77VJx88slZG2MPM/lAMBJQkq0wA2Zp27oF/cX24t5rv9kPTtBM7GoWOflFM4bSU0weaSLJkuNrVLdutlUhwKhw01pCW1Wpj+cwhlfTD/9EaPhn7nMuGVfReXZ6RrWAxEbMKt+lcx7mZx8bQ6eZfFlCW10AQtTsbJY38+MaYu86IGwDr5gywFShdPBcc93YAXaigKJLFiYUrMwFnaluzGAzzbRH501jRnenSZNIZVGgzmwSlIgdq7QZiGz1uIQQHq5QlVwQqJdCVc9oWgdd47fEqQQUOy8YE3LPPfcsWF8VqkpKFLZALSpcE2YJwg/waXg+SqG3rUDKMO1GByVLr7FPFOEjBsmAv1NOOeVY2nsv7VnXaxH7p3F+S/rjBiSOdemr5ajjJj4jPz99RzVM/jbg3SuBnt6oqgBEn2tfF9p6Cg2a0RY9YQkMMltCSB5hlA8VzlgVZ3DVyhTnlakQzPadfBR1rQfARqj+8d4uqmu+W1uQ/Yy9ZjbH3V+tIqlXCwDEGdt3q0KpOistBYjGmjp3XtXYKk1YLwFIuoilLE4oMrv5mg1KNKTDfo7dWZUwIse2EpA2GkE0AELJBYnMjBFVrudTpRJsXTKDxy5zgrjw1jgzd8dNC5SzdiiJIalnoSGOqdKR9dNIbXECFjwi8FTvWsp8mEk2gqzPt1+kWQHKfhCY9SgHjQuuvksVL8VkZelEkn0zn+yTmQdNvrHNqoL2IZOgC9G9r/KQQw5xI8QNefYI2v0In+WHDh26SIzQjZUqGPdYiGGvE0444QkqYjxKDxq5E0TxGxhhJ0BlCzpkHyq6AoBjHmlXXusdyOIR7Eyt+GlP8EwdYICq0iJL8+TmTStg/l6NrKYh0PBKX9UhtbjVjcRqVPHHRi8LQIqnZngzuNEI3DCgqu8yMO9C4J8iZi4eQYsyjAxnp7skQeJUEnMgVQ0daP+7x5MEQj3qGZRp/O9oPcPbEjO/TBFemlBHIotgLKsIUIoZPVQWCUfdPXYYdTkKfbqUbYlOt85c9wr17c8MXcv9tdTXYLFtEeWfo4696e9j6ReXeLwJ2F/Hse8JNN4fIQOMR7+U7XDBzhiCs9KM4BthA4XgU+ieTwbqjGhjxwoZNRKNFd6XwLeicH2cwYL2nXY/Jx8k0Xtgvnddoe32xc742oW8hvZU0y+jYMhOxjuZQye5jzMmVE0PCS1t95y9X1XO+mj3iVgs3dcChAASWQysJ+M5jTGvZfw7CpIaZ5UutKdESpBI8K+0ABiYUSELAzGjovYfaUZakl7vvPNOXfKZ/dAYI2OKlF4j37d0pcoV9KFkbr9oGvAZmhWUchwTJx3baSyb3/1vn/sewcl3+BxB0hUDZ511Vt74Ku1BKaTF2KSKBNCRUXPBd9U6l2C4t5nufFU1E9mpjiW7U7Z4Wbq2T91SCKnvQ6S16YzVXniXe6P+v5b7HEoV4OOOpM/SmdswA7zJ4I+kI++ioqvReVvregUY3GCtWuaUgBDh6pF+qpzlGIgsrBx9shvnq9xtAnE2k3xghnpnETtOwhXBQXp32tCGkIWcM5OZdmM67+jHINSbAjbljpHg50FItTx/LMTc3dka5p3AIK6a1IN5ANw4gLRbxIcoekpo5tk15iQy7cUsITFKdB3dB5frnfEia2CU2GEjJJkUGzRN6UMgCDd7BIlZnJEFoFjaUJBjaGnfF4s7JWCIajb1G+q22NRnDJLaCHc6dbEq9zwNc+rWXgew6k9/3o2UtwnXTIe5ei8YuIIFtqEypfzMT3sddemg9CAxSpT5goWpArpMxH+3xO6Q1jFljVFVSUGk2bMZ5/cYqz4hFUW7w5kgUafodCeitVCjVnfXEhneWX2LLbaYA5FXJ7tON+6frepmTJkSqvdbn2BgVWizRrqRgWDu+KSV6NmGBIKPCb20+zm+loiV4dPRLaEEFt8v4/lcgSLlqbJtY018L9Oan0fQVfWzDQCD8VGZU0QpR6O3UeVpcsqCCmPPNiPN/W1/CS6xaDecEqpokSJEqctJQYBTItIsYFoWpXcXNUsvoU45gdqv8oxjpNSWn78oNQtrCe9uihOqiBgw/5tmVpuV9eDamdDWC9RzBm1fLNICW+QttJla2v4Lk9Uhkd1BvV7KfU6lCmPyp6hRo+jEt9Dfd4fZP2Cwp0M85uBZiQ79iFlrKTphDt+zDdoi/N3ZT++AQVdh7LUznAEdFDfs8zeq2gwGr8YBRnKaxbWf6lLn/Z20M2ggA6VHQOwD6Phsm+G0WZ17sE+GGPuYa9jZEoLpG4zA8Xd51mLp2Qu8D6qH1lO7kLOKM03W2JS5z0FTRHYmiy2cw27S0AsWIOSMQx+o61Sna/OFEkioGIW5kgu9ZzK2qq0gCKP9B5V0bzdzRPL5L8Q0ASKdItDTH4OxrW1CG2ro11dRQbsgCW1oPiRT0vqsQjWwMMQgP3+luKDXQUJ0fKye7ywEVZlRRmGMOtDPr9F/xlFlY6pYr0PAe/g/l3rP5nvPiPj2uU5G9mnh6nXHK9amxc4SYQPxWTC0M25H+r3SaHucHRWxZbeSiszms+0/md/+pQ/k/Yq03s/FltkSkJCYNAfEDqshqcJYn5hiRnAR9AWKAGzrAf11Qf0aiV3neb4vl3ZnyQDTzI3SguBohLf9JMAIIGnHWr2wec5n3jGlf+sr0LngWq0gaCByHoXUJF3qTAGYZvHcGmypeSUiwwcCiFUPXaQqgCkBWTcneEvqax1BFdibMrNCRLkHrerU8f2u06OOY+Dl3/KeA9wowOYDNuOolxGoJjobxoR1G5rDW1dfffW83OdYqs4888yV6fw1qNgPEDfn0uldsE+MpRPMO7It4udSLlSlY+9GyljZWcOO0iXrIOvR0F7gbCUhOJM5OMmzpW3IGbKjqG/UtAFpdO4MOm84HbKUXhyePQgR+z6Ybys65xVA0N0iO7tuTOGFmaRXBHOF58ZtcHnG4swuNc5iiu8RG6KBXFE98kFbN4BwQXL6EOOffvrpeur4JsyxWATzNTQ6h0qi3QpQuJ9+WZXftTDY/a6I11gfRFCYeyfqWaj6xGyEZLIU9xgx3tdoWUTx7wHCr1GPtWGePhBhf4hI6WEx+sE82yt4vc8pNDjH82MmDAlFz1WosX5CqonrY0/49N3NFzsmL411HKFtxB0euF5DZg9BIYHnAg9ZBH3KgJYAuTAuCwKMfS3XfMxnDvebOrSSWT7vEgVUlqx+TiyOXzgC6I8J1NdAuixyWInDZ3NPPUxV67IGg2C1jwTD+z7r5BbaLs50bZaGWD1vThShLoloAP8sAGgEY7+isVt6pAQhgUzbke1xsnDDQ6Ojmagy6ULgSWEDmVSrUVk6DyeAgbou0A0bliUtWs3UKevqUg4ku0k333xzV6VhVdTYDEHbj2lcU/rebPGqxmjfr1sdkMs2L9D7LCjriZYXtQ0VSrnJsK8ZYyL0ZerNAfTfdH53MYAXUJtkllKeeT/98Be0lrrc51yq0AmXQ2LYzh1UQeXRoP7izBT/xQD3X0DDvMz9BAsYYQ06cTaEWIP0Y86fzAAsYkvkdp6oLQAofuq+dWcFmSEZfDPxVV2d2bKHibti4ScD+BTv2Zzre3DeLYA7MQtOgzDMq9MTUfFOiLQzA9XLzlZPN6mWSz+cuVwQ6cyg/UEwkhC0u1g8LkhKNLEDZ2yfzDXPIpb+DlD6YaH9w//ajGTO8BpRv07Ub9UkcVRhaP03auAWeqMiXD+uDRtF2GMCnGjrPM4tiF6G+EfTjqcAnQ2pk+vnltKrZBQtfTIVBu0CQC2tzcZ2u7La1c+05V2jwMNeVQiYyXu2gDADgCyF8UBxLddURy6gtPykpy7+WNVv25ypBR0lzMLE9rF632sFHWfw8F4JWKaOpV1vpF1UermwFRqrZDKrM8jQVeNKENpDzB6oCo+dqQ7bZEdVJcMvfJ7M6HbJ0MwM6tZJmjLYT7XGaGbtHu5AamSx6w2Tyl0VAOREpI1R1ZRPNRPhANPVKvlFdkz7KmjDleq6zFUFTUzmb/sG542u+yyi3/dEMGtab5dFmQtGpuUQyARYvbZ77rlnJoHj4q+l3j2cwJ988snqiGVKam4mxSSnRkXkMMqlsAGByOBeAcsociVI+9V3mxvKd+nU8V5vYqx6MfGvBI9eDPB/U+ChPS8ZMc17pNmeDz/88KF42p5EohxNXw488MADa+B514nW5xZhqTr//PPHoFtv4tY6AMoRiI1n8vkUy/4+DP6LNPKXEMMSBgwyc8yjc0bzv6cWflUaN1jTLa6HQXAS+U1cFvpzWrqQD3XFQUzLBSbQEbWuW+F5Q7i2A59qI1Tp8HGA2Yi99977JxDz0xD8ORjwlkO1Wod6Zfe7C2vaMC57rnlk1K8NEjPlZazClrgkSgdNY7W/ZSYHH0JagsFbHyLoJaHGqvSUN7lj4YLPUNWC2anfmkYE5xoJc8gX5NaRgCLpO0Q/R9WRNj3P/4EQ7Kf0bzdmtsF8nLFM2D5Wo6lLL2CuDhHDEwtmXS6jhOQ7IjYmG0jq5Swei08tkWCsYVS4pRAwA5BUqWL7aPso9uNK+3/l0qLNzBlRaLD2/ggiLfQ4pi2SlmDy6GbWBN5Vp2SHTWc8z+iqlw0aq9dxcfHFF2fjpE2HvtXDNRU74xToqZvjYdwZk4y5y902ykRMGfhYH4HDAEInwBhD6xEe0SQRVqSUvAuirlX5lIAEWkFTYFVKBqRmuSW4iz7TTh+qZ0qXqo5ZatiYSCKcxL7R5qlE6UJU10jKH8YjuWDblDTUr8qdNQS46OcIm1D6SVJNpoJ6TFARcG2T0qLg46dAHc+ykTrppyVFC9qm3QdprjJJZhP00LvZp3aklH+pm9kcuG8rgOgB2rgv/HsDQLkpk8Dt4S1fFKVK1IOBX7z33nuPoNIDAJd/4sI+kc45EEI8BLAwc16NKSCZ/WswqHZFJx1LZbvYiapmInagMCpLlsBb/TSkC/VWO16mcW0ZM70Lz+r539sZhHoo9Yyi4/pImAxmVzq6jo7ZzLVSDOKGP//5z9eCQP5F3VZjpqlyMOioTCSWeZSO1OtdKBj5c8JFHSk5IqdwxKBQr9kMSg9Vn4i0DZtGFJ4z1bgjpR9/x3oq2lUV8UDB1IXLIgrDB8Kl7wwk4VDX1wDBfvT32cyM+9PPExHPn+TZr1GvNe0XiKtTLjG5z4gV+LGuKgUqZu+JnTZiP/sg0nh/1KEQeEJFCZXV2V3JR7sd5x6jTt1gyi5hpHbG9b0RWxUJ3OJdoRZFiEJ4Fs0Syf3VjJFr+9x+yD3humlLFBhchKuk5Xj4HiQq41kqqdNIQObPnN9M1cPMg0hMnY2yjuDHaIuBrL4r1sH5Pdb4WWcB1eOxhitt5FgRyyakFb1U2qXwks12CRG02tF4Jr1YqlmCCxOx7vpM6lPiMfjPNmsQ1v6mai2QyQeRuJ46Zzl9nLSVyP2vNmA9IkTDGK/6lMA/JrBwteu1My4pIvdVyVRFvcf3HHDAAaZxzTJOxPZNgquThiEyAFQ3jq3oOVXPWPiqBOxGoHpYadsAzs2F7tah7e/Tntvx7C06EPIPzFvLQA1iID7AVfcfKnU9ImQfAModFjJXq8yeZp5KQKYrwDUJC39nicE9kRxMVRxh3BigFKA2C4arsfMkcAhtLoPzOsQ20FlPcDMpPSL5MxqlYYA5POtlrl+CwfoDM99k7uuHarcPs9I4xMe1INDOnMsWxPpxvZBERZ0nMshdlIIkaN241luikFAV6QNEXIWOSvPxjjvuOAoCXlzbgcSquuP1zkgSi3YrBvglwGkqgNbbPD41ad/zIBYJKzwiEX1duPQjpJLwLBlRDRO5iHACYvJO/HfRqWkWluT+/tR5KbMwpojrBdJkofE7X7BEhH6fkyK0KxouO4n3x7WeL3TRx3q4kGYiSNFNCvidLfeOYMzYPqfQ4BptLQzijPdGRLOTg+qlS0giejupIBWxJY6gIpAKAqg+ldhBKv/85z/3ho42Vm0zPod7xyJxV8NU1aoetiu2DPJdsb1SGLctpvyV+QSgtO9bxVZbbfU+5zvRz0qZmeTgZOV1giG0PYU6ddFulTZKzCQU13NpoNbT5nu1ddr2tOI+Y25pJ4FSxAtlQBtLJ4y41rCOCSRbYZ/Sr2QbHYSknfowAyn7xEWu2opcLqIa5zMS+GaDaLpY7bJcY8K28Cpn7xREKV2UpgSg2HacumVqZRpH17k94HZeP/3pTw/iuvvg7YW+11hhyagHUTH/yCOPPH/FFVc8jtGsNxVagg4chH4+Ax2xk6HgP/7xj614NsD+Ro/sotqlO1MbhDq5IrFGvIjrMR+LapKgoGpEJ8yCaUfyfyAdZ8K0fhDGXMBqHoP+GJLBAwDPr2HCZzm2OM/ZH9G4OwzwPjrrD3nXcQz0KKSy3uZYkegEQe0DHO/sLB7JqvxIRJFozCJDODjGCVHP3jzPHSgr084RWUi+g+W1gM/TtPNPqAp30I61IU4HM9t+GqKd5DquCEpMe7UvkDxkiEj30bCgPr6v2kk9zf/bCVDuCCDW8O7OHOvjs1L0dEbUhWJ/SBfxkVBd3GqdIxI8XMWJUOt43zSe0ynZtT6Ti9kSwJECADPPmLOkTKlxNCSvMEA7/kgc73LPJNrbp/A5vj8iuuP4YYcdlrm9Q/VQQpC5lKTsL9UsmSeyJMrMgFGdUebuveWe7Bp277vvvm4m4fK5qvpKI0rWThYBzJGiVsZOqW0zWlSSUIJQQrjlllv6mHUhPITWSzui0pQ040Sm5CS9uzOGEr02KyPcVaV8ppNbgXS7IBuDCckEHW1I8EJmWDe9RpqosnAAAUVw0maa1u0tSO8SWkNIRMlWlaU3lhYKS+pfzRyGGigdzVA60uY1b/6OvBUR0+b7HdugJenFZS3axPR0U49pqI3H0Ddz77jjjtm5RVz+ZxHUpZdeOgmL+d/POuus64xdgQHd/6qXM4ODpA4q07oLgAm+VYEwjGV5kBUJDSdXbzb3s4NnZ0sQWv8hYL1sS6uKQYyr8RyTjo3hPaZdzeO2/iWz3jSAa0mA5ydIPstDIHVcdzJE8CL3TeQ5SkzLGRZgUivtABo3NdrJBIKfgxYzvgOdFlxmQCgBKM3FvvOhThm/4aCHiAzALU0d+jLzrY3qsCUE2D9WnjN7dC5Us8ING4Fz1kEQifSrIU24e6gr/HmdUeZjuO4Vzg+WqXwefT0aIh3lWrPCfDiFHrGGUlbUI7b7kVg18qa0JZWuJ3PWDIkoUlyE2mRJ0losA8hUj+TqXSC1xAp6j1Pvt/j9L8Zw45DwCuOIQiXVPmdQq4wpA1ocj+OOOy4Wd4a0kEPdNkYsCxPgPZXaOQRQGHq2YQJIITMY7y708ftK0Ixnx5Ci0vKLLHTAyZDj2fIG26qBOxaCGvCoVKP9Jxa7KiELikgB2f3W5eyzz84+bgygBmCkuF45czEbfBjbGBV4U/MpTUhmUJYHVIXSFk4VKad0ZrdR7WOizzxero/MZXhSkTlOAhRjPAQLQda1YhEomko+Jh6PAzJ/B6iVZjq6u7EGem9Q2knR9dkqBKUepSJ4cyLt6EI/T1L9/d73vncigsjbuc+pNLoSEzG2P3afMbfeeuu+eCy2inSYaT1KtmEcRJ5PImqtkb0MQEcjSkVyvQqKj5GH2QHwv5HVir4uY0izQBUdYYKlDujrNyJm/98uu+zSn+cZHPkbiGlxjr/DbHgg79sZ8X1t7t8itldGUplBHTpoC1AtM4tjuME95rusiwRpzJDHrUtk3YuV4kofMlxsZRwqF88eyOCtYER3GG3zBSkxCtUPZ9ZQmSJWSGO97wvjJW2aSz/qjcpc3/TDYgYJhkoDmP4bwlyJNn9CXfrKHIWqX0hAYeguVL/8zthMSJJajbO5cVDaXEKCinsKU8C6bINrPzYeS++jxK3kkdTnDMAde5km5WR+H+nmcFSD42lTVwM4A3wKY6sEYp+jugAY6Raew6eTEoXSiqCk+hWquvEruvBV5bl3HpJLJZJ2R1SwDox7JyRvo9td7NqB492dcJzh7V+XI6iSaGcyKZPXOVnqNXI5hpNBbH/ksgsXmqYsCln2Q/ooAwPja6B7N0BQHa5IsWdqCZmrXoBkUsokO7djtv9SQvqK8JAmibIiwkDCQSHtKPV5vUBmpgjv094kT4Uty9QsyRtaEf0qDWvyMGRFyUcpJ01C2TuR8Ifzvj1o5yD65GX6doymFfpladU/7xF4mbhfB4z708d6mlXZauCNv/KsWxjPKbnPqUTwW0cXFmqkZgZYFiZ/lGM3o5efhqTRT2u/Eo9MBQGMve6667oxmBVa/nfYYYepNGQKHVxjw7i+Mq3tMggxc3E6uL/4xS+y1e7uICBxOqsa/Qzxj9MICdpvjLv1LJ55JDNIT1ybt9B5b8CUWzJAyzNjPYGEtArVHSOhAminQ2h3wCQ7WTekpnoNg9qa9OQ50EZvO8M4W0oUy6QMhjKgkkp4ecK7o0oQCzfDK6WXI83utVzrAtHqFI+j+DuT352SYfczcUUSvdJhGIHTpzrZyuplFA3VdfM3JIyQgHEQUjfaNVDmDtd54SLaAL7agm11og1c7/o0PTDZOqbIv5QNdAIiGUMvnYBoO2CY2fx+COC7mfu+xaXVSpmqpj7DgEGZxTq6iQAM+AvGc1lo4UKu2YM2ZHmgfEdslmi/GQmvBJD6oSP/a5jcKpECsvaqsrhMIgza0FiVqpfMghqUxwHiljUmE8tihQxytA+pWwclR+0zTo56ngANgdT1Wi7DyMZVxk5JxbIgPq9XqnEiVSrQjCDgKs3jDfa3u7Ka8UEOz6RCgc1siErW9qWZI7w3BW5m+Y2MBbLdqlvSnROZyzYE2MKJysnE5wm4pmkVQF3cq2QWzOh7pbeYeLwPIM1HrvCUPzvLP5SksOxe2mW20wc1o1CXfmgFT8EH4xkLM5X25HyWNoV69VP9ys+PTJ8EgD/KpHAc/T1pUewv1lSpwtrvqvgzGbR3Lrrookk0wEjdT90ADSLak443pqdS17kgxLXdzFNrx2jgooGdEO/cX6zGxX6KgRKAtgUZXeOYerQJvvV0KRKaeIsBHG3KBveWh+mG0PkvAlRPI/a6juyGQw89dDgEuzgz4oOA2TNc8008Fdcxs26L0fllOvep/fbbbwVUps0UMc1PY1yR9iE7WYJztkv6ckawzurh3Ym1XWGUje1jInYjpcfMCIlZ6C2lC+pgkKUz1QQ+nWVAnjuC97ods7uQLPAIBmA4w5nGg2smA8jd0jsqQ7rxeqWsxKiD3QLJTSNlTIk7pLVCu0GhrakwHkkudaw8XriQNd9gIa7GceokoHbgupmqxrR3LAy0kcynNOv4ppzOWYKuBNTzmCD6o5b8i75djnsHU+elItFbRFTbb0cffXStQKuKbioLVW7pxuJ5wykiL3bYsJRIlVpMFH/ZZZdVpFQhuZR4PtveSfBSeosdT/TMSl9KWAKNaqg5qKRDaVCa9bz0oOrlc3xupPE18ZfPjWBNbUemGVGKDC9q8kZlWKvKZuBtklzyKX1vlj8r7faROWZiGYZSSJKWszSwqoHWxRSwgon9nOjQ62LvvQVqrR44AdYJ1uemXWCya+3viAujj5a3a6HdjvTFqkwQY5GGzsc29V151N1faW+dnmU0GXdNrmN8BzKWHzLer6Pqzsl9TqWKmaYWhP42YuYVe+yxR/8jjzzyzhtuuOGVI444oi/t/AOi6o84pqu22oRjipqu9TKnjDuCAgiVxx9/fJaD14WpAoJeJiNMdVvq+rUjtdu4aC4lNtcrJrO9r2eOgR7F/4vcsYF33n/ttdc+jqTTFcA58Xe/+93NBx100EDevT33TQMUV4Sgf7z33nv3ArCuMGiSAZoHSIyBeLr7TmbrMRCGSzm0/WQrmiPboYsundkKXdkxY4W6lQycs5V6JELe28+91bjUeJeJBi7Srh6A7Dm8+01mwFMAtdXSkokFNiClPgBmiuvNtIkBWGMRneeYYCq2kbFEPhhnZok9AuhChShU+yoKgiGDUAt33Cg8nk+LTS3RVhnYMWIMZ9PfXbm+U1Ih13LdnsAXqVtTzEqWJ1yjrq52+rAfY7MDk8taMPjaMpeqsOl4laxkMNVg2vgxzN6Ftk1iApvKGLhcrw46qPKaQtVYqSACIj1Ge+pQGwSwrC1pex6TyOciy6AA5D32q0m8lHQFcybQSsfYbZPtizTpZGCgJOHEFPFqycOksTlTG91QQRoWJF2DKGC5TMJ+s41p3zHDTxaongKQKpXPUwpTDUySYLats9ekccm+uzTDsXnsscdMPJbZiwSgqGOanPLpWDYhQluZDYj+zqctrwQmbayZ6uy9Tj6RypZ+qqW+I3DmKEg8wIR+B/zdDylQrWUA0tvMp556yhS3T6PJXKVJBZf8IvWIFZYq1J+eDOrxMPCKEMCbqGQvnXnmmS4VOJaKv0dj92Im7Oe6Gt2neNDsyA4QWAdjQFLwVEWaeSuSyC8j2XHTGZSOKWDvPxDfkq53AaDq0cU1mi4JiPVjoH+HLeg6QPBpnjvCnT1OOOGEzsxAz6H61eOh24b7N0Zl2ZaO7gMhu4/xpRBnP87rIan84x//6ALXSTDIpyeddNKuiPo/MRE/jD8eIukU+91HWk1LXUEi+aTOCBSzIeoxgOzJ1Ffbwgpeo/pC3ccxiGM4PgSmmkQ9DsMIP5d6HsCxZeiXxUISSgta5fy8wXpGrJp2gzZ3TWlDM0OyjBSLaMN2VLjyvdDNHi72yMMTgBTbUTe0y0TgZQpOC3VRlWcE/ye6Hs02K/m4xEavUUhdgpWr42V4QUgpT4Ck7tMhYtW+gUolqrxuoaxkqTRiW/wOzUzh2W5C2ZXnT8cOcztMs4o5nT3vO2SgsOHttdde2d5aAoLJ4539AwzT2r4sliYcAGktV7Ypo7Rm/JmTnfYdVQ63QU6LVjPbi/0h2BlqoDQeWzilCUe7VbaGTaDSmO3H/tWmBn3m77nnnoqkUmfAEZOYwOG4eCxFamdFe1PF/JIFJ2bMxrvUDtK+YBkAyjMRFxQ5jpJhOgN+j3ufqwGUgoyjM/Jbtc1UuYaipAWwFa5PSzmK3L59CJpJX+r4m1NOOeXxAw88cE0m4p1sD+pgR/q4ln64/9RTT/3r5wlAWb/sv//+ZrcbTONNMPYyIutUOulCGvotGvcLrllcxJUYTeqk/qyRV6h2bU1K/JUxFYTwHEQ3iQ7pr1NAgzMDZAzSa6g0w+lUl/QM4L7nQeAuSswA3eswcK9f//rXN1khAcjCPQOxIezKM+5gdtuIWWlF9PZOdOKrqIyXAzDPMiDbg+J6BVZ1Zw+eewDnTkbF7Mi5bxghyqC8DfFN5Jr+KTByAQPXFuzcKUGppiCGH4Mevjc2idEQpyv2v6uEIDhxq96ZgdRpGmD3FG7jS88555xt3HuLdn8DQhyQnudCxDmm6HANXBBSLISVWAVEi4QXO6lG4GGh/aehm19GMhJXacIS+ZKUDNKOC4UBifX1ac82i+8wIwFi+iVIrt/mXFfbroeSd/XJ//81SJnYJPOkPEsVKdGb0u5k6vQE472Kqq6gTjH+ZgJ2xS4Chk4D6tRT1USAgL6608Z1qXOHtOVNNnEZYmGdmUCyYMTkYs6eabpUwC5LjarKIlDm5qcyzYBAA7NGZ+nPTIau6Up2H/N6G4SnGmm/Z4ZkAQc6mqdTwD40XEPbUVXaBde+t1+lEVfOG4nvSn7rqFSlJGSMjuMWk0S41zVYC4oAjBNvpuLVp40Cklcrk3IEjwyV5vdxFg5SURDkmoAtHwAVq+S91/ZEbqCUsSCjHW1S0HuWtkQAQvrRO+iYX0n7n6fdH1D3b1LH30B3na2n1/Hcu6D131HnPhdffPG0RRkh3bBUGRkJyj9GQ/+OBOESicNguJWYEVZz50ZmCNfgZCubRWPFQ2ca+wnx8C0D2yDUedpJIEoTb2VJ1hno0XRWX9NTQAQX0qFrI2Kvyv3aUU6hQ6cgEm7Ac940ghhwe5H7FyAygDhZFQHmvpj7N+PzCR3dA+nhI4BoE2atFQHDv0LkRxv5TF22hzAfYMadhr47AWJ5gnvWh1lWBUy7M2Nnu7KmWXpBbuVCJpdxue7v55133ou/+c1vTr/99tuPpT29U/SzW6R0kEip/31Ii6fgwjWf8ywYZiIguS0M0S8lB/sPOv/BgOa++ZTILDxYQfAytWAkkem9k6BitX+hDajQRR8rxQv31BJ0wp1vCalOKctZM8ANRlWKuwmweJT+W5x+2Cq12ejhSTzTlfKRMD17D32ZpS915tDehAo8F7W5NxPEstS1Gun4Sf4vbRIwV/vr/dEZ4ewscwsMkWxdKcl6msZDSTDyA/HMTPWR2b2e+s2gnm5Nnf/rX/+qUThjRplMB4SpTt2gMLx+PH+2O+kK5ClR3CR3FuVcR8HG3X9lWFO4KrnLwBqPVfFUbZKXMGuz73J3YEHP0A+kcjdAzCZg3eSaGJRikvob8Tz5tOFl2H4y0A7gEQRjkvO3cUM6a9QIQlLS3qq7Pnm7IqaqIuLbvF9QjL3xYpytpysE3JoIaTxPW+vgichrvvTJJ598GfR8LPz1f0itU7HbdqDvpuO57shv1XBj9mbSX50B2vG5z6kEg9TTEK1dbrVz/AUXXPAenfKBKRcEGIikVjFVw6IgZIZDBvh1BkQvST2E9x6NcqvoKjdRs4MY6MEyk7YCDMpnImprwZ+AhDAMhnUm/kXd/C1OXKdzK4Q3qbBi1oWZ7UoBCl32L1xzFJ24N8dfdQtdAOBJ6rQSs+bdzFzQ04hq3jM32oNk9R5I/y/qP5P7uzqDhcRhCaNz4XoqZo2Rgg7vfB0mGQKY9KWds3LzGdNkbW5L9AEE3Au72SkQxVCe82fA5h6eP4h+eEVmx8v3OwitF2riUET5NyHE8cw41wJeE8NeE5HUErXhDDDPXI2e1k+RPdzpATxhYC7MlRyh/7H9c/yPWCXzHqedGJRIJtAmNyTcjbE5SIZK0pkxLqbWnc47Zqfo54rEBHlVLd43mkloDP2RBZ9yf8eUImNTPU8CIGK9gYAZg/7lL3/JvFDSie/3mAAk8ytVxwaFoUaq0mHHkY40CtcYF3TJJZdka8HkUuvovQKEbTdEQwaln25mzKbTL0qdBkbOhZ4eNa9QUkPzSmW2QzDUpqRd0jYawhALbQVCQUX7jiBpn1qso0Zs+1r7kH1q0rDU7/lkh6sIaVo1T8nEXFYuYg2jcVqSURHR0bYrktwLigKwhX6alzy3U627XjbMFBnQ2Y5kC8wX0i3vUVrM9g9D1a2m/zqlPNYD+P4A7/kez70BadMUIHztMG3ffffNo6pNA/w+YAJ9Bz763ADI8j9xQojU/RDXj4IZ+9ER3e6++25nrSr1baNmZRptOgcffPAtzEaX04AaOmET87S4QZ9xFTwmS/wlUaV8uibGf4zvK/LcZSGQDkhV092qh/5dkfuexRvy38YqCDHOwTj9zJ/+9KcRqD9z6bxTUOE22nPPPXdkRl2X788ABIMgiv0xoP8Xr0uWSR9Qq3I2ZrbeDQKagqrYg8OzzHEtASsNRYh9RHgzYF0wUG6fZkdd8l3M9kj9prvQFsJ9EwnnBt61IfdMY5AX59Pf9XPYN97WK4Poez0S2T9V35hdzJD4fRj3BNq/OrPQ8uaZDgBJnrHZENJIZrUnef59EMnqZqiM9hcui4icyg13/6hJ+8KHYTKSy9O39bqAaaNb/upoWAFm1DNpUjlzOfmIOjwnz/P+xQDO37vanH4drK1Fw6ltow/+xr3dYLIlb7311uwdGoJVwZ3BU4L2LLDOlCkm7HLJBA4GI9g9nnenUbdEVoVTgjPwz3ao4pgXyDgiB8yo6MMPP7w6Je7KpIWI/o2oYdVEGHUu519grNZOsUGuKTNF8Cpcp4E9q5NSmeseI14npMoUj7QgO6JSvmpMRM97vR4p7SzScIqAz1z0ekjT8ogw3mfBmP52ux+N56YsMTpadTYFnWbXpcwEmZgbtir7QYmL/q0zZ5R21BRtnS3VSKpbqOhZW5K0nKlevsMdZX0mdtXM46bklOhfR8Cq/NZV76Tfg4n7ceq7LM/egsnjAmh2Ru5zLNUNDzAwmzBA6zBg/6KhIxnAdXRt6uWS2BRNVdEQfVdDUnkIhvkEUKqD6bQl9TXzoi5PxWldnbopYdCnAazpDOp/IdoXYLZXUacEnT8CFn8YOnToLa75aqkwKNPpxD0YhGOuvPLKgTDJVuZM4R3LMHBzYKZ5PKcKEbU/KmYN0tm7DOAO1Ot5V/u7p5X6sGJtEJo6MoQx2yUUBg5CDH+hnm8g3p5hziLeV0+bpsq0tPNuxv1epLt5zFKvH3XUUffYPttJmwbQpkcghsdh4PEyGs+/AdDqgvH+NBhjCZkoJKDwcNGGTtSxD0CxEurp92SeiB0KY3OE28cOHRaJWXVDCTW2tgk1LqQMGZP2vgKD3Uw/bcQ1LzGTD4YYd6mcn8XSNXOuSt8IUH4Fpl7d3E58/5hnDFIVc40TUsoQ+vA3APTfnfjNSCB433vvvZkk4PtUKU3RAV1kMUo//elPK9L6MoGkXsZVlQq1RZC0DwRCmYNn13KsUwR6psj1jH5kQreS8l7d5YxLLeNRSx36mpUAJuzkPbzXjRhdJFwRuX6sq3VQnUtxYQLBLKPeBSkmikw1i4XPSia0ZSL/e3BPVYCLdTBYMK03y9SoXFJdraPPgibybooYKwsEUWOPUsRzdl1ITgWxQKZnyYJ4KTVJCsvCXJKmsGDDhVyKlA4bH+P/PO1YlnN9DBR2HLSTpfzbWSYLY77g2Q/hjUewt27DxNEbiXtxA0CZmC9HaurJoyZjU10BWjEjp+rii9RrkSU6+4wkhBRhKLzpPnvBeM/QsXuA5tne4RK1g5jyAWlbWRa07wTCToYI3JfeDuwl+pqwSgZhAObBZE8xKLNgliEMxsp0+GUQ6x0M+kSA5DbUlffNU1RMZS+99FLTK4y56667HmSAttatyjO3ZrCrAZy3qN8OAMLq++233+O8+5sQ4N5cd6Db27oOCtCcB+H+lXqv5jKU2G6aQXuLZyyW4i9WoM2dlQI1Yurm17PFAA/DG3Hiueee+y5S4DmAdD+OLQ1odXUmgkC784xV6KutkNje5f161fbh3CCAem0BLkmHE2CCDgKAAX3O8npBzJmdXPQz6X/tYV3DAxNhA+H6D+9YJLaK5SQhXYXKpjRH/UaYztSk5iYG45wBUq8xnv01RvPOyUgD+wKiDzHj7879y1PPCWZ5pHQUDPnfAXBZk7E3GVtl2kk0U0lUMexL6vweANzX3NFKUVUpOb4ud/pck1K2i6gxNgJY2i4nM6ymAMMO0d5QQaM9GpZN4SINKknxbPMymbRrA4M6lYySfcb8Vaa0FenDxpIBSwoyVB3uwqfGnWkZm0ptNtRlojuSBnNTz8nmvFIFs41KPfa5QOFi3DBKe23l/B1SM0naFQRGbSe1M7MNxW4ZEpb1TP3prRUpCj/LCaRBf978feQrwjDt5ozyWm3BluARd5Qxb1VVN6Ts35k0kOcs7rqxNIFVxPZWGuqZVB7HbncCEtI3qM860isq43CAaRS8cBHS667a1tIi4X7w13T+z1pUeYU+A0KHHHJIBySJ52CkTxnQDWBysypWGHfBjJ5XzFbdMi6CxnxAB82C+Q+G2XeEkNZDQqhVDVJnVz/G0PcJHfJbOuM7NHJ5F4DCgBMZpGybEWOUbrzxxpKDpJBq6ujcfzNw3Zkht3SgYMYReLXuRHV8/Be/+MUw6rUs5xZ76KGH3Laom0SBaH4t1xmzs7q7gbiCH/SfpUGZejo7Zlvy0Pa+xgHR9hoTcwlGSBPnXn311Y+ef/75uzKgh3JujRTjkW29bAwNRDqTfvkroKprtDvvPpoZx03masLt7XY4MKs2NlWG6TzfiOPqkHBkEFSASdSzR31BSoyKFKSY8hJlRC+xqx77W8KK64OB3XCAY0sCLqvns+VNVR2pz2bU82UY4VOAckmOTWHCeRgGOpfrVqVO0+iPJXhXlnVQoje3UlpX1ydm8UJGNC6Mfq8HzLvKqLq6tR2pSmgcN7WLEoxMqoF6++23d7unSs9rTM4XLMhNnrPIopkPhtOQrbdNY75J13h3d5mNd74HTX1ktLB1om//TV310C7pb+sqEHDNVCTyc/n+AMcHA/r9rbcqE8zZWXr1vQDkPK6tpR7TOW+m0c7V/3+rpIqwx0XqGiUZ+8gJwShzAUeJJzyxKSdTJPYT8GTszB6UvGiZ2hmLTk0LkuKFsg0Mw2yQxrYibH5JBe8IiHyb/r4dWhjCc3r6LsYznzx385B6xnPtz+DZxfg/1nxVSL6rUYeLAczNN9100xqAvTe2p3uhyXOwb+7HpDSY/hgFn32SWwTlMyCE3aXenMc0Zg0G1bibbiaSonONJzIdqbPBbL0YzHaHY2y+BIlmS67biA4Z4uC7RINGccnY9yUUSlca/ymA8wMGfNlf/epXR9K4Nq3UBaHzGD9nYiuai1RlQrRKZtxfYnC7B4/O67gpl6MeVzHIOwCkr1LvmYrXSmsMwHeSx2o0bRtHnd9h8JdiwE26NZv7/w+m0dPlNdmMrlsbhn2N/27Fsy/gp5fvTj6TsIctZwySko6qFZLkRoDeyhIyBGFubHdAXTBrui7K7IXO1tS7UwpSjHCBzAVNf/eUaMPjFR6uYM5YUR+essJlJoWJzy2R8c/QAvrBZS+9+P2q6jP17mF6W9pwInVfWp2Bse9q2wtjkGibdoVejP1YJTTVBxPVKV064yodb7bZZl0FFY/bTg3ASUXItjJ2TzTaXXXEEUdk9gqzF7i/e8VnI77z2mG0SylxhFSgNylFGlcUSD0ZEzMmb/K5iXptB8gYVfwvaPhZ6rEBEto7xtjCeK9z7BFostaNJHn+sjxvVd+F1O5c+qKOFYD8QmjiMZ53IfWtTkDyOu9bMSTMcKVHBsPkgs/aaXCqEdfySQB0inDOQEm1n2sn0MfdUlL8irS2cIHNR4ktwgc0qCspRTS6aqj5mJJXbUEUN2OwgTu0WAeA8wUM0A+j2q9i3BfjfDft2g0TyVWYPZ5jAqBKnffDEfVvxmgW6uODjNve0Fwv6O1GN6dgzKfw/sfwDi8Sg3VVQ+ZmBvsVAzYVAtoNyabOYEQaPg+jYmd3omQmPR8ifAZd8x4koMo77rjjGQjgVWxHm4PG3SCUMWedddb6NP5GiPh5dM796KieuLQvRv++jYFvEwCB1KsCluP8jsS2Fmh+AkygWlGNR+wWZsxBvNdcxrtwbmkGdIDgwbFarh8SwW6us+LcCEBiBffKol4vAZK6nLfS1gCBZzl9VGcg6A60eRX6ZBkAdmfzD3H/yujXk5lF3c6nOpYepFmzmwtRXQ9mKlZnOojIJGWZ0ZFrs5013B/LJRyxDkyiUrWJxYyhnqjjhzfP67RrCT5h9PSaWECbpKRXIe4xgIwJ7Ccq1aSlFTJ2Ff21seofBHsOz57I8S045nZOb1CfvvzX4LuUYCAzWXjOSOp7N/2zXtoiKFM18CwZZ2Y2QSOS8ya1c2xM5BWSAxLoPM5P065mylbXTkEvowGl7mGkTylYsyUiShUGQurY0C6lSqSBXFtegG7KDe0+dIOpx0r870MbapEiz0C1FGzcQeJe6tYLmlwb9eMEvq/HWGxLH/+H5yjlrMg4vXrxxRd/E+n2j3hZH2ECetrAVOh2Mej7Z9RBFa+P4FA/Px9UJtGE6pb6JvO2GUvkbsPhYk8es2wcjVni2ET46yYA0Jgyje/5RDeZROXSIqUdpSclRm069nVMVEkPqwxDt+8XBJ0kIlKb+80NvyqArBf3Wuq+It7HI9EKJpiqA4dBb9q3KvR9znnnnXfLcccd9xGOA/lmCZ51AZLpdrzmNLSJDyNmb2GXz6QmZRYxeHA4Bkd3XDUZtuHln9L5ZxrdSsXnQRTbw3hL01FvadPQk3bFFVdoeauhsWfSebfhDnwhnomk1NmYFT6zcq0odrKeOkPRee6qiI2rMWvXYCx/FanqEMVRiPf53/72t7vKwHhvnmYw1fuXddbQfmBMi7M4RLaYkbD5+akv6tG5/41k8y1/M5M/Bmg8QftPhqhf4t51JH5myo9o50tc830XXFqSaKztoU71STAIRnLWY6Yfb8Y6mRAwMMzGmbCe/suyJUIQ/6L/vsnHTINV4RJOUleuwDibeVQkfJ8f+ZEKI77DcxYiumoljoObYKrl9IgBAHsgxd5N+4fzrFOox8H03z7adgrUvTrAaDg2s2cR392maR+dUmkBryqE77oVRnsCRj8Y8FjTdXiqFFtuuWVe24mpcy2R7AxamEkdsuybqo4Cv/VTGnAtUwK3BaEGuvJj11QBSGNuSkviwud8SJPhDUzqW5Z2pMB7OIe+uol+nwCz/eXnP//5S5tvvvkOAO7FGGF3ZlLagrb35xnrMwF9zO8DmVyHUo87AMmtec/v8G6tCYA+QD17WBcDNCPrY2Q1sLiMJMX/ZJKfkeKqoi5KTeNjeENm+FY9M5BSOxjPmevEg/RZnaSkbMx9l9814KvmC/DSlf3mJJQ8qVn8l6qttM4zjJyeawoPnUNoJtJaDZPlLUwIj5q4D61Aj+6nwU+YLI6ARz9hvObxuTv3BSiVhT8AntnMHtegr0/Rq2CyM1dOg7I/ggG3p7PWggAeYNC/QWN33Hrrrf/ObPJL72UgayG64wsByAKjz2otAKXnysBnYl86GaDYD1A7ik4/gfodYGAkXpjrf/CDH7wMGG0HIe2LOLwsg7w8gzQaBngHG1e1OVOY4TK1KJY+qMLRLlU0g9DmQOy/R8o6CqJ9nPvWMZANgpnAs95FMniOGVNjt4tQ36cfJhvTAWHUxnqz8GIxY39KHT525vS3qqvvEoAkLBkPsN8KJhO8KlMe5gVR28bTOLN6nQbctLtmLlJ3ho3E40l6yGwe/rfQVx0h0h1hiJ4w3Bow2sGA0iHangC/j5np9v/ud7+7Ae0YZoxMAgLtRW+4TAXp6C6+T082mUxVSGvZ1qNPptL2i3jvjFAHVbl8jt4x22ImQpnG5GB6i2ROk4alFfbaYCYYmRx2rlhn5bMwkCp5ZWvDXMahNCFTpyjpbE2X70pRxflQhSKnE0w9jWc8AUB+04XR4gOTqLtKbARYvn/NNddcS7tvgXFPp39OR8r9FzTzUya4vwCwe0BLd7j7COrMD+jvV7VfRjbC8KQKGMlLWZHsLtmAaNtyU4XK/5821ywTerkye4+SnDmLtA/SH9UuBfE+VVPtXG79I4i5eNd+EYDq0i4i9ql9kIIvs5TK0gPXDqM9xybJeZ6BiggLLi/ahfdcBk/8/oYbbljb93CNGUT7UKffIwHd8UUBIEtjSc0ehaB7MAttAHHPoPJPwEjb81mJAdgAZjU16ckMxLt0yMvqkM8888xC3bmRTrsH+89qAMLq1Muk/G7cVsds+w1m4VVB9o1htm8ziD92TZvr3JCUuiNSu5jx0+uvv34x44PUs/MFuXmMgjYnjp4qNxw0TIW2j0BaWiHlc+7C65czYI9n9oToOkFQ1/D+DVXhJKi6giyCFmONeNeSMNq45OESaCrzBSk4KuandsgWUBZGRPtfYlO0T2uqKuoKtqQOI3VEenutDG2wm4yBGnOGa7tcIsE1rvI3SvxfTCRTOb8W9rMrZd5XXnllFON8Hcz+Kte7LMXYqZVg5DV4Zmck3SEaMZl5n+bccs70PMusj3P0SOlV475u1kd3NAzoAuIpLvINFQxaUV/xeFXaHmoGQPAP6uok8THXzOTTKzJf4nmsSGEaWbYF+yYiwVNEsuAmPQpUVWkMK6JfK+fn9pkO43XnuSvqLKHNfzCcgsllllvbXHLJJXVMABOQ5jUZ3Arobsk79IL2QvXph5SwO3V71hgo+uBo3muuq2xpSEifkQ43qc+ZCp3WtFUU0Fbmik9qf6bGadMy2NdV/SY8E0w11EPP5lnKHBPGXBmbFfFMgOkHhx9++DTGtZc07XtUe/VW2zf0xZL0yW3wo46ReuhuMOPyKUA0z0mHCWBxvI8rIRh8SH2XpB39L7zwwg9yX7DSaFIzBus5wOV2Ps9hKZ9r6gykpCG6rTFWdaLjloRAD6XRkxmct2H2hZ4SEtXrPbwA16CrvsP713nxxRdXMRm762EYwI7otAKIKss0JIhRGN26Y2TsAjF14toaiSfUD2adWyDQVZhNMpsEkt/jtG0dmHIpBncajCiA6DLPosEp34BolmTW78E9W2nbiAC68GqFYVE1p3L+jgadNPDWFeQODgAqDL2vL8ia6PvcaZU2RcSvto13qUu/AJ60GDiTHpQylERst+cFaACz39tvvz2H/z+AKT846KCDZnGfC1bfOOCAA17xPRjwN7jyyiuvo55T6aOTmPHXp01LyjBIO45zVxjleepg0OVgiZfbVC2H0v6d+PSZO38vuqwtEP39JuNiQhgQQOqGe3oVUYlMlVGBZ7UGYFiJMevCdX253hzPHYJxdVEH09pOI4QFOKUPAdY4JsbG3RBFgwX2EPNWpXVlhoR0pR1u2NkLiet16v3I6aefXnHzzTd/hj6xbXZCalgewNoqJiTjebAnPYf0Nufyyy//AMfHm5ga7qc/NoGePuGZ/SInd/38xcX5JA0tGM8U3V0RbvS6gq2XQnUW1HTjm9YjLaKt8pjjakZSwSpJXYJwb97nUqEO2gGVzmOjTj9maYRWtqd+S0GjyxouAV/eAT8u7XIi9x4DqHanXaNp13++iABkaRSEILKj0GVvxMh4HUh8A1LIMJjjNaSMHeiYiXTeX/75z38+CDrPWBQAZKEDs3Vlu+666zsGRULIGkg7GTbg7Kv9ACb5JzPJaagf12LXUkHuyEz8FwDKFf/GAckcMwHVh3jGhgzeM3vssccvwddnaMumbrPDQC/r4kt3HwWAPkZcvk2juzNQzIC6cdXFIXQT7mdeEVWNID5nbfV+v+v9iB0OtKFpo5I5CyKeTbqv10mPiQSc7XWW7EIu/uwfIBaApdju99jpNIztSnSARxfeNY/7n8bu8QLP7Ibh9dYAIAvEPoj2vYVEcCx1M23tZOpwHeO+Nu/pmaQwJZYJtHEE/9dOADiGa+fSDj1ovbWRKK0BLHPoH7NQdhEUdJ0LIKoWaavj+mREzxKBoaL/A6bR8N0pjL2uC7NdSnZG/IZaEzaXtDjYKMHqZKDNpEjA4zme8yzP1tgaqTgmc95A2h/B7D+47LLL7mPiGQRD9zn33HOXRLI+DkA8LIHlhyYEQ/q4TtDi+wg8R7Ohr7e592WY1wyF+/P8qsgUUSC5FqZcXTA+AUBRksRbke7Ngh1di5m2584M+B4XeCyq8mE2oG0uqcnUPYHZEkGe2pnoq2r6skvKNDkJYJpFW0+Ad680HAXevZs2jMt9gUujIAQTn0jn9IZg3ga1nzdIEDvCEAZYxjwVW9BdMHlt7nMoitUA0ZsM4BikgNURqQWCDs4SDEIl4ufLGJtPZCCdlScy6y2mS5TrpvLbvM7GUvQ0vzW/x8NA72Kw/gmPHg5hqoK6ev4hbENXu8caDDIRAlqM+1Q13E5jngWG7SgBwlCv8qzxEFBf1S7uH2FYA8z7T4BxtXxBTp/6+Vvl1Bt7FC5w3j9FAuX+Lh6TMSDQOuOx9KBUp32/gtgL1Q9LGC+9DwYy+Kw79jCDTreFCJfdc889T8b+8JmseTxjPSURZtWf0Y5lIeYz8VpdT5tfos7fFwhlCpkHm8M4gHCNxE/wd6cu5n0y3CHUFGbzTrRpGo/uzvdKvWouHHXjvwsuuMCMgs7+GcMC+K/ATAYZqgZXRACmtg5tYHoS9RoyppkUaRhAbMHEu16hXsYwZV47AZhzS3HPctRrepJATdJfg6qzEWO+EnVVuryF+g2ifUOwiayKSri1cWu8u45J4j9cMxewPEZVDRvUZ/oKm8q72Ni21gvHuLypisZhd97tEHax2FooJpbKgtQrYUhPBnjTSFTGhKK9xzV2jp0TlX3g2jRDEWK8Vbssntf2pwTs82LbaPvBBGn2lQt5U6T7SvTvzUhzdzJ516Yxd7PSIddee+2UReX1Krb8Dwg58fB5jEHS9vM8BscPMTjPc+UtDbz5N7/5zYefFwBFue+++2bgDXuFQXuMAevB4L/OjLAaM9h9SHA7YntYB2KZ6CAh4QyWYACKkbRLO4lLJB5lkPrAcCtDeJtxfDWkpXUB2FcBlRMwdN+AIf5CftcyA23B7KyL2dijYTznQxjzJhOTuae5GhPqyHiYX8Y0t9H9bnuMCjIU4l+Mei0fHiOKYFMVAJKkGaW0LhHd67HkjanifldEZzNl8nwtmG2VEKrTziDJg6Jt4WPqNsadbLmnk7u5utkgXpOndTJEJYYOHfouBDuAGXQPo8EB9B9hrzgX4nyXNn2bR/dPqtJc+msl6pZZvU2HAk0YY3Q3jMupOUOSdGiC9Z4aRyvnpzGpOuWUU3LY4rL3OZNrt1I64NoeLpnQvW68kYZZF2pGrBRjOouJ41OkEHd9ybxvro/yOfTvAMDmU8DgEd63cnJfKylp27O91bFDhf2ZDP5KHr1di8Uksy5jPpf+2Y1rOjBuHyMxHMZY/QlwapSmzTIBMOwKUKiiXkgdtmdcxqU4uuwafhuN/gG0mG1ikC9IuZvqXQ8NvU9/mRLYKPxn6INlNEanXVbtQzWMWUrA0ISbgkaAawZSSpbQYx7JPYtWF8APOeSQWfTtSMC1FyrXDJw2ttt1YLPpi22xez155JFHdv7Zz362A8/c9s477zwZOn8Z7WFk7gtU/geEjBVC2pgG8PwNhjrRbceQgj65//77x6KCfe77VkfBnVpHp46EEB7BpTuATl/BuBgGcQUG5ngGrguz2zrmYDHLIrODNp5KCGooA7o7RDAOhrsHYupqQjIIaRTqy4sQ5PkM9nch/N2917gX7STG97g5I+7bjWCQDSDo7zOjL8Nz+0BIgyR2CL0OKejP1GM3zk+EWT6F6L8JKH3GCylxxpZA4WHJz89nNDktz6ii/vMEI43nMZM6c0a6V5h4tssjeH6m9hmOADMbUPoJ3/vC3O4n3wmD79YQ57YA8r+pf5apwBQZp5566tbu9EGfjEEaOx+JJfOxM9aPoEa9CkC5Kd4abjogA1emDfrS1s5n03dTALId0pqsiiTtSU8VseuKicA0wOpSpj1v5uav5u+V1CgX/WbpV73XbJfet//++9dcddVVgkbGfBphVfmQGCZx7QuoF9+kDi5YlQFdhtKBfnszRUhrH1ItzpbEUOro5/FIyG4AsArPVyVbDsAYxfPet39oyygM1/WM9YjG6Aw+qLnjjjuORiVbHn54wp13jSh3bKCXT92wgHZ0xAbZDVBxs4Cu4TELO6HqKcddu6L014nj/aHDj+m3PoCuO8h0pg0zDGSkbQNcD+c466CwTXrCTLpmZlPNAj4bQJyEmjtlhx12GKQECYi+o0oNnS6NQXso9PECIG+UdD3tdXumydDCRRjqP5DHc1+gUtXcSQjzXwyOqSCn5b6ABRDoyOdC7FLHwBAdGbRzQPodIZghrgFDCjLvc2bkq5y/mdxNMO5HMIbLNe7hcx+EPZzzm0JAb0Ms78Awb0P03+O+txnIlxBhT2UWexyCGWGoPuCie/ogQcncSNZDAFJa4fgs3jsDQloSolmCevTgOpeq96gryHxYUZD3ucCmYDxOFivj9s8Q6WgYSDe+6ReyGbFAolIqqdGlDpG9ybMXU1cCZGZzvB9tfNnFqqqfeMSWAQSXok6HAhijv/Od77yKIX4eDofNuK8rqtoduLBvQIKc4+JfJMANsJm9z+z6JCC+uuvFtPMY3WsMFAR9PWrwaQDzxjCCHsPMxaxNAqIfy29tW3WAs8seVGWzhan8rzHoz75KIQgfGpMEAHQx9YTPwZ7xDpJob5PbaxfS8KoEBQNN4b23M7ab4mnrRb/+EInvqt122+003N5XoHo9R1/shGRwK9e8AEisQv/9gfpMxdb0CJLthbTtVzzjbScS2j0dMPkO/bm4mwKk0IVGPbwY1jsh+X+La1emXx+HZh4HCNYCeN7jvmsBiG8b2Grbtd+5fCfU5RjnlGMqMw+hWegBM2A1SyLH+HZOSzekk6m474fyf9Uzzjijy2OPPZalIIkYML/bzy4P2XnnneuoS3fTdxiLhBlisWHDht0J3V2+1157PXvsscc+Qz+8DUiNwJwy8oorrhh+9tlnz/qiAZClWRBCFJ39RQUgC4O4DjPV4RpOcNO76HAZiHcJjZgAjZJARbIxZKkikJh+jtRyDLOrRLUDxLQ7xLC6+7tzfA0ZBTCagQ1jAgSwFUR9FOLvJ8w47+Dm/DcMsCcE8SyM8gCg9xHM8SHqyRyXPDAbTbnmmmvWZia/HklyM4h6RZ43CIZZPOUhWrDcoKD+C+wHzuoGfGoHkmhdwU/9s11QlXwiQreqIL+0a4RoRzcO1wiuMPXr1MW80ZdT118h1dyhSqrXzOBDPt+1nccdd9x9f/jDH54wKyXezp8iVd5mChG8QnutscYar0PM6xtcCSD+GwD5FnXpllJQyCwD+Jg6xXWAuRTlm2VG5P1v8v6BufnxZ7qNe8GYXdIi3U5KBAKZ9i76rR6G64vkWIfUWc+zRjGDnwGjfD8tH8m2Fwc4nuOne9JvpeeRuixJv6zF55sHHnjgxbjVZ/DsnanPJlxzDGDwKed2QNL78frrr/8sgNkbKeE3JvPneatz7UCu621/GbkOGF+KpPPnpmgM+jqEfhvF1/5IxX894ogj/kx73jzhhBN+hcF7A/p2G9GFfu6lCl1ZkJ8qP3+wK9K6Mw3mdYpKgPM7tO8ll4+knYgjzszxVsrrhfTq2sUKgTilw8lilPSeMUnc+u1vf/sGgG1JQKkfY+SW5NOg5/GMx7Cjjz76Le0+i3Ir57aUytyXuOy3334vI/08jefnHgbkI5dQMAgTEnNUppy9EsHLgNSRzBZvI1JfiWF7F0DjPQjybexIh3J8FYBnUxjjnPPPP/+PXHsVg7zFTjvttGDtjEnfsEVtyyz9N2bHu2GOR7BdvAAxjeJZSj/dTjrpJFckHwcjS2ACybsp+19lXUE+6zBMBrEm47OuWrdLyhLPqI6FPSBfkGWxtmCHVdWg3HwbhKUvxt9NTWcLkT7q9YCiavWv+b0mUtAHSfX7/iWXXPIf3Puru10T9xyAmu2M+m3UualPPPHE/+EF/SP/JwgwSH+3p7CX+WsL8nmlTCW+W2H8MapNzs4CBFLpmub2SWugzD+kRyk8PUb35lKEs5td9jVNCGrYI0hjow866KDjDQ3weu0doXqiVv6bPl6Z/ukKiPUECKpRF6tcRqJNyXaefPLJf6Y+k5AQ/s4E8T7AspPr9rhu9D777HMDlzxmzBsTzGvGZ2ls5/MKfXI+Kv31zdEYhv0/Uydtc2ZlfIi+rEVDuMf/0MAYJMYjXLnP++YkI7SzRb6+IN93RUr7AZ24MNwlNCPpm00E2vndNX8ycr0h1/ZIgabZ3n6mmo00xBGwygS3OxPpAVy3As8cOz8yoP4++msbVLbfMWn2yH2JSkXuS1wOO+ywpSDGC7QJMKi7MvvXuQYKYlxZJmXAppnGgmveZQb7yTHHHPNi3ItufAUzzI9gjGMRza/NlVhgmlVR3X7PDLUkxNPbjRohglrc39fzu5/ZB81PXRiM2JiHq2CF9oIlDMx4bsmTpSNl1pzu4kLvq/r/eaqz5yQvyby0DknJ6CWY7XQkHA2TY5xJUa/+K4ggndXgGbnylVde2S+t6B4H6B4P+GRMiNp5IMb1c5Ce9sCI/RNm0yu5zjzhM/Cy3EA/bWgQX3Jru1/c+gDFjjD1Jabi0HtDXT5iHFynYuxWxmARTyUA+QGcPkoOAlOfaAuZaigB596CgTakLevLtCmgM2+MDnab07l2S9q3HpLPcvRHDeD6KpNCttvHvvvu29cUKj/5yU8eYlz+ZxM/JJ2+SAbX0xR3jJVGegKw02nLnxnDI5obZ9tx6KGHqsLtwKT0V4D7M1kfGG8dGtsA5mcj1V2H5Lspz18+Mh4IpvaNIKwjAVvUPPpvdybMoRqpAcPLAZsDTZObT2sA09qzGXxGM47LpTWMxsCpslcC2i+hUi/HZOl2WZdAD3u43RZq7SwM1OczKV/mpJn7kpQvtSTEjD6CWWkvmOdtBuI3DOJLENdfmD0nJEadCqNlybpgwi6F9+LWPJ3PmjDhdblWFNSZN5z9IQoT6HeHkd5ButBmtA+EvQvP3aEwNWuATlXaHDAZm/O77LLLY9okQlVzJgV43oMBJ/J9lrliNLL6zgApXbm6wdO6rhECVv38vdMGQazmQ3qD6/YECH+KdLMps/kmpr5F4tmf6w8xjog6LAZRX4s0cOJpp52mmrMqDPEk9/RwXR7G4QOQ6t45/vjj34WRjkPFMZ4pYyYjrKnjNwDvbQSmWF1uigxjhdLKfau8INeO0hLjoIo5GKDpIgCljQl7IA1tTZ+tp3rtOzSEe7NM6zZKppClb4+lXadg47oeO9K91PUdpFb32tKNPgH15fbGAMhCH09U6qB/TPTeG1B7C5vOn/i9WRiRmyqCHHXohUNiXxf/NjyPpPUpQLAJYzCetq/BeA2OyUYwSeBs+EFmzzEHNkL3ylzThfGbg4r4S+qxFO027c1oAOYqwPY9/v/FvN+OM3Y8l35kO4torNb+BOAdc/XVV5+N9+vvAF8d12mgty5TvkwAZPlSg5DFmY1Begwi7AoD/gOGOJ5ZpqcqEqL5PQze8nwf5oLKwvsQ4UddeeWVnyZRuegi0WIn2hum0f3yIkbRvjCzOayXQRqqcqmEK5pzBVKmRAmRTYnYoPjAVP/iOYOQmJYWaAx6ZCZU+FD0X0L3uRssGluS2prtoAHhZsnEXOGPSjYobTY5FsDZk+NDHnnkkT3pA1O7DgSEDwMo+uGmX99nIDFcAYFvgxTwYZLCzoSYb+facwCku+nH85CezoBZXsVoP5PZdmvath3vnWRwnHYdisGQA3nOgxD/P1LE8YKcR8kYm09R3tlaMuNfjN+BEceZMoX6fozR+AyY17zjH9KW+135LQj5DBPipdgbgWhtJDV3OJmErW4n1KArVIO5dlkMsP1bGC+Bw5XwxvbYl1WuMqduk5k4ji9m/LG1DAC4Olx33XX7/Pa3vx1ceA6baa0Lcl1zBi0sQR9+YqgCADOVNk80hzq/P1Blgx6dOJ6FRr2uB2OkbW1x7YXGO9H+1/j0455J9Pm3mGz6uFDVZR7mBI/k9wDQJCaB6xmbO7n3Oej4lzzfRce7M47/yH3JypcehCzMRqMgzhthtLsw5I1VLYC4fw+hPYHx8/cQ0DVITS/m2qFItNglpvz617/eEmJZ1rgVvU4wqYtda8LeE0s6EI9fQ4W4XuO5wZ4V8xOVz4PpRppnWzc/s/zjPONljQMAWE+Nl2mH0apI2ZoWcM6B+Nw3XqnL0INueq28j3dOgCmHo26tzDX3QfC/532vMEt+x1dz/evRBkDmMQBwOwh7mDMt7fg+DP48AOVsP8RwBaSLS7wWY/4bAFZvvnZN7mb7oI8RyjDBmwDVu/m08Dapmea0mZ5iXLKNCV14aRRwighXDXN9V1ekxt1hsDewr2xJH11lPJc5pwVjGNoNMo2+/pRrnuRjZkrT7c6iLSNg1uuVbgChz+RHRkKtwSY0BIP7yti1et9zzz0duX4vAO9G05oIEkgUH6CO3wxYP1zMmPOcp7hHb+o7SImfiSdiqLaQBpS46ecpqGL9AJ/3AJUeAEmflObF0AC3mK5nPLbB8H9Q2sAki6J3uY6Bn5zbHFDbkP/L0XfLbrnllpWoe68Jyqb2MLLcnNfcvzwqaTfGbhj9NePxxx+/E3pyw4cP+IzNfclKVe4rVI466qhKZvXdtt5665PxXlzLwPZCfP8JhHsOKlu7eflwn46G+N/Am7MW0se/YDJ3eDAgcimjjWH+mZEqgxn8CAhlTySWAcxs98D8MzVMcq+49DDMcAsz7SqAxk0yssnkTSNhfE5S3zRWZmk1kpShRFWHMb0vKl+n2CzRfEUw7sq4o4/jGV1uvvnmN1FPnued5kgaQb98XNgGZuEJqAV/o65LGw+EdNeT+wejjk2FuJUQH8cWNEMp5pZbbjkPNaZfpJ5IaTk+geHquX5P6tU7jOW0a5Rr8oxG5jVZjFPkd0a6MdHd67iR/8A1LtlYhmfuQ9s/ws28Af1wiECltJVSZhjQOBrVazTMtTLtXJF6vGpaYPp1JBPONKTCWgyxC6KcYcZOvHMwfTn91ltvXcMkdrxrfzMqAFz1OCaOps9Vd9/81a9+VU8biwq8RZ3Nkvmhnr4Vbm48od3p28NpR1dzePPeUdRRO82guE9JzPHLzc+mqPpevdtuu1Wm3OaGN8yijdO4r4Npks3oSR90Vu1SgjIXEPavsbx/CBPFGMbctZHvAcrXc2xB3F5hMOqXrXypDdONFQhjUwbunV/84hdjjSPC3jK3VJWrqaIqhkduWdSu1SDqfhDNpzD6e4j3s2DgdZnZByGa7w/Rf8NYGWatNzk+h+u+kQLX5sFQD0J8z3J8F12uMOa9GMhH8bwlINB1YfAleMa6rj9zc4GQLnx/BAzCTI8hJa1n2lUN01z3IbPk6xD/5jvvvPMmuNrfK7ZNSEXVp59++mHcf+7zzz/v3mraHEZRtzcAA1O/voDK+CPq/TLAsjbvXNutlAGW8bTxUfNO0f7vmuhN6Q8p8SEM1Q999NFHZ/J4vVhmL8wCFmnGk8zu+yjVcN1oJo0HaOe1XPsnrrkW289+7uBBf42A0R4wkp0x3NBOoC/vBDgG8Z7XOLZ/se0DoJbi3zjsV515z7pGLiNFbIPkvAN9+QLAcSv2nuEtPUf1G+mqHvvZAnsL4Lk5dbGeNTx3IqrWWfz+lXvx0Va9ZVkcWUXaPbZiftI5bTzua5atr4tcVLFAOeyHad3hVCShU9yd+MILLxyGUXwfjNh62Op/+ctfjkeS/tz2j2/P8pUDoYVdcMneCyGsAHM+yCx4BzOjRF2rjemnP/3prqg0A2DC45wNI8o57TVvHFAdTDccEHkSEPqhKVNRFfTYbA0QbcXxQXhZllGEL0zpGi5cDdBJUjBH00gkrycArTWxG/yaWfGZG2+88XKuvQmRvmS7AIyxOuB6B/VeToaBAf6GtHcKEtQYpIXZZ555ZnfOb0Bb7jLboXUziTr9cClA+iOAyPigbGdTgOppU79Qlz7GMukhM/GZhXo/8MMf/vBg1NmPXn755a6oT0tweM5dd931X9qymAtYUXsORX36N4b0w1Unec5AgPEv9O/P8YgqGbYq/gUvWX9AdwnasRuq0fHUe7jpbVdbbbXzkEjeQT2bUMrzXOIEEF0GuK1l5s211157KM97zxS/gOhHjMNZubRotfA+pLH7mIg2QYLuhQRVz7hX6orXwF8QB2Zg6Ns///nPT0LlnYXEuTlq1zN4EDcHNE9or4n1i1C+UurYwix6kFDzVoYYNoURN4BZ/oOadQlAcC+q3lpIDitAXF0gKt31W2JHeRwiex8QcjeSJdytlllwOFLSckgdr+rdgZC0l75+6qmn3gx4rQYQLeu6LRcqKgVVpp1BKa7Sn4ca8zD3veQqfAj3I541FTvYwUbOIkG8h6fwb7hn3821omBXG48k0os6Lu7OI9R5ZQzmi+++++6vAxin45EyVeiyMO6glOTMfND30g9PUbeV3dEkEn8BTkubssN1UNhQZsBQxhT14/wU3Orb43UbZTAdalXtCy+8YLqJwwGr7wq8vF/Va29AbxVsRcNo65ucu0aJ7/e///1TpTKfO8jw/t6o50ujmg8G2C5CjXuD/nXH2e6oq5OQYE/j/11MAJ+W8mxFG5d+0Lbt6ZvpjiVq7SuoTJMZn1H03868eybv6VRXsNMvfWTK1VpVcuilzgwQ1OlBVPWLkDK/62STtn7qi8S2GjT0EHX7K5Pedt/97neHXXvttVPxKE7PfUVKGYSKLDDC7wGXwwCcTQACc+do5Kx3fRoE9Iy2C/daR6K41b3Ltt9++z/DmOsBOGN0abvY03QiLnzkdz2epQ8BrRt4zrfvvvvuS3QXAyqLo/e7Vi2CGbNthPPz8+aYCXIZpLBeEONyppaFuG9hJn4OKez92267Ld+W1dHaFJjRH9txxx0foK27uQjW9VYw0qTvfe97N1Ofj5CANgeEeqfgSlOVGp5wHP2wgcnlAjS1dQhUJpKHgUYDNtsCBv9BpfrroYce+lbDenL92TDj0i7QBLhv49rnAaPDYciegMZQgLY717wGOPUDSEqSVgDWJenvAeeee+6bl1566aa00Y0KXqS+P6IPa+nTcYDd1bT5aYC2KLshKv9KgKRpi6v+9re/7c547MT4/wswOxQD8sdIWYcArmehno2nb8xYuUwKKK0IDymAc6MGfqTBnhiy61FR/2ESPuhgQ853oC/qnIhcpwZIrcfxqdttt90o6G01PbC0pxI6+w4Ol9FIkzNzX+JSBqEiinmyMXJeCaE9jzp2JlLNzTDci+b2ZRbfHiKcg4ox7P777z+AGWslgGpDwGJ5CMy9nkyuvphbRAMyg1OmRN3vI2GGOUgKz8GsM7hvAwDobu5dRUOueXfSavs67Sp89IyZIH+2KVIh7IFKWlddddWDgISLPtslRJ8ZdhK2h39TB1OEdgNENoapRrkMxoWjAOe7/F/Jldxmb0RtM5LZJSpLmXYjIry1dxnPBNM8jiR1E7azD7CDZFvIYJit4h1dUINWo+27YJD+WYol0iB9B/aPh/FwPYfN4xn6fQ4M7+ryOag44x944IGSYmCox8VMHvtT13/olQPMdAyMR4LZxiyYpgLmmhcZi92QXoYDUqPjXqXfxgy+AP/yqG5r0La+gNye1Osk+uVD7EYv0RdLAS6HAhyDRBzOG8uUGaZTiEWGRCZfg0ZeOuWUU3aiXrcxlu6MoaF9PeraE6n3aGOjABrzO02kP8bQjmeZCDaFBm9A4rKeY3AujMl9yctXwkW/sIt5slEv3NroedUljI+74HW5FSZ5QRXDXEI33XTTUoCUGR5PhMD2QCJ6x+RautBh6PdhtidgMm1C5nGe4kJI/m9vQnz0fN2xu+O1udQ8ye6yYJGZYXJXiLuUwV0yjDO5Hc/YXly7F9LD6tikfoRn6UCAsk+uncr5558/jHp/35Xy1Ffj8vG8axgA+cPrr79+V+qYLWfRI2ZAJO3doG7+ltp5bUJ60TQwAyj/hbFGG61d+HyM0oNpxwqocuMBoB/ZJ/aToAuTnbHnnntehMT0LRi7/tvf/vZ+MPsA1b+jjz665FzlGLxN+7Ek0tUuAMcdgIxr4VwQ+yF1fMNrkEAOBpS2QJJ5mknhXmw5g7muNyCxOp6png2fiW1q2IknnngPHsgHsGVtA3Cbu+dabUQAqDlOpinBKvWaESEFrObD4GxfIYG5xm8t3nWa+bB49yXYq9xqa2ml4BdffPEE6jQAwLmW/vwTk8Gtu+66q6EAp9I3EzR8Q2NfqJQcrS1lECqyYHR05X0VOvrWgMc03dMw0zMQyG2mpYAh98Sm4yxmEGP/yy677ABA6HebbbbZjahk73NueWba2yFAU3SYi2ZlPG3bIwx05fhkgGcrAOmbvKpjJMuSoXmW+0fJ0O5yOxmx/SVsAs+hQjyI9HUCjPow0tYAt7DJtWO55pprnkFlORZmdFuiToDQ9TD0TgYq2mbjiwxQtF4AUZayIyVfy6e9tN5mlt/imWeeOcho7cJnw8DDkTJeMhUvz17HY9qSkKLeQ5p6FjDrDJj/2d1FmendS+7Nk046qSQ1zEL/GqKxI/VRItkFVen3vFMJ9TJU3mVg8tWNe0ISqmGMTPXSkcmiN1LbCUhffQCgk9OjPmNYdt2YE5Pf3Rwijg8dOnRVgGI/+mrrwuudTJBoxujxpG2ma5mXlhXVIB2bG3pfxvotpJ+loYc7kXp+qceNWzfl2H+RiEbp+HAph+sBc1+xUp0rlxYL9p0e2CauMR0sxPFfDm0MYQ9H3XgPonkKg/VVzPaXmSwfJnoHqaUfM717lX3gRAjzPsZMvjjG0XuRXF5lZj8Jo7aBhhsxIz+KbeERxPCLYYqtAK4HmQ13TKk5XG/1glHQEPYSXHcmNojbJeAkFbyRqvgbbAO59i54Ya4D5HZGXfiuGRWpw9WojOcCmn+nDQdr+3FZQmyTnPbLyqe906+CgWY093yAuS/PcPdTs2LOMZhTuxhg9CD9+1/ObbjFFltk6hd2sy4wY12xbumDDz64P316vF4md1XhHVsqsdF3HdJi0alcdh/Hf0y7OtPPT3FsbcDzHkDpedTb9w888MDzAJwpuSLLEUcc8RqGfLcVeprnDXv++ef3ox+6Cz7m3/a9pmC1PmmHkZlMbKM51hGJaDbS9ttIN2f96le/mkL93ajwPSReQedVn/9lW45RbCm76FsoEMMy7uQKs42D+WZjqP0BKsKDgNJaqEEn4dXqdsYZZ/wGADGGpSPXPOrOHBDZEsYAAVAv61IGNDLPCzPaQGbnE5j57mQG7IIIfp8BbYjdf+K0tpaRMMJOfASZsQZAwtQG/U3hmi1vueWW1xelexZQMV/OBUg+axisp1QGWNwKk21HvXq4+2qslVICcv0ctpFPAK8dAOY3mnv2zjvv/FNsYVcbm2T8DCD/sMs66OM9kIB+BNPx+KkvIQWNQyrp57o0VKrZSFEtRgWnNWFmbnyZcVlNZwFgs62MD9PXMjbjkd5+S5u6A0Q/Z5LYkHc/wTsP+clPfuKGgCVLlkio7h6yOBLt8tT5H7vsssteqMnXWR2en22X6i6q1GE6gPMgtHEpfTsL9XMc3rLRF198cb+jjjpqVO5rVsog1EJBbO8L8U/H6DwEVWxVGOsejIK/Yoadiwh/AzPmKIhnEFJRDV6fqzR2QmSf8FmPzyWI6xov3zWHczzzzjvvXA439fBCMGEGvJGZehMYcog2AYjWSMXbUAMnoG5N2mabbS6E+aabeKwwUnZRFBkaFeEX2Gt+h5TQ0Rw4Sj35lD9bb1nKcZ3tjQVTn28sS0vPRcq4mTbvroTgFk5IjX8xGRt9/lskyv+cc845+5i2Fq9YD471Rpr4UOMyKl6zwZiMTz/quBMTxFGA/UmolOcAOOeZFgRQ+LNGYZj+Zo6bhvZI7HuDGd9/uq03Y7n37bffPpvJZzYTRCUgtQI2sqea6hdsSD/F6zeRMZvHpHIMk9MPGevVAb1X8OqNNQtvpGlN9qA8Eu3T2JE2/yrF+rSllEGohWJEcaEYLOFB3N0xqqpq1AchaZTELbsMnqSeqEZPIhENveCCC079/e9/f6gpPTjn9rqfeU4hEV5xxRXr/Pa3v33CnDqqNq6bwv4zBe/bKAj6JCSAv3sPBsya1szS7VG+9a1vLYft6m68c6sY6WvktE1J+ZyzfeQ1yMKQB9De61p6HlLTMNq7ljmEAIvbUWf2u/HGG9enjTfR5kth6v3w/H2fa3pjF3qjWNWIZyyBAX1/1KJfIq1Nd+cQ+tPtkyaa75nS0WUo5hRXbTr99NMvYdwGAqRv7LXXXuORVr+FzWcYY3+MG1+6ut39+Bq+hwmhA2N9ApPMrlyn96oGMP0rhuu/m8v8oYce+iVq9y8i8DTtU1bvluN//vOft8JbqDT4lbPxlFrKINQOBc/YCrrr8ZD8SDEfKeYwGPRFDKunYgT9DlLMbS2J2Ztssonrz2YyS/dCZB9i+lbVHVQEt/l9gdn4O7irDQr8AfaDM3KfUznssMN2hXmOMjdPcqnnTTeq98okY+4eoWqDtPJ8c88xxw8qyxhVUResct9uqLd/8xz9th0SVR+kkB2RVA5CNSuaUQVqJCe3Hup/ww03dKX/f43Es5sexlh/x/+5LpaNDSSRkJ5GUrocSWiV++6771Qnh/33339JAGu7P/7xj9c09h6k0i5IPeui6m2/lFumTJkyjPsP53mvoTrujOds5csvv9xV+mtim1qNW9ypJVsFzyTyBmO9P+/dG5CayPe+SMZXoda/mvsalrJhuh0KovzW2ImeY/au4fvFJszC4HgeBH2EO5Yyo+tBuaq5Z2C0/tG///3vNWDe45ktP4KJXoRZJjBjfw+JaI+kgr3O7PtW7Pu+qIvS3rbbbrskqsxQVA7Xqu2nGmo+aAEpNmXEJtbsXnTHHnvsxgDDQCO/NWIDuvUA7YIczxih71cCpe1/B4CKCsRznSBubfd/X4H+Xw57zFyAZNi+++67pvvJI/X8BwBfDWDpbM5sbjEZXJWbEyAxdUINu2348OH1jIGxc/PwQun+vqap92288cbdcM9fBYAMpL3D6Y+DkZbuRIUcqdqFnectvJd38vxraMdBeBD30q5n5k8mnAtQ629wqygmnTVNX4I09WwuGaC/bqXsom+HAtGNUQ1jBtwTBj1shx122AibyDDUjYcQvWfDuM+09AxTyV544YX/wpN2GEx5HzYNlxT8XdE90jPss88+ezK7H4z9aPPc51A0sGPnuBZVtFamQ5U5mzbnIhG7gOJ3SqMxS+5cAdhuDmMuCWAclLZ39t6P+Xwm6E4VmD4pCoBcXHrPPfcYcb0W3sqV6bc8YH0MUswfYPr+HJ+Mp8nNGkfwfSxAWUcdRrk0AgnoVUD+PlSngYzhdltuuWUxr3QX17EbbrjhXhjuj1lzzTVvxc4z69xzz/24UOXGk2nWBJPHbUa/TEXaOZE2z7z33nvdxeafBrGqfnPvae5rJ/D++te/HnL44YcPyn2NSlkda6eCHWFpiOt8QMPUDL9mpsu8YahoS5ssv5hnqEpg5ByKdJ9HVJ+D8bIGaWMX7BNbYuf4wIBEZtTZSFy1xqrkPodiHbF5HAt43I79pBZ16RVc7b2NjsYmkhmnkQyOQ9K5oPA+XezYaQYiIXTHIzYale4WgGgzbSXccx8MuGOuDQUpp+txxx2386mnnnov0s86SDfHIZ31RNqZY+7sY4455me4zE1Q1ll1EilkT871d5dYJgz3S/sBdb6vNcbihva9KLjXt8TbeeXkyZNX4GcFdPE+dRmGKtsdVbMz3sCnzOmPGvcTVLSb8KBei/1wWVT5fscff/zfcuVSLlFaSgEaZbPNNjuKmfHpXBvKjjvuuCkM2Y0Z/X6e9fiuu+76zdwXqGAL6YYhd7Of//znK/sblePRFVZYIQ8o5lEz8ngDBdAnG96HlNcZJvshEseg3XbbbQva9joSVXYfNrMLcm0sSkN6Dv1O/3UCiL6NxPgP1KZbAbmPUeuW9ZxjiUS2BHW+GsCfi5p7O9ddf+SRRy6ba+cC4K49ePDgZ1G38tRBw30eSflFJqyjsYcdqHrrdUi4O1h/v6PidS+W3r4qpayOFVFeeumlnsVch4oyFKb6WVuICGnqSVzEHWHmWzHOnsT3NoFaexektA5vvPFGP5hmV9VC1Ih/4dnKo3KY4Mz80xqo1wNoOhTe16tXr36oRrMAnI95xntcPximzFz82M1eyLWx6DGM0AX3kkdtffiss87aGUA8EhC4ibodqDr4wAMPGBF9uLvmLrbYYu4t9zfqc+JFF130Qa6dC+pX1lYT/EfOIPNsY6je1lxJXJJJT0i5/wiPp96yr5vrvqyOtWMRfK677rqeqCuTc1/hAnNt/ctf/tIdYJ+/9tpr10OteRx7SqUJ6vWOOetj89j46quvfn7vvffeaeWVV34ZxlsT42sNM73bJW2E/egJI65d7gEguVFl0YnYSi2OC8CzASrkVngpL4LRr6d+z2HX+Qd2p5GleN9KLVtsscVhqIrn0cZOgHMtgP0XDn9AX+zIe0+47LLLHsl9zUt7SkJfe0BzBvuqAxAG3uWQhH6MWrXkoYceujw2jleZ4V9Btcq2gnZrGpjOraAzde2AAw54EEmgP3agHx588MFPaLjl+l11j2uY5tzb77tlx0IqSj+4vvfaeuut+yO99UNNM8D06LPPPvu288477+2FCUCWxx577BIksZMBuyvoq5H03b54yw5AIrJPtsKj1jf3NS/tBkLmzf266bLNlZtuuql36PlfleL4osKso/SC3eVw1KgrUVW/gbfpLlNxmIzNDfp002P4zTItwvB78BmCRHQQAJatvkcK2sH/ad+0u3NJLVkYRQM+dapEOvs3Etmp2IGOAHhGuj1ybhEV7GiXYwxfyvS/LvBFKhyIVNYT0Da27HdIld1yX+PSnqDhs8ph6F+TgkTxk1122eVlyitINZsMGzbsMdQx9+gyAZsSzrV4hh7Dw3cdoOXuIb985513bsEOtDLM96aueZO547r+7nPPPbdQt6nRYM0kWf952loAwz2wC51h9sxVVlnlBbxg6+OaVwWdhxdtn6FDh/439zUt7RmsWAagr0mBoVZ/+OGHf4uL+TTc2psCQPsZX+O2PmZUxADtXvJrYzs6HYDaA+Pvcril/wMIqYJtbTCfubdR3WYjFbXLVkzNlUW91q5hMTnalVde+TszPHbs2DH/yiuvrK8UiNq6zIYbbnj01xmALOWI6XIpqWBj6XLggQeeg0TzBkDyd7xdqzCTb41X7zE8Tmu6QaJ7aplr+5FHHtnmn//8558KbjfB189d0GkKkNmzZ9/74IMPfuVXja+77rqd6K8LkAi7jR079tt8NgKIqwHh11ZbbbWPb7vtttzXuZRBqFxKKt/4xjdmrbHGGj9Gvcmb3wdAWgL38mJIOm+hVq215pprZqvFUcncPfQzAXcwovl61tBd7UZ+qG7X5b4GxcjvZ5999k/XX3/9twDo9QDuc5555plvbrbZZmePHz/+a8+DZRAql5JKsqvMuPHGG3Mw006oX7+AkX6GMXoT03u4v9jGG29s7E9X1K8hXDsp7kVy2l2VTcP1CiusMAO39eO5r0lBWpyKBHj3dtttt/cdd9yxNn130VlnnfW1d89bysGK5dLqgip1Dzaeg3C5D0Yqes51Y0hF2XowpJ1qDNPbxrWoab2nTp26b9pc0Wv++dRTT32t0li49g7pbxWM9t/aa6+9vjYA3FIpg1C5tLooFeGifxebxqOoaBNNaGbmRUHIbZEApd0Lwja2dpOA8IqZvD33NSvHHHPMYPpoAoD8n5EjR66VK5eslNWxcmmXYr4eDK15d2c1NYf7kk2ZMmXNiy66aMjWW289Y/jw4cdqK3IJA2rbCEDqidzXrPz0pz8dBfh+D3vQIDx2X8u0HY2VMgiVS7sU7Duz0s6sZlysdN8xo6IfffTR7+AJ622iMw3Ses+49t6rrrrqS71hX2tKWh/mpwxABaWsjpVLuxTc7R/27t17rpIOQJNX7VLymTx58mnvv//+oXjK6tNWRq4m/0OuXMollTIIlUu7FMDFHWLnuoU1Kpl2n/qU3N39vJb84IMPKpWEOnbsOGaDDTZ4LVcu5ZJKGYTKpV2KmzqaTF7v18cff+w+9bnFFlvMXUhzffv2zdQ0XfOcf+y00077Su6fVS6tK2UQKpd2KaZMXXbZZevXWWedzBZkPJBJ5JGAspxBqmbaiTBKP5Arl3IpKGUQKpd2KS5e/eSTT+rdHlqJZ/z48Znk4xop1TBtRQMGDJi50kor3ZUrl3IpKGUQKpd2Ka+//roLUt0OukJJyP3fPS4Quc+8/wGid3HNf6XzLZVL6aXsoi+XdimuFUPl6mF6VzdDVBLiu5shqpplIITX7B/Yg+pz5VIuBaUMQuXSLqVHjx6r4wWrw+aje77C3UVdLY9xOpOEzK987733fu13Gy2X/y1ldaxc2qV07tx5HT6148aNW7D/mIZpjdIpPshYor1x3XfOlUu5FJQyCJVLu5SePXsOcenGuuuumzdhmaATmyKqilmQkjrlyqVcGpQyCJVLuxRUrhVcJY7xOb/MMsvU+V8QQjrK3PPYhdzkb5sRI0bMypVLuRSUMgiVS7uUDz74oL/bkBqU2L179zzg4ydTzUx+j53o9ClTpgzPlUu5NChlECqXdilTp04dhw2oDrWsDk9ZBZJRBkiTJmU5zSYMGTLk653DtFyaLGUQKpd2KUg9Y3XJu0Zs4sSJFXrIlIaSSvb6ww8/3O47nJbLV6OUXfTl0i5l0KBBM5GE5mDz6ebaMaShfMX84tqx+75uWxuXS/GlLAmVS7uU/v37j9MdP3LkyCq8YRV6yoycNnXHaqut9lCuXMqliVKWhMqlXcq8efMqAJwOuOEre/funfe368X4jH/88ce/8tv6lEvrS1kSKpd2KXjBVv300087GRcEEAlIesTyqmhIRbW5cimXJkoZhMqlzSWfz1fPnj17dQ3RKXFZtkxD1/wnn3xSN2DAgM91B9Ry+WKXMgiVS5vL008/PRD1q8e4ceOylfO65jVIz5w5U9tQJaBUprNyabKUiaNc2lyeffbZXkZIT5kyJTNGp7Su2ZINQKhm9dVXL9NZuTRZysRRLm0u48ePr3Wbn2nTplXHMg1X0JvCo0ePHpWDBw+uyJVLuTRRyiBULm0ugM+ATp061RstrSqmq97/fsw9vddee3XMlUu5NFHKIFQubS7vvPPOYnjCZn744YfVqmOmenWrZw3UZr9//fXXy4bpcmmylEGoXNpcpk+fvvqYMWO6TJ06tdr9xvSSLb744vmklj2/+eabl+OEyqXJUgahcmlTwQXfeckll9wOY3S9UpCq2OjRoyuRirLdNpCKns6VS7k0U8ogVC5tKrNnz+624oor9sEw3XHDDTesVxLSO4aNKFPH+P5urlzKpZlSBqFyaVPp06fPnIkTJ9Y+8cQTnQcMGJBPNqEss6JAhNF6Rq5cyqWZUgahcmlTAYRq33zzzbkpMDFL3aF7XnvQjBkzcgMHDiwnty+XZksZhMqlTeWaa66pXmGFFbQFVU6aNKlKSSjc9ALRSiut1DVXLuXSTCmDULm0qeCKr1xmmWXyAo/LNoySTp/8csstN3PnnXceliuXcmmmlEGoXNpUUMeq33rrrX4bb7zx6OHDh7tyPrMHmcpjzpw58zbddNPpuXIpl2ZKOZ9QubSp9OrVa96WW245Zvr06T0FH1fPaxPq169f/axZs9zrx4muHKxYLk2WsiRULm0qgwYNqhszZkztKqusogE6LwBZVl11VXdjreF/Va5cyqWZUgahcim2VDT2AWiqTeeKgXo5U7rGbqsaqVdfffUKvGaVBfcX/i/lveXyFS5lEPpilobM3tixRf1ptCAF1U+dOrV+8803n7bsssvOFYQs2ITqAaP63r17L577XwAq9b3t3Y4W21Uui66UbUJtKxJxvsHvhfWext4Z3z9XZnLBKkBUpzF69uzZmXdsiSWWmDtt2rROiy+++BAu+ST3+ZXCvmqsVOY+O4ZtfX55V5ESSxmEmi7FMnZFO11TyrsqGjm2sEoh0P0P4H388cddevTo0Q11bKD2IL1j/DZS2oT3cwCkLbnsyUaeWwqzVuRaz9wVzRwrBJBS39EUuLVmPL7WwPV1BaFCIiyVaCqKON8k0xZxb2vKwpaIGqoxCxjwvffeq6PM7d+//xyM0LV33XVX927dus0bOHDg3DfeeKMLYDQ21zwQlFqHYkq+yOdUNLintXUqFkQK6aKx57R071eyfBVBqFSmb09JpqKJ//G9taBUzH2NvXNhlQX9hlHa3EGz3V9s+PDhnZSGJk6cWOVOG66sx4Xfj8s0FC0KJmpJ9WrrPU2p3o1JVo21tzF6KPadLdWv4cT3pQGtLyMItecMujDONXe+FKBYGJJCU1Jaq6UogKYGAKrp27eva8XqASWN0uYYqlxttdWmv/LKKwNyrXOANFanUhmrNepVc+dbsh+1ZB9sCCgVTdyba/CcYurW3ARYeN0XrnyRQahYBin1XEsA0ZZnLKxzrbmu2GubUg9aItjs2VOmTOkIEHXAJV8xYcKEDgMGDKj95JNPal566aUuXoNaZsDiwpaEipUoWmpXKZJJa841B6rFnmtKwiqmXsWA3iIvXyQQag4E2goQxRxry7NKvbY1z2p4Pl/EO4uVcBpjgKbA6TMFb1h1p06djBWaJxi5B73SEK77qj59+tSvssoq0lhlM+9p9LkNzjdXFvY1pRxvDuiKPVb4nMaubQpI2hNgFilAfV4g1FZppFQAaev9xTyzrc9u7nix1xQLTu1Wxo8fX7P88stX4BHLv/32266k7xDLNwClilGjRvXMtQ+dtVWSaen+Up9bKqi0dF9FC9cV877mVLrmzjdWl4bHFlpZ1CBUikRSCghUFHldKeca+11KHYp9RqnHSrmmtecKS1Pif1bwfnWuoCAB1c2ZMyeLljaFh0GL2IUqMFIvtuaaa3bGNlRb8LzGmKK5Gb4Ym0hz50qRTpo611ogasvvlp7f8HtFC9dVNPG9qdKY9NXY+TaVhQ1CpTB1Mcxdyvdiwa0YkCoVrEoFs9ZeW8yz8rniAaeUkj1Taae2tjbPp0rPmEbpgqhpF7iugqTUHxAanVs4pa0A1Zpj7Qksrbm2LdcU8z1KRa75+pUiYTVZ2huEWiPplAImC+tYa76Xcq7Ye5q7r6VzxZwv9pqiy+TJkytQyTrOmjWrWhBSEjJg0WJiszfeeKMXLvz+/Byfa7/SGpWqNfe1NyC1Bgxaui5f4nVN3VvRxLmKJq5reE3DdxRd2guEilVb2vq/rdcW+6zWfC/md1PHWnO82GsWpjSUgZBeMbxkNSEB+b6OHTtWuHZMrxkSke9vz9X0xdo2WnNNqepbawCkuXPNgUtz5/PtfE1D4GmuX3JFnG+ytBWEmmOy5v5X5P6XmUsBpKZAoxgAKgVcigWfxo41vD5f5H3FnivlGQsLhNx7Xi9YJR6xOiSf6rTXWJZhkd+uqp/96aefmux+YaT0KBZoWmKOYgGnsXOlSkvFnGuNJNPYNU39LuZ/sdfG98borChAak91rCWwaO57cwDTEnjlcsUBVC7XOomnOXAp9lhTQNBacMq14vpCRmyKYEoGqpEjR9Y89NBD3VTHVMUs/jfJPUAkGNUCTK2VhBpTE0q9v7XXtOV4sffmS/jeEgg0/N/cscauaer65p7TksTYEvhnpS0gVKyk0vDT0nFLUzloKot4d3P/WzrW3PemjpUCIMUARW4RXdMepcKFqiNGjNAeVCX4aBeK3TZUz/CYuQ+9n4WRNqZUkCqcsVu6rtRz+SKuKxaECn+3FpzyrTzW1O/4VDRyXXNg1GJ/twaEipFE2vLJlfC9mP8tHWvue7HnmztezDNLuW9h3NOWZ//PUgaDFXXXu/MGn4719fVdc4sud1WxQNPwnvY639T7WwKlYgCp8Hu+yHPFgE7h9+YAqLlPYR0qmvjfaGkNCMVDmwOgygbfcw2OtQcYNfe/pWMNv7d0rpRjzR1v6VzhNfkir21436Iqhe9aQGBKQO68kR1EIkIammeuodyiXcRainRUeF1L4JUv8XhT17QEUMWAUOH31gBR4bn4Xd/I8eY+9c0cKxqISgWhphi3MQBq+L+pYxVNPKcU0CkGjHIlniv1WOG5fBPPLgVYKku8vqm6NFXa+uysADLZJCP4uKI+bYKYi00Q+T4Pe9G83GfHs9jSWB0bEnJD4m5pMmnqPS3d4zWVjVxfeL6ihXONHW/ud8NjxYBTKf8bfneiKASi5kAm2lRfcE8u99kJoCVQz0p7GKZbAqDKXPOA1NQnl/tfwi0GbFo61tjvUo4VczzfwvOKZY5S319KaSu4ZW3E/V6JyqU7XuDJm2c6eciyOCFKx86dO/fChT82V3ppj0khSr7E9zS8ryVwyzdzrvB8w2ONMWprJaP43dyx5qShANrGvjeUcAJ8CoG5Pte4hNwsGLUWhBqCReGxxgCospHjpQBQMeDT1PlcC/c0dX1bzrVEsKWUUiWoRVEW9LMR06m4w8acZ599tnPPnj3zSD+qZRW663v16tV/9OjR7+Y+39IUcxT+bum+XCPPKPa6xiS6pqTdliSihr+bOlespJTPNQ1KheBSKP3kGnyPaxr2aUWuBTBqL0moIahUNvNpTGJqDnyKAaCWQKVYiaIYRm+rFNPUtU0xRkOw/6KUrE5IQi7XqOjatWs9/6tjzViSgsw/7fqy3rkvXhsa9nkhk7WoQuSal4aau67hODd2vthjTf1u6XtTQFT4vfATYNPwnYXA0xgf53KLUB3LNVGZYoCovaWght9zRRxv7Fxrmaa97isF7BpjnkIiaOx7uxRAp0///v1r1l9//elPPPFEt1g/ls7lUMVySEWFO260Rylsb0Ujx6I0BSgtTV7t2kdNvKOx0rA9Td3TcBwb+51r5HdrQSjqUJ9rvMT7G4J5Lve/UtD/jEkpIFSslFDqpzLXOJDlGnzPNXJtY+/ONXG+uTp/2UtzzNOaPim6ADo1Ll4dN25c5z59+gg44Zpf4Cnr2LHjkrn2Lc1NSO01mbSmtPe7ipHIGl6Xz7Us/TT8XpH7X8ApVMUqc01LPU19mlXBCktb4oSaA4tSgagqfQKUcg2+53JfDbD4ypVqiirX8OHDq12qoWcsIqcFIdUyVLXBuXJpTVmYE2khEBXadULtmtfg2cXwcSnvXVBKAaF8rvkZN1fEuYbXdObTIVcuX9oCBtUINpMnT87WjIU65jGLIMTvpTBOd+eaably+aKUQl5uKpB0Dp9ZTdzX1DMLn1uUcbqUKNbWIF1L4uRsPtNz8xtqg41yE4ENbiuMRyiXL2hRHVP1cuNDf5vGQxDy4/GU2qP3wIEDy9LQF6c09HzNSx/5Tz6cmZvPl3OauLelZ5ckmbVWEmrsd8NrC783ZvSK34XxB02peg2PNQTPiib+F1PKal4bCiDUAQmnUjXMgv0nW7ahBKRUZOFczcSJE9fi62u5cimllDIBN2V0bngsnyvdMN2cMNDcM3K5heQda8raXcynYQXD6NXQup7LNe0BaViHhqWihd+tOd5eQPVVBLx1VcXCDuQ20BqjVcdCGtJWxPmdOX1z7ssv2bZn/fMt/C48XlHk9fkSvjcHToW2oqb4uVhtpal6ZKXU9AqNGalaOl6s0aqpDi7mf8NGNoXsuUauyzVxvKln5pt5Zkultfd93qUxBsgKqpaR0HOQehTlFeGrkHw6mEtI6Siip13E2qlTp3/NnDlzYgvPbPJdn0NpbLxLqV8pk3JzAJTLNU6PuRaeWUwdmgOWQkN1fYNj9UU+r8VS6szckqW8mCDFluKEmlKtGoJZY6pXU98b+93UNflc6dLTwr6uraWhJNmYhNludQFsug4aNGig36dMmZJ3WQcS0sjplBIe07B+URqaBHINzrUHgBWCTanPzLfhfL6Vx/IlfG8JqCwNJaDmgKjhpyGQNQaQnymtIbymJJ1i1421tH4s18L35v43/F7KucZ+t3SumP5rLXOXcl9LjNKc7a4l4P28S2N1bA04NPf8XIPnFfvs9gScYq8tBoCaA6JiQKgxqag5MGpKamrq+Z8prQWh+F/4vbnV8qUsXC0GgIoFocbON3e8lGPNHW/pXCnXtMc9rSmLCpzaE1CKfV97X98aMCpVwmn4uyUpp7lrmpKKWvrUN/O94e9c7rMSVcP6LChtZYKGoNES2BQDQLlcy2DUHPg0B1DNHW/qeblWHGvrubZc29L9jUkUC7O0BWCKkdTaAl7F3tsakGnuXFvBpql7WgKjpoAo38KxpoCouWMNn5nLtSMINbyvORBpjdTTHPA0BzTFAFMx55u7PtfM8dYATjH9XypYLUxgaetzS1V3Sn1ua56db+U1iwp4Cn/nmznW8FypANTS79Z8GqvX/5TWLmBtSOhNDUjD5f3FAFBzwFIsEOWauS6XKw2oSv3dEhC0BqyKfXZ739eadyyK0pb35NtwPvqwFEAp5rpSQKex86X8LwWMmjvXHOgUDUCWthBlc0zdnATTHNCUCjYt/W94fUvXNveMXAm/mzpW6rUtnYvz7QUwCxOkiilNMXmpz2iPa4s9116AU8z3ppi7pWvzJZ5r6Xt9Ce9o+P1/SluJrjmGag54crn2A5pigailY02BTrFg1BYgKgWwWnPNwry/8DnFAkCpQFMqKBWCcmuAJt/KYy1d01qJp7FriznXlv+lAFXh/6aONVnakwCb+l2xiP6Xeq615xt+L+Z8MSBTyJilAFpL59rznkVdWisZ5dtwvjVgU8rv1n5vCcBaA07FXJMv8b5cE7+bLO1NiMVIRo0daw+ppVTwaC8JqKVrizlfzH3FHC/1mrZcvzBLe4NOc9e0BnTiWCFAliIFlfq9qXOtORa/WytlNffcpo41WxYm4ZXCjF8UUCkFXIoBjcYknWKeU8o7GjufL/K6L1NpC9C0dL4UZmovKaiUc81dW4oE1R7PaOx3U8eKKouKEEtl2MLfxQJBa65r6Vwp95byzGLf19yxUs4Xe03hdcUAWXuVhlJFMde35lwx1+VbeWxRqnGtvba9ALKl4yWVz2M2LEXFqGjD77bc29jvYo+V0r6m7s+34jm5Ep9TeF2URQk8TZX2BKRirytsd2tn/dZKTq25pj3BrJj7mzrWLuXzJLhimKQ9gaAtYLEowKfYc6VcE9eVAi6lXt8epbUEXgoAtQRsTV3T0j3FHl+YElbDY22tVxwvZTJodfm8Z73mSqlqSXuAWSnHW6sitQV8Sh2vtgDKolTFWnNPqQzSXhLTwrqnuTa1F6g0VxY62DRVvsgg1LAUY6tYWAy+sO5tT4mn1GsXxXNKLW2RiCoaOVbMfW29pjXg0dpzbQWSRSbdlFK+TCDUUmlvFaYt5+Oa1qibbbmu1PeX+rzC0tyz8028f2ExQanP+zwkqGLa3R7SyhcSaJorXyUQaqw0xgCtubet1xUSxaJQjYptd1tVtXwjx/NFXNeW0p5M1lpVsL2ua0gTpdq4SrnnC1u+6iBUSmkrYLWGodsKToXPWdilvd6xMJmmPZizLfVrr7Z96YGllFIGobaVpmb+tjwvl2tfNaqUd7UHILZXKVXiaW/pqC3Pa6pPv1bgUmwpg9CiLc2pMYvq/flmjn/eBumKRo4VlkXJyC2pseXSTqXU3TbK5YtVGlPnGjMG55o41/D8F6HkC/431b5cI8eKsVOVpZFyKZdyKZdyKZdyKZdy+QKV/wfATnlPhnttcwAAAABJRU5ErkJggg==',\n KOE: 'data:image/png;base64,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'\n};\n\nclass BarBannerComponent {\n constructor() {\n // inputs\n this.banner = input.required();\n this.environment = input();\n this.closeDisabled = input();\n // outputs\n this.hide = output();\n // signals & computed signals\n this.visible = signal(true);\n this.imageSrc = computed(() => {\n if (!this.banner())\n return undefined;\n if (this.banner().heroImageSrc)\n return this.banner().heroImageSrc;\n else {\n switch (this.banner().heroImage) {\n case 'biet':\n return BAR_BANNER_IMAGE.BIET;\n case 'boom':\n return BAR_BANNER_IMAGE.BOOM;\n case 'koe':\n return BAR_BANNER_IMAGE.KOE;\n default:\n return undefined;\n }\n }\n });\n this.heroImageIsDefined = computed(() => {\n return this.banner() && ((this.banner().heroImage && this.banner().heroImage !== 'none') || this.banner().heroImageSrc != null);\n });\n effect(() => {\n // whenever the banner changes we need to set it back to visible\n if (this.banner())\n this.visible.set(true);\n }, { allowSignalWrites: true });\n }\n doHide() {\n this.visible.set(false);\n this.hide.emit();\n if (this.banner()?.onClose) {\n this.banner().onClose();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarBannerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarBannerComponent, isStandalone: true, selector: \"bar-banner\", inputs: { banner: { classPropertyName: \"banner\", publicName: \"banner\", isSignal: true, isRequired: true, transformFunction: null }, environment: { classPropertyName: \"environment\", publicName: \"environment\", isSignal: true, isRequired: false, transformFunction: null }, closeDisabled: { classPropertyName: \"closeDisabled\", publicName: \"closeDisabled\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hide: \"hide\" }, ngImport: i0, template: \"@if (visible()) {\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n @if (banner()?.content) {\\r\\n

\\r\\n }\\r\\n @if (banner()?.link) {\\r\\n \\r\\n }\\r\\n
\\r\\n @if (heroImageIsDefined()) {\\r\\n
\\r\\n \\r\\n
\\r\\n }\\r\\n
\\r\\n \\r\\n}\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i2.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"component\", type: BaasLinkComponent, selector: \"baas-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarBannerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-banner', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, MatIconModule, MatTooltipModule, BaasLinkComponent], template: \"@if (visible()) {\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n @if (banner()?.content) {\\r\\n

\\r\\n }\\r\\n @if (banner()?.link) {\\r\\n \\r\\n }\\r\\n
\\r\\n @if (heroImageIsDefined()) {\\r\\n
\\r\\n \\r\\n
\\r\\n }\\r\\n
\\r\\n \\r\\n}\\r\\n\" }]\n }], ctorParameters: () => [] });\n\nconst STORAGE_KEY_PREFIX = 'lvflanders.bar.ng.ui.';\n\nconst STATUS_TYPE_MAPPING = {\n BELANGRIJK: 'warning',\n OPGELOST: 'success',\n INFORMATIEF: 'info'\n};\n/** Represents a single melding */\nclass BarMeldingComponent {\n constructor() {\n this.#sanitizer = inject(DomSanitizer);\n this.melding = input.required();\n this.sanitizedMeldingContent = computed(() => {\n return this.melding()?.content ? this.#sanitizer.bypassSecurityTrustHtml(this.melding().content) : null;\n });\n this.iconClass = computed(() => {\n switch (this.melding()?.meldingType) {\n case BarMeldingType.Belangrijk:\n return 'fas fa-exclamation-triangle';\n case BarMeldingType.Informatief:\n return 'fas fa-info-circle';\n case BarMeldingType.Opgelost:\n return 'fas fa-check-circle';\n default:\n return null;\n }\n });\n this.title = computed(() => {\n switch (this.melding()?.meldingType) {\n case BarMeldingType.Belangrijk:\n return 'Belangrijk';\n case BarMeldingType.Informatief:\n return 'Informatief';\n case BarMeldingType.Opgelost:\n return 'Opgelost';\n default:\n return 'Melding';\n }\n });\n this.status = computed(() => {\n if (this.melding() && STATUS_TYPE_MAPPING[this.melding().meldingType]) {\n return `status-indicator--${STATUS_TYPE_MAPPING[this.melding().meldingType]}`;\n }\n return null;\n });\n }\n #sanitizer;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarMeldingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"18.2.13\", type: BarMeldingComponent, isStandalone: true, selector: \"bar-melding\", inputs: { melding: { classPropertyName: \"melding\", publicName: \"melding\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{ title() }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarMeldingComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-melding', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass], template: \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
{{ title() }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\" }]\n }] });\n\nconst READ_MELDINGEN_KEY = `${STORAGE_KEY_PREFIX}readMeldingen`;\n/** Represents a single opmerking */\nclass BarMeldingenComponent {\n constructor() {\n this.meldingen = input.required();\n this.initialized = signal(false);\n this.meldingenCollapsed = signal(false);\n this.readMeldingen = signal([]);\n this.unreadMeldingen = signal([]);\n this.toggleMessage = computed(() => {\n if (this.meldingenCollapsed()) {\n return 'Open meldingen';\n }\n else {\n return 'Sluit meldingen';\n }\n });\n this.toggleIconClass = computed(() => {\n if (this.meldingenCollapsed()) {\n return 'fas fa-chevron-right';\n }\n else {\n return 'fas fa-chevron-down';\n }\n });\n this.numberOfBelangrijk = computed(() => {\n return this.meldingen() ? this.meldingen().filter((_) => _.meldingType === BarMeldingType.Belangrijk).length : undefined;\n });\n this.numberOfOpgelost = computed(() => {\n return this.meldingen() ? this.meldingen().filter((_) => _.meldingType === BarMeldingType.Opgelost).length : undefined;\n });\n this.numberOfInformatief = computed(() => {\n return this.meldingen() ? this.meldingen().filter((_) => _.meldingType === BarMeldingType.Informatief).length : undefined;\n });\n effect(async () => {\n // Init readMeldingen\n const cachedMeldingen = await this.getCachedMeldingIds();\n //Remove stale meldingen and set readMeldingen\n const meldingenToKeep = [];\n cachedMeldingen.forEach((cachedMeldingId) => {\n const melding = this.meldingen().find((mld) => mld.id === cachedMeldingId);\n if (melding)\n meldingenToKeep.push(melding);\n });\n await this.saveMeldingenToKeep(meldingenToKeep);\n this.readMeldingen.set(meldingenToKeep);\n // Check if meldingen should be displayed\n this.unreadMeldingen.set(this.meldingen().filter((_) => !this.readMeldingen()\n .map((mld) => mld.id)\n .includes(_.id)));\n if (!this.unreadMeldingen.length)\n this.meldingenCollapsed.set(true);\n this.initialized.set(true);\n }, { allowSignalWrites: true });\n }\n toggleMeldingen() {\n if (this.meldingenCollapsed()) {\n this.openMeldingen();\n }\n else {\n this.closeMeldingen();\n }\n }\n async closeMeldingen() {\n this.meldingenCollapsed.set(true);\n // Mark current unreadMeldingen as Read\n this.readMeldingen.set([...this.readMeldingen(), ...this.unreadMeldingen()]);\n this.unreadMeldingen.set([]);\n await this.saveMeldingenToKeep(this.readMeldingen());\n }\n openMeldingen() {\n this.meldingenCollapsed.set(false);\n }\n // NOTE use indexed db cache storage again when localforage has been replaced because there was an issue with this system\n // see TFS task #314157\n getCachedMeldingIds() {\n let result;\n // Init readMeldingen\n const strCachedMeldingen = window.localStorage.getItem(READ_MELDINGEN_KEY);\n if (strCachedMeldingen) {\n result = JSON.parse(strCachedMeldingen);\n }\n else\n result = [];\n return Promise.resolve(result);\n }\n saveMeldingenToKeep(meldingenToKeep) {\n window.localStorage.setItem(READ_MELDINGEN_KEY, JSON.stringify(meldingenToKeep.map((_) => _.id)));\n return Promise.resolve();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarMeldingenComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarMeldingenComponent, isStandalone: true, selector: \"bar-meldingen\", inputs: { meldingen: { classPropertyName: \"meldingen\", publicName: \"meldingen\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"@if (initialized() && meldingen()?.length) {\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ toggleMessage() }}\\r\\n @if (meldingenCollapsed()) {\\r\\n \\r\\n {{ numberOfBelangrijk() }}\\r\\n {{ numberOfOpgelost() }}\\r\\n {{ numberOfInformatief() }}\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n @if (!meldingenCollapsed()) {\\r\\n
\\r\\n @for (melding of unreadMeldingen(); track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n  \\r\\n

Reeds gelezen

\\r\\n  \\r\\n
\\r\\n @for (melding of readMeldingen(); track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n }\\r\\n
\\r\\n}\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: BarMeldingComponent, selector: \"bar-melding\", inputs: [\"melding\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarMeldingenComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-meldingen', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, BarMeldingComponent], template: \"@if (initialized() && meldingen()?.length) {\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ toggleMessage() }}\\r\\n @if (meldingenCollapsed()) {\\r\\n \\r\\n {{ numberOfBelangrijk() }}\\r\\n {{ numberOfOpgelost() }}\\r\\n {{ numberOfInformatief() }}\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n @if (!meldingenCollapsed()) {\\r\\n
\\r\\n @for (melding of unreadMeldingen(); track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n  \\r\\n

Reeds gelezen

\\r\\n  \\r\\n
\\r\\n @for (melding of readMeldingen(); track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n }\\r\\n
\\r\\n}\\r\\n\" }]\n }], ctorParameters: () => [] });\n\nclass BaasMeerActiesComponent {\n constructor() {\n this.items = input.required();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasMeerActiesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"18.2.13\", type: BaasMeerActiesComponent, isStandalone: true, selector: \"baas-meer-acties\", inputs: { items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"\\r\\n\", dependencies: [{ kind: \"component\", type: BarMenuButtonComponent, selector: \"bar-menu-button\", inputs: [\"content\", \"disabled\", \"tooltip\", \"iconClass\", \"variant\", \"items\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasMeerActiesComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-meer-acties', standalone: true, imports: [BarMenuButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: \"\\r\\n\" }]\n }] });\n\nclass BaasLayoutMenuExternalLinksComponent {\n constructor() {\n this.items = input(undefined);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutMenuExternalLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BaasLayoutMenuExternalLinksComponent, isStandalone: true, selector: \"baas-layout-menu-external-links\", inputs: { items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"@if (items()) {\\r\\n @for (group of items(); track $index) {\\r\\n \\r\\n }\\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: BaasLinkComponent, selector: \"baas-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutMenuExternalLinksComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-layout-menu-external-links', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [BaasLinkComponent], template: \"@if (items()) {\\r\\n @for (group of items(); track $index) {\\r\\n \\r\\n }\\r\\n}\\r\\n\" }]\n }] });\n\nconst CLASS_SELECTED_ITEM$1 = 'bar-menu-link--selected';\nclass BaasLayoutMenuListComponent {\n #router;\n #sanitizer;\n #cdr;\n constructor() {\n this.#router = inject(Router);\n this.#sanitizer = inject(DomSanitizer);\n this.#cdr = inject(ChangeDetectorRef);\n this.menuLevel = input(0);\n this.path = input('');\n this.items = model(undefined);\n this.parentExpanded = input(true);\n this.enrichedItems = computed(() => this.#enrichItems(this.items()));\n this.menuState = model('default');\n this.#router.events.pipe(takeUntilDestroyed()).subscribe((event) => {\n if (event instanceof NavigationEnd)\n this.#cdr.detectChanges();\n });\n }\n async menuItemClicked(event, item, index) {\n if (!this.#checkDisabled(item)) {\n // auto close menu when in overlay modus and menu item has a link\n if (this.menuState() === 'overlay' && (item.routerCommands || item.routerUrl))\n this.menuState.set('closed');\n // if menu item has children, trigger expansion logic\n if (item.children && item.children.length)\n this.menuItemToggleClicked(event, index);\n if (item.action) {\n const actionResult = item.action();\n if (actionResult instanceof Promise)\n await actionResult;\n }\n if (item.routerUrl) {\n // when routerUrl is configured we want to use SPA navigation not href navigation\n event.preventDefault();\n const val = await this.#router.navigateByUrl(item.routerUrl);\n if (val)\n window.scrollTo(0, 0);\n }\n }\n else\n return false;\n }\n menuItemToggleClicked(event, index) {\n event.stopPropagation();\n const tempItem = Object.assign(this.items()[index]);\n if (!this.#checkDisabled(tempItem)) {\n tempItem.expanded = !tempItem.expanded;\n this.items.update((items) => items.map((mapItem, mapIndex) => {\n if (mapIndex === index)\n return Object.assign(mapItem, tempItem);\n return mapItem;\n }));\n }\n }\n defineHref(item) {\n if (item.href)\n return this.#sanitizer.bypassSecurityTrustUrl(item.href);\n if (item.routerUrl)\n return item.routerUrl;\n return null;\n }\n defineRouterCommands(item) {\n if (item.routerCommands)\n return item.routerCommands;\n return '/';\n }\n getPath(index) {\n return this.path().length ? `${this.path()}.${index}` : `${index}`;\n }\n getLinkClasses(item, index) {\n const menuLevelClasses = this.menuLevel() < 3 ? 'bar-menu-link--level-' + this.menuLevel() : 'bar-menu-link--level-deep';\n let activeItemClasses = '';\n let url = null;\n if (item.routerCommands) {\n const commands = item.routerCommands;\n url = this.#router.createUrlTree(commands);\n }\n else if (item.routerUrl) {\n url = this.#router.parseUrl(item.routerUrl);\n }\n if (url != null) {\n // pathMatch check wether or not to match full path isActive's \"exact\" property, default true\n // map UrlTree to string\n const serializedUrl = this.#router.serializeUrl(url);\n // remove queryparams and fragment as it is not needed for url check\n const currentUrl = this.#router.url.split('?')[0].split('#')[0];\n // when pathmatch is prefix we check if the menu item is part of the current url (the start of)\n const active = item.pathMatch && item.pathMatch === 'prefix' ? currentUrl.indexOf(serializedUrl) === 0 : serializedUrl === currentUrl;\n if (active)\n activeItemClasses = CLASS_SELECTED_ITEM$1;\n }\n // if the consumer marked the menu item as selected we mark it as selected\n if (item.selected === true)\n activeItemClasses = CLASS_SELECTED_ITEM$1;\n // if the consumer explicitly marked it as not selected, make sure it doesn't appear as selected (because of url match)\n else if (item.selected === false && activeItemClasses)\n activeItemClasses = undefined;\n const clickableClasses = item.href || item.routerCommands || item.routerUrl || item.action ? 'bar-menu-link--clickable' : '';\n let result = `${menuLevelClasses} ${activeItemClasses} ${clickableClasses}`;\n if (item.cssClass)\n result += ` ${item.cssClass}`;\n return result;\n }\n getTagClasses(tag) {\n const classes = [];\n if (tag.class)\n classes.push(tag.class);\n classes.push(`bar-menu-link_tag--${tag.type || 'no-type'}`);\n return classes;\n }\n hasLink(item) {\n return this.#checkDisabled(item) ? false : item.routerCommands != null || this.hasDefaultLink(item);\n }\n hasDefaultLink(item) {\n return item.href != null || item.routerUrl != null;\n }\n #checkDisabled(item) {\n return resolveSignalValue(item.disabled);\n }\n #enrichItems(menuItems) {\n if (!menuItems)\n return [];\n return menuItems.map((item) => {\n return {\n ...item,\n children: item.children ? this.#enrichItems(item.children) : [],\n disabled: computed(() => resolveSignalValue(item.disabled)),\n hidden: computed(() => resolveSignalValue(item.hidden))\n };\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutMenuListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BaasLayoutMenuListComponent, isStandalone: true, selector: \"baas-layout-menu-list\", inputs: { menuLevel: { classPropertyName: \"menuLevel\", publicName: \"menuLevel\", isSignal: true, isRequired: false, transformFunction: null }, path: { classPropertyName: \"path\", publicName: \"path\", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, parentExpanded: { classPropertyName: \"parentExpanded\", publicName: \"parentExpanded\", isSignal: true, isRequired: false, transformFunction: null }, menuState: { classPropertyName: \"menuState\", publicName: \"menuState\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { items: \"itemsChange\", menuState: \"menuStateChange\" }, ngImport: i0, template: \"
    0 ? 'bar-menu__sub-menu' : ''\\\">\\r\\n @for (item of enrichedItems(); track $index; let index = $index) {\\r\\n @if (item && !item.hidden()) {\\r\\n
  • \\r\\n \\r\\n @if (item.children && item.children.length) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n
  • \\r\\n }\\r\\n }\\r\\n
\\r\\n\", dependencies: [{ kind: \"component\", type: BaasLayoutMenuListComponent, selector: \"baas-layout-menu-list\", inputs: [\"menuLevel\", \"path\", \"items\", \"parentExpanded\", \"menuState\"], outputs: [\"itemsChange\", \"menuStateChange\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i1.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i2.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutMenuListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-layout-menu-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, NgTemplateOutlet, RouterModule, MatIconModule, MatTooltipModule], template: \"
    0 ? 'bar-menu__sub-menu' : ''\\\">\\r\\n @for (item of enrichedItems(); track $index; let index = $index) {\\r\\n @if (item && !item.hidden()) {\\r\\n
  • \\r\\n \\r\\n @if (item.children && item.children.length) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n
  • \\r\\n }\\r\\n }\\r\\n
\\r\\n\" }]\n }], ctorParameters: () => [] });\n\nclass BaasLayoutMenuOperationsComponent {\n constructor() {\n this._items = input(undefined, { alias: 'items' });\n this.items = computed(() => {\n const transformActions = (actions) => {\n return actions.map((a) => {\n a.variant = 'default';\n return a;\n });\n };\n return this._items() ? transformActions(this._items()) : [];\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutMenuOperationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BaasLayoutMenuOperationsComponent, isStandalone: true, selector: \"baas-layout-menu-operations\", inputs: { _items: { classPropertyName: \"_items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: \"bar-layout-menu-operations\" }, ngImport: i0, template: \"@for (item of items(); track $index) {\\r\\n \\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: BaasActionButtonComponent, selector: \"baas-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutMenuOperationsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-layout-menu-operations', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [BaasActionButtonComponent], host: { class: 'bar-layout-menu-operations' }, template: \"@for (item of items(); track $index) {\\r\\n \\r\\n}\\r\\n\" }]\n }] });\n\nclass BaasLayoutMenuStrikingActionsComponent {\n constructor() {\n this._items = input(undefined, { alias: 'items' });\n this.items = computed(() => {\n const transformActions = (actions) => {\n return actions.map((a) => {\n a.variant = 'stroked';\n return a;\n });\n };\n return this._items() ? transformActions(this._items()) : [];\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutMenuStrikingActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BaasLayoutMenuStrikingActionsComponent, isStandalone: true, selector: \"baas-layout-menu-striking-actions\", inputs: { _items: { classPropertyName: \"_items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: \"bar-layout-menu-striking-actions\" }, ngImport: i0, template: \"@for (item of items(); track $index) {\\r\\n \\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: BaasActionButtonComponent, selector: \"baas-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutMenuStrikingActionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-layout-menu-striking-actions', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [BaasActionButtonComponent], host: { class: 'bar-layout-menu-striking-actions' }, template: \"@for (item of items(); track $index) {\\r\\n \\r\\n}\\r\\n\" }]\n }] });\n\nclass BaasLayoutMenuComponent {\n #router;\n #layout;\n #state;\n #preventLayoutMenuItemsEffect;\n #stateMapping;\n constructor() {\n this.#router = inject(Router);\n this.internalLayout = inject(_BaasInternalLayoutService);\n this.#layout = inject(BaasLayoutService);\n this.#state = inject(BaasAppState, { optional: true });\n this.mobileFriendly = input(undefined);\n this.menuState = model(undefined);\n this.operations = input(undefined);\n this.strikingActions = input(undefined);\n this.externalLinkGroups = input(undefined);\n this.menuAction = input(undefined);\n this.menuItems = model([]);\n this.menuItemsAutoCollapse = input(undefined);\n this.mainAction = computed(() => this.#layout.mainAction() || this.internalLayout.mainAction());\n this.menuToggleMetaIcon = computed(() => this.#stateMapping[this.menuState() || 'default'].icon);\n this.menuToggleMetaText = computed(() => this.#stateMapping[this.menuState() || 'default'].text);\n this.smallDevice = this.internalLayout.smallDevice;\n this.#preventLayoutMenuItemsEffect = false;\n this.#stateMapping = {\n closed: {\n icon: 'fas fa-caret-right',\n text: 'Menu openen',\n action: () => {\n this.menuState.set('overlay');\n }\n },\n pinned: {\n icon: 'fas fa-caret-left',\n text: 'Menu sluiten',\n action: () => {\n this.menuState.set(this.mobileFriendly() ? 'overlay' : 'closed');\n }\n },\n overlay: {\n icon: 'fas fa-caret-right',\n text: 'Menu pinnen',\n action: () => {\n this.menuState.set('pinned');\n }\n },\n default: {\n icon: this.smallDevice() ? 'fas fa-caret-right' : 'fas fa-caret-left',\n text: this.smallDevice() ? 'Menu pinnen' : 'Menu sluiten',\n action: () => {\n this.smallDevice() ? this.menuState.set('pinned') : this.menuState.set(this.mobileFriendly() ? 'overlay' : 'closed');\n }\n }\n };\n this.#router.events.pipe(takeUntilDestroyed()).subscribe((event) => {\n if (event instanceof NavigationEnd && this.menuItemsAutoCollapse()) {\n // close inactive submenu's\n const collapsedMenus = this.#closeInactiveSubmenus(this.menuItems());\n // set new menu (only active tree is expanded)\n this.#setMenuItems(collapsedMenus);\n }\n });\n effect(() => {\n if (this.#preventLayoutMenuItemsEffect)\n this.#preventLayoutMenuItemsEffect = false;\n else if (this.menuItems() !== undefined)\n this.#setMenuItems(this.menuItems());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this.#layout.menuItems())\n this.#setMenuItems(this.#layout.menuItems(), false);\n }, { allowSignalWrites: true });\n }\n menuToggleClicked(event) {\n this.#stateMapping[this.menuState() || 'default'].action();\n }\n setMenuState(menuState) {\n this.menuState.set(menuState);\n }\n /** Sets the items expand property to true if a subItem is active, if not to false */\n #setExpandedStateForActiveItems(items) {\n return items.map((item) => {\n // only set expanded items for the current application\n if (!item.appCode || item.appCode === this.#state.toepassing.code) {\n // first check if expanded has been preconfigured, if so skip checking\n if (!item.expanded) {\n if (item.routerCommands) {\n const stringifiedRouterLink = item.routerCommands.join('/');\n let hasActiveSubChild;\n if (item.children && item.children.length)\n hasActiveSubChild = this.#hasSubItemWithActiveRouterLink(item.children);\n item.expanded = hasActiveSubChild || window.location.pathname.includes(stringifiedRouterLink);\n }\n else if (item.children && item.children.length) {\n item.expanded = this.#hasSubItemWithActiveRouterLink(item.children);\n }\n }\n // if expanded, continue checking the node's tree to expand further\n if (item.expanded && item.children && item.children.length)\n this.#setExpandedStateForActiveItems(item.children);\n }\n return item;\n });\n }\n /** Check if an item with children has an active routerLink\n * return true if a subChild is active (can be nested inifitely deep)\n * return false if no subChild is active\n **/\n #hasSubItemWithActiveRouterLink(items) {\n const itemHasActiveSubItem = items.find((subItem) => {\n if (subItem.routerCommands) {\n const stringifiedRouterLink = subItem.routerCommands.join('/');\n // when routerlink is in pathname always return true\n if (window.location.pathname.includes(stringifiedRouterLink))\n return window.location.pathname.includes(stringifiedRouterLink);\n }\n // no routerLink\n // or routerLink is not in the pathname\n // then continue checking the node's tree\n if (subItem.children && subItem.children.length)\n return this.#hasSubItemWithActiveRouterLink(subItem.children);\n return false;\n });\n return !!itemHasActiveSubItem;\n }\n /**\n * Auto mechanism to collapse inactiv expanded submenus\n * We set all the expanded properties to false\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\n */\n #closeInactiveSubmenus(menuItems) {\n if (!menuItems)\n return [];\n return menuItems.map((item) => {\n item.expanded = false;\n if (item.children && item.children.length)\n item.children = this.#closeInactiveSubmenus(item.children);\n return item;\n });\n }\n #getPath(path, index) {\n return path.length ? `${path}.${index}` : `${index}`;\n }\n #findMenuItemRecursive(menuItems, path) {\n for (let index = 0; index < menuItems.length; index++) {\n const menuItem = menuItems[index];\n if (menuItem.routerCommands) {\n const urlTree = this.#router.createUrlTree(menuItem.routerCommands);\n if (this.#router.isActive(urlTree, true)) {\n // active item found, set it expanded (does not mather if doens't have child items)\n menuItem.expanded = true;\n return menuItem;\n }\n }\n if (menuItem.children && menuItem.children.length) {\n const subMenuItem = this.#findMenuItemRecursive(menuItem.children, this.#getPath(path, index));\n if (subMenuItem)\n return subMenuItem;\n }\n }\n return null;\n }\n #setMenuItems(menuItems, trySetLayoutService = true) {\n if (menuItems?.length) {\n menuItems = this.#setExpandedStateForActiveItems(menuItems);\n this.#findMenuItemRecursive(menuItems, '');\n }\n else\n menuItems = [];\n this.menuItems.set(menuItems);\n if (this.#layout && trySetLayoutService) {\n this.#layout.menuItems.set(menuItems);\n // update the layout menu items again without triggering the effect (to avoid endless loop)\n this.#preventLayoutMenuItemsEffect = true;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BaasLayoutMenuComponent, isStandalone: true, selector: \"baas-layout-menu\", inputs: { mobileFriendly: { classPropertyName: \"mobileFriendly\", publicName: \"mobileFriendly\", isSignal: true, isRequired: false, transformFunction: null }, menuState: { classPropertyName: \"menuState\", publicName: \"menuState\", isSignal: true, isRequired: false, transformFunction: null }, operations: { classPropertyName: \"operations\", publicName: \"operations\", isSignal: true, isRequired: false, transformFunction: null }, strikingActions: { classPropertyName: \"strikingActions\", publicName: \"strikingActions\", isSignal: true, isRequired: false, transformFunction: null }, externalLinkGroups: { classPropertyName: \"externalLinkGroups\", publicName: \"externalLinkGroups\", isSignal: true, isRequired: false, transformFunction: null }, menuAction: { classPropertyName: \"menuAction\", publicName: \"menuAction\", isSignal: true, isRequired: false, transformFunction: null }, menuItems: { classPropertyName: \"menuItems\", publicName: \"menuItems\", isSignal: true, isRequired: false, transformFunction: null }, menuItemsAutoCollapse: { classPropertyName: \"menuItemsAutoCollapse\", publicName: \"menuItemsAutoCollapse\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuState: \"menuStateChange\", menuItems: \"menuItemsChange\" }, host: { classAttribute: \"bar-layout-menu-root\" }, ngImport: i0, template: \"
\\r\\n @if (menuState() === 'closed' && !mobileFriendly()) {\\r\\n \\r\\n }\\r\\n @if (menuState() !== 'closed') {\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n @if (mobileFriendly()) {\\r\\n \\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: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: BaasLayoutMenuOperationsComponent, selector: \"baas-layout-menu-operations\", inputs: [\"items\"] }, { kind: \"component\", type: BaasLayoutMenuExternalLinksComponent, selector: \"baas-layout-menu-external-links\", inputs: [\"items\"] }, { kind: \"component\", type: BaasLayoutMenuListComponent, selector: \"baas-layout-menu-list\", inputs: [\"menuLevel\", \"path\", \"items\", \"parentExpanded\", \"menuState\"], outputs: [\"itemsChange\", \"menuStateChange\"] }, { kind: \"component\", type: BaasLayoutMenuStrikingActionsComponent, selector: \"baas-layout-menu-striking-actions\", inputs: [\"items\"] }, { kind: \"component\", type: BaasActionButtonComponent, selector: \"baas-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-layout-menu', host: { class: 'bar-layout-menu-root' }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [\n NgClass,\n NgTemplateOutlet,\n BaasLayoutMenuOperationsComponent,\n BaasLayoutMenuExternalLinksComponent,\n BaasLayoutMenuListComponent,\n BaasLayoutMenuStrikingActionsComponent,\n BaasActionButtonComponent\n ], template: \"
\\r\\n @if (menuState() === 'closed' && !mobileFriendly()) {\\r\\n \\r\\n }\\r\\n @if (menuState() !== 'closed') {\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n @if (mobileFriendly()) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n }\\r\\n
\\r\\n\" }]\n }], ctorParameters: () => [] });\n\nclass BaasLayoutPageComponent {\n constructor() {\n this.internalLayout = inject(_BaasInternalLayoutService);\n this.#layout = inject(BaasLayoutService);\n this.#i18n = inject(BaasI18n);\n this.withRouting = input(undefined);\n this.menuState = model(undefined);\n this.mobileFriendly = input(undefined);\n this.sidebar = input(undefined);\n this.submitActions = input(undefined);\n this.moreActions = input(undefined);\n this.contentActions = input(undefined);\n this.operations = input(undefined);\n this.strikingActions = input(undefined);\n this.externalLinkGroups = input(undefined);\n this.appVersion = input(undefined);\n this.mainHeader = input(undefined);\n this.menuItems = input(undefined);\n this.menuItemsAutoCollapse = input(undefined);\n this.menuAction = computed(() => {\n const translationText = this.#i18n.get(this.menuState() !== 'closed' ? 'DOMAIN_BAR_LAYOUT.MENU.CLOSE_MENU' : 'DOMAIN_BAR_LAYOUT.MENU.OPEN');\n return {\n action: () => {\n this.menuState.set(this.menuState() !== 'closed' ? 'closed' : this.internalLayout.smallDevice() ? 'overlay' : 'pinned');\n },\n title: translationText,\n icon: {\n class: 'fas fa-bars',\n srText: translationText,\n iconOnly: true\n }\n };\n });\n this.internalContentActions = this.internalLayout.internalContentActions;\n this.mainAction = computed(() => this.#layout.mainAction() || this.internalLayout.mainAction());\n this.sidenavMode = computed(() => {\n /* Default info: window width < 1200px equals overlay mode, > 1200px equals pinned mode */\n const stateModeMapping = {\n closed: 'side',\n overlay: 'over',\n pinned: 'side',\n default: this.internalLayout.smallDevice() ? 'over' : 'side'\n };\n return this.menuState() ? stateModeMapping[this.menuState()] : stateModeMapping['default'];\n });\n /* based on the screen size we need to redefine the exact menu state (overlay or pinned) when in default mode */\n this.menuStateExact = computed(() => (this.menuState() === 'default' ? (this.internalLayout.smallDevice() ? 'overlay' : 'pinned') : this.menuState()));\n }\n #layout;\n #i18n;\n // Close menu when clicked (or pressed ESC) when backdrop is active (mode = 'over')\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n handleBackdropEvent(event) {\n this.menuState.set('closed');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BaasLayoutPageComponent, isStandalone: true, selector: \"baas-layout-page\", inputs: { withRouting: { classPropertyName: \"withRouting\", publicName: \"withRouting\", isSignal: true, isRequired: false, transformFunction: null }, menuState: { classPropertyName: \"menuState\", publicName: \"menuState\", isSignal: true, isRequired: false, transformFunction: null }, mobileFriendly: { classPropertyName: \"mobileFriendly\", publicName: \"mobileFriendly\", isSignal: true, isRequired: false, transformFunction: null }, sidebar: { classPropertyName: \"sidebar\", publicName: \"sidebar\", isSignal: true, isRequired: false, transformFunction: null }, submitActions: { classPropertyName: \"submitActions\", publicName: \"submitActions\", isSignal: true, isRequired: false, transformFunction: null }, moreActions: { classPropertyName: \"moreActions\", publicName: \"moreActions\", isSignal: true, isRequired: false, transformFunction: null }, contentActions: { classPropertyName: \"contentActions\", publicName: \"contentActions\", isSignal: true, isRequired: false, transformFunction: null }, operations: { classPropertyName: \"operations\", publicName: \"operations\", isSignal: true, isRequired: false, transformFunction: null }, strikingActions: { classPropertyName: \"strikingActions\", publicName: \"strikingActions\", isSignal: true, isRequired: false, transformFunction: null }, externalLinkGroups: { classPropertyName: \"externalLinkGroups\", publicName: \"externalLinkGroups\", isSignal: true, isRequired: false, transformFunction: null }, appVersion: { classPropertyName: \"appVersion\", publicName: \"appVersion\", isSignal: true, isRequired: false, transformFunction: null }, mainHeader: { classPropertyName: \"mainHeader\", publicName: \"mainHeader\", isSignal: true, isRequired: false, transformFunction: null }, menuItems: { classPropertyName: \"menuItems\", publicName: \"menuItems\", isSignal: true, isRequired: false, transformFunction: null }, menuItemsAutoCollapse: { classPropertyName: \"menuItemsAutoCollapse\", publicName: \"menuItemsAutoCollapse\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuState: \"menuStateChange\" }, host: { classAttribute: \"bar-layout-page-root\" }, 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 @if (mobileFriendly() && sidebar() && menuState() === 'closed') {\\r\\n \\r\\n }\\r\\n @if (!sidebar()) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n @for (item of submitActions(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @if (moreActions()?.length) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n @if (mainHeader()) {\\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 @if (withRouting()) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n @for (item of contentActions(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @for (item of internalContentActions(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n @if (!sidebar()) {\\r\\n \\r\\n \\r\\n }\\r\\n @if (appVersion()) {\\r\\n Versie: {{ appVersion() }}\\r\\n }\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n @for (item of submitActions(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @if (moreActions()?.length) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i1.RouterOutlet, selector: \"router-outlet\", inputs: [\"name\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }, { kind: \"ngmodule\", type: MatSidenavModule }, { kind: \"component\", type: i2$5.MatSidenav, selector: \"mat-sidenav\", inputs: [\"fixedInViewport\", \"fixedTopGap\", \"fixedBottomGap\"], exportAs: [\"matSidenav\"] }, { kind: \"component\", type: i2$5.MatSidenavContainer, selector: \"mat-sidenav-container\", exportAs: [\"matSidenavContainer\"] }, { kind: \"component\", type: i2$5.MatSidenavContent, selector: \"mat-sidenav-content\" }, { kind: \"component\", type: BaasLayoutMenuComponent, selector: \"baas-layout-menu\", inputs: [\"mobileFriendly\", \"menuState\", \"operations\", \"strikingActions\", \"externalLinkGroups\", \"menuAction\", \"menuItems\", \"menuItemsAutoCollapse\"], outputs: [\"menuStateChange\", \"menuItemsChange\"] }, { kind: \"component\", type: BaasActionButtonComponent, selector: \"baas-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"component\", type: BaasMeerActiesComponent, selector: \"baas-meer-acties\", inputs: [\"items\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutPageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-layout-page', host: { class: 'bar-layout-page-root' }, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, NgTemplateOutlet, RouterModule, MatSidenavModule, BaasLayoutMenuComponent, BaasActionButtonComponent, BaasMeerActiesComponent], 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 @if (mobileFriendly() && sidebar() && menuState() === 'closed') {\\r\\n \\r\\n }\\r\\n @if (!sidebar()) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n @for (item of submitActions(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @if (moreActions()?.length) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n @if (mainHeader()) {\\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 @if (withRouting()) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n @for (item of contentActions(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @for (item of internalContentActions(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n @if (!sidebar()) {\\r\\n \\r\\n \\r\\n }\\r\\n @if (appVersion()) {\\r\\n Versie: {{ appVersion() }}\\r\\n }\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n @for (item of submitActions(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @if (moreActions()?.length) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\" }]\n }] });\n\nclass BaasLayoutComponent {\n #layoutState;\n #layout;\n #coreState;\n #internalLayout;\n #core;\n #router;\n #cdr;\n #gvk;\n #destroyRef;\n #externalBanner;\n constructor() {\n this.#layoutState = inject(BAAS_LAYOUT_STATE);\n this.#layout = inject(BaasLayoutService);\n this.#coreState = inject(BaasCoreStateService, { optional: true });\n this.#internalLayout = inject(_BaasInternalLayoutService);\n this.#core = inject(BarCoreService);\n this.#router = inject(Router, { optional: true });\n this.#cdr = inject(ChangeDetectorRef);\n this.#gvk = inject(BarLayoutInternalGvkService);\n this.#destroyRef = inject(DestroyRef);\n this.touch = this.#layout.touch;\n this.compact = this.#layout.compact;\n this.mobileFriendly = this.#layout.mobileFriendly;\n this.appVersion = this.#layout.appVersion;\n /** Will sync the data with the BaasLayoutService if set to true. This means that if you set an input property it will automatically be synced towards the layout provider. */\n this.autosync = input(false);\n this.withRouting = input(false);\n this.box = input(true);\n this._title = input(undefined, { alias: 'title' });\n this.title = computed(() => {\n if (this._title() !== undefined)\n return this._title();\n return this.#layout.title();\n });\n this._subTitle = input(undefined, { alias: 'subTitle' });\n this.subTitle = computed(() => {\n if (this._subTitle() !== undefined)\n return this._subTitle();\n return this.#layout.subTitle();\n });\n this._sidebar = input(undefined, { alias: 'sidebar' });\n this.sidebar = computed(() => {\n if (this._sidebar() !== undefined)\n return this._sidebar();\n if (this.#layout.sidebar() !== undefined)\n return this.#layout.sidebar();\n return true;\n });\n this._submitActions = input(undefined, { alias: 'submitActions' });\n this.submitActions = computed(() => {\n if (this._submitActions() !== undefined)\n return this._submitActions();\n if (this.#layout.submitActions() !== undefined)\n return this.#layout.submitActions();\n return [];\n });\n this._moreActions = input(undefined, { alias: 'moreActions' });\n this.moreActions = computed(() => {\n if (this._moreActions() !== undefined)\n return this._moreActions();\n if (this.#layout.moreActions() !== undefined)\n return this.#layout.moreActions();\n return [];\n });\n this._contentActions = input(undefined, { alias: 'contentActions' });\n this.contentActions = computed(() => {\n if (this._contentActions() !== undefined)\n return this._contentActions();\n if (this.#layout.contentActions() !== undefined)\n return this.#layout.contentActions();\n return [];\n });\n this._mainHeader = input(undefined, { alias: 'mainHeader' });\n this.mainHeader = computed(() => {\n if (this._mainHeader())\n return this._mainHeader();\n if (this.#layout.mainHeader() !== undefined)\n return this.#layout.mainHeader();\n return this._mainHeader();\n });\n this._operations = input(undefined, { alias: 'operations' });\n this.operations = computed(() => {\n if (this._operations() !== undefined)\n return this._operations();\n if (this.#layout.operations() !== undefined)\n return this.#layout.operations();\n return [];\n });\n this._strikingActions = input(undefined, { alias: 'strikingActions' });\n this.strikingActions = computed(() => {\n if (this._strikingActions() !== undefined)\n return this._strikingActions();\n if (this.#layout.strikingActions() !== undefined)\n return this.#layout.strikingActions();\n return [];\n });\n this._externalLinkGroups = input(undefined, { alias: 'externalLinkGroups' });\n this.externalLinkGroups = computed(() => {\n if (this._externalLinkGroups() !== undefined)\n return this._externalLinkGroups();\n if (this.#layout.externalLinkGroups() !== undefined)\n return this.#layout.externalLinkGroups();\n return [];\n });\n this.menuItems = input(undefined);\n this._menuItemsAutoCollapse = input(undefined, { alias: 'menuItemsAutoCollapse' });\n this.menuItemsAutoCollapse = computed(() => {\n if (this._menuItemsAutoCollapse() !== undefined)\n return this._menuItemsAutoCollapse();\n if (this.#layout.menuItemsAutoCollapse() !== undefined)\n return this.#layout.menuItemsAutoCollapse();\n return false;\n });\n this.menuState = model('default');\n this._appMenuItems = input(undefined, { alias: 'appMenuItems' });\n this.appMenuItems = computed(() => {\n if (this._appMenuItems() !== undefined)\n return this._appMenuItems();\n if (this.#layout.appMenuItems() !== undefined)\n return this.#layout.appMenuItems();\n return [];\n });\n this.desktopAppMenuItems = computed(() => {\n return this.appMenuItems() ? this.appMenuItems().filter((ami) => !ami.hidden && (ami.mobile == null || ami.mobile === false)) : undefined;\n });\n this.mobileAppMenuItems = computed(() => {\n return this.#layout.appMenuItems()\n ? [...this.#layout.appMenuItems().filter((ami) => !ami.hidden && (ami.mobile == null || ami.mobile === true))]\n : undefined;\n });\n this.skipLink = signal({ main: null, menu: null });\n this.meldingen = computed(() => this.#coreState?.meldingen()?.filter((m) => m.meldingType != BarMeldingType.Banner) || []);\n this.mobileItems = computed(() => {\n if (!this.mobileAppMenuItems())\n return [];\n if (this.mobileAppMenuItems().length < 2) {\n return [];\n }\n else if (this.mobileAppMenuItems().length < 6) {\n return this.mobileAppMenuItems();\n }\n else {\n return [\n ...this.mobileAppMenuItems().slice(0, 4),\n {\n content: 'Meer',\n icon: { srText: 'Meer', position: 'top', class: 'fas fa-ellipsis-h' },\n action: (e) => this.menuOverlayOpen.set(true)\n }\n ];\n }\n });\n this.restOfMobileItems = computed(() => {\n return this.mobileAppMenuItems().slice(4);\n });\n this.menuOverlayOpen = signal(false);\n this._banner = input(undefined, { alias: 'banner' });\n this.#externalBanner = computed(() => {\n return this._banner() || this.#layout.banner();\n });\n // the external banner always gets priority over the internal banner\n this.banner = computed(() => this.#externalBanner() || this.#internalLayout.banner());\n this.#defineLayoutEffects();\n effect(() => {\n // TODO apparently first time there is no rerender in case this signal changes, investigate further\n if (this.banner() || this.meldingen())\n this.#cdr.detectChanges();\n });\n effect(() => {\n if (this.menuState())\n this.#internalLayout.setMenuState(this.menuState());\n });\n }\n ngOnInit() {\n this.env = this.#layoutState.environment;\n this.rootUrl = this.#layoutState.rootUrl;\n this.#gvk.barMenuStateChanged.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((barMenuState) => {\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\n // NOTE in this case we don't want menu state events to avoid cycles\n this.menuState.set(barMenuState);\n });\n this.skipLink.set({ main: `${location.pathname}#maincontent`, menu: `${location.pathname}#mainmenu` });\n if (this.#router) {\n this.#router.events.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((event) => {\n if (event instanceof NavigationEnd) {\n // initial only executed once\n // set up baselink, pathName is the url without origin and without hash, query,...\n this.skipLink.set({ main: `${location.pathname}#maincontent`, menu: `${location.pathname}#mainmenu` });\n // if Fragment is present, focus it (will scroll into view automatically)\n if (event.urlAfterRedirects.indexOf('#') > -1) {\n const fragment = event.urlAfterRedirects.substring(event.urlAfterRedirects.indexOf('#') + 1);\n const element = document.getElementById(fragment);\n // make sure tabindex (-1, 0) is present on the to be focussed element (otherwise it will not work);\n if (element)\n element.focus();\n }\n }\n });\n }\n }\n navigateHome() {\n // if not home url override (disconnected modus) we use the core functionality to navigate\n if (this.#layoutState.homeUrl == null) {\n this.#core.navigateHome();\n return false;\n }\n return true;\n }\n navigateRoot() {\n this.#core.navigateRoot();\n return false;\n }\n defineAppMenuLinkClass(item) {\n return item.selected ? 'menu-lv__item menu-lv__item active' : 'menu-lv__item';\n }\n exitCompact() {\n this.#layout.compact.set(false);\n }\n // NOTE here we need to keep the layout service nsync if autosync is enabled\n #defineLayoutEffects() {\n effect(() => {\n if (this._title() !== undefined && this.autosync())\n this.#layout.title.set(this._title());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._subTitle() !== undefined && this.autosync())\n this.#layout.subTitle.set(this._subTitle());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this.#layout.menuState() !== undefined) {\n this.menuState.set(this.#layout.menuState());\n }\n }, { allowSignalWrites: true });\n effect(() => {\n if (this.menuState() !== undefined && this.autosync()) {\n this.#layout.menuState.set(this.menuState());\n }\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._sidebar() !== undefined && this.autosync())\n this.#layout.sidebar.set(this._sidebar());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._submitActions() !== undefined && this.autosync())\n this.#layout.submitActions.set(this._submitActions());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._moreActions() !== undefined && this.autosync())\n this.#layout.moreActions.set(this._moreActions());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._contentActions() !== undefined && this.autosync())\n this.#layout.contentActions.set(this._contentActions());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._mainHeader() !== undefined && this.autosync())\n this.#layout.mainHeader.set(this._mainHeader());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._operations() !== undefined && this.autosync())\n this.#layout.operations.set(this._operations());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._strikingActions() !== undefined && this.autosync())\n this.#layout.strikingActions.set(this._strikingActions());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._externalLinkGroups() !== undefined && this.autosync())\n this.#layout.externalLinkGroups.set(this._externalLinkGroups());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._banner() !== undefined && this.autosync())\n this.#layout.banner.set(this._banner());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._appMenuItems() !== undefined && this.autosync())\n this.#layout.appMenuItems.set(this._appMenuItems());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._menuItemsAutoCollapse() !== undefined && this.autosync())\n this.#layout.menuItemsAutoCollapse.set(this._menuItemsAutoCollapse());\n }, { allowSignalWrites: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BaasLayoutComponent, isStandalone: true, selector: \"baas-layout\", inputs: { autosync: { classPropertyName: \"autosync\", publicName: \"autosync\", isSignal: true, isRequired: false, transformFunction: null }, withRouting: { classPropertyName: \"withRouting\", publicName: \"withRouting\", isSignal: true, isRequired: false, transformFunction: null }, box: { classPropertyName: \"box\", publicName: \"box\", isSignal: true, isRequired: false, transformFunction: null }, _title: { classPropertyName: \"_title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null }, _subTitle: { classPropertyName: \"_subTitle\", publicName: \"subTitle\", isSignal: true, isRequired: false, transformFunction: null }, _sidebar: { classPropertyName: \"_sidebar\", publicName: \"sidebar\", isSignal: true, isRequired: false, transformFunction: null }, _submitActions: { classPropertyName: \"_submitActions\", publicName: \"submitActions\", isSignal: true, isRequired: false, transformFunction: null }, _moreActions: { classPropertyName: \"_moreActions\", publicName: \"moreActions\", isSignal: true, isRequired: false, transformFunction: null }, _contentActions: { classPropertyName: \"_contentActions\", publicName: \"contentActions\", isSignal: true, isRequired: false, transformFunction: null }, _mainHeader: { classPropertyName: \"_mainHeader\", publicName: \"mainHeader\", isSignal: true, isRequired: false, transformFunction: null }, _operations: { classPropertyName: \"_operations\", publicName: \"operations\", isSignal: true, isRequired: false, transformFunction: null }, _strikingActions: { classPropertyName: \"_strikingActions\", publicName: \"strikingActions\", isSignal: true, isRequired: false, transformFunction: null }, _externalLinkGroups: { classPropertyName: \"_externalLinkGroups\", publicName: \"externalLinkGroups\", isSignal: true, isRequired: false, transformFunction: null }, menuItems: { classPropertyName: \"menuItems\", publicName: \"menuItems\", isSignal: true, isRequired: false, transformFunction: null }, _menuItemsAutoCollapse: { classPropertyName: \"_menuItemsAutoCollapse\", publicName: \"menuItemsAutoCollapse\", isSignal: true, isRequired: false, transformFunction: null }, menuState: { classPropertyName: \"menuState\", publicName: \"menuState\", isSignal: true, isRequired: false, transformFunction: null }, _appMenuItems: { classPropertyName: \"_appMenuItems\", publicName: \"appMenuItems\", isSignal: true, isRequired: false, transformFunction: null }, _banner: { classPropertyName: \"_banner\", publicName: \"banner\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuState: \"menuStateChange\" }, host: { classAttribute: \"bar-layout-root\" }, ngImport: i0, template: \"\\r\\n Naar hoofdinhoud\\r\\n @if (sidebar()) {\\r\\n Naar hoofdnavigatiemenu\\r\\n }\\r\\n
\\r\\n @if (banner()) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n \\r\\n {{ title() }}\\r\\n \\r\\n @if (subTitle()) {\\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 @if (desktopAppMenuItems() && desktopAppMenuItems().length) {\\r\\n
\\r\\n @for (item of desktopAppMenuItems(); track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n }\\r\\n
\\r\\n
\\r\\n @if (meldingen().length) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n @if (menuOverlayOpen()) {\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n @for (item of restOfMobileItems(); track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n }\\r\\n
\\r\\n @for (item of mobileItems(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: BaasLayoutPageComponent, selector: \"baas-layout-page\", inputs: [\"withRouting\", \"menuState\", \"mobileFriendly\", \"sidebar\", \"submitActions\", \"moreActions\", \"contentActions\", \"operations\", \"strikingActions\", \"externalLinkGroups\", \"appVersion\", \"mainHeader\", \"menuItems\", \"menuItemsAutoCollapse\"], outputs: [\"menuStateChange\"] }, { kind: \"component\", type: BaasLinkComponent, selector: \"baas-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }, { kind: \"pipe\", type: BarI18nPipe, name: \"i18n\" }, { kind: \"component\", type: BarMeldingenComponent, selector: \"bar-meldingen\", inputs: [\"meldingen\"] }, { kind: \"component\", type: BarBannerComponent, selector: \"bar-banner\", inputs: [\"banner\", \"environment\", \"closeDisabled\"], outputs: [\"hide\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasLayoutComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-layout', host: { class: 'bar-layout-root' }, changeDetection: ChangeDetectionStrategy.OnPush, imports: [RouterModule, NgClass, BaasLayoutPageComponent, BaasLinkComponent, BarI18nPipe, BarMeldingenComponent, BarBannerComponent], standalone: true, template: \"\\r\\n Naar hoofdinhoud\\r\\n @if (sidebar()) {\\r\\n Naar hoofdnavigatiemenu\\r\\n }\\r\\n
\\r\\n @if (banner()) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n \\r\\n {{ title() }}\\r\\n \\r\\n @if (subTitle()) {\\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 @if (desktopAppMenuItems() && desktopAppMenuItems().length) {\\r\\n
\\r\\n @for (item of desktopAppMenuItems(); track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n }\\r\\n
\\r\\n
\\r\\n @if (meldingen().length) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n @if (menuOverlayOpen()) {\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n @for (item of restOfMobileItems(); track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n }\\r\\n
\\r\\n @for (item of mobileItems(); track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\" }]\n }], ctorParameters: () => [] });\n\n/** Widget injected into burgerprofiel header in case impersonating (tech page). */\nclass BarImpersonationWidgetComponent {\n #auth = inject(BaasAuthService);\n #state = inject(BaasAppState);\n #coreState = inject(BarCoreService);\n #destroyRef = inject(DestroyRef);\n ngOnInit() {\n this.content = this.#state.basiscontext?.fullUsername;\n this.#coreState.basiscontextChanged.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((basiscontext) => {\n this.content = basiscontext?.fullUsername;\n });\n }\n logOff() {\n this.#auth.logOff();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarImpersonationWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"18.2.13\", type: BarImpersonationWidgetComponent, selector: \"ng-component\", ngImport: i0, template: \"\\r\\n
\\r\\n {{ content}}\\r\\n \\r\\n Uitloggen\\r\\n \\r\\n
\" }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarImpersonationWidgetComponent, decorators: [{\n type: Component,\n args: [{ template: \"\\r\\n
\\r\\n {{ content}}\\r\\n \\r\\n Uitloggen\\r\\n \\r\\n
\" }]\n }] });\n\n/** Internal class to centralize burgerprofiel widgets logic. */\nclass BarBurgerprofielEngine {\n #state = inject(BaasAppState, { optional: true });\n #auth = inject(BaasAuthService, { optional: true });\n #resolver = inject(ComponentFactoryResolver);\n #injector = inject(Injector);\n #window = inject(_BaasWindow);\n #sessionInterval = undefined;\n /** Whether the global header and footer are to be shown. */\n get visible() {\n return (\n // not for polaris\n this.#state &&\n // must be active in configuration\n (this.#config.headerFooterActive ||\n // or application code must be active in configuration\n (this.#config.headerFooterActiveAppCodes && this.#config.headerFooterActiveAppCodes.indexOf(this.#state.toepassing.code) > -1)));\n }\n get #vl() {\n return window['vl'];\n }\n get #config() {\n return this.#state?.config?.baasStatic?.burgerprofiel || { headerFooterActive: false };\n }\n /** Initializes the widgets if possible. */\n tryInitialize() {\n return new Observable((subscriber) => {\n const complete = () => {\n subscriber.next();\n subscriber.complete();\n };\n if (this.visible && this.#auth) {\n const doInit = () => {\n if (this.#vl) {\n // Capture any widget that is present or will be present on the webpage.\n this.#vl.widget.client.capture((widget) => {\n // Only process the widget if widget is a global header.\n if (widget.getPluginTypeId() === 'global_header') {\n // Get the Citizen Profile Session extension from the global header widget.\n widget.getExtension('citizen_profile.session').then(async (session) => {\n // setup session\n this.#configureSession(session);\n // try extend session automatically\n await this.#tryRegisterSessionExtend(session);\n // do some custom processing\n this.#customProcessing();\n });\n widget.on('citizen_profile.session.logout.request', async (logoutRequest) => {\n await this.tryPerformLogout(logoutRequest);\n });\n }\n });\n }\n complete();\n };\n if (this.#vl)\n doInit();\n else {\n let cdnScripts;\n if (this.#config.cdnScripts) {\n if (!this.#config.cdnRootUrl)\n cdnScripts = this.#config.cdnScripts;\n else {\n cdnScripts = this.#config.cdnScripts.map((cdnScript) => {\n if (checkUrlAbsolute(cdnScript))\n return cdnScript;\n return concatUrl(this.#config.cdnRootUrl, cdnScript);\n });\n }\n }\n else {\n cdnScripts = [\n 'https://prod.widgets.burgerprofiel.vlaanderen.be/api/v1/node_modules/@govflanders/vl-widget-polyfill/dist/index.js',\n 'https://prod.widgets.burgerprofiel.vlaanderen.be/api/v1/node_modules/@govflanders/vl-widget-client/dist/index.js'\n ];\n }\n let toInject = '';\n cdnScripts.forEach((cdnScript) => {\n const scriptTag = ``;\n toInject += scriptTag;\n });\n // load third party deps\n postscribe(document.body, toInject, {\n done: () => doInit()\n });\n }\n }\n else\n complete();\n });\n }\n /** Mounts the header if possible. */\n tryMountHeader(element) {\n if (this.#vl && this.#config.widgetRootUrl && this.#config.headerWidgetId) {\n let url = this.#config.widgetRootUrl;\n if (!url.endsWith('/'))\n url += '/';\n url += this.#config.headerWidgetId;\n this.#vl.widget.client\n .bootstrap(url)\n .then((widget) => {\n return (widget\n // Zoek het DOM-element met ID \"global-header\" welke we gaan\n // gebruiken om de widget aan de koppelen. Zodra men de widget\n // zijn \"mount\" gedrag triggered zal het DOM-element vervangen\n // worden maar niet verwijderd. Het \"umount\" gedrag zal het\n // originele DOM-element opnieuw herstellen.\n .setMountElement(element)\n // Geef instructie aan de widget instantie om \"mount\" gedrag\n // uit te voeren.\n .mount());\n })\n .catch(console.error.bind(console));\n }\n }\n /** Mounts the header if possible. */\n tryMountFooter(element) {\n if (this.#vl && this.#config.widgetRootUrl && this.#config.footerWidgetId) {\n let url = this.#config.widgetRootUrl;\n if (!url.endsWith('/'))\n url += '/';\n url += this.#config.footerWidgetId;\n this.#vl.widget.client\n .bootstrap(url)\n .then((widget) => {\n return (widget\n // Zoek het DOM-element met ID \"global-header\" welke we gaan\n // gebruiken om de widget aan de koppelen. Zodra men de widget\n // zijn \"mount\" gedrag triggered zal het DOM-element vervangen\n // worden maar niet verwijderd. Het \"umount\" gedrag zal het\n // originele DOM-element opnieuw herstellen.\n .setMountElement(element)\n // Geef instructie aan de widget instantie om \"mount\" gedrag\n // uit te voeren.\n .mount());\n })\n .catch(console.error.bind(console));\n }\n }\n async tryPerformLogout(logoutRequest) {\n // Acknowledge the logout request to prevent the session extension from performing default\n // action due to response timeout (5 seconds).\n logoutRequest.acknowledge();\n switch (logoutRequest.getRequest().getReason()) {\n // Logout was requested by the user. This request should never be rejected in normal\n // circumstances.\n case 'user': {\n if (this.#sessionInterval !== undefined) {\n window.clearInterval(this.#sessionInterval);\n this.#sessionInterval = undefined;\n }\n // Accept the request for website logout.\n logoutRequest.accept();\n if (this.#auth.logOff)\n this.#auth.logOff();\n break;\n }\n // Logout was requested as the citizen profile extension has detected inactivity from\n // the user.\n case 'inactivity':\n // Logout was requested because the citizen profile extension has detected an expired\n // session which prevents the user from accessing citizen profile without a step-up.\n // This could be the result of an application logout or external logout.\n case 'expired':\n default: {\n // Reject the request for website logout.\n // NOTE LV: we don't have the concept of an expired session or inactivity\n logoutRequest.reject();\n break;\n }\n }\n }\n async #tryRegisterSessionExtend(session) {\n /**\n * Event handler which extends a Citizen Profile session.\n */\n function activityEventHandler() {\n // Inform the Citizen Profile Session extension about activity.\n session.extend();\n }\n if (this.#config.useActivityTracking) {\n // NOTE this is the way according to burgerprofiel technical documentation\n // Build a list of event names which should be used for activity tracking.\n const eventNames = ['mousedown', 'mousemove', 'mousewheel', 'DOMMouseScroll', 'scroll', 'wheel', 'keydown', 'keypress', 'touchmove', 'touchstart'];\n // Iterate through the events names.\n for (const eventName of eventNames) {\n // Register our event handler given event name.\n window.addEventListener(eventName, activityEventHandler);\n }\n }\n else if (this.#config.sessionExtendTimeoutSeconds > 0) {\n // NOTE the LV way: just try to keep the session permanently alive\n // buiten angular om change detection te voorkomen door interval\n // elke 5 minuten de sessie verlengen\n this.#sessionInterval = await this.#window.setIntervalOutsideAngular(() => activityEventHandler(), this.#config.sessionExtendTimeoutSeconds * 1000);\n }\n }\n #configureSession(session) {\n // This variable is purely to indicate which values are allowed (true / false).\n const websiteHasAuthenticatedSession = this.#auth.authenticated;\n // Inform the session extension about the current session state of the website.\n session.configure({\n active: websiteHasAuthenticatedSession,\n endpoints: {\n loginUrl: this.#config.loginUrl,\n loginRedirectUrl: this.#config.loginRedirectUrl,\n logoutUrl: this.#config.logoutUrl\n }\n });\n }\n // NOTE temporary\n #customProcessing() {\n if (!this.#config.impersonationOverrideEnabled || !this.#state.basiscontext?.impersonate)\n return;\n // here we inject our own widget using the css of burgerprofiel\n const element = document.querySelector('.vlw__primary-bar__plugins__item.vlw__profile');\n if (element) {\n // Resolve the component factory\n const factory = this.#resolver.resolveComponentFactory(BarImpersonationWidgetComponent);\n // Create an instance of the component\n const componentRef = factory.create(this.#injector);\n element.innerHTML = '';\n // Attach the component to the container element\n element.appendChild(componentRef.location.nativeElement);\n // Trigger change detection to update the component\n componentRef.changeDetectorRef.detectChanges();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarBurgerprofielEngine, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarBurgerprofielEngine }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarBurgerprofielEngine, decorators: [{\n type: Injectable\n }] });\n\n// NOTE this will be used in disconnected modus (Polaris) or if config is missing\nconst DEFAULT_WIDGETS_CONFIG = {\n widgetUrl: '//widgets.vlaanderen.be/widget/live/{widgetId}',\n headerWidgetId: '1ebe22634f1d4cc2b4c5a05de8f78d0c',\n footerWidgetId: '6a87cf7f6e8d443187a349c7ccc0a794'\n};\nclass BarClassicWidgetsEngine {\n #state = inject(BaasAppState, { optional: true });\n get #config() {\n return this.#state?.config?.baasStatic?.classicWidgets || DEFAULT_WIDGETS_CONFIG;\n }\n tryMountHeader(element) {\n // only mount if online (avoid errors SPOT offline)\n if (navigator.onLine) {\n const url = this.#config.widgetUrl.replace('{widgetId}', this.#config.headerWidgetId);\n postscribe(element, ``);\n return true;\n }\n return false;\n }\n tryMountFooter(element) {\n // only mount if online (avoid errors SPOT offline)\n if (navigator.onLine) {\n const url = this.#config.widgetUrl.replace('{widgetId}', this.#config.footerWidgetId);\n postscribe(element, ``);\n return true;\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarClassicWidgetsEngine, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarClassicWidgetsEngine }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarClassicWidgetsEngine, decorators: [{\n type: Injectable\n }] });\n\nclass BarGlobalFooterComponent {\n #elRef = inject(ElementRef);\n #burgerprofielEngine = inject(BarBurgerprofielEngine);\n #classicWidgetsEngine = inject(BarClassicWidgetsEngine);\n ngOnInit() {\n // burgerprofiel header\n if (this.#burgerprofielEngine.visible)\n this.#burgerprofielEngine.tryMountFooter(this.#elRef.nativeElement);\n // classic header\n else\n this.#classicWidgetsEngine.tryMountFooter(this.#elRef.nativeElement);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarGlobalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"18.2.13\", type: BarGlobalFooterComponent, isStandalone: true, selector: \"bar-global-footer\", ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarGlobalFooterComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bar-global-footer',\n standalone: true,\n template: ''\n }]\n }] });\n\nclass BarGlobalHeaderComponent {\n #elRef = inject(ElementRef);\n #burgerprofielEngine = inject(BarBurgerprofielEngine);\n #classicWidgetsEngine = inject(BarClassicWidgetsEngine);\n ngOnInit() {\n // burgerprofiel header\n if (this.#burgerprofielEngine.visible)\n this.#burgerprofielEngine.tryMountHeader(this.#elRef.nativeElement);\n // classic header\n else\n this.#classicWidgetsEngine.tryMountHeader(this.#elRef.nativeElement);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarGlobalHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"18.2.13\", type: BarGlobalHeaderComponent, isStandalone: true, selector: \"bar-global-header\", ngImport: i0, template: '', isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarGlobalHeaderComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'bar-global-header',\n standalone: true,\n template: ''\n }]\n }] });\n\nvar BarLayoutSection;\n(function (BarLayoutSection) {\n BarLayoutSection[BarLayoutSection[\"Utilities\"] = 0] = \"Utilities\";\n BarLayoutSection[BarLayoutSection[\"MenuActionBarTopLeft\"] = 1] = \"MenuActionBarTopLeft\";\n BarLayoutSection[BarLayoutSection[\"MenuActionBarTopRight\"] = 2] = \"MenuActionBarTopRight\";\n BarLayoutSection[BarLayoutSection[\"ActionBarTopLeft\"] = 3] = \"ActionBarTopLeft\";\n BarLayoutSection[BarLayoutSection[\"ActionBarTopRight\"] = 4] = \"ActionBarTopRight\";\n BarLayoutSection[BarLayoutSection[\"MenuTop\"] = 5] = \"MenuTop\";\n BarLayoutSection[BarLayoutSection[\"ContentActionBarTopRight\"] = 6] = \"ContentActionBarTopRight\";\n BarLayoutSection[BarLayoutSection[\"ContentActionBarBottomRight\"] = 7] = \"ContentActionBarBottomRight\";\n BarLayoutSection[BarLayoutSection[\"MenuBottom\"] = 8] = \"MenuBottom\";\n BarLayoutSection[BarLayoutSection[\"MenuActionBarBottomLeft\"] = 9] = \"MenuActionBarBottomLeft\";\n BarLayoutSection[BarLayoutSection[\"MenuActionBarBottomRight\"] = 10] = \"MenuActionBarBottomRight\";\n BarLayoutSection[BarLayoutSection[\"ActionBarBottomLeft\"] = 11] = \"ActionBarBottomLeft\";\n BarLayoutSection[BarLayoutSection[\"ActionBarBottomRight\"] = 12] = \"ActionBarBottomRight\";\n BarLayoutSection[BarLayoutSection[\"GlobalHeaderRight\"] = 13] = \"GlobalHeaderRight\";\n})(BarLayoutSection || (BarLayoutSection = {}));\n\n// based on https://angular.io/guide/dynamic-component-loader\n/**\n * Anchor directive to inject components dynamically in the layout.\n */\nclass _BarLayoutAnchorDirective {\n constructor() {\n this.viewContainerRef = inject(ViewContainerRef);\n }\n // TODO [STEPET] input signals\n set barLayoutAnchor(name) {\n this.#defineSection(name);\n }\n #defineSection(name) {\n switch (name) {\n case 'utilities':\n this.section = BarLayoutSection.Utilities;\n break;\n case 'menu-action-bar-top-left':\n this.section = BarLayoutSection.MenuActionBarTopLeft;\n break;\n case 'menu-action-bar-top-right':\n this.section = BarLayoutSection.MenuActionBarTopRight;\n break;\n case 'action-bar-top-left':\n this.section = BarLayoutSection.ActionBarTopLeft;\n break;\n case 'action-bar-top-right':\n this.section = BarLayoutSection.ActionBarTopRight;\n break;\n case 'menu-top':\n this.section = BarLayoutSection.MenuTop;\n break;\n case 'content-action-bar-top-right':\n this.section = BarLayoutSection.ContentActionBarTopRight;\n break;\n case 'content-action-bar-bottom-right':\n this.section = BarLayoutSection.ContentActionBarBottomRight;\n break;\n case 'menu-bottom':\n this.section = BarLayoutSection.MenuBottom;\n break;\n case 'menu-action-bar-bottom-left':\n this.section = BarLayoutSection.MenuActionBarBottomLeft;\n break;\n case 'menu-action-bar-bottom-right':\n this.section = BarLayoutSection.MenuActionBarBottomRight;\n break;\n case 'action-bar-bottom-left':\n this.section = BarLayoutSection.ActionBarBottomLeft;\n break;\n case 'action-bar-bottom-right':\n this.section = BarLayoutSection.ActionBarBottomRight;\n break;\n case 'global-header-right':\n this.section = BarLayoutSection.GlobalHeaderRight;\n break;\n default:\n this.section = null;\n break;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BarLayoutAnchorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"18.2.13\", type: _BarLayoutAnchorDirective, isStandalone: true, selector: \"[barLayoutAnchor]\", inputs: { barLayoutAnchor: \"barLayoutAnchor\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BarLayoutAnchorDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[barLayoutAnchor]',\n standalone: true\n }]\n }], propDecorators: { barLayoutAnchor: [{\n type: Input\n }] } });\n\n/** Represents a device type. */\nvar BarDeviceType;\n(function (BarDeviceType) {\n /** Desktop. */\n BarDeviceType[BarDeviceType[\"Desktop\"] = 0] = \"Desktop\";\n /** Tablet. */\n BarDeviceType[BarDeviceType[\"Tablet\"] = 1] = \"Tablet\";\n /** Smartphone, GSM, handheld. */\n BarDeviceType[BarDeviceType[\"Mobile\"] = 2] = \"Mobile\";\n /** Unknown device type. */\n BarDeviceType[BarDeviceType[\"Unknown\"] = 3] = \"Unknown\";\n})(BarDeviceType || (BarDeviceType = {}));\n\nvar BarToastMessageType;\n(function (BarToastMessageType) {\n BarToastMessageType[\"Success\"] = \"success\";\n BarToastMessageType[\"Warning\"] = \"warning\";\n BarToastMessageType[\"Error\"] = \"error\";\n BarToastMessageType[\"Info\"] = \"info\";\n})(BarToastMessageType || (BarToastMessageType = {}));\n\n/** Internal BAR layout service NOT EXPOSED */\nclass _BarInternalLayoutService {\n constructor() {\n this.#injector = inject(Injector);\n this.#location = inject(Location);\n this.#translate = inject(BaasI18n);\n this.#gvk = inject(BarLayoutInternalGvkService);\n this.#layoutState = inject(BAAS_LAYOUT_STATE);\n /** @deprecated This indicates that the consumer is running in legacy modus. */\n this.legacyConsumer = false;\n this.injectSection = new EventEmitter();\n this.clearSection = new EventEmitter();\n /** internal banner used by meldingen, we use an internal banner otherwise we cannot define a custom banner\n because of the rxjs timing uncertainties we would always override the custom banner through the meldingen\n this way the external banner (BarLayoutService) always gets priority over this one */\n this.banner$$ = new BehaviorSubject(null);\n /** Internal content actions used for frameworking purposes. */\n this.#internalContentActions$$ = new BehaviorSubject([]);\n /** Whether the app loader processing is pending. */\n this.appLoadingPending$$ = new BehaviorSubject(true);\n /** Whether the first app loader appearance is still on. */\n this.firstAppLoading$$ = new BehaviorSubject(true);\n this.deviceType$$ = new BehaviorSubject(undefined);\n // pipeline of actions to be executed after current run\n this.#actionPipeline = [];\n }\n #injector;\n #location;\n #translate;\n #gvk;\n #layoutState;\n /** Internal content actions used for frameworking purposes. */\n #internalContentActions$$;\n get smallDevice() {\n return window.innerWidth < 1200;\n }\n get backAction() {\n return {\n action: () => {\n this.back();\n },\n title: this.#translate.get('DOMAIN_BAR_LAYOUT.BACK'),\n icon: {\n class: 'fas fa-arrow-left',\n srText: this.#translate.get('DOMAIN_BAR_LAYOUT.BACK'),\n iconOnly: true\n }\n };\n }\n // avoid IOC cyclic dependency error\n get #core() {\n return this.#injector.get(BarCoreService);\n }\n // actual delayed execution timeout\n #timeoutResult;\n // pipeline of actions to be executed after current run\n #actionPipeline;\n ngOnDestroy() {\n // complete all behavior subjects\n this.banner$$.complete();\n this.#internalContentActions$$.complete();\n this.appLoadingPending$$.complete();\n this.firstAppLoading$$.complete();\n this.deviceType$$.complete();\n this.injectSection.unsubscribe();\n this.clearSection.unsubscribe();\n }\n /** Queues an action to be executed in next ng iteration (in case dev mode). */\n queueAction(action) {\n if (isDevMode()) {\n this.#actionPipeline.push(action);\n if (!this.#timeoutResult) {\n // NOTE avoid value has changed after it was checked issues\n // one timeout to cause one change detection (group all layout actions together)\n this.#timeoutResult = window.setTimeout(() => {\n this.#actionPipeline.forEach((ac) => {\n ac();\n });\n this.#timeoutResult = undefined;\n this.#actionPipeline = [];\n });\n }\n }\n else {\n action();\n }\n }\n back() {\n this.#location.back();\n }\n setMenuState(state) {\n document.documentElement.setAttribute('data-bar-menu-state', state);\n // gvk will give us the menu state\n this.#gvk.persistMenuState(state);\n }\n /** Sets the internal content actions. */\n setInternalContentActions(internalContentActions) {\n this.#internalContentActions$$.next(internalContentActions);\n }\n init() {\n // this will define the icon button with the home icon\n this.internalMainAction = {\n title: this.#translate.get('DOMAIN_BAR_LAYOUT.MAINSCREEN'),\n icon: {\n class: 'fas fa-home',\n srText: this.#translate.get('DOMAIN_BAR_LAYOUT.MAINSCREEN'),\n iconOnly: true\n }\n };\n if (this.#layoutState.homeUrl != null) {\n // use provides an override for the layout module use this (which is href for now)\n this.internalMainAction.href = this.#layoutState.homeUrl;\n }\n else {\n this.internalMainAction.action = () => {\n // just use default core functionality if no override\n this.#core.navigateHome();\n };\n }\n this.internalContentActions$ = this.#internalContentActions$$.asObservable();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BarInternalLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BarInternalLayoutService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: _BarInternalLayoutService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass BarLayoutSectionInjection {\n}\n\n/** @deprecated Use BaasLayout with signals in conjunction with <baas-layout> with OnPush change detection. Public BAR layout service */\nclass BarLayoutService {\n #translate;\n #injector;\n #gvk;\n get menuAction() {\n const translationText = this.#translate.get(this.menuState$.getValue() !== 'closed' ? 'DOMAIN_BAR_LAYOUT.MENU.CLOSE_MENU' : 'DOMAIN_BAR_LAYOUT.MENU.OPEN');\n return {\n action: () => {\n this.menuState$.next(this.menuState$.getValue() !== 'closed' ? 'closed' : this.internalLayout.smallDevice ? 'overlay' : 'pinned');\n },\n title: translationText,\n icon: {\n class: 'fas fa-bars',\n srText: translationText,\n iconOnly: true\n }\n };\n }\n get internalLayout() {\n return this.#injector.get(_BarInternalLayoutService);\n }\n constructor() {\n this.#translate = inject(BaasI18n);\n this.#injector = inject(Injector);\n this.#gvk = inject(BarLayoutInternalGvkService);\n /** Whether the layout chrome should be hidden showing only the application content. */\n this.hidden$ = new BehaviorSubject(false);\n this.helpLink$ = new BehaviorSubject(null);\n this.title$ = new BehaviorSubject(null);\n this.subTitle$ = new BehaviorSubject(null);\n this.mainHeader$ = new BehaviorSubject(null);\n this.documentTitle$ = new BehaviorSubject(null);\n this.sidebar$ = new BehaviorSubject(true);\n this.banner$ = new BehaviorSubject(null);\n this.appMenuItems$ = new BehaviorSubject(null);\n this.menuItems$ = new BehaviorSubject([]);\n this.menuItemsAutoCollapse$ = new BehaviorSubject(false);\n this.externalLinkGroups$ = new BehaviorSubject(null);\n this.strikingActions$ = new BehaviorSubject(null);\n this.operations$ = new BehaviorSubject(null);\n this.submitActions$ = new BehaviorSubject(null);\n this.moreActions$ = new BehaviorSubject(null);\n this.contentActions$ = new BehaviorSubject(null);\n this.mainAction$ = new BehaviorSubject(null);\n /** Loading overlay visible or not. This is used when the app is loaded, but when something is loading (e.g. network, http call). */\n this.loading$ = new BehaviorSubject(false);\n this.loadingOptions$ = new BehaviorSubject(BarLoadingOptions.default);\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. */\n this.appLoading$ = new BehaviorSubject(true);\n /** Whether layout http interception is performed */\n this.interception$ = new BehaviorSubject(true);\n this.compact$ = new BehaviorSubject(false);\n this.touch$ = new BehaviorSubject(false);\n this.menuState$ = new BehaviorSubject('default');\n this.mobileFriendly$ = new BehaviorSubject(false);\n this.appVersion$ = new BehaviorSubject(null);\n this.preventMenuStateEvents = false;\n this.deviceType$ = this.internalLayout.deviceType$$.asObservable();\n }\n ngOnDestroy() {\n // complete all behavior subjects to ensure all subscribers close (avoid leaks)\n this.hidden$.complete();\n this.helpLink$.complete();\n this.title$.complete();\n this.subTitle$.complete();\n this.documentTitle$.complete();\n this.sidebar$.complete();\n this.banner$.complete();\n this.appMenuItems$.complete();\n this.menuItems$.complete();\n this.menuItemsAutoCollapse$.complete();\n this.externalLinkGroups$.complete();\n this.mainHeader$.complete();\n this.strikingActions$.complete();\n this.operations$.complete();\n this.submitActions$.complete();\n this.moreActions$.complete();\n this.contentActions$.complete();\n this.mainAction$.complete();\n this.loading$.complete();\n this.loadingOptions$.complete();\n this.appLoading$.complete();\n this.interception$.complete();\n this.compact$.complete();\n this.touch$.complete();\n this.menuState$.complete();\n this.mobileFriendly$.complete();\n this.appVersion$.complete();\n }\n init() {\n this.documentTitle$.subscribe((title) => {\n // only set document title when title is not null, a document title is always required\n if (title)\n document.title = title;\n });\n this.compact$.subscribe((compact) => {\n if (compact !== null)\n this.#gvk.persistPageState(compact ? 'compact' : 'default');\n });\n this.menuState$.subscribe((state) => {\n if (!this.preventMenuStateEvents) {\n this.internalLayout.setMenuState(state);\n }\n });\n this.#gvk.barMenuStateChanged.subscribe((barMenuState) => {\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\n // NOTE in this case we don't want menu state events to avoid cycles\n this.preventMenuStateEvents = true;\n this.menuState$.next(barMenuState);\n this.preventMenuStateEvents = false;\n });\n // hook to gvk internal compact changed because we don't want cyclic dependency\n this.#gvk.compactChanged.subscribe((compact) => {\n this.compact$.next(compact);\n });\n this.hidden$.subscribe((value) => {\n // in case hidden we need to hide the header and footer (embedded modus)\n // we hide the wrapper so that we hide the dynamic html\n const headerWrapper = document.getElementById('flanders-header-wrapper');\n if (headerWrapper)\n headerWrapper.style.display = value ? 'none' : 'block';\n const footerWrapper = document.getElementById('flanders-footer-wrapper');\n if (footerWrapper)\n footerWrapper.style.display = value ? 'none' : 'block';\n });\n // Subscribe contentActions for adding padding to the H1 so that the actions don't overlap with the H1\n combineLatest([this.contentActions$, this.mainHeader$]).subscribe(([contentActions, mainHeader]) => {\n const addPaddingToHeader = (padding) => {\n const mainWrapper = document.getElementsByClassName('bar-layout-page-content');\n if (mainWrapper && mainWrapper.length) {\n const pageHeader = mainWrapper[0].getElementsByTagName('h1');\n if (pageHeader && pageHeader.length)\n pageHeader[0].style.paddingRight = padding ? `${padding + 30}px` : '0';\n }\n };\n if (contentActions && contentActions.length && !mainHeader) {\n // Timeout of 0 required for rendering the DOM\n setTimeout(() => {\n const contentActionsTopElements = document.getElementsByClassName('bar-layout-page-content__actions--top');\n if (contentActionsTopElements.length) {\n const contentActionsWidth = contentActionsTopElements[0].getBoundingClientRect().width;\n addPaddingToHeader(contentActionsWidth);\n }\n }, 0);\n }\n else {\n addPaddingToHeader(0);\n }\n });\n }\n reset(options = {}) {\n // by default we enable the sidebar\n if (options.clearSidebar !== false) {\n this.sidebar$.next(true);\n }\n // clear out values which are specific to a page\n if (options.clearStrikingActions !== false) {\n this.strikingActions$.next(null);\n }\n if (options.clearOperations !== false) {\n this.operations$.next(null);\n }\n if (options.clearExternalLinks !== false) {\n this.externalLinkGroups$.next(null);\n }\n if (options.clearSubmitActions !== false) {\n this.submitActions$.next(null);\n }\n if (options.clearContentActions !== false) {\n this.contentActions$.next(null);\n }\n if (options.clearMoreActions !== false) {\n this.moreActions$.next(null);\n }\n if (options.clearTitle !== false) {\n this.title$.next(null);\n }\n if (options.clearSubTitle !== false) {\n this.subTitle$.next(null);\n }\n if (options.clearMenu !== false) {\n this.menuItems$.next(null);\n }\n if (options.clearAppMenu === true) {\n this.appMenuItems$.next(null);\n }\n if (options.clearBanner !== false) {\n this.banner$.next(null);\n }\n if (options.clearHelp !== false) {\n this.helpLink$.next(null);\n }\n if (options.clearInterception !== false) {\n this.interception$.next(true);\n }\n if (options.clearMainHeader !== false)\n this.mainHeader$.next(null);\n if (this.appLoading$.getValue())\n this.appLoading$.next(false);\n }\n /* Inject a component into a section of the layout dynamically and returns an observable with the component ref.\n * Use this component ref to pass additional data.\n * @param component Component to inject into the layout\n * @param section Section within the layout to inject the component into\n */\n injectSection(component, section) {\n const prepInjection = (component, section) => {\n const injection = new BarLayoutSectionInjection();\n injection.section = section;\n injection.component = component;\n this.internalLayout.injectSection.emit(injection);\n return injection.componentRef;\n };\n return new Observable((subscriber) => {\n const complete = () => {\n const result = prepInjection(component, section);\n subscriber.next(result);\n return subscriber.complete();\n };\n this.internalLayout.queueAction(() => complete());\n });\n }\n /**\n * Clears the given section\n * @param section Given section in the layout.\n */\n clearSection(section) {\n return new Observable((subscriber) => {\n const complete = () => {\n this.internalLayout.clearSection.emit(section);\n subscriber.next();\n subscriber.complete();\n };\n this.internalLayout.queueAction(() => {\n complete();\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [] });\n\nclass BarToastMessage {\n constructor(message) {\n this.id = message.id ? message.id : generateUuid();\n this.text = message.text;\n this.type = message.type ? message.type : BarToastMessageType.Warning;\n this.persistent =\n message.persistent === undefined ? false : message.persistent;\n this.component = message.component;\n this.componentParameters = message.componentParameters;\n if (!message.duration && message.text) {\n const textLength = Math.floor(message.text.length / 120);\n this.duration = 5000 + textLength * 1000;\n }\n else {\n this.duration =\n !message.duration ||\n (message.duration && message.duration < 5000)\n ? 5000\n : message.duration;\n }\n }\n}\n\n/**\n * Provides bar toast messages.\n */\nclass BarToastMessageService {\n constructor() {\n this._messages = signal([]);\n this.messages = this._messages.asReadonly();\n this.messageRemovalBucket = {};\n }\n addMessage(message) {\n const toastMessage = new BarToastMessage(message);\n const messages = this._messages();\n // prevent duplicate messages\n // requirement for duplicates: same text & age < 500ms (must have text prop set)\n let foundDuplicate = false;\n if (message.text) {\n const now = Date.now();\n foundDuplicate = Object.keys(this.messageRemovalBucket).find((key) => {\n if (this.messageRemovalBucket[key].message.text)\n return this.messageRemovalBucket[key].message.text === message.text && now - this.messageRemovalBucket[key].time < 500;\n else\n return false;\n });\n }\n if (!foundDuplicate) {\n this._messages.set(messages && messages.length ? [...messages, toastMessage] : [toastMessage]);\n if (!toastMessage.persistent) {\n this.messageRemovalBucket[toastMessage.id] = {\n timer: setTimeout(() => {\n this.removeMessage(toastMessage.id);\n }, toastMessage.duration),\n time: Date.now(),\n message: message\n };\n }\n }\n }\n removeMessage(id) {\n this._messages.update((messages) => messages.filter((m) => m.id !== id));\n if (this.messageRemovalBucket[id])\n this.deleteFromBucket(id);\n }\n removeMessages() {\n this._messages.set([]);\n Object.keys(this.messageRemovalBucket).forEach((id) => {\n this.deleteFromBucket(id);\n });\n }\n deleteFromBucket(id) {\n clearTimeout(this.messageRemovalBucket[id].timer);\n delete this.messageRemovalBucket[id];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarToastMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarToastMessageService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarToastMessageService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n\nclass BarViewContainerRefDirective {\n constructor() {\n this.viewContainerRef = inject(ViewContainerRef);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarViewContainerRefDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"18.2.13\", type: BarViewContainerRefDirective, isStandalone: true, selector: \"[barViewContainerRef]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarViewContainerRefDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[barViewContainerRef]',\n standalone: true\n }]\n }] });\n\nconst ICON_MAPPING = {\n success: 'fa-check',\n warning: 'fa-exclamation',\n error: 'fa-times',\n info: 'fa-info'\n};\nclass BarToastMessageComponent {\n constructor() {\n this.#toastService = inject(BarToastMessageService);\n this.barViewContainerRef = viewChild(BarViewContainerRefDirective);\n this.message = input.required();\n this.progress = signal(98);\n this.typeClass = computed(() => {\n return `bar-toast-message__item--${this.message().type}`;\n });\n this.typeIcon = computed(() => {\n return ICON_MAPPING[this.message().type];\n });\n this.progressBarId = computed(() => {\n return `progress-bar-${this.message().id}`;\n });\n }\n #toastService;\n ngOnInit() {\n if (this.message().component) {\n const viewContainerRef = this.barViewContainerRef().viewContainerRef;\n viewContainerRef.clear();\n const componentRef = viewContainerRef.createComponent(this.message().component);\n componentRef.instance.data = this.message().componentParameters;\n }\n }\n ngAfterViewInit() {\n this.setIntervalForMessage();\n }\n ngOnDestroy() {\n if (this.interval)\n clearInterval(this.interval);\n }\n removeMessage() {\n this.#toastService.removeMessage(this.message().id);\n }\n setIntervalForMessage() {\n if (!this.message().persistent) {\n const stepInterval = Math.floor(this.message().duration / 100);\n const progressFillElement = document.querySelector(`#${this.progressBarId()} .mdc-linear-progress__bar.mdc-linear-progress__primary-bar`);\n progressFillElement.style.transitionDuration = `${stepInterval}ms`;\n progressFillElement.style.transitionTimingFunction = 'linear';\n this.interval = setInterval(() => {\n this.progress.update((progress) => progress - 1);\n if (this.progress() <= 0)\n clearInterval(this.interval);\n }, stepInterval);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarToastMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarToastMessageComponent, isStandalone: true, selector: \"bar-toast-message\", inputs: { message: { classPropertyName: \"message\", publicName: \"message\", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: \"barViewContainerRef\", first: true, predicate: BarViewContainerRefDirective, descendants: true, isSignal: true }], ngImport: i0, template: \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n @if (message().text) {\\r\\n \\r\\n
\\r\\n
\\r\\n }\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n @if (!message().persistent) {\\r\\n \\r\\n }\\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: MatProgressBarModule }, { kind: \"component\", type: i1$6.MatProgressBar, selector: \"mat-progress-bar\", inputs: [\"color\", \"value\", \"bufferValue\", \"mode\"], outputs: [\"animationEnd\"], exportAs: [\"matProgressBar\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"directive\", type: BarViewContainerRefDirective, selector: \"[barViewContainerRef]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarToastMessageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-toast-message', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, MatProgressBarModule, MatIconModule, BarViewContainerRefDirective], template: \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n @if (message().text) {\\r\\n \\r\\n
\\r\\n
\\r\\n }\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n @if (!message().persistent) {\\r\\n \\r\\n }\\r\\n
\\r\\n\" }]\n }] });\n\nclass BarToastMessagesComponent {\n #element;\n #toastService;\n constructor() {\n this.#element = inject(ElementRef);\n this.#toastService = inject(BarToastMessageService);\n this.messages = this.#toastService.messages;\n this.parentElement = this.#element.nativeElement.parentElement;\n }\n onFullscreenChange(e) {\n if (document.fullscreenElement) {\n document.fullscreenElement.appendChild(this.#element.nativeElement);\n }\n else {\n this.parentElement.appendChild(this.#element.nativeElement);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarToastMessagesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarToastMessagesComponent, isStandalone: true, selector: \"bar-toast-messages\", host: { listeners: { \"document:fullscreenchange\": \"onFullscreenChange($event)\" } }, ngImport: i0, template: \"@if (messages()) {\\r\\n
\\r\\n @for (message of messages(); track message.id) {\\r\\n \\r\\n }\\r\\n
\\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: BarToastMessageComponent, selector: \"bar-toast-message\", inputs: [\"message\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarToastMessagesComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-toast-messages', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, BarToastMessageComponent], template: \"@if (messages()) {\\r\\n
\\r\\n @for (message of messages(); track message.id) {\\r\\n \\r\\n }\\r\\n
\\r\\n}\\r\\n\" }]\n }], ctorParameters: () => [], propDecorators: { onFullscreenChange: [{\n type: HostListener,\n args: ['document:fullscreenchange', ['$event']]\n }] } });\n\nclass BarMeerActiesComponent {\n #router;\n constructor() {\n this.controlsHelper = inject(BarControlsHelper);\n this.#router = inject(Router);\n this.moreActionsButton = {\n title: 'Meer acties',\n icon: {\n class: 'fas fa-ellipsis-h',\n srText: 'Meer acties',\n iconOnly: true\n }\n };\n }\n menuItemClicked(event, item) {\n if (item.action)\n item.action();\n if (item.routerLink)\n this.#router.navigate(resolveValue(item.routerLink));\n if (item.routerUrl)\n this.#router.navigateByUrl(resolveValue(item.routerUrl));\n if (item.href)\n window.open(resolveValue(item.href), resolveValue(item.target));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarMeerActiesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarMeerActiesComponent, isStandalone: true, selector: \"bar-meer-acties\", inputs: { top: \"top\", items: \"items\" }, ngImport: i0, template: \"\\r\\n@if (top) {\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n}\\r\\n\\r\\n@if (!top) {\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n}\\r\\n\\r\\n\\r\\n @for (item of items; track $index) {\\r\\n @if (!controlsHelper.resolveValue(item.hidden)) {\\r\\n \\r\\n @if (item.icon && (!item.icon.position || (item.icon.position && item.icon.position === 'left'))) {\\r\\n \\r\\n }\\r\\n @if (item.content && ((item.icon && !item.icon.iconOnly) || !item.icon)) {\\r\\n \\r\\n {{ controlsHelper.resolveValue$(item.content) | async }}\\r\\n \\r\\n }\\r\\n @if (item.icon && item.icon.position && item.icon.position === 'right') {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n }\\r\\n\\r\\n\", dependencies: [{ kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"component\", type: i1$2.MatMenu, selector: \"mat-menu\", inputs: [\"backdropClass\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"xPosition\", \"yPosition\", \"overlapTrigger\", \"hasBackdrop\", \"class\", \"classList\"], outputs: [\"closed\", \"close\"], exportAs: [\"matMenu\"] }, { kind: \"component\", type: i1$2.MatMenuItem, selector: \"[mat-menu-item]\", inputs: [\"role\", \"disabled\", \"disableRipple\"], exportAs: [\"matMenuItem\"] }, { kind: \"directive\", type: i1$2.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", inputs: [\"mat-menu-trigger-for\", \"matMenuTriggerFor\", \"matMenuTriggerData\", \"matMenuTriggerRestoreFocus\"], outputs: [\"menuOpened\", \"onMenuOpen\", \"menuClosed\", \"onMenuClose\"], exportAs: [\"matMenuTrigger\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i2.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarMeerActiesComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-meer-acties', standalone: true, imports: [AsyncPipe, NgClass, MatButtonModule, MatMenuModule, MatTooltipModule, NgTemplateOutlet, BarActionButtonComponent], template: \"\\r\\n@if (top) {\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n}\\r\\n\\r\\n@if (!top) {\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n}\\r\\n\\r\\n\\r\\n @for (item of items; track $index) {\\r\\n @if (!controlsHelper.resolveValue(item.hidden)) {\\r\\n \\r\\n @if (item.icon && (!item.icon.position || (item.icon.position && item.icon.position === 'left'))) {\\r\\n \\r\\n }\\r\\n @if (item.content && ((item.icon && !item.icon.iconOnly) || !item.icon)) {\\r\\n \\r\\n {{ controlsHelper.resolveValue$(item.content) | async }}\\r\\n \\r\\n }\\r\\n @if (item.icon && item.icon.position && item.icon.position === 'right') {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n }\\r\\n\\r\\n\" }]\n }], ctorParameters: () => [], propDecorators: { top: [{\n type: Input\n }], items: [{\n type: Input\n }] } });\n\nclass BarLayoutMenuExternalLinksComponent {\n constructor() {\n this.layout = inject(BarLayoutService);\n }\n isExternal(link) {\n return link?.target === '_blank';\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMenuExternalLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarLayoutMenuExternalLinksComponent, isStandalone: true, selector: \"bar-layout-menu-external-links\", ngImport: i0, template: \"@for (group of layout.externalLinkGroups$ | async; track $index) {\\r\\n \\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: BaasLinkComponent, selector: \"baas-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMenuExternalLinksComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-layout-menu-external-links', standalone: true, imports: [BaasLinkComponent, AsyncPipe], template: \"@for (group of layout.externalLinkGroups$ | async; track $index) {\\r\\n \\r\\n}\\r\\n\" }]\n }] });\n\nconst CLASS_SELECTED_ITEM = 'bar-menu-link--selected';\nclass BarLayoutMenuListComponent {\n constructor() {\n this.controlsHelper = inject(BarControlsHelper);\n this.#router = inject(Router);\n this.#sanitizer = inject(DomSanitizer);\n this.#layout = inject(BarLayoutService);\n this.menuLevel = 0;\n this.path = '';\n this.items = [];\n this.parentExpanded = true;\n }\n #router;\n #sanitizer;\n #layout;\n menuItemClicked(event, item, index) {\n if (!this.getItemProp(item, 'disabled')) {\n // auto close menu when in overlay modus and menu item has a link\n if (this.#layout.menuState$.getValue() === 'overlay' && (item.routerLink || item.routerUrl))\n this.#layout.menuState$.next('closed');\n // if menu item has children, trigger expansion logic\n if (item.children && item.children.length)\n this.menuItemToggleClicked(event, index);\n if (item.action)\n item.action();\n if (item.routerUrl) {\n // when routerUrl is configured we want to use SPA navigation not href navigation\n event.preventDefault();\n this.#router.navigateByUrl(resolveValue(item.routerUrl)).then((val) => {\n if (val)\n window.scrollTo(0, 0);\n });\n }\n }\n else\n return false;\n }\n menuItemToggleClicked(event, index) {\n event.stopPropagation();\n const tempItem = Object.assign(this.items[index]);\n if (!tempItem.disabled || !resolveValue(tempItem.disabled)) {\n tempItem.expanded = !tempItem.expanded;\n this.items = this.items.map((mapItem, mapIndex) => {\n if (mapIndex === index)\n return Object.assign(mapItem, tempItem);\n return mapItem;\n });\n }\n }\n getItemProp(item, property) {\n if (item[property])\n if (property === 'href')\n return this.#sanitizer.bypassSecurityTrustUrl(resolveValue(item[property]));\n else\n return resolveValue(item[property]);\n else if (property === 'routerLink')\n return '/';\n else if (property === 'href' && item.href == null && item.routerUrl != null)\n // in case the href property is retrieved but we don't have an actual href we set the routerUrl as the href\n return resolveValue(item.routerUrl);\n else\n return null;\n }\n getPath(index) {\n return this.path.length ? `${this.path}.${index}` : `${index}`;\n }\n getLinkClasses(item, index) {\n const menuLevelClasses = this.menuLevel < 3 ? 'bar-menu-link--level-' + this.menuLevel : 'bar-menu-link--level-deep';\n let activeItemClasses = '';\n let url = null;\n if (item.routerLink) {\n const link = resolveValue(item.routerLink);\n url = this.#router.createUrlTree(link);\n }\n else if (item.routerUrl) {\n const tempUrl = resolveValue(item.routerUrl);\n if (tempUrl != null) {\n url = this.#router.parseUrl(tempUrl);\n }\n }\n if (url != null) {\n // pathMatch check wether or not to match full path isActive's \"exact\" property, default true\n // map UrlTree to string\n const serializedUrl = this.#router.serializeUrl(url);\n // remove queryparams and fragment as it is not needed for url check\n const currentUrl = this.#router.url.split('?')[0].split('#')[0];\n // when pathmatch is prefix we check if the menu item is part of the current url (the start of)\n const active = item.pathMatch && item.pathMatch === 'prefix' ? currentUrl.indexOf(serializedUrl) === 0 : serializedUrl === currentUrl;\n if (active)\n activeItemClasses = CLASS_SELECTED_ITEM;\n }\n // if the consumer marked the menu item as selected we mark it as selected\n if (item.selected === true)\n activeItemClasses = CLASS_SELECTED_ITEM;\n // if the consumer explicitly marked it as not selected, make sure it doesn't appear as selected (because of url match)\n else if (item.selected === false && activeItemClasses)\n activeItemClasses = undefined;\n const clickableClasses = item.href || item.routerLink || item.routerUrl || item.action ? 'bar-menu-link--clickable' : '';\n return `${menuLevelClasses} ${activeItemClasses} ${clickableClasses}`;\n }\n getTagClasses(tag) {\n const classes = [];\n if (tag.class)\n classes.push(tag.class);\n classes.push(`bar-menu-link_tag--${tag.type || 'no-type'}`);\n return classes;\n }\n hasLink(item) {\n return resolveValue(item['disabled']) ? false : resolveValue(item.routerLink) || this.hasDefaultLink(item);\n }\n hasDefaultLink(item) {\n return resolveValue(item.href) || resolveValue(item.routerUrl);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMenuListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarLayoutMenuListComponent, isStandalone: true, selector: \"bar-layout-menu-list\", inputs: { menuLevel: \"menuLevel\", path: \"path\", items: \"items\", parentExpanded: \"parentExpanded\" }, ngImport: i0, template: \"
    0 ? 'bar-menu__sub-menu' : ''\\\">\\r\\n @for (item of items; track $index; let index = $index) {\\r\\n @if (!getItemProp(item, 'hidden')) {\\r\\n
  • \\r\\n \\r\\n @for (tag of controlsHelper.resolveValue$(item.tags) | async; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n @if (item.children && item.children.length) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n @if (item.children && item.children.length) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n
  • \\r\\n }\\r\\n }\\r\\n
\\r\\n\", dependencies: [{ kind: \"component\", type: BarLayoutMenuListComponent, selector: \"bar-layout-menu-list\", inputs: [\"menuLevel\", \"path\", \"items\", \"parentExpanded\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i2.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2$2.MatIconButton, selector: \"button[mat-icon-button]\", exportAs: [\"matButton\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMenuListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-layout-menu-list', standalone: true, imports: [NgClass, NgTemplateOutlet, RouterLink, MatTooltipModule, MatButtonModule, MatIconModule, AsyncPipe], template: \"
    0 ? 'bar-menu__sub-menu' : ''\\\">\\r\\n @for (item of items; track $index; let index = $index) {\\r\\n @if (!getItemProp(item, 'hidden')) {\\r\\n
  • \\r\\n \\r\\n @for (tag of controlsHelper.resolveValue$(item.tags) | async; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n @if (item.children && item.children.length) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n @if (item.children && item.children.length) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n
  • \\r\\n }\\r\\n }\\r\\n
\\r\\n\" }]\n }], propDecorators: { menuLevel: [{\n type: Input\n }], path: [{\n type: Input\n }], items: [{\n type: Input\n }], parentExpanded: [{\n type: Input\n }] } });\n\nclass BarLayoutMenuOperationsComponent {\n constructor() {\n this.#layout = inject(BarLayoutService);\n this.#destroyRef = inject(DestroyRef);\n this.operations$ = new BehaviorSubject([]);\n }\n #layout;\n #destroyRef;\n ngOnInit() {\n this.#layout.operations$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((actions) => {\n const transformActions = (actions) => {\n return actions.map((a) => {\n a.type = BarActionButtonType.Default;\n return a;\n });\n };\n if (actions)\n this.operations$.next(transformActions(actions));\n else\n this.operations$.next(actions);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMenuOperationsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarLayoutMenuOperationsComponent, isStandalone: true, selector: \"bar-layout-menu-operations\", host: { classAttribute: \"bar-layout-menu-operations\" }, ngImport: i0, template: \"@for (link of operations$ | async; track $index) {\\r\\n \\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMenuOperationsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-layout-menu-operations', host: { class: 'bar-layout-menu-operations' }, standalone: true, imports: [BarActionButtonComponent, AsyncPipe], template: \"@for (link of operations$ | async; track $index) {\\r\\n \\r\\n}\\r\\n\" }]\n }] });\n\nclass BarLayoutMenuStrikingActionsComponent {\n constructor() {\n this.#layout = inject(BarLayoutService);\n this.#destroyRef = inject(DestroyRef);\n this.strikingActions$ = new BehaviorSubject([]);\n }\n #layout;\n #destroyRef;\n ngOnInit() {\n this.#layout.strikingActions$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((actions) => {\n const transformActions = (actions) => {\n return actions.map((a) => {\n a.type = BarActionButtonType.Stroked;\n return a;\n });\n };\n if (actions)\n this.strikingActions$.next(transformActions(actions));\n else\n this.strikingActions$.next(actions);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMenuStrikingActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarLayoutMenuStrikingActionsComponent, isStandalone: true, selector: \"bar-layout-menu-striking-actions\", host: { classAttribute: \"bar-layout-menu-striking-actions\" }, ngImport: i0, template: \"@for (link of strikingActions$ | async; track $index) {\\r\\n \\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMenuStrikingActionsComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-layout-menu-striking-actions', host: { class: 'bar-layout-menu-striking-actions' }, standalone: true, imports: [BarActionButtonComponent, AsyncPipe], template: \"@for (link of strikingActions$ | async; track $index) {\\r\\n \\r\\n}\\r\\n\" }]\n }] });\n\nclass BarLayoutMenuComponent {\n #destroyRef;\n #router;\n #layout;\n #state;\n #routeSubscriber;\n #stateMapping;\n get mainAction() {\n return this.#layout.mainAction$.getValue() || this.internalLayout.internalMainAction;\n }\n get menuAction() {\n return this.#layout.menuAction;\n }\n get smallDevice() {\n return this.internalLayout.smallDevice;\n }\n get menuState() {\n return this.#layout.menuState$.getValue();\n }\n get menuToggleMetaIcon() {\n return this.#stateMapping[this.menuState ? this.menuState : 'default'].icon;\n }\n get menuToggleMetaText() {\n return this.#stateMapping[this.menuState ? this.menuState : 'default'].text;\n }\n constructor() {\n this.internalLayout = inject(_BarInternalLayoutService);\n this.#destroyRef = inject(DestroyRef);\n this.#router = inject(Router);\n this.#layout = inject(BarLayoutService);\n this.#state = inject(BaasAppState, { optional: true });\n this.items = [];\n this.init();\n }\n ngOnDestroy() {\n if (this.#routeSubscriber)\n this.#routeSubscriber.unsubscribe();\n }\n menuToggleClicked(event) {\n this.#stateMapping[this.menuState ? this.menuState : 'default'].action();\n }\n setMenuState(menuState) {\n this.#layout.menuState$.next(menuState);\n }\n init() {\n /* Default info: window width < 1200px equals overlay mode, > 1200px equals pinned mode */\n this.#stateMapping = {\n closed: {\n icon: 'fas fa-caret-right',\n text: 'Menu openen',\n action: () => {\n this.#layout.menuState$.next('overlay');\n }\n },\n pinned: {\n icon: 'fas fa-caret-left',\n text: 'Menu sluiten',\n action: () => {\n this.#layout.menuState$.next(this.mobileFriendly ? 'overlay' : 'closed');\n }\n },\n overlay: {\n icon: 'fas fa-caret-right',\n text: 'Menu pinnen',\n action: () => {\n this.#layout.menuState$.next(this.mobileFriendly ? 'pinned' : 'pinned');\n }\n },\n default: {\n icon: this.smallDevice ? 'fas fa-caret-right' : 'fas fa-caret-left',\n text: this.smallDevice ? 'Menu pinnen' : 'Menu sluiten',\n action: () => {\n this.smallDevice ? this.#layout.menuState$.next('pinned') : this.#layout.menuState$.next(this.mobileFriendly ? 'overlay' : 'closed');\n }\n }\n };\n this.#layout.menuItems$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((items) => {\n if (items && items.length) {\n this.items = this.#setExpandedStateForActiveItems(items);\n this.#findMenuItemRecursive(items, '');\n }\n else {\n this.items = [];\n }\n });\n this.#layout.menuItemsAutoCollapse$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((autoCollapse) => {\n if (autoCollapse) {\n this.#routeSubscriber = this.#router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n // close inactive submenu's\n const collapsedMenus = this.#closeInactiveSubmenus(this.#layout.menuItems$.getValue());\n // set new menu (only active tree is expanded)\n this.#layout.menuItems$.next(collapsedMenus);\n }\n });\n }\n else if (this.#routeSubscriber) {\n this.#routeSubscriber.unsubscribe();\n }\n });\n }\n /** Sets the items expand property to true if a subItem is active, if not to false */\n #setExpandedStateForActiveItems(items) {\n return items.map((item) => {\n // only set expanded items for the current application\n if (!item.appCode || item.appCode === this.#state.toepassing.code) {\n // first check if expanded has been preconfigured, if so skip checking\n if (!item.expanded) {\n if (item.routerLink) {\n const stringifiedRouterLink = resolveValue(item.routerLink).join('/');\n let hasActiveSubChild;\n if (item.children && item.children.length)\n hasActiveSubChild = this.#hasSubItemWithActiveRouterLink(item.children);\n item.expanded = hasActiveSubChild || window.location.pathname.includes(stringifiedRouterLink);\n }\n else if (item.children && item.children.length) {\n item.expanded = this.#hasSubItemWithActiveRouterLink(item.children);\n }\n }\n // if expanded, continue checking the node's tree to expand further\n if (item.expanded && item.children && item.children.length)\n this.#setExpandedStateForActiveItems(item.children);\n }\n return item;\n });\n }\n /** Check if an item with children has an active routerLink\n * return true if a subChild is active (can be nested inifitely deep)\n * return false if no subChild is active\n **/\n #hasSubItemWithActiveRouterLink(items) {\n const itemHasActiveSubItem = items.find((subItem) => {\n if (subItem.routerLink) {\n const stringifiedRouterLink = resolveValue(subItem.routerLink).join('/');\n // when routerlink is in pathname always return true\n if (window.location.pathname.includes(stringifiedRouterLink))\n return window.location.pathname.includes(stringifiedRouterLink);\n }\n // no routerLink\n // or routerLink is not in the pathname\n // then continue checking the node's tree\n if (subItem.children && subItem.children.length)\n return this.#hasSubItemWithActiveRouterLink(subItem.children);\n return false;\n });\n return !!itemHasActiveSubItem;\n }\n /**\n * Auto mechanism to collapse inactiv expanded submenus\n * We set all the expanded properties to false\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\n */\n #closeInactiveSubmenus(menuItems) {\n return menuItems.map((item) => {\n item.expanded = false;\n if (item.children && item.children.length)\n item.children = this.#closeInactiveSubmenus(item.children);\n return item;\n });\n }\n #getPath(path, index) {\n return path.length ? `${path}.${index}` : `${index}`;\n }\n #findMenuItemRecursive(menuItems, path) {\n for (let index = 0; index < menuItems.length; index++) {\n const menuItem = menuItems[index];\n if (menuItem.routerLink) {\n const urlTree = this.#router.createUrlTree(resolveValue(menuItem.routerLink));\n if (this.#router.isActive(urlTree, true)) {\n // active item found, set it expanded (does not mather if doens't have child items)\n menuItem.expanded = true;\n return menuItem;\n }\n }\n if (menuItem.children && menuItem.children.length) {\n const subMenuItem = this.#findMenuItemRecursive(menuItem.children, this.#getPath(path, index));\n if (subMenuItem)\n return subMenuItem;\n }\n }\n return null;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarLayoutMenuComponent, isStandalone: true, selector: \"bar-layout-menu\", inputs: { mobileFriendly: \"mobileFriendly\" }, host: { classAttribute: \"bar-layout-menu-root\" }, viewQueries: [{ propertyName: \"barLayoutMenuAnchors\", predicate: _BarLayoutAnchorDirective, descendants: true }], ngImport: i0, template: \"\\r\\n
\\r\\n @if (menuState === 'closed' && !mobileFriendly) {\\r\\n \\r\\n }\\r\\n @if (menuState !== 'closed') {\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n @if (mobileFriendly) {\\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: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: _BarLayoutAnchorDirective, selector: \"[barLayoutAnchor]\", inputs: [\"barLayoutAnchor\"] }, { kind: \"component\", type: BarLayoutMenuStrikingActionsComponent, selector: \"bar-layout-menu-striking-actions\" }, { kind: \"component\", type: BarLayoutMenuListComponent, selector: \"bar-layout-menu-list\", inputs: [\"menuLevel\", \"path\", \"items\", \"parentExpanded\"] }, { kind: \"component\", type: BarLayoutMenuExternalLinksComponent, selector: \"bar-layout-menu-external-links\" }, { kind: \"component\", type: BarLayoutMenuOperationsComponent, selector: \"bar-layout-menu-operations\" }, { kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-layout-menu', host: { class: 'bar-layout-menu-root' }, standalone: true, imports: [\n NgTemplateOutlet,\n _BarLayoutAnchorDirective,\n BarLayoutMenuStrikingActionsComponent,\n BarLayoutMenuListComponent,\n BarLayoutMenuExternalLinksComponent,\n BarLayoutMenuOperationsComponent,\n BarActionButtonComponent,\n NgClass\n ], template: \"\\r\\n
\\r\\n @if (menuState === 'closed' && !mobileFriendly) {\\r\\n \\r\\n }\\r\\n @if (menuState !== 'closed') {\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n @if (mobileFriendly) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n }\\r\\n
\\r\\n\" }]\n }], ctorParameters: () => [], propDecorators: { mobileFriendly: [{\n type: Input\n }], barLayoutMenuAnchors: [{\n type: ViewChildren,\n args: [_BarLayoutAnchorDirective]\n }] } });\n\nclass BarLayoutPageComponent {\n constructor() {\n this.internalLayout = inject(_BarInternalLayoutService);\n this.layout = inject(BarLayoutService);\n this.#destroyRef = inject(DestroyRef);\n this.withRouting = true;\n this.internalContentActions = [];\n }\n #destroyRef;\n get menuAction() {\n return this.layout.menuAction;\n }\n get smallDevice() {\n return this.internalLayout.smallDevice;\n }\n get sidenavMode() {\n /* Default info: window width < 1200px equals overlay mode, > 1200px equals pinned mode */\n const stateModeMapping = {\n closed: 'side',\n overlay: 'over',\n pinned: 'side',\n default: this.smallDevice ? 'over' : 'side'\n };\n return this.menuState ? stateModeMapping[this.menuState] : stateModeMapping['default'];\n }\n /* based on the screen size we need to redefine the exact menu state (overlay or pinned) when in default mode */\n get menuStateExact() {\n return this.menuState === 'default' ? (this.smallDevice ? 'overlay' : 'pinned') : this.menuState;\n }\n ngOnInit() {\n this.internalLayout.internalContentActions$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((contentActions) => {\n this.internalLayout.queueAction(() => {\n this.internalContentActions = contentActions || [];\n });\n });\n this.layout.submitActions$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((submitActions) => {\n this.internalLayout.queueAction(() => {\n this.submitActions = submitActions;\n });\n });\n this.layout.contentActions$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((contentActions) => {\n this.internalLayout.queueAction(() => {\n this.contentActions = contentActions;\n });\n });\n this.layout.moreActions$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((moreActions) => {\n this.internalLayout.queueAction(() => {\n this.moreActions = moreActions;\n });\n });\n this.layout.sidebar$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((sidebar) => {\n this.internalLayout.queueAction(() => {\n this.sidebar = sidebar;\n });\n });\n this.layout.menuState$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((menuState) => {\n this.internalLayout.queueAction(() => {\n this.menuState = menuState;\n });\n });\n this.layout.mainAction$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((mainAction) => {\n this.internalLayout.queueAction(() => {\n this.mainAction = mainAction || this.internalLayout.internalMainAction;\n });\n });\n this.layout.appVersion$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((appVersion) => {\n this.internalLayout.queueAction(() => {\n this.appVersion = appVersion;\n });\n });\n this.layout.mainHeader$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((mainHeader) => {\n this.internalLayout.queueAction(() => {\n this.mainHeader = mainHeader;\n });\n });\n }\n // Close menu when clicked (or pressed ESC) when backdrop is active (mode = 'over')\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n handleBackdropEvent(event) {\n this.layout.menuState$.next('closed');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarLayoutPageComponent, isStandalone: true, selector: \"bar-layout-page\", inputs: { mobileFriendly: \"mobileFriendly\", touch: \"touch\", env: \"env\", withRouting: \"withRouting\" }, host: { classAttribute: \"bar-layout-page-root\" }, 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 @if (mobileFriendly && sidebar && menuState === 'closed') {\\r\\n \\r\\n }\\r\\n \\r\\n @if (!sidebar) {\\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n @for (item of submitActions; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n @if (moreActions?.length) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n
\\r\\n @if (mainHeader) {\\r\\n
\\r\\n

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

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n }\\r\\n @if (!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 @if (withRouting) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n @for (item of contentActions; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @for (item of internalContentActions; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n @if (!sidebar) {\\r\\n \\r\\n \\r\\n }\\r\\n\\r\\n @if (appVersion) {\\r\\n Versie: {{ appVersion }}\\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n @for (item of submitActions; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n @if (moreActions?.length) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: MatSidenavModule }, { kind: \"component\", type: i2$5.MatSidenav, selector: \"mat-sidenav\", inputs: [\"fixedInViewport\", \"fixedTopGap\", \"fixedBottomGap\"], exportAs: [\"matSidenav\"] }, { kind: \"component\", type: i2$5.MatSidenavContainer, selector: \"mat-sidenav-container\", exportAs: [\"matSidenavContainer\"] }, { kind: \"component\", type: i2$5.MatSidenavContent, selector: \"mat-sidenav-content\" }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: BarLayoutMenuComponent, selector: \"bar-layout-menu\", inputs: [\"mobileFriendly\"] }, { kind: \"component\", type: BarActionButtonComponent, selector: \"bar-action-button\", inputs: [\"item\", \"zeroWhiteLineIfHidden\"] }, { kind: \"directive\", type: _BarLayoutAnchorDirective, selector: \"[barLayoutAnchor]\", inputs: [\"barLayoutAnchor\"] }, { kind: \"component\", type: BarMeerActiesComponent, selector: \"bar-meer-acties\", inputs: [\"top\", \"items\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: RouterOutlet, selector: \"router-outlet\", inputs: [\"name\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutPageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-layout-page', host: { class: 'bar-layout-page-root' }, standalone: true, imports: [\n MatSidenavModule,\n NgClass,\n BarLayoutMenuComponent,\n BarActionButtonComponent,\n _BarLayoutAnchorDirective,\n BarMeerActiesComponent,\n NgTemplateOutlet,\n RouterOutlet\n ], 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 @if (mobileFriendly && sidebar && menuState === 'closed') {\\r\\n \\r\\n }\\r\\n \\r\\n @if (!sidebar) {\\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n @for (item of submitActions; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n @if (moreActions?.length) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n
\\r\\n @if (mainHeader) {\\r\\n
\\r\\n

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

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n }\\r\\n @if (!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 @if (withRouting) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n @for (item of contentActions; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @for (item of internalContentActions; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n @if (!sidebar) {\\r\\n \\r\\n \\r\\n }\\r\\n\\r\\n @if (appVersion) {\\r\\n Versie: {{ appVersion }}\\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n @for (item of submitActions; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n @if (moreActions?.length) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\" }]\n }], propDecorators: { mobileFriendly: [{\n type: Input\n }], touch: [{\n type: Input\n }], env: [{\n type: Input\n }], withRouting: [{\n type: Input\n }], barLayoutPageAnchors: [{\n type: ViewChildren,\n args: [_BarLayoutAnchorDirective]\n }], barLayoutMenuComponent: [{\n type: ViewChild,\n args: [BarLayoutMenuComponent]\n }] } });\n\n/** @deprecated Use BaasLayoutComponent with OnPush change detection. */\nclass BarLayoutComponent {\n constructor() {\n this.layout = inject(BarLayoutService);\n this.internalLayout = inject(_BarInternalLayoutService);\n this.core = inject(BarCoreService);\n this.#coreState = inject(BaasCoreStateService, { optional: true });\n this.#appState = inject(BaasAppState, { optional: true });\n this.#router = inject(Router);\n this.#translate = inject(BaasI18n);\n this.#gvk = inject(BarLayoutInternalGvkService);\n this.#burgerprofielEngine = inject(BarBurgerprofielEngine);\n this.#toastMessage = inject(BarToastMessageService);\n this.#breakpointObserver = inject(BreakpointObserver);\n this.#destroyRef = inject(DestroyRef);\n this.#layoutState = inject(BAAS_LAYOUT_STATE);\n this.#window = inject(_BaasWindow);\n // NOTE this controls the *ngIf meaning no external scripts will be invoked\n this.globalHeaderFooter = true;\n this.box = true;\n this.withRouting = true;\n /** @experimental */\n this.responsive = { enabled: false };\n this.skipLink = { main: null, menu: null };\n // NOTE vreemd probleem met change detection pesca, hiervoor signal\n this.loading = signal(false);\n this.mobileFriendly = false;\n this.touch = false;\n this.compact = false;\n this.meldingen = computed(() => this.#coreState?.meldingen()?.filter((m) => m.meldingType != BarMeldingType.Banner) || []);\n this.menuOverlayOpen = false;\n this.#layoutInitialized = true;\n }\n #coreState;\n #appState;\n #router;\n #translate;\n #gvk;\n #burgerprofielEngine;\n #toastMessage;\n #breakpointObserver;\n #destroyRef;\n #layoutState;\n #window;\n #internalBanner;\n #externalBanner;\n #layoutInitialized;\n get env() {\n return this.#layoutState.environment;\n }\n get rootUrl() {\n return this.#layoutState.rootUrl;\n }\n get devOrTest() {\n return ['DEV', 'TST'].find((env) => env === this.env);\n }\n get banner() {\n // the external banner always gets priority over the internal banner\n return this.#externalBanner || this.#internalBanner;\n }\n // NOTE this controls the display style property meaning external scripts are loaded even if not shown\n get showGlobalHeaderFooter() {\n return !this.compact && !this.touch;\n }\n ngOnInit() {\n this.internalLayout.legacyConsumer = true;\n this.forceHideBox = (this.box && this.#burgerprofielEngine.visible) || this.globalHeaderFooter === false;\n this.layout.documentTitle$.next(this.#appState == null || this.#appState.basiscontext == null || this.#appState.basiscontext.zone == 'E'\n ? this.#translate.get('DOMAIN_BAR_LAYOUT.TITLE')\n : this.#appState.toepassing.naam);\n this.internalLayout.init();\n this.layout.init();\n this.layout.hidden$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((hidden) => {\n this.internalLayout.queueAction(() => {\n this.hidden = hidden;\n if (hidden)\n document.body.style.backgroundColor = 'unset';\n else\n document.body.removeAttribute('style');\n });\n });\n if (this.withRouting) {\n this.#router.events.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((event) => {\n if (event instanceof NavigationEnd) {\n // initial only executed once\n if (this.#layoutInitialized) {\n // short wait time to properly load header/footer\n // run timeout outside angular (avoid change detection cycle)\n this.#window.setTimeoutOutsideAngular(() => {\n // hide app loader\n this.#defineAppLoading(false, true);\n this.#layoutInitialized = false;\n });\n }\n // set up baselink, pathName is the url without origin and without hash, query,...\n const baseLink = location.pathname;\n this.skipLink.main = `${baseLink}#maincontent`;\n this.skipLink.menu = `${baseLink}#mainmenu`;\n // if Fragment is present, focus it (will scroll into view automatically)\n if (event.urlAfterRedirects.indexOf('#') > -1) {\n const fragment = event.urlAfterRedirects.substring(event.urlAfterRedirects.indexOf('#') + 1);\n const element = document.getElementById(fragment);\n // make sure tabindex (-1, 0) is present on the to be focussed element (otherwise it will not work);\n if (element)\n element.focus();\n }\n }\n });\n }\n else {\n // hide app loader\n this.#defineAppLoading(false, true);\n // set up baselink, pathName is the url without origin and without hash, query,...\n const baseLink = location.pathname;\n this.skipLink.main = `${baseLink}#maincontent`;\n this.skipLink.menu = `${baseLink}#mainmenu`;\n }\n this.#defineFavIcon();\n if (this.env) {\n document.body.classList.add(this.env);\n }\n this.core.errorOccurred.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n this.#toastMessage.addMessage({\n text: this.#translate.get('DOMAIN_BAAS_CORE.GENERIC_ERROR'),\n type: BarToastMessageType.Error\n });\n });\n this.layout.sidebar$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((sidebar) => {\n this.internalLayout.queueAction(() => {\n this.sidebar = sidebar;\n });\n });\n this.layout.title$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((title) => {\n this.internalLayout.queueAction(() => {\n this.title = title;\n });\n });\n this.layout.subTitle$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((subTitle) => {\n this.internalLayout.queueAction(() => {\n this.subTitle = subTitle;\n });\n });\n this.layout.loading$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((loading) => {\n this.internalLayout.queueAction(() => {\n this.loading.set(loading);\n });\n });\n this.layout.mobileFriendly$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((mobileFriendly) => {\n this.internalLayout.queueAction(() => {\n this.mobileFriendly = mobileFriendly;\n });\n });\n this.layout.touch$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((touch) => {\n const bodyTouch = document.body.classList.contains('touch');\n if (touch && !bodyTouch)\n document.body.classList.add('touch');\n else if (!touch && bodyTouch)\n document.body.classList.remove('touch');\n this.internalLayout.queueAction(() => {\n this.touch = touch;\n });\n });\n this.layout.compact$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((compact) => {\n this.internalLayout.queueAction(() => {\n this.compact = compact;\n });\n });\n this.layout.appMenuItems$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((appMenuItems) => {\n this.internalLayout.queueAction(() => {\n this.appMenuItems = appMenuItems;\n this.#processAppMenuItems();\n });\n });\n // internal banner (set through meldingen system)\n this.internalLayout.banner$$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((banner) => {\n this.#internalBanner = banner;\n });\n // external banner (set by any consumer of the library)\n this.layout.banner$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((banner) => {\n // for the external banner we use the queing system to avoid 'value has changed after it was checked' errors\n // this is not needed for the internal banner\n this.internalLayout.queueAction(() => {\n this.#externalBanner = banner;\n });\n });\n this.internalLayout.injectSection.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((injection) => {\n injection.componentRef = this.#injectSection(injection);\n });\n this.internalLayout.clearSection.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((section) => {\n this.#clearSection(section);\n });\n this.#gvk.init();\n let firstLoad = true;\n this.layout.appLoading$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((value) => {\n // on first load don't do anything and let standard flow handle it\n if (!firstLoad) {\n this.#defineAppLoading(value);\n }\n else\n firstLoad = false;\n });\n this.#initBreakpointObserver();\n }\n get mobileItems() {\n if (!this.mobileAppMenuItems)\n return [];\n if (this.mobileAppMenuItems.length < 2) {\n return [];\n }\n else if (this.mobileAppMenuItems.length < 6) {\n return this.mobileAppMenuItems;\n }\n else {\n return [\n ...this.mobileAppMenuItems.slice(0, 4),\n { content: 'Meer', icon: { srText: 'Meer', position: 'top', class: 'fas fa-ellipsis-h' }, action: (e) => (this.menuOverlayOpen = true) }\n ];\n }\n }\n get restOfMobileItems() {\n return this.mobileAppMenuItems.slice(4);\n }\n ngOnChanges(changes) {\n if (changes.appMenuItems) {\n this.#processAppMenuItems();\n }\n }\n ngOnDestroy() {\n this.internalLayout.legacyConsumer = false;\n }\n navigateHome() {\n // if not home url override (disconnected modus) we use the core functionality to navigate\n if (this.#layoutState.homeUrl == null) {\n this.core.navigateHome();\n return false;\n }\n return true;\n }\n navigateRoot(event) {\n this.core.navigateRoot(true, event);\n return false;\n }\n defineAppMenuLinkClass(item) {\n return item.selected ? 'menu-lv__item menu-lv__item active' : 'menu-lv__item';\n }\n exitCompact() {\n this.layout.compact$.next(false);\n }\n // injects a component into a section of the layout\n #injectSection(injection) {\n // create a factory for the component (component maker) or use factory if one has been given\n // clear the content within the anchor\n this.#clearSection(injection.section);\n const sectionAnchor = this.#getSectionAnchor(injection.section);\n if (sectionAnchor) {\n // inject the component into the anchor\n const componentRef = this.#getSectionAnchor(injection.section).viewContainerRef.createComponent(injection.component);\n componentRef.changeDetectorRef.detectChanges();\n return componentRef;\n }\n return undefined;\n }\n // clears a section within the layout\n #clearSection(section) {\n const sectionAnchor = this.#getSectionAnchor(section);\n if (sectionAnchor)\n sectionAnchor.viewContainerRef.clear();\n }\n // gets the directive for injection\n #getSectionAnchor(section) {\n let anchors = [...this.barLayoutAnchors.toArray()];\n // NOTE null in hidden modus\n if (this.pageComponent) {\n anchors = [\n ...anchors,\n ...this.pageComponent.barLayoutPageAnchors.toArray(),\n ...this.pageComponent.barLayoutMenuComponent.barLayoutMenuAnchors.toArray()\n ];\n }\n return anchors.find((directive) => directive.section == section);\n }\n #defineFavIcon() {\n if (this.#appState != null) {\n const url = this.#appState.location.baasStatic.url + BAR_LAYOUT_CONSTANTS.IMAGES.FAVICON;\n const element = document.getElementById('favicon');\n element.setAttribute('href', url);\n }\n // NOTE in case disconnected (no state) the user must just provide default fav icon in the root folder\n }\n /** Defines the app loading whereby the app loader appears. */\n #defineAppLoading(value, firstLoad = false) {\n const execute = () => {\n this.internalLayout.appLoadingPending$$.next(true);\n const complete = () => {\n this.internalLayout.appLoadingPending$$.next(false);\n if (firstLoad)\n this.internalLayout.firstAppLoading$$.next(false);\n };\n const loader = document.getElementById('app-loading');\n if (loader) {\n const appRootElements = document.getElementsByTagName('app-root');\n const appRoot = appRootElements.length ? appRootElements[0] : null;\n if (firstLoad && this.internalLayout.lastAppLoadingRequest) {\n console.info('Request for app loader to stay open.');\n // still in first load but a last request came in to have it stayting open, dont't proceed further\n // stop the subsequent app loading calls (last one wins)\n this.internalLayout.firstAppLoading$$.observers.forEach((obs) => obs.complete());\n complete();\n }\n else {\n if (!value) {\n loader.setAttribute('class', 'app-loading-fade-out');\n if (appRoot)\n appRoot.removeAttribute('style');\n // after the animation of 500ms we remove the loader as it stack above the content and is no longer needed\n // NOTE run outside ngzone to avoid change detection cycle\n this.#window.setTimeoutOutsideAngular(() => {\n setTimeout(() => {\n loader.style.display = 'none';\n loader.removeAttribute('class');\n document.body.style.overflow = 'unset';\n complete();\n }, 500);\n });\n }\n else {\n loader.removeAttribute('class');\n loader.style.display = '';\n // hide app root because it is rendered underneath the app-loading\n if (appRoot)\n appRoot.style.display = 'none';\n complete();\n }\n }\n }\n else {\n // no loader just make sure everything is false\n complete();\n }\n };\n if (firstLoad) {\n // on first load we just execute the code\n execute();\n }\n else {\n // remember last requested value\n this.internalLayout.lastAppLoadingRequest = value;\n // wait for firstload to be finished\n const firstAppLoadingComplete$ = this.internalLayout.firstAppLoading$$.pipe(skipWhile((firstLoad) => firstLoad), take(1));\n // and also wait in case app loading has already been invoked and it is not done yet\n const appLoadingComplete$ = this.internalLayout.appLoadingPending$$.pipe(skipWhile((loading) => loading), take(1));\n forkJoin([firstAppLoadingComplete$, appLoadingComplete$])\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe(() => {\n execute();\n });\n }\n }\n #processAppMenuItems() {\n this.desktopAppMenuItems = this.appMenuItems\n ? this.appMenuItems.filter((ami) => !ami.hidden && (ami.mobile == null || ami.mobile === false))\n : undefined;\n this.mobileAppMenuItems = this.appMenuItems\n ? [...this.appMenuItems.filter((ami) => !ami.hidden && (ami.mobile == null || ami.mobile === true))]\n : undefined;\n }\n #initBreakpointObserver() {\n if (!this.responsive?.enabled)\n return;\n const mobileMaxWidth = this.responsive.mobileWidth || 768;\n const tabletMaxWidth = this.responsive.tabletWidth || 991;\n if (tabletMaxWidth <= mobileMaxWidth)\n console.error(`Tablet width (${tabletMaxWidth} px) cannot be smaller or equal to the mobile width (${mobileMaxWidth} px).`);\n const tabletMinWidth = mobileMaxWidth + 1;\n const mobileWidthExpression = `(max-width: ${mobileMaxWidth}px)`;\n const tabletWidthExpression = `(min-width: ${tabletMinWidth}px) and (max-width: ${tabletMaxWidth}px)`;\n this.#breakpointObserver\n .observe([mobileWidthExpression, tabletWidthExpression])\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((result) => {\n const [isMobile, isTablet] = [result.breakpoints[mobileWidthExpression], result.breakpoints[tabletWidthExpression]];\n const deviceType = isMobile ? BarDeviceType.Mobile : isTablet ? BarDeviceType.Tablet : BarDeviceType.Desktop;\n this.internalLayout.deviceType$$.next(deviceType);\n const touch = isMobile || isTablet;\n this.layout.touch$.next(touch);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarLayoutComponent, isStandalone: true, selector: \"bar-layout\", inputs: { globalHeaderFooter: \"globalHeaderFooter\", appMenuItems: \"appMenuItems\", box: \"box\", withRouting: \"withRouting\", responsive: \"responsive\" }, host: { classAttribute: \"bar-layout-root\" }, viewQueries: [{ propertyName: \"pageComponent\", first: true, predicate: BarLayoutPageComponent, descendants: true }, { propertyName: \"barLayoutAnchors\", predicate: _BarLayoutAnchorDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: \"@if (!hidden) {\\r\\n \\r\\n @if (globalHeaderFooter) {\\r\\n \\r\\n }\\r\\n Naar hoofdinhoud\\r\\n @if (sidebar) {\\r\\n Naar hoofdnavigatiemenu\\r\\n }\\r\\n
\\r\\n @if (banner) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n \\r\\n {{ title }}\\r\\n \\r\\n @if (subTitle) {\\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 @if (desktopAppMenuItems && desktopAppMenuItems.length) {\\r\\n
\\r\\n @for (item of desktopAppMenuItems; track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n }\\r\\n
\\r\\n
\\r\\n @if (meldingen()?.length) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n @if (menuOverlayOpen) {\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n @for (item of restOfMobileItems; track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n }\\r\\n
\\r\\n @for (item of mobileItems; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n
\\r\\n @if (globalHeaderFooter) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n}\\r\\n@if (hidden) {\\r\\n
\\r\\n @if (withRouting) {\\r\\n \\r\\n }\\r\\n \\r\\n
\\r\\n}\\r\\n\\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: BarGlobalHeaderComponent, selector: \"bar-global-header\" }, { kind: \"directive\", type: NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"component\", type: BarBannerComponent, selector: \"bar-banner\", inputs: [\"banner\", \"environment\", \"closeDisabled\"], outputs: [\"hide\"] }, { kind: \"directive\", type: _BarLayoutAnchorDirective, selector: \"[barLayoutAnchor]\", inputs: [\"barLayoutAnchor\"] }, { kind: \"component\", type: BarLinkComponent, selector: \"bar-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }, { kind: \"component\", type: BarMeldingenComponent, selector: \"bar-meldingen\", inputs: [\"meldingen\"] }, { kind: \"component\", type: BarLayoutPageComponent, selector: \"bar-layout-page\", inputs: [\"mobileFriendly\", \"touch\", \"env\", \"withRouting\"] }, { kind: \"component\", type: BarGlobalFooterComponent, selector: \"bar-global-footer\" }, { kind: \"directive\", type: RouterOutlet, selector: \"router-outlet\", inputs: [\"name\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }, { kind: \"component\", type: BarLoadingComponent, selector: \"bar-loading\", inputs: [\"options\", \"blockPage\", \"running\"], outputs: [\"optionsChange\", \"runningChange\"] }, { kind: \"component\", type: BarToastMessagesComponent, selector: \"bar-toast-messages\" }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: BarI18nPipe, name: \"i18n\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-layout', host: { class: 'bar-layout-root' }, standalone: true, imports: [\n NgClass,\n BarGlobalHeaderComponent,\n NgStyle,\n BarBannerComponent,\n _BarLayoutAnchorDirective,\n BarLinkComponent,\n BarMeldingenComponent,\n BarLayoutPageComponent,\n BarGlobalFooterComponent,\n RouterOutlet,\n BarLoadingComponent,\n BarToastMessagesComponent,\n AsyncPipe,\n BarI18nPipe\n ], template: \"@if (!hidden) {\\r\\n \\r\\n @if (globalHeaderFooter) {\\r\\n \\r\\n }\\r\\n Naar hoofdinhoud\\r\\n @if (sidebar) {\\r\\n Naar hoofdnavigatiemenu\\r\\n }\\r\\n
\\r\\n @if (banner) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n \\r\\n {{ title }}\\r\\n \\r\\n @if (subTitle) {\\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 @if (desktopAppMenuItems && desktopAppMenuItems.length) {\\r\\n
\\r\\n @for (item of desktopAppMenuItems; track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n }\\r\\n
\\r\\n
\\r\\n @if (meldingen()?.length) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n @if (menuOverlayOpen) {\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n @for (item of restOfMobileItems; track $index) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n }\\r\\n
\\r\\n @for (item of mobileItems; track $index) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n
\\r\\n @if (globalHeaderFooter) {\\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n}\\r\\n@if (hidden) {\\r\\n
\\r\\n @if (withRouting) {\\r\\n \\r\\n }\\r\\n \\r\\n
\\r\\n}\\r\\n\\r\\n\\r\\n\" }]\n }], propDecorators: { barLayoutAnchors: [{\n type: ViewChildren,\n args: [_BarLayoutAnchorDirective, {}]\n }], pageComponent: [{\n type: ViewChild,\n args: [BarLayoutPageComponent]\n }], globalHeaderFooter: [{\n type: Input\n }], appMenuItems: [{\n type: Input\n }], box: [{\n type: Input\n }], withRouting: [{\n type: Input\n }], responsive: [{\n type: Input\n }] } });\n\nclass BarUnavailableLayoutComponent {\n #state;\n constructor() {\n this.#state = inject(BaasAppState);\n this.title = input.required();\n this.content = input();\n this.showGlobalHeaderFooter = input(false);\n effect(() => (document.title = this.title() || this.#state.toepassing.naam));\n }\n ngOnInit() {\n const randomNumber = generateRandomNumber(1, 8);\n this.imagePath = `${this.#state.location.baasStatic.url}images/all/lv-melding-circle-0${randomNumber}.png`;\n this.hiResImagePath = `${this.#state.location.baasStatic.url}images/all/lv-melding-circle-0${randomNumber}@2x.png`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarUnavailableLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarUnavailableLayoutComponent, isStandalone: true, selector: \"bar-unavailable-layout\", inputs: { title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: true, transformFunction: null }, content: { classPropertyName: \"content\", publicName: \"content\", isSignal: true, isRequired: false, transformFunction: null }, showGlobalHeaderFooter: { classPropertyName: \"showGlobalHeaderFooter\", publicName: \"showGlobalHeaderFooter\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"@if (showGlobalHeaderFooter) {\\r\\n \\r\\n}\\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 @if (content()) {\\r\\n

\\r\\n }\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n@if (showGlobalHeaderFooter()) {\\r\\n \\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: BarGlobalFooterComponent, selector: \"bar-global-footer\" }, { kind: \"component\", type: BarGlobalHeaderComponent, selector: \"bar-global-header\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarUnavailableLayoutComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-unavailable-layout', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [BarGlobalFooterComponent, BarGlobalHeaderComponent], template: \"@if (showGlobalHeaderFooter) {\\r\\n \\r\\n}\\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 @if (content()) {\\r\\n

\\r\\n }\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n@if (showGlobalHeaderFooter()) {\\r\\n \\r\\n}\\r\\n\" }]\n }], ctorParameters: () => [] });\n\nclass BarClickOutsideDirective {\n constructor() {\n this.el = inject(ElementRef);\n this.ngZone = inject(NgZone);\n this.platformId = inject(PLATFORM_ID);\n this.clickOutsideEnabled = true;\n this.attachOutsideOnClick = false;\n this.delayClickOutsideInit = false;\n this.emitOnBlur = false;\n this.exclude = '';\n this.excludeBeforeClick = false;\n this.clickOutsideEvents = '';\n this.clickOutside = new EventEmitter();\n this.nodesExcluded = [];\n this.events = ['click'];\n this.initOnClickBody = this.initOnClickBody.bind(this);\n this.onClickBody = this.onClickBody.bind(this);\n this.onWindowBlur = this.onWindowBlur.bind(this);\n }\n ngOnInit() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this.init();\n }\n ngOnDestroy() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n this.removeClickOutsideListener();\n this.removeAttachOutsideOnClickListener();\n this.removeWindowBlurListener();\n }\n ngOnChanges(changes) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\n this.init();\n }\n }\n init() {\n if (this.clickOutsideEvents !== '') {\n this.events = this.clickOutsideEvents.split(',').map((e) => e.trim());\n }\n this.excludeCheck();\n if (this.attachOutsideOnClick) {\n this.initAttachOutsideOnClickListener();\n }\n else {\n this.initOnClickBody();\n }\n if (this.emitOnBlur) {\n this.initWindowBlurListener();\n }\n }\n initOnClickBody() {\n if (this.delayClickOutsideInit) {\n setTimeout(this.initClickOutsideListener.bind(this));\n }\n else {\n this.initClickOutsideListener();\n }\n }\n excludeCheck() {\n if (this.exclude) {\n try {\n const nodes = Array.from(document.querySelectorAll(this.exclude));\n if (nodes) {\n this.nodesExcluded = nodes;\n }\n }\n catch (err) {\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\n }\n }\n }\n onClickBody(ev) {\n if (!this.clickOutsideEnabled) {\n return;\n }\n if (this.excludeBeforeClick) {\n this.excludeCheck();\n }\n if (!this.el.nativeElement.contains(ev.target) && !this.shouldExclude(ev.target)) {\n this.emit(ev);\n if (this.attachOutsideOnClick) {\n this.removeClickOutsideListener();\n }\n }\n }\n /**\n * Resolves problem with outside click on iframe\n * @see https://github.com/arkon/ng-click-outside/issues/32\n */\n onWindowBlur(ev) {\n setTimeout(() => {\n if (!document.hidden) {\n this.emit(ev);\n }\n });\n }\n emit(ev) {\n if (!this.clickOutsideEnabled) {\n return;\n }\n this.ngZone.run(() => this.clickOutside.emit(ev));\n }\n shouldExclude(target) {\n for (const excludedNode of this.nodesExcluded) {\n if (excludedNode.contains(target)) {\n return true;\n }\n }\n return false;\n }\n initClickOutsideListener() {\n this.ngZone.runOutsideAngular(() => {\n this.events.forEach((e) => document.body.addEventListener(e, this.onClickBody));\n });\n }\n removeClickOutsideListener() {\n this.ngZone.runOutsideAngular(() => {\n this.events.forEach((e) => document.body.removeEventListener(e, this.onClickBody));\n });\n }\n initAttachOutsideOnClickListener() {\n this.ngZone.runOutsideAngular(() => {\n this.events.forEach((e) => this.el.nativeElement.addEventListener(e, this.initOnClickBody));\n });\n }\n removeAttachOutsideOnClickListener() {\n this.ngZone.runOutsideAngular(() => {\n this.events.forEach((e) => this.el.nativeElement.removeEventListener(e, this.initOnClickBody));\n });\n }\n initWindowBlurListener() {\n this.ngZone.runOutsideAngular(() => {\n window.addEventListener('blur', this.onWindowBlur);\n });\n }\n removeWindowBlurListener() {\n this.ngZone.runOutsideAngular(() => {\n window.removeEventListener('blur', this.onWindowBlur);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"18.2.13\", type: BarClickOutsideDirective, isStandalone: true, selector: \"[barClickOutside]\", inputs: { clickOutsideEnabled: \"clickOutsideEnabled\", attachOutsideOnClick: \"attachOutsideOnClick\", delayClickOutsideInit: \"delayClickOutsideInit\", emitOnBlur: \"emitOnBlur\", exclude: \"exclude\", excludeBeforeClick: \"excludeBeforeClick\", clickOutsideEvents: \"clickOutsideEvents\" }, outputs: { clickOutside: \"clickOutside\" }, usesOnChanges: true, ngImport: i0 }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarClickOutsideDirective }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarClickOutsideDirective, decorators: [{\n type: Injectable\n }, {\n type: Directive,\n args: [{ selector: '[barClickOutside]', standalone: true }]\n }], ctorParameters: () => [], propDecorators: { clickOutsideEnabled: [{\n type: Input\n }], attachOutsideOnClick: [{\n type: Input\n }], delayClickOutsideInit: [{\n type: Input\n }], emitOnBlur: [{\n type: Input\n }], exclude: [{\n type: Input\n }], excludeBeforeClick: [{\n type: Input\n }], clickOutsideEvents: [{\n type: Input\n }], clickOutside: [{\n type: Output\n }] } });\n\n// https://stackoverflow.com/a/46078299/2174621\nclass BarLayoutHttpParams extends BarHttpParams {\n constructor(\n /** This means that the request should block the user interface */\n blocking = true, \n /**This means this is a request that should pass the interceptor but happens in background*/\n backgroundRequest = false, \n /**This means interception should be ommited*/\n ommitInterceptor = false, options) {\n super(backgroundRequest, ommitInterceptor, options);\n this.blocking = blocking;\n }\n}\n\nconst ERROR_RESIZE_OBSERVER = 'ResizeObserver loop limit exceeded';\nclass BarLayoutErrorHandlerHook {\n /** Invoked by the error handler. */\n run(args) {\n // NOTE we can get this error due to the header/flanders footer burgerprofiel\n // https://stackoverflow.com/a/50387233/2174621\n if (args.error?.message === ERROR_RESIZE_OBSERVER || args.error === ERROR_RESIZE_OBSERVER) {\n args.handled = true;\n // warning, still notify that this problem exists\n console.warn(args.error);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutErrorHandlerHook, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutErrorHandlerHook }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutErrorHandlerHook, decorators: [{\n type: Injectable\n }] });\n\n/** Lifecycle hook for layout module. */\nclass BarLayoutInitializedHook {\n constructor() {\n this.#state = inject(BaasAppState);\n this.#layoutLegacy = inject(BarLayoutService);\n this.#gvk = inject(BarLayoutInternalGvkService);\n this.#burgerprofielEngine = inject(BarBurgerprofielEngine);\n this.#internalLayoutService = inject(_BaasInternalLayoutService);\n // NOTE must occur after baas static initialized hook\n this.order = 3;\n this._framework = true;\n }\n #state;\n #layoutLegacy;\n #gvk;\n #burgerprofielEngine;\n #internalLayoutService;\n run() {\n if (this.#state.toepassing?.versie && !this.#layoutLegacy.appVersion$.getValue()) {\n this.#layoutLegacy.appVersion$.next(this.#state.toepassing.versie);\n }\n this.#internalLayoutService.init();\n return forkJoin([this.#burgerprofielEngine.tryInitialize(), from(this.#gvk.preInit())]).pipe(map(() => undefined));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutInitializedHook, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutInitializedHook }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutInitializedHook, decorators: [{\n type: Injectable\n }] });\n\n/** Lifecycle hook for layout module for defining the meldingen. */\nclass BarLayoutMeldingenHook {\n constructor() {\n this.#injector = inject(Injector);\n this.#appState = inject(BaasAppState);\n this.#coreState = inject(BaasCoreStateService);\n this.#internalLayoutLegacy = inject(_BarInternalLayoutService);\n this.#internalLayout = inject(_BaasInternalLayoutService, { optional: true });\n this.#meldingenStore = inject(BAR_MELDINGEN_CACHE);\n this._framework = true;\n }\n #injector;\n #appState;\n #coreState;\n #internalLayoutLegacy;\n #internalLayout;\n #meldingenStore;\n run() {\n effect(() => {\n const bannerMeldingen = this.#coreState.meldingen()?.filter((m) => m.meldingType == BarMeldingType.Banner);\n const setBanner = (banner) => {\n if (this.#internalLayout)\n this.#internalLayout.banner.set(banner);\n this.#internalLayoutLegacy.banner$$.next(banner);\n };\n if (bannerMeldingen?.length > 0) {\n const bannerMelding = bannerMeldingen[0];\n // check whether the banner has been marked as closed (so we don't show it again)\n // TODO [STEPET] use async await\n this.#meldingenStore.getItem(this.#getBannerClosedKey(bannerMelding.id)).then((value) => {\n if (!value) {\n const defineBannerImageSrc = (code) => {\n if (code) {\n const image = this.#appState.config?.baasStatic?.banner?.images[code.toLowerCase()];\n if (image) {\n return concatUrl(this.#appState.location.baasStatic.url, '/images/all/banner', image);\n }\n else\n console.warn(`No image found for banner with code '${code}'`);\n }\n return null;\n };\n // map the melding to a banner\n const banner = {\n title: bannerMelding.bannerTitle,\n link: bannerMelding.bannerUrl\n ? {\n href: bannerMelding.bannerUrl,\n content: bannerMelding.bannerUrlText,\n target: '_blank'\n }\n : undefined,\n content: bannerMelding.bannerUrlText && !bannerMelding.bannerUrl ? bannerMelding.bannerUrlText : undefined,\n heroImageSrc: defineBannerImageSrc(bannerMelding.bannerImage),\n onClose: () => {\n this.#hideBannerMelding(bannerMelding.id);\n }\n };\n setBanner(banner);\n }\n else\n setBanner(null);\n });\n }\n else\n setBanner(null);\n }, { injector: this.#injector, allowSignalWrites: true });\n }\n #getBannerClosedKey(id) {\n return `bannerClosed_${id}`;\n }\n #hideBannerMelding(id) {\n // mark as closed we don't need to wait for promise to finish\n this.#meldingenStore.setItem(this.#getBannerClosedKey(id), true);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMeldingenHook, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMeldingenHook }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarLayoutMeldingenHook, decorators: [{\n type: Injectable\n }] });\n\nconst BAR_LAYOUT_I18N = {\n BACK: 'Terug',\n HOME: 'Home',\n MAINSCREEN: 'Hoofdscherm',\n TITLE: 'E-loket Landbouw en Zeevisserij',\n HEADER_TITLE: 'E-loketDepartement Landbouw & Visserij',\n HEADER_LINK_TITLE: 'Landbouw en Zeevisserij Vlaanderen',\n CLOSE_COMPACT_MODUS: 'Sluit compacte modus',\n MENU: {\n OVERLAY_OPEN_BTN: 'Open een overlappend menu en klik erbuiten om het te sluiten',\n CLOSE_MENU: 'Klik hier om het menu te sluiten',\n COLLAPSE_MENU: 'Klap het menu weg',\n PIN_MENU: 'Pin het menu vast',\n OPEN: 'Open het menu'\n },\n EDIT_PAGE: {\n LOADING: 'Laden...',\n ACTION: {\n SAVE: 'Opslaan',\n UNDO: 'Ongedaan maken',\n DELETE: 'Verwijderen',\n EDIT: 'Wijzigen'\n },\n ARE_YOU_SURE_DELETE: 'Bent u zeker dat u deze gegevens wilt verwijderen?',\n ARE_YOU_SURE_UNDO: 'Bent u zeker dat u eventuele wijzigingen ongedaan wilt maken?',\n ARE_YOU_SURE_SAVE: 'Bent u zeker dat u de wijzigingen wilt bewaren?',\n ARE_YOU_SURE: 'Bent u zeker?',\n MESSAGE: {\n SAVE: 'De gegevens werden bewaard',\n UNDO: 'De gegevens werden ongedaan gemaakt',\n DELETE: 'De gegevens werden verwijderd',\n LEAVE_PAGE: 'Opgelet, uw wijzigingen zijn niet opgeslagen: bent u zeker dat u deze pagina wilt afsluiten? Niet bewaarde gegevens zullen verloren gaan.',\n INVALID: 'Gelieve de schermvalidatie(s) op te lossen',\n INVALID_AUTOSAVE: 'Gelieve de schermvalidatie(s) op te lossen of de wijzigingen ongedaan te maken'\n }\n }\n};\n\nlet loadingCount = 0;\n/**\n * Internal http interceptor to trap requests and show the loading indication.\n */\nfunction barLayoutInterceptor(options = { logging: false }) {\n return (req, next) => {\n function log(message) {\n if (!options?.logging)\n return;\n console.log(`[barLayoutInterceptor] ${req.url} - count: ${loadingCount} - ${message}`);\n }\n function setLoading(loading) {\n log(`Setting loading to ${loading}`);\n layoutLegacy.loading$.next(loading);\n layout.loading.set(loading);\n }\n function handleResponse() {\n log('Handling response, decreasing counter');\n loadingCount--;\n log('Handling response, counter decreased');\n if (loadingCount == 0) {\n log('Handling response, counter zero, setting loading to false');\n setLoading(false);\n }\n }\n const layoutLegacy = inject(BarLayoutService);\n const layout = inject(BaasLayoutService);\n const internalLegacyLayout = inject(_BarInternalLayoutService);\n // if no interceptor behavior needed at global module level: just handle the request\n if ((internalLegacyLayout.legacyConsumer && !layoutLegacy.interception$.getValue()) || (!internalLegacyLayout.legacyConsumer && !layout.interception)) {\n log('Interception disabled, skipping');\n return next(req);\n }\n // by default everything is not a background request and is blocking\n let backgroundRequest = false;\n let ommitInterceptor = false;\n let blocking = true;\n // check if we have custom bar params\n if (req.params instanceof BarHttpParams) {\n backgroundRequest = req.params.backgroundRequest;\n ommitInterceptor = req.params.ommitInterceptor;\n }\n if (req.params instanceof BarLayoutHttpParams) {\n blocking = req.params.blocking;\n }\n if (backgroundRequest || !blocking || ommitInterceptor) {\n log('Skipping interceptor');\n // ignore interceptor for:\n // - background requests\n // - it is non blocking call: through BarHttpParams\n // - BAR interceptors are ommitted in general\n // - the user has explicitely deifned the interception is disabled\n return next(req);\n }\n else {\n log('Intercepting request');\n setLoading(true);\n loadingCount++;\n log('Increasing counter');\n // https://stackoverflow.com/a/50620910/2174621\n return next(req).pipe(finalize(() => {\n // request completes, errors, or is cancelled\n handleResponse();\n }));\n }\n };\n}\n\nclass BarDefaultLayoutState {\n constructor() {\n this.#appState = inject(BaasAppState);\n this.#injector = inject(Injector);\n this.#i18n = inject(BaasI18n);\n this.homeUrl = undefined;\n }\n #appState;\n #injector;\n #i18n;\n get #core() {\n return this.#injector.get(BarCoreService);\n }\n get rootUrl() {\n return (this.#core.rootAction != null ? this.#getUrlFromActionDef(this.#core.rootAction) : null) || this.#appState.location?.app?.url;\n }\n get environment() {\n return this.#getSecLevelString(this.#appState.toepassing.securityLevel);\n }\n get documentTitle() {\n return this.#appState.basiscontext == null || this.#appState.basiscontext.zone == 'E'\n ? this.#i18n.get('DOMAIN_BAR_LAYOUT.TITLE')\n : this.#appState.toepassing.naam;\n }\n get favIconUrl() {\n return this.#appState.location.baasStatic.url + BAR_LAYOUT_CONSTANTS.IMAGES.FAVICON;\n }\n get appVersion() {\n return this.#appState.toepassing.versie;\n }\n #getUrlFromActionDef(action) {\n let result = null;\n // here we decide what's the url based on the definition\n if (action.href != null) {\n result = resolveValue(action.href);\n }\n else if (action.routerUrl != null) {\n result = resolveValue(action.routerUrl);\n }\n else if (action.routerCommands != null) {\n result = resolveValue(action.routerCommands).join('/');\n }\n return result;\n }\n #getSecLevelString(securityLevel) {\n switch (securityLevel) {\n case BaasSecurityLevel.Development:\n return 'DEV';\n case BaasSecurityLevel.Test:\n return 'TST';\n case BaasSecurityLevel.Production:\n return 'PRD';\n default:\n return 'Unknown';\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarDefaultLayoutState, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarDefaultLayoutState }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarDefaultLayoutState, decorators: [{\n type: Injectable\n }] });\n\n/** Optional feature kind. */\nvar BarLayoutFeatureKind;\n(function (BarLayoutFeatureKind) {\n /** Whether we want date & time interception. */\n BarLayoutFeatureKind[BarLayoutFeatureKind[\"Interception\"] = 0] = \"Interception\";\n /** Custom settings to use for the layout module. */\n BarLayoutFeatureKind[BarLayoutFeatureKind[\"CustomSettings\"] = 1] = \"CustomSettings\";\n /** Use the default settings based on BaaS core state. */\n BarLayoutFeatureKind[BarLayoutFeatureKind[\"DefaultSettings\"] = 2] = \"DefaultSettings\";\n /** User GVK with the layout. */\n BarLayoutFeatureKind[BarLayoutFeatureKind[\"Gvk\"] = 3] = \"Gvk\";\n})(BarLayoutFeatureKind || (BarLayoutFeatureKind = {}));\n\nfunction provideBarLayout(...features) {\n return makeEnvironmentProviders(_provideBarLayout(features));\n}\nfunction _provideBarLayout(features) {\n return [\n // NOTE dependency needed by layout (to avoid errors)\n importProvidersFrom([MatTooltipModule, MatButtonModule]),\n provideAnimations(),\n Location,\n {\n provide: LocationStrategy,\n useClass: PathLocationStrategy\n },\n _BaasInternalLayoutService,\n BarBurgerprofielEngine,\n BarClassicWidgetsEngine,\n {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue: () => {\n const i18n = inject(BaasI18n);\n i18n.addTranslations('DOMAIN_BAR_LAYOUT', BAR_LAYOUT_I18N);\n }\n },\n {\n provide: BAR_INITIALIZED,\n useClass: BarLayoutInitializedHook,\n multi: true\n },\n {\n provide: BAR_INITIALIZED,\n useClass: BarLayoutMeldingenHook,\n multi: true\n },\n {\n provide: BAR_ERROR_HANDLER,\n useClass: BarLayoutErrorHandlerHook,\n multi: true\n },\n BaasLayoutService,\n {\n provide: BAAS_LAYOUT_GVK,\n useValue: false\n },\n // Providing services for the features\n features?.map((f) => f.providers)\n ];\n}\nfunction withLayoutInterception(options = { logging: false }) {\n return {\n kind: BarLayoutFeatureKind.Interception,\n providers: [provideHttpClient(withInterceptors([barLayoutInterceptor(options)]))]\n };\n}\nfunction withLayoutState(settings) {\n return {\n kind: BarLayoutFeatureKind.CustomSettings,\n providers: [\n {\n provide: BAAS_LAYOUT_STATE,\n useValue: settings\n }\n ]\n };\n}\nfunction withDefaultLayoutState() {\n return {\n kind: BarLayoutFeatureKind.DefaultSettings,\n providers: [\n {\n provide: BAAS_LAYOUT_STATE,\n useClass: BarDefaultLayoutState\n }\n ]\n };\n}\nfunction withLayoutGvk(enabled = true) {\n return {\n kind: BarLayoutFeatureKind.Gvk,\n providers: [\n {\n provide: BAAS_LAYOUT_GVK,\n useValue: enabled\n }\n ]\n };\n}\n\nclass BaasShellComponent {\n #layoutState;\n #core;\n #i18n;\n #toastMessageService;\n #internalLayout;\n #layout;\n #breakpointObserver;\n #gvk;\n #breakpointObserverSubscription;\n constructor() {\n this.#layoutState = inject(BAAS_LAYOUT_STATE);\n this.#core = inject(BarCoreService);\n this.#i18n = inject(BaasI18n);\n this.#toastMessageService = inject(BarToastMessageService);\n this.#internalLayout = inject(_BaasInternalLayoutService);\n this.#layout = inject(BaasLayoutService);\n this.#breakpointObserver = inject(BreakpointObserver);\n this.#gvk = inject(BarLayoutInternalGvkService);\n this._showHeaderFooter = input(undefined, { alias: 'showHeaderFooter' });\n this.showHeaderFooter = computed(() => {\n if (this._showHeaderFooter() !== undefined)\n return this._showHeaderFooter();\n return !this.#layout.compact() && !this.#layout.touch();\n });\n this._loading = input(false, { alias: 'loading' });\n this.loading = computed(() => {\n if (this.#layout.loading() !== undefined)\n return this.#layout.loading();\n return this._loading();\n });\n this._loadingOptions = input(undefined, { alias: 'loading' });\n this.loadingOptions = computed(() => {\n if (this.#layout.loadingOptions() !== undefined)\n return this.#layout.loadingOptions();\n else if (this._loadingOptions() !== undefined)\n return this._loadingOptions();\n return BarLoadingOptions.default;\n });\n this._appLoading = input(false, { alias: 'appLoading' });\n this.appLoading = computed(() => {\n if (this.#layout.appLoading() !== undefined)\n return this.#layout.appLoading();\n return this._appLoading();\n });\n /** @experimental */\n this.responsive = input({ enabled: false });\n this.#initialAppLoader = true;\n effect(() => {\n if (this._loading() !== undefined)\n this.#layout.loading.set(this._loading());\n }, { allowSignalWrites: true });\n effect(() => {\n if (this._loadingOptions() !== undefined)\n this.#layout.loadingOptions.set(this._loadingOptions());\n }, { allowSignalWrites: true });\n effect(() => {\n const appLoading = this.appLoading();\n untracked(() => {\n this.#defineAppLoading(appLoading);\n });\n });\n effect(() => {\n const touch = this.#layout.touch();\n untracked(() => {\n const bodyTouch = document.body.classList.contains('touch');\n if (touch && !bodyTouch)\n document.body.classList.add('touch');\n else if (!touch && bodyTouch)\n document.body.classList.remove('touch');\n });\n });\n this.#core.errorOccurred.pipe(takeUntilDestroyed()).subscribe(() => {\n this.#toastMessageService.addMessage({\n text: this.#i18n.get('DOMAIN_BAAS_CORE.GENERIC_ERROR'),\n type: BarToastMessageType.Error\n });\n });\n effect(() => {\n const compact = this.#layout.compact();\n untracked(() => {\n // whenever compact changes: persist it to backend\n if (compact !== null)\n this.#gvk.persistPageState(compact ? 'compact' : 'default');\n });\n });\n // hook to gvk internal compact changed because we don't want cyclic dependency\n this.#gvk.compactChanged.subscribe((compact) => {\n // when gvk value is loaded from backend we assign it\n this.#layout.compact.set(compact);\n });\n }\n ngOnInit() {\n const element = document.getElementById('favicon');\n element.setAttribute('href', this.#layoutState.favIconUrl);\n if (this.#layoutState.environment) {\n document.body.classList.add(this.#layoutState.environment);\n }\n if (this.#layout.appVersion() === undefined && this.#layoutState.appVersion) {\n this.#layout.appVersion.set(this.#layoutState.appVersion);\n }\n this.#initBreakpointObserver();\n document.title = this.#layoutState.documentTitle;\n this.#gvk.init();\n }\n ngOnDestroy() {\n if (this.#breakpointObserverSubscription)\n this.#breakpointObserverSubscription.unsubscribe();\n }\n #initialAppLoader;\n /** Defines the app loading whereby the app loader appears. */\n #defineAppLoading(value) {\n const loader = document.getElementById('app-loading');\n if (loader) {\n const appRootElements = document.getElementsByTagName('app-root');\n const appRoot = appRootElements.length ? appRootElements[0] : null;\n if (!value) {\n this.#initialAppLoader = false;\n loader.setAttribute('class', 'app-loading-fade-out');\n if (appRoot)\n appRoot.removeAttribute('style');\n // after the animation of 500ms we remove the loader as it stack above the content and is no longer needed\n setTimeout(() => {\n loader.style.display = 'none';\n loader.removeAttribute('class');\n document.body.style.overflow = 'unset';\n }, 500);\n }\n else if (!this.#initialAppLoader) {\n loader.removeAttribute('class');\n loader.style.display = '';\n // hide app root because it is rendered underneath the app-loading\n if (appRoot)\n appRoot.style.display = 'none';\n }\n }\n }\n #initBreakpointObserver() {\n if (!this.responsive()?.enabled)\n return;\n const mobileMaxWidth = this.responsive().mobileWidth || 768;\n const tabletMaxWidth = this.responsive().tabletWidth || 991;\n if (tabletMaxWidth <= mobileMaxWidth)\n console.error(`Tablet width (${tabletMaxWidth} px) cannot be smaller or equal to the mobile width (${mobileMaxWidth} px).`);\n const tabletMinWidth = mobileMaxWidth + 1;\n const mobileWidthExpression = `(max-width: ${mobileMaxWidth}px)`;\n const tabletWidthExpression = `(min-width: ${tabletMinWidth}px) and (max-width: ${tabletMaxWidth}px)`;\n this.#breakpointObserverSubscription = this.#breakpointObserver.observe([mobileWidthExpression, tabletWidthExpression]).subscribe((result) => {\n const [isMobile, isTablet] = [result.breakpoints[mobileWidthExpression], result.breakpoints[tabletWidthExpression]];\n const deviceType = isMobile ? BarDeviceType.Mobile : isTablet ? BarDeviceType.Tablet : BarDeviceType.Desktop;\n this.#internalLayout.deviceType.set(deviceType);\n const touch = isMobile || isTablet;\n this.#layout.touch.set(touch);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasShellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"18.2.13\", type: BaasShellComponent, isStandalone: true, selector: \"baas-shell\", inputs: { _showHeaderFooter: { classPropertyName: \"_showHeaderFooter\", publicName: \"showHeaderFooter\", isSignal: true, isRequired: false, transformFunction: null }, _loading: { classPropertyName: \"_loading\", publicName: \"loading\", isSignal: true, isRequired: false, transformFunction: null }, _loadingOptions: { classPropertyName: \"_loadingOptions\", publicName: \"loading\", isSignal: true, isRequired: false, transformFunction: null }, _appLoading: { classPropertyName: \"_appLoading\", publicName: \"appLoading\", isSignal: true, isRequired: false, transformFunction: null }, responsive: { classPropertyName: \"responsive\", publicName: \"responsive\", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: \"baas-shell\" }, ngImport: i0, template: \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"component\", type: BarGlobalHeaderComponent, selector: \"bar-global-header\" }, { kind: \"component\", type: BarGlobalFooterComponent, selector: \"bar-global-footer\" }, { kind: \"component\", type: BarToastMessagesComponent, selector: \"bar-toast-messages\" }, { kind: \"component\", type: BarLoadingComponent, selector: \"bar-loading\", inputs: [\"options\", \"blockPage\", \"running\"], outputs: [\"optionsChange\", \"runningChange\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasShellComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-shell', standalone: true, host: { class: 'baas-shell' }, imports: [NgStyle, BarGlobalHeaderComponent, BarGlobalFooterComponent, BarToastMessagesComponent, BarLoadingComponent], template: \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\" }]\n }], ctorParameters: () => [] });\n\nclass BarEditPageLoaderComponent {\n constructor() {\n this.hidden = input(false);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEditPageLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"18.2.13\", type: BarEditPageLoaderComponent, isStandalone: true, selector: \"bar-edit-page-loader\", inputs: { hidden: { classPropertyName: \"hidden\", publicName: \"hidden\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: MatProgressBarModule }, { kind: \"component\", type: i1$6.MatProgressBar, selector: \"mat-progress-bar\", inputs: [\"color\", \"value\", \"bufferValue\", \"mode\"], outputs: [\"animationEnd\"], exportAs: [\"matProgressBar\"] }, { kind: \"pipe\", type: BarI18nPipe, name: \"i18n\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEditPageLoaderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-edit-page-loader', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatProgressBarModule, BarI18nPipe], template: \"\\r\\n\" }]\n }] });\n\n/** @experimental BaaS Edit service to be provided by the component implementing BaaS Edit. */\nclass BaasEditService {\n /** Requests a save by first performing validation and checks and completes when terminated. */\n requestSave(options = undefined) {\n if (options == null)\n options = { reason: 'custom' };\n if (options.reason == null)\n options.reason = 'custom';\n return new Promise((resolve) => this._saveRequested({ options, resolve }));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasEditService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasEditService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasEditService, decorators: [{\n type: Injectable\n }] });\n\n/**\n * BaaS edit page component supporting asynchronous operations and signals with OnPush.\n * This integrates with the new layout. */\nclass BaasEditComponent {\n #layout;\n #destroyRef;\n #toastMessageService;\n #i18n;\n #confirm;\n #service;\n #pendingSaveRequests;\n #undoContent;\n #saveContent;\n #showSaveContent;\n #showUndoContent;\n #valid;\n #invalid;\n #contentActionsDisabled;\n #contentActionsHidden;\n #showLoader;\n #showRemarkList;\n #nothingToSave;\n constructor() {\n this.#layout = inject(BaasLayoutService);\n this.#destroyRef = inject(DestroyRef);\n this.#toastMessageService = inject(BarToastMessageService);\n this.#i18n = inject(BaasI18n);\n this.#confirm = inject(BarConfirmService);\n this.#service = inject(BaasEditService, { optional: true });\n this.formRef = viewChild('formRef');\n this.#pendingSaveRequests = [];\n /** The reactive forms control (can be a group or a plain control). */\n this.form = input(undefined);\n /** The status of the save operation. */\n this.saveStatus = input();\n /** Whether still loading. */\n this.loading = input();\n /** Whether pending. */\n this.pending = input();\n /** The error validations. */\n this.validations = input();\n /** Whether readonly. */\n this.readonly = input(false);\n /** Whether the undo must be confirmed. */\n this.confirmUndo = input(false);\n /** Undo confirmation options. */\n this.confirmUndoOptions = input();\n /** Whether to show an undo message after doing the undo. */\n this.showUndoMessage = input(false);\n /** Undo message to show if enabled. */\n this.undoMessage = input(this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.UNDO'));\n /** Undo tooltip. */\n this.undoTooltip = input(this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.UNDO'));\n /** Undo content. */\n this.undoContent = input(undefined);\n /** Whether to show the undo content together with the icon. */\n this.showUndoContent = input(undefined);\n /** Whether the save must be confirmed. */\n this.confirmSave = input(false);\n this.confirmSaveOptions = input();\n /** Whether to show a save message after doing a save. */\n this.showSaveMessage = input(true);\n /** Save message to show if enabled. */\n this.saveMessage = input(this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.SAVE'));\n /** Undo tooltip. */\n this.saveTooltip = input(this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.SAVE'));\n /** Save content. */\n this.saveContent = input(undefined);\n /** Whether to show the save content together with the icon. */\n this.showSaveContent = input(undefined);\n /** Whether valid when pristine. This means if invalid we consider it valid in case it is pristine. */\n this.validWhenPristine = input(false);\n /** Whether the before unload event, in case the user navigates away (href), is disabled. */\n this.beforeUnloadDisabled = input(false);\n /** Whether to show an extra warning when the form is invalid and a save occurs. */\n this.showSaveMessageOnInvalid = input(true);\n /** Whether valid (optional). */\n this.valid = model(undefined);\n /** Whether pristine (optional). */\n this.pristine = model(undefined);\n /** Whether disabled (optional). */\n this.disabled = model(undefined);\n this.submitted = model(false);\n /** Occurs when undo is triggered. */\n this.undo = output();\n /** Occurs when save is triggered. */\n this.save = output();\n /** Occurs when validation is requested. */\n this.validating = output();\n this.#undoContent = computed(() => {\n return this.#showUndoContent() ? this.undoContent() || this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.UNDO') : undefined;\n });\n this.#saveContent = computed(() => {\n return this.#showSaveContent() ? this.saveContent() || this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.SAVE') : undefined;\n });\n this.#showSaveContent = computed(() => this.showSaveContent() === true || (this.showSaveContent() === undefined && !!this.saveContent()));\n this.#showUndoContent = computed(() => this.showUndoContent() === true || (this.showUndoContent() === undefined && !!this.undoContent()));\n this.#valid = computed(() => this.valid() || (this.validWhenPristine() && this.pristine()));\n this.#invalid = computed(() => !this.#valid());\n this.#contentActionsDisabled = computed(() => this.#nothingToSave() || this.saveStatus() === 'pending');\n this.#contentActionsHidden = computed(() => this.readonly());\n this.#showLoader = computed(() => this.loading() || this.pending());\n this.#showRemarkList = computed(() => this.submitted() && this.validations().length);\n this.#nothingToSave = computed(() => this.pristine() || this.disabled() || this.readonly());\n this.viewModel = computed(() => {\n return {\n showLoader: this.#showLoader(),\n showRemarkList: this.#showRemarkList(),\n validations: this.validations(),\n loading: this.loading(),\n submitted: this.submitted()\n };\n });\n this.#contentActions = computed(() => {\n return [\n {\n icon: {\n class: 'fas fa-save',\n iconOnly: !this.#showSaveContent(),\n srText: this.saveTooltip()\n },\n hidden: this.#contentActionsHidden(),\n disabled: this.#contentActionsDisabled(),\n action: () => this.#save({ reason: 'regular' }),\n tooltip: this.saveTooltip(),\n content: this.#saveContent()\n },\n {\n icon: {\n class: 'fas fa-undo',\n iconOnly: !this.#showUndoContent(),\n srText: this.undoTooltip()\n },\n hidden: this.#contentActionsHidden(),\n disabled: this.#contentActionsDisabled(),\n action: () => this.#undo(),\n tooltip: this.undoTooltip(),\n content: this.#undoContent()\n }\n ];\n });\n effect(() => {\n const saveStatus = this.saveStatus();\n untracked(() => {\n switch (saveStatus) {\n case 'fulfilled':\n case 'fullfilled': {\n this.#markAsPristine();\n this.submitted.set(false);\n if (this.showSaveMessage()) {\n this.#toastMessageService.addMessage({\n type: BarToastMessageType.Success,\n text: this.saveMessage()\n });\n }\n this.#completeSaveRequests('saved');\n break;\n }\n case 'error': {\n this.#completeSaveRequests('error');\n break;\n }\n }\n });\n });\n effect(() => {\n const disabled = this.disabled();\n untracked(() => {\n const form = this.form();\n if (form && form.disabled !== disabled) {\n if (disabled)\n form.disable();\n else\n form.enable();\n }\n });\n });\n effect(() => {\n const formRef = this.formRef();\n if (formRef) {\n // add a hidden button for screenreaders (web toegankelijkheid)\n const btn = document.createElement('button');\n btn.type = 'submit';\n btn.className = 'sr-only';\n btn.tabIndex = -1;\n btn.innerText = this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.SAVE');\n btn.setAttribute('aria-hidden', 'true');\n btn.onclick = () => this.#save({ reason: 'regular' });\n formRef.nativeElement.appendChild(btn);\n }\n });\n effect(() => this.#layout.contentActions.set(this.#contentActions()), { allowSignalWrites: true });\n }\n ngOnInit() {\n if (this.#service) {\n // register callback when save is requested\n this.#service._saveRequested = (value) => {\n this.#pendingSaveRequests.push(value.resolve);\n if (this.saveStatus() !== 'pending')\n this.#save(value.options);\n };\n }\n if (this.form()) {\n const assignFormSignals = () => {\n this.valid.set(this.form().valid);\n this.pristine.set(this.form().pristine);\n this.disabled.set(this.form().disabled);\n };\n assignFormSignals();\n this.form()\n .events.pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((_event) => assignFormSignals());\n }\n this.#defineBeforeUnload();\n }\n ngOnDestroy() {\n this.#layout.contentActions.set([]);\n window.onbeforeunload = null;\n if (this.#service)\n this.#service._saveRequested = undefined;\n this.#completeSaveRequests('destroy');\n }\n #contentActions;\n #undo() {\n const undo = () => {\n this.undo.emit();\n this.#markAsPristine();\n this.submitted.set(false);\n if (this.showUndoMessage()) {\n this.#toastMessageService.addMessage({\n type: BarToastMessageType.Info,\n text: this.undoMessage()\n });\n }\n };\n if (this.confirmUndo()) {\n const confirmOptions = this.confirmUndoOptions() ? this.confirmUndoOptions() : {};\n if (!confirmOptions.message)\n confirmOptions.message = this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE_UNDO');\n if (!confirmOptions.title)\n confirmOptions.title = this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE');\n this.#confirm.confirm(confirmOptions).subscribe(() => undo());\n }\n else\n undo();\n }\n #save(options) {\n const save = () => {\n this.submitted.set(true);\n this.validating.emit();\n if (this.#valid())\n this.save.emit(options);\n else {\n // show an extra message why validation has failed\n this.#tryEmitSaveMessageOnInvalid(options.reason);\n this.#completeSaveRequests('validation');\n }\n };\n if (this.#nothingToSave()) {\n this.#completeSaveRequests('nothingToSave');\n }\n else {\n if (this.confirmSave() === true || this.confirmSave() === 'always' || (options.reason === 'autosave' && this.confirmSave() === 'autosave')) {\n const confirmOptions = this.confirmSaveOptions() ? this.confirmSaveOptions() : {};\n if (!confirmOptions.message)\n confirmOptions.message = this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE_SAVE');\n if (!confirmOptions.title)\n confirmOptions.title = this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE');\n this.#confirm.confirm(confirmOptions).subscribe(() => save());\n }\n else\n save();\n }\n }\n #markAsPristine() {\n if (this.form()) {\n this.form().markAsPristine();\n this.form().markAsUntouched();\n }\n else\n this.pristine.set(true);\n }\n #defineBeforeUnload() {\n window.onbeforeunload = (e) => {\n // in case nothing changed or not active just return\n if (this.beforeUnloadDisabled() || this.#nothingToSave()) {\n return;\n }\n e.preventDefault();\n return this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.LEAVE_PAGE');\n };\n }\n #completeSaveRequests(outcome) {\n const success = outcome === 'saved' || outcome === 'nothingToSave';\n this.#pendingSaveRequests.forEach((resolve) => resolve({ success, outcome }));\n this.#pendingSaveRequests = [];\n }\n #tryEmitSaveMessageOnInvalid(reason) {\n if (this.showSaveMessageOnInvalid()) {\n this.#toastMessageService.addMessage({\n text: this.#i18n.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.' + (reason === 'autosave' ? 'INVALID_AUTOSAVE' : 'INVALID')),\n type: BarToastMessageType.Error\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasEditComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BaasEditComponent, isStandalone: true, selector: \"baas-edit\", inputs: { form: { classPropertyName: \"form\", publicName: \"form\", isSignal: true, isRequired: false, transformFunction: null }, saveStatus: { classPropertyName: \"saveStatus\", publicName: \"saveStatus\", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: \"loading\", publicName: \"loading\", isSignal: true, isRequired: false, transformFunction: null }, pending: { classPropertyName: \"pending\", publicName: \"pending\", isSignal: true, isRequired: false, transformFunction: null }, validations: { classPropertyName: \"validations\", publicName: \"validations\", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: true, isRequired: false, transformFunction: null }, confirmUndo: { classPropertyName: \"confirmUndo\", publicName: \"confirmUndo\", isSignal: true, isRequired: false, transformFunction: null }, confirmUndoOptions: { classPropertyName: \"confirmUndoOptions\", publicName: \"confirmUndoOptions\", isSignal: true, isRequired: false, transformFunction: null }, showUndoMessage: { classPropertyName: \"showUndoMessage\", publicName: \"showUndoMessage\", isSignal: true, isRequired: false, transformFunction: null }, undoMessage: { classPropertyName: \"undoMessage\", publicName: \"undoMessage\", isSignal: true, isRequired: false, transformFunction: null }, undoTooltip: { classPropertyName: \"undoTooltip\", publicName: \"undoTooltip\", isSignal: true, isRequired: false, transformFunction: null }, undoContent: { classPropertyName: \"undoContent\", publicName: \"undoContent\", isSignal: true, isRequired: false, transformFunction: null }, showUndoContent: { classPropertyName: \"showUndoContent\", publicName: \"showUndoContent\", isSignal: true, isRequired: false, transformFunction: null }, confirmSave: { classPropertyName: \"confirmSave\", publicName: \"confirmSave\", isSignal: true, isRequired: false, transformFunction: null }, confirmSaveOptions: { classPropertyName: \"confirmSaveOptions\", publicName: \"confirmSaveOptions\", isSignal: true, isRequired: false, transformFunction: null }, showSaveMessage: { classPropertyName: \"showSaveMessage\", publicName: \"showSaveMessage\", isSignal: true, isRequired: false, transformFunction: null }, saveMessage: { classPropertyName: \"saveMessage\", publicName: \"saveMessage\", isSignal: true, isRequired: false, transformFunction: null }, saveTooltip: { classPropertyName: \"saveTooltip\", publicName: \"saveTooltip\", isSignal: true, isRequired: false, transformFunction: null }, saveContent: { classPropertyName: \"saveContent\", publicName: \"saveContent\", isSignal: true, isRequired: false, transformFunction: null }, showSaveContent: { classPropertyName: \"showSaveContent\", publicName: \"showSaveContent\", isSignal: true, isRequired: false, transformFunction: null }, validWhenPristine: { classPropertyName: \"validWhenPristine\", publicName: \"validWhenPristine\", isSignal: true, isRequired: false, transformFunction: null }, beforeUnloadDisabled: { classPropertyName: \"beforeUnloadDisabled\", publicName: \"beforeUnloadDisabled\", isSignal: true, isRequired: false, transformFunction: null }, showSaveMessageOnInvalid: { classPropertyName: \"showSaveMessageOnInvalid\", publicName: \"showSaveMessageOnInvalid\", isSignal: true, isRequired: false, transformFunction: null }, valid: { classPropertyName: \"valid\", publicName: \"valid\", isSignal: true, isRequired: false, transformFunction: null }, pristine: { classPropertyName: \"pristine\", publicName: \"pristine\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null }, submitted: { classPropertyName: \"submitted\", publicName: \"submitted\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valid: \"validChange\", pristine: \"pristineChange\", disabled: \"disabledChange\", submitted: \"submittedChange\", undo: \"undo\", save: \"save\", validating: \"validating\" }, viewQueries: [{ propertyName: \"formRef\", first: true, predicate: [\"formRef\"], descendants: true, isSignal: true }], ngImport: i0, template: \"@let vm = viewModel();\\r\\n@if (vm.showLoader) {\\r\\n
\\r\\n \\r\\n
\\r\\n}\\r\\n@if (!vm.loading) {\\r\\n @if (vm.showRemarkList) {\\r\\n \\r\\n \\r\\n @for (validation of vm.validations; track $index) {\\r\\n {{ validation.message }}\\r\\n }\\r\\n \\r\\n }\\r\\n
\\r\\n \\r\\n
\\r\\n}\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1$4.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1$4.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1$4.NgForm, selector: \"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\", inputs: [\"ngFormOptions\"], 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\"] }, { kind: \"component\", type: BarRemarkComponent, selector: \"bar-remark\", inputs: [\"remark\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BaasEditComponent, decorators: [{\n type: Component,\n args: [{ selector: 'baas-edit', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgClass, FormsModule, BarRemarkListComponent, BarEditPageLoaderComponent, BarRemarkComponent], template: \"@let vm = viewModel();\\r\\n@if (vm.showLoader) {\\r\\n
\\r\\n \\r\\n
\\r\\n}\\r\\n@if (!vm.loading) {\\r\\n @if (vm.showRemarkList) {\\r\\n \\r\\n \\r\\n @for (validation of vm.validations; track $index) {\\r\\n {{ validation.message }}\\r\\n }\\r\\n \\r\\n }\\r\\n
\\r\\n \\r\\n
\\r\\n}\\r\\n\" }]\n }], ctorParameters: () => [] });\n\nfunction baasEditCanDeactivateGuard() {\n return async (component) => {\n if (component.requestSave) {\n const result = await component.requestSave({ reason: 'autosave' });\n return result.success;\n }\n return true;\n };\n}\n\nvar BarEditPageLoadReason;\n(function (BarEditPageLoadReason) {\n /** Regular load */\n BarEditPageLoadReason[BarEditPageLoadReason[\"Load\"] = 0] = \"Load\";\n /** Load because a save happened */\n BarEditPageLoadReason[BarEditPageLoadReason[\"Save\"] = 1] = \"Save\";\n /** Load after undo */\n BarEditPageLoadReason[BarEditPageLoadReason[\"Undo\"] = 2] = \"Undo\";\n})(BarEditPageLoadReason || (BarEditPageLoadReason = {}));\n\nclass BarEditPageService {\n constructor() {\n // internal observables\n this.__load$ = new Subject();\n this.__requestSave$ = new Subject();\n this.__undo$ = new Subject();\n this.__delete$ = new Subject();\n /** Internal property. Do not use. */\n this._load$ = this.__load$.asObservable();\n /** Internal property. Do not use. */\n this._requestSave$ = this.__requestSave$.asObservable();\n /** Internal property. Do not use. */\n this._undo$ = this.__undo$.asObservable();\n /** Internal property. Do not use. */\n this._delete$ = this.__delete$.asObservable();\n }\n ngOnDestroy() {\n this.__load$.complete();\n this.__requestSave$.complete();\n this.__undo$.complete();\n this.__delete$.complete();\n }\n /** Invokes the load on the edit page with a given model. */\n load(model, options = { loadModel: true, reason: BarEditPageLoadReason.Load, callOnLoad: true }) {\n return new Observable((subscriber) => {\n this.__load$.next({ model, options, subscriber });\n });\n }\n /** Requests a save with validation and returns a flag determining whether it was saved. */\n requestSave(options) {\n return new Observable((subscriber) => {\n this.__requestSave$.next({ options, subscriber });\n });\n }\n /** Performs the undo. */\n undo() {\n return new Observable((subscriber) => {\n this.__undo$.next({ subscriber });\n });\n }\n /** Performs delete and returns a flag determining whether it was deleted. */\n delete() {\n return new Observable((subscriber) => {\n this.__delete$.next({ subscriber });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEditPageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEditPageService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEditPageService, decorators: [{\n type: Injectable\n }] });\n\n/** BAR edit page initialization arguments. */\nclass BarEditPageLoadArgs {\n}\n\n/** Arguments object for edit page save. */\nclass BarEditPageSaveArgs {\n constructor() {\n /** Whether to prevent the load after a successfull save. */\n this.preventLoad = false;\n }\n}\n\n/** The trigger which caused the save action. */\nvar BarEditPageSaveReason;\n(function (BarEditPageSaveReason) {\n /** The save happened because the user clicked on the save button. */\n BarEditPageSaveReason[BarEditPageSaveReason[\"Default\"] = 0] = \"Default\";\n /** The save happened because of an autosave. */\n BarEditPageSaveReason[BarEditPageSaveReason[\"Autosave\"] = 1] = \"Autosave\";\n /** Custom reason (save function invoked). */\n BarEditPageSaveReason[BarEditPageSaveReason[\"Custom\"] = 2] = \"Custom\";\n})(BarEditPageSaveReason || (BarEditPageSaveReason = {}));\n\n/** Options for performing a save operation. */\nclass BarEditPageSaveOptions {\n constructor() {\n /** The reason why a save is performed */\n this.reason = BarEditPageSaveReason.Custom;\n /** Whether to suppress the save message. */\n this.suppressSaveMessage = false;\n /** Whether the page should exist edit modus and go back into readonly or disabled modus. */\n this.exitEdit = false;\n }\n}\n\n// NOTE added this to avoid Ivy compilation errors (classes without decorators)\n/** @deprecated Use the angular component instead.\n * Edit page base class component. */\nclass BarEditPageBaseComponent {\n /** Activated route */\n #route;\n /** Layout service */\n #destroyRef;\n /** Translate service */\n #translate;\n /** Confirmation service */\n #confirm;\n /** Internal layout service */\n #internalLayout;\n #toastMessage;\n #savePending$;\n #disabled;\n #submitted;\n // edit tooltip override (to show tooltip in case disabled)\n #editTooltip;\n #formRef;\n #formElement;\n #firstLoad;\n // NOTE this flag is used in case we have disabled/readonly modus with editable functionality (edit button)\n #disabledEditing;\n #deleteTooltip;\n #saveTooltip;\n #undoTooltip;\n #saveMessage;\n #undoMessage;\n #deleteMessage;\n #confirmDeleteMessage;\n #confirmSaveMessage;\n #confirmUndoMessage;\n // subscription in case ngSubmit mechanism is used on form (remember this one to unsubscribe from it)\n #ngSubmitSubscription;\n /**\n * Constructor accepting injector.\n * @param injector Injector needed for the base component to get all it's needed providers.\n */\n constructor(/** @deprecated Not used anymore */ injector = undefined) {\n /** Activated route */\n this.#route = inject(ActivatedRoute);\n /** Layout service */\n this.#destroyRef = inject(DestroyRef);\n /** Translate service */\n this.#translate = inject(BaasI18n);\n /** Confirmation service */\n this.#confirm = inject(BarConfirmService);\n /** Internal layout service */\n this.#internalLayout = inject(_BarInternalLayoutService);\n this.#toastMessage = inject(BarToastMessageService);\n /** Whether the item in the page is deletable in case in edit modus. A delete button will appear. */\n this.deletable = false;\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. */\n this.forceDeletable = false;\n /** Whether the item in the page is saveable in case in edit modus. If true (default) the save and undo buttons appear. */\n this.saveable = true;\n /** Whether the page is in readonly. This means we don't have save/undo/delete buttons. */\n this.readonly = false;\n /** Whether editable. If not defined it is immediately editable if not readonly.\n * If readonly == true && editable == true then an edit button appears. */\n this.editable = null;\n /** Whether to automatically define the save model. It will be filled in the model property of BarEditPageSaveArgs. */\n this.autoGenerateSaveModel = true;\n /** Whether the undo action must be confirmed */\n this.confirmUndo = false;\n /** Whether the save action must be confirmed */\n this.confirmSave = false;\n /** Whether to show an undo message after doing the undo. */\n this.showUndoMessage = false;\n /** Whether to show a delete message after doing the delete. */\n this.showDeleteMessage = false;\n /** Whether to show a save message after doing a save. */\n this.showSaveMessage = true;\n /** Whether to force to be in valid modus even if the form is invalid */\n this.forceValid = false;\n /** Whether to force that the edit button is visible even if edit disabled in case using the editable flag */\n this.forceEditActionVisible = false;\n /** Whether the form must be valid in case the form is pristine.\n * The default behavior is false: In case pristine no validation is done. */\n this.enforceValidOnPristine = false;\n /** Whether the before unload event, in case the user navigates away (href), is disabled. */\n this.beforeUnloadDisabled = false;\n /** Whether to show an extra warning when the form is invalid and a save occurs. */\n this.showSaveMessageOnInvalid = true;\n this.#savePending$ = new BehaviorSubject(false);\n this.#disabled = false;\n this.#submitted = false;\n // edit tooltip override (to show tooltip in case disabled)\n this.#editTooltip = null;\n this.#firstLoad = true;\n // NOTE this flag is used in case we have disabled/readonly modus with editable functionality (edit button)\n this.#disabledEditing = null;\n }\n // NOTE here we use { static: false } because form can be assigned with *ngIf\n // we use a set property because we need to do register the form submit to invoke the save when the viewchild gets assigned\n /** Represents the edit form in case the consuming code is using template driven forms. */\n set formElement(formElement) {\n if (formElement != null) {\n this.#formElement = formElement;\n // unsubscribe in case already subscribed to prevent multiple subscriptions\n if (this.#ngSubmitSubscription)\n this.#ngSubmitSubscription.unsubscribe();\n // here we make sure a submit performs a save and set up the system for submit on enter\n this.#ngSubmitSubscription = this.formElement.ngSubmit.subscribe(() => {\n this.save({\n reason: BarEditPageSaveReason.Default,\n // only make readonly in case the form is editable (and property is being used must not be NULL)\n exitEdit: this.editable === true\n }).subscribe();\n });\n }\n }\n get formElement() {\n return this.#formElement;\n }\n // NOTE here we use { static: false } because form can be assigned with *ngIf\n // we also use a set property because we need to do register the hidden submit button in the form\n /** Represents the element ref of the form */\n set formRef(formRef) {\n if (formRef != null) {\n this.#formRef = formRef;\n // add a hidden button for screenreaders (web toegankelijkheid)\n const btn = document.createElement('button');\n btn.type = 'submit';\n btn.className = 'sr-only';\n btn.tabIndex = -1;\n btn.innerText = this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.SAVE');\n btn.setAttribute('aria-hidden', 'true');\n this.formRef.nativeElement.appendChild(btn);\n }\n }\n get formRef() {\n return this.#formRef;\n }\n /** Whether the edit page has changed */\n get dirty() {\n return this.#formWrapper != null ? this.#formWrapper.dirty : false;\n }\n /** Whether the edit page is valid. */\n get valid() {\n // the page is valid in case the form is valid or if the consumer forces it to be valid (forceValid)\n return this.forceValid || (this.#formWrapper != null ? this.#formWrapper.valid : true);\n }\n /** Whether the edit page has not changed */\n get pristine() {\n return !this.dirty;\n }\n /** Whether the edit page is not valid. */\n get invalid() {\n return !this.valid;\n }\n get showValidations() {\n return this.submitted && this.invalid && !this.readonly;\n }\n /** Whether the user performed a submit directly or indirectly. */\n get submitted() {\n return this.#submitted;\n }\n set submitted(value) {\n this.#submitted = value;\n if (this.formRef != null) {\n // avoid developer to remember setting this\n if (value) {\n this.formRef.nativeElement.classList.add('ng-submitted');\n }\n else {\n this.formRef.nativeElement.classList.remove('ng-submitted');\n }\n }\n this._onSubmitted(value);\n }\n /** Whether the page is in disabled modus.\n * This means we have save/undo buttons but these appear as disabled and the form gets disabled. */\n get disabled() {\n // disabled is determined if form is disabled and if not using a form we use the flag to determine if disabled\n return this.#formWrapper != null ? this.#formWrapper.disabled : this.#disabled;\n }\n set disabled(value) {\n this.#disabled = value;\n this.#applyEnabledDisabledLogic();\n }\n /** Gets the tooltip on the delete button. */\n get deleteTooltip() {\n return this.#deleteTooltip || this.deleteContent || this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.DELETE');\n }\n set deleteTooltip(value) {\n this.#deleteTooltip || value;\n }\n /** Tooltip on the save button */\n get saveTooltip() {\n return this.#saveTooltip || this.saveContent || this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.SAVE');\n }\n set saveTooltip(value) {\n this.#saveTooltip = value;\n }\n /** Tooltip on the edit button. */\n get editTooltip() {\n return this.#editTooltip || this.editContent || this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.EDIT');\n }\n set editTooltip(tooltip) {\n this.#editTooltip = tooltip;\n }\n /** Tooltip on the undo button. */\n get undoTooltip() {\n return this.#undoTooltip || this.undoContent || this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ACTION.UNDO');\n }\n set undoTooltip(value) {\n this.#undoTooltip = value;\n }\n /** Delete success message. */\n get deleteMessage() {\n return this.#deleteMessage || this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.DELETE');\n }\n set deleteMessage(value) {\n this.#deleteMessage = value;\n }\n /** Save success message. */\n get saveMessage() {\n return this.#saveMessage || this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.SAVE');\n }\n set saveMessage(value) {\n this.#saveMessage = value;\n }\n /** Undo performed message */\n get undoMessage() {\n return this.#undoMessage || this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.UNDO');\n }\n set undoMessage(value) {\n this.#undoMessage = value;\n }\n /** @deprecated Use confirmDeleteOptions. Message within delete confirmation. */\n get confirmDeleteMessage() {\n return this.#confirmDeleteMessage || this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE_DELETE');\n }\n set confirmDeleteMessage(value) {\n this.#confirmDeleteMessage = value;\n }\n /** Message within undo confirmation. */\n get confirmUndoMessage() {\n return this.#confirmUndoMessage || this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE_UNDO');\n }\n set confirmUndoMessage(value) {\n this.#confirmUndoMessage = value;\n }\n /** Message within save confirmation. */\n get confirmSaveMessage() {\n return this.#confirmSaveMessage || this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE_SAVE');\n }\n set confirmSaveMessage(value) {\n this.#confirmSaveMessage = value;\n }\n /** Reference to form control which can be reactive or template-driven. */\n get #formWrapper() {\n let result = null;\n if (this.form != null) {\n // reactive form gets presedence over reactive\n result = this.form;\n }\n else if (this.formElement != null) {\n // in case of template driven forms we have reactive form component inside the template driven form\n result = this.formElement.form;\n }\n return result;\n }\n ngOnInit() {\n this.#defineLayout();\n this.#defineBeforeUnload();\n this.onInit();\n this.#route.data.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((data) => {\n if (data.model !== undefined) {\n // by convention we get the model from the activated route through a resolver\n // but it is not mandatory to use resolver\n // in that case the consumer needs to call the load manually\n const load$ = this.load(data.model, true, BarEditPageLoadReason.Load);\n if (load$ !== undefined) {\n // if load is not a void we subscribe to it as an observable\n load$.subscribe();\n }\n }\n });\n }\n ngOnDestroy() {\n // complete the pending save behavior subject\n this.#savePending$.complete();\n if (this.#ngSubmitSubscription)\n this.#ngSubmitSubscription.unsubscribe();\n this.#clearLayout();\n this.onDestroy();\n }\n /** Performs a delete and returns an Observable which is false in case the delete was aborted or if delete is not possible.\n * (disabled, readonly, not deletable). */\n delete() {\n return new Observable((subscriber) => {\n if ((this.disabled || this.readonly) && !this.forceDeletable) {\n subscriber.next(false);\n subscriber.complete();\n }\n else {\n const confirmOptions = this.confirmDeleteOptions ? this.confirmDeleteOptions : {};\n if (!confirmOptions.message)\n confirmOptions.message = this.confirmDeleteMessage;\n if (!confirmOptions.title)\n confirmOptions.title = this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE');\n this.#confirm.confirm(confirmOptions).subscribe(() => {\n // it's up to the consumer to define what happens after a delete in the onDelete:\n // - redirect to other URL\n // - Do a route navigation\n // - Stay on the same page but\n // (for example deleting last versie in a dossier which would lead to the previous version)\n const delete$ = this.onDelete();\n if (delete$ != null) {\n this.onDelete().subscribe((result) => {\n const deleted = typeof result === 'boolean' ? result : true;\n if (deleted && this.showDeleteMessage) {\n this.#toastMessage.addMessage({\n text: this.deleteMessage,\n type: BarToastMessageType.Success\n });\n }\n subscriber.next(deleted);\n subscriber.complete();\n });\n }\n else {\n subscriber.next(false);\n subscriber.complete();\n }\n });\n }\n });\n }\n // implement BarEditPageConsumer\n requestSave(input) {\n return this.save(input);\n }\n /**\n * Saves everything and returns an Observable which is false in case invalid.\n */\n save(input = { reason: BarEditPageSaveReason.Custom }) {\n return new Observable((subscriber) => {\n const completeSave = (value) => {\n this.#savePending$.next(false);\n subscriber.next(value);\n subscriber.complete();\n };\n // don't do anything as long as it a save is pending (to avoid having onSave called while a save is already ongoing)\n this.#savePending$\n .pipe(skipWhile((pending) => pending), take(1))\n .subscribe(() => {\n this.#savePending$.next(true);\n // pre-saving logic\n const savingResult$ = resolveValue$(this.onSaving());\n savingResult$.subscribe((savingResult) => {\n const options = this.#processSaveOptions(input);\n // in case the consumer returns false we stop proceeding\n if (typeof savingResult === 'boolean' && savingResult === false) {\n completeSave(false);\n }\n else {\n // if nothing has changed or if it is readonly or disabled we just mark it as completed true\n // enforceValidOnPristine is used to force validation and save even if it is pristine\n // NOTE that a form which is invalid but nothing has changed in an autosave scenario does not enforce validity\n // and doesn't cause an onSave action to be invoked\n const ommitSave = ((this.readonly || this.disabled) && (this.editable == null || this.editable === false)) ||\n (options.reason == BarEditPageSaveReason.Autosave && this.pristine && (this.valid || !this.enforceValidOnPristine));\n if (ommitSave) {\n completeSave(true);\n }\n // if it isn't valid we mark it as completed false\n else if (!this.valid) {\n // if not dirty we want to mark the form as dirty so that the save button is enabled\n this.#markDirty();\n // show an extra message why validation has failed\n this.#tryEmitSaveMessageOnInvalid(options.reason);\n this.submitted = true;\n completeSave(false);\n }\n else {\n this.submitted = true;\n const performSave = () => {\n const args = new BarEditPageSaveArgs();\n args.reason = options.reason;\n args.model = this.autoGenerateSaveModel ? this.getMutedModel(options.data) : null;\n args.data = options.data;\n // in case we are doing an auto save we do not need to reload the model because we are navigating away\n args.preventLoad = options.reason == BarEditPageSaveReason.Autosave;\n const save$ = this.onSave(args);\n // check if we have something to save\n if (save$ != null) {\n save$\n .pipe(catchError((err) => {\n completeSave(false);\n return throwError(err);\n }))\n .subscribe((model) => {\n // by default we have a success, we can only block the save by returning a boolean of false\n let success = true;\n let loadModel = true;\n // if we got a boolean result and the orinal model is not a boolean\n // we assume the boolean indicates whether a success occured or a failure\n if (typeof model === 'boolean' && typeof this.model !== 'boolean') {\n // if we got a boolean the success is defined by the result we got (boolean)\n success = model;\n // a boolean means we didn't really get a model, so we won't assign it\n model = null;\n loadModel = false;\n }\n else if (model == undefined) {\n // here we have a void return so we won't load anything regarding the model\n loadModel = false;\n }\n if (success) {\n if (this.showSaveMessage && options.suppressSaveMessage !== true) {\n this.#toastMessage.addMessage({\n text: this.saveMessage,\n type: BarToastMessageType.Success\n });\n }\n // here we check if we should go into readonly or disabled after saving\n if (options.exitEdit === true) {\n if (this.#disabledEditing) {\n this.disabled = true;\n }\n else {\n this.readonly = true;\n }\n // reset flag\n this.#disabledEditing = null;\n }\n const complete = () => {\n this.#markPristine();\n completeSave(true);\n };\n // here we check if the consumer wants to have the load called again\n // (maybe user wants to navigate away whereby the load is irrelevant)\n if (args.preventLoad !== true) {\n // do the load again and call the onLoad\n const load$ = this.load(model, loadModel, BarEditPageLoadReason.Save);\n if (load$ !== undefined) {\n load$.subscribe(() => {\n complete();\n });\n }\n else\n complete();\n }\n else\n complete();\n }\n else {\n // we were not successfull meaning we have to show the error message again (if enabled)\n this.#tryEmitSaveMessageOnInvalid(args.reason);\n completeSave(false);\n }\n });\n }\n else {\n // nothing to save\n completeSave(true);\n }\n };\n // check if we need to ask for a confirmation\n if (this.confirmSave) {\n const confirmOptions = this.confirmSaveOptions ? this.confirmSaveOptions : {};\n if (!confirmOptions.message)\n confirmOptions.message = this.confirmSaveMessage;\n if (!confirmOptions.title)\n confirmOptions.title = this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE');\n // we are about to save: ask confirmation\n this.#confirm.open(confirmOptions).subscribe((result) => {\n if (result) {\n // do the save in case the user confirms\n performSave();\n }\n else {\n // the user refutes to do the save after having been asked for a confirmation\n completeSave(false);\n }\n });\n }\n else {\n // no confirmation needed -> just perform the save\n performSave();\n }\n }\n }\n });\n });\n });\n }\n undo() {\n return new Observable((subscriber) => {\n const undoLogic = () => {\n this.model = this.#deepClone(this.originalModel);\n this.#doLoad(BarEditPageLoadReason.Undo);\n this.#markPristine();\n if (this.showUndoMessage) {\n this.#toastMessage.addMessage({\n text: this.undoMessage,\n type: BarToastMessageType.Info\n });\n }\n const complete = () => {\n // complete the global observable\n subscriber.next();\n subscriber.complete();\n };\n // call the undo which can return an Observable of void or be of return type void\n const undo$ = this.onUndo();\n if (undo$ != null) {\n undo$.subscribe(() => {\n complete();\n });\n }\n else {\n complete();\n }\n };\n if (this.confirmUndo) {\n const confirmOptions = this.confirmUndoOptions ? this.confirmUndoOptions : {};\n if (!confirmOptions.message)\n confirmOptions.message = this.confirmUndoMessage;\n if (!confirmOptions.title)\n confirmOptions.title = this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.ARE_YOU_SURE');\n this.#confirm.confirm(confirmOptions).subscribe(() => {\n undoLogic();\n });\n }\n else {\n undoLogic();\n }\n });\n }\n /** First time initialization. */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onInit() { }\n /**\n * Loading (load the data).\n * @param args\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onLoad(args) { }\n /** Ovveride to perform action when clicking the edit button to go into edit modus (pencil) in case using the editable flag. */\n onEdit() { }\n /** Override to perform action before the save and before validation.\n * Prevent the save from proceeding by returning (observable of) false. */\n onSaving() { }\n /** Override to perform the save after validation has succeeded.\n * An observable is returned with the model or a boolean for success or no success (in case the model is not a boolean)\n * or a void if nothing has to happen. */\n onSave(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n args) {\n return null;\n }\n /** Override to perform the delete.\n * An observable is returned with a boolean for success or no success/abort or a void which means success. */\n onDelete() {\n return null;\n }\n /** Override to perform undo. */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onUndo() { }\n /** Override this for destruction. */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onDestroy() { }\n /** Collects a cloned model including all the changes and extra data. */\n getMutedModel(data) {\n // in case the model is an object we apply cloning logic (advanced)\n // in case the model is null we check if the form element contains an object (FormGroup versus FormControl/FormArray)\n if (typeof this.model === 'object' || (!this.model && typeof this.form.value === 'object')) {\n const clonedModel = {};\n // clone original model\n Object.assign(clonedModel, this.model);\n if (this.form != null) {\n // apply the form if it exists\n Object.assign(clonedModel, this.form.value);\n }\n if (data != null) {\n Object.assign(clonedModel, data);\n }\n return clonedModel;\n }\n else {\n return this.form.value;\n }\n }\n // Internal function\n _onSubmitted(submitted) { }\n load(\n // the model being loaded\n model = undefined, \n // whether to assign the model and to make internal clone for undo purposes\n loadModel = true, \n // the reason why the load is invoked\n reason = BarEditPageLoadReason.Load, \n // whether to call the onload function again on the consumer (which one does not always want)\n callOnLoad = true) {\n if (loadModel) {\n this.model = model;\n // keep original model for undo purposes\n this.originalModel = this.#deepClone(this.model);\n }\n return this.#doLoad(reason, callOnLoad);\n }\n #deepClone(model) {\n // NOTE in case we have the @lvflanders/bar module we use the deepClone method otherwise the begar function\n return model != null ? deepClone(model) : null;\n }\n #doLoad(reason, callOnLoad = true) {\n this.submitted = false;\n if (callOnLoad) {\n const args = new BarEditPageLoadArgs();\n args.reason = reason;\n args.firstLoad = this.#firstLoad;\n args.model = this.model;\n this.#firstLoad = false;\n if (callOnLoad)\n return this.onLoad(args);\n }\n }\n #applyEnabledDisabledLogic() {\n if (this.#formWrapper != null) {\n if (this.#disabled) {\n this.#formWrapper.disable();\n }\n else {\n this.#formWrapper.enable();\n }\n }\n }\n #defineBeforeUnload() {\n window.onbeforeunload = (e) => {\n // in case nothing changed or not active just return\n if (this.beforeUnloadDisabled || this.pristine || this.disabled || this.readonly) {\n return;\n }\n e = e || window.event;\n // For IE and Firefox\n if (e) {\n e.returnValue = this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.LEAVE_PAGE');\n }\n // For Safari / Chrome\n return this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.LEAVE_PAGE');\n };\n }\n #clearLayout() {\n // clear the internal content actions because these were defined in this base component\n this.#internalLayout.setInternalContentActions([]);\n }\n #defineLayout() {\n this.#internalLayout.setInternalContentActions([\n {\n icon: {\n class: 'fa fa-pencil-alt',\n iconOnly: () => this.editContent == null,\n srText: this.editTooltip\n },\n hidden: () => {\n // visible in case it is editable and in readonly or editable modus\n // difference between readonly and disabled is just that the form is disabled in case of disabled\n const visible = this.editable === true && (this.readonly || this.disabled);\n return !visible;\n },\n title: () => this.editTooltip,\n action: () => {\n // action depends on what flag we are using\n if (this.readonly === true) {\n // we are in readonly modus to go in edit modus\n this.readonly = false;\n this.#disabledEditing = false;\n }\n else if (this.disabled === true) {\n // we are in disabled modus to go in edit modus\n this.disabled = false;\n this.#disabledEditing = true;\n }\n this.onEdit();\n },\n disabled: () => {\n return this.editable === false;\n },\n content: () => this.editContent\n },\n {\n icon: {\n class: 'fas fa-save',\n iconOnly: () => this.saveContent == null,\n srText: this.saveTooltip\n },\n disabled: () => {\n return !this.dirty || this.disabled;\n },\n action: () => {\n if (this.formElement != null) {\n // emit the submit on the element (default enter key support)\n this.formElement.ngSubmit.emit();\n }\n else {\n // the user didn't put the form element template variable just immediately save it\n this.save({\n reason: BarEditPageSaveReason.Default,\n // exit edit modus in case the form is editable (and property is being used must not be NULL)\n exitEdit: this.editable === true\n }).subscribe();\n }\n },\n hidden: () => {\n return this.readonly || !this.saveable || (this.disabled && this.editable === true);\n },\n title: () => this.saveTooltip,\n content: () => this.saveContent\n },\n {\n icon: {\n class: 'fa fa-trash',\n iconOnly: () => this.deleteContent == null,\n srText: this.deleteTooltip\n },\n disabled: () => {\n return this.disabled && !this.forceDeletable;\n },\n action: () => {\n this.delete().subscribe();\n },\n hidden: () => {\n return (this.readonly && !this.forceDeletable) || !this.deletable || (this.disabled && this.editable === true);\n },\n title: () => this.deleteTooltip,\n content: () => this.deleteContent\n },\n {\n icon: {\n class: 'fas fa-undo',\n iconOnly: () => this.undoContent == null,\n srText: this.undoTooltip\n },\n disabled: () => {\n return !this.dirty || this.disabled;\n },\n action: () => {\n this.undo().subscribe();\n },\n hidden: () => {\n return this.readonly || !this.saveable || (this.disabled && this.editable === true);\n },\n title: () => this.undoTooltip,\n content: () => this.undoContent\n }\n ]);\n }\n #markDirty() {\n if (this.#formWrapper != null) {\n this.#formWrapper.markAsDirty();\n }\n }\n #markPristine() {\n if (this.#formWrapper != null) {\n this.#formWrapper.markAsPristine();\n }\n }\n #processSaveOptions(options) {\n // make sure we have an options object with default settings\n if (options == null) {\n options = new BarEditPageSaveOptions();\n }\n if (options.reason == null) {\n // if no reason defined we assume it is custom\n options.reason = BarEditPageSaveReason.Custom;\n }\n return options;\n }\n #tryEmitSaveMessageOnInvalid(reason) {\n if (this.showSaveMessageOnInvalid) {\n this.#toastMessage.addMessage({\n text: this.#translate.get('DOMAIN_BAR_LAYOUT.EDIT_PAGE.MESSAGE.' + (reason == BarEditPageSaveReason.Autosave ? 'INVALID_AUTOSAVE' : 'INVALID')),\n type: BarToastMessageType.Error\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEditPageBaseComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"18.2.13\", type: BarEditPageBaseComponent, viewQueries: [{ propertyName: \"formElement\", first: true, predicate: [\"formElement\"], descendants: true }, { propertyName: \"formRef\", first: true, predicate: [\"formRef\"], descendants: true }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEditPageBaseComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { formElement: [{\n type: ViewChild,\n args: ['formElement']\n }], formRef: [{\n type: ViewChild,\n args: ['formRef']\n }] } });\n\nclass BarEditPageWrapperComponent extends BarEditPageBaseComponent {\n #destroyRef;\n #editPageService;\n #data;\n #saveArgs;\n #deleteArgs;\n #preventSubmittedEvents;\n /** Sets the data retrieved from back-end. */\n set data(value) {\n // invoke the load method\n if (value) {\n // call the onload method again in case first time or if the reference has changed\n this.load(value, true, BarEditPageLoadReason.Load, this.#data == null);\n this.#data = value;\n }\n }\n get data() {\n return this.#data;\n }\n set editForm(value) {\n this.form = value;\n }\n get editForm() {\n return this.form;\n }\n constructor() {\n super();\n this.#destroyRef = inject(DestroyRef);\n this.#editPageService = inject(BarEditPageService, { optional: true });\n this.#preventSubmittedEvents = false;\n /** Determines if loading progress bar must appears in case no model is uses (modelless modus). */\n this.showLoading = undefined;\n /** Event that occurs that a save needs to occur at the consumer after validation checks. */\n this.saveRequested = new EventEmitter();\n /** Occurs when the save is completed and has been executed. Some code can be executed at the consumer. */\n this.saveCompleted = new EventEmitter();\n /** Event that occurs that a delete needs to occur at the consumer. */\n this.deleteRequested = new EventEmitter();\n /** Event that occurs when an undo is requested. Use this to perform custom undo logic. */\n this.undoRequested = new EventEmitter();\n /** Event that occurs when the save button is pressed to indicate that the user submitted the form. */\n this.submittedChange = new EventEmitter();\n /** Event that occurs when the edit button (pencil) is pressed. Use this to perform extra logic. */\n this.editRequested = new EventEmitter();\n this.#hookInEditPageService();\n }\n ngOnInit() {\n super.ngOnInit();\n if (this.saveSuccess$) {\n this.saveSuccess$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((value) => {\n if (this.#saveArgs?.subscriber) {\n this.saveCompleted.emit(this.#saveArgs.args);\n this.#saveArgs.subscriber.next(value);\n this.#saveArgs.subscriber.complete();\n this.#saveArgs = undefined;\n }\n });\n }\n if (this.saveFailed$) {\n this.saveFailed$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((error) => {\n if (this.#saveArgs?.subscriber) {\n this.#saveArgs.subscriber.error(error);\n this.#saveArgs.subscriber = undefined;\n this.#saveArgs = undefined;\n }\n });\n }\n if (this.deleteSuccess$) {\n this.deleteSuccess$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((value) => {\n if (this.#deleteArgs?.subscriber) {\n this.#deleteArgs.subscriber.next(value);\n this.#deleteArgs.subscriber.complete();\n this.#deleteArgs = undefined;\n }\n });\n }\n if (this.deleteFailed$) {\n this.deleteFailed$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((error) => {\n if (this.#deleteArgs?.subscriber) {\n this.#deleteArgs.subscriber.error(error);\n this.#deleteArgs.subscriber = undefined;\n this.#deleteArgs = undefined;\n }\n });\n }\n if (this.model$) {\n this.model$\n .pipe(filter$1((model) => model != null), takeUntilDestroyed(this.#destroyRef))\n .subscribe((model) => {\n // whenever model changes invoke the load\n super.load(model);\n });\n }\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.saveCompleted.complete();\n this.saveRequested.complete();\n this.deleteRequested.complete();\n this.undoRequested.complete();\n this.submittedChange.complete();\n this.editRequested.complete();\n if (this.#deleteArgs?.subscriber && !this.#deleteArgs.subscriber.closed) {\n this.#deleteArgs.subscriber.complete();\n }\n if (this.#saveArgs?.subscriber && !this.#saveArgs.subscriber.closed) {\n this.#saveArgs.subscriber.complete();\n }\n }\n setSubmitted(submitted) {\n this.#preventSubmittedEvents = true;\n this.submitted = submitted;\n }\n onLoad(args) {\n if (this.loading) {\n // avoid value has changed after it was checked error\n window.setTimeout(() => {\n this.loading(args);\n });\n }\n }\n onSaving() {\n if (this.beforeSaving)\n return this.beforeSaving();\n }\n onUndo() {\n if (this.undoing)\n return this.undoing();\n this.undoRequested.emit();\n }\n onSave(args) {\n // classic modus input callback with observable result\n if (this.saving)\n return this.saving(args);\n // asynchronous mode (ngrx)\n // the consumer returns a void meaning he wants to work asynchronously because we expect observable in classic mode\n return new Observable((subscriber) => {\n // store the subscriber which will be completed elsewhere (asynchronously)\n this.#saveArgs = { subscriber, args };\n this.saveRequested.emit(args);\n });\n }\n onDelete() {\n // classic modus input callback with observable result\n if (this.deleting)\n return this.deleting();\n // asynchronous mode (ngrx)\n // the consumer returns a void meaning he wants to work asynchronously because we expect observable in classic mode\n return new Observable((subscriber) => {\n this.#deleteArgs = { subscriber };\n this.deleteRequested.emit();\n });\n }\n onEdit() {\n this.editRequested.emit();\n }\n _onSubmitted(submitted) {\n if (!this.#preventSubmittedEvents)\n this.submittedChange.emit(submitted);\n this.#preventSubmittedEvents = false;\n }\n /*** Hooks in the edit page service which is registered on the root component containing the bar-edit-page component. */\n #hookInEditPageService() {\n if (!this.#editPageService)\n return;\n this.#editPageService._load$.subscribe((data) => {\n const load$ = this.load(data.model, data.options?.loadModel || true, data.options?.reason || BarEditPageLoadReason.Load, data.options?.callOnLoad || true);\n const complete = () => {\n data.subscriber.next();\n data.subscriber.complete();\n };\n // check that onLoad returns an observable\n if (load$ !== undefined) {\n load$.subscribe(() => {\n // complete invoker\n complete();\n });\n }\n else {\n complete();\n }\n });\n this.#editPageService._requestSave$.subscribe((data) => {\n this.requestSave(data.options).subscribe((outcome) => {\n data.subscriber.next(outcome);\n data.subscriber.complete();\n });\n });\n this.#editPageService._undo$.subscribe((data) => {\n this.undo().subscribe(() => {\n data.subscriber.next();\n data.subscriber.complete();\n });\n });\n this.#editPageService._delete$.subscribe((data) => {\n this.delete().subscribe((outcome) => {\n data.subscriber.next(outcome);\n data.subscriber.complete();\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEditPageWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarEditPageWrapperComponent, isStandalone: true, 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@if (showValidations) {\\r\\n \\r\\n \\r\\n \\r\\n}\\r\\n@if (form) {\\r\\n
\\r\\n \\r\\n
\\r\\n}\\r\\n@else {\\r\\n \\r\\n}\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\", dependencies: [{ kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1$4.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i1$4.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i1$4.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"component\", type: BarEditPageLoaderComponent, selector: \"bar-edit-page-loader\", inputs: [\"hidden\"] }, { kind: \"component\", type: BarRemarkListComponent, selector: \"bar-remark-list\", inputs: [\"remarks\", \"autoSort\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEditPageWrapperComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-edit-page-wrapper', standalone: true, imports: [NgTemplateOutlet, ReactiveFormsModule, BarEditPageLoaderComponent, BarRemarkListComponent], template: \"\\r\\n\\r\\n \\r\\n\\r\\n@if (showValidations) {\\r\\n \\r\\n \\r\\n \\r\\n}\\r\\n@if (form) {\\r\\n
\\r\\n \\r\\n
\\r\\n}\\r\\n@else {\\r\\n \\r\\n}\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\" }]\n }], ctorParameters: () => [], propDecorators: { beforeSaving: [{\n type: Input\n }], saving: [{\n type: Input\n }], saveSuccess$: [{\n type: Input\n }], saveFailed$: [{\n type: Input\n }], deleteSuccess$: [{\n type: Input\n }], deleteFailed$: [{\n type: Input\n }], loading: [{\n type: Input\n }], deleting: [{\n type: Input\n }], undoing: [{\n type: Input\n }], showLoading: [{\n type: Input\n }], data: [{\n type: Input\n }], editForm: [{\n type: Input\n }], model$: [{\n type: Input\n }], saveRequested: [{\n type: Output\n }], saveCompleted: [{\n type: Output\n }], deleteRequested: [{\n type: Output\n }], undoRequested: [{\n type: Output\n }], submittedChange: [{\n type: Output\n }], editRequested: [{\n type: Output\n }] } });\n\n/** @deprecated Use BaasEditComponent in combination with BaasLayoutComponent (OnPush). Keep using this component if you are using the legacy layout.\n * Edit page component for pages with edit actions and autosave support. */\nclass BarEditPageComponent {\n constructor() {\n /** Whether the page is in readonly. This means we don't have save/undo/delete buttons. */\n this.readonly = false;\n /** Whether the item in the page is deletable in case in edit modus. A delete button will appear. */\n this.deletable = false;\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. */\n this.forceDeletable = false;\n /** Whether the item in the page is saveable in case in edit modus. If true (default) the save and undo buttons appear. */\n this.saveable = true;\n /** Whether editable. If not defined it is immediately editable if not readonly.\n * If readonly == true && editable == true then an edit button appears. */\n this.editable = null;\n /** Whether to automatically define the save model. It will be filled in the model property of BarEditPageSaveArgs. */\n this.autoGenerateSaveModel = true;\n /** Whether the undo action must be confirmed */\n this.confirmUndo = false;\n /** Whether the save action must be confirmed */\n this.confirmSave = false;\n /** Whether to show an undo message after doing the undo. */\n this.showUndoMessage = false;\n /** Whether to show a delete message after doing the delete. */\n this.showDeleteMessage = false;\n /** Whether to show a save message after doing a save. */\n this.showSaveMessage = true;\n /** Whether to force to be in valid modus even if the form is invalid */\n this.forceValid = false;\n /** Whether to force that the edit button is visible even if edit disabled in case using the editable flag */\n this.forceEditActionVisible = false;\n /** Whether the form must be valid in case the form is pristine.\n * The default behavior is false: In case pristine no validation is done. */\n this.enforceValidOnPristine = false;\n /** Whether the before unload event, in case the user navigates away (href), is disabled. */\n this.beforeUnloadDisabled = false;\n /** Whether to show an extra warning when the form is invalid and a save occurs. */\n this.showSaveMessageOnInvalid = true;\n /** Whether loading progress bar should appear or not. Use this in modelless modus where no model is used. */\n this.loading = undefined;\n this.submittedChange = new EventEmitter();\n /** Event that occurs that a save needs to occur at the consumer after validation checks. */\n this.saveRequested = new EventEmitter();\n /** Event that occurs when the save is completed and has been executed. Some code can be executed at the consumer. */\n this.saveCompleted = new EventEmitter();\n /** Event that occurs that a delete needs to occur at the consumer. */\n this.deleteRequested = new EventEmitter();\n /** Event that occurs when an undo is requested. Use this to perform custom undo logic. */\n this.undoRequested = new EventEmitter();\n /** Event that occurs when the edit button (pencil) is pressed. Use this to perform extra logic. */\n this.editRequested = new EventEmitter();\n }\n ngOnChanges(changes) {\n // NOTE this won't be needed once the bar-edit-page-base.component is gone\n // use timeout to be sure wrapper is initialized and to avoid value has changes after it was checked\n window.setTimeout(() => this.applyChanges(changes));\n }\n ngOnDestroy() {\n this.saveRequested.complete();\n this.saveCompleted.complete();\n this.deleteRequested.complete();\n this.undoRequested.complete();\n this.submittedChange.complete();\n this.editRequested.complete();\n }\n /** Requests a save returning false in case invalid. */\n requestSave(input) {\n return this.wrapper.requestSave(input);\n }\n /** Requests a delete */\n requestDelete() {\n return this.wrapper.delete();\n }\n /** Requests an undo. */\n requestUndo() {\n return this.wrapper.undo();\n }\n applyChanges(changes) {\n for (const propName in changes) {\n const change = changes[propName];\n switch (propName) {\n // here we pass input fields values to ordinary fields in the wrapper\n case 'disabled': {\n this.wrapper.disabled = change.currentValue;\n break;\n }\n case 'readonly': {\n this.wrapper.readonly = change.currentValue;\n break;\n }\n case 'deletable': {\n this.wrapper.deletable = change.currentValue;\n break;\n }\n case 'forceDeletable': {\n this.wrapper.forceDeletable = change.currentValue;\n break;\n }\n case 'saveable': {\n this.wrapper.saveable = change.currentValue;\n break;\n }\n case 'editable': {\n this.wrapper.editable = change.currentValue;\n break;\n }\n case 'editContent': {\n this.wrapper.editContent = change.currentValue;\n break;\n }\n case 'autoGenerateSaveModel': {\n this.wrapper.autoGenerateSaveModel = change.currentValue;\n break;\n }\n case 'confirmUndo': {\n this.wrapper.confirmUndo = change.currentValue;\n break;\n }\n case 'confirmSave': {\n this.wrapper.confirmSave = change.currentValue;\n break;\n }\n case 'showUndoMessage': {\n this.wrapper.showUndoMessage = change.currentValue;\n break;\n }\n case 'showDeleteMessage': {\n this.wrapper.showDeleteMessage = change.currentValue;\n break;\n }\n case 'showSaveMessage': {\n this.wrapper.showSaveMessage = change.currentValue;\n break;\n }\n case 'forceValid': {\n this.wrapper.forceValid = change.currentValue;\n break;\n }\n case 'forceEditActionVisible': {\n this.wrapper.forceEditActionVisible = change.currentValue;\n break;\n }\n case 'enforceValidOnPristine': {\n this.wrapper.enforceValidOnPristine = change.currentValue;\n break;\n }\n case 'beforeUnloadDisabled': {\n this.wrapper.beforeUnloadDisabled = change.currentValue;\n break;\n }\n case 'showSaveMessageOnInvalid': {\n this.wrapper.showSaveMessageOnInvalid = change.currentValue;\n break;\n }\n case 'deleteTooltip': {\n this.wrapper.deleteTooltip = change.currentValue;\n break;\n }\n case 'deleteContent': {\n this.wrapper.deleteContent = change.currentValue;\n break;\n }\n case 'saveTooltip': {\n this.wrapper.saveTooltip = change.currentValue;\n break;\n }\n case 'saveContent': {\n this.wrapper.saveContent = change.currentValue;\n break;\n }\n case 'editTooltip': {\n this.wrapper.editTooltip = change.currentValue;\n break;\n }\n case 'undoTooltip': {\n this.wrapper.undoTooltip = change.currentValue;\n break;\n }\n case 'undoContent': {\n this.wrapper.undoContent = change.currentValue;\n break;\n }\n case 'deleteMessage': {\n this.wrapper.deleteMessage = change.currentValue;\n break;\n }\n case 'saveMessage': {\n this.wrapper.saveMessage = change.currentValue;\n break;\n }\n case 'undoMessage': {\n this.wrapper.undoMessage = change.currentValue;\n break;\n }\n case 'confirmDeleteMessage': {\n this.wrapper.confirmDeleteMessage = change.currentValue;\n break;\n }\n case 'confirmDeleteOptions': {\n this.wrapper.confirmDeleteOptions = change.currentValue;\n break;\n }\n case 'confirmUndoMessage': {\n this.wrapper.confirmUndoMessage = change.currentValue;\n break;\n }\n case 'confirmUndoOptions': {\n this.wrapper.confirmUndoOptions = change.currentValue;\n break;\n }\n case 'confirmSaveMessage': {\n this.wrapper.confirmSaveMessage = change.currentValue;\n break;\n }\n case 'confirmSaveOptions': {\n this.wrapper.confirmSaveOptions = change.currentValue;\n break;\n }\n case 'loading': {\n this.wrapper.showLoading = change.currentValue;\n break;\n }\n case 'submitted': {\n this.wrapper.setSubmitted(change.currentValue);\n break;\n }\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEditPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"18.2.13\", type: BarEditPageComponent, isStandalone: true, 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\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarEditPageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-edit-page', standalone: true, imports: [BarEditPageWrapperComponent], template: \"\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\" }]\n }], propDecorators: { wrapper: [{\n type: ViewChild,\n args: [BarEditPageWrapperComponent]\n }], saving: [{\n type: Input\n }], save: [{\n type: Input\n }], saveSuccess$: [{\n type: Input\n }], saveFailed$: [{\n type: Input\n }], load: [{\n type: Input\n }], delete: [{\n type: Input\n }], deleteSuccess$: [{\n type: Input\n }], deleteFailed$: [{\n type: Input\n }], undo: [{\n type: Input\n }], data: [{\n type: Input\n }], model$: [{\n type: Input\n }], form: [{\n type: Input\n }], disabled: [{\n type: Input\n }], readonly: [{\n type: Input\n }], deletable: [{\n type: Input\n }], forceDeletable: [{\n type: Input\n }], saveable: [{\n type: Input\n }], editable: [{\n type: Input\n }], autoGenerateSaveModel: [{\n type: Input\n }], confirmUndo: [{\n type: Input\n }], confirmSave: [{\n type: Input\n }], showUndoMessage: [{\n type: Input\n }], showDeleteMessage: [{\n type: Input\n }], showSaveMessage: [{\n type: Input\n }], forceValid: [{\n type: Input\n }], forceEditActionVisible: [{\n type: Input\n }], enforceValidOnPristine: [{\n type: Input\n }], beforeUnloadDisabled: [{\n type: Input\n }], showSaveMessageOnInvalid: [{\n type: Input\n }], loading: [{\n type: Input\n }], editContent: [{\n type: Input\n }], deleteTooltip: [{\n type: Input\n }], saveTooltip: [{\n type: Input\n }], saveContent: [{\n type: Input\n }], editTooltip: [{\n type: Input\n }], undoTooltip: [{\n type: Input\n }], undoContent: [{\n type: Input\n }], deleteMessage: [{\n type: Input\n }], deleteContent: [{\n type: Input\n }], saveMessage: [{\n type: Input\n }], undoMessage: [{\n type: Input\n }], confirmDeleteMessage: [{\n type: Input\n }], confirmDeleteOptions: [{\n type: Input\n }], confirmUndoMessage: [{\n type: Input\n }], confirmUndoOptions: [{\n type: Input\n }], confirmSaveMessage: [{\n type: Input\n }], confirmSaveOptions: [{\n type: Input\n }], submitted: [{\n type: Input\n }], submittedChange: [{\n type: Output\n }], saveRequested: [{\n type: Output\n }], saveCompleted: [{\n type: Output\n }], deleteRequested: [{\n type: Output\n }], undoRequested: [{\n type: Output\n }], editRequested: [{\n type: Output\n }] } });\n\nfunction barEditPageCanDeactivateGuard() {\n return (component) => {\n return component.requestSave ? component.requestSave({ reason: BarEditPageSaveReason.Autosave }) : of(true);\n };\n}\n\nclass BarHierarchicalActionConfig {\n constructor() {\n this.navigate = true;\n this.edit = true;\n this.move = true;\n this.delete = true;\n this.create = true;\n this.view = true;\n }\n}\n\nclass BarHierarchicalListItemMoveConfig {\n}\n\nclass BarBreadcrumbComponent {\n constructor() {\n /** An array of links to use for the breadcrumb. */\n this.items = input();\n /** An array of breadcrumbs in case event system is used with navigate. */\n this.breadcrumbs = input();\n this.breadcrumbLabelField = input('title');\n this.navigate = output();\n }\n navigateCrumb(crumb, crumbIndex) {\n this.navigate.emit({ crumb, crumbIndex });\n }\n navigateRoot() {\n this.navigate.emit({ crumb: null, crumbIndex: -1 });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarBreadcrumbComponent, isStandalone: true, selector: \"bar-breadcrumb\", inputs: { items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, breadcrumbs: { classPropertyName: \"breadcrumbs\", publicName: \"breadcrumbs\", isSignal: true, isRequired: false, transformFunction: null }, breadcrumbLabelField: { classPropertyName: \"breadcrumbLabelField\", publicName: \"breadcrumbLabelField\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { navigate: \"navigate\" }, ngImport: i0, template: \"

Navigeer naar

\\r\\n
    \\r\\n @if (items()) {\\r\\n @for (item of items(); track $index) {\\r\\n
  • \\r\\n @if ($index > 0) {\\r\\n \\r\\n }\\r\\n \\r\\n
  • \\r\\n }\\r\\n } @else if (breadcrumbs()) {\\r\\n
  • \\r\\n \\r\\n
  • \\r\\n @for (crumb of breadcrumbs(); track $index) {\\r\\n
  • \\r\\n \\r\\n \\r\\n
  • \\r\\n }\\r\\n }\\r\\n
\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: BaasLinkComponent, selector: \"baas-link\", inputs: [\"item\", \"linkClass\", \"ommitCssClass\", \"zeroWhiteLineIfHidden\"], outputs: [\"clicked\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarBreadcrumbComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-breadcrumb', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatIconModule, BaasLinkComponent], template: \"

Navigeer naar

\\r\\n
    \\r\\n @if (items()) {\\r\\n @for (item of items(); track $index) {\\r\\n
  • \\r\\n @if ($index > 0) {\\r\\n \\r\\n }\\r\\n \\r\\n
  • \\r\\n }\\r\\n } @else if (breadcrumbs()) {\\r\\n
  • \\r\\n \\r\\n
  • \\r\\n @for (crumb of breadcrumbs(); track $index) {\\r\\n
  • \\r\\n \\r\\n \\r\\n
  • \\r\\n }\\r\\n }\\r\\n
\\r\\n\" }]\n }] });\n\nclass BarHierarchicalListItemComponent {\n constructor() {\n this.item = input.required();\n this.actionConfig = input(new BarHierarchicalActionConfig());\n this.itemLabelField = input('title');\n this.itemIdField = input('id');\n this.itemTooltipField = input('tooltip');\n this.moveEnabled = input(false);\n this.moveConfig = input();\n this.itemClickActionType = input('edit');\n this.itemClickHideAction = input(false);\n this.action = output();\n this.enableItemClick = computed(() => {\n const type = this.item().itemClickActionType ? this.item().itemClickActionType : this.itemClickActionType();\n const globalActive = this.actionConfig()[type];\n const itemTypeNotSet = this.item()[type] === undefined;\n const itemTypeActive = this.item()[type] !== undefined && this.item()[type];\n return (globalActive && itemTypeNotSet) || itemTypeActive;\n });\n this.optionMenuEnabled = computed(() => {\n return this.actionEnabled('create') || this.actionEnabled('edit') || this.actionEnabled('delete') || this.actionEnabled('move');\n });\n }\n doAction(actionType) {\n this.action.emit(actionType);\n }\n actionEnabled(type) {\n const globalActive = this.actionConfig()[type];\n const itemTypeNotSet = this.item()[type] === undefined;\n const itemTypeActive = this.item()[type] !== undefined && this.item()[type];\n const itemClickActionTypeActive = this.item().itemClickActionType === type || (this.itemClickActionType() === type && this.item().itemClickActionType === undefined);\n // active on the item itself or global active and NOT disabled on item\n // AND\n // clickAction is current type and not set to hidden\n return (((globalActive && itemTypeNotSet) || itemTypeActive) && ((itemClickActionTypeActive && !this.itemClickHideAction()) || !itemClickActionTypeActive));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarHierarchicalListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarHierarchicalListItemComponent, isStandalone: true, selector: \"bar-hierarchical-list-item\", inputs: { item: { classPropertyName: \"item\", publicName: \"item\", isSignal: true, isRequired: true, transformFunction: null }, actionConfig: { classPropertyName: \"actionConfig\", publicName: \"actionConfig\", isSignal: true, isRequired: false, transformFunction: null }, itemLabelField: { classPropertyName: \"itemLabelField\", publicName: \"itemLabelField\", isSignal: true, isRequired: false, transformFunction: null }, itemIdField: { classPropertyName: \"itemIdField\", publicName: \"itemIdField\", isSignal: true, isRequired: false, transformFunction: null }, itemTooltipField: { classPropertyName: \"itemTooltipField\", publicName: \"itemTooltipField\", isSignal: true, isRequired: false, transformFunction: null }, moveEnabled: { classPropertyName: \"moveEnabled\", publicName: \"moveEnabled\", isSignal: true, isRequired: false, transformFunction: null }, moveConfig: { classPropertyName: \"moveConfig\", publicName: \"moveConfig\", isSignal: true, isRequired: false, transformFunction: null }, itemClickActionType: { classPropertyName: \"itemClickActionType\", publicName: \"itemClickActionType\", isSignal: true, isRequired: false, transformFunction: null }, itemClickHideAction: { classPropertyName: \"itemClickHideAction\", publicName: \"itemClickHideAction\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { action: \"action\" }, ngImport: i0, template: \"
\\r\\n \\r\\n @if (enableItemClick()) {\\r\\n \\r\\n {{ item()[itemLabelField()] }}\\r\\n \\r\\n } @else {\\r\\n {{ item()[itemLabelField()] }}\\r\\n }\\r\\n
\\r\\n @if (actionEnabled('view')) {\\r\\n \\r\\n }\\r\\n @if (actionEnabled('navigate') && item().children && item().children.length) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n @if (!moveEnabled() && optionMenuEnabled()) {\\r\\n \\r\\n }\\r\\n \\r\\n @if (actionEnabled('create')) {\\r\\n \\r\\n }\\r\\n @if (actionEnabled('edit')) {\\r\\n \\r\\n }\\r\\n @if (actionEnabled('move')) {\\r\\n \\r\\n }\\r\\n @if (actionEnabled('delete')) {\\r\\n \\r\\n }\\r\\n \\r\\n
\\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"ngmodule\", type: MatBadgeModule }, { kind: \"directive\", type: i1$1.MatBadge, selector: \"[matBadge]\", inputs: [\"matBadgeColor\", \"matBadgeOverlap\", \"matBadgeDisabled\", \"matBadgePosition\", \"matBadge\", \"matBadgeDescription\", \"matBadgeSize\", \"matBadgeHidden\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2$2.MatIconButton, selector: \"button[mat-icon-button]\", exportAs: [\"matButton\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatMenuModule }, { kind: \"component\", type: i1$2.MatMenu, selector: \"mat-menu\", inputs: [\"backdropClass\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"xPosition\", \"yPosition\", \"overlapTrigger\", \"hasBackdrop\", \"class\", \"classList\"], outputs: [\"closed\", \"close\"], exportAs: [\"matMenu\"] }, { kind: \"component\", type: i1$2.MatMenuItem, selector: \"[mat-menu-item]\", inputs: [\"role\", \"disabled\", \"disableRipple\"], exportAs: [\"matMenuItem\"] }, { kind: \"directive\", type: i1$2.MatMenuTrigger, selector: \"[mat-menu-trigger-for], [matMenuTriggerFor]\", inputs: [\"mat-menu-trigger-for\", \"matMenuTriggerFor\", \"matMenuTriggerData\", \"matMenuTriggerRestoreFocus\"], outputs: [\"menuOpened\", \"onMenuOpen\", \"menuClosed\", \"onMenuClose\"], exportAs: [\"matMenuTrigger\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i2.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarHierarchicalListItemComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-hierarchical-list-item', standalone: true, imports: [NgClass, MatBadgeModule, MatButtonModule, MatIconModule, MatMenuModule, MatTooltipModule], template: \"
\\r\\n \\r\\n @if (enableItemClick()) {\\r\\n \\r\\n {{ item()[itemLabelField()] }}\\r\\n \\r\\n } @else {\\r\\n {{ item()[itemLabelField()] }}\\r\\n }\\r\\n
\\r\\n @if (actionEnabled('view')) {\\r\\n \\r\\n }\\r\\n @if (actionEnabled('navigate') && item().children && item().children.length) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n @if (!moveEnabled() && optionMenuEnabled()) {\\r\\n \\r\\n }\\r\\n \\r\\n @if (actionEnabled('create')) {\\r\\n \\r\\n }\\r\\n @if (actionEnabled('edit')) {\\r\\n \\r\\n }\\r\\n @if (actionEnabled('move')) {\\r\\n \\r\\n }\\r\\n @if (actionEnabled('delete')) {\\r\\n \\r\\n }\\r\\n \\r\\n
\\r\\n
\\r\\n\" }]\n }] });\n\nclass BarHierarchicalListComponent {\n #confirmService;\n #activeList;\n constructor() {\n this.#confirmService = inject(BarConfirmService);\n /* Optional. By default all actions are enabled. */\n this.actionConfig = input(new BarHierarchicalActionConfig());\n /* Complete hierarchical structure */\n this.items = input();\n /* The field of the provided items to use for displaying the title in the cards */\n this.itemLabelField = input('title');\n /* The field of the provided items to use as unique identifier */\n this.itemIdField = input('id');\n /* The field of the provided items to use as an alternative tooltip */\n this.itemTooltipField = input('tooltip');\n /* If the component is used in a dialog, delete action needs to be handled by application (dialog in dialog not possible) */\n this.dialog = input(false);\n /* An optional width declaration for the list */\n this.listWidth = input('auto');\n /* Action type of the click on the text in the list item, default is edit */\n this.itemClickActionType = input('edit');\n /* Wether or not to hide the action button defined as itemClickActionType (global or on item level) */\n this.itemClickHideAction = input(false);\n /* Whether to show the filter above the list. This will filter the root elements and the children. */\n this.filterable = input(false);\n /* Pass breadcrumbs so a nested list can be directly viewed */\n this.breadcrumbs = model([]);\n /* Outputs the specific component to view */\n this.view = output();\n /* Outputs the parent component, where to create the new item in as a child */\n this.create = output();\n /* Outputs the specific component to edit */\n this.edit = output();\n /* Outputs the specific component to delete */\n this.delete = output();\n /* Outputs an object with all old and new location info (parent+index), if parent changed,... */\n this.move = output();\n this.moveConfig = signal(new BarHierarchicalListItemMoveConfig());\n this.moveEnabled = signal(false);\n this.filterTextControl = new FormControl(undefined);\n this.filteredText = toSignal(this.filterTextControl.valueChanges.pipe(takeUntilDestroyed(), debounce(() => timer(500))));\n this.parent = computed(() => {\n return this.breadcrumbs().length ? this.breadcrumbs()[this.breadcrumbs().length - 1].item : null;\n });\n this.filteredList = computed(() => {\n if (!this.filterable() || !this.filteredText())\n return this.#activeList();\n return this.#activeList().filter((item) => this.#checkFilterMatchRecursive(item));\n });\n this.#activeList = signal([]);\n effect(() => {\n // effect only when items change\n this.items();\n untracked(() => {\n // nested item\n if (this.breadcrumbs().length) {\n let parent = null;\n this.breadcrumbs().forEach((crumb, index) => {\n parent = index === 0 ? this.items()[crumb.index] : parent.children[crumb.index];\n });\n this.#activeList.set(parent.children ? parent.children : []);\n }\n else {\n return this.#activeList.set(this.items());\n }\n });\n });\n }\n doAction(actionType, item, index) {\n switch (actionType) {\n case 'create': {\n let path = null;\n // 1. Add btn clicked on specific item: create new item as child of provided item\n if (item) {\n path = [...this.breadcrumbs(), { item, index }];\n // 2. Add button on top clicked\n // 2.1. Breadcrumb active (nested parent item)\n }\n else if (this.breadcrumbs().length) {\n path = [...this.breadcrumbs()];\n }\n // 2.2 Add to root: path = null\n this.create.emit({ item: null, path });\n break;\n }\n case 'edit': {\n this.edit.emit({ item, path: [...this.breadcrumbs()] });\n break;\n }\n case 'view': {\n this.view.emit({ item, path: [...this.breadcrumbs()] });\n break;\n }\n case 'delete': {\n // responsibility of the application to show the delete prompt when dialog is true (dialog in dialog is not possible)\n if (!this.dialog()) {\n this.#confirmService\n .confirm({\n message: `Bent je zeker dat je item met titel \"${item[this.itemLabelField()]}\" wilt verwijderen?`,\n title: 'Verwijderen'\n })\n .subscribe(() => {\n this.delete.emit({ item, path: [...this.breadcrumbs()] });\n });\n }\n else {\n this.delete.emit({ item, path: [...this.breadcrumbs()] });\n }\n break;\n }\n case 'move': {\n this.moveConfig.set({\n ...new BarHierarchicalListItemMoveConfig(),\n oldParent: this.parent(),\n oldIndexWithinParent: index,\n item\n });\n this.moveEnabled.set(true);\n break;\n }\n case 'navigate': {\n this.#activeList.set(item.children);\n this.breadcrumbs.update((breadcrumbs) => [...breadcrumbs, { item, index }]);\n break;\n }\n }\n }\n moveItem(index) {\n const newParent = this.parent();\n this.moveConfig.update((moveConfig) => {\n return {\n ...moveConfig,\n newParent,\n newIndexWithinParent: index,\n parentChanged: this.hasParentChanged(moveConfig.oldParent, newParent)\n };\n });\n this.move.emit(this.moveConfig());\n // reset move\n this.moveCancel();\n }\n moveCancel() {\n this.moveEnabled.set(false);\n this.moveConfig.set(new BarHierarchicalListItemMoveConfig());\n }\n navigateCrumb(value) {\n const { crumb, crumbIndex } = value;\n if (crumb && crumb.item) {\n this.#activeList.set(crumb.item.children);\n }\n else {\n // home breadcrumb clicked\n this.#activeList.set(this.items());\n }\n this.breadcrumbs.update((breadcrumbs) => {\n // NOTE splice is a mutable function\n breadcrumbs.splice(crumbIndex + 1);\n // return new instance to trigger change detection\n return [...breadcrumbs];\n });\n }\n // check if maybe equal (in case both null), then check if one of the is null and then compare objects against each other\n hasParentChanged(oldParent, newParent) {\n return (oldParent != newParent ||\n (oldParent == newParent && oldParent != null && newParent != null && oldParent[this.itemIdField()] != newParent[this.itemIdField()]));\n }\n clearFilter() {\n this.filterTextControl.setValue(null);\n }\n #checkFilterMatchRecursive(item) {\n const label = item[this.itemLabelField()] || '';\n if (label.toUpperCase().indexOf(this.filterTextControl.value.toUpperCase()) > -1)\n return true;\n if (item.children) {\n for (const child of item.children) {\n if (this.#checkFilterMatchRecursive(child)) {\n return true;\n }\n }\n }\n return false;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarHierarchicalListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarHierarchicalListComponent, isStandalone: true, selector: \"bar-hierarchical-list\", inputs: { actionConfig: { classPropertyName: \"actionConfig\", publicName: \"actionConfig\", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: false, transformFunction: null }, itemLabelField: { classPropertyName: \"itemLabelField\", publicName: \"itemLabelField\", isSignal: true, isRequired: false, transformFunction: null }, itemIdField: { classPropertyName: \"itemIdField\", publicName: \"itemIdField\", isSignal: true, isRequired: false, transformFunction: null }, itemTooltipField: { classPropertyName: \"itemTooltipField\", publicName: \"itemTooltipField\", isSignal: true, isRequired: false, transformFunction: null }, dialog: { classPropertyName: \"dialog\", publicName: \"dialog\", isSignal: true, isRequired: false, transformFunction: null }, listWidth: { classPropertyName: \"listWidth\", publicName: \"listWidth\", isSignal: true, isRequired: false, transformFunction: null }, itemClickActionType: { classPropertyName: \"itemClickActionType\", publicName: \"itemClickActionType\", isSignal: true, isRequired: false, transformFunction: null }, itemClickHideAction: { classPropertyName: \"itemClickHideAction\", publicName: \"itemClickHideAction\", isSignal: true, isRequired: false, transformFunction: null }, filterable: { classPropertyName: \"filterable\", publicName: \"filterable\", isSignal: true, isRequired: false, transformFunction: null }, breadcrumbs: { classPropertyName: \"breadcrumbs\", publicName: \"breadcrumbs\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { breadcrumbs: \"breadcrumbsChange\", view: \"view\", create: \"create\", edit: \"edit\", delete: \"delete\", move: \"move\" }, ngImport: i0, template: \" \\r\\n
\\r\\n
\\r\\n
    \\r\\n @if (filterable()) {\\r\\n
  • \\r\\n \\r\\n Filter\\r\\n \\r\\n @if (filteredText()) {\\r\\n \\r\\n }\\r\\n \\r\\n
  • \\r\\n }\\r\\n @if (!moveEnabled() && (actionConfig().create || (parent() && parent().create !== undefined && parent().create))) {\\r\\n
  • \\r\\n
    \\r\\n \\r\\n
    \\r\\n
  • \\r\\n }\\r\\n @for (item of filteredList(); track $index) {\\r\\n
  • \\r\\n @if (\\r\\n moveEnabled() &&\\r\\n (hasParentChanged(moveConfig().oldParent, parent()) ||\\r\\n ($index != moveConfig().oldIndexWithinParent && $index != moveConfig().oldIndexWithinParent + 1))\\r\\n ) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @if ($last && moveEnabled() && (hasParentChanged(moveConfig().oldParent, parent()) || $index != moveConfig().oldIndexWithinParent)) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n
  • \\r\\n }\\r\\n
\\r\\n
\\r\\n @if (moveEnabled()) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\", dependencies: [{ kind: \"directive\", type: NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1$4.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$4.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$4.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"component\", type: i4.MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: i4.MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: i4.MatSuffix, selector: \"[matSuffix], [matIconSuffix], [matTextSuffix]\", inputs: [\"matTextSuffix\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2$2.MatButton, selector: \" button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] \", exportAs: [\"matButton\"] }, { kind: \"component\", type: i2$2.MatIconButton, selector: \"button[mat-icon-button]\", exportAs: [\"matButton\"] }, { kind: \"ngmodule\", type: MatIconModule }, { kind: \"component\", type: i2$1.MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i5.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\", \"actionConfig\", \"itemLabelField\", \"itemIdField\", \"itemTooltipField\", \"moveEnabled\", \"moveConfig\", \"itemClickActionType\", \"itemClickHideAction\"], outputs: [\"action\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarHierarchicalListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-hierarchical-list', standalone: true, imports: [\n NgStyle,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatButtonModule,\n MatIconModule,\n MatInputModule,\n BarBreadcrumbComponent,\n BarHierarchicalListItemComponent\n ], template: \" \\r\\n
\\r\\n
\\r\\n
    \\r\\n @if (filterable()) {\\r\\n
  • \\r\\n \\r\\n Filter\\r\\n \\r\\n @if (filteredText()) {\\r\\n \\r\\n }\\r\\n \\r\\n
  • \\r\\n }\\r\\n @if (!moveEnabled() && (actionConfig().create || (parent() && parent().create !== undefined && parent().create))) {\\r\\n
  • \\r\\n
    \\r\\n \\r\\n
    \\r\\n
  • \\r\\n }\\r\\n @for (item of filteredList(); track $index) {\\r\\n
  • \\r\\n @if (\\r\\n moveEnabled() &&\\r\\n (hasParentChanged(moveConfig().oldParent, parent()) ||\\r\\n ($index != moveConfig().oldIndexWithinParent && $index != moveConfig().oldIndexWithinParent + 1))\\r\\n ) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n \\r\\n \\r\\n @if ($last && moveEnabled() && (hasParentChanged(moveConfig().oldParent, parent()) || $index != moveConfig().oldIndexWithinParent)) {\\r\\n \\r\\n \\r\\n \\r\\n }\\r\\n
  • \\r\\n }\\r\\n
\\r\\n
\\r\\n @if (moveEnabled()) {\\r\\n \\r\\n }\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\" }]\n }], ctorParameters: () => [] });\n\n/** @deprecated Will be removed with next major version because unused. Inform us if you are somehow using this. */\nclass BarNgMatLabelDirective {\n #elRef = inject(ElementRef);\n #window = inject(_BaasWindow);\n ngOnInit() {\n // run timeout outside angular because it concerns purely DOM manipulation\n this.#window.setTimeoutOutsideAngular(() => {\n const el = this.#elRef.nativeElement;\n const label = el.querySelector('mat-label');\n if (label) {\n // set wrapping on the label\n label.setAttribute('style', 'white-space:normal;');\n // add 2px for minimal spacing between input and label (material does this as well)\n const heightToSet = label.clientHeight + 2;\n // set additional inline style for maximized wrapping and required marker inline mode\n const formFieldLabel = el.querySelector('label.mat-form-field-label');\n formFieldLabel.setAttribute('style', `display: inline;`);\n const requiredMarker = el.querySelector('span.mat-form-field-required-marker');\n if (requiredMarker)\n requiredMarker.setAttribute('style', `margin-left: 0;`);\n // set required height on the elements\n const formFieldWrapper = el.querySelector('div.mat-form-field-wrapper');\n formFieldWrapper.setAttribute('style', `margin-top: ${heightToSet}px;`);\n const formFieldLabelWrapper = el.querySelector('span.mat-form-field-label-wrapper');\n formFieldLabelWrapper.setAttribute('style', `top: -${heightToSet}px; padding-top: ${heightToSet}px;`);\n }\n else {\n console.warn('\"barNgMatLabel\" mat-label not found, cannot change properties for label wrapping...');\n }\n }, 0);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarNgMatLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"18.2.13\", type: BarNgMatLabelDirective, isStandalone: true, selector: \"[barNgMatLabel]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarNgMatLabelDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[barNgMatLabel]',\n standalone: true\n }]\n }] });\n\n/** Default simple select list component using working with BarListItem. */\nclass BarSelectListComponent {\n constructor() {\n this.#controlContainer = inject(ControlContainer, { optional: true });\n this.ngSelect = viewChild(NgSelectComponent);\n this.formControlDirective = viewChild(FormControlDirective);\n this.items = input.required();\n this._formControl = input(undefined, { alias: 'formControl' });\n this.formControlName = input();\n this.multiple = input();\n this.checkboxMultiSelection = input(false);\n this.maxSelectedItems = input();\n this.labelForId = input();\n // TODO [STEPET] this doesn't seem to be used?\n this.disabled = input();\n this.clearable = input(true);\n this.grouping = input();\n this.selectableGroup = input(true);\n this.closeOnSelect = input(true);\n this.searchable = input(true);\n this.readonly = input(false);\n this.virtualScroll = input(false);\n this.change = output();\n this.search = output();\n this.formControl = computed(() => {\n if (this._formControl())\n return this._formControl();\n if (this.#controlContainer && this.formControlName()) {\n return this.#controlContainer.control.get(this.formControlName());\n }\n return undefined;\n });\n }\n #controlContainer;\n registerOnTouched(fn) {\n this.formControlDirective().valueAccessor.registerOnTouched(fn);\n }\n registerOnChange(fn) {\n this.formControlDirective().valueAccessor.registerOnChange(fn);\n }\n writeValue(obj) {\n this.formControlDirective().valueAccessor.writeValue(obj);\n }\n setDisabledState(isDisabled) {\n this.formControlDirective().valueAccessor.setDisabledState(isDisabled);\n }\n focus() {\n // timeout needed to have effect in certain situations (ngAfterViewInit)\n window.setTimeout(() => {\n this.ngSelect().searchInput.nativeElement.focus();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarSelectListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarSelectListComponent, isStandalone: true, selector: \"bar-select-list\", inputs: { items: { classPropertyName: \"items\", publicName: \"items\", isSignal: true, isRequired: true, transformFunction: null }, _formControl: { classPropertyName: \"_formControl\", publicName: \"formControl\", isSignal: true, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: \"formControlName\", publicName: \"formControlName\", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: true, isRequired: false, transformFunction: null }, checkboxMultiSelection: { classPropertyName: \"checkboxMultiSelection\", publicName: \"checkboxMultiSelection\", isSignal: true, isRequired: false, transformFunction: null }, maxSelectedItems: { classPropertyName: \"maxSelectedItems\", publicName: \"maxSelectedItems\", isSignal: true, isRequired: false, transformFunction: null }, labelForId: { classPropertyName: \"labelForId\", publicName: \"labelForId\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null }, clearable: { classPropertyName: \"clearable\", publicName: \"clearable\", isSignal: true, isRequired: false, transformFunction: null }, grouping: { classPropertyName: \"grouping\", publicName: \"grouping\", isSignal: true, isRequired: false, transformFunction: null }, selectableGroup: { classPropertyName: \"selectableGroup\", publicName: \"selectableGroup\", isSignal: true, isRequired: false, transformFunction: null }, closeOnSelect: { classPropertyName: \"closeOnSelect\", publicName: \"closeOnSelect\", isSignal: true, isRequired: false, transformFunction: null }, searchable: { classPropertyName: \"searchable\", publicName: \"searchable\", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: \"virtualScroll\", publicName: \"virtualScroll\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: \"change\", search: \"search\" }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: BarSelectListComponent,\n multi: true\n }\n ], viewQueries: [{ propertyName: \"ngSelect\", first: true, predicate: NgSelectComponent, descendants: true, isSignal: true }, { propertyName: \"formControlDirective\", first: true, predicate: FormControlDirective, descendants: true, isSignal: true }], ngImport: i0, template: \"\\r\\n @if (multiple() && checkboxMultiSelection()) {\\r\\n \\r\\n \\r\\n {{ item.text }}\\r\\n \\r\\n }\\r\\n @if (grouping()) {\\r\\n \\r\\n {{ item['group'] || 'Unnamed group' }}\\r\\n \\r\\n }\\r\\n\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1$4.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$4.CheckboxControlValueAccessor, selector: \"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]\" }, { kind: \"directive\", type: i1$4.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$4.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1$4.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: NgSelectModule }, { kind: \"component\", type: i2$6.NgSelectComponent, selector: \"ng-select\", inputs: [\"bindLabel\", \"bindValue\", \"ariaLabel\", \"markFirst\", \"placeholder\", \"fixedPlaceholder\", \"notFoundText\", \"typeToSearchText\", \"preventToggleOnRightClick\", \"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\", \"ngClass\", \"typeahead\", \"multiple\", \"addTag\", \"searchable\", \"clearable\", \"isOpen\", \"items\", \"compareWith\", \"clearSearchOnAdd\", \"deselectOnClick\", \"keyDownFn\"], outputs: [\"blur\", \"focus\", \"change\", \"open\", \"close\", \"search\", \"clear\", \"add\", \"remove\", \"scroll\", \"scrollToEnd\"] }, { kind: \"directive\", type: i2$6.NgOptgroupTemplateDirective, selector: \"[ng-optgroup-tmp]\" }, { kind: \"directive\", type: i2$6.NgOptionTemplateDirective, selector: \"[ng-option-tmp]\" }, { kind: \"pipe\", type: BarI18nPipe, name: \"i18n\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarSelectListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-select-list', providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: BarSelectListComponent,\n multi: true\n }\n ], standalone: true, imports: [FormsModule, ReactiveFormsModule, NgSelectModule, BarI18nPipe], template: \"\\r\\n @if (multiple() && checkboxMultiSelection()) {\\r\\n \\r\\n \\r\\n {{ item.text }}\\r\\n \\r\\n }\\r\\n @if (grouping()) {\\r\\n \\r\\n {{ item['group'] || 'Unnamed group' }}\\r\\n \\r\\n }\\r\\n\\r\\n\" }]\n }] });\n\nconst DEFAULT_TITLE = 'Pagina onbeschikbaar';\nconst DEFAULT_CONTENT = 'De pagina is onbeschikbaar';\nclass BarBlockingMeldingComponent {\n constructor() {\n this.#state = inject(BaasAppState);\n this.#domSanitizer = inject(DomSanitizer);\n this.title = input(DEFAULT_TITLE);\n this._content = input(DEFAULT_CONTENT, { alias: 'content' });\n this.content = computed(() => this.#domSanitizer.bypassSecurityTrustHtml(this._content()));\n this.showGlobalHeaderFooter = input(false);\n this.scaling = input(undefined);\n }\n #state;\n #domSanitizer;\n get isMediumScaled() {\n return this.scaling() === 'medium';\n }\n ngOnInit() {\n this.homeUrl = this.#state.config.homeUrl;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarBlockingMeldingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"18.2.13\", type: BarBlockingMeldingComponent, isStandalone: true, selector: \"bar-blocking-melding\", inputs: { title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null }, _content: { classPropertyName: \"_content\", publicName: \"content\", isSignal: true, isRequired: false, transformFunction: null }, showGlobalHeaderFooter: { classPropertyName: \"showGlobalHeaderFooter\", publicName: \"showGlobalHeaderFooter\", isSignal: true, isRequired: false, transformFunction: null }, scaling: { classPropertyName: \"scaling\", publicName: \"scaling\", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { \"class.scaled-medium\": \"this.isMediumScaled\" } }, 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\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarBlockingMeldingComponent, decorators: [{\n type: Component,\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\" }]\n }], propDecorators: { isMediumScaled: [{\n type: HostBinding,\n args: ['class.scaled-medium']\n }] } });\n\nclass BarBooleanListComponent {\n constructor() {\n this.#controlContainer = inject(ControlContainer, { optional: true });\n this.formControlDirective = viewChild.required(FormControlDirective);\n /** Whether also undefined state (true by default) */\n this.tristate = input(true);\n this.trueLabel = input('Ja');\n this.falseLabel = input('Neen');\n this.undefinedLabel = input('Onbepaald');\n this._formControl = input(undefined, { alias: 'formControl' });\n this.formControlName = input(undefined);\n this.disabled = signal(undefined);\n this.formControl = computed(() => {\n if (this._formControl())\n return this._formControl();\n if (this.formControlName && this.#controlContainer)\n return this.#controlContainer.control.get(this.formControlName());\n return undefined;\n });\n }\n #controlContainer;\n writeValue(value) {\n this.formControlDirective().valueAccessor.writeValue(value);\n }\n registerOnChange(fn) {\n this.formControlDirective().valueAccessor.registerOnChange(fn);\n }\n registerOnTouched(fn) {\n this.formControlDirective().valueAccessor.registerOnTouched(fn);\n }\n setDisabledState(isDisabled) {\n this.formControlDirective().valueAccessor.setDisabledState(isDisabled);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarBooleanListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"18.2.13\", type: BarBooleanListComponent, isStandalone: true, selector: \"bar-boolean-list\", inputs: { tristate: { classPropertyName: \"tristate\", publicName: \"tristate\", isSignal: true, isRequired: false, transformFunction: null }, trueLabel: { classPropertyName: \"trueLabel\", publicName: \"trueLabel\", isSignal: true, isRequired: false, transformFunction: null }, falseLabel: { classPropertyName: \"falseLabel\", publicName: \"falseLabel\", isSignal: true, isRequired: false, transformFunction: null }, undefinedLabel: { classPropertyName: \"undefinedLabel\", publicName: \"undefinedLabel\", isSignal: true, isRequired: false, transformFunction: null }, _formControl: { classPropertyName: \"_formControl\", publicName: \"formControl\", isSignal: true, isRequired: false, transformFunction: null }, formControlName: { classPropertyName: \"formControlName\", publicName: \"formControlName\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: BarBooleanListComponent,\n multi: true\n }\n ], viewQueries: [{ propertyName: \"formControlDirective\", first: true, predicate: FormControlDirective, descendants: true, isSignal: true }], ngImport: i0, template: \"\\r\\n {{ trueLabel() }} \\r\\n {{ falseLabel() }}\\r\\n @if (tristate()) {\\r\\n {{ undefinedLabel() }}\\r\\n }\\r\\n\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: MatRadioModule }, { kind: \"directive\", type: i1$7.MatRadioGroup, selector: \"mat-radio-group\", inputs: [\"color\", \"name\", \"labelPosition\", \"value\", \"selected\", \"disabled\", \"required\", \"disabledInteractive\"], outputs: [\"change\"], exportAs: [\"matRadioGroup\"] }, { kind: \"component\", type: i1$7.MatRadioButton, selector: \"mat-radio-button\", inputs: [\"id\", \"name\", \"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"disableRipple\", \"tabIndex\", \"checked\", \"value\", \"labelPosition\", \"disabled\", \"required\", \"color\", \"disabledInteractive\"], outputs: [\"change\"], exportAs: [\"matRadioButton\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1$4.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1$4.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BarBooleanListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'bar-boolean-list', standalone: true, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: BarBooleanListComponent,\n multi: true\n }\n ], imports: [MatRadioModule, ReactiveFormsModule], template: \"\\r\\n {{ trueLabel() }} \\r\\n {{ falseLabel() }}\\r\\n @if (tristate()) {\\r\\n {{ undefinedLabel() }}\\r\\n }\\r\\n\\r\\n\" }]\n }] });\n\n/*\n * Public API Surface of @lvflanders/bar-ng-ui\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BAR_BANNER_IMAGE, BAR_DATE_TIME_PROVIDERS, BAR_DEFAULT_DATE_TIME_FORMATS, BaasActionButtonComponent, BaasEditComponent, BaasEditService, BaasLayoutComponent, BaasLayoutService, BaasLinkComponent, BaasMenuItemTag, BaasShellComponent, BarActionButton, BarActionButtonComponent, BarActionButtonType, BarAutoNumericDirective, BarBannerComponent, BarBlockingMeldingComponent, BarBooleanListComponent, BarBreadcrumbComponent, BarClickOutsideDirective, BarConfirmOptions, BarConfirmService, BarDateFnsDateTimeAdapter, BarDateTimeIntl, BarDateTimePickerComponent, BarDeviceType, BarEditPageBaseComponent, BarEditPageComponent, BarEditPageLoadArgs, BarEditPageLoadReason, BarEditPageLoaderComponent, BarEditPageSaveArgs, BarEditPageSaveOptions, BarEditPageSaveReason, BarEditPageService, BarGlobalFooterComponent, BarGlobalHeaderComponent, BarHierarchicalActionConfig, BarHierarchicalListComponent, BarHierarchicalListItemMoveConfig, BarI18nPipe, BarIcon, BarLayoutComponent, BarLayoutHttpParams, BarLayoutSection, BarLayoutService, BarLink, BarLinkComponent, BarLoadingComponent, BarLoadingDirective, BarLoadingOptions, BarMeldingComponent, BarMenuButtonComponent, BarMenuItem, BarMenuItemTag, BarMenuItemTagType, BarNgMatLabelDirective, BarRemarkComponent, BarRemarkListComponent, BarRemarkOverviewComponent, BarRemarkService, BarRemarkSummaryComponent, BarRemarkType, BarSearchScreenComponent, BarSelectListComponent, BarTileComponent, BarTileGroupComponent, BarTileListComponent, BarTileSize, BarTileStyle, BarToastMessage, BarToastMessageComponent, BarToastMessageService, BarToastMessageType, BarToastMessagesComponent, BarUnavailableLayoutComponent, BarBurgerprofielEngine as _BarBurgerprofielEngine, _BarInternalLayoutService, _BarLayoutAnchorDirective, baasEditCanDeactivateGuard, barEditPageCanDeactivateGuard, provideBarControls, provideBarLayout, withDefaultLayoutState, withLayoutGvk, withLayoutInterception, withLayoutState };\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","core","material","dialog","formField","menu","locale","lvflanders","bar","shared","common","tooltip","router","platformBrowser","icon","badge","button","rxjs","operators","forms","rxjsInterop","input","toolbar","card","progressBar","sidenav","cdk","layout","http","animations","browser","InjectableAnimationEngine","driver","normalizer","super","ngOnDestroy","flush","minVersion","version","ngImport","deps","DOCUMENT","Injectable","decorators","ctorParameters","Document","Inject","SHARED_ANIMATION_PROVIDERS","provide","useFactory","useClass","RendererFactory2","renderer","engine","zone","NgZone","BROWSER_ANIMATIONS_PROVIDERS","AnimationDriver","ANIMATION_MODULE_TYPE","useValue","BROWSER_NOOP_ANIMATIONS_PROVIDERS","NoopAnimationDriver","BrowserAnimationsModule","withConfig","config","ngModule","providers","disableAnimations","NgModule","BrowserModule","imports","provideAnimations","NoopAnimationsModule","radio","BAR_CONTROLS","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","GENERAL_UI_I18N","SAVE","NEW","VIEW","ADD","EDIT","DELETE","REMOVE","REFRESH","FILTER","SORT","OVERVIEW","SEARCH_RESULTS","BAR_DEFAULT_DATE_TIME_FORMATS","parseInput","fullPickerInput","datePickerInput","timePickerInput","monthYearLabel","dateA11yLabel","monthYearA11yLabel","getOwlDateFnsDateTimeAdapterOptionsInstance","getInstance","OWL_DATEFNS_DATE_TIME_ADAPTER_OPTIONS","InjectionToken","providedIn","nl","weekStartsOn","range","valueFunction","valuesArray","BarDateFnsDateTimeAdapter","DateTimeAdapter","inject","OWL_DATE_TIME_LOCALE","optional","owlDateTimeLocale","setLocale","dateFnsLocaleData","localize","_localeData","longMonths","month","width","shortMonths","narrowMonths","longDaysOfWeek","day","shortDaysOfWeek","narrowDaysOfWeek","dates","getDate","createDate","getYear","date","clone","getMonth","getDay","getHours","getMinutes","getSeconds","getTime","getNumDaysInMonth","getDaysInMonth","differenceInCalendarDays","dateLeft","dateRight","getYearName","format","getMonthNames","getDayOfWeekNames","getDateNames","toIso8601","toISOString","isEqual","isSameDay","isValid","invalid","Date","NaN","isDateInstance","isDate","addCalendarYears","amount","addYears","addCalendarMonths","addMonths","addCalendarDays","addDays","setHours","setMinutes","setSeconds","year","hours","minutes","seconds","result","createDateWithOverflow","parseISO","toDate","now","displayFormat","parse","parseFormat","split","isArray","JSON","stringify","parsedDate","trim","deserialize","setFullYear","BarDateTimeIntl","OwlDateTimeIntl","upSecondLabel","downSecondLabel","upMinuteLabel","downMinuteLabel","upHourLabel","downHourLabel","prevMonthLabel","nextMonthLabel","prevYearLabel","nextYearLabel","prevMultiYearLabel","nextMultiYearLabel","switchToMonthViewLabel","switchToMultiYearViewLabel","cancelBtnLabel","setBtnLabel","rangeFromLabel","rangeToLabel","hour12AMLabel","hour12PMLabel","BAR_DATE_TIME_PROVIDERS","LOCALE_ID","OWL_DATE_TIME_FORMATS","provideBarControls","makeEnvironmentProviders","importProvidersFrom","MatDialogModule","MatMenuModule","NgSelectModule","OwlDateTimeModule","ENVIRONMENT_INITIALIZER","multi","i18n","BaasI18n","addTranslations","MAT_FORM_FIELD_DEFAULT_OPTIONS","floatLabel","MAT_DATE_LOCALE","LOCALE","FLEMISH","BarTileSize","BarTileStyle","BarRemarkType","BarActionButtonType","BarMenuItemTagType","HtmlToPlaintextPipe","transform","Pipe","isStandalone","standalone","BarInteractiveElementBehavior","DomSanitizer","Router","buttonClick","event","item","action","actionResult","Promise","routerCommands","navigate","queryParams","fragment","routerUrl","navigateByUrl","href","openUrl","linkClick","clickExecuted","ctrlKey","resolveValue","sanitize","SecurityContext","URL","preventDefault","linkClickWithRouterCommands","stopPropagation","BaasLinkComponent","required","linkClass","ommitCssClass","zeroWhiteLineIfHidden","clicked","output","ngClass","computed","disabled","cssClass","iconExists","iconHasPosition","position","iconHasLeftPosition","iconHasRightPosition","iconHasTopPosition","resolveSignalValue","hidden","emit","linkClickWithRouterLink","Component","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","template","dependencies","kind","NgClass","NgTemplateOutlet","RouterLink","RouterLinkActive","exportAs","MatTooltipModule","BarTileComponent","tile","favorite","additionalTileClasses","classList","size","Normal","srText","truncateTitle","contentTooltip","defaultContentTooltipEnabled","iconClass","untouchedClass","class","iconStyle","bodyTooltip","defaultBodyTooltipEnabled","body","truncateBody","moreInformationLink","isFavorite","hideFavoriteIndicator","includes","emitFavorite","tileClicked","params","linkClicked","changeDetection","OnPush","ChangeDetectionStrategy","BarTileGroupComponent","tiles","contentTiles","contentChildren","effect","subscribe","data","favoriteClicked","queries","propertyName","predicate","BarTileListComponent","group","contentGroups","tileGroups","currentGroup","initiator","BarRemarkService","mapping","blocking","color","important","info","getIcon","getIconColor","BarRemarkComponent","remark","signal","ngOnInit","nativeElement","attributes","set","Blocking","Important","Info","MatIcon","BarRemarkListComponent","remarks","autoSort","remarkList","sort","a","b","BarI18nPipe","BarRemarkSummaryComponent","_counters","model","alias","counters","entries","filter","counter","map","totaal","untracked","reduce","translationKey","count","BarRemarkOverviewComponent","BarControlsHelper","resolveValue$","iterateObject","keys","BarLink","BarLinkComponent","controlsHelper","EventEmitter","title","tooltipClass","ngAfterViewInit","handleElement","element","executeHref","viewQueries","first","descendants","AsyncPipe","RouterModule","propDecorators","Input","ViewChild","Output","BaasActionButtonComponent","buttonClicked","linkAction","host","classAttribute","MatIconModule","MatButtonModule","MatBadgeModule","BarActionButton","BarActionButtonComponent","showIconOnly","iconOnly","routerLink","Default","BarMenuButtonComponent","variant","items","actionButton","enrichedItems","NgStyle","BarConfirmOptions","refutable","BarConfirmComponent","MAT_DIALOG_DATA","hasTitle","message","confirmText","refuteText","closeable","buttonVariant","BarConfirmService","MatDialog","confirm","pipe","mergeMap","of","refute","height","disableClose","afterClosed","BarIcon","BarAutoNumericDirective","ElementRef","handleChangeKeyup","handleChangeBlur","handlePaste","_onPasteFunc","barAutoNumeric","onInvalidPaste","self","getNumber","newVal","writeValue","AutoNumeric","origPreparePastedText","_preparePastedText","decimalCharacter","decimalCharacterAlternative","digitGroupSeparator","className","align","removeEventListener","remove","ngOnChanges","changes","update","registerOnChange","registerOnTouched","setDisabledState","number","currencySymbol","Directive","listeners","NG_VALUE_ACCESSOR","useExisting","forwardRef","usesOnChanges","HostListener","BarDateTimePickerComponent","ControlContainer","DestroyRef","viewChild","formControlDirective","FormControlDirective","formControl","formControlName","labelForId","label","wrapLabel","labelTooltip","_pickerType","min","max","startAt","rangeSelectMode","readonly","includeSeconds","dateTimeFilter","ensureValidInput","pickerType","selectionTitle","selectMode","FormControl","control","setValue","syncFormControlDisabled","unsubscribe","events","StatusChangeEvent","takeUntilDestroyed","allowSignalWrites","valueChanges","onBlur","valueAccessor","runOutsideAngular","setTimeout","run","isDisabled","focus","FormsModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","BarSearchScreenComponent","searchResults","searchForm","showToolbar","actions","hasExtendedCriteria","hasInfoSection","fixedInfoSection","searchDisabled","searched","showExtendedCriteria","internalForm","manualSearch","autoScroll","headerSearchCriteria","headerSearchResults","searchText","resetText","globalEnterTriggersSearch","search","reset","extendedCriteriaToggleText","onKeyDown","doSearch","scrollIntoView","doReset","toggleExtendedCriteria","MatToolbarModule","BaasMenuItemTag","BarMenuItem","BarMenuItemTag","BarLoadingComponent","blockPage","running","fromDirective","delayedRunning","duration","delay","enabled","clearTimeout","logging","console","log","MatCardModule","MatProgressBarModule","BarLoadingDirective","TemplateRef","ViewContainerRef","barLoading","barLoadingOptions","createEmbeddedView","parentElement","previousSibling","createComponent","nextSibling","BarLoadingOptions","overlay","BAAS_LAYOUT_STATE","BAAS_LAYOUT_GVK","BAR_LAYOUT_CONSTANTS","FAVICON","IMAGES_PREFIX","MENU_STATE","PAGE_STATE","BarLayoutInternalGvkService","_BaasWindow","BarGvkManager","BaasAppState","barMenuStateChanged","compactChanged","appCode","compatibilityMode","BarGvkCompatibilityMode","Version_1","basiscontext","preInit","checkDisabled","menuState","getItem","pageState","init","documentElement","setTimeoutOutsideAngular","persistMenuState","barMenuState","_gvk_timeStamp","_gvk_setName","OTHER","setItem","persistPageState","barPageState","_BaasInternalLayoutService","BarCoreService","Injector","Location","internalContentActions","banner","deviceType","mainAction","asReadonly","backAction","smallDevice","onResize","setMenuState","state","back","homeUrl","navigateHome","innerWidth","BaasLayoutService","interception","subTitle","mainHeader","sidebar","appMenuItems","menuItems","menuItemsAutoCollapse","externalLinkGroups","strikingActions","operations","submitActions","moreActions","contentActions","loading","loadingOptions","appLoading","compact","touch","mobileFriendly","appVersion","BAR_BANNER_IMAGE","BIET","BOOM","KOE","BarBannerComponent","environment","closeDisabled","hide","visible","imageSrc","heroImageSrc","heroImage","heroImageIsDefined","doHide","onClose","STATUS_TYPE_MAPPING","BELANGRIJK","OPGELOST","INFORMATIEF","BarMeldingComponent","melding","sanitizedMeldingContent","bypassSecurityTrustHtml","meldingType","BarMeldingType","Belangrijk","Informatief","Opgelost","status","READ_MELDINGEN_KEY","BarMeldingenComponent","meldingen","initialized","meldingenCollapsed","readMeldingen","unreadMeldingen","toggleMessage","toggleIconClass","numberOfBelangrijk","numberOfOpgelost","numberOfInformatief","async","cachedMeldingen","getCachedMeldingIds","meldingenToKeep","cachedMeldingId","find","mld","saveMeldingenToKeep","toggleMeldingen","openMeldingen","closeMeldingen","strCachedMeldingen","localStorage","resolve","BaasMeerActiesComponent","BaasLayoutMenuExternalLinksComponent","CLASS_SELECTED_ITEM$1","BaasLayoutMenuListComponent","ChangeDetectorRef","menuLevel","path","parentExpanded","NavigationEnd","detectChanges","menuItemClicked","children","menuItemToggleClicked","scrollTo","tempItem","expanded","mapItem","mapIndex","defineHref","bypassSecurityTrustUrl","defineRouterCommands","getPath","getLinkClasses","menuLevelClasses","activeItemClasses","commands","createUrlTree","parseUrl","serializedUrl","serializeUrl","currentUrl","pathMatch","selected","getTagClasses","classes","hasLink","hasDefaultLink","BaasLayoutMenuOperationsComponent","_items","BaasLayoutMenuStrikingActionsComponent","BaasLayoutMenuComponent","internalLayout","menuAction","menuToggleMetaIcon","menuToggleMetaText","closed","pinned","default","collapsedMenus","menuToggleClicked","toepassing","code","stringifiedRouterLink","hasActiveSubChild","location","pathname","subItem","menuItem","urlTree","isActive","subMenuItem","trySetLayoutService","BaasLayoutPageComponent","withRouting","translationText","sidenavMode","stateModeMapping","menuStateExact","handleBackdropEvent","MatSidenavModule","BaasLayoutComponent","BaasCoreStateService","autosync","box","_title","_subTitle","_sidebar","_submitActions","_moreActions","_contentActions","_mainHeader","_operations","_strikingActions","_externalLinkGroups","_menuItemsAutoCollapse","_appMenuItems","desktopAppMenuItems","ami","mobile","mobileAppMenuItems","skipLink","main","Banner","mobileItems","menuOverlayOpen","restOfMobileItems","_banner","env","rootUrl","urlAfterRedirects","substring","navigateRoot","defineAppMenuLinkClass","exitCompact","BarImpersonationWidgetComponent","BaasAuthService","fullUsername","basiscontextChanged","logOff","BarBurgerprofielEngine","ComponentFactoryResolver","headerFooterActive","headerFooterActiveAppCodes","baasStatic","burgerprofiel","tryInitialize","Observable","subscriber","complete","next","doInit","widget","client","capture","getPluginTypeId","getExtension","session","on","logoutRequest","tryPerformLogout","cdnScripts","cdnRootUrl","cdnScript","checkUrlAbsolute","concatUrl","toInject","tryMountHeader","widgetRootUrl","headerWidgetId","endsWith","bootstrap","setMountElement","mount","catch","bind","tryMountFooter","footerWidgetId","acknowledge","getRequest","getReason","clearInterval","accept","reject","activityEventHandler","extend","useActivityTracking","eventNames","eventName","addEventListener","sessionExtendTimeoutSeconds","setIntervalOutsideAngular","websiteHasAuthenticatedSession","authenticated","configure","endpoints","loginUrl","loginRedirectUrl","logoutUrl","impersonationOverrideEnabled","impersonate","querySelector","componentRef","resolveComponentFactory","changeDetectorRef","DEFAULT_WIDGETS_CONFIG","widgetUrl","BarClassicWidgetsEngine","classicWidgets","navigator","onLine","BarGlobalFooterComponent","isInline","BarGlobalHeaderComponent","BarLayoutSection","BarDeviceType","BarToastMessageType","_BarLayoutAnchorDirective","viewContainerRef","barLayoutAnchor","section","Utilities","MenuActionBarTopLeft","MenuActionBarTopRight","ActionBarTopLeft","ActionBarTopRight","MenuTop","ContentActionBarTopRight","ContentActionBarBottomRight","MenuBottom","MenuActionBarBottomLeft","MenuActionBarBottomRight","ActionBarBottomLeft","ActionBarBottomRight","GlobalHeaderRight","_BarInternalLayoutService","legacyConsumer","injectSection","clearSection","banner$$","BehaviorSubject","appLoadingPending$$","firstAppLoading$$","deviceType$$","queueAction","isDevMode","ac","setInternalContentActions","internalMainAction","internalContentActions$","asObservable","BarLayoutSectionInjection","BarLayoutService","menuState$","getValue","hidden$","helpLink$","title$","subTitle$","mainHeader$","documentTitle$","sidebar$","banner$","appMenuItems$","menuItems$","menuItemsAutoCollapse$","externalLinkGroups$","strikingActions$","operations$","submitActions$","moreActions$","contentActions$","mainAction$","loading$","loadingOptions$","appLoading$","interception$","compact$","touch$","mobileFriendly$","appVersion$","preventMenuStateEvents","deviceType$","headerWrapper","display","footerWrapper","combineLatest","addPaddingToHeader","padding","mainWrapper","getElementsByClassName","pageHeader","getElementsByTagName","paddingRight","contentActionsTopElements","contentActionsWidth","getBoundingClientRect","clearSidebar","clearStrikingActions","clearOperations","clearExternalLinks","clearSubmitActions","clearContentActions","clearMoreActions","clearTitle","clearSubTitle","clearMenu","clearAppMenu","clearBanner","clearHelp","clearInterception","clearMainHeader","component","prepInjection","injection","BarToastMessage","generateUuid","Warning","persistent","componentParameters","textLength","Math","floor","BarToastMessageService","_messages","messages","messageRemovalBucket","addMessage","toastMessage","foundDuplicate","time","timer","removeMessage","deleteFromBucket","removeMessages","BarViewContainerRefDirective","ICON_MAPPING","warning","BarToastMessageComponent","barViewContainerRef","progress","typeClass","typeIcon","progressBarId","setIntervalForMessage","interval","stepInterval","progressFillElement","transitionDuration","transitionTimingFunction","setInterval","BarToastMessagesComponent","onFullscreenChange","fullscreenElement","BarMeerActiesComponent","moreActionsButton","top","BarLayoutMenuExternalLinksComponent","isExternal","link","CLASS_SELECTED_ITEM","BarLayoutMenuListComponent","getItemProp","property","tempUrl","BarLayoutMenuOperationsComponent","transformActions","BarLayoutMenuStrikingActionsComponent","Stroked","BarLayoutMenuComponent","autoCollapse","barLayoutMenuAnchors","ViewChildren","BarLayoutPageComponent","RouterOutlet","barLayoutPageAnchors","barLayoutMenuComponent","BarLayoutComponent","BreakpointObserver","globalHeaderFooter","responsive","devOrTest","showGlobalHeaderFooter","forceHideBox","naam","backgroundColor","baseLink","add","errorOccurred","bodyTouch","contains","firstLoad","sectionAnchor","anchors","barLayoutAnchors","pageComponent","directive","execute","loader","appRootElements","appRoot","lastAppLoadingRequest","observers","obs","overflow","firstAppLoadingComplete$","skipWhile","take","appLoadingComplete$","forkJoin","mobileMaxWidth","mobileWidth","tabletMaxWidth","tabletWidth","mobileWidthExpression","tabletWidthExpression","observe","isMobile","isTablet","breakpoints","Mobile","Tablet","Desktop","BarUnavailableLayoutComponent","randomNumber","generateRandomNumber","imagePath","hiResImagePath","BarClickOutsideDirective","ngZone","platformId","PLATFORM_ID","clickOutsideEnabled","attachOutsideOnClick","delayClickOutsideInit","emitOnBlur","exclude","excludeBeforeClick","clickOutsideEvents","clickOutside","nodesExcluded","initOnClickBody","onClickBody","onWindowBlur","isPlatformBrowser","removeClickOutsideListener","removeAttachOutsideOnClickListener","removeWindowBlurListener","excludeCheck","initAttachOutsideOnClickListener","initWindowBlurListener","initClickOutsideListener","nodes","from","querySelectorAll","ev","shouldExclude","excludedNode","BarLayoutHttpParams","BarHttpParams","backgroundRequest","ommitInterceptor","ERROR_RESIZE_OBSERVER","BarLayoutErrorHandlerHook","handled","warn","BarLayoutInitializedHook","order","_framework","versie","BarLayoutMeldingenHook","BAR_MELDINGEN_CACHE","bannerMeldingen","setBanner","bannerMelding","defineBannerImageSrc","image","images","bannerTitle","bannerUrl","bannerUrlText","bannerImage","injector","BAR_LAYOUT_I18N","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","loadingCount","barLayoutInterceptor","req","setLoading","layoutLegacy","internalLegacyLayout","finalize","BarDefaultLayoutState","rootAction","app","securityLevel","documentTitle","favIconUrl","BaasSecurityLevel","Development","Test","Production","BarLayoutFeatureKind","BarEditPageLoadReason","BarEditPageSaveReason","provideBarLayout","features","LocationStrategy","PathLocationStrategy","BAR_INITIALIZED","BAR_ERROR_HANDLER","f","_provideBarLayout","withLayoutInterception","Interception","provideHttpClient","withInterceptors","withLayoutState","settings","CustomSettings","withDefaultLayoutState","DefaultSettings","withLayoutGvk","Gvk","BaasShellComponent","_showHeaderFooter","showHeaderFooter","_loading","_loadingOptions","_appLoading","BarEditPageLoaderComponent","BaasEditService","requestSave","reason","_saveRequested","BaasEditComponent","formRef","form","saveStatus","pending","validations","confirmUndo","confirmUndoOptions","showUndoMessage","undoMessage","undoTooltip","undoContent","showUndoContent","confirmSave","confirmSaveOptions","showSaveMessage","saveMessage","saveTooltip","saveContent","showSaveContent","validWhenPristine","beforeUnloadDisabled","showSaveMessageOnInvalid","valid","pristine","submitted","undo","save","validating","viewModel","showLoader","showRemarkList","Success","disable","enable","btn","tabIndex","innerText","onclick","assignFormSignals","_event","onbeforeunload","confirmOptions","markAsPristine","markAsUntouched","outcome","baasEditCanDeactivateGuard","BarEditPageService","__load$","Subject","__requestSave$","__undo$","__delete$","_load$","_requestSave$","_undo$","_delete$","load","loadModel","Load","callOnLoad","BarEditPageLoadArgs","BarEditPageSaveArgs","preventLoad","BarEditPageSaveOptions","Custom","suppressSaveMessage","exitEdit","BarEditPageBaseComponent","ActivatedRoute","deletable","forceDeletable","saveable","editable","autoGenerateSaveModel","showDeleteMessage","forceValid","forceEditActionVisible","enforceValidOnPristine","formElement","ngSubmit","dirty","showValidations","_onSubmitted","deleteTooltip","deleteContent","editTooltip","editContent","deleteMessage","confirmDeleteMessage","confirmUndoMessage","confirmSaveMessage","onInit","load$","onDestroy","confirmDeleteOptions","onDelete","deleted","completeSave","onSaving","savingResult","Autosave","performSave","getMutedModel","save$","onSave","catchError","throwError","Save","undoLogic","originalModel","Undo","undo$","onUndo","onLoad","onEdit","clonedModel","deepClone","returnValue","delete","markAsDirty","BarEditPageWrapperComponent","editForm","showLoading","saveRequested","saveCompleted","deleteRequested","undoRequested","submittedChange","editRequested","saveSuccess$","saveFailed$","deleteSuccess$","deleteFailed$","model$","setSubmitted","beforeSaving","undoing","saving","deleting","usesInheritance","BarEditPageComponent","applyChanges","wrapper","requestDelete","requestUndo","propName","change","currentValue","barEditPageCanDeactivateGuard","BarHierarchicalActionConfig","edit","move","view","BarHierarchicalListItemMoveConfig","BarBreadcrumbComponent","breadcrumbs","breadcrumbLabelField","navigateCrumb","crumb","crumbIndex","BarHierarchicalListItemComponent","actionConfig","itemLabelField","itemIdField","itemTooltipField","moveEnabled","moveConfig","itemClickActionType","itemClickHideAction","enableItemClick","globalActive","itemTypeNotSet","itemTypeActive","optionMenuEnabled","actionEnabled","doAction","actionType","itemClickActionTypeActive","BarHierarchicalListComponent","listWidth","filterable","filterTextControl","filteredText","toSignal","debounce","parent","filteredList","oldParent","oldIndexWithinParent","moveItem","newParent","newIndexWithinParent","parentChanged","hasParentChanged","moveCancel","splice","clearFilter","child","BarNgMatLabelDirective","heightToSet","clientHeight","requiredMarker","BarSelectListComponent","ngSelect","NgSelectComponent","_formControl","multiple","checkboxMultiSelection","maxSelectedItems","clearable","grouping","selectableGroup","closeOnSelect","searchable","virtualScroll","searchInput","BarBlockingMeldingComponent","_content","scaling","isMediumScaled","properties","HostBinding","BarBooleanListComponent","tristate","trueLabel","falseLabel","undefinedLabel","MatRadioModule","ui"],"sourceRoot":""}