carbon-components-angular 5.2.0 → 5.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/carbon-components-angular-table.umd.js +30 -19
- package/bundles/carbon-components-angular-table.umd.js.map +1 -1
- package/bundles/carbon-components-angular-tooltip.umd.js +16 -2
- package/bundles/carbon-components-angular-tooltip.umd.js.map +1 -1
- package/docs/documentation/components/Tooltip.html +143 -47
- package/docs/documentation/coverage.html +6 -6
- package/docs/documentation/directives/TableDirective.html +143 -39
- package/docs/documentation/interfaces/TableTranslations.html +1 -1
- package/docs/documentation/js/search/search_index.js +2 -2
- package/docs/documentation/miscellaneous/typealiases.html +1 -1
- package/docs/documentation.json +103 -54
- package/docs/storybook/iframe.html +1 -1
- package/docs/storybook/{main.2485e7a7.iframe.bundle.js → main.6ced09a7.iframe.bundle.js} +54 -31
- package/docs/storybook/main.6ced09a7.iframe.bundle.js.map +1 -0
- package/docs/storybook/project.json +1 -1
- package/esm2015/table/table.directive.js +20 -17
- package/esm2015/table/table.types.js +1 -1
- package/esm2015/tooltip/tooltip.component.js +21 -11
- package/fesm2015/carbon-components-angular-table.js +19 -16
- package/fesm2015/carbon-components-angular-table.js.map +1 -1
- package/fesm2015/carbon-components-angular-tooltip.js +20 -10
- package/fesm2015/carbon-components-angular-tooltip.js.map +1 -1
- package/package.json +1 -1
- package/table/table.directive.d.ts +5 -3
- package/table/table.types.d.ts +1 -1
- package/tooltip/tooltip.component.d.ts +7 -2
- package/docs/storybook/main.2485e7a7.iframe.bundle.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carbon-components-angular-table.umd.js","sources":["../../src/table/toolbar/table-toolbar.component.ts","../../src/table/toolbar/table-toolbar-actions.component.ts","../../node_modules/tslib/tslib.es6.js","../../src/table/toolbar/table-toolbar-search.component.ts","../../src/search/search.component.html","../../src/table/toolbar/table-toolbar-content.component.ts","../../src/table/header/table-header-description.directive.ts","../../src/table/header/table-header-title.directive.ts","../../src/table/table-header-item.class.ts","../../src/table/table-item.class.ts","../../src/table/table-model.class.ts","../../src/table/data-grid-interaction-model.class.ts","../../src/table/table-adapter.class.ts","../../src/table/head/table-head-expand.component.ts","../../src/table/head/table-head-checkbox.component.ts","../../src/table/head/table-head-cell-label.directive.ts","../../src/table/head/table-head-cell.component.ts","../../src/table/head/table-head.component.ts","../../src/table/cell/table-expand-button.component.ts","../../src/table/cell/table-checkbox.component.ts","../../src/table/cell/table-radio.component.ts","../../src/table/cell/table-data.component.ts","../../src/table/body/table-row.component.ts","../../src/table/body/table-expanded-row.component.ts","../../src/table/expanded-row-hover.directive.ts","../../src/table/body/table-body.component.ts","../../src/table/table.directive.ts","../../src/table/table.component.ts","../../src/table/table-container.component.ts","../../src/table/header/table-header.component.ts","../../src/table/table-row.class.ts","../../src/table/table.module.ts","../../src/table/index.ts","../../src/table/carbon-components-angular-table.ts"],"sourcesContent":["import { TableModel } from \"../table-model.class\";\nimport {\n\tComponent,\n\tEventEmitter,\n\tInput,\n\tOutput\n} from \"@angular/core\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { TableRowSize } from \"../table.types\";\n\n/**\n * The table toolbar is reserved for global table actions such as table settings, complex filter, export, or editing table data.\n *\n * ## Basic usage\n *\n * ```html\n * <ibm-table-toolbar [model]=\"model\">\n *\t\t<ibm-table-toolbar-actions>\n *\t\t\t<button ibmButton=\"primary\">\n *\t\t\t\tDelete\n *\t\t\t\t<svg ibmIcon=\"trash-can\" size=\"16\" class=\"cds--btn__icon\"></svg>\n *\t\t\t</button>\n *\t\t\t<button ibmButton=\"primary\">\n *\t\t\t\tSave\n *\t\t\t\t<svg ibmIcon=\"save\" size=\"16\" class=\"cds--btn__icon\"></svg>\n *\t\t\t</button>\n *\t\t\t<button ibmButton=\"primary\">\n *\t\t\t\tDownload\n *\t\t\t\t<svg ibmIcon=\"download\" size=\"16\" class=\"cds--btn__icon\"></svg>\n *\t\t\t</button>\n *\t\t</ibm-table-toolbar-actions>\n *\t\t\t<ibm-table-toolbar-content>\n *\t\t\t<ibm-table-toolbar-search [expandable]=\"true\"></ibm-table-toolbar-search>\n *\t\t\t<button ibmButton=\"toolbar-action\">\n *\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\" class=\"cds--toolbar-action__icon\"></svg>\n *\t\t\t</button>\n *\t\t\t<button ibmButton=\"primary\" size=\"sm\">\n *\t\t\t\tPrimary Button\n *\t\t\t\t<svg ibmIcon=\"add\" size=\"20\" class=\"cds--btn__icon\"></svg>\n *\t\t\t</button>\n *\t\t</ibm-table-toolbar-content>\n *\t</ibm-table-toolbar>\n * ```\n *\n */\n@Component({\n\tselector: \"ibm-table-toolbar\",\n\ttemplate: `\n\t<section\n\t\tclass=\"cds--table-toolbar\"\n\t\t[ngClass]=\"{'cds--table-toolbar--small' : size === 'sm'}\">\n\t\t<div\n\t\t\t*ngIf=\"model\"\n\t\t\tclass=\"cds--batch-actions\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--batch-actions--active': selected\n\t\t\t}\"\n\t\t\t[attr.aria-label]=\"actionBarLabel.subject | async\">\n\t\t\t<div class=\"cds--batch-summary\">\n\t\t\t\t<p class=\"cds--batch-summary__para\" *ngIf=\"count as n\">\n\t\t\t\t\t<ng-container *ngIf=\"_batchTextLegacy.subject | async as legacyText; else batchTextBlock\">\n\t\t\t\t\t\t<span>{{n}}</span> {{legacyText}}\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-template #batchTextBlock>\n\t\t\t\t\t\t<span *ngIf=\"n === 1\">{{_batchTextSingle.subject | async}}</span>\n\t\t\t\t\t\t<span *ngIf=\"n !== 1\">{{_batchTextMultiple.subject | i18nReplace: {count: n} | async}}</span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t\t<div class=\"cds--action-list\">\n\t\t\t\t<ng-content select=\"ibm-table-toolbar-actions\"></ng-content>\n\t\t\t\t<button\n\t\t\t\t\tibmButton=\"primary\"\n\t\t\t\t\tclass=\"cds--batch-summary__cancel\"\n\t\t\t\t\t[tabindex]=\"selected ? 0 : -1\"\n\t\t\t\t\t(click)=\"onCancel()\">\n\t\t\t\t\t{{_cancelText.subject | async}}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t\t<ng-content></ng-content>\n\t</section>\n\t`\n})\nexport class TableToolbar {\n\t@Input() model: TableModel;\n\n\t@Input() set batchText (value: string | { SINGLE: string, MULTIPLE: string }) {\n\t\tif (typeof value === \"object\") {\n\t\t\tthis._batchTextSingle.override(value.SINGLE);\n\t\t\tthis._batchTextMultiple.override(value.MULTIPLE);\n\t\t} else {\n\t\t\t// For compatibility with old code\n\t\t\tthis._batchTextLegacy.override(value);\n\t\t}\n\t}\n\t@Input() set ariaLabel (value: { ACTION_BAR: string }) {\n\t\tthis.actionBarLabel.override(value.ACTION_BAR);\n\t}\n\t@Input() set cancelText(value: { CANCEL: string }) {\n\t\tthis._cancelText.override(value.CANCEL);\n\t}\n\t@Input() size: TableRowSize = \"md\";\n\n\tget cancelText(): { CANCEL: string } {\n\t\treturn { CANCEL: this._cancelText.value as string };\n\t}\n\n\t@Output() cancel = new EventEmitter();\n\n\tactionBarLabel: Overridable = this.i18n.getOverridable(\"TABLE_TOOLBAR.ACTION_BAR\");\n\t_cancelText: Overridable = this.i18n.getOverridable(\"TABLE_TOOLBAR.CANCEL\");\n\t_batchTextLegacy: Overridable = this.i18n.getOverridable(\"TABLE_TOOLBAR.BATCH_TEXT\");\n\t_batchTextSingle: Overridable = this.i18n.getOverridable(\"TABLE_TOOLBAR.BATCH_TEXT_SINGLE\");\n\t_batchTextMultiple: Overridable = this.i18n.getOverridable(\"TABLE_TOOLBAR.BATCH_TEXT_MULTIPLE\");\n\n\tconstructor(protected i18n: I18n) {}\n\n\tget count() {\n\t\treturn this.model.totalDataLength > 0 ? this.model.rowsSelected.reduce((previous, current) => previous + (current ? 1 : 0), 0) : 0;\n\t}\n\tget selected() {\n\t\treturn this.model.totalDataLength > 0 ? this.model.rowsSelected.some(item => item) : false;\n\t}\n\n\tonCancel() {\n\t\tthis.model.selectAll(false);\n\t\tthis.cancel.emit();\n\t}\n}\n","import { Component, HostBinding } from \"@angular/core\";\n\n@Component({\n\tselector: \"ibm-table-toolbar-actions\",\n\ttemplate: `<ng-content></ng-content>`\n})\nexport class TableToolbarActions {}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Search } from \"carbon-components-angular/search\";\nimport {\n\tComponent,\n\tHostBinding,\n\tInput,\n\tOnInit,\n\tAfterViewInit\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n\tselector: \"ibm-table-toolbar-search\",\n\ttemplateUrl: \"../../search/search.component.html\",\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: TableToolbarSearch,\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class TableToolbarSearch extends Search implements AfterViewInit {\n\ttableSearch = true;\n\n\t@HostBinding(\"class.cds--toolbar-content\") hostClass = true;\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tif (this.value) {\n\t\t\t\tthis.openSearch();\n\t\t\t}\n\t\t});\n\t}\n}\n","<div\n\tclass=\"cds--search\"\n\t[ngClass]=\"{\n\t\t'cds--search--sm': size === 'sm',\n\t\t'cds--search--md': size === 'md',\n\t\t'cds--search--lg': size === 'lg',\n\t\t'cds--search--light': theme === 'light',\n\t\t'cds--skeleton': skeleton,\n\t\t'cds--search--expandable': expandable && !tableSearch,\n\t\t'cds--search--expanded': expandable && !tableSearch && active,\n\t\t'cds--toolbar-search': toolbar && !expandable,\n\t\t'cds--toolbar-search--active': toolbar && !expandable && active,\n\t\t'cds--toolbar-search-container-persistent': tableSearch && !expandable,\n\t\t'cds--toolbar-search-container-expandable': tableSearch && expandable,\n\t\t'cds--toolbar-search-container-active': tableSearch && expandable && active\n\t}\"\n\trole=\"search\"\n\t[attr.aria-label]=\"ariaLabel\"\n\t(click)=\"openSearch()\">\n\t<label class=\"cds--label\" [for]=\"id\">{{label}}</label>\n\n\t<div *ngIf=\"skeleton; else enableInput\" class=\"cds--search-input\"></div>\n\t<ng-template #enableInput>\n\t\t<input\n\t\t\t#input\n\t\t\tclass=\"cds--search-input\"\n\t\t\t[type]=\"tableSearch || !toolbar ? 'text' : 'search'\"\n\t\t\t[id]=\"id\"\n\t\t\t[value]=\"value\"\n\t\t\t[autocomplete]=\"autocomplete\"\n\t\t\t[placeholder]=\"placeholder\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[required]=\"required\"\n\t\t\t(input)=\"onSearch($event.target.value)\"\n\t\t\t(keyup.enter)=\"onEnter()\"/>\n\t\t<button\n\t\t\t*ngIf=\"!tableSearch && toolbar\"\n\t\t\tclass=\"cds--toolbar-search__btn\"\n\t\t\t(click)=\"openSearch()\"\n\t\t\taria-label=\"Open search\">\n\t\t\t<svg ibmIcon=\"search\" size=\"16\" class=\"cds--search-magnifier-icon\"></svg>\n\t\t</button>\n\t\t<svg\n\t\t\tibmIcon=\"search\"\n\t\t\t*ngIf=\"tableSearch || !toolbar\"\n\t\t\tclass=\"cds--search-magnifier-icon\"\n\t\t\tsize=\"16\">\n\t\t</svg>\n\t</ng-template>\n\n\t<button\n\t\t*ngIf=\"tableSearch || !toolbar\"\n\t\tclass=\"cds--search-close\"\n\t\t[ngClass]=\"{\n\t\t\t'cds--search-close--hidden': !value || value.length === 0\n\t\t}\"\n\t\t[title]=\"clearButtonTitle\"\n\t\t(click)=\"clearSearch()\">\n\t\t<span class=\"cds--visually-hidden\">{{ clearButtonTitle }}</span>\n\t\t<svg ibmIcon=\"close\" size=\"16\"></svg>\n\t</button>\n</div>\n","import { Component, HostBinding } from \"@angular/core\";\n\n@Component({\n\tselector: \"ibm-table-toolbar-content\",\n\ttemplate: `<ng-content></ng-content>`\n})\nexport class TableToolbarContent {\n\t@HostBinding(\"class.cds--toolbar-content\") class = true;\n}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[ibmTableHeaderDescription]\"\n})\nexport class TableHeaderDescription {\n\tstatic counter = 0;\n\n\t@HostBinding(\"attr.id\") @Input() id = `table-description-${TableHeaderDescription.counter++}`;\n\t@HostBinding(\"class.cds--data-table-header__description\") descriptionClass = true;\n}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[ibmTableHeaderTitle]\"\n})\nexport class TableHeaderTitle {\n\tstatic counter = 0;\n\n\t@HostBinding(\"attr.id\") @Input() id = `table-title-${TableHeaderTitle.counter++}`;\n\t@HostBinding(\"class.cds--data-table-header__title\") titleClass = true;\n}\n","import { TableItem } from \"./table-item.class\";\nimport {\n\tEventEmitter,\n\tTemplateRef\n} from \"@angular/core\";\n\nexport class TableHeaderItem {\n\t/**\n\t * Defines if column under this TableHeaderItem should be displayed.\n\t *\n\t */\n\tvisible = true;\n\n\t/**\n\t * Disables sorting by default.\n\t *\n\t */\n\tsorted = false;\n\n\t/**\n\t * Enables sorting on click by default.\n\t * If false then this column won't show a sorting arrow at all.\n\t *\n\t */\n\tsortable = true;\n\n\t/**\n\t * Number of applied filters.\n\t *\n\t * `filter()` should set it to appropriate number.\n\t *\n\t */\n\tfilterCount = 0;\n\n\t/**\n\t * The number of rows to span\n\t * **NOTE:** not supported by the default carbon table\n\t */\n\trowSpan = 1;\n\n\t/**\n\t * The number of columns to span\n\t */\n\tcolSpan = 1;\n\n\t/**\n\t * Attach a class to the column, both the header and column cells.\n\t *\n\t */\n\tclassName: string;\n\n\t/**\n\t * Style for the column, applied to every element in the column.\n\t *\n\t * ngStyle-like format\n\t *\n\t */\n\tstyle = {};\n\n\t/**\n\t * If true, sort is set to ascending, if false descending will be true.\n\t *\n\t */\n\tset ascending(asc) {\n\t\tthis._ascending = asc;\n\t}\n\tget ascending() {\n\t\treturn this._ascending;\n\t}\n\n\t/**\n\t * If true, sort is set to descending, if false ascending will be true.\n\t *\n\t */\n\tset descending(desc) {\n\t\tthis._ascending = !desc;\n\t}\n\tget descending() {\n\t\treturn !this._ascending;\n\t}\n\n\t/**\n\t * Data for the header item.\n\t */\n\tdata: any;\n\n\t/**\n\t * Data for the header item for general usage in the controller.\n\t * For example, which `field` is this column related to.\n\t */\n\tmetadata: any;\n\n\t/**\n\t * Used to display data in a desired way.\n\t *\n\t * If not provided, displays data as a simple string.\n\t *\n\t * Usage:\n\t *\n\t * In a component where you're using the table create a template like:\n\t *\n\t * ```html\n\t * <ng-template #customHeaderTemplate let-data=\"data\">\n\t * \t\t<i><a [routerLink]=\"data.link\">{{data.name}}</a></i>\n\t * </ng-template>\n\t * ```\n\t * where we assume your data contains `link` and `name`. `let-data=\"data\"` is\n\t * necessary for you to be able to access item's data in the template.\n\t *\n\t * Create `ViewChild` property with:\n\t *\n\t * ```typescript\n\t * (at)ViewChild(\"customHeaderTemplate\")\n\t * protected customHeaderTemplate: TemplateRef<any>;\n\t * ```\n\t *\n\t * Set the template to the header item, for example:\n\t *\n\t * ```typescript\n\t * this.model.header = [\n\t * \t\tnew TableHeaderItem({data: {name: \"Custom header\", link: \"/table\"}, template: this.customHeaderTemplate})\n\t * ];\n\t * ```\n\t */\n\ttemplate: TemplateRef<any>;\n\n\t/**\n\t * The label for the sort button\n\t */\n\tariaSortLabel: string;\n\n\t/**\n\t * A callback function to format the sort label. Will be heavily called.\n\t */\n\tformatSortLabel: (label: string, staticLabel?: string) => string;\n\n\t/**\n\t * Used as a template for popover filter.\n\t *\n\t * `let-popover=\"popover\"` will give you access to popover component and allow you to\n\t * manipulate it if needed.\n\t *\n\t * `let-filter=\"filter\"` will give you access to the \"filter\". The main takeaway is\n\t * store the data you need to `filter.data`. You will be able to access it as\n\t * `this.filterData.data` from your `filter()` function when you extend `TableHeaderItem`\n\t *\n\t * Example:\n\t * ```html\n\t * <ng-template #filter let-popover=\"popover\">\n\t * \t<ibm-label class=\"first-label\">\n\t * \t\tValue\n\t * \t\t<input type=\"text\" [(ngModel)]=\"filter1\" class=\"input-field\">\n\t * \t</ibm-label>\n\t * </ng-template>\n\t *\n\t * <ng-template #filterFooter let-popover=\"popover\" let-filter=\"data\">\n\t * \t<button class=\"btn--primary\" (click)=\"filter.data = filter1; popover.onClose()\">Apply</button>\n\t * \t<button class=\"btn--secondary\" (click)=\"popover.onClose()\">Cancel</button>\n\t * </ng-template>\n\t * ```\n\t *\n\t * Set the template with, for example:\n\t * ```typescript\n\t * new FilterableHeaderItem({\n\t * \tfilterTemplate: this.filter,\n\t *\tfilterFooter: this.filterFooter\n\t * })\n\t * ```\n\t *\n\t * ```typescript\n\t * class FilterableHeaderItem extends TableHeaderItem {\n\t * \t// custom filter function\n\t * \tfilter(item: TableItem): boolean {\n\t * \t\tif (typeof item.data === \"string\" && item.data.indexOf(this.filterData.data) >= 0) {\n\t * \t\t\tthis.filterCount = 1;\n\t * \t\t\treturn false;\n\t * \t\t}\n\t * \t\tthis.filterCount = 0;\n\t * \t\treturn true;\n\t * \t}\n\t * }\n\t * ```\n\t */\n\tfilterTemplate: TemplateRef<any>;\n\n\t/**\n\t * Used along with `filterTemplate` to construct the filter popover\n\t */\n\tfilterFooter: TemplateRef<any>;\n\n\t/**\n\t * This is where you store your data when applying filter.\n\t *\n\t * It is the actual object you have access to with `let-filter=\"data\"` in your template.\n\t *\n\t * Make sure to store data in `filter.data` in your template, and you will have it\n\t * available in `filterData.data` in your extension of `TableHeaderItem`.\n\t *\n\t * Because angular and object references.\n\t */\n\tfilterData: any;\n\n\t/**\n\t * used in `ascending`\n\t *\n\t * @protected\n\t */\n\tprotected _ascending = true;\n\n\tget title() {\n\t\tif (this._title) {\n\t\t\treturn this._title;\n\t\t}\n\n\t\tif (!this.data) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (typeof this.data === \"string\") {\n\t\t\treturn this.data;\n\t\t}\n\n\t\tif (\n\t\t\tthis.data.toString &&\n\t\t\tthis.data.constructor !== ({}).constructor\n\t\t) {\n\t\t\treturn this.data.toString();\n\t\t}\n\n\t\t// data can’t be reasonably converted to an end user readable string\n\t\treturn \"\";\n\t}\n\n\tset title(title) {\n\t\tthis._title = title;\n\t}\n\n\tprivate _title: string;\n\n\t/**\n\t * Creates an instance of TableHeaderItem.\n\t */\n\tconstructor(rawData?: any) {\n\t\t// defaults so we dont leave things empty\n\t\tconst defaults = {\n\t\t\tdata: \"\",\n\t\t\tvisible: this.visible,\n\t\t\tstyle: this.style,\n\t\t\tfilterCount: this.filterCount,\n\t\t\tfilterData: {data: \"\"}\n\t\t};\n\t\t// fill our object with provided props, and fallback to defaults\n\t\tconst data = Object.assign({}, defaults, rawData);\n\t\tfor (let property of Object.getOwnPropertyNames(data)) {\n\t\t\tif (data.hasOwnProperty(property)) {\n\t\t\t\tthis[property] = data[property];\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Used for sorting rows of the table.\n\t *\n\t * Override to enable different sorting.\n\t *\n\t * < 0 if `one` should go before `two`\n\t * > 0 if `one` should go after `two`\n\t * 0 if it doesn't matter (they are the same)\n\t */\n\tcompare(one: TableItem, two: TableItem): number {\n\t\tif (!one || !two) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (typeof one.data === \"string\") {\n\t\t\treturn one.data.localeCompare(two.data);\n\t\t}\n\n\t\tif (one.data < two.data) {\n\t\t\treturn -1;\n\t\t} else if (one.data > two.data) {\n\t\t\treturn 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\t/**\n\t * Used to filter rows in the table.\n\t *\n\t * Override to make a custom filter.\n\t *\n\t * Even though there is just one filter function, there can be multiple filters.\n\t * When implementing filter, set `filterCount` before returning.\n\t *\n\t * `true` to hide the row\n\t * `false` to show the row\n\t */\n\tfilter(item: TableItem): boolean {\n\t\tthis.filterCount = 0;\n\t\treturn false;\n\t}\n}\n","import {\n\tTemplateRef\n} from \"@angular/core\";\n\nexport class TableItem {\n\t/**\n\t * Data for the table item.\n\t */\n\tdata: any;\n\n\t/**\n\t * Data for the expanded part of the row.\n\t *\n\t * You only need to set it for the first item in the row.\n\t *\n\t * See `expandAsTable` documentation if you need to the table to expand to additional\n\t * table rows.\n\t */\n\texpandedData: any;\n\n\t/**\n\t * Used to display data in a desired way.\n\t *\n\t * If not provided, displays data as a simple string.\n\t *\n\t * Usage:\n\t *\n\t * In a component where you're using the table create a template like:\n\t *\n\t * ```html\n\t * <ng-template #customItemTemplate let-data=\"data\">\n\t * \t<i><a [routerLink]=\"data.link\">{{data.name}}</a></i>\n\t * </ng-template>\n\t * ```\n\t * where we assume your data contains `link` and `name`. `let-data=\"data\"` is\n\t * necessary for you to be able to access item's data in the template.\n\t *\n\t * Create `ViewChild` property with:\n\t *\n\t * ```typescript\n\t * (at)ViewChild(\"customItemTemplate\")\n\t * protected customItemTemplate: TemplateRef<any>;\n\t * ```\n\t *\n\t * Set the template to the table item, for example:\n\t *\n\t * ```typescript\n\t * this.model.data = [\n\t * \t[new TableItem({data: {name: \"Custom item\", link: \"/table\"}, template: this.customItemTemplate})]\n\t * ];\n\t * ```\n\t */\n\ttemplate: TemplateRef<any>;\n\n\t/**\n\t * Template for rendering `expandedData`\n\t *\n\t * You only need to set it for the first item in the row.\n\t *\n\t */\n\texpandedTemplate: TemplateRef<any>;\n\n\t/**\n\t * Setting this to `true` makes table interpret `expandedData` as additional rows to insert in place\n\t * for expanded data. `expandedTemplate` is then ignored.\n\t *\n\t * You can apply the template for individual cells as usual.\n\t *\n\t * Example model data:\n\t *\n\t * ```typescript\n\t * this.model.data = [\n\t * \t[new TableItem({ data: \"Name 4\" }), new TableItem({ data: \"twer\" })], // regular row\n\t * \t[\n\t * \t\tnew TableItem({\n\t * \t\t\tdata: \"Name 3.1\",\n\t * \t\t\t// `expandedData` mimics the format of the rest of the table\n\t * \t\t\texpandedData: [\n\t * \t\t\t\t[\n\t * \t\t\t\t\tnew TableItem({ data: \"More names\", expandedData: \"No template\" }),\n\t * \t\t\t\t\tnew TableItem({ data: { name: \"Morey\", link: \"#\" }, template: this.customTableItemTemplate })\n\t * \t\t\t\t],\n\t * \t\t\t\t[\n\t * \t\t\t\t\tnew TableItem({ data: \"Core names\", expandedData: \"No template\" }),\n\t * \t\t\t\t\tnew TableItem({ data: { name: \"Corey\", link: \"#\" }, template: this.customTableItemTemplate })\n\t * \t\t\t\t]\n\t * \t\t\t],\n\t * \t\t\t// `expandAsTable` tells the table to interpret `expandedData` as table data\n\t * \t\t\texpandAsTable: true\n\t * \t\t}),\n\t * \t\tnew TableItem({ data: \"swer\" })\n\t * \t],\n\t * \t[new TableItem({ data: \"Name 7\" }), new TableItem({data: \"twer\"})] // regular row\n\t * ];\n\t * ```\n\t */\n\texpandAsTable: false;\n\n\t/**\n\t * The number of rows to span\n\t */\n\trowSpan = 1;\n\n\t/**\n\t * The number of columns to span\n\t */\n\tcolSpan = 1;\n\n\tget title() {\n\t\tif (typeof this._title === \"string\") {\n\t\t\treturn this._title;\n\t\t}\n\n\t\tif (!this.data) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (typeof this.data === \"string\") {\n\t\t\treturn this.data;\n\t\t}\n\n\t\tif (\n\t\t\tthis.data.toString &&\n\t\t\tthis.data.constructor !== ({}).constructor\n\t\t) {\n\t\t\treturn this.data.toString();\n\t\t}\n\n\t\t// data can’t be reasonably converted to an end user readable string\n\t\treturn \"\";\n\t}\n\n\tset title(title) {\n\t\tthis._title = title;\n\t}\n\n\tprivate _title: string;\n\n\t/**\n\t * Creates an instance of TableItem.\n\t */\n\tconstructor(rawData?: any) {\n\t\t// defaults so we dont leave things empty\n\t\tconst defaults = {\n\t\t\tdata: \"\"\n\t\t};\n\t\t// fill our object with provided props, and fallback to defaults\n\t\tconst data = Object.assign({}, defaults, rawData);\n\t\tfor (const property of Object.getOwnPropertyNames(data)) {\n\t\t\tif (data.hasOwnProperty(property)) {\n\t\t\t\tthis[property] = data[property];\n\t\t\t}\n\t\t}\n\t}\n}\n","import {\n\tEventEmitter\n} from \"@angular/core\";\n\nimport { PaginationModel } from \"carbon-components-angular/pagination\";\nimport { TableHeaderItem } from \"./table-header-item.class\";\nimport { TableItem } from \"./table-item.class\";\nimport { TableRow } from \"./table-row.class\";\nimport { Subject } from \"rxjs\";\n\nexport type HeaderType = number | \"select\" | \"expand\";\n\n/**\n * TableModel represents a data model for two-dimensional data. It's used for all things table\n * (table component, table toolbar, pagination, etc)\n *\n * TableModel manages its internal data integrity very well if you use the provided helper\n * functions for modifying rows and columns and assigning header and data in that order.\n *\n * It also provides direct access to the data so you can read and modify it.\n * If you change the structure of the data (by directly pushing into the arrays or otherwise),\n * keep in mind to keep the data structure intact.\n *\n * Header length and length of every line in the data should be equal.\n *\n * If they are not consistent, unexpected things will happen.\n *\n * Use the provided functions when in doubt.\n */\nexport class TableModel implements PaginationModel {\n\t/**\n\t * The number of models instantiated, used for (among other things) unique id generation\n\t */\n\tprotected static COUNT = 0;\n\n\t/**\n\t * Sets data of the table.\n\t *\n\t * Make sure all rows are the same length to keep the column count accurate.\n\t */\n\tset data(newData: TableItem[][]) {\n\t\tif (!newData || (Array.isArray(newData) && newData.length === 0) ) {\n\t\t\tnewData = [[]];\n\t\t}\n\n\t\tthis._data = newData;\n\n\t\t// init rowsSelected\n\t\tthis.rowsSelected = new Array<boolean>(this._data.length).fill(false);\n\t\tthis.rowsExpanded = new Array<boolean>(this._data.length).fill(false);\n\n\t\t// init rowsContext\n\t\tthis.rowsContext = new Array<string>(this._data.length);\n\n\t\t// init rowsClass\n\t\tthis.rowsClass = new Array<string>(this._data.length);\n\n\t\t// only create a fresh header if necessary (header doesn't exist or differs in length)\n\t\tif (this.header == null || (this.header.length !== this._data[0].length && this._data[0].length > 0)) {\n\t\t\tlet header = new Array<TableHeaderItem>();\n\t\t\tfor (let i = 0; i < this._data[0].length; i++) {\n\t\t\t\theader.push(new TableHeaderItem());\n\t\t\t}\n\t\t\tthis.header = header;\n\t\t}\n\n\t\tthis.dataChange.emit();\n\t}\n\n\tdataChange = new EventEmitter();\n\trowsSelectedChange = new EventEmitter<number>();\n\trowsExpandedChange = new EventEmitter<number>();\n\t/**\n\t * Gets emitted when `selectAll` is called. Emits false if all rows are deselected and true if\n\t * all rows are selected.\n\t */\n\tselectAllChange = new Subject<boolean>();\n\n\t/**\n\t * Gets the full data.\n\t *\n\t * You can use it to alter individual `TableItem`s but if you need to change\n\t * table structure, use `addRow()` and/or `addColumn()`\n\t */\n\tget data() {\n\t\treturn this._data;\n\t}\n\n\t/**\n\t * Contains information about selection state of rows in the table.\n\t */\n\trowsSelected: boolean[] = [];\n\n\t/**\n\t * Contains information about expanded state of rows in the table.\n\t */\n\trowsExpanded: boolean[] = [];\n\n\t/**\n\t * Contains information about the context of the row.\n\t *\n\t * It affects styling of the row to reflect the context.\n\t *\n\t * string can be one of `\"success\" | \"warning\" | \"info\" | \"error\" | \"\"` and it's\n\t * empty or undefined by default\n\t */\n\trowsContext: string[] = [];\n\n\t/**\n\t * Contains class name(s) of the row.\n\t *\n\t * It affects styling of the row to reflect the appended class name(s).\n\t *\n\t * It's empty or undefined by default\n\t */\n\trowsClass: string[] = [];\n\n\t/**\n\t * Contains information about the header cells of the table.\n\t */\n\theader: TableHeaderItem[] = [];\n\n\t/**\n\t * Tracks the current page.\n\t */\n\tcurrentPage = 1;\n\n\t/**\n\t * Length of page.\n\t */\n\tpageLength = 10;\n\n\t/**\n\t * Set to true when there is no more data to load in the table\n\t */\n\tisEnd = false;\n\n\t/**\n\t * Set to true when lazy loading to show loading indicator\n\t */\n\tisLoading = false;\n\n\t/**\n\t * Absolute total number of rows of the table.\n\t */\n\tprotected _totalDataLength: number;\n\n\t/**\n\t * Manually set data length in case the data in the table doesn't\n\t * correctly reflect all the data that table is to display.\n\t *\n\t * Example: if you have multiple pages of data that table will display\n\t * but you're loading one at a time.\n\t *\n\t * Set to `null` to reset to default behavior.\n\t */\n\tset totalDataLength(length: number) {\n\t\t// if this function is called without a parameter we need to set to null to avoid having undefined != null\n\t\tthis._totalDataLength = isNaN(length) ? null : length;\n\t}\n\n\t/**\n\t * Total length of data that table has access to, or the amount manually set\n\t */\n\tget totalDataLength() {\n\t\t// if manually set data length\n\t\tif (this._totalDataLength !== null && this._totalDataLength >= 0) {\n\t\t\treturn this._totalDataLength;\n\t\t}\n\n\t\t// if empty dataset\n\t\tif (this.data && this.data.length === 1 && this.data[0].length === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn this.data.length;\n\t}\n\n\t/**\n\t * Used in `data`\n\t */\n\tprotected _data: TableItem[][] = [[]];\n\n\t/**\n\t * The number of models instantiated, this is to make sure each table has a different\n\t * model count for unique id generation.\n\t */\n\tprotected tableModelCount = 0;\n\n\tconstructor() {\n\t\tthis.tableModelCount = TableModel.COUNT++;\n\t}\n\n\t/**\n\t * Returns an id for the given column\n\t *\n\t * @param column the column to generate an id for\n\t * @param row the row of the header to generate an id for\n\t */\n\tgetId(column: HeaderType, row = 0): string {\n\t\treturn `table-header-${row}-${column}-${this.tableModelCount}`;\n\t}\n\n\t/**\n\t * Returns the id of the header. Used to link the cells with headers (or headers with headers)\n\t *\n\t * @param column the column to start getting headers for\n\t * @param colSpan the number of columns to get headers for (defaults to 1)\n\t */\n\tgetHeaderId(column: HeaderType, colSpan = 1): string {\n\t\tif (column === \"select\" || column === \"expand\") {\n\t\t\treturn this.getId(column);\n\t\t}\n\n\t\tlet ids = [];\n\t\tfor (let i = column; i >= 0; i--) {\n\t\t\tif (this.header[i]) {\n\t\t\t\tfor (let j = 0; j < colSpan; j++) {\n\t\t\t\t\tids.push(this.getId(i + j));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn ids.join(\" \");\n\t}\n\n\t/**\n\t * Finds closest header by trying the `column` and then working its way to the left\n\t *\n\t * @param column the target column\n\t */\n\tgetHeader(column: number): TableHeaderItem {\n\t\tif (!this.header) {\n\t\t\treturn null;\n\t\t}\n\n\t\tfor (let i = column; i >= 0; i--) {\n\t\t\tconst headerCell = this.header[i];\n\t\t\tif (headerCell) {\n\t\t\t\treturn headerCell;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns how many rows is currently selected\n\t */\n\tselectedRowsCount(): number {\n\t\tlet count = 0;\n\t\tif (this.rowsSelected) {\n\t\t\tthis.rowsSelected.forEach(rowSelected => {\n\t\t\t\tif (rowSelected) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn count;\n\t}\n\n\t/**\n\t * Returns how many rows is currently expanded\n\t */\n\texpandedRowsCount(): number {\n\t\tlet count = 0;\n\t\tif (this.rowsExpanded) {\n\t\t\tthis.rowsExpanded.forEach(rowExpanded => {\n\t\t\t\tif (rowExpanded) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn count;\n\t}\n\n\t/**\n\t * Returns `index`th row of the table.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param index\n\t */\n\trow(index: number): TableItem[] {\n\t\treturn this.data[this.realRowIndex(index)];\n\t}\n\n\t/**\n\t * Adds a row to the `index`th row or appends to table if index not provided.\n\t *\n\t * If row is shorter than other rows or not provided, it will be padded with\n\t * empty `TableItem` elements.\n\t *\n\t * If row is longer than other rows, others will be extended to match so no data is lost.\n\t *\n\t * If called on an empty table with no parameters, it creates a 1x1 table.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param [row]\n\t * @param [index]\n\t */\n\taddRow(row?: TableItem[], index?: number) {\n\t\t// if table empty create table with row\n\t\tif (!this.data || this.data.length === 0 || this.data[0].length === 0) {\n\t\t\tlet newData = new Array<Array<TableItem>>();\n\t\t\tnewData.push(row ? row : [new TableItem()]); // row or one empty one column row\n\t\t\tthis.data = newData;\n\n\t\t\treturn;\n\t\t}\n\n\t\tlet realRow = row;\n\t\tconst columnCount = this.data[0].length;\n\n\t\tif (row == null) {\n\t\t\trealRow = new Array<TableItem>();\n\t\t\tfor (let i = 0; i < columnCount; i++) {\n\t\t\t\trealRow.push(new TableItem());\n\t\t\t}\n\t\t}\n\n\t\tif (realRow.length < columnCount) {\n\t\t\t// extend the length of realRow\n\t\t\tconst difference = columnCount - realRow.length;\n\t\t\tfor (let i = 0; i < difference; i++) {\n\t\t\t\trealRow.push(new TableItem());\n\t\t\t}\n\t\t} else if (realRow.length > columnCount) {\n\t\t\t// extend the length of header\n\t\t\tlet difference = realRow.length - this.header.length;\n\t\t\tfor (let j = 0; j < difference; j++) {\n\t\t\t\tthis.header.push(new TableHeaderItem());\n\t\t\t}\n\t\t\t// extend the length of every other row\n\t\t\tfor (let i = 0; i < this.data.length; i++) {\n\t\t\t\tlet currentRow = this.data[i];\n\t\t\t\tdifference = realRow.length - currentRow.length;\n\t\t\t\tfor (let j = 0; j < difference; j++) {\n\t\t\t\t\tcurrentRow.push(new TableItem());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (index == null) {\n\t\t\tthis.data.push(realRow);\n\n\t\t\t// update rowsSelected property for length\n\t\t\tthis.rowsSelected.push(false);\n\n\t\t\t// update rowsExpanded property for length\n\t\t\tthis.rowsExpanded.push(false);\n\n\t\t\t// update rowsContext property for length\n\t\t\tthis.rowsContext.push(undefined);\n\n\t\t\t// update rowsClass property for length\n\t\t\tthis.rowsClass.push(undefined);\n\t\t} else {\n\t\t\tconst ri = this.realRowIndex(index);\n\t\t\tthis.data.splice(ri, 0, realRow);\n\n\t\t\t// update rowsSelected property for length\n\t\t\tthis.rowsSelected.splice(ri, 0, false);\n\n\t\t\t// update rowsExpanded property for length\n\t\t\tthis.rowsExpanded.splice(ri, 0, false);\n\n\t\t\t// update rowsContext property for length\n\t\t\tthis.rowsContext.splice(ri, 0, undefined);\n\n\t\t\t// update rowsClass property for length\n\t\t\tthis.rowsClass.splice(ri, 0, undefined);\n\t\t}\n\n\t\tthis.dataChange.emit();\n\t}\n\n\t/**\n\t * Deletes `index`th row.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param index\n\t */\n\tdeleteRow(index: number) {\n\t\tconst rri = this.realRowIndex(index);\n\t\tthis.data.splice(rri, 1);\n\t\tthis.rowsSelected.splice(rri, 1);\n\t\tthis.rowsExpanded.splice(rri, 1);\n\t\tthis.rowsContext.splice(rri, 1);\n\t\tthis.rowsClass.splice(rri, 1);\n\n\t\tthis.dataChange.emit();\n\t}\n\n\thasExpandableRows() {\n\t\treturn this.data.some(data => data.some(d => d && d.expandedData)); // checking for some in 2D array\n\t}\n\n\tisRowExpandable(index: number) {\n\t\treturn this.data[index].some(d => d && d.expandedData);\n\t}\n\n\tisRowExpanded(index: number) {\n\t\treturn this.rowsExpanded[index];\n\t}\n\n\tgetRowContext(index: number) {\n\t\treturn this.rowsContext[index];\n\t}\n\n\t/**\n\t * Returns `index`th column of the table.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param index\n\t */\n\tcolumn(index: number): TableItem[] {\n\t\tlet column = new Array<TableItem>();\n\t\tconst ri = this.realColumnIndex(index);\n\t\tconst rc = this.data.length;\n\n\t\tfor (let i = 0; i < rc; i++) {\n\t\t\tconst row = this.data[i];\n\t\t\tcolumn.push(row[ri]);\n\t\t}\n\n\t\treturn column;\n\t}\n\n\t/**\n\t * Adds a column to the `index`th column or appends to table if index not provided.\n\t *\n\t * If column is shorter than other columns or not provided, it will be padded with\n\t * empty `TableItem` elements.\n\t *\n\t * If column is longer than other columns, others will be extended to match so no data is lost.\n\t *\n\t * If called on an empty table with no parameters, it creates a 1x1 table.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param [column]\n\t * @param [index]\n\t */\n\taddColumn(column?: TableItem[], index?: number) {\n\t\t// if table empty create table with row\n\t\tif (!this.data || this.data.length === 0 || this.data[0].length === 0) {\n\t\t\tlet newData = new Array<Array<TableItem>>();\n\t\t\tif (column == null) {\n\t\t\t\tnewData.push([new TableItem()]);\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < column.length; i++) {\n\t\t\t\t\tlet item = column[i];\n\t\t\t\t\tnewData.push([item]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.data = newData;\n\n\t\t\treturn;\n\t\t}\n\n\t\tlet rc = this.data.length; // row count\n\t\tlet ci = this.realColumnIndex(index);\n\n\t\t// append missing rows\n\t\tfor (let i = 0; column != null && i < column.length - rc; i++) {\n\t\t\tthis.addRow();\n\t\t}\n\t\trc = this.data.length;\n\t\tif (index == null) {\n\t\t\t// append to end\n\t\t\tfor (let i = 0; i < rc; i++) {\n\t\t\t\tlet row = this.data[i];\n\t\t\t\trow.push(column == null || column[i] == null ? new TableItem() : column[i]);\n\t\t\t}\n\t\t\t// update header if not already set by user\n\t\t\tif (this.header.length < this.data[0].length) {\n\t\t\t\tthis.header.push(new TableHeaderItem());\n\t\t\t}\n\t\t} else {\n\t\t\tif (index >= this.data[0].length) {\n\t\t\t\t// if trying to append\n\t\t\t\tci++;\n\t\t\t}\n\t\t\t// insert\n\t\t\tfor (let i = 0; i < rc; i++) {\n\t\t\t\tlet row = this.data[i];\n\t\t\t\trow.splice(ci, 0, column == null || column[i] == null ? new TableItem() : column[i]);\n\t\t\t}\n\t\t\t// update header if not already set by user\n\t\t\tif (this.header.length < this.data[0].length) {\n\t\t\t\tthis.header.splice(ci, 0, new TableHeaderItem());\n\t\t\t}\n\t\t}\n\n\t\tthis.dataChange.emit();\n\t}\n\n\t/**\n\t * Deletes `index`th column.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param index\n\t */\n\tdeleteColumn(index: number) {\n\t\tconst rci = this.realColumnIndex(index);\n\t\tconst rowCount = this.data.length;\n\t\tfor (let i = 0; i < rowCount; i++) {\n\t\t\tthis.data[i].splice(rci, 1);\n\t\t}\n\t\t// update header if not already set by user\n\t\tif (this.header.length > this.data[0].length) {\n\t\t\tthis.header.splice(rci, 1);\n\t\t}\n\n\t\tthis.dataChange.emit();\n\t}\n\n\tmoveColumn(indexFrom: number, indexTo: number) {\n\t\tconst headerFrom = this.header[indexFrom];\n\n\t\tthis.addColumn(this.column(indexFrom), indexTo);\n\t\tthis.deleteColumn(indexFrom + (indexTo < indexFrom ? 1 : 0));\n\n\t\tthis.header[indexTo + (indexTo > indexFrom ? -1 : 0)] = headerFrom;\n\t}\n\n\t/**\n\t * Sorts the data currently present in the model based on `compare()`\n\t *\n\t * Direction is set by `ascending` and `descending` properties of `TableHeaderItem`\n\t * in `index`th column.\n\t *\n\t * @param index The column based on which it's sorting\n\t */\n\tsort(index: number) {\n\t\tthis.pushRowStateToModelData();\n\t\tthis.data.sort((a, b) => (this.header[index].descending ? -1 : 1) * this.header[index].compare(a[index], b[index]));\n\t\tthis.popRowStateFromModelData();\n\t\tthis.header.forEach(column => column.sorted = false);\n\t\tthis.header[index].sorted = true;\n\t}\n\n\t/**\n\t * Appends `rowsSelected` and `rowsExpanded` info to model data.\n\t *\n\t * When sorting rows, do this first so information about row selection\n\t * gets sorted with the other row info.\n\t *\n\t * Call `popRowSelectionFromModelData()` after sorting to make everything\n\t * right with the world again.\n\t */\n\tpushRowStateToModelData() {\n\t\tfor (let i = 0; i < this.data.length; i++) {\n\t\t\tconst rowSelectedMark = new TableItem();\n\t\t\trowSelectedMark.data = this.rowsSelected[i];\n\t\t\tthis.data[i].push(rowSelectedMark);\n\n\t\t\tconst rowExpandedMark = new TableItem();\n\t\t\trowExpandedMark.data = this.rowsExpanded[i];\n\t\t\tthis.data[i].push(rowExpandedMark);\n\n\t\t\tconst rowContext = new TableItem();\n\t\t\trowContext.data = this.rowsContext[i];\n\t\t\tthis.data[i].push(rowContext);\n\n\t\t\tconst rowClass = new TableItem();\n\t\t\trowClass.data = this.rowsClass[i];\n\t\t\tthis.data[i].push(rowClass);\n\t\t}\n\t}\n\n\t/**\n\t * Restores `rowsSelected` from data pushed by `pushRowSelectionToModelData()`\n\t *\n\t * Call after sorting data (if you previously pushed to maintain selection order)\n\t * to make everything right with the world again.\n\t */\n\tpopRowStateFromModelData() {\n\t\tfor (let i = 0; i < this.data.length; i++) {\n\t\t\tthis.rowsClass[i] = this.data[i].pop().data;\n\t\t\tthis.rowsContext[i] = this.data[i].pop().data;\n\t\t\tthis.rowsExpanded[i] = !!this.data[i].pop().data;\n\t\t\tthis.rowsSelected[i] = !!this.data[i].pop().data;\n\t\t}\n\t}\n\n\t/**\n\t * Checks if row is filtered out.\n\t *\n\t * @param index\n\t * @returns true if any of the filters in header filters out the `index`th row\n\t */\n\tisRowFiltered(index: number): boolean {\n\t\tconst realIndex = this.realRowIndex(index);\n\t\treturn this.header.some((item, i) => item && item.filter(this.row(realIndex)[i]));\n\t}\n\n\t/**\n\t * Select/deselect `index`th row based on value\n\t *\n\t * @param index index of the row to select\n\t * @param value state to set the row to. Defaults to `true`\n\t */\n\tselectRow(index: number, value = true) {\n\t\tif (this.isRowDisabled(index)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.rowsSelected[index] = value;\n\t\tthis.rowsSelectedChange.emit(index);\n\t}\n\n\t/**\n\t * Selects or deselects all rows in the model\n\t *\n\t * @param value state to set all rows to. Defaults to `true`\n\t */\n\tselectAll(value = true) {\n\t\tif (this.data.length >= 1 && this.data[0].length >= 1) {\n\t\t\tfor (let i = 0; i < this.rowsSelected.length; i++) {\n\t\t\t\tthis.selectRow(i, value);\n\t\t\t}\n\t\t}\n\t\tthis.selectAllChange.next(value);\n\t}\n\n\tisRowSelected(index: number) {\n\t\treturn this.rowsSelected[index];\n\t}\n\n\t/**\n\t * Checks if row is disabled or not.\n\t */\n\tisRowDisabled(index: number) {\n\t\tconst row = this.data[index] as TableRow;\n\t\treturn !!row.disabled;\n\t}\n\n\t/**\n\t * Expands/Collapses `index`th row based on value\n\t *\n\t * @param index index of the row to expand or collapse\n\t * @param value expanded state of the row. `true` is expanded and `false` is collapsed\n\t */\n\texpandRow(index: number, value = true) {\n\t\tthis.rowsExpanded[index] = value;\n\t\tthis.rowsExpandedChange.emit(index);\n\t}\n\n\t/**\n\t * Gets the true index of a row based on it's relative position.\n\t * Like in Python, positive numbers start from the top and\n\t * negative numbers start from the bottom.\n\t *\n\t * @param index\n\t */\n\tprotected realRowIndex(index: number): number {\n\t\treturn this.realIndex(index, this.data.length);\n\t}\n\n\t/**\n\t * Gets the true index of a column based on it's relative position.\n\t * Like in Python, positive numbers start from the top and\n\t * negative numbers start from the bottom.\n\t *\n\t * @param index\n\t */\n\tprotected realColumnIndex(index: number): number {\n\t\treturn this.realIndex(index, this.data[0].length);\n\t}\n\n\t/**\n\t * Generic function to calculate the real index of something.\n\t * Used by `realRowIndex()` and `realColumnIndex()`\n\t *\n\t * @param index\n\t * @param length\n\t */\n\tprotected realIndex(index: number, length: number): number {\n\t\tif (index == null) {\n\t\t\treturn length - 1;\n\t\t} else if (index >= 0) {\n\t\t\treturn index >= length ? length - 1 : index;\n\t\t} else {\n\t\t\treturn -index >= length ? 0 : length + index;\n\t\t}\n\t}\n}\n","import {\n\tBehaviorSubject,\n\tObservable,\n\tcombineLatest\n} from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { TableAdapter } from \"./table-adapter.class\";\nimport { tabbableSelectorIgnoreTabIndex, getFocusElementList } from \"carbon-components-angular/common\";\n\n/**\n * The current and previous position in the grid.\n *\n * `current` and `previous` are tuples that follow the `[row, column]` convention.\n */\nexport interface DataGridPosition {\n\tcurrent: [number, number];\n\tprevious: [number, number];\n}\n\n/**\n * `DataGridInteractionModel` provides centralized control over arbitrary 2d grids, following the w3 specs.\n *\n * Refs:\n * - https://www.w3.org/TR/wai-aria-practices/examples/grid/dataGrids.html\n * - https://www.w3.org/TR/wai-aria-practices/#grid\n *\n * Example usage (taken from `table.component`):\n```typescript\n// a standard HTML table\nconst table = this.elementRef.nativeElement.querySelector(\"table\") as HTMLTableElement;\n\n// `TableDomAdapter` implements `TableAdapter` and provides a consistent interface to query rows and columns in a table\nconst tableAdapter = new TableDomAdapter(table);\n\n// the keydown events that we'll use for keyboard navigation of the table\nconst keydownEventStream = fromEvent<KeyboardEvent>(table, \"keydown\");\n\n// the click events we'll use to ensure focus is updated correctly on click\nconst clickEventStream = fromEvent<MouseEvent>(table, \"click\");\n\n// the `DataGridInteractionModel` instance!\nthis.interactionModel = new DataGridInteractionModel(keydownEventStream, clickEventStream, tableAdapter);\n\n// subscribe to the combined position updates\nthis.interactionModel.position.subscribe(event => {\n\tconst [currentRow, currentColumn] = event.current;\n\tconst [previousRow, previousColumn] = event.previous;\n\n\t// query the TableAdapter for the cell at the current row and column ...\n\tconst currentElement = tableAdapter.getCell(currentRow, currentColumn);\n\t// ... and make it focusable it\n\tTable.setTabIndex(currentElement, 0);\n\n\t// if the model has just initialized don't focus or reset anything\n\tif (previousRow === -1 || previousColumn === -1) { return; }\n\n\t// query the TableAdapter for the cell at the previous row and column ...\n\tconst previousElement = tableAdapter.getCell(previousRow, previousColumn);\n\t// ... and make it unfocusable (now there is only a single focusable cell)\n\tTable.setTabIndex(previousElement, -1);\n\n\t// finally, focus the current cell (skipped during initilzation)\n\tTable.focus(currentElement);\n});\n```\n */\nexport class DataGridInteractionModel {\n\t/**\n\t * An Observable that provides an aggregated view of the `rowIndex` and `columnIndex` Observables\n\t */\n\treadonly position: Observable<DataGridPosition>;\n\t/**\n\t * An Observable that provides the current and previous row indexes.\n\t */\n\treadonly rowIndex: Observable<{ current: number, previous: number }>;\n\t/**\n\t * An Observable that provides the current and previous column indexes.\n\t */\n\treadonly columnIndex: Observable<{ current: number, previous: number }>;\n\n\t/**\n\t * Internal subject to handle changes in row\n\t */\n\tprotected rowSubject = new BehaviorSubject({ current: 0, previous: -1 });\n\t/**\n\t * Internal subject to handle changes in column\n\t */\n\tprotected columnSubject = new BehaviorSubject({ current: 0, previous: -1 });\n\n\t/**\n\t * The latest value emitted by the rowSubject\n\t */\n\tprotected get currentRow() {\n\t\treturn this.rowSubject.getValue().current;\n\t}\n\n\t/**\n\t * The latest value emitted by the columnSubject\n\t */\n\tprotected get currentColumn() {\n\t\treturn this.columnSubject.getValue().current;\n\t}\n\n\t/**\n\t * The last column as reported by the adapter\n\t */\n\tprotected get lastColumn() {\n\t\treturn this.tableAdapter.lastColumnIndex;\n\t}\n\n\t/**\n\t * The last row as reported by the adapter\n\t */\n\tprotected get lastRow() {\n\t\treturn this.tableAdapter.lastRowIndex;\n\t}\n\n\t/**\n\t * `DataGridInteractionModel` requires knowledge of events, and a representation of your table/grid to be useful.\n\t *\n\t * @param keyboardEventStream an Observable of KeyboardEvents. Should be scoped to the table container.\n\t * @param clickEventStream an Observable of ClickEvents. should only include clicks that take action on items known by the TableAdapter\n\t * @param tableAdapter an instance of a concrete class that implements TableAdapter. The standard carbon table uses TableDomAdapter\n\t */\n\tconstructor(\n\t\tprotected keyboardEventStream: Observable<KeyboardEvent>,\n\t\tprotected clickEventStream: Observable<MouseEvent>,\n\t\tprotected tableAdapter: TableAdapter\n\t) {\n\t\tthis.rowIndex = this.rowSubject.asObservable();\n\t\tthis.columnIndex = this.columnSubject.asObservable();\n\t\tthis.position = combineLatest(this.rowIndex, this.columnIndex).pipe(map(positions => {\n\t\t\tconst [row, column] = positions;\n\t\t\treturn {\n\t\t\t\tcurrent: [row.current, column.current],\n\t\t\t\tprevious: [row.previous, column.previous]\n\t\t\t};\n\t\t})) as Observable<DataGridPosition>;\n\t\tthis.keyboardEventStream.subscribe(this.handleKeyboardEvent.bind(this));\n\t\tthis.clickEventStream.subscribe(this.handleClickEvent.bind(this));\n\t}\n\n\t/**\n\t * Handles moving the position according to the w3 datagrid navigation specs\n\t *\n\t * Refs:\n\t * - https://www.w3.org/TR/wai-aria-practices/examples/grid/dataGrids.html\n\t * - https://www.w3.org/TR/wai-aria-practices/#grid\n\t *\n\t * @param event the KeyboardEvent to handle\n\t */\n\thandleKeyboardEvent(event: KeyboardEvent) {\n\t\tconst currentCell = this.tableAdapter.getCell(this.currentRow, this.currentColumn);\n\t\tlet currentColumn = this.tableAdapter.findColumnIndex(currentCell);\n\t\tlet currentRow = this.tableAdapter.findRowIndex(currentCell);\n\n\t\tswitch (event.key) {\n\t\t\tcase \"ArrowRight\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// add the colspan since findColumnIndex will return the\n\t\t\t\t// first column containing the cell (of N columns it may span)\n\t\t\t\t// and we want to navigate to the next \"real\" column\n\t\t\t\tthis.goToColumn(currentColumn + currentCell.colSpan);\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowLeft\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// we only ever need to subtract 1 from the column, since findColumnIndex returns the\n\t\t\t\t// first of N columns containing the cell\n\t\t\t\tthis.goToColumn(currentColumn - 1);\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowDown\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.goToRow(currentRow + currentCell.rowSpan);\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowUp\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.goToRow(currentRow - 1);\n\t\t\t\tbreak;\n\t\t\tcase \"Home\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (event.ctrlKey) {\n\t\t\t\t\tthis.goTo({row: 0, column: 0});\n\t\t\t\t} else {\n\t\t\t\t\tthis.goToColumn(0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"End\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (event.ctrlKey) {\n\t\t\t\t\tthis.goTo({ row: this.lastRow, column: this.lastColumn });\n\t\t\t\t} else {\n\t\t\t\t\tthis.goToColumn(this.lastColumn);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/**\n\t * Handles moving the position to the clicked cell\n\t *\n\t * @param event the MouseEvent to handle\n\t */\n\thandleClickEvent(event: MouseEvent) {\n\t\tconst cell = (event.target as HTMLElement).closest(\"td, th\") as HTMLTableCellElement;\n\t\tconst [rowIndex, cellIndex] = this.tableAdapter.findIndex(cell);\n\t\tthis.goTo({ row: rowIndex, column: cellIndex });\n\t}\n\n\t/**\n\t * Jump to a specific column without changing the row\n\t *\n\t * @param index column to jump to\n\t */\n\tgoToColumn(index: number) {\n\t\tif (index > this.lastColumn || index < 0) { return; }\n\t\tthis.goTo({ row: this.currentRow, column: index});\n\t}\n\n\t/**\n\t * Jump to a specific row without changing the column\n\t *\n\t * @param index row to jump to\n\t */\n\tgoToRow(index: number) {\n\t\tif (index > this.lastRow || index < 0) { return; }\n\t\tthis.goTo({row: index, column: this.currentColumn});\n\t}\n\n\t/**\n\t * Jump to the specified row and column\n\t *\n\t * @param param0 an object that contains `row` and `column` properties\n\t */\n\tgoTo({row, column}) {\n\t\tthis.rowSubject.next({ current: row, previous: this.currentRow });\n\t\tthis.columnSubject.next({ current: column, previous: this.currentColumn });\n\t}\n\n\t/**\n\t * Convenience method to reset the tab indexes on a standard carbon table.\n\t * For custom tables you may want to reset the indexes manually and simply call `.reset()`\n\t */\n\tresetTabIndexes(newTabIndex = -1) {\n\t\tfor (let i = 0; i < this.tableAdapter.lastRowIndex; i++) {\n\t\t\tconst row = this.tableAdapter.getRow(i) as HTMLTableRowElement;\n\t\t\tfor (const cell of Array.from(row.cells)) {\n\t\t\t\tconst tabbableElements = getFocusElementList(cell, tabbableSelectorIgnoreTabIndex);\n\t\t\t\ttabbableElements.forEach((node: HTMLElement) => node.tabIndex = newTabIndex);\n\t\t\t\tcell.tabIndex = newTabIndex;\n\t\t\t}\n\t\t}\n\n\t\tthis.reset();\n\t}\n\n\t/**\n\t * Resets the models focus position\n\t */\n\treset() {\n\t\tthis.rowSubject.next({ current: 0, previous: -1 });\n\t\tthis.columnSubject.next({ current: 0, previous: -1 });\n\t}\n}\n","/**\n * An abstract class that represents a cell in a table\n */\nexport abstract class TableCellAdapter {\n\t/**\n\t * The index of the cell in the table\n\t */\n\tcellIndex: number;\n\t/**\n\t * The number of columns spanned by this cell\n\t */\n\tcolSpan: number;\n\t/**\n\t * The number of rows spanned by this cell\n\t */\n\trowSpan: number;\n}\n\n/**\n * An abstract class that represents a row in a table\n */\nexport abstract class TableRowAdapter {\n\t/**\n\t * The index of the row in the table\n\t */\n\trowIndex: number;\n\t/**\n\t * An array (or `HTMLCollection`) of `TableCellAdapter`s\n\t */\n\tcells: HTMLCollection | TableCellAdapter[];\n}\n\n/**\n * An abstract representation of a table that provides\n * a standard interface to query 2d tables for cell and row information.\n */\nexport abstract class TableAdapter {\n\t/**\n\t * The last accessible column in the table\n\t */\n\tpublic get lastColumnIndex(): number { return; }\n\n\t/**\n\t * The last accessible row in the table\n\t */\n\tpublic get lastRowIndex(): number { return; }\n\n\t/**\n\t * Returns a cell from the table\n\t *\n\t * @param row index of the row\n\t * @param column index of the column\n\t */\n\tgetCell(row: number, column: number): TableCellAdapter { return; }\n\n\t/**\n\t * Returns a row from the table\n\t *\n\t * @param column index of the column\n\t */\n\tgetColumn(column: number): TableCellAdapter[] { return; }\n\n\t/**\n\t * Returns a row from the table\n\t *\n\t * @param row index of the row\n\t */\n\tgetRow(row: number): TableRowAdapter { return; }\n\n\t/**\n\t * Finds the column index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t */\n\tfindColumnIndex(cell: TableCellAdapter): number { return; }\n\n\t/**\n\t * Finds the row index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t */\n\tfindRowIndex(cell: TableCellAdapter): number { return; }\n\n\t/**\n\t * Finds the row and column index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t * @returns a tuple that follows the `[row, column]` convention\n\t */\n\tfindIndex(cell: TableCellAdapter): [number, number] { return; }\n}\n\nenum TableDomSpanDirection {\n\tcolSpan = \"colSpan\",\n\trowSpan = \"rowSpan\"\n}\n\n/**\n * A concrete implementation of `TableAdapter`\n *\n * Provides standard and consistent access to table cells and rows\n */\nexport class TableDomAdapter implements TableAdapter {\n\t/**\n\t * The last accessible column in the table\n\t */\n\tpublic get lastColumnIndex() {\n\t\treturn this.getRealRowLength(this.tableElement.rows[0]);\n\t}\n\n\t/**\n\t * The last accessible row in the table\n\t */\n\tpublic get lastRowIndex() {\n\t\treturn this.tableElement.rows.length - 1;\n\t}\n\n\t/**\n\t * `TableDomAdapter` works on a normal HTML table structure.\n\t * Custom tables that don't follow the standard structure should use a custom implementation of `TableAdapter`.\n\t *\n\t * The standard structure allows us to directly query rows for cells and indexes - though we do have to handle colspans specially.\n\t *\n\t * @param tableElement the root HTML table element.\n\t */\n\tconstructor(public tableElement: HTMLTableElement) { }\n\n\t/**\n\t * Returns a cell from the table taking colspans in to account.\n\t *\n\t * @param row index of the row\n\t * @param column index of the column\n\t */\n\tgetCell(row: number, column: number): HTMLTableCellElement {\n\t\tconst col = this.getColumn(column);\n\n\t\treturn this.findCellInColumn(col, row).cell;\n\t}\n\n\t/**\n\t * Returns a column from the table, using the `id` and `headers` attributes\n\t *\n\t * See here for more detail these attributes: https://www.w3.org/TR/WCAG20-TECHS/H43.html\n\t *\n\t * @param column the index of the column\n\t */\n\tgetColumn(column: number): HTMLTableCellElement[] {\n\t\tconst firstHeader = Array.from(this.tableElement.rows[0].cells);\n\n\t\tconst { cell: header, realIndex: realColumnIndex } = this.findCellInRow(firstHeader, column);\n\n\t\tconst linkedCells: HTMLTableCellElement[] = [];\n\n\t\tfor (let i = 1; i < this.tableElement.rows.length; i++) {\n\t\t\tconst row = this.tableElement.rows[i];\n\t\t\t// query for any cells that are linked to the given header id\n\t\t\t// `~=` matches values in space separated lists - so `[headers~='foo']` would match `headers=\"foo bar\"` and `headers=\"foo\"`\n\t\t\t// but not `headers=\"bar\"` or `headers=\"bar baz\"`\n\t\t\tconst linkedRowCells: NodeListOf<HTMLTableCellElement> = row.querySelectorAll(`[headers~='${header.id}']`);\n\t\t\t// if we have more than one cell, get the one that is closest to the column\n\t\t\tif (linkedRowCells.length > 1) {\n\t\t\t\tconst { cell } = this.findCellInRow(Array.from(linkedRowCells), column - realColumnIndex);\n\t\t\t\tlinkedCells.push(cell);\n\t\t\t} else if (linkedRowCells[0]) {\n\t\t\t\tlinkedCells.push(linkedRowCells[0]);\n\t\t\t}\n\t\t}\n\n\t\t// return an empty array if we can't find any linked cells\n\t\t// returning anything else would be a lie\n\t\tif (!linkedCells) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [header, ...linkedCells];\n\t}\n\n\t/**\n\t * Returns a row from the table\n\t *\n\t * @param row index of the row\n\t */\n\tgetRow(row: number): HTMLTableRowElement {\n\t\treturn this.tableElement.rows[row];\n\t}\n\n\t/**\n\t * Finds the column index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t */\n\tfindColumnIndex(cell: HTMLTableCellElement): number {\n\t\tconst row = this.getRow(this.findRowIndex(cell));\n\t\tif (!row) {\n\t\t\treturn;\n\t\t}\n\t\t// if the cell has linked headers we can do a more accurate lookup\n\t\tif (cell && cell.headers) {\n\t\t\tconst ids = cell.headers.split(\" \");\n\t\t\tconst headerRows = Array.from(this.tableElement.tHead.rows);\n\t\t\tconst indexes = [];\n\n\t\t\t// start from the last row and work up\n\t\t\tfor (const headerRow of headerRows.reverse()) {\n\t\t\t\tconst headerCells = Array.from(headerRow.cells);\n\t\t\t\tconst header = headerCells.find(headerCell => ids.includes(headerCell.id));\n\t\t\t\t// if we have a matching header, find it's index (adjusting for colspans)\n\t\t\t\tif (header) {\n\t\t\t\t\t// this is borrowed from below\n\t\t\t\t\tlet cellIndex = 0;\n\t\t\t\t\tfor (const c of headerCells) {\n\t\t\t\t\t\tif (c === header) { break; }\n\t\t\t\t\t\tcellIndex += c.colSpan;\n\t\t\t\t\t}\n\t\t\t\t\tindexes.push(cellIndex);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// sort the indexes largest to smallest to find the closest matching header index\n\t\t\tconst firstIndex = indexes.sort((a, b) => b - a)[0];\n\n\t\t\t// search the row for cells that share the header\n\t\t\tlet similarCells = [];\n\t\t\tfor (const id of ids) {\n\t\t\t\t// there's no selector that will match two space separated lists,\n\t\t\t\t// so we have to iterate through the ids and query the row for each\n\t\t\t\tconst rowCells = Array.from(row.querySelectorAll(`[headers~='${id}']`));\n\t\t\t\tfor (const rowCell of rowCells) {\n\t\t\t\t\t// only keep one set of cells\n\t\t\t\t\tif (!similarCells.includes(rowCell)) {\n\t\t\t\t\t\tsimilarCells.push(rowCell);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// DOM order is not preserved, so we have to sort the row\n\t\t\tsimilarCells = similarCells.sort((a: HTMLTableCellElement, b: HTMLTableCellElement) => a.cellIndex - b.cellIndex);\n\n\t\t\t// return the header index plus any adjustment within that headers column\n\t\t\treturn firstIndex + similarCells.indexOf(cell);\n\t\t}\n\n\t\t// fallback if the cell isn't linked to any headers\n\t\tlet cellIndex = 0;\n\t\tfor (const c of Array.from(row.cells)) {\n\t\t\tif (c === cell) { break; }\n\t\t\tcellIndex += c.colSpan;\n\t\t}\n\t\treturn cellIndex;\n\t}\n\n\t/**\n\t * Finds the row index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t */\n\tfindRowIndex(cell: HTMLTableCellElement): number {\n\t\tfor (const row of Array.from(this.tableElement.rows)) {\n\t\t\tif (row.contains(cell)) {\n\t\t\t\treturn row.rowIndex;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Finds the row and column index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t * @returns a tuple that follows the `[row, column]` convention\n\t */\n\tfindIndex(cell: HTMLTableCellElement): [number, number] {\n\t\treturn [this.findRowIndex(cell), this.findColumnIndex(cell)];\n\t}\n\n\t/**\n\t * Helper function that returns the \"real\" length of a row.\n\t * Only accurate with regard to colspans (though that's sufficient for it's uses here)\n\t *\n\t * TODO: Take rowSpan into account\n\t *\n\t * @param row the row to get the length of\n\t */\n\tprotected getRealRowLength(row: HTMLTableRowElement): number {\n\t\t// start at -1 since the colspans will sum to 1 index greater than the total\n\t\treturn Array.from(row.cells).reduce((count, cell) => count + cell.colSpan, -1);\n\t}\n\n\t/**\n\t * Finds a cell and it's real index given an array of cells, a target index, and the spanning direction\n\t *\n\t * @param cells An array of cells to search\n\t * @param targetIndex The index we think the cell is located at\n\t * @param spanDirection The direction of the cell spans. Should be `\"colSpan\"` for a row and `\"rowSpan\"` for a column\n\t */\n\tprotected findCell(cells: HTMLTableCellElement[], targetIndex: number, spanDirection: TableDomSpanDirection) {\n\t\t// rows/cols can have fewer total cells than the actual table\n\t\t// the model pretends all rows/cols behave the same (with col/row spans > 1 being N cells long)\n\t\t// this maps that view to the HTML view (col/row spans > 1 are one element, so the array is shorter)\n\t\tlet realIndex = 0;\n\t\t// i is only used for iterating the cells\n\t\tfor (let i = 0; i < targetIndex;) {\n\t\t\t// skip the next N cells\n\t\t\ti += cells[realIndex][spanDirection];\n\t\t\t// don't bump realIndex if i now exceeds the cell we're shooting for\n\t\t\tif (i > targetIndex) { break; }\n\t\t\t// finally, increment realIndex (to keep it generally in step with i)\n\t\t\trealIndex++;\n\t\t}\n\n\t\treturn {\n\t\t\tcell: cells[realIndex],\n\t\t\trealIndex\n\t\t};\n\t}\n\n\t/**\n\t * Helper method around `findCell`, searches based on a row of cells\n\t *\n\t * @param row the row of elements to search\n\t * @param index the index of the element\n\t */\n\tprotected findCellInRow(row: HTMLTableCellElement[], index: number) {\n\t\treturn this.findCell(row, index, TableDomSpanDirection.colSpan);\n\t}\n\n\t/**\n\t * Helper method around `findCell`, searches based on a column of cells\n\t *\n\t * @param col the column of elements to search\n\t * @param index the index of the element\n\t */\n\tprotected findCellInColumn(col: HTMLTableCellElement[], index: number) {\n\t\treturn this.findCell(col, index, TableDomSpanDirection.rowSpan);\n\t}\n}\n","import {\n\tComponent,\n\tHostBinding\n} from \"@angular/core\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableHeadExpand]\",\n\ttemplate: `\n\t\t<ng-content></ng-content>\n\t`\n})\nexport class TableHeadExpand {\n\t@HostBinding(\"class.cds--table-expand\") hostClass = true;\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tHostBinding,\n\tEventEmitter\n} from \"@angular/core\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\nimport { TableRowSize } from \"../table.types\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableHeadCheckbox]\",\n\ttemplate: `\n\t\t<ibm-checkbox\n\t\t\t*ngIf=\"!skeleton\"\n\t\t\tinline=\"true\"\n\t\t\t[name]=\"name\"\n\t\t\t[checked]=\"checked\"\n\t\t\t[indeterminate]=\"indeterminate\"\n\t\t\t(checkedChange)=\"change.emit()\"\n\t\t\t[ariaLabel]=\"getAriaLabel() | async\">\n\t\t</ibm-checkbox>\n\t`,\n\tstyles: [`\n :host { width: 10px; }\n `]\n})\nexport class TableHeadCheckbox {\n\tprivate static tableSelectAllCount = 0;\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t@Input() checked = false;\n\n\t@Input() indeterminate = false;\n\n\t@Input() skeleton = false;\n\n\t@Input() name = `select-all-${TableHeadCheckbox.tableSelectAllCount++}`;\n\n\t@Input()\n\tset ariaLabel(value: string | Observable<string>) {\n\t\tthis._ariaLabel.override(value);\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel.value;\n\t}\n\n\t@Output() change = new EventEmitter<void>();\n\n\t@HostBinding(\"class.cds--table-column-checkbox\") hostClass = true;\n\n\tprotected _ariaLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_HEADER\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\tgetAriaLabel(): Observable<string> {\n\t\treturn this._ariaLabel.subject;\n\t}\n}\n","import {\n\tDirective,\n\tHostBinding\n} from \"@angular/core\";\n\n@Directive({\n\tselector: \"[ibmTableHeadCellLabel]\"\n})\n\n\nexport class TableHeadCellLabel {\n\t@HostBinding(\"class.cds--table-header-label\") baseClass = true;\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding,\n\tOnChanges\n} from \"@angular/core\";\nimport { Observable, OperatorFunction } from \"rxjs\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { map } from \"rxjs/operators\";\nimport { TableHeaderItem } from \"../table-header-item.class\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableHeadCell]\",\n\ttemplate: `\n\t\t<button\n\t\t\tclass=\"cds--table-sort\"\n\t\t\t*ngIf=\"sortable && this.sort.observers.length > 0 && column.sortable\"\n\t\t\t[attr.aria-label]=\"(column.sorted && column.ascending ? getSortDescendingLabel() : getSortAscendingLabel()) | async\"\n\t\t\taria-live=\"polite\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--table-sort--active': column.sorted,\n\t\t\t\t'cds--table-sort--ascending': column.ascending\n\t\t\t}\"\n\t\t\t(click)=\"onClick()\">\n\t\t\t<span\n\t\t\t\tclass=\"cds--table-sort__flex\"\n\t\t\t\t[title]=\"column.title\"\n\t\t\t\ttabindex=\"-1\">\n\t\t\t\t<div *ngIf=\"!skeleton && !column.template\" ibmTableHeadCellLabel>\n\t\t\t\t\t{{column.data}}\n\t\t\t\t</div>\n\t\t\t\t<ng-template\n\t\t\t\t\t*ngIf=\"!skeleton && column.template\"\n\t\t\t\t\t[ngTemplateOutlet]=\"column.template\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{data: column.data}\">\n\t\t\t\t</ng-template>\n\t\t\t\t<svg\n\t\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\tstyle=\"will-change: transform;\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tclass=\"cds--table-sort__icon\"\n\t\t\t\t\twidth=\"16\"\n\t\t\t\t\theight=\"16\"\n\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t<path d=\"M12.3 9.3l-3.8 3.8V1h-1v12.1L3.7 9.3 3 10l5 5 5-5z\"></path>\n\t\t\t\t</svg>\n\t\t\t\t<svg\n\t\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\tstyle=\"will-change: transform;\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tclass=\"cds--table-sort__icon-unsorted\"\n\t\t\t\t\twidth=\"16\"\n\t\t\t\t\theight=\"16\"\n\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t<path d=\"M13.8 10.3L12 12.1V2h-1v10.1l-1.8-1.8-.7.7 3 3 3-3zM4.5 2l-3 3 .7.7L4 3.9V14h1V3.9l1.8 1.8.7-.7z\"></path>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t</button>\n\t\t<div\n\t\t\tclass=\"cds--table-header-label\"\n\t\t\t*ngIf=\"!skeleton && this.sort.observers.length === 0 || (this.sort.observers.length > 0 && !column.sortable) || !sortable\">\n\t\t\t<span *ngIf=\"!column.template\" [title]=\"column.data\">{{column.data}}</span>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"column.template\" [ngTemplateOutletContext]=\"{data: column.data}\">\n\t\t\t</ng-template>\n\t\t</div>\n\t`\n})\nexport class TableHeadCell implements OnChanges {\n\t@Input() column: TableHeaderItem;\n\n\t@Input() skeleton = false;\n\n\t@Input() sortable = true;\n\n\t@Input()\n\tset sortDescendingLabel(value: string | Observable<string>) {\n\t\tthis._sortDescendingLabel.override(value);\n\t}\n\n\tget sortDescendingLabel() {\n\t\treturn this._sortDescendingLabel.value;\n\t}\n\n\t@Input()\n\tset sortAscendingLabel(value: string | Observable<string>) {\n\t\tthis._sortAscendingLabel.override(value);\n\t}\n\n\tget sortAscendingLabel() {\n\t\treturn this._sortAscendingLabel.value;\n\t}\n\n\t@Input()\n\tset filterTitle(value: string | Observable<string>) {\n\t\tthis._filterTitle.override(value);\n\t}\n\n\tget filterTitle() {\n\t\treturn this._filterTitle.value;\n\t}\n\n\t/**\n\t * Notifies that the column should be sorted\n\t */\n\t@Output() sort = new EventEmitter();\n\n\t@HostBinding(\"class.thead_action\") theadAction = false;\n\n\tprotected _sortDescendingLabel = this.i18n.getOverridable(\"TABLE.SORT_DESCENDING\");\n\tprotected _sortAscendingLabel = this.i18n.getOverridable(\"TABLE.SORT_ASCENDING\");\n\tprotected _filterTitle = this.i18n.getOverridable(\"TABLE.FILTER\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\tngOnChanges() {\n\t\t// Since it's not an input, and it touches the view, we're using `ngOnChanges`\n\t\t// `get`ters have caused issues in the past with the view updating outside of change detection\n\t\tthis.theadAction = !!this.column.filterTemplate || this.sort.observers.length > 0;\n\t}\n\n\tgetSortDescendingLabel(): Observable<string> {\n\t\treturn this._sortDescendingLabel.subject.pipe(this.sortLabelMap());\n\t}\n\n\tgetSortAscendingLabel(): Observable<string> {\n\t\treturn this._sortAscendingLabel.subject.pipe(this.sortLabelMap());\n\t}\n\n\tonClick() {\n\t\tif (!this.skeleton) {\n\t\t\tthis.sort.emit();\n\t\t}\n\t}\n\n\tprotected sortLabelMap(): OperatorFunction<string, string> {\n\t\treturn map((str: string) => {\n\t\t\tif (this.column.ariaSortLabel) {\n\t\t\t\treturn this.column.ariaSortLabel;\n\t\t\t}\n\t\t\tif (this.column.formatSortLabel) {\n\t\t\t\treturn this.column.formatSortLabel(str, this.column.ariaSortLabel);\n\t\t\t}\n\t\t\treturn `${this.column.data} - ${str}`;\n\t\t});\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tAfterViewInit\n} from \"@angular/core\";\n\nimport { TableModel } from \"../table-model.class\";\nimport { getScrollbarWidth } from \"carbon-components-angular/utils\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\nimport { TableRowSize } from \"../table.types\";\n\n/**\n * A subcomponent that creates the thead of the table\n *\n * ## Basic usage\n *\n * ```html\n * \t<thead ibmTableHead [model]=\"model\"></thead>\n * ```\n */\n@Component({\n\t// tslint:disable-next-line:component-selector\n\tselector: \"[ibmTableHead]\",\n\ttemplate: `\n\t<ng-container *ngIf=\"model\">\n\t\t<tr>\n\t\t\t<th\n\t\t\t\tibmTableHeadExpand\n\t\t\t\t*ngIf=\"model.hasExpandableRows()\"\n\t\t\t\tscope=\"col\"\n\t\t\t\t[ngClass]=\"{'cds--table-expand-v2': stickyHeader}\"\n\t\t\t\t[id]=\"model.getId('expand')\">\n\t\t\t</th>\n\t\t\t<th\n\t\t\t\t*ngIf=\"!skeleton && showSelectionColumn && enableSingleSelect\"\n\t\t\t\tscope=\"col\"\n\t\t\t\tstyle=\"width: 0;\"\n\t\t\t\t[id]=\"model.getId('select')\">\n\t\t\t\t<!-- add width 0; since the carbon styles don't seem to constrain this headers width -->\n\t\t\t</th>\n\t\t\t<th\n\t\t\t\tibmTableHeadCheckbox\n\t\t\t\t*ngIf=\"!skeleton && showSelectionColumn && !enableSingleSelect\"\n\t\t\t\tscope=\"col\"\n\t\t\t\t[checked]=\"selectAllCheckbox\"\n\t\t\t\t[indeterminate]=\"selectAllCheckboxSomeSelected\"\n\t\t\t\t[ariaLabel]=\"getCheckboxHeaderLabel()\"\n\t\t\t\t[size]=\"size\"\n\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t[name]=\"model.getHeaderId('select')\"\n\t\t\t\t(change)=\"onSelectAllCheckboxChange()\"\n\t\t\t\t[id]=\"model.getId('select')\">\n\t\t\t</th>\n\t\t\t<ng-container *ngFor=\"let column of model.header; let i = index\">\n\t\t\t\t<th\n\t\t\t\t\t*ngIf=\"column && column.visible\"\n\t\t\t\t\t[ngStyle]=\"column.style\"\n\t\t\t\t\tibmTableHeadCell\n\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t[class]=\"column.className\"\n\t\t\t\t\t[sortable]=\"sortable\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[id]=\"model.getId(i)\"\n\t\t\t\t\t[column]=\"column\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[filterTitle]=\"getFilterTitle()\"\n\t\t\t\t\t[attr.colspan]=\"column.colSpan\"\n\t\t\t\t\t[attr.rowspan]=\"column.rowSpan\"\n\t\t\t\t\t(sort)=\"sort.emit(i)\">\n\t\t\t\t</th>\n\t\t\t</ng-container>\n\t\t\t<th *ngIf=\"!skeleton && stickyHeader && scrollbarWidth\"\n\t\t\t\tscope=\"col\"\n\t\t\t\t[ngStyle]=\"{'width': scrollbarWidth + 'px', 'padding': 0, 'border': 0}\">\n\t\t\t\t<!--\n\t\t\t\t\tScrollbar pushes body to the left so this header column is added to push\n\t\t\t\t\tthe title bar the same amount and keep the header and body columns aligned.\n\t\t\t\t-->\n\t\t\t</th>\n\t\t</tr>\n\t</ng-container>\n\t<ng-content></ng-content>\n\t`,\n\tstyles: [`\n\t\t.cds--table-expand-v2 {\n\t\t\tpadding-left: 2.5rem;\n\t\t}\n\t`]\n})\nexport class TableHead implements AfterViewInit {\n\t@Input() model: TableModel;\n\n\t@Input() showSelectionColumn = true;\n\n\t@Input() enableSingleSelect = false;\n\n\t@Input() selectAllCheckboxSomeSelected = false;\n\n\t@Input() selectAllCheckbox = false;\n\n\t@Input() skeleton = false;\n\n\t@Input() stickyHeader = false;\n\n\t/**\n\t * Setting sortable to false will disable all headers including headers which are sortable. Is is\n\t * possible to set the sortable state on the header item to disable/enable sorting for only some headers.\n\t */\n\t@Input() sortable = true;\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t@Input()\n\tset checkboxHeaderLabel(value: string | Observable<string>) {\n\t\tthis._checkboxHeaderLabel.override(value);\n\t}\n\n\tget checkboxHeaderLabel() {\n\t\treturn this._checkboxHeaderLabel.value;\n\t}\n\n\t@Input()\n\tset sortDescendingLabel(value: string | Observable<string>) {\n\t\tthis._sortDescendingLabel.override(value);\n\t}\n\n\tget sortDescendingLabel() {\n\t\treturn this._sortDescendingLabel.value;\n\t}\n\n\t@Input()\n\tset sortAscendingLabel(value: string | Observable<string>) {\n\t\tthis._sortAscendingLabel.override(value);\n\t}\n\n\tget sortAscendingLabel() {\n\t\treturn this._sortAscendingLabel.value;\n\t}\n\n\t@Input()\n\tset filterTitle(value: string | Observable<string>) {\n\t\tthis._filterTitle.override(value);\n\t}\n\n\tget filterTitle() {\n\t\treturn this._filterTitle.value;\n\t}\n\n\t/**\n\t * Emits an index of the column that wants to be sorted.\n\t */\n\t@Output() sort = new EventEmitter<number>();\n\t/**\n\t * Emits if all rows are selected.\n\t *\n\t * @param model\n\t */\n\t@Output() selectAll = new EventEmitter<TableModel>();\n\t/**\n\t * Emits if all rows are deselected.\n\t *\n\t * @param model\n\t */\n\t@Output() deselectAll = new EventEmitter<TableModel>();\n\n\tpublic scrollbarWidth = 0;\n\n\tprotected _checkboxHeaderLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_HEADER\");\n\tprotected _sortDescendingLabel = this.i18n.getOverridable(\"TABLE.SORT_DESCENDING\");\n\tprotected _sortAscendingLabel = this.i18n.getOverridable(\"TABLE.SORT_ASCENDING\");\n\tprotected _filterTitle = this.i18n.getOverridable(\"TABLE.FILTER\");\n\n\tconstructor(protected i18n: I18n) {}\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tthis.scrollbarWidth = getScrollbarWidth();\n\t\t});\n\t}\n\n\tonSelectAllCheckboxChange() {\n\t\tif (!this.selectAllCheckbox && !this.selectAllCheckboxSomeSelected) {\n\t\t\tthis.selectAll.emit(this.model);\n\t\t} else {\n\t\t\tthis.deselectAll.emit(this.model);\n\t\t}\n\t}\n\n\tgetCheckboxHeaderLabel(): Observable<string> {\n\t\treturn this._checkboxHeaderLabel.subject;\n\t}\n\n\tgetSortDescendingLabel(): Observable<string> {\n\t\treturn this._sortDescendingLabel.subject;\n\t}\n\n\tgetSortAscendingLabel(): Observable<string> {\n\t\treturn this._sortAscendingLabel.subject;\n\t}\n\n\tgetFilterTitle(): Observable<string> {\n\t\treturn this._filterTitle.subject;\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding\n} from \"@angular/core\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableExpandButton]\",\n\ttemplate: `\n\t\t<button\n\t\t\t*ngIf=\"expandable\"\n\t\t\tclass=\"cds--table-expand__button\"\n\t\t\t[attr.aria-label]=\"getAriaLabel() | async\"\n\t\t\t(click)=\"expandRow.emit()\">\n\t\t\t<svg ibmIcon=\"chevron--right\" size=\"16\" class=\"cds--table-expand__svg\"></svg>\n\t\t</button>\n\t`\n})\nexport class TableExpandButton {\n\t/**\n\t * Set to true to indicate the row has expanded\n\t */\n\t@Input() expanded = false;\n\t/**\n\t * Set to true to indicate the row can be expanded.\n\t * Defaults to false to allow for correct column alignment\n\t */\n\t@Input() expandable = false;\n\n\t@Input()\n\tset ariaLabel(value: string | Observable<string>) {\n\t\tthis._ariaLabel.override(value);\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel.value;\n\t}\n\n\t@Input() skeleton = false;\n\n\t@HostBinding(\"class.cds--table-expand\") expandClass = true;\n\n\t@HostBinding(\"attr.data-previous-value\") get previousValue() {\n\t\treturn this.expanded ? \"collapsed\" : null;\n\t}\n\n\t@Output() expandRow = new EventEmitter<void>();\n\n\tprotected _ariaLabel = this.i18n.getOverridable(\"TABLE.EXPAND_BUTTON\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\tgetAriaLabel(): Observable<string> {\n\t\treturn this._ariaLabel.subject;\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter\n} from \"@angular/core\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { TableItem } from \"../table-item.class\";\nimport { TableRow } from \"../table-row.class\";\nimport { Observable } from \"rxjs\";\nimport { TableRowSize } from \"../table.types\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableCheckbox]\",\n\ttemplate: `\n\t\t<ibm-checkbox\n\t\t\t*ngIf=\"!skeleton\"\n\t\t\tinline=\"true\"\n\t\t\t[name]=\"name\"\n\t\t\t[ariaLabel]=\"getLabel() | i18nReplace:getSelectionLabelValue(row) | async\"\n\t\t\t[checked]=\"selected\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t(checkedChange)=\"selectedChange.emit()\">\n\t\t</ibm-checkbox>\n\t`\n})\nexport class TableCheckbox {\n\t@Input() row: TableItem[];\n\n\t@Input() selected = false;\n\n\t@Input() name = \"\";\n\n\tget disabled(): boolean {\n\t\treturn this.row ? !!(this.row as TableRow).disabled : false;\n\t}\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t@Input()\n\tset label(value: string | Observable<string>) {\n\t\tthis._label.override(value);\n\t}\n\n\tget label() {\n\t\treturn this._label.value;\n\t}\n\n\t/**\n\t * Used to populate the row selection checkbox label with a useful value if set.\n\t *\n\t * Example:\n\t * ```\n\t * <ibm-table [selectionLabelColumn]=\"0\"></ibm-table>\n\t * <!-- results in aria-label=\"Select first column value\"\n\t * (where \"first column value\" is the value of the first column in the row -->\n\t * ```\n\t */\n\t@Input() selectionLabelColumn: number;\n\n\t@Input() skeleton = false;\n\n\t/**\n\t * Emits if a single row is selected.\n\t */\n\t@Output() selectedChange = new EventEmitter();\n\n\tprotected _label = this.i18n.getOverridable(\"TABLE.CHECKBOX_ROW\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\tgetSelectionLabelValue(row: TableItem[]) {\n\t\tif (!this.selectionLabelColumn) {\n\t\t\treturn { value: this.i18n.get().TABLE.ROW };\n\t\t}\n\t\treturn { value: row[this.selectionLabelColumn].data };\n\t}\n\n\tgetLabel(): Observable<string> {\n\t\treturn this._label.subject;\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter\n} from \"@angular/core\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { TableItem } from \"../table-item.class\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableRadio]\",\n\ttemplate: `\n\t\t<ibm-radio\n\t\t\t*ngIf=\"!skeleton\"\n\t\t\t[attr.aria-label]=\"getLabel() | i18nReplace:getSelectionLabelValue(row) | async\"\n\t\t\t[ariaLabel]=\"getLabel() | i18nReplace:getSelectionLabelValue(row) | async\"\n\t\t\t[checked]=\"selected\"\n\t\t\t(change)=\"change.emit()\">\n\t\t</ibm-radio>\n\t`\n})\nexport class TableRadio {\n\t@Input() row: any[];\n\n\t@Input() selected = false;\n\n\t@Input()\n\tset label(value: string | Observable<string>) {\n\t\tthis._label.override(value);\n\t}\n\n\tget label() {\n\t\treturn this._label.value;\n\t}\n\n\t/**\n\t * Used to populate the row selection checkbox label with a useful value if set.\n\t *\n\t * Example:\n\t * ```\n\t * <ibm-table [selectionLabelColumn]=\"0\"></ibm-table>\n\t * <!-- results in aria-label=\"Select first column value\"\n\t * (where \"first column value\" is the value of the first column in the row -->\n\t * ```\n\t */\n\t@Input() selectionLabelColumn: number;\n\n\t@Input() skeleton = false;\n\n\t/**\n\t * Emits if a single row is selected.\n\t */\n\t@Output() change = new EventEmitter();\n\n\tprotected _label = this.i18n.getOverridable(\"TABLE.CHECKBOX_ROW\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\tgetSelectionLabelValue(row: TableItem[]) {\n\t\tif (!this.selectionLabelColumn) {\n\t\t\treturn { value: this.i18n.get().TABLE.ROW };\n\t\t}\n\t\treturn { value: row[this.selectionLabelColumn].data };\n\t}\n\n\tgetLabel(): Observable<string> {\n\t\treturn this._label.subject;\n\t}\n}\n","import {\n\tComponent,\n\tInput\n} from \"@angular/core\";\nimport { TableItem } from \"../table-item.class\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableData]\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"!skeleton && !item.template\">{{item.data}}</ng-container>\n\t\t<ng-template\n\t\t\t*ngIf=\"!skeleton\"\n\t\t\t[ngTemplateOutlet]=\"item.template\"\n\t\t\t[ngTemplateOutletContext]=\"{data: item.data}\">\n\t\t</ng-template>\n\t`\n})\nexport class TableData {\n\t@Input() item: TableItem;\n\n\t@Input() skeleton = false;\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding,\n\tHostListener\n} from \"@angular/core\";\nimport { TableModel } from \"../table-model.class\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { TableItem } from \"../table-item.class\";\nimport { Observable } from \"rxjs\";\nimport { TableRowSize } from \"../table.types\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableRow]\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"model\">\n\t\t\t<td\n\t\t\t\t*ngIf=\"model.hasExpandableRows()\"\n\t\t\t\tibmTableExpandButton\n\t\t\t\tclass=\"cds--table-expand-v2\"\n\t\t\t\t[expanded]=\"expanded\"\n\t\t\t\t[expandable]=\"expandable\"\n\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t[ariaLabel]=\"getExpandButtonAriaLabel()\"\n\t\t\t\t[headers]=\"model.getHeaderId('expand')\"\n\t\t\t\t(expandRow)=\"expandRow.emit()\">\n\t\t\t</td>\n\t\t\t<ng-container *ngIf=\"!skeleton && showSelectionColumn && !enableSingleSelect\">\n\t\t\t\t<td\n\t\t\t\t\t*ngIf=\"!showSelectionColumnCheckbox; else tableCheckboxTemplate\">\n\t\t\t\t</td>\n\t\t\t\t<ng-template #tableCheckboxTemplate>\n\t\t\t\t\t<td\n\t\t\t\t\t\tibmTableCheckbox\n\t\t\t\t\t\tclass=\"cds--table-column-checkbox\"\n\t\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t\t[selected]=\"selected\"\n\t\t\t\t\t\t[label]=\"getCheckboxLabel()\"\n\t\t\t\t\t\t[row]=\"row\"\n\t\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t\t[headers]=\"model.getHeaderId('select')\"\n\t\t\t\t\t\t(selectedChange)=\"onSelectionChange()\">\n\t\t\t\t\t</td>\n\t\t\t\t</ng-template>\n\t\t\t</ng-container>\n\t\t\t<td\n\t\t\t\t*ngIf=\"!skeleton && showSelectionColumn && enableSingleSelect\"\n\t\t\t\tibmTableRadio\n\t\t\t\t[selected]=\"selected\"\n\t\t\t\t[label]=\"getCheckboxLabel()\"\n\t\t\t\t[row]=\"row\"\n\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t[headers]=\"model.getHeaderId('select')\"\n\t\t\t\t(change)=\"onSelectionChange()\">\n\t\t\t</td>\n\t\t\t<ng-container *ngFor=\"let item of row; let j = index\">\n\t\t\t\t<td\n\t\t\t\t\t*ngIf=\"item && model.getHeader(j) && model.getHeader(j).visible\"\n\t\t\t\t\tibmTableData\n\t\t\t\t\t[headers]=\"model.getHeaderId(j, item.colSpan)\"\n\t\t\t\t\t[item]=\"item\"\n\t\t\t\t\t[title]=\"item.title\"\n\t\t\t\t\t[class]=\"model.getHeader(j).className\"\n\t\t\t\t\t[ngStyle]=\"model.getHeader(j).style\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[attr.colspan]=\"item.colSpan\"\n\t\t\t\t\t[attr.rowspan]=\"item.rowSpan\"\n\t\t\t\t\t(click)=\"onRowClick()\"\n\t\t\t\t\t(keydown.enter)=\"onRowClick()\">\n\t\t\t\t</td>\n\t\t\t\t<td\n\t\t\t\t\t*ngIf=\"item && model.getHeader(j) == null\"\n\t\t\t\t\tibmTableData\n\t\t\t\t\t[headers]=\"model.getHeaderId(j, item.colSpan)\"\n\t\t\t\t\t[item]=\"item\"\n\t\t\t\t\t[title]=\"item.title\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[attr.colspan]=\"item.colSpan\"\n\t\t\t\t\t[attr.rowspan]=\"item.rowSpan\"\n\t\t\t\t\t(click)=\"onRowClick()\"\n\t\t\t\t\t(keydown.enter)=\"onRowClick()\">\n\t\t\t\t</td>\n\t\t\t</ng-container>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t`\n})\nexport class TableRowComponent {\n\t/**\n\t * `TableModel` with data the table is to display.\n\t */\n\t@Input() model: TableModel;\n\n\t@Input() row: TableItem[];\n\n\t@Input() expanded = false;\n\n\t@Input() expandable = false;\n\n\t@Input() selected = false;\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t/**\n\t * Controls whether to enable multiple or single row selection.\n\t */\n\t@Input() enableSingleSelect = false;\n\n\t@Input()\n\tset expandButtonAriaLabel(value: string | Observable<string>) {\n\t\tthis._expandButtonAriaLabel.override(value);\n\t}\n\n\tget expandButtonAriaLabel() {\n\t\treturn this._expandButtonAriaLabel.value;\n\t}\n\n\t@Input()\n\tset checkboxLabel(value: string | Observable<string>) {\n\t\tthis._checkboxLabel.override(value);\n\t}\n\n\tget checkboxLabel() {\n\t\treturn this._checkboxLabel.value;\n\t}\n\n\t/**\n\t * Controls whether to show the selection checkboxes column or not.\n\t */\n\t@Input() showSelectionColumn = true;\n\n\t/**\n\t * Shows or hide the checkbox in the selection column when `showSelectionColumn`\n\t * is set to true\n\t */\n\t@Input() showSelectionColumnCheckbox = true;\n\n\t/**\n\t * Used to populate the row selection checkbox label with a useful value if set.\n\t *\n\t * Example:\n\t * ```\n\t * <ibm-table [selectionLabelColumn]=\"0\"></ibm-table>\n\t * <!-- results in aria-label=\"Select first column value\"\n\t * (where \"first column value\" is the value of the first column in the row -->\n\t * ```\n\t */\n\t@Input() selectionLabelColumn: number;\n\n\t@Input() skeleton = false;\n\n\t/**\n\t * Emits when the row is selected.\n\t */\n\t@Output() selectRow = new EventEmitter();\n\n\t/**\n\t * Emits when the row is deselected.\n\t */\n\t@Output() deselectRow = new EventEmitter();\n\n\t/**\n\t * Emits when the row is expanded\n\t */\n\t@Output() expandRow = new EventEmitter();\n\n\t/**\n\t * Emits when a row is clicked regardless of `enableSingleSelect` or `showSelectionColumn`.\n\t * Should only get emitted when a row item is selected excluding expand buttons,\n\t * checkboxes, or radios.\n\t */\n\t@Output() rowClick = new EventEmitter();\n\n\t@HostBinding(\"class.cds--data-table--selected\") get selectedClass() {\n\t\treturn this.selected;\n\t}\n\n\t@HostBinding(\"class.cds--parent-row\") get parentRowClass() {\n\t\treturn this.expandable;\n\t}\n\n\t@HostBinding(\"class.cds--expandable-row\") get expandableRowClass() {\n\t\treturn this.expanded;\n\t}\n\n\t@HostBinding(\"class.tbody_row--selectable\") get selectableClass() {\n\t\treturn false; // this.singleSelect\n\t}\n\n\t@HostBinding(\"attr.data-parent-row\") get isParentRow() {\n\t\treturn this.expandable ? true : null;\n\t}\n\n\t@HostBinding(\"attr.tabindex\") get isAccessible() {\n\t\treturn this.enableSingleSelect && !this.showSelectionColumn ? 0 : null;\n\t}\n\n\tprotected _checkboxLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_ROW\");\n\tprotected _expandButtonAriaLabel = this.i18n.getOverridable(\"TABLE.EXPAND_BUTTON\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\t@HostListener(\"click\")\n\tonHostClick() {\n\t\tif (this.enableSingleSelect && !this.showSelectionColumn) {\n\t\t\tthis.onSelectionChange();\n\t\t}\n\t}\n\n\tonRowClick() {\n\t\tthis.rowClick.emit();\n\t}\n\n\tonSelectionChange() {\n\t\tif (this.selected) {\n\t\t\tthis.deselectRow.emit();\n\t\t} else {\n\t\t\tthis.selectRow.emit();\n\t\t}\n\t}\n\n\tgetCheckboxLabel(): Observable<string> {\n\t\treturn this._checkboxLabel.subject;\n\t}\n\n\tgetExpandButtonAriaLabel(): Observable<string> {\n\t\treturn this._expandButtonAriaLabel.subject;\n\t}\n}\n","import {\n\tComponent,\n\tHostBinding,\n\tInput\n} from \"@angular/core\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableExpandedRow]\",\n\ttemplate: `\n\t\t<td [attr.colspan]=\"row.length + 2\">\n\t\t\t<ng-container *ngIf=\"!firstExpandedTemplateInRow(row)\">\n\t\t\t\t{{firstExpandedDataInRow(row)}}\n\t\t\t</ng-container>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"firstExpandedTemplateInRow(row)\"\n\t\t\t\t[ngTemplateOutletContext]=\"{data: firstExpandedDataInRow(row)}\">\n\t\t\t</ng-template>\n\t\t</td>\n\t`\n})\nexport class TableExpandedRow {\n\t@Input() row: any[];\n\n\t@Input() skeleton = false;\n\n\t@HostBinding(\"class.cds--expandable-row\") expandableRowClass = true;\n\n\t@HostBinding(\"attr.data-child-row\") dataChildRow = true;\n\n\t@Input() expanded = false;\n\n\t@HostBinding(\"style.display\") get displayStyle() {\n\t\treturn this.expanded ? null : \"none\";\n\t}\n\n\tfirstExpandedTemplateInRow(row) {\n\t\tconst found = row.find(d => d.expandedTemplate);\n\t\tif (found) {\n\t\t\treturn found.expandedTemplate;\n\t\t}\n\t\treturn found;\n\t}\n\n\tfirstExpandedDataInRow(row) {\n\t\tconst found = row.find(d => d.expandedData);\n\t\tif (found) {\n\t\t\treturn found.expandedData;\n\t\t}\n\t\treturn found;\n\t}\n}\n","import {\n\tDirective,\n\tHostListener\n} from \"@angular/core\";\n\n@Directive({\n\tselector: \"[ibmExpandedRowHover]\"\n})\nexport class ExpandedRowHover {\n\t@HostListener(\"mouseenter\", [\"$event\"])\n\taddHoverClass(event) {\n\t\tevent.target.previousElementSibling.classList.add(\"cds--expandable-row--hover\");\n\t}\n\n\t@HostListener(\"mouseleave\", [\"$event\"])\n\tremoveHoverClass(event) {\n\t\tevent.target.previousElementSibling.classList.remove(\"cds--expandable-row--hover\");\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tEventEmitter,\n\tOutput\n} from \"@angular/core\";\nimport { TableModel } from \"../table-model.class\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\nimport { TableRowSize } from \"../table.types\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableBody]\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"model\">\n\t\t\t<ng-container *ngFor=\"let row of model.data; let i = index\">\n\t\t\t\t<tr\n\t\t\t\t\tibmTableRow\n\t\t\t\t\t[model]=\"model\"\n\t\t\t\t\t[row]=\"row\"\n\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t[selected]=\"model.isRowSelected(i)\"\n\t\t\t\t\t[expandable]=\"model.isRowExpandable(i)\"\n\t\t\t\t\t[expanded]=\"model.isRowExpanded(i)\"\n\t\t\t\t\t[checkboxLabel]=\"getCheckboxRowLabel()\"\n\t\t\t\t\t[expandButtonAriaLabel]=\"getExpandButtonAriaLabel()\"\n\t\t\t\t\t[showSelectionColumn]=\"showSelectionColumn\"\n\t\t\t\t\t[enableSingleSelect]=\"enableSingleSelect\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t(selectRow)=\"onRowCheckboxChange(i)\"\n\t\t\t\t\t(deselectRow)=\"onRowCheckboxChange(i)\"\n\t\t\t\t\t(expandRow)=\"model.expandRow(i, !model.isRowExpanded(i))\"\n\t\t\t\t\t(rowClick)=\"onRowClick(i)\"\n\t\t\t\t\t*ngIf=\"!model.isRowFiltered(i)\"\n\t\t\t\t\t[class]=\"(model.rowsClass[i] ? model.rowsClass[i] : null)\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'tbody_row--success': !model.isRowSelected(i) && model.getRowContext(i) === 'success',\n\t\t\t\t\t\t'tbody_row--warning': !model.isRowSelected(i) && model.getRowContext(i) === 'warning',\n\t\t\t\t\t\t'tbody_row--info': !model.isRowSelected(i) && model.getRowContext(i) === 'info',\n\t\t\t\t\t\t'tbody_row--error': !model.isRowSelected(i) && model.getRowContext(i) === 'error'\n\t\t\t\t\t}\">\n\t\t\t\t</tr>\n\t\t\t\t<tr\n\t\t\t\t\t*ngIf=\"model.isRowExpandable(i) && !shouldExpandAsTable(row) && !model.isRowFiltered(i)\"\n\t\t\t\t\tibmTableExpandedRow\n\t\t\t\t\tibmExpandedRowHover\n\t\t\t\t\t[row]=\"row\"\n\t\t\t\t\t[expanded]=\"model.isRowExpanded(i)\"\n\t\t\t\t\t[skeleton]=\"skeleton\">\n\t\t\t\t</tr>\n\t\t\t\t<ng-container\n\t\t\t\t\t*ngIf=\"model.isRowExpandable(i) && shouldExpandAsTable(row) && model.isRowExpanded(i) && !model.isRowFiltered(i)\">\n\t\t\t\t\t<tr\n\t\t\t\t\t\t*ngFor=\"let expandedDataRow of firstExpandedDataInRow(row)\"\n\t\t\t\t\t\tibmTableRow\n\t\t\t\t\t\t[model]=\"model\"\n\t\t\t\t\t\t[showSelectionColumnCheckbox]=\"false\"\n\t\t\t\t\t\t[showSelectionColumn]=\"showSelectionColumn\"\n\t\t\t\t\t\t[row]=\"expandedDataRow\"\n\t\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t\t[skeleton]=\"skeleton\">\n\t\t\t\t\t</tr>\n\t\t\t\t</ng-container>\n\t\t\t</ng-container>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t`\n})\nexport class TableBody {\n\t@Input() model: TableModel;\n\n\t/**\n\t * Controls whether to enable multiple or single row selection.\n\t */\n\t@Input() enableSingleSelect = false;\n\n\t@Input()\n\tset expandButtonAriaLabel(value: string | Observable<string>) {\n\t\tthis._expandButtonAriaLabel.override(value);\n\t}\n\n\tget expandButtonAriaLabel() {\n\t\treturn this._expandButtonAriaLabel.value;\n\t}\n\n\t@Input()\n\tset checkboxRowLabel(value: string | Observable<string>) {\n\t\tthis._checkboxRowLabel.override(value);\n\t}\n\n\tget checkboxRowLabel() {\n\t\treturn this._checkboxRowLabel.value;\n\t}\n\n\t/**\n\t * Controls whether to show the selection checkboxes column or not.\n\t */\n\t@Input() showSelectionColumn = true;\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t/**\n\t * Used to populate the row selection checkbox label with a useful value if set.\n\t *\n\t * Example:\n\t * ```\n\t * <ibm-table [selectionLabelColumn]=\"0\"></ibm-table>\n\t * <!-- results in aria-label=\"Select first column value\"\n\t * (where \"first column value\" is the value of the first column in the row -->\n\t * ```\n\t */\n\t@Input() selectionLabelColumn: number;\n\n\t@Input() skeleton = false;\n\n\t/**\n\t * Emits if a single row is selected.\n\t *\n\t * @param ({model: this.model, selectedRowIndex: index})\n\t */\n\t@Output() selectRow = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if a single row is deselected.\n\t *\n\t * @param ({model: this.model, deselectedRowIndex: index})\n\t */\n\t@Output() deselectRow = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if a row item excluding expandButtons, checkboxes, or radios is clicked.\n\t */\n\t@Output() rowClick = new EventEmitter<number>();\n\n\tprotected _checkboxRowLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_ROW\");\n\tprotected _expandButtonAriaLabel = this.i18n.getOverridable(\"TABLE.EXPAND_BUTTON\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\t/**\n\t * Triggered when a single row is clicked.\n\t * Updates the header checkbox state.\n\t * Emits the `selectRow` or `deselectRow` event.\n\t */\n\tonRowCheckboxChange(index: number) {\n\t\tif (this.model.isRowSelected(index)) {\n\t\t\tthis.deselectRow.emit({ model: this.model, deselectedRowIndex: index });\n\t\t} else {\n\t\t\tthis.selectRow.emit({ model: this.model, selectedRowIndex: index });\n\t\t}\n\t}\n\n\tonRowClick(index: number) {\n\t\tthis.rowClick.emit(index);\n\t}\n\n\tgetCheckboxRowLabel(): Observable<string> {\n\t\treturn this._checkboxRowLabel.subject;\n\t}\n\n\tgetExpandButtonAriaLabel(): Observable<string> {\n\t\treturn this._expandButtonAriaLabel.subject;\n\t}\n\n\tfirstExpandedDataInRow(row) {\n\t\tconst found = row.find(d => d.expandedData);\n\t\tif (found) {\n\t\t\treturn found.expandedData;\n\t\t}\n\t\treturn found;\n\t}\n\n\tshouldExpandAsTable(row) {\n\t\treturn row.some(d => d.expandAsTable);\n\t}\n}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\nimport { TableRowSize } from \"./table.types\";\n\n@Directive({\n\tselector: \"[ibmTable]\"\n})\nexport class TableDirective {\n\t@Input() @HostBinding(\"class.cds--data-table--sort\") sortable = true;\n\n\t@Input() @HostBinding(\"class.cds--data-table--no-border\") noBorder = true;\n\n\t@Input() @HostBinding(\"class.cds--data-table--zebra\") striped = false;\n\n\t@Input() @HostBinding(\"class.cds--skeleton\") skeleton = false;\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t@HostBinding(\"class.cds--data-table\") tableClass = true;\n\n\t@HostBinding(\"class.cds--data-table--compact\") get compactClass() {\n\t\treturn this.size === \"sm\";\n\t}\n\n\t@HostBinding(\"class.cds--data-table--tall\") get tallClass() {\n\t\treturn this.size === \"lg\";\n\t}\n\n\t@HostBinding(\"class.cds--data-table--short\") get shortClass() {\n\t\treturn this.size === \"sh\";\n\t}\n}\n","import {\n\tComponent,\n\tApplicationRef,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tElementRef,\n\tAfterViewInit,\n\tTemplateRef,\n\tOnDestroy,\n\tHostBinding\n} from \"@angular/core\";\nimport { Subscription, fromEvent, Observable } from \"rxjs\";\n\nimport { TableModel } from \"./table-model.class\";\nimport { TableHeaderItem } from \"./table-header-item.class\";\nimport { TableItem } from \"./table-item.class\";\n\nimport { getFocusElementList, tabbableSelectorIgnoreTabIndex } from \"carbon-components-angular/common\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { merge } from \"carbon-components-angular/utils\";\nimport { DataGridInteractionModel } from \"./data-grid-interaction-model.class\";\nimport { TableDomAdapter } from \"./table-adapter.class\";\nimport { TableRowSize } from \"./table.types\";\n\n/**\n * Build your table with this component by extending things that differ from default.\n *\n * [See demo](../../?path=/story/components-table--basic)\n *\n * Instead of the usual write-your-own-html approach you had with `<table>`,\n * carbon table uses model-view-controller approach.\n *\n * Here, you create a view (with built-in controller) and provide it a model.\n * Changes you make to the model are reflected in the view. Provide same model you use\n * in the table to the `<ibm-pagination>` components.\n * They provide a different view over the same data.\n *\n * ## Basic usage\n *\n * ```html\n * <ibm-table [model]=\"model\"></ibm-table>\n * ```\n *\n * ```typescript\n * public model = new TableModel();\n *\n * this.model.data = [\n * \t[new TableItem({data: \"asdf\"}), new TableItem({data: \"qwer\"})],\n * \t[new TableItem({data: \"csdf\"}), new TableItem({data: \"zwer\"})],\n * \t[new TableItem({data: \"bsdf\"}), new TableItem({data: \"swer\"})],\n * \t[new TableItem({data: \"csdf\"}), new TableItem({data: \"twer\"})]\n * ];\n * ```\n *\n * ## Customization\n *\n * If you have custom data in your table, you need a way to display it. You can do that\n * by providing a template to `TableItem`.\n *\n * ```html\n * <ng-template #customTableItemTemplate let-data=\"data\">\n * \t<a [routerLink]=\"data.link\">{{data.name}} {{data.surname}}</a>\n * </ng-template>\n * ```\n *\n * ```typescript\n * customTableItemTemplate: TemplateRef<any>;\n *\n * this.customModel.data = [\n * \t[new TableItem({data: \"asdf\"}), new TableItem({data: {name: \"Lessy\", link: \"/table\"}, template: this.customTableItemTemplate})],\n * \t[new TableItem({data: \"csdf\"}), new TableItem({data: \"swer\"})],\n * \t[new TableItem({data: \"bsdf\"}), new TableItem({data: {name: \"Alice\", surname: \"Bob\"}, template: this.customTableItemTemplate})],\n * \t[new TableItem({data: \"csdf\"}), new TableItem({data: \"twer\"})],\n * ];\n * ```\n *\n * ### Sorting and filtering\n *\n * In case you need custom sorting and/or filtering you should subclass `TableHeaderItem`\n * and override needed functions.\n *\n * ```typescript\n * class FilterableHeaderItem extends TableHeaderItem {\n * \t// custom filter function\n * \tfilter(item: TableItem): boolean {\n * \t\tif (typeof item.data === \"string\" && item.data.toLowerCase().indexOf(this.filterData.data.toLowerCase()) >= 0 ||\n * \t\titem.data.name && item.data.name.toLowerCase().indexOf(this.filterData.data.toLowerCase()) >= 0 ||\n * \t\titem.data.surname && item.data.surname.toLowerCase().indexOf(this.filterData.data.toLowerCase()) >= 0) {\n * \t\t\treturn false;\n * \t\t}\n * \t\treturn true;\n * \t}\n *\n * \tset filterCount(n) {}\n * \tget filterCount() {\n * \t\treturn (this.filterData && this.filterData.data && this.filterData.data.length > 0) ? 1 : 0;\n * \t}\n *\n * \t// used for custom sorting\n * \tcompare(one: TableItem, two: TableItem) {\n * \t\tconst stringOne = (one.data.name || one.data.surname || one.data).toLowerCase();\n * \t\tconst stringTwo = (two.data.name || two.data.surname || two.data).toLowerCase();\n *\n * \t\tif (stringOne > stringTwo) {\n * \t\t\treturn 1;\n * \t\t} else if (stringOne < stringTwo) {\n * \t\t\treturn -1;\n * \t\t} else {\n * \t\t\treturn 0;\n * \t\t}\n * \t}\n * }\n * ```\n *\n * If you want to do your sorting on the backend or query for sorted data as a result of user\n * clicking the table header, check table [`sort`](#sort) output documentation\n *\n * See `TableHeaderItem` class for more information.\n *\n * ## No data template\n *\n * When table has no data to show, it can show a message you provide it instead.\n *\n * ```html\n * <ibm-table [model]=\"model\">No data.</ibm-table>\n * ```\n *\n * ... will show `No data.` message, but you can get creative and provide any template you want\n * to replace table's default `tbody`.\n *\n * ## Use pagination as table footer\n *\n * ```html\n * <ibm-pagination [model]=\"model\" (selectPage)=\"selectPage($event)\"></ibm-pagination>\n * ```\n *\n * `selectPage()` function should fetch the data from backend, create new `data`, apply it to `model.data`,\n * and update `model.currentPage`.\n *\n * If the data your server returns is a two dimensional array of objects, it would look something like this:\n *\n * ```typescript\n * selectPage(page) {\n * \tthis.getPage(page).then((data: Array<Array<any>>) => {\n * \t\t// set the data and update page\n * \t\tthis.model.data = this.prepareData(data);\n * \t\tthis.model.currentPage = page;\n * \t});\n * }\n *\n * protected prepareData(data: Array<Array<any>>) {\n * \t// create new data from the service data\n * \tlet newData = [];\n * \tdata.forEach(dataRow => {\n * \t\tlet row = [];\n * \t\tdataRow.forEach(dataElement => {\n * \t\t\trow.push(new TableItem({\n * \t\t\t\tdata: dataElement,\n * \t\t\t\ttemplate: typeof dataElement === \"string\" ? undefined : this.paginationTableItemTemplate\n * \t\t\t\t// your template can handle all the data types so you don't have to conditionally set it\n * \t\t\t\t// you can also set different templates for different columns based on index\n * \t\t\t}));\n * \t\t});\n * \t\tnewData.push(row);\n * \t});\n * \treturn newData;\n * }\n * ```\n */\n@Component({\n\tselector: \"ibm-table\",\n\ttemplate: `\n\t<table\n\t\tibmTable\n\t\t[sortable]=\"sortable\"\n\t\t[noBorder]=\"noBorder\"\n\t\t[ngClass]=\"{'cds--data-table--sticky-header': stickyHeader}\"\n\t\t[size]=\"size\"\n\t\t[striped]=\"striped\"\n\t\t[skeleton]=\"skeleton\"\n\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\n\t\t[attr.aria-describedby]=\"ariaDescribedby\">\n\t\t<thead\n\t\t\tibmTableHead\n\t\t\t[sortable]=\"sortable\"\n\t\t\t(deselectAll)=\"onDeselectAll()\"\n\t\t\t(selectAll)=\"onSelectAll()\"\n\t\t\t(sort)=\"doSort($event)\"\n\t\t\t[checkboxHeaderLabel]=\"getCheckboxHeaderLabel()\"\n\t\t\t[filterTitle]=\"getFilterTitle()\"\n\t\t\t[model]=\"model\"\n\t\t\t[size]=\"size\"\n\t\t\t[selectAllCheckbox]=\"selectAllCheckbox\"\n\t\t\t[selectAllCheckboxSomeSelected]=\"selectAllCheckboxSomeSelected\"\n\t\t\t[showSelectionColumn]=\"showSelectionColumn\"\n\t\t\t[enableSingleSelect]=\"enableSingleSelect\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t[sortAscendingLabel]=\"sortAscendingLabel\"\n\t\t\t[sortDescendingLabel]=\"sortDescendingLabel\"\n\t\t\t[stickyHeader]=\"stickyHeader\">\n\t\t</thead>\n\t\t<tbody\n\t\t\tibmTableBody\n\t\t\t(deselectRow)=\"onSelectRow($event)\"\n\t\t\t(scroll)=\"onScroll($event)\"\n\t\t\t(selectRow)=\"onSelectRow($event)\"\n\t\t\t[checkboxRowLabel]=\"getCheckboxRowLabel()\"\n\t\t\t[enableSingleSelect]=\"enableSingleSelect\"\n\t\t\t(rowClick)=\"onRowClick($event)\"\n\t\t\t[expandButtonAriaLabel]=\"expandButtonAriaLabel\"\n\t\t\t[model]=\"model\"\n\t\t\t[size]=\"size\"\n\t\t\t[ngStyle]=\"{'overflow-y': 'scroll'}\"\n\t\t\t[selectionLabelColumn]=\"selectionLabelColumn\"\n\t\t\t[showSelectionColumn]=\"showSelectionColumn\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t*ngIf=\"!noData; else noDataTemplate\">\n\t\t</tbody>\n\t\t<ng-template #noDataTemplate><ng-content></ng-content></ng-template>\n\t\t<tfoot>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"footerTemplate\">\n\t\t\t</ng-template>\n\t\t\t<tr *ngIf=\"this.model.isLoading\">\n\t\t\t\t<td class=\"table_loading-indicator\">\n\t\t\t\t\t<div class=\"cds--loading cds--loading--small\">\n\t\t\t\t\t\t<svg class=\"cds--loading__svg\" viewBox=\"-75 -75 150 150\">\n\t\t\t\t\t\t\t<circle class=\"cds--loading__stroke\" cx=\"0\" cy=\"0\" r=\"37.5\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr *ngIf=\"this.model.isEnd\">\n\t\t\t\t<td class=\"table_end-indicator\">\n\t\t\t\t\t<h5>{{getEndOfDataText() | async}}</h5>\n\t\t\t\t\t<button (click)=\"scrollToTop($event)\" class=\"btn--secondary-sm\">\n\t\t\t\t\t\t{{getScrollTopText() | async}}\n\t\t\t\t\t</button>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</tfoot>\n\t</table>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t`]\n})\nexport class Table implements AfterViewInit, OnDestroy {\n\t/**\n\t * Creates a skeleton model with a row and column count specified by the user\n\t *\n\t * Example:\n\t *\n\t * ```typescript\n\t * this.model = Table.skeletonModel(5, 5);\n\t * ```\n\t */\n\tstatic skeletonModel(rowCount: number, columnCount: number) {\n\t\tconst model = new TableModel();\n\t\tlet header = new Array<TableHeaderItem>();\n\t\tlet data = new Array<Array<TableItem>>();\n\t\tlet row = new Array<TableItem>();\n\n\t\tfor (let i = 0; i < columnCount; i++) {\n\t\t\theader.push(new TableHeaderItem());\n\t\t\trow.push(new TableItem());\n\t\t}\n\t\tfor (let i = 0; i < rowCount - 1; i++) {\n\t\t\tdata.push(row);\n\t\t}\n\n\t\tmodel.header = header;\n\t\tmodel.data = data;\n\t\treturn model;\n\t}\n\n\tstatic setTabIndex(element: HTMLElement, index: -1 | 0) {\n\t\tconst focusElementList = getFocusElementList(element, tabbableSelectorIgnoreTabIndex);\n\t\tif (element.firstElementChild && element.firstElementChild.classList.contains(\"cds--table-sort\") && focusElementList.length > 1) {\n\t\t\tfocusElementList[1].tabIndex = index;\n\t\t} else if (focusElementList.length > 0) {\n\t\t\tfocusElementList[0].tabIndex = index;\n\t\t} else {\n\t\t\telement.tabIndex = index;\n\t\t}\n\t}\n\n\tstatic focus(element: HTMLElement) {\n\t\tconst focusElementList = getFocusElementList(element, tabbableSelectorIgnoreTabIndex);\n\t\tif (element.firstElementChild && element.firstElementChild.classList.contains(\"cds--table-sort\") && focusElementList.length > 1) {\n\t\t\tfocusElementList[1].focus();\n\t\t} else if (focusElementList.length > 0) {\n\t\t\tfocusElementList[0].focus();\n\t\t} else {\n\t\t\telement.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Id of the table header title element\n\t */\n\t@Input() ariaLabelledby: string;\n\t/**\n\t * Id of the table header description element\n\t */\n\t@Input() ariaDescribedby: string;\n\n\t/**\n\t * `TableModel` with data the table is to display.\n\t */\n\t@Input()\n\tset model(m: TableModel) {\n\t\tif (this._model) {\n\t\t\tthis.subscriptions.unsubscribe();\n\t\t\t// Need to create a new subscription instance here because unsubscribing prevents any new subscriptions\n\t\t\t// from being added for some reason. When a new model is set, none of the subscriptions would exist.\n\t\t\tthis.subscriptions = new Subscription();\n\t\t}\n\n\t\tthis._model = m;\n\n\t\tconst rowsChange = this._model.rowsSelectedChange.subscribe(() => this.updateSelectAllCheckbox());\n\t\tconst dataChange = this._model.dataChange.subscribe(() => {\n\t\t\tif (this.isDataGrid) {\n\t\t\t\tthis.resetTabIndex();\n\t\t\t}\n\t\t\tthis.updateSelectAllCheckbox();\n\t\t});\n\n\t\tthis.subscriptions.add(rowsChange);\n\t\tthis.subscriptions.add(dataChange);\n\n\t\tif (this.isDataGrid) {\n\t\t\tconst expandedChange = this._model.rowsExpandedChange.subscribe(() => {\n\t\t\t\t// Allows the expanded row to have a focus state when it exists in the DOM\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tconst expandedRows = this.elementRef.nativeElement.querySelectorAll(\".cds--expandable-row:not(.cds--parent-row)\");\n\t\t\t\t\tArray.from<any>(expandedRows).forEach(row => {\n\t\t\t\t\t\tif (row.firstElementChild.tabIndex === undefined || row.firstElementChild.tabIndex !== -1) {\n\t\t\t\t\t\t\trow.firstElementChild.tabIndex = -1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis.subscriptions.add(expandedChange);\n\t\t}\n\t}\n\n\tget model(): TableModel {\n\t\treturn this._model;\n\t}\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\t/**\n\t * Set to `true` for a loading table.\n\t */\n\t@Input() skeleton = false;\n\t/**\n\t * Set to `true` for a data grid with keyboard interactions.\n\t */\n\t@Input() set isDataGrid(value: boolean) {\n\t\tthis._isDataGrid = value;\n\t\tif (this.isViewReady) {\n\t\t\tif (value) {\n\t\t\t\tthis.enableDataGridInteractions();\n\t\t\t} else {\n\t\t\t\tthis.disableDataGridInteractions();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setting sortable to false will disable all headers including headers which are sortable. Is is\n\t * possible to set the sortable state on the header item to disable/enable sorting for only some headers.\n\t */\n\t@Input() sortable = true;\n\n\t@Input() noBorder = true;\n\n\tget isDataGrid(): boolean {\n\t\treturn this._isDataGrid;\n\t}\n\n\t/**\n\t * Controls whether to show the selection checkboxes column or not.\n\t */\n\t@Input() showSelectionColumn = true;\n\n\t/**\n\t * Controls whether to enable multiple or single row selection.\n\t */\n\t@Input() enableSingleSelect = false;\n\n\t/**\n\t * Distance (in px) from the bottom that view has to reach before\n\t * `scrollLoad` event is emitted.\n\t */\n\t@Input() scrollLoadDistance = 0;\n\n\t/**\n\t * @todo - Enable column resize when Carbon officially supports feature\n\t * Set to `true` to enable users to resize columns.\n\t *\n\t * Works for columns with width set in pixels.\n\t *\n\t */\n\t// @Input() columnsResizable = false;\n\n\t/**\n\t * @todo - Enable columns drag & drop when Carbon officially supports feature\n\t * Set to `true` to enable users to drag and drop columns.\n\t *\n\t * Changing the column order in table changes table model. Be aware of it when you add additional data\n\t * to the model.\n\t *\n\t */\n\t// @Input() columnsDraggable = false;\n\n\t@Input()\n\tset expandButtonAriaLabel(value: string | Observable<string>) {\n\t\tthis._expandButtonAriaLabel.override(value);\n\t}\n\tget expandButtonAriaLabel() {\n\t\treturn this._expandButtonAriaLabel.value;\n\t}\n\t@Input()\n\tset sortDescendingLabel(value: string | Observable<string>) {\n\t\tthis._sortDescendingLabel.override(value);\n\t}\n\tget sortDescendingLabel() {\n\t\treturn this._sortDescendingLabel.value;\n\t}\n\t@Input()\n\tset sortAscendingLabel(value: string | Observable<string>) {\n\t\tthis._sortAscendingLabel.override(value);\n\t}\n\tget sortAscendingLabel() {\n\t\treturn this._sortAscendingLabel.value;\n\t}\n\n\t/**\n\t * Expects an object that contains some or all of:\n\t * ```\n\t * {\n\t *\t\t\"FILTER\": \"Filter\",\n\t *\t\t\"END_OF_DATA\": \"You've reached the end of your content\",\n\t *\t\t\"SCROLL_TOP\": \"Scroll to top\",\n\t *\t\t\"CHECKBOX_HEADER\": \"Select all rows\",\n\t *\t\t\"CHECKBOX_ROW\": \"Select row\"\n\t * }\n\t * ```\n\t */\n\t@Input()\n\tset translations(value) {\n\t\tconst valueWithDefaults = merge(this.i18n.getMultiple(\"TABLE\"), value);\n\t\tthis._filterTitle.override(valueWithDefaults.FILTER);\n\t\tthis._endOfDataText.override(valueWithDefaults.END_OF_DATA);\n\t\tthis._scrollTopText.override(valueWithDefaults.SCROLL_TOP);\n\t\tthis._checkboxHeaderLabel.override(valueWithDefaults.CHECKBOX_HEADER);\n\t\tthis._checkboxRowLabel.override(valueWithDefaults.CHECKBOX_ROW);\n\t}\n\n\t/**\n\t * Set to `false` to remove table rows (zebra) stripes.\n\t */\n\t@Input() striped = true;\n\n\t/**\n\t * Allows table content to scroll horizontally\n\t */\n\t@HostBinding(\"class.cds--data-table-content\") tableContent = true;\n\n\t/**\n\t * Set to `true` to stick the header to the top of the table\n\t */\n\t@HostBinding(\"class.cds--data-table_inner-container\") @Input() stickyHeader = false;\n\n\t/**\n\t * Set footer template to customize what is displayed in the tfoot section of the table\n\t */\n\t@Input() footerTemplate: TemplateRef<any>;\n\n\t/**\n\t * Used to populate the row selection checkbox label with a useful value if set.\n\t *\n\t * Example:\n\t * ```\n\t * <ibm-table [selectionLabelColumn]=\"0\"></ibm-table>\n\t * <!-- results in aria-label=\"Select first column value\"\n\t * (where \"first column value\" is the value of the first column in the row -->\n\t * ```\n\t */\n\t@Input() selectionLabelColumn: number;\n\n\t/**\n\t * Emits an index of the column that wants to be sorted.\n\t *\n\t * If no observers are provided (default), table will attempt to do a simple sort of the data loaded\n\t * into the model.\n\t *\n\t * If an observer is provided, table will not attempt any sorting of its own and it is up to the observer\n\t * to sort the table. This is what you typically want if you're using a backend query to get the sorted\n\t * data or want to sort data across multiple pages.\n\t *\n\t * Usage:\n\t *\n\t * ```typescript\n\t * @Component({\n\t * \tselector: \"app-table\",\n\t * \ttemplate: `\n\t * \t\t<ibm-table\n\t * \t\t\t[model]=\"model\"\n\t * \t\t\t(sort)=\"simpleSort($event)\">\n\t * \t\t\tNo data.\n\t * \t\t</ibm-table>\n\t * \t`\n\t * })\n\t * export class TableApp implements OnInit, OnChanges {\n\t * \t@Input() model = new TableModel();\n\t *\n\t * \tngOnInit() {\n\t * \t\tthis.model.header = [\n\t * \t\t\tnew TableHeaderItem({ data: \"Name\" }),\n\t * \t\t\tnew TableHeaderItem({ data: \"hwer\" })\n\t * \t\t];\n\t *\n\t * \t\tthis.model.data = [\n\t * \t\t\t[new TableItem({ data: \"Name 1\" }), new TableItem({ data: \"qwer\" })],\n\t * \t\t\t[new TableItem({ data: \"Name 3\" }), new TableItem({ data: \"zwer\" })],\n\t * \t\t\t[new TableItem({ data: \"Name 2\" }), new TableItem({ data: \"swer\" })],\n\t * \t\t\t[new TableItem({ data: \"Name 4\" }), new TableItem({data: \"twer\"})],\n\t * \t\t\t[new TableItem({ data: \"Name 5\" }), new TableItem({data: \"twer\"})],\n\t * \t\t\t[new TableItem({ data: \"Name 6\" }), new TableItem({data: \"twer\"})]\n\t * \t\t];\n\t * \t}\n\t *\n\t * \tsimpleSort(index: number) {\n\t * \t\t// this function does a simple sort, which is the default for the table and if that's\n\t * \t\t// all you want, you don't need to do this.\n\t *\n\t * \t\t// here you can query your backend and update the model.data based on the result\n\t * \t\tif (this.model.header[index].sorted) {\n\t * \t\t\t// if already sorted flip sorting direction\n\t * \t\t\tthis.model.header[index].ascending = this.model.header[index].descending;\n\t * \t\t}\n\t * \t\tthis.model.sort(index);\n\t * \t}\n\t * }\n\t * ```\n\t */\n\t@Output() sort = new EventEmitter<number>();\n\n\t/**\n\t * Emits if all rows are selected.\n\t *\n\t * @param model\n\t */\n\t@Output() selectAll = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if all rows are deselected.\n\t *\n\t * @param model\n\t */\n\t@Output() deselectAll = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if a single row is selected.\n\t *\n\t * @param ({model: this.model, selectedRowIndex: index})\n\t */\n\t@Output() selectRow = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if a single row is deselected.\n\t *\n\t * @param ({model: this.model, deselectedRowIndex: index})\n\t */\n\t@Output() deselectRow = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if a row item excluding expandButtons, checkboxes, or radios is clicked.\n\t */\n\t@Output() rowClick = new EventEmitter<number>();\n\n\t/**\n\t * Emits when table requires more data to be loaded.\n\t */\n\t@Output() scrollLoad = new EventEmitter<TableModel>();\n\n\t/**\n\t * Controls if all checkboxes are viewed as selected.\n\t */\n\tselectAllCheckbox = false;\n\n\t/**\n\t * Controls the indeterminate state of the header checkbox.\n\t */\n\tselectAllCheckboxSomeSelected = false;\n\n\tget noData() {\n\t\treturn !this.model.data ||\n\t\t\tthis.model.data.length === 0 ||\n\t\t\tthis.model.data.length === 1 && this.model.data[0].length === 0;\n\t}\n\n\tpublic isColumnDragging = false;\n\tpublic columnDraggedHoverIndex = -1;\n\tpublic columnDraggedPosition = \"\";\n\n\tprotected _model: TableModel;\n\tprotected _isDataGrid = false;\n\t// flag to prevent getters/setters from querying the view before it's fully instantiated\n\tprotected isViewReady = false;\n\n\tprotected subscriptions = new Subscription();\n\tprotected positionSubscription: Subscription;\n\n\tprotected interactionModel: DataGridInteractionModel;\n\tprotected interactionPositionSubscription: Subscription;\n\n\tprotected _expandButtonAriaLabel = this.i18n.getOverridable(\"TABLE.EXPAND_BUTTON\");\n\tprotected _sortDescendingLabel = this.i18n.getOverridable(\"TABLE.SORT_DESCENDING\");\n\tprotected _sortAscendingLabel = this.i18n.getOverridable(\"TABLE.SORT_ASCENDING\");\n\tprotected _checkboxHeaderLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_HEADER\");\n\tprotected _checkboxRowLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_ROW\");\n\tprotected _endOfDataText = this.i18n.getOverridable(\"TABLE.END_OF_DATA\");\n\tprotected _scrollTopText = this.i18n.getOverridable(\"TABLE.SCROLL_TOP\");\n\tprotected _filterTitle = this.i18n.getOverridable(\"TABLE.FILTER\");\n\n\tprotected columnResizeWidth: number;\n\tprotected columnResizeMouseX: number;\n\tprotected mouseMoveSubscription: Subscription;\n\tprotected mouseUpSubscription: Subscription;\n\n\t/**\n\t * Creates an instance of Table.\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected applicationRef: ApplicationRef,\n\t\tprotected i18n: I18n\n\t) { }\n\n\tngAfterViewInit() {\n\t\tthis.isViewReady = true;\n\t\tif (this.isDataGrid) {\n\t\t\tthis.enableDataGridInteractions();\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscriptions.unsubscribe();\n\t\tif (this.positionSubscription) {\n\t\t\tthis.positionSubscription.unsubscribe();\n\t\t}\n\t}\n\n\tenableDataGridInteractions() {\n\t\t// if we have an `interactioModel` we've already enabled datagrid\n\t\tif (this.interactionModel) {\n\t\t\treturn;\n\t\t}\n\t\tconst table = this.elementRef.nativeElement.querySelector(\"table\") as HTMLTableElement;\n\t\tconst tableAdapter = new TableDomAdapter(table);\n\t\tconst keydownEventStream = fromEvent<KeyboardEvent>(table, \"keydown\");\n\t\tconst clickEventStream = fromEvent<MouseEvent>(table, \"click\");\n\t\tthis.interactionModel = new DataGridInteractionModel(keydownEventStream, clickEventStream, tableAdapter);\n\t\tthis.positionSubscription = this.interactionModel.position.subscribe(event => {\n\t\t\tconst [currentRow, currentColumn] = event.current;\n\t\t\tconst [previousRow, previousColumn] = event.previous;\n\n\t\t\tconst currentElement = tableAdapter.getCell(currentRow, currentColumn);\n\t\t\tTable.setTabIndex(currentElement, 0);\n\n\t\t\t// if the model has just initialized don't focus or reset anything\n\t\t\tif (previousRow === -1 || previousColumn === -1) { return; }\n\t\t\t// Make the previous cell unfocusable (if it's not the current)\n\t\t\tif (previousRow !== currentRow || previousColumn !== currentColumn) {\n\t\t\t\tconst previousElement = tableAdapter.getCell(previousRow, previousColumn);\n\t\t\t\tTable.setTabIndex(previousElement, -1);\n\t\t\t}\n\t\t\tTable.focus(currentElement);\n\t\t});\n\t\t// call this after assigning `this.interactionModel` since it depends on it\n\t\tthis.resetTabIndex();\n\t}\n\n\tdisableDataGridInteractions() {\n\t\t// unsubscribe first so we don't cause the focus to fly around\n\t\tif (this.positionSubscription) {\n\t\t\tthis.positionSubscription.unsubscribe();\n\t\t}\n\t\t// undo tab indexing (also resets the model)\n\t\tthis.resetTabIndex(0);\n\t\t// null out the model ref\n\t\tthis.interactionModel = null;\n\t}\n\n\tonSelectAll() {\n\t\tthis.model.selectAll(true);\n\t\tthis.selectAll.emit(this.model);\n\t}\n\n\tonDeselectAll() {\n\t\tthis.model.selectAll(false);\n\t\tthis.deselectAll.emit(this.model);\n\t}\n\n\tonSelectRow(event) {\n\t\t// check for the existence of the selectedRowIndex property\n\t\tif (Object.keys(event).includes(\"selectedRowIndex\")) {\n\t\t\tif (this.enableSingleSelect) {\n\t\t\t\tthis.model.selectAll(false);\n\t\t\t}\n\t\t\tthis.model.selectRow(event.selectedRowIndex, true);\n\t\t\tthis.selectRow.emit(event);\n\t\t} else {\n\t\t\tthis.model.selectRow(event.deselectedRowIndex, false);\n\t\t\tthis.deselectRow.emit(event);\n\t\t}\n\t}\n\n\tonRowClick(index: number) {\n\t\tthis.rowClick.emit(index);\n\t}\n\n\tupdateSelectAllCheckbox() {\n\t\tconst selectedRowsCount = this.model.selectedRowsCount();\n\n\t\tif (selectedRowsCount <= 0) {\n\t\t\t// reset select all checkbox if nothing selected\n\t\t\tthis.selectAllCheckbox = false;\n\t\t\tthis.selectAllCheckboxSomeSelected = false;\n\t\t} else if (selectedRowsCount < this.model.data.length) {\n\t\t\tthis.selectAllCheckbox = true;\n\t\t\tthis.selectAllCheckboxSomeSelected = true;\n\t\t} else {\n\t\t\tthis.selectAllCheckbox = true;\n\t\t\tthis.selectAllCheckboxSomeSelected = false;\n\t\t}\n\t}\n\n\tresetTabIndex(newTabIndex = -1) {\n\t\t// ensure the view is ready for the reset before we preform the actual reset\n\t\tsetTimeout(() => {\n\t\t\t// reset all the tabIndexes we can find\n\t\t\tconst focusElementList = getFocusElementList(this.elementRef.nativeElement, tabbableSelectorIgnoreTabIndex);\n\t\t\tif (focusElementList) {\n\t\t\t\tfocusElementList.forEach(tabbable => {\n\t\t\t\t\ttabbable.tabIndex = newTabIndex;\n\t\t\t\t});\n\t\t\t}\n\t\t\t// reset interaction model positions and tabIndexes\n\t\t\tif (this.interactionModel) {\n\t\t\t\tthis.interactionModel.resetTabIndexes(newTabIndex);\n\t\t\t}\n\t\t});\n\t}\n\n\tcolumnResizeStart(event, column) {\n\t\tthis.columnResizeWidth = parseInt(column.style.width, 10);\n\t\tthis.columnResizeMouseX = event.clientX;\n\t\tevent.preventDefault();\n\n\t\tthis.mouseMoveSubscription = fromEvent(document.body, \"mousemove\").subscribe(event => {\n\t\t\tthis.columnResizeProgress(event, column);\n\t\t});\n\t\tthis.mouseUpSubscription = fromEvent(document.body, \"mouseup\").subscribe(event => {\n\t\t\tthis.columnResizeEnd(event, column);\n\t\t});\n\t}\n\n\tcolumnResizeProgress(event, column) {\n\t\tconst move = event.clientX - this.columnResizeMouseX;\n\t\tcolumn.style.width = `${this.columnResizeWidth + move}px`;\n\t}\n\n\tcolumnResizeEnd(event, column) {\n\t\tthis.mouseMoveSubscription.unsubscribe();\n\t\tthis.mouseUpSubscription.unsubscribe();\n\t}\n\n\t/**\n\t * Triggered when the user scrolls on the `<tbody>` element.\n\t * Emits the `scrollLoad` event.\n\t */\n\tonScroll(event) {\n\t\tconst distanceFromBottom = event.target.scrollHeight - event.target.clientHeight - event.target.scrollTop;\n\n\t\tif (distanceFromBottom <= this.scrollLoadDistance) {\n\t\t\tthis.scrollLoad.emit(this.model);\n\t\t} else {\n\t\t\tthis.model.isEnd = false;\n\t\t}\n\t}\n\n\tcolumnDragStart(event, columnIndex) {\n\t\tthis.isColumnDragging = true;\n\t\tthis.columnDraggedHoverIndex = columnIndex;\n\t\tevent.dataTransfer.setData(\"columnIndex\", JSON.stringify(columnIndex));\n\t}\n\n\tcolumnDragEnd(event, columnIndex) {\n\t\tthis.isColumnDragging = false;\n\t\tthis.columnDraggedHoverIndex = -1;\n\t}\n\n\tcolumnDragEnter(event, position, columnIndex) {\n\t\tthis.columnDraggedPosition = position;\n\t\tthis.columnDraggedHoverIndex = columnIndex;\n\t}\n\n\tcolumnDragLeave(event, position, columnIndex) {\n\t\tthis.columnDraggedPosition = \"\";\n\t}\n\n\tcolumnDragover(event, position, columnIndex) {\n\t\tthis.columnDraggedHoverIndex = columnIndex;\n\t\tthis.columnDraggedPosition = position;\n\n\t\t// needed to tell browser to allow dropping\n\t\tevent.preventDefault();\n\t}\n\n\tcolumnDrop(event, position, columnIndex) {\n\t\tthis.isColumnDragging = false;\n\t\tthis.columnDraggedHoverIndex = -1;\n\t\tthis.columnDraggedPosition = \"\";\n\n\t\tthis.model.moveColumn(\n\t\t\tparseInt(event.dataTransfer.getData(\"columnIndex\"), 10),\n\t\t\tcolumnIndex + (position === \"right\" ? 1 : 0)\n\t\t);\n\t}\n\n\tdoSort(index: number) {\n\t\tif (this.sort.observers.length === 0) {\n\t\t\t// no sort provided so do the simple sort\n\t\t\tif (this.model.header[index].sorted) {\n\t\t\t\t// if already sorted flip sorting direction\n\t\t\t\tthis.model.header[index].ascending = this.model.header[index].descending;\n\t\t\t}\n\t\t\tthis.model.sort(index);\n\t\t}\n\n\t\tthis.sort.emit(index);\n\t}\n\n\t/**\n\t * Triggered when the user scrolls on the `<tbody>` element.\n\t * Emits the `scrollLoad` event.\n\t */\n\tscrollToTop(event) {\n\t\tevent.target.parentElement.parentElement.parentElement.parentElement.children[1].scrollTop = 0;\n\t\tthis.model.isEnd = false;\n\t}\n\n\tgetSelectionLabelValue(row: TableItem[]) {\n\t\tif (!this.selectionLabelColumn) {\n\t\t\treturn { value: this.i18n.get().TABLE.ROW };\n\t\t}\n\t\treturn { value: row[this.selectionLabelColumn].data };\n\t}\n\n\tgetExpandButtonAriaLabel() {\n\t\treturn this._expandButtonAriaLabel.subject;\n\t}\n\tgetSortDescendingLabel() {\n\t\treturn this._sortDescendingLabel.subject;\n\t}\n\tgetSortAscendingLabel() {\n\t\treturn this._sortAscendingLabel.subject;\n\t}\n\n\tgetCheckboxHeaderLabel() {\n\t\treturn this._checkboxHeaderLabel.subject;\n\t}\n\n\tgetCheckboxRowLabel() {\n\t\treturn this._checkboxRowLabel.subject;\n\t}\n\n\tgetEndOfDataText() {\n\t\treturn this._endOfDataText.subject;\n\t}\n\n\tgetScrollTopText() {\n\t\treturn this._scrollTopText.subject;\n\t}\n\n\tgetFilterTitle() {\n\t\treturn this._filterTitle.subject;\n\t}\n}\n","import {\n\tAfterContentInit,\n\tComponent,\n\tContentChild,\n\tHostBinding\n} from \"@angular/core\";\nimport { TableHeaderDescription } from \"./header/table-header-description.directive\";\nimport { TableHeaderTitle } from \"./header/table-header-title.directive\";\nimport { Table } from \"./table.component\";\n\n@Component({\n\tselector: \"ibm-table-container\",\n\ttemplate: `<ng-content></ng-content>`,\n\tstyles: [`\n\t\t:host { display: block }\n\t`]\n})\nexport class TableContainer implements AfterContentInit {\n\t@HostBinding(\"class.cds--data-table-container\") containerClass = true;\n\n\t@ContentChild(TableHeaderTitle) headerTitle: TableHeaderTitle;\n\t@ContentChild(TableHeaderDescription) headerDescription: TableHeaderDescription;\n\t@ContentChild(Table) table: Table;\n\n\tngAfterContentInit() {\n\t\t// Set aria properties if values exist otherwise keep undefined\n\t\tif (this.table) {\n\t\t\tthis.table.ariaLabelledby = this.headerTitle?.id;\n\t\t\tthis.table.ariaDescribedby = this.headerDescription?.id;\n\t\t}\n\t}\n}\n","import { Component, HostBinding } from \"@angular/core\";\n\n@Component({\n\tselector: \"ibm-table-header\",\n\ttemplate: `\n\t\t<ng-content></ng-content>\n\t`\n})\nexport class TableHeader {\n\t@HostBinding(\"class.cds--data-table-header\") headerClass = true;\n\t@HostBinding(\"style.display\") displayStyle = \"block\";\n}\n","import { TableItem } from \"./table-item.class\";\n\n/**\n * Represents a table row, which is essentially an array of TableItem.\n */\nexport class TableRow extends Array<TableItem> {\n\t/**\n\t * Whether row is disabled or not.\n\t */\n\tdisabled = false;\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\n\n// internal module imports\nimport { NFormsModule } from \"carbon-components-angular/forms\";\nimport { DialogModule } from \"carbon-components-angular/dialog\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { SearchModule } from \"carbon-components-angular/search\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n// table utilities/toolbar imports\nimport { TableToolbar } from \"./toolbar/table-toolbar.component\";\nimport { TableToolbarActions } from \"./toolbar/table-toolbar-actions.component\";\nimport { TableToolbarSearch } from \"./toolbar/table-toolbar-search.component\";\nimport { TableToolbarContent } from \"./toolbar/table-toolbar-content.component\";\n\nimport { TableContainer } from \"./table-container.component\";\nimport { TableHeader } from \"./header/table-header.component\";\nimport { TableHeaderTitle } from \"./header/table-header-title.directive\";\nimport { TableHeaderDescription } from \"./header/table-header-description.directive\";\n\nimport { ExpandedRowHover } from \"./expanded-row-hover.directive\";\n\n// core table imports\nimport { Table } from \"./table.component\";\nimport { TableDirective } from \"./table.directive\";\nimport { TableHead } from \"./head/table-head.component\";\nimport { TableHeadCell } from \"./head/table-head-cell.component\";\nimport { TableHeadCheckbox } from \"./head/table-head-checkbox.component\";\nimport { TableHeadExpand } from \"./head/table-head-expand.component\";\nimport { TableBody } from \"./body/table-body.component\";\nimport { TableRowComponent } from \"./body/table-row.component\";\nimport { TableExpandedRow } from \"./body/table-expanded-row.component\";\nimport { TableData } from \"./cell/table-data.component\";\nimport { TableCheckbox } from \"./cell/table-checkbox.component\";\nimport { TableRadio } from \"./cell/table-radio.component\";\nimport { TableExpandButton } from \"./cell/table-expand-button.component\";\nimport { TableHeadCellLabel } from \"./head/table-head-cell-label.directive\";\n\n// model exports\nexport { TableModel } from \"./table-model.class\";\nexport { TableRow } from \"./table-row.class\";\nexport { TableItem } from \"./table-item.class\";\nexport { TableHeaderItem } from \"./table-header-item.class\";\nexport * from \"./table-adapter.class\";\nexport * from \"./data-grid-interaction-model.class\";\n\n@NgModule({\n\tdeclarations: [\n\t\t// toolbar and utility components\n\t\tTableToolbar,\n\t\tTableContainer,\n\t\tTableHeader,\n\t\tTableHeaderTitle,\n\t\tTableHeaderDescription,\n\t\tTableHeadCellLabel,\n\t\tTableToolbarActions,\n\t\tTableToolbarSearch,\n\t\tTableToolbarContent,\n\t\tExpandedRowHover,\n\t\t// core table components\n\t\tTable,\n\t\tTableDirective,\n\t\tTableHead,\n\t\tTableHeadCell,\n\t\tTableHeadCheckbox,\n\t\tTableHeadExpand,\n\t\tTableBody,\n\t\tTableRowComponent,\n\t\tTableExpandedRow,\n\t\tTableData,\n\t\tTableCheckbox,\n\t\tTableRadio,\n\t\tTableExpandButton\n\t],\n\texports: [\n\t\t// toolbar and utility components\n\t\tTableToolbar,\n\t\tTableContainer,\n\t\tTableHeader,\n\t\tTableHeaderTitle,\n\t\tTableHeaderDescription,\n\t\tTableHeadCellLabel,\n\t\tTableToolbarActions,\n\t\tTableToolbarSearch,\n\t\tTableToolbarContent,\n\t\tExpandedRowHover,\n\t\t// core table components\n\t\tTable,\n\t\tTableDirective,\n\t\tTableHead,\n\t\tTableHeadCell,\n\t\tTableHeadCheckbox,\n\t\tTableHeadExpand,\n\t\tTableBody,\n\t\tTableRowComponent,\n\t\tTableExpandedRow,\n\t\tTableData,\n\t\tTableCheckbox,\n\t\tTableRadio,\n\t\tTableExpandButton\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tNFormsModule,\n\t\tFormsModule,\n\t\tDialogModule,\n\t\tButtonModule,\n\t\tSearchModule,\n\t\tI18nModule,\n\t\tIconModule\n\t]\n})\nexport class TableModule {}\n","// table utilities/toolbar imports\nexport { TableToolbar } from \"./toolbar/table-toolbar.component\";\nexport { TableToolbarActions } from \"./toolbar/table-toolbar-actions.component\";\nexport { TableToolbarSearch } from \"./toolbar/table-toolbar-search.component\";\nexport { TableToolbarContent } from \"./toolbar/table-toolbar-content.component\";\n\nexport { TableContainer } from \"./table-container.component\";\nexport { TableHeader } from \"./header/table-header.component\";\nexport { TableHeaderTitle } from \"./header/table-header-title.directive\";\nexport { TableHeadCellLabel } from \"./head/table-head-cell-label.directive\";\nexport { TableHeaderDescription } from \"./header/table-header-description.directive\";\n\nexport { ExpandedRowHover } from \"./expanded-row-hover.directive\";\n\n// core table imports\nexport { Table } from \"./table.component\";\nexport { TableRowSize, TableTranslations } from \"./table.types\";\nexport { TableDirective } from \"./table.directive\";\nexport { TableHead } from \"./head/table-head.component\";\nexport { TableHeadCell } from \"./head/table-head-cell.component\";\nexport { TableHeadCheckbox } from \"./head/table-head-checkbox.component\";\nexport { TableHeadExpand } from \"./head/table-head-expand.component\";\nexport { TableBody } from \"./body/table-body.component\";\nexport { TableRowComponent } from \"./body/table-row.component\";\nexport { TableExpandedRow } from \"./body/table-expanded-row.component\";\nexport { TableData } from \"./cell/table-data.component\";\nexport { TableCheckbox } from \"./cell/table-checkbox.component\";\nexport { TableRadio } from \"./cell/table-radio.component\";\nexport { TableExpandButton } from \"./cell/table-expand-button.component\";\n\n// model exports\nexport { TableModel } from \"./table-model.class\";\nexport { TableItem } from \"./table-item.class\";\nexport { TableHeaderItem } from \"./table-header-item.class\";\nexport * from \"./table-adapter.class\";\nexport * from \"./data-grid-interaction-model.class\";\n\nexport * from \"./table.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["EventEmitter","i1","i0","i2","i3","Component","Input","Output","Search","NG_VALUE_ACCESSOR","HostBinding","Directive","Subject","BehaviorSubject","combineLatest","map","getFocusElementList","tabbableSelectorIgnoreTabIndex","i3.TableHeadCellLabel","getScrollbarWidth","i2.TableHeadExpand","i3.TableHeadCheckbox","i4.TableHeadCell","i5","i2.TableExpandButton","i3.TableCheckbox","i4.TableRadio","i5.TableData","i6","HostListener","i2.TableRowComponent","i3.TableExpandedRow","i4","i5.ExpandedRowHover","Subscription","merge","fromEvent","i2.TableHead","i3.TableBody","i4.TableDirective","ContentChild","CommonModule","NFormsModule","FormsModule","DialogModule","ButtonModule","SearchModule","I18nModule","IconModule","NgModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCG;AAwCH,KAAA,YAAA,kBAAA,YAAA;CAgCC,IAAA,SAAA,YAAA,CAAsB,IAAU,EAAA;CAAV,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;CAdvB,QAAA,IAAI,CAAA,IAAA,GAAiB,IAAI,CAAC;CAMzB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAIA,eAAY,EAAE,CAAC;SAEtC,IAAc,CAAA,cAAA,GAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;SACnF,IAAW,CAAA,WAAA,GAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;SAC5E,IAAgB,CAAA,gBAAA,GAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;SACrF,IAAgB,CAAA,gBAAA,GAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,iCAAiC,CAAC,CAAC;SAC5F,IAAkB,CAAA,kBAAA,GAAgB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,mCAAmC,CAAC,CAAC;MAE5D;CA7BpC,IAAA,MAAA,CAAA,cAAA,CAAa,YAAS,CAAA,SAAA,EAAA,WAAA,EAAA;CAAtB,QAAA,GAAA,EAAA,UAAwB,KAAoD,EAAA;CAC3E,YAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;iBAC9B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;iBAC7C,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;CACjD,aAAA;CAAM,iBAAA;;CAEN,gBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;CACtC,aAAA;UACD;;;CAAA,KAAA,CAAA,CAAA;CACD,IAAA,MAAA,CAAA,cAAA,CAAa,YAAS,CAAA,SAAA,EAAA,WAAA,EAAA;CAAtB,QAAA,GAAA,EAAA,UAAwB,KAA6B,EAAA;aACpD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;UAC/C;;;CAAA,KAAA,CAAA,CAAA;CACD,IAAA,MAAA,CAAA,cAAA,CAAa,YAAU,CAAA,SAAA,EAAA,YAAA,EAAA;CAKvB,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,KAAe,EAAE,CAAC;UACpD;CAPD,QAAA,GAAA,EAAA,UAAwB,KAAyB,EAAA;aAChD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;UACxC;;;CAAA,KAAA,CAAA,CAAA;CAiBD,IAAA,MAAA,CAAA,cAAA,CAAI,YAAK,CAAA,SAAA,EAAA,OAAA,EAAA;CAAT,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,UAAC,QAAQ,EAAE,OAAO,EAAA,EAAK,OAAA,QAAQ,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA,EAAA,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;UACnI;;;CAAA,KAAA,CAAA,CAAA;CACD,IAAA,MAAA,CAAA,cAAA,CAAI,YAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;CAAZ,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,CAAJ,EAAI,CAAC,GAAG,KAAK,CAAC;UAC3F;;;CAAA,KAAA,CAAA,CAAA;CAED,IAAA,YAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;CACC,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;CAC5B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;MACnB,CAAA;;;iIA5CW,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAZ,YAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,EArCd,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,4yCAmCT,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAAD,aAAA,CAAA,SAAA,EAAA,aAAA,EAAAF,aAAA,CAAA,WAAA,EAAA,EAAA,CAAA,CAAA;mHAEW,YAAY,EAAA,UAAA,EAAA,CAAA;mBAvCxBI,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,mBAAmB;CAC7B,oBAAA,QAAQ,EAAE,4yCAmCT;kBACD,CAAA;uGAES,KAAK,EAAA,CAAA;uBAAbC,QAAK;iBAEO,SAAS,EAAA,CAAA;uBAArBA,QAAK;iBASO,SAAS,EAAA,CAAA;uBAArBA,QAAK;iBAGO,UAAU,EAAA,CAAA;uBAAtBA,QAAK;iBAGG,IAAI,EAAA,CAAA;uBAAZA,QAAK;iBAMI,MAAM,EAAA,CAAA;uBAAfC,SAAM;;;ACtGR,KAAA,mBAAA,kBAAA,YAAA;CAAA,IAAA,SAAA,mBAAA,GAAA;;;;wIAAa,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAL,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAnB,mBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,4EAFrB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;mHAEzB,mBAAmB,EAAA,UAAA,EAAA,CAAA;mBAJ/BG,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,2BAA2B;CACrC,oBAAA,QAAQ,EAAE,2BAA2B;kBACrC,CAAA;;;CCLD;;;;;;;;;;;;;CAagF;CAChF;CAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC,EAAA;KAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;UAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;SAC5E,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,KAAK,IAAI,CAAC,IAAI,CAAC;aAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;iBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;CACtG,IAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC/B,CAAC,CAAC;CAEc,SAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAA;CAC1B,IAAA,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;CACrC,QAAA,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;CAC9F,IAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;CACvC,IAAA,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;CACzF,CAAC;CAEM,IAAI,QAAQ,GAAG,YAAA;KAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAA;CAC3C,QAAA,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;CACjD,YAAA,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;aACjB,KAAK,IAAI,CAAC,IAAI,CAAC;iBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;qBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAChF,SAAA;CACD,QAAA,OAAO,CAAC,CAAC;CACb,KAAC,CAAA;KACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CAC3C,CAAC,CAAA;CAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;KACvB,IAAI,CAAC,GAAG,EAAE,CAAC;KACX,KAAK,IAAI,CAAC,IAAI,CAAC;SAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;aAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;SAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;aACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1E,gBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACzB,SAAA;CACL,IAAA,OAAO,CAAC,CAAC;CACb,CAAC;CAEK,SAAU,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAA;CACpD,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;KAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;CAAE,QAAA,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;CAC1H,QAAA,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;CAAE,YAAA,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;CAAE,gBAAA,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;CAClJ,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CAClE,CAAC;CAEe,SAAA,OAAO,CAAC,UAAU,EAAE,SAAS,EAAA;CACzC,IAAA,OAAO,UAAU,MAAM,EAAE,GAAG,EAAA,EAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;CACzE,CAAC;CAEe,SAAA,UAAU,CAAC,WAAW,EAAE,aAAa,EAAA;KACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;SAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;CACnI,CAAC;CAEK,SAAU,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAA;CACvD,IAAA,SAAS,KAAK,CAAC,KAAK,EAAA,EAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAA,EAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;CAC5G,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAA;CACrD,QAAA,SAAS,SAAS,CAAC,KAAK,EAAA,EAAI,IAAI;aAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CAAE,SAAA;CAAC,QAAA,OAAO,CAAC,EAAE;aAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAAE,SAAA,EAAE;CAC3F,QAAA,SAAS,QAAQ,CAAC,KAAK,EAAA,EAAI,IAAI;aAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;CAAE,SAAA;CAAC,QAAA,OAAO,CAAC,EAAE;aAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAAE,SAAA,EAAE;CAC9F,QAAA,SAAS,IAAI,CAAC,MAAM,EAAA,EAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;CAC9G,QAAA,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;CAC1E,KAAC,CAAC,CAAC;CACP,CAAC;CAEe,SAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAA;CACrC,IAAA,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAA,EAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;CAAE,YAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACzJ,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,OAAO,UAAU,CAAC,EAAI,EAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;KAClE,SAAS,IAAI,CAAC,EAAE,EAAA;CACZ,QAAA,IAAI,CAAC;CAAE,YAAA,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;CAC9D,QAAA,OAAO,CAAC;aAAE,IAAI;CACV,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;CAAE,oBAAA,OAAO,CAAC,CAAC;CAC7J,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;CAAE,oBAAA,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;CACxC,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC;CACT,oBAAA,KAAK,CAAC,CAAC;CAAC,oBAAA,KAAK,CAAC;yBAAE,CAAC,GAAG,EAAE,CAAC;yBAAC,MAAM;CAC9B,oBAAA,KAAK,CAAC;yBAAE,CAAC,CAAC,KAAK,EAAE,CAAC;CAAC,wBAAA,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;CACxD,oBAAA,KAAK,CAAC;yBAAE,CAAC,CAAC,KAAK,EAAE,CAAC;CAAC,wBAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;CAAC,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;yBAAC,SAAS;CACjD,oBAAA,KAAK,CAAC;CAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;CAAC,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;yBAAC,SAAS;CACjD,oBAAA;CACI,wBAAA,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;6BAAE,CAAC,GAAG,CAAC,CAAC;6BAAC,SAAS;CAAE,yBAAA;CAC5G,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;6BAAC,MAAM;CAAE,yBAAA;CACtF,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;CAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;6BAAC,CAAC,GAAG,EAAE,CAAC;6BAAC,MAAM;CAAE,yBAAA;yBACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;CAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CAAC,4BAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;6BAAC,MAAM;CAAE,yBAAA;yBACnE,IAAI,CAAC,CAAC,CAAC,CAAC;CAAE,4BAAA,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;CACtB,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;yBAAC,SAAS;CAC9B,iBAAA;iBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CAC9B,aAAA;CAAC,YAAA,OAAO,CAAC,EAAE;CAAE,gBAAA,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;iBAAC,CAAC,GAAG,CAAC,CAAC;CAAE,aAAA;CAAS,oBAAA;CAAE,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CAAE,aAAA;CAC1D,QAAA,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;CAAE,YAAA,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;SAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;MACpF;CACL,CAAC;CAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;KAC9D,IAAI,EAAE,KAAK,SAAS;SAAE,EAAE,GAAG,CAAC,CAAC;KAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAA,EAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;KACtB,IAAI,EAAE,KAAK,SAAS;SAAE,EAAE,GAAG,CAAC,CAAC;KAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC,CAAC,CAAC;CAEa,SAAA,YAAY,CAAC,CAAC,EAAE,CAAC,EAAA;KAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;CAAE,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;CAAE,YAAA,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAClH,CAAC;CAEK,SAAU,QAAQ,CAAC,CAAC,EAAA;KACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CAC9E,IAAA,IAAI,CAAC;CAAE,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACxB,IAAA,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;SAAE,OAAO;CAC1C,YAAA,IAAI,EAAE,YAAA;CACF,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;qBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;CACnC,gBAAA,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;cAC3C;UACJ,CAAC;CACF,IAAA,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;CAC3F,CAAC;CAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;CACvB,IAAA,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;CAC3D,IAAA,IAAI,CAAC,CAAC;CAAE,QAAA,OAAO,CAAC,CAAC;CACjB,IAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;KACjC,IAAI;SACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;CAAE,YAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CAC9E,KAAA;CACD,IAAA,OAAO,KAAK,EAAE;CAAE,QAAA,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;CAAE,KAAA;CAC/B,YAAA;SACJ,IAAI;CACA,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;CAAE,gBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACpD,SAAA;CACO,gBAAA;CAAE,YAAA,IAAI,CAAC;iBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;CAAE,SAAA;CACpC,KAAA;CACD,IAAA,OAAO,EAAE,CAAC;CACd,CAAC;CAED;UACgB,QAAQ,GAAA;CACpB,IAAA,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;CAC9C,QAAA,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACzC,IAAA,OAAO,EAAE,CAAC;CACd,CAAC;CAED;UACgB,cAAc,GAAA;KAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;CAAE,QAAA,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;KACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;SAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;aAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACpB,IAAA,OAAO,CAAC,CAAC;CACb,CAAC;UAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAA;CACxC,IAAA,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;CAAE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;aACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;CACpB,gBAAA,IAAI,CAAC,EAAE;CAAE,oBAAA,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;CACnB,aAAA;CACJ,SAAA;KACD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC;CACjC,CAAC;CAEK,SAAU,OAAO,CAAC,CAAC,EAAA;KACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACzE,CAAC;UAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAA;KAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;CAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;CACvF,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;CAC9D,IAAA,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAc,EAAA,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KACtH,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC;SAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;CAC1I,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;SAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,KAAA;CAAC,IAAA,OAAO,CAAC,EAAE;SAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAAE,KAAA,EAAE;KAClF,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;CACxH,IAAA,SAAS,OAAO,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;CAClD,IAAA,SAAS,MAAM,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;CAClD,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;CAAE,QAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CACtF,CAAC;CAEK,SAAU,gBAAgB,CAAC,CAAC,EAAA;KAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;CACT,IAAA,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;CAC5I,IAAA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAI,EAAA,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;CACnJ,CAAC;CAEK,SAAU,aAAa,CAAC,CAAC,EAAA;KAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;CAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;KACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;CACnC,IAAA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;KACjN,SAAS,IAAI,CAAC,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAI,EAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;CAChK,IAAA,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAI,EAAA,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;CAChI,CAAC;CAEe,SAAA,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAA;KAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;CAAE,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;CAAE,KAAA;CAAM,SAAA;CAAE,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;CAAE,KAAA;CAC/G,IAAA,OAAO,MAAM,CAAC;CAClB,CAAC;CAAA,CAAC;CAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;CACnD,IAAA,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;CACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;CACd,IAAA,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CACrB,CAAC,CAAC;CAEI,SAAU,YAAY,CAAC,GAAG,EAAA;CAC5B,IAAA,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;CAAE,QAAA,OAAO,GAAG,CAAC;KACtC,IAAI,MAAM,GAAG,EAAE,CAAC;KAChB,IAAI,GAAG,IAAI,IAAI;SAAE,KAAK,IAAI,CAAC,IAAI,GAAG;CAAE,YAAA,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;CAAE,gBAAA,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;CACzI,IAAA,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC,IAAA,OAAO,MAAM,CAAC;CAClB,CAAC;CAEK,SAAU,eAAe,CAAC,GAAG,EAAA;CAC/B,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;CAC5D,CAAC;CAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;CAC3D,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;CAAE,QAAA,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;KAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;CAAE,QAAA,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;CACnL,IAAA,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;CAClG,CAAC;CAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;KAClE,IAAI,IAAI,KAAK,GAAG;CAAE,QAAA,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;CACxE,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;CAAE,QAAA,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;KAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;CAAE,QAAA,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;CAClL,IAAA,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;CAC9G;;ACzNA,KAAA,kBAAA,kBAAA,UAAA,MAAA,EAAA;KAAwC,SAAM,CAAA,kBAAA,EAAA,MAAA,CAAA,CAAA;CAX9C,IAAA,SAAA,kBAAA,GAAA;CAAA,QAAA,IAAA,KAAA,GAAA,MAAA,CAAA,KAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,WAuBC,CAAA,CAAA,IAAA,IAAA,CAAA;CAXA,QAAA,KAAW,CAAA,WAAA,GAAG,IAAI,CAAC;CAEwB,QAAA,KAAS,CAAA,SAAA,GAAG,IAAI,CAAC;;MAS5D;CAPA,IAAA,kBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;SAAA,IAMC,KAAA,GAAA,IAAA,CAAA;CALA,QAAA,UAAU,CAAC,YAAA;aACV,IAAI,KAAI,CAAC,KAAK,EAAE;iBACf,KAAI,CAAC,UAAU,EAAE,CAAC;CAClB,aAAA;CACF,SAAC,CAAC,CAAC;MACH,CAAA;;EAXF,CAAwCG,aAAM;uIAAjC,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAAN,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAlB,kBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EARnB,QAAA,EAAA,0BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;CACV,QAAA;CACC,YAAA,OAAO,EAAEO,uBAAiB;CAC1B,YAAA,WAAW,EAAE,kBAAkB;CAC/B,YAAA,KAAK,EAAE,IAAI;CACX,SAAA;CACD,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAAP,aAAA,EAAA,QAAA,ECnBF,4pEA8DA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAD,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAE,eAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;mHDzCa,kBAAkB,EAAA,UAAA,EAAA,CAAA;mBAX9BE,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,0BAA0B;CACpC,oBAAA,WAAW,EAAE,oCAAoC;CACjD,oBAAA,SAAS,EAAE;CACV,wBAAA;CACC,4BAAA,OAAO,EAAEI,uBAAiB;CAC1B,4BAAA,WAAW,EAAoB,kBAAA;CAC/B,4BAAA,KAAK,EAAE,IAAI;CACX,yBAAA;CACD,qBAAA;kBACD,CAAA;+BAI2C,SAAS,EAAA,CAAA;uBAAnDC,cAAW;wBAAC,4BAA4B,CAAA;;;AElB1C,KAAA,mBAAA,kBAAA,YAAA;CAJA,IAAA,SAAA,mBAAA,GAAA;CAK4C,QAAA,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC;MACxD;;;wIAFY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAR,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAnB,mBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,kJAFrB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;mHAEzB,mBAAmB,EAAA,UAAA,EAAA,CAAA;mBAJ/BG,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,2BAA2B;CACrC,oBAAA,QAAQ,EAAE,2BAA2B;kBACrC,CAAA;+BAE2C,KAAK,EAAA,CAAA;uBAA/CK,cAAW;wBAAC,4BAA4B,CAAA;;;ACF1C,KAAA,sBAAA,kBAAA,YAAA;CAHA,IAAA,SAAA,sBAAA,GAAA;SAMkC,IAAA,CAAA,EAAE,GAAG,oBAAA,GAAqB,sBAAsB,CAAC,OAAO,EAAI,CAAC;CACpC,QAAA,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;MAClF;;;CAJO,sBAAO,CAAA,OAAA,GAAG,CAAC,CAAC;2IADP,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAR,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;oHAAtB,sBAAsB,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,2CAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;mHAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;mBAHlCS,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,6BAA6B;kBACvC,CAAA;+BAIiC,EAAE,EAAA,CAAA;uBAAlCD,cAAW;wBAAC,SAAS,CAAA;;uBAAGJ,QAAK;iBAC4B,gBAAgB,EAAA,CAAA;uBAAzEI,cAAW;wBAAC,2CAA2C,CAAA;;;ACJzD,KAAA,gBAAA,kBAAA,YAAA;CAHA,IAAA,SAAA,gBAAA,GAAA;SAMkC,IAAA,CAAA,EAAE,GAAG,cAAA,GAAe,gBAAgB,CAAC,OAAO,EAAI,CAAC;CAC9B,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;MACtE;;;CAJO,gBAAO,CAAA,OAAA,GAAG,CAAC,CAAC;qIADP,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAR,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8GAAhB,gBAAgB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,SAAA,EAAA,qCAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;mHAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;mBAH5BS,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,uBAAuB;kBACjC,CAAA;+BAIiC,EAAE,EAAA,CAAA;uBAAlCD,cAAW;wBAAC,SAAS,CAAA;;uBAAGJ,QAAK;iBACsB,UAAU,EAAA,CAAA;uBAA7DI,cAAW;wBAAC,qCAAqC,CAAA;;;ACHnD,KAAA,eAAA,kBAAA,YAAA;CAyOC;;CAEG;CACH,IAAA,SAAA,eAAA,CAAY,OAAa,EAAA;;CA3OzB;;;CAGG;CACH,QAAA,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;CAEf;;;CAGG;CACH,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;CAEf;;;;CAIG;CACH,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;CAEhB;;;;;CAKG;CACH,QAAA,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;CAEhB;;;CAGG;CACH,QAAA,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;CAEZ;;CAEG;CACH,QAAA,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;CAQZ;;;;;CAKG;CACH,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;CAiJX;;;;CAIG;CACO,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;;CAqC3B,QAAA,IAAM,QAAQ,GAAG;CAChB,YAAA,IAAI,EAAE,EAAE;aACR,OAAO,EAAE,IAAI,CAAC,OAAO;aACrB,KAAK,EAAE,IAAI,CAAC,KAAK;aACjB,WAAW,EAAE,IAAI,CAAC,WAAW;CAC7B,YAAA,UAAU,EAAE,EAAC,IAAI,EAAE,EAAE,EAAC;UACtB,CAAC;;CAEF,QAAA,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;;aAClD,KAAqB,IAAA,EAAA,GAAA,QAAA,CAAA,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;CAAlD,gBAAA,IAAI,QAAQ,GAAA,EAAA,CAAA,KAAA,CAAA;CAChB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;qBAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;CAChC,iBAAA;CACD,aAAA;;;;;;;;;MACD;CAnMD,IAAA,MAAA,CAAA,cAAA,CAAI,eAAS,CAAA,SAAA,EAAA,WAAA,EAAA;CAGb,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,UAAU,CAAC;UACvB;CATD;;;CAGG;CACH,QAAA,GAAA,EAAA,UAAc,GAAG,EAAA;CAChB,YAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;UACtB;;;CAAA,KAAA,CAAA,CAAA;CASD,IAAA,MAAA,CAAA,cAAA,CAAI,eAAU,CAAA,SAAA,EAAA,YAAA,EAAA;CAGd,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;UACxB;CATD;;;CAGG;CACH,QAAA,GAAA,EAAA,UAAe,IAAI,EAAA;CAClB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC;UACxB;;;CAAA,KAAA,CAAA,CAAA;CAqID,IAAA,MAAA,CAAA,cAAA,CAAI,eAAK,CAAA,SAAA,EAAA,OAAA,EAAA;CAAT,QAAA,GAAA,EAAA,YAAA;aACC,IAAI,IAAI,CAAC,MAAM,EAAE;iBAChB,OAAO,IAAI,CAAC,MAAM,CAAC;CACnB,aAAA;CAED,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;CACf,gBAAA,OAAO,EAAE,CAAC;CACV,aAAA;CAED,YAAA,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;iBAClC,OAAO,IAAI,CAAC,IAAI,CAAC;CACjB,aAAA;CAED,YAAA,IACC,IAAI,CAAC,IAAI,CAAC,QAAQ;iBAClB,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,EAAE,WAAW,EACzC;CACD,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;CAC5B,aAAA;;CAGD,YAAA,OAAO,EAAE,CAAC;UACV;CAED,QAAA,GAAA,EAAA,UAAU,KAAK,EAAA;CACd,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;UACpB;;;CAJA,KAAA,CAAA,CAAA;CA6BD;;;;;;;;CAQG;CACH,IAAA,eAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAc,EAAE,GAAc,EAAA;CACrC,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;CACjB,YAAA,OAAO,CAAC,CAAC;CACT,SAAA;CAED,QAAA,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;aACjC,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CACxC,SAAA;CAED,QAAA,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE;aACxB,OAAO,CAAC,CAAC,CAAC;CACV,SAAA;CAAM,aAAA,IAAI,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE;CAC/B,YAAA,OAAO,CAAC,CAAC;CACT,SAAA;CAAM,aAAA;CACN,YAAA,OAAO,CAAC,CAAC;CACT,SAAA;MACD,CAAA;CAED;;;;;;;;;;CAUG;KACH,eAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,IAAe,EAAA;CACrB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;CACrB,QAAA,OAAO,KAAK,CAAC;MACb,CAAA;KACD,OAAA,eAAA,CAAA;CAAA,CAAA,EAAA;;AC1SD,KAAA,SAAA,kBAAA,YAAA;CAsIC;;CAEG;CACH,IAAA,SAAA,SAAA,CAAY,OAAa,EAAA;;CA3CzB;;CAEG;CACH,QAAA,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;CAEZ;;CAEG;CACH,QAAA,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;;CAqCX,QAAA,IAAM,QAAQ,GAAG;CAChB,YAAA,IAAI,EAAE,EAAE;UACR,CAAC;;CAEF,QAAA,IAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;;aAClD,KAAuB,IAAA,EAAA,GAAA,QAAA,CAAA,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;CAApD,gBAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,KAAA,CAAA;CAClB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;qBAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;CAChC,iBAAA;CACD,aAAA;;;;;;;;;MACD;CA7CD,IAAA,MAAA,CAAA,cAAA,CAAI,SAAK,CAAA,SAAA,EAAA,OAAA,EAAA;CAAT,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;iBACpC,OAAO,IAAI,CAAC,MAAM,CAAC;CACnB,aAAA;CAED,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;CACf,gBAAA,OAAO,EAAE,CAAC;CACV,aAAA;CAED,YAAA,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;iBAClC,OAAO,IAAI,CAAC,IAAI,CAAC;CACjB,aAAA;CAED,YAAA,IACC,IAAI,CAAC,IAAI,CAAC,QAAQ;iBAClB,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,EAAE,WAAW,EACzC;CACD,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;CAC5B,aAAA;;CAGD,YAAA,OAAO,EAAE,CAAC;UACV;CAED,QAAA,GAAA,EAAA,UAAU,KAAK,EAAA;CACd,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;UACpB;;;CAJA,KAAA,CAAA,CAAA;KAwBD,OAAA,SAAA,CAAA;CAAA,CAAA,EAAA;;CC9ID;;;;;;;;;;;;;;;;CAgBG;AACH,KAAA,UAAA,kBAAA,YAAA;CAgKC,IAAA,SAAA,UAAA,GAAA;CAxHA,QAAA,IAAA,CAAA,UAAU,GAAG,IAAIV,eAAY,EAAE,CAAC;CAChC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAIA,eAAY,EAAU,CAAC;CAChD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAIA,eAAY,EAAU,CAAC;CAChD;;;CAGG;CACH,QAAA,IAAA,CAAA,eAAe,GAAG,IAAIY,YAAO,EAAW,CAAC;CAYzC;;CAEG;CACH,QAAA,IAAY,CAAA,YAAA,GAAc,EAAE,CAAC;CAE7B;;CAEG;CACH,QAAA,IAAY,CAAA,YAAA,GAAc,EAAE,CAAC;CAE7B;;;;;;;CAOG;CACH,QAAA,IAAW,CAAA,WAAA,GAAa,EAAE,CAAC;CAE3B;;;;;;CAMG;CACH,QAAA,IAAS,CAAA,SAAA,GAAa,EAAE,CAAC;CAEzB;;CAEG;CACH,QAAA,IAAM,CAAA,MAAA,GAAsB,EAAE,CAAC;CAE/B;;CAEG;CACH,QAAA,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;CAEhB;;CAEG;CACH,QAAA,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;CAEhB;;CAEG;CACH,QAAA,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC;CAEd;;CAEG;CACH,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;CAsClB;;CAEG;CACO,QAAA,IAAA,CAAA,KAAK,GAAkB,CAAC,EAAE,CAAC,CAAC;CAEtC;;;CAGG;CACO,QAAA,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;CAG7B,QAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,KAAK,EAAE,CAAC;MAC1C;CAvJD,IAAA,MAAA,CAAA,cAAA,CAAI,UAAI,CAAA,SAAA,EAAA,MAAA,EAAA;CAsCR;;;;;CAKG;CACH,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,KAAK,CAAC;UAClB;CAnDD;;;;CAIG;CACH,QAAA,GAAA,EAAA,UAAS,OAAsB,EAAA;CAC9B,YAAA,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,EAAG;CAClE,gBAAA,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;CACf,aAAA;CAED,YAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;;CAGrB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAU,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CACtE,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,KAAK,CAAU,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;CAGtE,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;CAGxD,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,KAAK,CAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;CAGtD,YAAA,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;CACrG,gBAAA,IAAI,MAAM,GAAG,IAAI,KAAK,EAAmB,CAAC;CAC1C,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CAC9C,oBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;CACnC,iBAAA;CACD,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;CACrB,aAAA;CAED,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;UACvB;;;CAAA,KAAA,CAAA,CAAA;CAyFD,IAAA,MAAA,CAAA,cAAA,CAAI,UAAe,CAAA,SAAA,EAAA,iBAAA,EAAA;CAKnB;;CAEG;CACH,QAAA,GAAA,EAAA,YAAA;;aAEC,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAAE;iBACjE,OAAO,IAAI,CAAC,gBAAgB,CAAC;CAC7B,aAAA;;aAGD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;CACrE,gBAAA,OAAO,CAAC,CAAC;CACT,aAAA;CAED,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;UACxB;CA7BD;;;;;;;;CAQG;CACH,QAAA,GAAA,EAAA,UAAoB,MAAc,EAAA;;CAEjC,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;UACtD;;;CAAA,KAAA,CAAA,CAAA;CAkCD;;;;;CAKG;CACH,IAAA,UAAA,CAAA,SAAA,CAAA,KAAK,GAAL,UAAM,MAAkB,EAAE,GAAO,EAAA;CAAP,QAAA,IAAA,GAAA,KAAA,KAAA,CAAA,EAAA,EAAA,GAAO,GAAA,CAAA,CAAA,EAAA;SAChC,OAAO,eAAA,GAAgB,GAAG,GAAI,GAAA,GAAA,MAAM,SAAI,IAAI,CAAC,eAAiB,CAAC;MAC/D,CAAA;CAED;;;;;CAKG;CACH,IAAA,UAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,MAAkB,EAAE,OAAW,EAAA;CAAX,QAAA,IAAA,OAAA,KAAA,KAAA,CAAA,EAAA,EAAA,OAAW,GAAA,CAAA,CAAA,EAAA;CAC1C,QAAA,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE;CAC/C,YAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CAC1B,SAAA;SAED,IAAI,GAAG,GAAG,EAAE,CAAC;SACb,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;CACjC,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;iBACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;CACjC,oBAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC5B,iBAAA;iBACD,MAAM;CACN,aAAA;CACD,SAAA;CAED,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;MACrB,CAAA;CAED;;;;CAIG;KACH,UAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,MAAc,EAAA;CACvB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;CACjB,YAAA,OAAO,IAAI,CAAC;CACZ,SAAA;SAED,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;aACjC,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAClC,YAAA,IAAI,UAAU,EAAE;CACf,gBAAA,OAAO,UAAU,CAAC;CAClB,aAAA;CACD,SAAA;CAED,QAAA,OAAO,IAAI,CAAC;MACZ,CAAA;CAED;;CAEG;CACH,IAAA,UAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;SACC,IAAI,KAAK,GAAG,CAAC,CAAC;SACd,IAAI,IAAI,CAAC,YAAY,EAAE;CACtB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAA,WAAW,EAAA;CACpC,gBAAA,IAAI,WAAW,EAAE;CAChB,oBAAA,KAAK,EAAE,CAAC;CACR,iBAAA;CACF,aAAC,CAAC,CAAC;CACH,SAAA;CACD,QAAA,OAAO,KAAK,CAAC;MACb,CAAA;CAED;;CAEG;CACH,IAAA,UAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;SACC,IAAI,KAAK,GAAG,CAAC,CAAC;SACd,IAAI,IAAI,CAAC,YAAY,EAAE;CACtB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAA,WAAW,EAAA;CACpC,gBAAA,IAAI,WAAW,EAAE;CAChB,oBAAA,KAAK,EAAE,CAAC;CACR,iBAAA;CACF,aAAC,CAAC,CAAC;CACH,SAAA;CACD,QAAA,OAAO,KAAK,CAAC;MACb,CAAA;CAED;;;;;;CAMG;KACH,UAAG,CAAA,SAAA,CAAA,GAAA,GAAH,UAAI,KAAa,EAAA;SAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;MAC3C,CAAA;CAED;;;;;;;;;;;;;;CAcG;CACH,IAAA,UAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,GAAiB,EAAE,KAAc,EAAA;;SAEvC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;CACtE,YAAA,IAAI,OAAO,GAAG,IAAI,KAAK,EAAoB,CAAC;CAC5C,YAAA,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;CAC5C,YAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;aAEpB,OAAO;CACP,SAAA;SAED,IAAI,OAAO,GAAG,GAAG,CAAC;SAClB,IAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SAExC,IAAI,GAAG,IAAI,IAAI,EAAE;CAChB,YAAA,OAAO,GAAG,IAAI,KAAK,EAAa,CAAC;aACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;CACrC,gBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;CAC9B,aAAA;CACD,SAAA;CAED,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE;;CAEjC,YAAA,IAAM,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;aAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;CACpC,gBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;CAC9B,aAAA;CACD,SAAA;CAAM,aAAA,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,EAAE;;aAExC,IAAI,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;aACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;iBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;CACxC,aAAA;;CAED,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;iBAC1C,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC9B,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;iBAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;CACpC,oBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;CACjC,iBAAA;CACD,aAAA;CACD,SAAA;SAED,IAAI,KAAK,IAAI,IAAI,EAAE;CAClB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;CAGxB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;CAG9B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;CAG9B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;CAGjC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;CAC/B,SAAA;CAAM,aAAA;aACN,IAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;;aAGjC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;;aAGvC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;;aAGvC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;;aAG1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;CACxC,SAAA;CAED,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;MACvB,CAAA;CAED;;;;;;CAMG;KACH,UAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,KAAa,EAAA;SACtB,IAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SACrC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SACzB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SACjC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SACjC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SAChC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CAE9B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;MACvB,CAAA;CAED,IAAA,UAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAA,IAAI,EAAI,EAAA,OAAA,IAAI,CAAC,IAAI,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,IAAI,CAAC,CAAC,YAAY,CAAA,EAAA,CAAC,CAAnC,EAAmC,CAAC,CAAC;MACnE,CAAA;KAED,UAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,KAAa,EAAA;SAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,IAAI,CAAC,CAAC,YAAY,CAAA,EAAA,CAAC,CAAC;MACvD,CAAA;KAED,UAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAa,EAAA;CAC1B,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;MAChC,CAAA;KAED,UAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAa,EAAA;CAC1B,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;MAC/B,CAAA;CAED;;;;;;CAMG;KACH,UAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,KAAa,EAAA;CACnB,QAAA,IAAI,MAAM,GAAG,IAAI,KAAK,EAAa,CAAC;SACpC,IAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;CACvC,QAAA,IAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;aAC5B,IAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACzB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;CACrB,SAAA;CAED,QAAA,OAAO,MAAM,CAAC;MACd,CAAA;CAED;;;;;;;;;;;;;;CAcG;CACH,IAAA,UAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,MAAoB,EAAE,KAAc,EAAA;;SAE7C,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;CACtE,YAAA,IAAI,OAAO,GAAG,IAAI,KAAK,EAAoB,CAAC;aAC5C,IAAI,MAAM,IAAI,IAAI,EAAE;iBACnB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC;CAChC,aAAA;CAAM,iBAAA;CACN,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACvC,oBAAA,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;CACrB,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;CACrB,iBAAA;CACD,aAAA;CACD,YAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;aAEpB,OAAO;CACP,SAAA;SAED,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;;CAGrC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;aAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;CACd,SAAA;CACD,QAAA,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SACtB,IAAI,KAAK,IAAI,IAAI,EAAE;;aAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;iBAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACvB,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5E,aAAA;;CAED,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;iBAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;CACxC,aAAA;CACD,SAAA;CAAM,aAAA;aACN,IAAI,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;;CAEjC,gBAAA,EAAE,EAAE,CAAC;CACL,aAAA;;aAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;iBAC5B,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACvB,gBAAA,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CACrF,aAAA;;CAED,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;CAC7C,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,EAAE,IAAI,eAAe,EAAE,CAAC,CAAC;CACjD,aAAA;CACD,SAAA;CAED,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;MACvB,CAAA;CAED;;;;;;CAMG;KACH,UAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAa,EAAA;SACzB,IAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;CACxC,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;SAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;CAClC,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CAC5B,SAAA;;CAED,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;aAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CAC3B,SAAA;CAED,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;MACvB,CAAA;CAED,IAAA,UAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,SAAiB,EAAE,OAAe,EAAA;SAC5C,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;CAE1C,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAAC;CAChD,QAAA,IAAI,CAAC,YAAY,CAAC,SAAS,IAAI,OAAO,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAE7D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;MACnE,CAAA;CAED;;;;;;;CAOG;KACH,UAAI,CAAA,SAAA,CAAA,IAAA,GAAJ,UAAK,KAAa,EAAA;SAAlB,IAMC,KAAA,GAAA,IAAA,CAAA;SALA,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA,EAAK,OAAA,CAAC,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;SACpH,IAAI,CAAC,wBAAwB,EAAE,CAAC;CAChC,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,MAAM,GAAG,KAAK,CAArB,EAAqB,CAAC,CAAC;SACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;MACjC,CAAA;CAED;;;;;;;;CAQG;CACH,IAAA,UAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvB,YAAA;CACC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CAC1C,YAAA,IAAM,eAAe,GAAG,IAAI,SAAS,EAAE,CAAC;aACxC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;CAEnC,YAAA,IAAM,eAAe,GAAG,IAAI,SAAS,EAAE,CAAC;aACxC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;CAEnC,YAAA,IAAM,UAAU,GAAG,IAAI,SAAS,EAAE,CAAC;aACnC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CAE9B,YAAA,IAAM,QAAQ,GAAG,IAAI,SAAS,EAAE,CAAC;aACjC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAClC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;CAC5B,SAAA;MACD,CAAA;CAED;;;;;CAKG;CACH,IAAA,UAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;CACC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CAC1C,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;CAC5C,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;CAC9C,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;CACjD,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;CACjD,SAAA;MACD,CAAA;CAED;;;;;CAKG;KACH,UAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAa,EAAA;SAA3B,IAGC,KAAA,GAAA,IAAA,CAAA;SAFA,IAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CAC3C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,IAAI,EAAE,CAAC,EAAK,EAAA,OAAA,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAA3C,EAA2C,CAAC,CAAC;MAClF,CAAA;CAED;;;;;CAKG;CACH,IAAA,UAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,KAAa,EAAE,KAAY,EAAA;CAAZ,QAAA,IAAA,KAAA,KAAA,KAAA,CAAA,EAAA,EAAA,KAAY,GAAA,IAAA,CAAA,EAAA;CACpC,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;aAC9B,OAAO;CACP,SAAA;CACD,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;CACjC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MACpC,CAAA;CAED;;;;CAIG;KACH,UAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,KAAY,EAAA;CAAZ,QAAA,IAAA,KAAA,KAAA,KAAA,CAAA,EAAA,EAAA,KAAY,GAAA,IAAA,CAAA,EAAA;CACrB,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;CACtD,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CAClD,gBAAA,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;CACzB,aAAA;CACD,SAAA;CACD,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MACjC,CAAA;KAED,UAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAa,EAAA;CAC1B,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;MAChC,CAAA;CAED;;CAEG;KACH,UAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAa,EAAA;SAC1B,IAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAa,CAAC;CACzC,QAAA,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;MACtB,CAAA;CAED;;;;;CAKG;CACH,IAAA,UAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,KAAa,EAAE,KAAY,EAAA;CAAZ,QAAA,IAAA,KAAA,KAAA,KAAA,CAAA,EAAA,EAAA,KAAY,GAAA,IAAA,CAAA,EAAA;CACpC,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;CACjC,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MACpC,CAAA;CAED;;;;;;CAMG;KACO,UAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAa,EAAA;CACnC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;MAC/C,CAAA;CAED;;;;;;CAMG;KACO,UAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,KAAa,EAAA;CACtC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;MAClD,CAAA;CAED;;;;;;CAMG;CACO,IAAA,UAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,KAAa,EAAE,MAAc,EAAA;SAChD,IAAI,KAAK,IAAI,IAAI,EAAE;aAClB,OAAO,MAAM,GAAG,CAAC,CAAC;CAClB,SAAA;cAAM,IAAI,KAAK,IAAI,CAAC,EAAE;CACtB,YAAA,OAAO,KAAK,IAAI,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;CAC5C,SAAA;CAAM,aAAA;CACN,YAAA,OAAO,CAAC,KAAK,IAAI,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;CAC7C,SAAA;MACD,CAAA;;;CArpBD;;CAEG;CACc,UAAK,CAAA,KAAA,GAAG,CAAC;;CCd3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CG;AACH,KAAA,wBAAA,kBAAA,YAAA;CAmDC;;;;;;CAMG;CACH,IAAA,SAAA,wBAAA,CACW,mBAA8C,EAC9C,gBAAwC,EACxC,YAA0B,EAAA;CAF1B,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAA2B;CAC9C,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAwB;CACxC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;CA/CrC;;CAEG;CACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAIC,oBAAe,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACzE;;CAEG;CACO,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIA,oBAAe,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SA0C3E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;SAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;CACrD,QAAA,IAAI,CAAC,QAAQ,GAAGC,kBAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAACC,aAAG,CAAC,UAAA,SAAS,EAAA;aAC1E,IAAA,EAAA,GAAA,MAAgB,CAAA,SAAS,EAAA,CAAA,CAAA,EAAxB,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,MAAM,GAAA,EAAA,CAAA,CAAA,CAAa,CAAC;aAChC,OAAO;iBACN,OAAO,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;iBACtC,QAAQ,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;cACzC,CAAC;UACF,CAAC,CAAiC,CAAC;CACpC,QAAA,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;CACxE,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;MAClE;CAhDD,IAAA,MAAA,CAAA,cAAA,CAAc,wBAAU,CAAA,SAAA,EAAA,YAAA,EAAA;CAHxB;;CAEG;CACH,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;UAC1C;;;CAAA,KAAA,CAAA,CAAA;CAKD,IAAA,MAAA,CAAA,cAAA,CAAc,wBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;CAH3B;;CAEG;CACH,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC;UAC7C;;;CAAA,KAAA,CAAA,CAAA;CAKD,IAAA,MAAA,CAAA,cAAA,CAAc,wBAAU,CAAA,SAAA,EAAA,YAAA,EAAA;CAHxB;;CAEG;CACH,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;UACzC;;;CAAA,KAAA,CAAA,CAAA;CAKD,IAAA,MAAA,CAAA,cAAA,CAAc,wBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;CAHrB;;CAEG;CACH,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;UACtC;;;CAAA,KAAA,CAAA,CAAA;CA2BD;;;;;;;;CAQG;KACH,wBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,KAAoB,EAAA;CACvC,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACnF,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;SACnE,IAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;SAE7D,QAAQ,KAAK,CAAC,GAAG;CAChB,YAAA,KAAK,YAAY;iBAChB,KAAK,CAAC,cAAc,EAAE,CAAC;;;;iBAIvB,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;iBACrD,MAAM;CACP,YAAA,KAAK,WAAW;iBACf,KAAK,CAAC,cAAc,EAAE,CAAC;;;CAGvB,gBAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;iBACnC,MAAM;CACP,YAAA,KAAK,WAAW;iBACf,KAAK,CAAC,cAAc,EAAE,CAAC;iBACvB,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;iBAC/C,MAAM;CACP,YAAA,KAAK,SAAS;iBACb,KAAK,CAAC,cAAc,EAAE,CAAC;CACvB,gBAAA,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;iBAC7B,MAAM;CACP,YAAA,KAAK,MAAM;iBACV,KAAK,CAAC,cAAc,EAAE,CAAC;iBACvB,IAAI,KAAK,CAAC,OAAO,EAAE;CAClB,oBAAA,IAAI,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC,CAAC;CAC/B,iBAAA;CAAM,qBAAA;CACN,oBAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CACnB,iBAAA;iBACD,MAAM;CACP,YAAA,KAAK,KAAK;iBACT,KAAK,CAAC,cAAc,EAAE,CAAC;iBACvB,IAAI,KAAK,CAAC,OAAO,EAAE;CAClB,oBAAA,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;CAC1D,iBAAA;CAAM,qBAAA;CACN,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CACjC,iBAAA;iBACD,MAAM;CACP,SAAA;MACD,CAAA;CAED;;;;CAIG;KACH,wBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAiB,EAAA;SACjC,IAAM,IAAI,GAAI,KAAK,CAAC,MAAsB,CAAC,OAAO,CAAC,QAAQ,CAAyB,CAAC;CAC/E,QAAA,IAAA,KAAA,MAAwB,CAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,IAAA,EAAxD,QAAQ,QAAA,EAAE,SAAS,QAAqC,CAAC;CAChE,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;MAChD,CAAA;CAED;;;;CAIG;KACH,wBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;SACvB,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,IAAI,KAAK,GAAG,CAAC,EAAE;aAAE,OAAO;CAAE,SAAA;CACrD,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;MAClD,CAAA;CAED;;;;CAIG;KACH,wBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,KAAa,EAAA;SACpB,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,GAAG,CAAC,EAAE;aAAE,OAAO;CAAE,SAAA;CAClD,QAAA,IAAI,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,EAAC,CAAC,CAAC;MACpD,CAAA;CAED;;;;CAIG;KACH,wBAAI,CAAA,SAAA,CAAA,IAAA,GAAJ,UAAK,EAAa,EAAA;aAAZ,GAAG,GAAA,EAAA,CAAA,GAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAA,CAAA;CAChB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;CAClE,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;MAC3E,CAAA;CAED;;;CAGG;KACH,wBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,WAAgB,EAAA;;SAAhB,IAAA,WAAA,KAAA,KAAA,CAAA,EAAA,EAAA,eAAe,CAAC,CAAA,EAAA;CAC/B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE;aACxD,IAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAwB,CAAC;;CAC/D,gBAAA,KAAmB,IAAA,EAAA,IAAA,GAAA,GAAA,KAAA,CAAA,EAAA,QAAA,CAAA,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;CAArC,oBAAA,IAAM,IAAI,GAAA,EAAA,CAAA,KAAA,CAAA;qBACd,IAAM,gBAAgB,GAAGC,0BAAmB,CAAC,IAAI,EAAEC,qCAA8B,CAAC,CAAC;CACnF,oBAAA,gBAAgB,CAAC,OAAO,CAAC,UAAC,IAAiB,EAAK,EAAA,OAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAA3B,EAA2B,CAAC,CAAC;CAC7E,oBAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;CAC5B,iBAAA;;;;;;;;;CACD,SAAA;SAED,IAAI,CAAC,KAAK,EAAE,CAAC;MACb,CAAA;CAED;;CAEG;CACH,IAAA,wBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;CACC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACnD,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;MACtD,CAAA;KACD,OAAA,wBAAA,CAAA;CAAA,CAAA,EAAA;;CCtQD;;CAEG;AACH,KAAA,gBAAA,kBAAA,YAAA;CAAA,IAAA,SAAA,gBAAA,GAAA;MAaC;KAAA,OAAA,gBAAA,CAAA;CAAA,CAAA,EAAA,EAAA;CAED;;CAEG;AACH,KAAA,eAAA,kBAAA,YAAA;CAAA,IAAA,SAAA,eAAA,GAAA;MASC;KAAA,OAAA,eAAA,CAAA;CAAA,CAAA,EAAA,EAAA;CAED;;;CAGG;AACH,KAAA,YAAA,kBAAA,YAAA;CAAA,IAAA,SAAA,YAAA,GAAA;MAsDC;CAlDA,IAAA,MAAA,CAAA,cAAA,CAAW,YAAe,CAAA,SAAA,EAAA,iBAAA,EAAA;CAH1B;;CAEG;cACH,YAAuC,EAAA,OAAO,EAAE;;;CAAA,KAAA,CAAA,CAAA;CAKhD,IAAA,MAAA,CAAA,cAAA,CAAW,YAAY,CAAA,SAAA,EAAA,cAAA,EAAA;CAHvB;;CAEG;cACH,YAAoC,EAAA,OAAO,EAAE;;;CAAA,KAAA,CAAA,CAAA;CAE7C;;;;;CAKG;KACH,YAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,GAAW,EAAE,MAAc,EAAsB,EAAA,OAAO,EAAE,CAAA;CAElE;;;;CAIG;CACH,IAAA,YAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,MAAc,EAAwB,EAAA,OAAO,EAAE,CAAA;CAEzD;;;;CAIG;CACH,IAAA,YAAA,CAAA,SAAA,CAAA,MAAM,GAAN,UAAO,GAAW,EAAqB,EAAA,OAAO,EAAE,CAAA;CAEhD;;;;CAIG;CACH,IAAA,YAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,IAAsB,EAAY,EAAA,OAAO,EAAE,CAAA;CAE3D;;;;CAIG;CACH,IAAA,YAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,UAAa,IAAsB,EAAY,EAAA,OAAO,EAAE,CAAA;CAExD;;;;;CAKG;CACH,IAAA,YAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,IAAsB,EAAsB,EAAA,OAAO,EAAE,CAAA;KAC/D,OAAA,YAAA,CAAA;CAAA,CAAA,EAAA,EAAA;CAED,IAAK,qBAGJ,CAAA;CAHD,CAAA,UAAK,qBAAqB,EAAA;CACzB,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;CACnB,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;CACpB,CAAC,EAHI,qBAAqB,KAArB,qBAAqB,GAGzB,EAAA,CAAA,CAAA,CAAA;CAED;;;;CAIG;AACH,KAAA,eAAA,kBAAA,YAAA;CAeC;;;;;;;CAOG;CACH,IAAA,SAAA,eAAA,CAAmB,YAA8B,EAAA;CAA9B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAkB;MAAK;CAnBtD,IAAA,MAAA,CAAA,cAAA,CAAW,eAAe,CAAA,SAAA,EAAA,iBAAA,EAAA;CAH1B;;CAEG;CACH,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;UACxD;;;CAAA,KAAA,CAAA,CAAA;CAKD,IAAA,MAAA,CAAA,cAAA,CAAW,eAAY,CAAA,SAAA,EAAA,cAAA,EAAA;CAHvB;;CAEG;CACH,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;UACzC;;;CAAA,KAAA,CAAA,CAAA;CAYD;;;;;CAKG;CACH,IAAA,eAAA,CAAA,SAAA,CAAA,OAAO,GAAP,UAAQ,GAAW,EAAE,MAAc,EAAA;SAClC,IAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SAEnC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;MAC5C,CAAA;CAED;;;;;;CAMG;KACH,eAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,MAAc,EAAA;CACvB,QAAA,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CAE1D,QAAA,IAAA,EAA+C,GAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,EAA9E,MAAM,GAAA,EAAA,CAAA,IAAA,EAAa,eAAe,eAA4C,CAAC;SAE7F,IAAM,WAAW,GAA2B,EAAE,CAAC;CAE/C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;aACvD,IAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;CAItC,YAAA,IAAM,cAAc,GAAqC,GAAG,CAAC,gBAAgB,CAAC,aAAc,GAAA,MAAM,CAAC,EAAE,GAAI,IAAA,CAAC,CAAC;;CAE3G,YAAA,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;CACtB,gBAAA,IAAA,IAAI,GAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC,KAA7E,CAA8E;CAC1F,gBAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACvB,aAAA;CAAM,iBAAA,IAAI,cAAc,CAAC,CAAC,CAAC,EAAE;iBAC7B,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CACpC,aAAA;CACD,SAAA;;;SAID,IAAI,CAAC,WAAW,EAAE;CACjB,YAAA,OAAO,EAAE,CAAC;CACV,SAAA;SAED,OAAQ,aAAA,CAAA,CAAA,MAAM,CAAK,EAAA,MAAA,CAAA,WAAW,CAAE,CAAA,CAAA;MAChC,CAAA;CAED;;;;CAIG;KACH,eAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,GAAW,EAAA;SACjB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;MACnC,CAAA;CAED;;;;CAIG;KACH,eAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,IAA0B,EAAA;;CACzC,QAAA,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;SACjD,IAAI,CAAC,GAAG,EAAE;aACT,OAAO;CACP,SAAA;;CAED,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;aACzB,IAAM,KAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;CACpC,YAAA,IAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC5D,IAAM,OAAO,GAAG,EAAE,CAAC;;;iBAGnB,KAAwB,IAAA,KAAA,QAAA,CAAA,UAAU,CAAC,OAAO,EAAE,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;CAAzC,oBAAA,IAAM,SAAS,GAAA,EAAA,CAAA,KAAA,CAAA;qBACnB,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;qBAChD,IAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,UAAA,UAAU,EAAI,EAAA,OAAA,KAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA,EAAA,CAAC,CAAC;;CAE3E,oBAAA,IAAI,MAAM,EAAE;;yBAEX,IAAI,WAAS,GAAG,CAAC,CAAC;;CAClB,4BAAA,KAAgB,IAAA,aAAA,IAAA,GAAA,GAAA,KAAA,CAAA,EAAA,QAAA,CAAA,WAAW,CAAA,CAAA,wCAAA,EAAE,CAAA,eAAA,CAAA,IAAA,EAAA,eAAA,GAAA,aAAA,CAAA,IAAA,EAAA,EAAA;CAAxB,gCAAA,IAAM,CAAC,GAAA,eAAA,CAAA,KAAA,CAAA;iCACX,IAAI,CAAC,KAAK,MAAM,EAAE;qCAAE,MAAM;CAAE,iCAAA;CAC5B,gCAAA,WAAS,IAAI,CAAC,CAAC,OAAO,CAAC;CACvB,6BAAA;;;;;;;;;CACD,wBAAA,OAAO,CAAC,IAAI,CAAC,WAAS,CAAC,CAAC;CACxB,qBAAA;CACD,iBAAA;;;;;;;;;;aAGD,IAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,CAAA,EAAA,CAAC,CAAC,CAAC,CAAC,CAAC;;aAGpD,IAAI,YAAY,GAAG,EAAE,CAAC;;CACtB,gBAAA,KAAiB,IAAA,KAAA,GAAA,QAAA,CAAA,KAAG,CAAA,wBAAA,EAAE,CAAA,OAAA,CAAA,IAAA,EAAA,OAAA,GAAA,KAAA,CAAA,IAAA,EAAA,EAAA;CAAjB,oBAAA,IAAM,EAAE,GAAA,OAAA,CAAA,KAAA,CAAA;;;CAGZ,oBAAA,IAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,aAAc,GAAA,EAAE,GAAI,IAAA,CAAC,CAAC,CAAC;;CACxE,wBAAA,KAAsB,IAAA,UAAA,IAAA,GAAA,GAAA,KAAA,CAAA,EAAA,QAAA,CAAA,QAAQ,CAAA,CAAA,kCAAA,EAAE,CAAA,YAAA,CAAA,IAAA,EAAA,YAAA,GAAA,UAAA,CAAA,IAAA,EAAA,EAAA;CAA3B,4BAAA,IAAM,OAAO,GAAA,YAAA,CAAA,KAAA,CAAA;;CAEjB,4BAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;CACpC,gCAAA,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;CAC3B,6BAAA;CACD,yBAAA;;;;;;;;;CACD,iBAAA;;;;;;;;;;aAGD,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,UAAC,CAAuB,EAAE,CAAuB,EAAA,EAAK,OAAA,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAA,EAAA,CAAC,CAAC;;aAGlH,OAAO,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C,SAAA;;SAGD,IAAI,SAAS,GAAG,CAAC,CAAC;;CAClB,YAAA,KAAgB,IAAA,EAAA,GAAA,QAAA,CAAA,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;CAAlC,gBAAA,IAAM,CAAC,GAAA,EAAA,CAAA,KAAA,CAAA;iBACX,IAAI,CAAC,KAAK,IAAI,EAAE;qBAAE,MAAM;CAAE,iBAAA;CAC1B,gBAAA,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC;CACvB,aAAA;;;;;;;;;CACD,QAAA,OAAO,SAAS,CAAC;MACjB,CAAA;CAED;;;;CAIG;KACH,eAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,IAA0B,EAAA;;;CACtC,YAAA,KAAkB,IAAA,EAAA,GAAA,QAAA,CAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;CAAjD,gBAAA,IAAM,GAAG,GAAA,EAAA,CAAA,KAAA,CAAA;CACb,gBAAA,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;qBACvB,OAAO,GAAG,CAAC,QAAQ,CAAC;CACpB,iBAAA;CACD,aAAA;;;;;;;;;MACD,CAAA;CAED;;;;;CAKG;KACH,eAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,IAA0B,EAAA;CACnC,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;MAC7D,CAAA;CAED;;;;;;;CAOG;KACO,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,GAAwB,EAAA;;CAElD,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,IAAI,EAAA,EAAK,OAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAApB,EAAoB,EAAE,CAAC,CAAC,CAAC,CAAC;MAC/E,CAAA;CAED;;;;;;CAMG;CACO,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,KAA6B,EAAE,WAAmB,EAAE,aAAoC,EAAA;;;;SAI1G,IAAI,SAAS,GAAG,CAAC,CAAC;;SAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG;;aAEjC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;;aAErC,IAAI,CAAC,GAAG,WAAW,EAAE;iBAAE,MAAM;CAAE,aAAA;;CAE/B,YAAA,SAAS,EAAE,CAAC;CACZ,SAAA;SAED,OAAO;CACN,YAAA,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;CACtB,YAAA,SAAS,EAAA,SAAA;UACT,CAAC;MACF,CAAA;CAED;;;;;CAKG;CACO,IAAA,eAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,GAA2B,EAAE,KAAa,EAAA;CACjE,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;MAChE,CAAA;CAED;;;;;CAKG;CACO,IAAA,eAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,GAA2B,EAAE,KAAa,EAAA;CACpE,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC;MAChE,CAAA;KACD,OAAA,eAAA,CAAA;CAAA,CAAA,EAAA;;AClUD,KAAA,eAAA,kBAAA,YAAA;CAPA,IAAA,SAAA,eAAA,GAAA;CAQyC,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;MACzD;;;oIAFY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAf,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAf,eAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAJjB,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,qCAET,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;mHAEW,eAAe,EAAA,UAAA,EAAA,CAAA;mBAP3BG,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;;CAEV,oBAAA,QAAQ,EAAE,sBAAsB;CAChC,oBAAA,QAAQ,EAAE,qCAET;kBACD,CAAA;+BAEwC,SAAS,EAAA,CAAA;uBAAhDK,cAAW;wBAAC,yBAAyB,CAAA;;;ACgBvC,KAAA,iBAAA,kBAAA,YAAA;CA8BC,IAAA,SAAA,iBAAA,CAAsB,IAAU,EAAA;CAAV,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;CA5BhC;;CAEG;CACM,QAAA,IAAI,CAAA,IAAA,GAAiB,IAAI,CAAC;CAE1B,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;CAEhB,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;CAEtB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;SAEjB,IAAA,CAAA,IAAI,GAAG,aAAA,GAAc,iBAAiB,CAAC,mBAAmB,EAAI,CAAC;CAW9D,QAAA,IAAA,CAAA,MAAM,GAAG,IAAIV,eAAY,EAAQ,CAAC;CAEK,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;SAExD,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;MAEpC;CAfrC,IAAA,MAAA,CAAA,cAAA,CACI,iBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;CAIb,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;UAC7B;CAPD,QAAA,GAAA,EAAA,UACc,KAAkC,EAAA;CAC/C,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAChC;;;CAAA,KAAA,CAAA,CAAA;CAcD,IAAA,iBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;MAC/B,CAAA;;;CAjCc,iBAAmB,CAAA,mBAAA,GAAG,CAAC,CAAC;sIAD3B,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAjB,iBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAfnB,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kCAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,qRAUT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,eAAA,CAAA,QAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,IAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,EAAA,CAAA,CAAA;mHAKW,iBAAiB,EAAA,UAAA,EAAA,CAAA;mBAlB7BC,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;;CAEV,oBAAA,QAAQ,EAAE,wBAAwB;CAClC,oBAAA,QAAQ,EAAE,qRAUT;qBACD,MAAM,EAAE,CAAC,wCAEL,CAAC;kBACL,CAAA;uGAMS,IAAI,EAAA,CAAA;uBAAZC,QAAK;iBAEG,OAAO,EAAA,CAAA;uBAAfA,QAAK;iBAEG,aAAa,EAAA,CAAA;uBAArBA,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAEG,IAAI,EAAA,CAAA;uBAAZA,QAAK;iBAGF,SAAS,EAAA,CAAA;uBADZA,QAAK;iBASI,MAAM,EAAA,CAAA;uBAAfC,SAAM;iBAE0C,SAAS,EAAA,CAAA;uBAAzDG,cAAW;wBAAC,kCAAkC,CAAA;;;AC7ChD,KAAA,kBAAA,kBAAA,YAAA;CALA,IAAA,SAAA,kBAAA,GAAA;CAM+C,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;MAC/D;;;uIAFY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAR,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gHAAlB,kBAAkB,EAAA,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,+BAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;mBAL9BS,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,yBAAyB;kBACnC,CAAA;+BAI8C,SAAS,EAAA,CAAA;uBAAtDD,cAAW;wBAAC,+BAA+B,CAAA;;;ACkE7C,KAAA,aAAA,kBAAA,YAAA;CA6CC,IAAA,SAAA,aAAA,CAAsB,IAAU,EAAA;CAAV,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;CA1CvB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAEjB,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;CA6BzB;;CAEG;CACO,QAAA,IAAA,CAAA,IAAI,GAAG,IAAIV,eAAY,EAAE,CAAC;CAED,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;SAE7C,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;SACzE,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;SACvE,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;MAE7B;CAtCrC,IAAA,MAAA,CAAA,cAAA,CACI,aAAmB,CAAA,SAAA,EAAA,qBAAA,EAAA;CAIvB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;UACvC;CAPD,QAAA,GAAA,EAAA,UACwB,KAAkC,EAAA;CACzD,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAC1C;;;CAAA,KAAA,CAAA,CAAA;CAMD,IAAA,MAAA,CAAA,cAAA,CACI,aAAkB,CAAA,SAAA,EAAA,oBAAA,EAAA;CAItB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;UACtC;CAPD,QAAA,GAAA,EAAA,UACuB,KAAkC,EAAA;CACxD,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UACzC;;;CAAA,KAAA,CAAA,CAAA;CAMD,IAAA,MAAA,CAAA,cAAA,CACI,aAAW,CAAA,SAAA,EAAA,aAAA,EAAA;CAIf,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;UAC/B;CAPD,QAAA,GAAA,EAAA,UACgB,KAAkC,EAAA;CACjD,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAClC;;;CAAA,KAAA,CAAA,CAAA;CAmBD,IAAA,aAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;;;SAGC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;MAClF,CAAA;CAED,IAAA,aAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;MACnE,CAAA;CAED,IAAA,aAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;MAClE,CAAA;CAED,IAAA,aAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;CACC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;CACnB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;CACjB,SAAA;MACD,CAAA;CAES,IAAA,aAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;SAAA,IAUT,KAAA,GAAA,IAAA,CAAA;SATA,OAAOe,aAAG,CAAC,UAAC,GAAW,EAAA;CACtB,YAAA,IAAI,KAAI,CAAC,MAAM,CAAC,aAAa,EAAE;CAC9B,gBAAA,OAAO,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC;CACjC,aAAA;CACD,YAAA,IAAI,KAAI,CAAC,MAAM,CAAC,eAAe,EAAE;CAChC,gBAAA,OAAO,KAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,KAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;CACnE,aAAA;CACD,YAAA,OAAU,KAAI,CAAC,MAAM,CAAC,IAAI,GAAA,KAAA,GAAM,GAAK,CAAC;CACvC,SAAC,CAAC,CAAC;MACH,CAAA;;;kIA7EW,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAd,aAAA,CAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAb,aAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EA7Df,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,izEA2DT,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAe,kBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAAf,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,EAAA,CAAA,CAAA;mHAEW,aAAa,EAAA,UAAA,EAAA,CAAA;mBAhEzBE,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;;CAEV,oBAAA,QAAQ,EAAE,oBAAoB;CAC9B,oBAAA,QAAQ,EAAE,izEA2DT;kBACD,CAAA;uGAES,MAAM,EAAA,CAAA;uBAAdC,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAGF,mBAAmB,EAAA,CAAA;uBADtBA,QAAK;iBAUF,kBAAkB,EAAA,CAAA;uBADrBA,QAAK;iBAUF,WAAW,EAAA,CAAA;uBADdA,QAAK;iBAYI,IAAI,EAAA,CAAA;uBAAbC,SAAM;iBAE4B,WAAW,EAAA,CAAA;uBAA7CG,cAAW;wBAAC,oBAAoB,CAAA;;;CCtGlC;;;;;;;;CAQG;AAsEH,KAAA,SAAA,kBAAA,YAAA;CAsFC,IAAA,SAAA,SAAA,CAAsB,IAAU,EAAA;CAAV,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;CAnFvB,QAAA,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;CAE3B,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;CAE3B,QAAA,IAA6B,CAAA,6BAAA,GAAG,KAAK,CAAC;CAEtC,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;CAE1B,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAEjB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;CAE9B;;;CAGG;CACM,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;CAEzB;;CAEG;CACM,QAAA,IAAI,CAAA,IAAA,GAAiB,IAAI,CAAC;CAsCnC;;CAEG;CACO,QAAA,IAAA,CAAA,IAAI,GAAG,IAAIV,eAAY,EAAU,CAAC;CAC5C;;;;CAIG;CACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAIA,eAAY,EAAc,CAAC;CACrD;;;;CAIG;CACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAIA,eAAY,EAAc,CAAC;CAEhD,QAAA,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;SAEhB,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;SACzE,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;SACzE,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;SACvE,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;MAE9B;CA5DpC,IAAA,MAAA,CAAA,cAAA,CACI,SAAmB,CAAA,SAAA,EAAA,qBAAA,EAAA;CAIvB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;UACvC;CAPD,QAAA,GAAA,EAAA,UACwB,KAAkC,EAAA;CACzD,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAC1C;;;CAAA,KAAA,CAAA,CAAA;CAMD,IAAA,MAAA,CAAA,cAAA,CACI,SAAmB,CAAA,SAAA,EAAA,qBAAA,EAAA;CAIvB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;UACvC;CAPD,QAAA,GAAA,EAAA,UACwB,KAAkC,EAAA;CACzD,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAC1C;;;CAAA,KAAA,CAAA,CAAA;CAMD,IAAA,MAAA,CAAA,cAAA,CACI,SAAkB,CAAA,SAAA,EAAA,oBAAA,EAAA;CAItB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;UACtC;CAPD,QAAA,GAAA,EAAA,UACuB,KAAkC,EAAA;CACxD,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UACzC;;;CAAA,KAAA,CAAA,CAAA;CAMD,IAAA,MAAA,CAAA,cAAA,CACI,SAAW,CAAA,SAAA,EAAA,aAAA,EAAA;CAIf,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;UAC/B;CAPD,QAAA,GAAA,EAAA,UACgB,KAAkC,EAAA;CACjD,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAClC;;;CAAA,KAAA,CAAA,CAAA;CAgCD,IAAA,SAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;SAAA,IAIC,KAAA,GAAA,IAAA,CAAA;CAHA,QAAA,UAAU,CAAC,YAAA;CACV,YAAA,KAAI,CAAC,cAAc,GAAGmB,uBAAiB,EAAE,CAAC;CAC3C,SAAC,CAAC,CAAC;MACH,CAAA;CAED,IAAA,SAAA,CAAA,SAAA,CAAA,yBAAyB,GAAzB,YAAA;SACC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE;aACnE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CAChC,SAAA;CAAM,aAAA;aACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CAClC,SAAA;MACD,CAAA;CAED,IAAA,SAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;MACzC,CAAA;CAED,IAAA,SAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;MACzC,CAAA;CAED,IAAA,SAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;MACxC,CAAA;CAED,IAAA,SAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;MACjC,CAAA;;;8HApHW,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlB,aAAA,CAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAT,SAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,EAlEX,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,qmEA2DT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uEAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAkB,eAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,eAAA,EAAA,UAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;mHAOW,SAAS,EAAA,UAAA,EAAA,CAAA;mBArErBlB,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;;CAEV,oBAAA,QAAQ,EAAE,gBAAgB;CAC1B,oBAAA,QAAQ,EAAE,qmEA2DT;qBACD,MAAM,EAAE,CAAC,uEAIR,CAAC;kBACF,CAAA;uGAES,KAAK,EAAA,CAAA;uBAAbC,QAAK;iBAEG,mBAAmB,EAAA,CAAA;uBAA3BA,QAAK;iBAEG,kBAAkB,EAAA,CAAA;uBAA1BA,QAAK;iBAEG,6BAA6B,EAAA,CAAA;uBAArCA,QAAK;iBAEG,iBAAiB,EAAA,CAAA;uBAAzBA,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAEG,YAAY,EAAA,CAAA;uBAApBA,QAAK;iBAMG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAKG,IAAI,EAAA,CAAA;uBAAZA,QAAK;iBAGF,mBAAmB,EAAA,CAAA;uBADtBA,QAAK;iBAUF,mBAAmB,EAAA,CAAA;uBADtBA,QAAK;iBAUF,kBAAkB,EAAA,CAAA;uBADrBA,QAAK;iBAUF,WAAW,EAAA,CAAA;uBADdA,QAAK;iBAYI,IAAI,EAAA,CAAA;uBAAbC,SAAM;iBAMG,SAAS,EAAA,CAAA;uBAAlBA,SAAM;iBAMG,WAAW,EAAA,CAAA;uBAApBA,SAAM;;;AClJR,KAAA,iBAAA,kBAAA,YAAA;CAgCC,IAAA,SAAA,iBAAA,CAAsB,IAAU,EAAA;CAAV,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;CA/BhC;;CAEG;CACM,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAC1B;;;CAGG;CACM,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;CAWnB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAEc,QAAA,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;CAMjD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAIP,eAAY,EAAQ,CAAC;SAErC,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;MAElC;CArBrC,IAAA,MAAA,CAAA,cAAA,CACI,iBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;CAIb,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;UAC7B;CAPD,QAAA,GAAA,EAAA,UACc,KAAkC,EAAA;CAC/C,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAChC;;;CAAA,KAAA,CAAA,CAAA;CAUD,IAAA,MAAA,CAAA,cAAA,CAA6C,iBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;CAA1D,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,QAAQ,GAAG,WAAW,GAAG,IAAI,CAAC;UAC1C;;;CAAA,KAAA,CAAA,CAAA;CAQD,IAAA,iBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;MAC/B,CAAA;;;sIApCW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAjB,iBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAVnB,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,6RAQT,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,eAAA,CAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAAD,aAAA,CAAA,SAAA,EAAA,EAAA,CAAA,CAAA;mHAEW,iBAAiB,EAAA,UAAA,EAAA,CAAA;mBAb7BE,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;;CAEV,oBAAA,QAAQ,EAAE,wBAAwB;CAClC,oBAAA,QAAQ,EAAE,6RAQT;kBACD,CAAA;uGAKS,QAAQ,EAAA,CAAA;uBAAhBC,QAAK;iBAKG,UAAU,EAAA,CAAA;uBAAlBA,QAAK;iBAGF,SAAS,EAAA,CAAA;uBADZA,QAAK;iBASG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAEkC,WAAW,EAAA,CAAA;uBAAlDI,cAAW;wBAAC,yBAAyB,CAAA;iBAEO,aAAa,EAAA,CAAA;uBAAzDA,cAAW;wBAAC,0BAA0B,CAAA;iBAI7B,SAAS,EAAA,CAAA;uBAAlBH,SAAM;;;ACxBR,KAAA,aAAA,kBAAA,YAAA;CA8CC,IAAA,SAAA,aAAA,CAAsB,IAAU,EAAA;CAAV,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;CA3CvB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAEjB,QAAA,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;CAMnB;;CAEG;CACM,QAAA,IAAI,CAAA,IAAA,GAAiB,IAAI,CAAC;CAuB1B,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAE1B;;CAEG;CACO,QAAA,IAAA,CAAA,cAAc,GAAG,IAAIP,eAAY,EAAE,CAAC;SAEpC,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;MAE7B;CAvCrC,IAAA,MAAA,CAAA,cAAA,CAAI,aAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;CAAZ,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAE,IAAI,CAAC,GAAgB,CAAC,QAAQ,GAAG,KAAK,CAAC;UAC5D;;;CAAA,KAAA,CAAA,CAAA;CAOD,IAAA,MAAA,CAAA,cAAA,CACI,aAAK,CAAA,SAAA,EAAA,OAAA,EAAA;CAIT,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;UACzB;CAPD,QAAA,GAAA,EAAA,UACU,KAAkC,EAAA;CAC3C,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAC5B;;;CAAA,KAAA,CAAA,CAAA;KA6BD,aAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,GAAgB,EAAA;CACtC,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;CAC/B,YAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;CAC5C,SAAA;CACD,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC;MACtD,CAAA;CAED,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;MAC3B,CAAA;;;kIAzDW,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAb,aAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAZf,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,0TAUT,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,eAAA,CAAA,QAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,IAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,aAAA,EAAAH,aAAA,CAAA,WAAA,EAAA,EAAA,CAAA,CAAA;mHAEW,aAAa,EAAA,UAAA,EAAA,CAAA;mBAfzBI,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;;CAEV,oBAAA,QAAQ,EAAE,oBAAoB;CAC9B,oBAAA,QAAQ,EAAE,0TAUT;kBACD,CAAA;uGAES,GAAG,EAAA,CAAA;uBAAXC,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAEG,IAAI,EAAA,CAAA;uBAAZA,QAAK;iBASG,IAAI,EAAA,CAAA;uBAAZA,QAAK;iBAGF,KAAK,EAAA,CAAA;uBADRA,QAAK;iBAmBG,oBAAoB,EAAA,CAAA;uBAA5BA,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAKI,cAAc,EAAA,CAAA;uBAAvBC,SAAM;;;AC9CR,KAAA,UAAA,kBAAA,YAAA;CAmCC,IAAA,SAAA,UAAA,CAAsB,IAAU,EAAA;CAAV,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;CAhCvB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAuBjB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAE1B;;CAEG;CACO,QAAA,IAAA,CAAA,MAAM,GAAG,IAAIP,eAAY,EAAE,CAAC;SAE5B,IAAM,CAAA,MAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;MAE7B;CA9BrC,IAAA,MAAA,CAAA,cAAA,CACI,UAAK,CAAA,SAAA,EAAA,OAAA,EAAA;CAIT,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;UACzB;CAPD,QAAA,GAAA,EAAA,UACU,KAAkC,EAAA;CAC3C,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAC5B;;;CAAA,KAAA,CAAA,CAAA;KA6BD,UAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,GAAgB,EAAA;CACtC,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;CAC/B,YAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;CAC5C,SAAA;CACD,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC;MACtD,CAAA;CAED,IAAA,UAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;MAC3B,CAAA;;;+HA9CW,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAV,UAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAVZ,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,kTAQT,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,eAAA,CAAA,KAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,IAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,aAAA,EAAAH,aAAA,CAAA,WAAA,EAAA,EAAA,CAAA,CAAA;mHAEW,UAAU,EAAA,UAAA,EAAA,CAAA;mBAbtBI,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;;CAEV,oBAAA,QAAQ,EAAE,iBAAiB;CAC3B,oBAAA,QAAQ,EAAE,kTAQT;kBACD,CAAA;uGAES,GAAG,EAAA,CAAA;uBAAXC,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAGF,KAAK,EAAA,CAAA;uBADRA,QAAK;iBAmBG,oBAAoB,EAAA,CAAA;uBAA5BA,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAKI,MAAM,EAAA,CAAA;uBAAfC,SAAM;;;ACpCR,KAAA,SAAA,kBAAA,YAAA;CAZA,IAAA,SAAA,SAAA,GAAA;CAeU,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;MAC1B;;;8HAJY,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAL,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAT,SAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,EATX,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,iQAOT,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAD,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;mHAEW,SAAS,EAAA,UAAA,EAAA,CAAA;mBAZrBI,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;;CAEV,oBAAA,QAAQ,EAAE,gBAAgB;CAC1B,oBAAA,QAAQ,EAAE,iQAOT;kBACD,CAAA;+BAES,IAAI,EAAA,CAAA;uBAAZC,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;;;ACqEP,KAAA,iBAAA,kBAAA,YAAA;CAoHC,IAAA,SAAA,iBAAA,CAAsB,IAAU,EAAA;CAAV,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;CA5GvB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAEjB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;CAEnB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAE1B;;CAEG;CACM,QAAA,IAAI,CAAA,IAAA,GAAiB,IAAI,CAAC;CAEnC;;CAEG;CACM,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;CAoBpC;;CAEG;CACM,QAAA,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;CAEpC;;;CAGG;CACM,QAAA,IAA2B,CAAA,2BAAA,GAAG,IAAI,CAAC;CAcnC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAE1B;;CAEG;CACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAIN,eAAY,EAAE,CAAC;CAEzC;;CAEG;CACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAIA,eAAY,EAAE,CAAC;CAE3C;;CAEG;CACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAIA,eAAY,EAAE,CAAC;CAEzC;;;;CAIG;CACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIA,eAAY,EAAE,CAAC;SA0B9B,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;SAChE,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;MAE9C;CA5FrC,IAAA,MAAA,CAAA,cAAA,CACI,iBAAqB,CAAA,SAAA,EAAA,uBAAA,EAAA;CAIzB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;UACzC;CAPD,QAAA,GAAA,EAAA,UAC0B,KAAkC,EAAA;CAC3D,YAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAC5C;;;CAAA,KAAA,CAAA,CAAA;CAMD,IAAA,MAAA,CAAA,cAAA,CACI,iBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;CAIjB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;UACjC;CAPD,QAAA,GAAA,EAAA,UACkB,KAAkC,EAAA;CACnD,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UACpC;;;CAAA,KAAA,CAAA,CAAA;CAqDD,IAAA,MAAA,CAAA,cAAA,CAAoD,iBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;CAAjE,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,QAAQ,CAAC;UACrB;;;CAAA,KAAA,CAAA,CAAA;CAED,IAAA,MAAA,CAAA,cAAA,CAA0C,iBAAc,CAAA,SAAA,EAAA,gBAAA,EAAA;CAAxD,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,UAAU,CAAC;UACvB;;;CAAA,KAAA,CAAA,CAAA;CAED,IAAA,MAAA,CAAA,cAAA,CAA8C,iBAAkB,CAAA,SAAA,EAAA,oBAAA,EAAA;CAAhE,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,QAAQ,CAAC;UACrB;;;CAAA,KAAA,CAAA,CAAA;CAED,IAAA,MAAA,CAAA,cAAA,CAAgD,iBAAe,CAAA,SAAA,EAAA,iBAAA,EAAA;CAA/D,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,KAAK,CAAC;UACb;;;CAAA,KAAA,CAAA,CAAA;CAED,IAAA,MAAA,CAAA,cAAA,CAAyC,iBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;CAApD,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;UACrC;;;CAAA,KAAA,CAAA,CAAA;CAED,IAAA,MAAA,CAAA,cAAA,CAAkC,iBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;CAA9C,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC;UACvE;;;CAAA,KAAA,CAAA,CAAA;CAQD,IAAA,iBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;SACC,IAAI,IAAI,CAAC,kBAAkB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;aACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;CACzB,SAAA;MACD,CAAA;CAED,IAAA,iBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;CACC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;MACrB,CAAA;CAED,IAAA,iBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;SACC,IAAI,IAAI,CAAC,QAAQ,EAAE;CAClB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;CACxB,SAAA;CAAM,aAAA;CACN,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;CACtB,SAAA;MACD,CAAA;CAED,IAAA,iBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;MACnC,CAAA;CAED,IAAA,iBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;MAC3C,CAAA;;;sIA/IW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAjB,iBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAzEnB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,GAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iCAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,6BAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,uhFAuET,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAsB,iBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,UAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;mHAEW,iBAAiB,EAAA,UAAA,EAAA,CAAA;mBA5E7BvB,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;;CAEV,oBAAA,QAAQ,EAAE,eAAe;CACzB,oBAAA,QAAQ,EAAE,uhFAuET;kBACD,CAAA;uGAKS,KAAK,EAAA,CAAA;uBAAbC,QAAK;iBAEG,GAAG,EAAA,CAAA;uBAAXA,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAEG,UAAU,EAAA,CAAA;uBAAlBA,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAKG,IAAI,EAAA,CAAA;uBAAZA,QAAK;iBAKG,kBAAkB,EAAA,CAAA;uBAA1BA,QAAK;iBAGF,qBAAqB,EAAA,CAAA;uBADxBA,QAAK;iBAUF,aAAa,EAAA,CAAA;uBADhBA,QAAK;iBAYG,mBAAmB,EAAA,CAAA;uBAA3BA,QAAK;iBAMG,2BAA2B,EAAA,CAAA;uBAAnCA,QAAK;iBAYG,oBAAoB,EAAA,CAAA;uBAA5BA,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAKI,SAAS,EAAA,CAAA;uBAAlBC,SAAM;iBAKG,WAAW,EAAA,CAAA;uBAApBA,SAAM;iBAKG,SAAS,EAAA,CAAA;uBAAlBA,SAAM;iBAOG,QAAQ,EAAA,CAAA;uBAAjBA,SAAM;iBAE6C,aAAa,EAAA,CAAA;uBAAhEG,cAAW;wBAAC,iCAAiC,CAAA;iBAIJ,cAAc,EAAA,CAAA;uBAAvDA,cAAW;wBAAC,uBAAuB,CAAA;iBAIU,kBAAkB,EAAA,CAAA;uBAA/DA,cAAW;wBAAC,2BAA2B,CAAA;iBAIQ,eAAe,EAAA,CAAA;uBAA9DA,cAAW;wBAAC,6BAA6B,CAAA;iBAID,WAAW,EAAA,CAAA;uBAAnDA,cAAW;wBAAC,sBAAsB,CAAA;iBAID,YAAY,EAAA,CAAA;uBAA7CA,cAAW;wBAAC,eAAe,CAAA;iBAU5B,WAAW,EAAA,CAAA;uBADVmB,eAAY;wBAAC,OAAO,CAAA;;;AC3LtB,KAAA,gBAAA,kBAAA,YAAA;CAfA,IAAA,SAAA,gBAAA,GAAA;CAkBU,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAEgB,QAAA,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;CAEhC,QAAA,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;CAE/C,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;MAqB1B;CAnBA,IAAA,MAAA,CAAA,cAAA,CAAkC,gBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;CAA9C,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC;UACrC;;;CAAA,KAAA,CAAA,CAAA;KAED,gBAA0B,CAAA,SAAA,CAAA,0BAAA,GAA1B,UAA2B,GAAG,EAAA;CAC7B,QAAA,IAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,gBAAgB,CAAlB,EAAkB,CAAC,CAAC;CAChD,QAAA,IAAI,KAAK,EAAE;aACV,OAAO,KAAK,CAAC,gBAAgB,CAAC;CAC9B,SAAA;CACD,QAAA,OAAO,KAAK,CAAC;MACb,CAAA;KAED,gBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,GAAG,EAAA;CACzB,QAAA,IAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,YAAY,CAAd,EAAc,CAAC,CAAC;CAC5C,QAAA,IAAI,KAAK,EAAE;aACV,OAAO,KAAK,CAAC,YAAY,CAAC;CAC1B,SAAA;CACD,QAAA,OAAO,KAAK,CAAC;MACb,CAAA;;;qIA7BW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA3B,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAhB,gBAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAZlB,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,oXAUT,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAD,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;mHAEW,gBAAgB,EAAA,UAAA,EAAA,CAAA;mBAf5BI,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;;CAEV,oBAAA,QAAQ,EAAE,uBAAuB;CACjC,oBAAA,QAAQ,EAAE,oXAUT;kBACD,CAAA;+BAES,GAAG,EAAA,CAAA;uBAAXC,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAEoC,kBAAkB,EAAA,CAAA;uBAA3DI,cAAW;wBAAC,2BAA2B,CAAA;iBAEJ,YAAY,EAAA,CAAA;uBAA/CA,cAAW;wBAAC,qBAAqB,CAAA;iBAEzB,QAAQ,EAAA,CAAA;uBAAhBJ,QAAK;iBAE4B,YAAY,EAAA,CAAA;uBAA7CI,cAAW;wBAAC,eAAe,CAAA;;;ACxB7B,KAAA,gBAAA,kBAAA,YAAA;CAAA,IAAA,SAAA,gBAAA,GAAA;;KAEC,gBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAK,EAAA;SAClB,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;MAChF,CAAA;KAGD,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;SACrB,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,4BAA4B,CAAC,CAAC;MACnF,CAAA;;;qIATW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAR,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8GAAhB,gBAAgB,EAAA,QAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;mHAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;mBAH5BS,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,uBAAuB;kBACjC,CAAA;+BAGA,aAAa,EAAA,CAAA;uBADZkB,eAAY;wBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAA;iBAMtC,gBAAgB,EAAA,CAAA;uBADfA,eAAY;wBAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ACuDvC,KAAA,SAAA,kBAAA,YAAA;CAwEC,IAAA,SAAA,SAAA,CAAsB,IAAU,EAAA;CAAV,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;CArEhC;;CAEG;CACM,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;CAoBpC;;CAEG;CACM,QAAA,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;CAEpC;;CAEG;CACM,QAAA,IAAI,CAAA,IAAA,GAAiB,IAAI,CAAC;CAc1B,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAE1B;;;;CAIG;CACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI7B,eAAY,EAAU,CAAC;CAEjD;;;;CAIG;CACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAIA,eAAY,EAAU,CAAC;CAEnD;;CAEG;CACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIA,eAAY,EAAU,CAAC;SAEtC,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;SACnE,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;MAE9C;CAhErC,IAAA,MAAA,CAAA,cAAA,CACI,SAAqB,CAAA,SAAA,EAAA,uBAAA,EAAA;CAIzB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;UACzC;CAPD,QAAA,GAAA,EAAA,UAC0B,KAAkC,EAAA;CAC3D,YAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAC5C;;;CAAA,KAAA,CAAA,CAAA;CAMD,IAAA,MAAA,CAAA,cAAA,CACI,SAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;CAIpB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;UACpC;CAPD,QAAA,GAAA,EAAA,UACqB,KAAkC,EAAA;CACtD,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UACvC;;;CAAA,KAAA,CAAA,CAAA;CAsDD;;;;CAIG;KACH,SAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,KAAa,EAAA;SAChC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;CACpC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;CACxE,SAAA;CAAM,aAAA;CACN,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;CACpE,SAAA;MACD,CAAA;KAED,SAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;CACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MAC1B,CAAA;CAED,IAAA,SAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;MACtC,CAAA;CAED,IAAA,SAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;MAC3C,CAAA;KAED,SAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,GAAG,EAAA;CACzB,QAAA,IAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,YAAY,CAAd,EAAc,CAAC,CAAC;CAC5C,QAAA,IAAI,KAAK,EAAE;aACV,OAAO,KAAK,CAAC,YAAY,CAAC;CAC1B,SAAA;CACD,QAAA,OAAO,KAAK,CAAC;MACb,CAAA;KAED,SAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,GAAG,EAAA;CACtB,QAAA,OAAO,GAAG,CAAC,IAAI,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,CAAC,aAAa,CAAf,EAAe,CAAC,CAAC;MACtC,CAAA;;;8HA7GW,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAT,SAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,EAvDX,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,mzEAqDT,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA4B,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,sBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;mHAEW,SAAS,EAAA,UAAA,EAAA,CAAA;mBA1DrB5B,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;;CAEV,oBAAA,QAAQ,EAAE,gBAAgB;CAC1B,oBAAA,QAAQ,EAAE,mzEAqDT;kBACD,CAAA;uGAES,KAAK,EAAA,CAAA;uBAAbC,QAAK;iBAKG,kBAAkB,EAAA,CAAA;uBAA1BA,QAAK;iBAGF,qBAAqB,EAAA,CAAA;uBADxBA,QAAK;iBAUF,gBAAgB,EAAA,CAAA;uBADnBA,QAAK;iBAYG,mBAAmB,EAAA,CAAA;uBAA3BA,QAAK;iBAKG,IAAI,EAAA,CAAA;uBAAZA,QAAK;iBAYG,oBAAoB,EAAA,CAAA;uBAA5BA,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAOI,SAAS,EAAA,CAAA;uBAAlBC,SAAM;iBAOG,WAAW,EAAA,CAAA;uBAApBA,SAAM;iBAKG,QAAQ,EAAA,CAAA;uBAAjBA,SAAM;;;AClIR,KAAA,cAAA,kBAAA,YAAA;CAHA,IAAA,SAAA,cAAA,GAAA;CAIsD,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;CAEX,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;CAEpB,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;CAEzB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAE9D;;CAEG;CACM,QAAA,IAAI,CAAA,IAAA,GAAiB,IAAI,CAAC;CAEG,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;MAaxD;CAXA,IAAA,MAAA,CAAA,cAAA,CAAmD,cAAY,CAAA,SAAA,EAAA,cAAA,EAAA;CAA/D,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;UAC1B;;;CAAA,KAAA,CAAA,CAAA;CAED,IAAA,MAAA,CAAA,cAAA,CAAgD,cAAS,CAAA,SAAA,EAAA,WAAA,EAAA;CAAzD,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;UAC1B;;;CAAA,KAAA,CAAA,CAAA;CAED,IAAA,MAAA,CAAA,cAAA,CAAiD,cAAU,CAAA,SAAA,EAAA,YAAA,EAAA;CAA3D,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;UAC1B;;;CAAA,KAAA,CAAA,CAAA;;;mIA1BW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAL,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4GAAd,cAAc,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,eAAA,EAAA,kCAAA,EAAA,eAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,gCAAA,EAAA,mBAAA,EAAA,6BAAA,EAAA,gBAAA,EAAA,8BAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;mHAAd,cAAc,EAAA,UAAA,EAAA,CAAA;mBAH1BS,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,YAAY;kBACtB,CAAA;+BAEqD,QAAQ,EAAA,CAAA;uBAA5DL,QAAK;;uBAAII,cAAW;wBAAC,6BAA6B,CAAA;iBAEO,QAAQ,EAAA,CAAA;uBAAjEJ,QAAK;;uBAAII,cAAW;wBAAC,kCAAkC,CAAA;iBAEF,OAAO,EAAA,CAAA;uBAA5DJ,QAAK;;uBAAII,cAAW;wBAAC,8BAA8B,CAAA;iBAEP,QAAQ,EAAA,CAAA;uBAApDJ,QAAK;;uBAAII,cAAW;wBAAC,qBAAqB,CAAA;iBAKlC,IAAI,EAAA,CAAA;uBAAZJ,QAAK;iBAEgC,UAAU,EAAA,CAAA;uBAA/CI,cAAW;wBAAC,uBAAuB,CAAA;iBAEe,YAAY,EAAA,CAAA;uBAA9DA,cAAW;wBAAC,gCAAgC,CAAA;iBAIG,SAAS,EAAA,CAAA;uBAAxDA,cAAW;wBAAC,6BAA6B,CAAA;iBAIO,UAAU,EAAA,CAAA;uBAA1DA,cAAW;wBAAC,8BAA8B,CAAA;;;CCL5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgJG;AAiFH,KAAA,KAAA,kBAAA,YAAA;CAuYC;;CAEG;CACH,IAAA,SAAA,KAAA,CACW,UAAsB,EACtB,cAA8B,EAC9B,IAAU,EAAA;CAFV,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;CACtB,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;CAC9B,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAM;CApSrB;;CAEG;CACM,QAAA,IAAI,CAAA,IAAA,GAAiB,IAAI,CAAC;CACnC;;CAEG;CACM,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;CAe1B;;;CAGG;CACM,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;CAEhB,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;CAMzB;;CAEG;CACM,QAAA,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC;CAEpC;;CAEG;CACM,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;CAEpC;;;CAGG;CACM,QAAA,IAAkB,CAAA,kBAAA,GAAG,CAAC,CAAC;CAiEhC;;CAEG;CACM,QAAA,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;CAExB;;CAEG;CAC2C,QAAA,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;CAElE;;CAEG;CAC4D,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;CAmBpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDG;CACO,QAAA,IAAA,CAAA,IAAI,GAAG,IAAIV,eAAY,EAAU,CAAC;CAE5C;;;;CAIG;CACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAIA,eAAY,EAAU,CAAC;CAEjD;;;;CAIG;CACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAIA,eAAY,EAAU,CAAC;CAEnD;;;;CAIG;CACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAIA,eAAY,EAAU,CAAC;CAEjD;;;;CAIG;CACO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAIA,eAAY,EAAU,CAAC;CAEnD;;CAEG;CACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIA,eAAY,EAAU,CAAC;CAEhD;;CAEG;CACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAIA,eAAY,EAAc,CAAC;CAEtD;;CAEG;CACH,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;CAE1B;;CAEG;CACH,QAAA,IAA6B,CAAA,6BAAA,GAAG,KAAK,CAAC;CAQ/B,QAAA,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;CACzB,QAAA,IAAuB,CAAA,uBAAA,GAAG,CAAC,CAAC,CAAC;CAC7B,QAAA,IAAqB,CAAA,qBAAA,GAAG,EAAE,CAAC;CAGxB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;;CAEpB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;CAEpB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIkC,iBAAY,EAAE,CAAC;SAMnC,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;SACzE,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;SACzE,IAAmB,CAAA,mBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC;SACvE,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;SACzE,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;SACnE,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;SAC/D,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;SAC9D,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;MAc7D;CA7YL;;;;;;;;CAQG;CACI,IAAA,KAAA,CAAA,aAAa,GAApB,UAAqB,QAAgB,EAAE,WAAmB,EAAA;CACzD,QAAA,IAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;CAC/B,QAAA,IAAI,MAAM,GAAG,IAAI,KAAK,EAAmB,CAAC;CAC1C,QAAA,IAAI,IAAI,GAAG,IAAI,KAAK,EAAoB,CAAC;CACzC,QAAA,IAAI,GAAG,GAAG,IAAI,KAAK,EAAa,CAAC;SAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE;CACrC,YAAA,MAAM,CAAC,IAAI,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;CACnC,YAAA,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;CAC1B,SAAA;CACD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;CACtC,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACf,SAAA;CAED,QAAA,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;CACtB,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;CAClB,QAAA,OAAO,KAAK,CAAC;MACb,CAAA;CAEM,IAAA,KAAA,CAAA,WAAW,GAAlB,UAAmB,OAAoB,EAAE,KAAa,EAAA;SACrD,IAAM,gBAAgB,GAAGlB,0BAAmB,CAAC,OAAO,EAAEC,qCAA8B,CAAC,CAAC;SACtF,IAAI,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;CAChI,YAAA,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;CACrC,SAAA;CAAM,aAAA,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;CACvC,YAAA,gBAAgB,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;CACrC,SAAA;CAAM,aAAA;CACN,YAAA,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;CACzB,SAAA;MACD,CAAA;KAEM,KAAK,CAAA,KAAA,GAAZ,UAAa,OAAoB,EAAA;SAChC,IAAM,gBAAgB,GAAGD,0BAAmB,CAAC,OAAO,EAAEC,qCAA8B,CAAC,CAAC;SACtF,IAAI,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;CAChI,YAAA,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;CAC5B,SAAA;CAAM,aAAA,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;CACvC,YAAA,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;CAC5B,SAAA;CAAM,aAAA;aACN,OAAO,CAAC,KAAK,EAAE,CAAC;CAChB,SAAA;MACD,CAAA;CAcD,IAAA,MAAA,CAAA,cAAA,CACI,KAAK,CAAA,SAAA,EAAA,OAAA,EAAA;CAqCT,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,MAAM,CAAC;UACnB;CA3CD;;CAEG;CACH,QAAA,GAAA,EAAA,UACU,CAAa,EAAA;aADvB,IAoCC,KAAA,GAAA,IAAA,CAAA;aAlCA,IAAI,IAAI,CAAC,MAAM,EAAE;CAChB,gBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;;;CAGjC,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAIiB,iBAAY,EAAE,CAAC;CACxC,aAAA;CAED,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;CAEhB,YAAA,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,uBAAuB,EAAE,CAA9B,EAA8B,CAAC,CAAC;aAClG,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,YAAA;iBACnD,IAAI,KAAI,CAAC,UAAU,EAAE;qBACpB,KAAI,CAAC,aAAa,EAAE,CAAC;CACrB,iBAAA;iBACD,KAAI,CAAC,uBAAuB,EAAE,CAAC;CAChC,aAAC,CAAC,CAAC;CAEH,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;CACnC,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;aAEnC,IAAI,IAAI,CAAC,UAAU,EAAE;iBACpB,IAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,SAAS,CAAC,YAAA;;CAE/D,oBAAA,UAAU,CAAC,YAAA;CACV,wBAAA,IAAM,YAAY,GAAG,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,gBAAgB,CAAC,4CAA4C,CAAC,CAAC;yBAClH,KAAK,CAAC,IAAI,CAAM,YAAY,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG,EAAA;CACxC,4BAAA,IAAI,GAAG,CAAC,iBAAiB,CAAC,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,iBAAiB,CAAC,QAAQ,KAAK,CAAC,CAAC,EAAE;CAC1F,gCAAA,GAAG,CAAC,iBAAiB,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;CACpC,6BAAA;CACF,yBAAC,CAAC,CAAC;CACJ,qBAAC,CAAC,CAAC;CACJ,iBAAC,CAAC,CAAC;CACH,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACvC,aAAA;UACD;;;CAAA,KAAA,CAAA,CAAA;CAiBD,IAAA,MAAA,CAAA,cAAA,CAAa,KAAU,CAAA,SAAA,EAAA,YAAA,EAAA;CAmBvB,QAAA,GAAA,EAAA,YAAA;aACC,OAAO,IAAI,CAAC,WAAW,CAAC;UACxB;CAxBD;;CAEG;CACH,QAAA,GAAA,EAAA,UAAwB,KAAc,EAAA;CACrC,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;aACzB,IAAI,IAAI,CAAC,WAAW,EAAE;CACrB,gBAAA,IAAI,KAAK,EAAE;qBACV,IAAI,CAAC,0BAA0B,EAAE,CAAC;CAClC,iBAAA;CAAM,qBAAA;qBACN,IAAI,CAAC,2BAA2B,EAAE,CAAC;CACnC,iBAAA;CACD,aAAA;UACD;;;CAAA,KAAA,CAAA,CAAA;CAiDD,IAAA,MAAA,CAAA,cAAA,CACI,KAAqB,CAAA,SAAA,EAAA,uBAAA,EAAA;CAGzB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;UACzC;CAzBD;;;;;;CAMG;;CAGH;;;;;;;CAOG;;CAGH,QAAA,GAAA,EAAA,UAC0B,KAAkC,EAAA;CAC3D,YAAA,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAC5C;;;CAAA,KAAA,CAAA,CAAA;CAID,IAAA,MAAA,CAAA,cAAA,CACI,KAAmB,CAAA,SAAA,EAAA,qBAAA,EAAA;CAGvB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;UACvC;CAND,QAAA,GAAA,EAAA,UACwB,KAAkC,EAAA;CACzD,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UAC1C;;;CAAA,KAAA,CAAA,CAAA;CAID,IAAA,MAAA,CAAA,cAAA,CACI,KAAkB,CAAA,SAAA,EAAA,oBAAA,EAAA;CAGtB,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;UACtC;CAND,QAAA,GAAA,EAAA,UACuB,KAAkC,EAAA;CACxD,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;UACzC;;;CAAA,KAAA,CAAA,CAAA;CAiBD,IAAA,MAAA,CAAA,cAAA,CACI,KAAY,CAAA,SAAA,EAAA,cAAA,EAAA;CAbhB;;;;;;;;;;;CAWG;CACH,QAAA,GAAA,EAAA,UACiB,KAAK,EAAA;CACrB,YAAA,IAAM,iBAAiB,GAAGC,WAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;aACvE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;aACrD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;aAC5D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;aAC3D,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;aACtE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;UAChE;;;CAAA,KAAA,CAAA,CAAA;CA4ID,IAAA,MAAA,CAAA,cAAA,CAAI,KAAM,CAAA,SAAA,EAAA,QAAA,EAAA;CAAV,QAAA,GAAA,EAAA,YAAA;CACC,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;CACtB,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;iBAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;UACjE;;;CAAA,KAAA,CAAA,CAAA;CAwCD,IAAA,KAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;CACC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACxB,IAAI,IAAI,CAAC,UAAU,EAAE;aACpB,IAAI,CAAC,0BAA0B,EAAE,CAAC;CAClC,SAAA;MACD,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;CACC,QAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;SACjC,IAAI,IAAI,CAAC,oBAAoB,EAAE;CAC9B,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;CACxC,SAAA;MACD,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,YAAA;;SAEC,IAAI,IAAI,CAAC,gBAAgB,EAAE;aAC1B,OAAO;CACP,SAAA;CACD,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAqB,CAAC;CACvF,QAAA,IAAM,YAAY,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;SAChD,IAAM,kBAAkB,GAAGC,cAAS,CAAgB,KAAK,EAAE,SAAS,CAAC,CAAC;SACtE,IAAM,gBAAgB,GAAGA,cAAS,CAAa,KAAK,EAAE,OAAO,CAAC,CAAC;CAC/D,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,wBAAwB,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC;CACzG,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAA,KAAK,EAAA;CACnE,YAAA,IAAA,EAAA,GAAA,MAAA,CAA8B,KAAK,CAAC,OAAO,EAAA,CAAA,CAAA,EAA1C,UAAU,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,aAAa,GAAA,EAAA,CAAA,CAAA,CAAiB,CAAC;CAC5C,YAAA,IAAA,EAAA,GAAA,MAAA,CAAgC,KAAK,CAAC,QAAQ,EAAA,CAAA,CAAA,EAA7C,WAAW,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,cAAc,GAAA,EAAA,CAAA,CAAA,CAAkB,CAAC;aAErD,IAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;CACvE,YAAA,KAAK,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;;aAGrC,IAAI,WAAW,KAAK,CAAC,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;iBAAE,OAAO;CAAE,aAAA;;CAE5D,YAAA,IAAI,WAAW,KAAK,UAAU,IAAI,cAAc,KAAK,aAAa,EAAE;iBACnE,IAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;iBAC1E,KAAK,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;CACvC,aAAA;CACD,YAAA,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;CAC7B,SAAC,CAAC,CAAC;;SAEH,IAAI,CAAC,aAAa,EAAE,CAAC;MACrB,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,YAAA;;SAEC,IAAI,IAAI,CAAC,oBAAoB,EAAE;CAC9B,YAAA,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;CACxC,SAAA;;CAED,QAAA,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;;CAEtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;MAC7B,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;CACC,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MAChC,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;CACC,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MAClC,CAAA;KAED,KAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,KAAK,EAAA;;SAEhB,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;aACpD,IAAI,IAAI,CAAC,kBAAkB,EAAE;CAC5B,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;CAC5B,aAAA;aACD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;CACnD,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CAC3B,SAAA;CAAM,aAAA;aACN,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;CACtD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CAC7B,SAAA;MACD,CAAA;KAED,KAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;CACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MAC1B,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,uBAAuB,GAAvB,YAAA;SACC,IAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;SAEzD,IAAI,iBAAiB,IAAI,CAAC,EAAE;;CAE3B,YAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;CAC/B,YAAA,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;CAC3C,SAAA;cAAM,IAAI,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;CACtD,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;CAC9B,YAAA,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;CAC1C,SAAA;CAAM,aAAA;CACN,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;CAC9B,YAAA,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;CAC3C,SAAA;MACD,CAAA;KAED,KAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,WAAgB,EAAA;SAA9B,IAeC,KAAA,GAAA,IAAA,CAAA;SAfa,IAAA,WAAA,KAAA,KAAA,CAAA,EAAA,EAAA,eAAe,CAAC,CAAA,EAAA;;CAE7B,QAAA,UAAU,CAAC,YAAA;;CAEV,YAAA,IAAM,gBAAgB,GAAGpB,0BAAmB,CAAC,KAAI,CAAC,UAAU,CAAC,aAAa,EAAEC,qCAA8B,CAAC,CAAC;CAC5G,YAAA,IAAI,gBAAgB,EAAE;CACrB,gBAAA,gBAAgB,CAAC,OAAO,CAAC,UAAA,QAAQ,EAAA;CAChC,oBAAA,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC;CACjC,iBAAC,CAAC,CAAC;CACH,aAAA;;aAED,IAAI,KAAI,CAAC,gBAAgB,EAAE;CAC1B,gBAAA,KAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;CACnD,aAAA;CACF,SAAC,CAAC,CAAC;MACH,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,KAAK,EAAE,MAAM,EAAA;SAA/B,IAWC,KAAA,GAAA,IAAA,CAAA;CAVA,QAAA,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;CAC1D,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC;SACxC,KAAK,CAAC,cAAc,EAAE,CAAC;CAEvB,QAAA,IAAI,CAAC,qBAAqB,GAAGmB,cAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK,EAAA;CACjF,YAAA,KAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC1C,SAAC,CAAC,CAAC;CACH,QAAA,IAAI,CAAC,mBAAmB,GAAGA,cAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK,EAAA;CAC7E,YAAA,KAAI,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CACrC,SAAC,CAAC,CAAC;MACH,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,oBAAoB,GAApB,UAAqB,KAAK,EAAE,MAAM,EAAA;SACjC,IAAM,IAAI,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC;SACrD,MAAM,CAAC,KAAK,CAAC,KAAK,GAAM,IAAI,CAAC,iBAAiB,GAAG,IAAI,GAAA,IAAI,CAAC;MAC1D,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,KAAK,EAAE,MAAM,EAAA;CAC5B,QAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;CACzC,QAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,CAAC;MACvC,CAAA;CAED;;;CAGG;KACH,KAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,KAAK,EAAA;CACb,QAAA,IAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;CAE1G,QAAA,IAAI,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,EAAE;aAClD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CACjC,SAAA;CAAM,aAAA;CACN,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;CACzB,SAAA;MACD,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,KAAK,EAAE,WAAW,EAAA;CACjC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAC7B,QAAA,IAAI,CAAC,uBAAuB,GAAG,WAAW,CAAC;CAC3C,QAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;MACvE,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,aAAa,GAAb,UAAc,KAAK,EAAE,WAAW,EAAA;CAC/B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;CAC9B,QAAA,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC;MAClC,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAA;CAC3C,QAAA,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;CACtC,QAAA,IAAI,CAAC,uBAAuB,GAAG,WAAW,CAAC;MAC3C,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAA;CAC3C,QAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;MAChC,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,cAAc,GAAd,UAAe,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAA;CAC1C,QAAA,IAAI,CAAC,uBAAuB,GAAG,WAAW,CAAC;CAC3C,QAAA,IAAI,CAAC,qBAAqB,GAAG,QAAQ,CAAC;;SAGtC,KAAK,CAAC,cAAc,EAAE,CAAC;MACvB,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAW,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAA;CACtC,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;CAC9B,QAAA,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC;CAClC,QAAA,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;CAEhC,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CACpB,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,EACvD,WAAW,IAAI,QAAQ,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAC5C,CAAC;MACF,CAAA;KAED,KAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,KAAa,EAAA;SACnB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;;aAErC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;;iBAEpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;CACzE,aAAA;CACD,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CACvB,SAAA;CAED,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;MACtB,CAAA;CAED;;;CAGG;KACH,KAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,KAAK,EAAA;CAChB,QAAA,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;CAC/F,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;MACzB,CAAA;KAED,KAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,GAAgB,EAAA;CACtC,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;CAC/B,YAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;CAC5C,SAAA;CACD,QAAA,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,CAAC;MACtD,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC;MAC3C,CAAA;CACD,IAAA,KAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;MACzC,CAAA;CACD,IAAA,KAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;MACxC,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC;MACzC,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;MACtC,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;MACnC,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;MACnC,CAAA;CAED,IAAA,KAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;CACC,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;MACjC,CAAA;;;0HAzoBW,KAAK,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlC,aAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,aAAA,CAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAL,KAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,KAAK,EA9EP,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,uCAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,+iFAuET,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAmC,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,SAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,oBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,sBAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAhB,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,aAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAAA,aAAA,CAAA,SAAA,EAAA,EAAA,CAAA,CAAA;mHAOW,KAAK,EAAA,UAAA,EAAA,CAAA;mBAhFjBlB,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,WAAW;CACrB,oBAAA,QAAQ,EAAE,+iFAuET;qBACD,MAAM,EAAE,CAAC,iDAIR,CAAC;kBACF,CAAA;mLAuDS,cAAc,EAAA,CAAA;uBAAtBC,QAAK;iBAIG,eAAe,EAAA,CAAA;uBAAvBA,QAAK;iBAMF,KAAK,EAAA,CAAA;uBADRA,QAAK;iBA6CG,IAAI,EAAA,CAAA;uBAAZA,QAAK;iBAIG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAIO,UAAU,EAAA,CAAA;uBAAtBA,QAAK;iBAeG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBAEG,QAAQ,EAAA,CAAA;uBAAhBA,QAAK;iBASG,mBAAmB,EAAA,CAAA;uBAA3BA,QAAK;iBAKG,kBAAkB,EAAA,CAAA;uBAA1BA,QAAK;iBAMG,kBAAkB,EAAA,CAAA;uBAA1BA,QAAK;iBAsBF,qBAAqB,EAAA,CAAA;uBADxBA,QAAK;iBAQF,mBAAmB,EAAA,CAAA;uBADtBA,QAAK;iBAQF,kBAAkB,EAAA,CAAA;uBADrBA,QAAK;iBAqBF,YAAY,EAAA,CAAA;uBADfA,QAAK;iBAaG,OAAO,EAAA,CAAA;uBAAfA,QAAK;iBAKwC,YAAY,EAAA,CAAA;uBAAzDI,cAAW;wBAAC,+BAA+B,CAAA;iBAKmB,YAAY,EAAA,CAAA;uBAA1EA,cAAW;wBAAC,uCAAuC,CAAA;;uBAAGJ,QAAK;iBAKnD,cAAc,EAAA,CAAA;uBAAtBA,QAAK;iBAYG,oBAAoB,EAAA,CAAA;uBAA5BA,QAAK;iBA0DI,IAAI,EAAA,CAAA;uBAAbC,SAAM;iBAOG,SAAS,EAAA,CAAA;uBAAlBA,SAAM;iBAOG,WAAW,EAAA,CAAA;uBAApBA,SAAM;iBAOG,SAAS,EAAA,CAAA;uBAAlBA,SAAM;iBAOG,WAAW,EAAA,CAAA;uBAApBA,SAAM;iBAKG,QAAQ,EAAA,CAAA;uBAAjBA,SAAM;iBAKG,UAAU,EAAA,CAAA;uBAAnBA,SAAM;;;ACjkBR,KAAA,cAAA,kBAAA,YAAA;CAPA,IAAA,SAAA,cAAA,GAAA;CAQiD,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;MAatE;CAPA,IAAA,cAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;;;SAEC,IAAI,IAAI,CAAC,KAAK,EAAE;CACf,YAAA,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAE,CAAC;CACjD,YAAA,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,iBAAiB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,EAAE,CAAC;CACxD,SAAA;MACD,CAAA;;;mIAbW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAL,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAd,cAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,wLAGZ,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAChB,sBAAsB,EACtB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,KAAK,2DAVT,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,CAAA,CAAA;mHAKzB,cAAc,EAAA,UAAA,EAAA,CAAA;mBAP1BG,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,qBAAqB;CAC/B,oBAAA,QAAQ,EAAE,2BAA2B;qBACrC,MAAM,EAAE,CAAC,oCAER,CAAC;kBACF,CAAA;+BAEgD,cAAc,EAAA,CAAA;uBAA7DK,cAAW;wBAAC,iCAAiC,CAAA;iBAEd,WAAW,EAAA,CAAA;uBAA1C8B,eAAY;wBAAC,gBAAgB,CAAA;iBACQ,iBAAiB,EAAA,CAAA;uBAAtDA,eAAY;wBAAC,sBAAsB,CAAA;iBACf,KAAK,EAAA,CAAA;uBAAzBA,eAAY;wBAAC,KAAK,CAAA;;;ACdpB,KAAA,WAAA,kBAAA,YAAA;CANA,IAAA,SAAA,WAAA,GAAA;CAO8C,QAAA,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;CAClC,QAAA,IAAY,CAAA,YAAA,GAAG,OAAO,CAAC;MACrD;;;gIAHY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAtC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;CAAX,WAAA,CAAA,IAAA,GAAAA,aAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,WAAW,EAJb,QAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,8BAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,qCAET,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;mHAEW,WAAW,EAAA,UAAA,EAAA,CAAA;mBANvBG,YAAS;CAAC,YAAA,IAAA,EAAA,CAAA;CACV,oBAAA,QAAQ,EAAE,kBAAkB;CAC5B,oBAAA,QAAQ,EAAE,qCAET;kBACD,CAAA;+BAE6C,WAAW,EAAA,CAAA;uBAAvDK,cAAW;wBAAC,8BAA8B,CAAA;iBACb,YAAY,EAAA,CAAA;uBAAzCA,cAAW;wBAAC,eAAe,CAAA;;;CCR7B;;CAEG;AACH,KAAA,QAAA,kBAAA,UAAA,MAAA,EAAA;KAA8B,SAAgB,CAAA,QAAA,EAAA,MAAA,CAAA,CAAA;CAA9C,IAAA,SAAA,QAAA,GAAA;CAAA,QAAA,IAAA,KAAA,GAAA,MAAA,CAAA,KAAA,CAAA,IAAA,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,WAKC,CAAA,CAAA,IAAA,IAAA,CAAA;CAJA;;CAEG;CACH,QAAA,KAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;;MACjB;KAAA,OAAA,QAAA,CAAA;CAAA,CALD,CAA8B,KAAgB,CAK7C;;CCVD;AAoHA,KAAA,WAAA,kBAAA,YAAA;CAAA,IAAA,SAAA,WAAA,GAAA;;;;gIAAa,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAR,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;iIAAX,WAAW,EAAA,YAAA,EAAA;;SA/DtB,YAAY;SACZ,cAAc;SACd,WAAW;SACX,gBAAgB;SAChB,sBAAsB;SACtB,kBAAkB;SAClB,mBAAmB;SACnB,kBAAkB;SAClB,mBAAmB;SACnB,gBAAgB;;SAEhB,KAAK;SACL,cAAc;SACd,SAAS;SACT,aAAa;SACb,iBAAiB;SACjB,eAAe;SACf,SAAS;SACT,iBAAiB;SACjB,gBAAgB;SAChB,SAAS;SACT,aAAa;SACb,UAAU;SACV,iBAAiB;kBA8BjBuC,eAAY;SACZC,oBAAY;SACZC,iBAAW;SACXC,mBAAY;SACZC,eAAY;SACZC,mBAAY;SACZC,aAAU;SACVC,eAAU,CAAA,EAAA,OAAA,EAAA;;SAjCV,YAAY;SACZ,cAAc;SACd,WAAW;SACX,gBAAgB;SAChB,sBAAsB;SACtB,kBAAkB;SAClB,mBAAmB;SACnB,kBAAkB;SAClB,mBAAmB;SACnB,gBAAgB;;SAEhB,KAAK;SACL,cAAc;SACd,SAAS;SACT,aAAa;SACb,iBAAiB;SACjB,eAAe;SACf,SAAS;SACT,iBAAiB;SACjB,gBAAgB;SAChB,SAAS;SACT,aAAa;SACb,UAAU;SACV,iBAAiB;CAAA,KAAA,EAAA,CAAA,CAAA;CAaN,WAAA,CAAA,IAAA,GAAA9C,aAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,WAAW,EAXd,OAAA,EAAA,CAAA;aACRuC,eAAY;aACZC,oBAAY;aACZC,iBAAW;aACXC,mBAAY;aACZC,eAAY;aACZC,mBAAY;aACZC,aAAU;aACVC,eAAU;UACV,CAAA,EAAA,CAAA,CAAA;mHAEW,WAAW,EAAA,UAAA,EAAA,CAAA;mBAlEvBC,WAAQ;CAAC,YAAA,IAAA,EAAA,CAAA;CACT,oBAAA,YAAY,EAAE;;yBAEb,YAAY;yBACZ,cAAc;yBACd,WAAW;yBACX,gBAAgB;yBAChB,sBAAsB;yBACtB,kBAAkB;yBAClB,mBAAmB;yBACnB,kBAAkB;yBAClB,mBAAmB;yBACnB,gBAAgB;;yBAEhB,KAAK;yBACL,cAAc;yBACd,SAAS;yBACT,aAAa;yBACb,iBAAiB;yBACjB,eAAe;yBACf,SAAS;yBACT,iBAAiB;yBACjB,gBAAgB;yBAChB,SAAS;yBACT,aAAa;yBACb,UAAU;yBACV,iBAAiB;CACjB,qBAAA;CACD,oBAAA,OAAO,EAAE;;yBAER,YAAY;yBACZ,cAAc;yBACd,WAAW;yBACX,gBAAgB;yBAChB,sBAAsB;yBACtB,kBAAkB;yBAClB,mBAAmB;yBACnB,kBAAkB;yBAClB,mBAAmB;yBACnB,gBAAgB;;yBAEhB,KAAK;yBACL,cAAc;yBACd,SAAS;yBACT,aAAa;yBACb,iBAAiB;yBACjB,eAAe;yBACf,SAAS;yBACT,iBAAiB;yBACjB,gBAAgB;yBAChB,SAAS;yBACT,aAAa;yBACb,UAAU;yBACV,iBAAiB;CACjB,qBAAA;CACD,oBAAA,OAAO,EAAE;yBACRR,eAAY;yBACZC,oBAAY;yBACZC,iBAAW;yBACXC,mBAAY;yBACZC,eAAY;yBACZC,mBAAY;yBACZC,aAAU;yBACVC,eAAU;CACV,qBAAA;kBACD,CAAA;;;CCnHD;;CCAA;;CAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"carbon-components-angular-table.umd.js","sources":["../../src/table/toolbar/table-toolbar.component.ts","../../src/table/toolbar/table-toolbar-actions.component.ts","../../node_modules/tslib/tslib.es6.js","../../src/table/toolbar/table-toolbar-search.component.ts","../../src/search/search.component.html","../../src/table/toolbar/table-toolbar-content.component.ts","../../src/table/header/table-header-description.directive.ts","../../src/table/header/table-header-title.directive.ts","../../src/table/table-header-item.class.ts","../../src/table/table-item.class.ts","../../src/table/table-model.class.ts","../../src/table/data-grid-interaction-model.class.ts","../../src/table/table-adapter.class.ts","../../src/table/head/table-head-expand.component.ts","../../src/table/head/table-head-checkbox.component.ts","../../src/table/head/table-head-cell-label.directive.ts","../../src/table/head/table-head-cell.component.ts","../../src/table/head/table-head.component.ts","../../src/table/cell/table-expand-button.component.ts","../../src/table/cell/table-checkbox.component.ts","../../src/table/cell/table-radio.component.ts","../../src/table/cell/table-data.component.ts","../../src/table/body/table-row.component.ts","../../src/table/body/table-expanded-row.component.ts","../../src/table/expanded-row-hover.directive.ts","../../src/table/body/table-body.component.ts","../../src/table/table.directive.ts","../../src/table/table.component.ts","../../src/table/table-container.component.ts","../../src/table/header/table-header.component.ts","../../src/table/table-row.class.ts","../../src/table/table.module.ts","../../src/table/index.ts","../../src/table/carbon-components-angular-table.ts"],"sourcesContent":["import { TableModel } from \"../table-model.class\";\nimport {\n\tComponent,\n\tEventEmitter,\n\tInput,\n\tOutput\n} from \"@angular/core\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { TableRowSize } from \"../table.types\";\n\n/**\n * The table toolbar is reserved for global table actions such as table settings, complex filter, export, or editing table data.\n *\n * ## Basic usage\n *\n * ```html\n * <ibm-table-toolbar [model]=\"model\">\n *\t\t<ibm-table-toolbar-actions>\n *\t\t\t<button ibmButton=\"primary\">\n *\t\t\t\tDelete\n *\t\t\t\t<svg ibmIcon=\"trash-can\" size=\"16\" class=\"cds--btn__icon\"></svg>\n *\t\t\t</button>\n *\t\t\t<button ibmButton=\"primary\">\n *\t\t\t\tSave\n *\t\t\t\t<svg ibmIcon=\"save\" size=\"16\" class=\"cds--btn__icon\"></svg>\n *\t\t\t</button>\n *\t\t\t<button ibmButton=\"primary\">\n *\t\t\t\tDownload\n *\t\t\t\t<svg ibmIcon=\"download\" size=\"16\" class=\"cds--btn__icon\"></svg>\n *\t\t\t</button>\n *\t\t</ibm-table-toolbar-actions>\n *\t\t\t<ibm-table-toolbar-content>\n *\t\t\t<ibm-table-toolbar-search [expandable]=\"true\"></ibm-table-toolbar-search>\n *\t\t\t<button ibmButton=\"toolbar-action\">\n *\t\t\t\t<svg ibmIcon=\"settings\" size=\"16\" class=\"cds--toolbar-action__icon\"></svg>\n *\t\t\t</button>\n *\t\t\t<button ibmButton=\"primary\" size=\"sm\">\n *\t\t\t\tPrimary Button\n *\t\t\t\t<svg ibmIcon=\"add\" size=\"20\" class=\"cds--btn__icon\"></svg>\n *\t\t\t</button>\n *\t\t</ibm-table-toolbar-content>\n *\t</ibm-table-toolbar>\n * ```\n *\n */\n@Component({\n\tselector: \"ibm-table-toolbar\",\n\ttemplate: `\n\t<section\n\t\tclass=\"cds--table-toolbar\"\n\t\t[ngClass]=\"{'cds--table-toolbar--small' : size === 'sm'}\">\n\t\t<div\n\t\t\t*ngIf=\"model\"\n\t\t\tclass=\"cds--batch-actions\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--batch-actions--active': selected\n\t\t\t}\"\n\t\t\t[attr.aria-label]=\"actionBarLabel.subject | async\">\n\t\t\t<div class=\"cds--batch-summary\">\n\t\t\t\t<p class=\"cds--batch-summary__para\" *ngIf=\"count as n\">\n\t\t\t\t\t<ng-container *ngIf=\"_batchTextLegacy.subject | async as legacyText; else batchTextBlock\">\n\t\t\t\t\t\t<span>{{n}}</span> {{legacyText}}\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-template #batchTextBlock>\n\t\t\t\t\t\t<span *ngIf=\"n === 1\">{{_batchTextSingle.subject | async}}</span>\n\t\t\t\t\t\t<span *ngIf=\"n !== 1\">{{_batchTextMultiple.subject | i18nReplace: {count: n} | async}}</span>\n\t\t\t\t\t</ng-template>\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t\t<div class=\"cds--action-list\">\n\t\t\t\t<ng-content select=\"ibm-table-toolbar-actions\"></ng-content>\n\t\t\t\t<button\n\t\t\t\t\tibmButton=\"primary\"\n\t\t\t\t\tclass=\"cds--batch-summary__cancel\"\n\t\t\t\t\t[tabindex]=\"selected ? 0 : -1\"\n\t\t\t\t\t(click)=\"onCancel()\">\n\t\t\t\t\t{{_cancelText.subject | async}}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t\t<ng-content></ng-content>\n\t</section>\n\t`\n})\nexport class TableToolbar {\n\t@Input() model: TableModel;\n\n\t@Input() set batchText (value: string | { SINGLE: string, MULTIPLE: string }) {\n\t\tif (typeof value === \"object\") {\n\t\t\tthis._batchTextSingle.override(value.SINGLE);\n\t\t\tthis._batchTextMultiple.override(value.MULTIPLE);\n\t\t} else {\n\t\t\t// For compatibility with old code\n\t\t\tthis._batchTextLegacy.override(value);\n\t\t}\n\t}\n\t@Input() set ariaLabel (value: { ACTION_BAR: string }) {\n\t\tthis.actionBarLabel.override(value.ACTION_BAR);\n\t}\n\t@Input() set cancelText(value: { CANCEL: string }) {\n\t\tthis._cancelText.override(value.CANCEL);\n\t}\n\t@Input() size: TableRowSize = \"md\";\n\n\tget cancelText(): { CANCEL: string } {\n\t\treturn { CANCEL: this._cancelText.value as string };\n\t}\n\n\t@Output() cancel = new EventEmitter();\n\n\tactionBarLabel: Overridable = this.i18n.getOverridable(\"TABLE_TOOLBAR.ACTION_BAR\");\n\t_cancelText: Overridable = this.i18n.getOverridable(\"TABLE_TOOLBAR.CANCEL\");\n\t_batchTextLegacy: Overridable = this.i18n.getOverridable(\"TABLE_TOOLBAR.BATCH_TEXT\");\n\t_batchTextSingle: Overridable = this.i18n.getOverridable(\"TABLE_TOOLBAR.BATCH_TEXT_SINGLE\");\n\t_batchTextMultiple: Overridable = this.i18n.getOverridable(\"TABLE_TOOLBAR.BATCH_TEXT_MULTIPLE\");\n\n\tconstructor(protected i18n: I18n) {}\n\n\tget count() {\n\t\treturn this.model.totalDataLength > 0 ? this.model.rowsSelected.reduce((previous, current) => previous + (current ? 1 : 0), 0) : 0;\n\t}\n\tget selected() {\n\t\treturn this.model.totalDataLength > 0 ? this.model.rowsSelected.some(item => item) : false;\n\t}\n\n\tonCancel() {\n\t\tthis.model.selectAll(false);\n\t\tthis.cancel.emit();\n\t}\n}\n","import { Component, HostBinding } from \"@angular/core\";\n\n@Component({\n\tselector: \"ibm-table-toolbar-actions\",\n\ttemplate: `<ng-content></ng-content>`\n})\nexport class TableToolbarActions {}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Search } from \"carbon-components-angular/search\";\nimport {\n\tComponent,\n\tHostBinding,\n\tInput,\n\tOnInit,\n\tAfterViewInit\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\n@Component({\n\tselector: \"ibm-table-toolbar-search\",\n\ttemplateUrl: \"../../search/search.component.html\",\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: TableToolbarSearch,\n\t\t\tmulti: true\n\t\t}\n\t]\n})\nexport class TableToolbarSearch extends Search implements AfterViewInit {\n\ttableSearch = true;\n\n\t@HostBinding(\"class.cds--toolbar-content\") hostClass = true;\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tif (this.value) {\n\t\t\t\tthis.openSearch();\n\t\t\t}\n\t\t});\n\t}\n}\n","<div\n\tclass=\"cds--search\"\n\t[ngClass]=\"{\n\t\t'cds--search--sm': size === 'sm',\n\t\t'cds--search--md': size === 'md',\n\t\t'cds--search--lg': size === 'lg',\n\t\t'cds--search--light': theme === 'light',\n\t\t'cds--skeleton': skeleton,\n\t\t'cds--search--expandable': expandable && !tableSearch,\n\t\t'cds--search--expanded': expandable && !tableSearch && active,\n\t\t'cds--toolbar-search': toolbar && !expandable,\n\t\t'cds--toolbar-search--active': toolbar && !expandable && active,\n\t\t'cds--toolbar-search-container-persistent': tableSearch && !expandable,\n\t\t'cds--toolbar-search-container-expandable': tableSearch && expandable,\n\t\t'cds--toolbar-search-container-active': tableSearch && expandable && active\n\t}\"\n\trole=\"search\"\n\t[attr.aria-label]=\"ariaLabel\"\n\t(click)=\"openSearch()\">\n\t<label class=\"cds--label\" [for]=\"id\">{{label}}</label>\n\n\t<div *ngIf=\"skeleton; else enableInput\" class=\"cds--search-input\"></div>\n\t<ng-template #enableInput>\n\t\t<input\n\t\t\t#input\n\t\t\tclass=\"cds--search-input\"\n\t\t\t[type]=\"tableSearch || !toolbar ? 'text' : 'search'\"\n\t\t\t[id]=\"id\"\n\t\t\t[value]=\"value\"\n\t\t\t[autocomplete]=\"autocomplete\"\n\t\t\t[placeholder]=\"placeholder\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t[required]=\"required\"\n\t\t\t(input)=\"onSearch($event.target.value)\"\n\t\t\t(keyup.enter)=\"onEnter()\"/>\n\t\t<button\n\t\t\t*ngIf=\"!tableSearch && toolbar\"\n\t\t\tclass=\"cds--toolbar-search__btn\"\n\t\t\t(click)=\"openSearch()\"\n\t\t\taria-label=\"Open search\">\n\t\t\t<svg ibmIcon=\"search\" size=\"16\" class=\"cds--search-magnifier-icon\"></svg>\n\t\t</button>\n\t\t<svg\n\t\t\tibmIcon=\"search\"\n\t\t\t*ngIf=\"tableSearch || !toolbar\"\n\t\t\tclass=\"cds--search-magnifier-icon\"\n\t\t\tsize=\"16\">\n\t\t</svg>\n\t</ng-template>\n\n\t<button\n\t\t*ngIf=\"tableSearch || !toolbar\"\n\t\tclass=\"cds--search-close\"\n\t\t[ngClass]=\"{\n\t\t\t'cds--search-close--hidden': !value || value.length === 0\n\t\t}\"\n\t\t[title]=\"clearButtonTitle\"\n\t\t(click)=\"clearSearch()\">\n\t\t<span class=\"cds--visually-hidden\">{{ clearButtonTitle }}</span>\n\t\t<svg ibmIcon=\"close\" size=\"16\"></svg>\n\t</button>\n</div>\n","import { Component, HostBinding } from \"@angular/core\";\n\n@Component({\n\tselector: \"ibm-table-toolbar-content\",\n\ttemplate: `<ng-content></ng-content>`\n})\nexport class TableToolbarContent {\n\t@HostBinding(\"class.cds--toolbar-content\") class = true;\n}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[ibmTableHeaderDescription]\"\n})\nexport class TableHeaderDescription {\n\tstatic counter = 0;\n\n\t@HostBinding(\"attr.id\") @Input() id = `table-description-${TableHeaderDescription.counter++}`;\n\t@HostBinding(\"class.cds--data-table-header__description\") descriptionClass = true;\n}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\n\n@Directive({\n\tselector: \"[ibmTableHeaderTitle]\"\n})\nexport class TableHeaderTitle {\n\tstatic counter = 0;\n\n\t@HostBinding(\"attr.id\") @Input() id = `table-title-${TableHeaderTitle.counter++}`;\n\t@HostBinding(\"class.cds--data-table-header__title\") titleClass = true;\n}\n","import { TableItem } from \"./table-item.class\";\nimport {\n\tEventEmitter,\n\tTemplateRef\n} from \"@angular/core\";\n\nexport class TableHeaderItem {\n\t/**\n\t * Defines if column under this TableHeaderItem should be displayed.\n\t *\n\t */\n\tvisible = true;\n\n\t/**\n\t * Disables sorting by default.\n\t *\n\t */\n\tsorted = false;\n\n\t/**\n\t * Enables sorting on click by default.\n\t * If false then this column won't show a sorting arrow at all.\n\t *\n\t */\n\tsortable = true;\n\n\t/**\n\t * Number of applied filters.\n\t *\n\t * `filter()` should set it to appropriate number.\n\t *\n\t */\n\tfilterCount = 0;\n\n\t/**\n\t * The number of rows to span\n\t * **NOTE:** not supported by the default carbon table\n\t */\n\trowSpan = 1;\n\n\t/**\n\t * The number of columns to span\n\t */\n\tcolSpan = 1;\n\n\t/**\n\t * Attach a class to the column, both the header and column cells.\n\t *\n\t */\n\tclassName: string;\n\n\t/**\n\t * Style for the column, applied to every element in the column.\n\t *\n\t * ngStyle-like format\n\t *\n\t */\n\tstyle = {};\n\n\t/**\n\t * If true, sort is set to ascending, if false descending will be true.\n\t *\n\t */\n\tset ascending(asc) {\n\t\tthis._ascending = asc;\n\t}\n\tget ascending() {\n\t\treturn this._ascending;\n\t}\n\n\t/**\n\t * If true, sort is set to descending, if false ascending will be true.\n\t *\n\t */\n\tset descending(desc) {\n\t\tthis._ascending = !desc;\n\t}\n\tget descending() {\n\t\treturn !this._ascending;\n\t}\n\n\t/**\n\t * Data for the header item.\n\t */\n\tdata: any;\n\n\t/**\n\t * Data for the header item for general usage in the controller.\n\t * For example, which `field` is this column related to.\n\t */\n\tmetadata: any;\n\n\t/**\n\t * Used to display data in a desired way.\n\t *\n\t * If not provided, displays data as a simple string.\n\t *\n\t * Usage:\n\t *\n\t * In a component where you're using the table create a template like:\n\t *\n\t * ```html\n\t * <ng-template #customHeaderTemplate let-data=\"data\">\n\t * \t\t<i><a [routerLink]=\"data.link\">{{data.name}}</a></i>\n\t * </ng-template>\n\t * ```\n\t * where we assume your data contains `link` and `name`. `let-data=\"data\"` is\n\t * necessary for you to be able to access item's data in the template.\n\t *\n\t * Create `ViewChild` property with:\n\t *\n\t * ```typescript\n\t * (at)ViewChild(\"customHeaderTemplate\")\n\t * protected customHeaderTemplate: TemplateRef<any>;\n\t * ```\n\t *\n\t * Set the template to the header item, for example:\n\t *\n\t * ```typescript\n\t * this.model.header = [\n\t * \t\tnew TableHeaderItem({data: {name: \"Custom header\", link: \"/table\"}, template: this.customHeaderTemplate})\n\t * ];\n\t * ```\n\t */\n\ttemplate: TemplateRef<any>;\n\n\t/**\n\t * The label for the sort button\n\t */\n\tariaSortLabel: string;\n\n\t/**\n\t * A callback function to format the sort label. Will be heavily called.\n\t */\n\tformatSortLabel: (label: string, staticLabel?: string) => string;\n\n\t/**\n\t * Used as a template for popover filter.\n\t *\n\t * `let-popover=\"popover\"` will give you access to popover component and allow you to\n\t * manipulate it if needed.\n\t *\n\t * `let-filter=\"filter\"` will give you access to the \"filter\". The main takeaway is\n\t * store the data you need to `filter.data`. You will be able to access it as\n\t * `this.filterData.data` from your `filter()` function when you extend `TableHeaderItem`\n\t *\n\t * Example:\n\t * ```html\n\t * <ng-template #filter let-popover=\"popover\">\n\t * \t<ibm-label class=\"first-label\">\n\t * \t\tValue\n\t * \t\t<input type=\"text\" [(ngModel)]=\"filter1\" class=\"input-field\">\n\t * \t</ibm-label>\n\t * </ng-template>\n\t *\n\t * <ng-template #filterFooter let-popover=\"popover\" let-filter=\"data\">\n\t * \t<button class=\"btn--primary\" (click)=\"filter.data = filter1; popover.onClose()\">Apply</button>\n\t * \t<button class=\"btn--secondary\" (click)=\"popover.onClose()\">Cancel</button>\n\t * </ng-template>\n\t * ```\n\t *\n\t * Set the template with, for example:\n\t * ```typescript\n\t * new FilterableHeaderItem({\n\t * \tfilterTemplate: this.filter,\n\t *\tfilterFooter: this.filterFooter\n\t * })\n\t * ```\n\t *\n\t * ```typescript\n\t * class FilterableHeaderItem extends TableHeaderItem {\n\t * \t// custom filter function\n\t * \tfilter(item: TableItem): boolean {\n\t * \t\tif (typeof item.data === \"string\" && item.data.indexOf(this.filterData.data) >= 0) {\n\t * \t\t\tthis.filterCount = 1;\n\t * \t\t\treturn false;\n\t * \t\t}\n\t * \t\tthis.filterCount = 0;\n\t * \t\treturn true;\n\t * \t}\n\t * }\n\t * ```\n\t */\n\tfilterTemplate: TemplateRef<any>;\n\n\t/**\n\t * Used along with `filterTemplate` to construct the filter popover\n\t */\n\tfilterFooter: TemplateRef<any>;\n\n\t/**\n\t * This is where you store your data when applying filter.\n\t *\n\t * It is the actual object you have access to with `let-filter=\"data\"` in your template.\n\t *\n\t * Make sure to store data in `filter.data` in your template, and you will have it\n\t * available in `filterData.data` in your extension of `TableHeaderItem`.\n\t *\n\t * Because angular and object references.\n\t */\n\tfilterData: any;\n\n\t/**\n\t * used in `ascending`\n\t *\n\t * @protected\n\t */\n\tprotected _ascending = true;\n\n\tget title() {\n\t\tif (this._title) {\n\t\t\treturn this._title;\n\t\t}\n\n\t\tif (!this.data) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (typeof this.data === \"string\") {\n\t\t\treturn this.data;\n\t\t}\n\n\t\tif (\n\t\t\tthis.data.toString &&\n\t\t\tthis.data.constructor !== ({}).constructor\n\t\t) {\n\t\t\treturn this.data.toString();\n\t\t}\n\n\t\t// data can’t be reasonably converted to an end user readable string\n\t\treturn \"\";\n\t}\n\n\tset title(title) {\n\t\tthis._title = title;\n\t}\n\n\tprivate _title: string;\n\n\t/**\n\t * Creates an instance of TableHeaderItem.\n\t */\n\tconstructor(rawData?: any) {\n\t\t// defaults so we dont leave things empty\n\t\tconst defaults = {\n\t\t\tdata: \"\",\n\t\t\tvisible: this.visible,\n\t\t\tstyle: this.style,\n\t\t\tfilterCount: this.filterCount,\n\t\t\tfilterData: {data: \"\"}\n\t\t};\n\t\t// fill our object with provided props, and fallback to defaults\n\t\tconst data = Object.assign({}, defaults, rawData);\n\t\tfor (let property of Object.getOwnPropertyNames(data)) {\n\t\t\tif (data.hasOwnProperty(property)) {\n\t\t\t\tthis[property] = data[property];\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Used for sorting rows of the table.\n\t *\n\t * Override to enable different sorting.\n\t *\n\t * < 0 if `one` should go before `two`\n\t * > 0 if `one` should go after `two`\n\t * 0 if it doesn't matter (they are the same)\n\t */\n\tcompare(one: TableItem, two: TableItem): number {\n\t\tif (!one || !two) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (typeof one.data === \"string\") {\n\t\t\treturn one.data.localeCompare(two.data);\n\t\t}\n\n\t\tif (one.data < two.data) {\n\t\t\treturn -1;\n\t\t} else if (one.data > two.data) {\n\t\t\treturn 1;\n\t\t} else {\n\t\t\treturn 0;\n\t\t}\n\t}\n\n\t/**\n\t * Used to filter rows in the table.\n\t *\n\t * Override to make a custom filter.\n\t *\n\t * Even though there is just one filter function, there can be multiple filters.\n\t * When implementing filter, set `filterCount` before returning.\n\t *\n\t * `true` to hide the row\n\t * `false` to show the row\n\t */\n\tfilter(item: TableItem): boolean {\n\t\tthis.filterCount = 0;\n\t\treturn false;\n\t}\n}\n","import {\n\tTemplateRef\n} from \"@angular/core\";\n\nexport class TableItem {\n\t/**\n\t * Data for the table item.\n\t */\n\tdata: any;\n\n\t/**\n\t * Data for the expanded part of the row.\n\t *\n\t * You only need to set it for the first item in the row.\n\t *\n\t * See `expandAsTable` documentation if you need to the table to expand to additional\n\t * table rows.\n\t */\n\texpandedData: any;\n\n\t/**\n\t * Used to display data in a desired way.\n\t *\n\t * If not provided, displays data as a simple string.\n\t *\n\t * Usage:\n\t *\n\t * In a component where you're using the table create a template like:\n\t *\n\t * ```html\n\t * <ng-template #customItemTemplate let-data=\"data\">\n\t * \t<i><a [routerLink]=\"data.link\">{{data.name}}</a></i>\n\t * </ng-template>\n\t * ```\n\t * where we assume your data contains `link` and `name`. `let-data=\"data\"` is\n\t * necessary for you to be able to access item's data in the template.\n\t *\n\t * Create `ViewChild` property with:\n\t *\n\t * ```typescript\n\t * (at)ViewChild(\"customItemTemplate\")\n\t * protected customItemTemplate: TemplateRef<any>;\n\t * ```\n\t *\n\t * Set the template to the table item, for example:\n\t *\n\t * ```typescript\n\t * this.model.data = [\n\t * \t[new TableItem({data: {name: \"Custom item\", link: \"/table\"}, template: this.customItemTemplate})]\n\t * ];\n\t * ```\n\t */\n\ttemplate: TemplateRef<any>;\n\n\t/**\n\t * Template for rendering `expandedData`\n\t *\n\t * You only need to set it for the first item in the row.\n\t *\n\t */\n\texpandedTemplate: TemplateRef<any>;\n\n\t/**\n\t * Setting this to `true` makes table interpret `expandedData` as additional rows to insert in place\n\t * for expanded data. `expandedTemplate` is then ignored.\n\t *\n\t * You can apply the template for individual cells as usual.\n\t *\n\t * Example model data:\n\t *\n\t * ```typescript\n\t * this.model.data = [\n\t * \t[new TableItem({ data: \"Name 4\" }), new TableItem({ data: \"twer\" })], // regular row\n\t * \t[\n\t * \t\tnew TableItem({\n\t * \t\t\tdata: \"Name 3.1\",\n\t * \t\t\t// `expandedData` mimics the format of the rest of the table\n\t * \t\t\texpandedData: [\n\t * \t\t\t\t[\n\t * \t\t\t\t\tnew TableItem({ data: \"More names\", expandedData: \"No template\" }),\n\t * \t\t\t\t\tnew TableItem({ data: { name: \"Morey\", link: \"#\" }, template: this.customTableItemTemplate })\n\t * \t\t\t\t],\n\t * \t\t\t\t[\n\t * \t\t\t\t\tnew TableItem({ data: \"Core names\", expandedData: \"No template\" }),\n\t * \t\t\t\t\tnew TableItem({ data: { name: \"Corey\", link: \"#\" }, template: this.customTableItemTemplate })\n\t * \t\t\t\t]\n\t * \t\t\t],\n\t * \t\t\t// `expandAsTable` tells the table to interpret `expandedData` as table data\n\t * \t\t\texpandAsTable: true\n\t * \t\t}),\n\t * \t\tnew TableItem({ data: \"swer\" })\n\t * \t],\n\t * \t[new TableItem({ data: \"Name 7\" }), new TableItem({data: \"twer\"})] // regular row\n\t * ];\n\t * ```\n\t */\n\texpandAsTable: false;\n\n\t/**\n\t * The number of rows to span\n\t */\n\trowSpan = 1;\n\n\t/**\n\t * The number of columns to span\n\t */\n\tcolSpan = 1;\n\n\tget title() {\n\t\tif (typeof this._title === \"string\") {\n\t\t\treturn this._title;\n\t\t}\n\n\t\tif (!this.data) {\n\t\t\treturn \"\";\n\t\t}\n\n\t\tif (typeof this.data === \"string\") {\n\t\t\treturn this.data;\n\t\t}\n\n\t\tif (\n\t\t\tthis.data.toString &&\n\t\t\tthis.data.constructor !== ({}).constructor\n\t\t) {\n\t\t\treturn this.data.toString();\n\t\t}\n\n\t\t// data can’t be reasonably converted to an end user readable string\n\t\treturn \"\";\n\t}\n\n\tset title(title) {\n\t\tthis._title = title;\n\t}\n\n\tprivate _title: string;\n\n\t/**\n\t * Creates an instance of TableItem.\n\t */\n\tconstructor(rawData?: any) {\n\t\t// defaults so we dont leave things empty\n\t\tconst defaults = {\n\t\t\tdata: \"\"\n\t\t};\n\t\t// fill our object with provided props, and fallback to defaults\n\t\tconst data = Object.assign({}, defaults, rawData);\n\t\tfor (const property of Object.getOwnPropertyNames(data)) {\n\t\t\tif (data.hasOwnProperty(property)) {\n\t\t\t\tthis[property] = data[property];\n\t\t\t}\n\t\t}\n\t}\n}\n","import {\n\tEventEmitter\n} from \"@angular/core\";\n\nimport { PaginationModel } from \"carbon-components-angular/pagination\";\nimport { TableHeaderItem } from \"./table-header-item.class\";\nimport { TableItem } from \"./table-item.class\";\nimport { TableRow } from \"./table-row.class\";\nimport { Subject } from \"rxjs\";\n\nexport type HeaderType = number | \"select\" | \"expand\";\n\n/**\n * TableModel represents a data model for two-dimensional data. It's used for all things table\n * (table component, table toolbar, pagination, etc)\n *\n * TableModel manages its internal data integrity very well if you use the provided helper\n * functions for modifying rows and columns and assigning header and data in that order.\n *\n * It also provides direct access to the data so you can read and modify it.\n * If you change the structure of the data (by directly pushing into the arrays or otherwise),\n * keep in mind to keep the data structure intact.\n *\n * Header length and length of every line in the data should be equal.\n *\n * If they are not consistent, unexpected things will happen.\n *\n * Use the provided functions when in doubt.\n */\nexport class TableModel implements PaginationModel {\n\t/**\n\t * The number of models instantiated, used for (among other things) unique id generation\n\t */\n\tprotected static COUNT = 0;\n\n\t/**\n\t * Sets data of the table.\n\t *\n\t * Make sure all rows are the same length to keep the column count accurate.\n\t */\n\tset data(newData: TableItem[][]) {\n\t\tif (!newData || (Array.isArray(newData) && newData.length === 0) ) {\n\t\t\tnewData = [[]];\n\t\t}\n\n\t\tthis._data = newData;\n\n\t\t// init rowsSelected\n\t\tthis.rowsSelected = new Array<boolean>(this._data.length).fill(false);\n\t\tthis.rowsExpanded = new Array<boolean>(this._data.length).fill(false);\n\n\t\t// init rowsContext\n\t\tthis.rowsContext = new Array<string>(this._data.length);\n\n\t\t// init rowsClass\n\t\tthis.rowsClass = new Array<string>(this._data.length);\n\n\t\t// only create a fresh header if necessary (header doesn't exist or differs in length)\n\t\tif (this.header == null || (this.header.length !== this._data[0].length && this._data[0].length > 0)) {\n\t\t\tlet header = new Array<TableHeaderItem>();\n\t\t\tfor (let i = 0; i < this._data[0].length; i++) {\n\t\t\t\theader.push(new TableHeaderItem());\n\t\t\t}\n\t\t\tthis.header = header;\n\t\t}\n\n\t\tthis.dataChange.emit();\n\t}\n\n\tdataChange = new EventEmitter();\n\trowsSelectedChange = new EventEmitter<number>();\n\trowsExpandedChange = new EventEmitter<number>();\n\t/**\n\t * Gets emitted when `selectAll` is called. Emits false if all rows are deselected and true if\n\t * all rows are selected.\n\t */\n\tselectAllChange = new Subject<boolean>();\n\n\t/**\n\t * Gets the full data.\n\t *\n\t * You can use it to alter individual `TableItem`s but if you need to change\n\t * table structure, use `addRow()` and/or `addColumn()`\n\t */\n\tget data() {\n\t\treturn this._data;\n\t}\n\n\t/**\n\t * Contains information about selection state of rows in the table.\n\t */\n\trowsSelected: boolean[] = [];\n\n\t/**\n\t * Contains information about expanded state of rows in the table.\n\t */\n\trowsExpanded: boolean[] = [];\n\n\t/**\n\t * Contains information about the context of the row.\n\t *\n\t * It affects styling of the row to reflect the context.\n\t *\n\t * string can be one of `\"success\" | \"warning\" | \"info\" | \"error\" | \"\"` and it's\n\t * empty or undefined by default\n\t */\n\trowsContext: string[] = [];\n\n\t/**\n\t * Contains class name(s) of the row.\n\t *\n\t * It affects styling of the row to reflect the appended class name(s).\n\t *\n\t * It's empty or undefined by default\n\t */\n\trowsClass: string[] = [];\n\n\t/**\n\t * Contains information about the header cells of the table.\n\t */\n\theader: TableHeaderItem[] = [];\n\n\t/**\n\t * Tracks the current page.\n\t */\n\tcurrentPage = 1;\n\n\t/**\n\t * Length of page.\n\t */\n\tpageLength = 10;\n\n\t/**\n\t * Set to true when there is no more data to load in the table\n\t */\n\tisEnd = false;\n\n\t/**\n\t * Set to true when lazy loading to show loading indicator\n\t */\n\tisLoading = false;\n\n\t/**\n\t * Absolute total number of rows of the table.\n\t */\n\tprotected _totalDataLength: number;\n\n\t/**\n\t * Manually set data length in case the data in the table doesn't\n\t * correctly reflect all the data that table is to display.\n\t *\n\t * Example: if you have multiple pages of data that table will display\n\t * but you're loading one at a time.\n\t *\n\t * Set to `null` to reset to default behavior.\n\t */\n\tset totalDataLength(length: number) {\n\t\t// if this function is called without a parameter we need to set to null to avoid having undefined != null\n\t\tthis._totalDataLength = isNaN(length) ? null : length;\n\t}\n\n\t/**\n\t * Total length of data that table has access to, or the amount manually set\n\t */\n\tget totalDataLength() {\n\t\t// if manually set data length\n\t\tif (this._totalDataLength !== null && this._totalDataLength >= 0) {\n\t\t\treturn this._totalDataLength;\n\t\t}\n\n\t\t// if empty dataset\n\t\tif (this.data && this.data.length === 1 && this.data[0].length === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn this.data.length;\n\t}\n\n\t/**\n\t * Used in `data`\n\t */\n\tprotected _data: TableItem[][] = [[]];\n\n\t/**\n\t * The number of models instantiated, this is to make sure each table has a different\n\t * model count for unique id generation.\n\t */\n\tprotected tableModelCount = 0;\n\n\tconstructor() {\n\t\tthis.tableModelCount = TableModel.COUNT++;\n\t}\n\n\t/**\n\t * Returns an id for the given column\n\t *\n\t * @param column the column to generate an id for\n\t * @param row the row of the header to generate an id for\n\t */\n\tgetId(column: HeaderType, row = 0): string {\n\t\treturn `table-header-${row}-${column}-${this.tableModelCount}`;\n\t}\n\n\t/**\n\t * Returns the id of the header. Used to link the cells with headers (or headers with headers)\n\t *\n\t * @param column the column to start getting headers for\n\t * @param colSpan the number of columns to get headers for (defaults to 1)\n\t */\n\tgetHeaderId(column: HeaderType, colSpan = 1): string {\n\t\tif (column === \"select\" || column === \"expand\") {\n\t\t\treturn this.getId(column);\n\t\t}\n\n\t\tlet ids = [];\n\t\tfor (let i = column; i >= 0; i--) {\n\t\t\tif (this.header[i]) {\n\t\t\t\tfor (let j = 0; j < colSpan; j++) {\n\t\t\t\t\tids.push(this.getId(i + j));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn ids.join(\" \");\n\t}\n\n\t/**\n\t * Finds closest header by trying the `column` and then working its way to the left\n\t *\n\t * @param column the target column\n\t */\n\tgetHeader(column: number): TableHeaderItem {\n\t\tif (!this.header) {\n\t\t\treturn null;\n\t\t}\n\n\t\tfor (let i = column; i >= 0; i--) {\n\t\t\tconst headerCell = this.header[i];\n\t\t\tif (headerCell) {\n\t\t\t\treturn headerCell;\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * Returns how many rows is currently selected\n\t */\n\tselectedRowsCount(): number {\n\t\tlet count = 0;\n\t\tif (this.rowsSelected) {\n\t\t\tthis.rowsSelected.forEach(rowSelected => {\n\t\t\t\tif (rowSelected) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn count;\n\t}\n\n\t/**\n\t * Returns how many rows is currently expanded\n\t */\n\texpandedRowsCount(): number {\n\t\tlet count = 0;\n\t\tif (this.rowsExpanded) {\n\t\t\tthis.rowsExpanded.forEach(rowExpanded => {\n\t\t\t\tif (rowExpanded) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn count;\n\t}\n\n\t/**\n\t * Returns `index`th row of the table.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param index\n\t */\n\trow(index: number): TableItem[] {\n\t\treturn this.data[this.realRowIndex(index)];\n\t}\n\n\t/**\n\t * Adds a row to the `index`th row or appends to table if index not provided.\n\t *\n\t * If row is shorter than other rows or not provided, it will be padded with\n\t * empty `TableItem` elements.\n\t *\n\t * If row is longer than other rows, others will be extended to match so no data is lost.\n\t *\n\t * If called on an empty table with no parameters, it creates a 1x1 table.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param [row]\n\t * @param [index]\n\t */\n\taddRow(row?: TableItem[], index?: number) {\n\t\t// if table empty create table with row\n\t\tif (!this.data || this.data.length === 0 || this.data[0].length === 0) {\n\t\t\tlet newData = new Array<Array<TableItem>>();\n\t\t\tnewData.push(row ? row : [new TableItem()]); // row or one empty one column row\n\t\t\tthis.data = newData;\n\n\t\t\treturn;\n\t\t}\n\n\t\tlet realRow = row;\n\t\tconst columnCount = this.data[0].length;\n\n\t\tif (row == null) {\n\t\t\trealRow = new Array<TableItem>();\n\t\t\tfor (let i = 0; i < columnCount; i++) {\n\t\t\t\trealRow.push(new TableItem());\n\t\t\t}\n\t\t}\n\n\t\tif (realRow.length < columnCount) {\n\t\t\t// extend the length of realRow\n\t\t\tconst difference = columnCount - realRow.length;\n\t\t\tfor (let i = 0; i < difference; i++) {\n\t\t\t\trealRow.push(new TableItem());\n\t\t\t}\n\t\t} else if (realRow.length > columnCount) {\n\t\t\t// extend the length of header\n\t\t\tlet difference = realRow.length - this.header.length;\n\t\t\tfor (let j = 0; j < difference; j++) {\n\t\t\t\tthis.header.push(new TableHeaderItem());\n\t\t\t}\n\t\t\t// extend the length of every other row\n\t\t\tfor (let i = 0; i < this.data.length; i++) {\n\t\t\t\tlet currentRow = this.data[i];\n\t\t\t\tdifference = realRow.length - currentRow.length;\n\t\t\t\tfor (let j = 0; j < difference; j++) {\n\t\t\t\t\tcurrentRow.push(new TableItem());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (index == null) {\n\t\t\tthis.data.push(realRow);\n\n\t\t\t// update rowsSelected property for length\n\t\t\tthis.rowsSelected.push(false);\n\n\t\t\t// update rowsExpanded property for length\n\t\t\tthis.rowsExpanded.push(false);\n\n\t\t\t// update rowsContext property for length\n\t\t\tthis.rowsContext.push(undefined);\n\n\t\t\t// update rowsClass property for length\n\t\t\tthis.rowsClass.push(undefined);\n\t\t} else {\n\t\t\tconst ri = this.realRowIndex(index);\n\t\t\tthis.data.splice(ri, 0, realRow);\n\n\t\t\t// update rowsSelected property for length\n\t\t\tthis.rowsSelected.splice(ri, 0, false);\n\n\t\t\t// update rowsExpanded property for length\n\t\t\tthis.rowsExpanded.splice(ri, 0, false);\n\n\t\t\t// update rowsContext property for length\n\t\t\tthis.rowsContext.splice(ri, 0, undefined);\n\n\t\t\t// update rowsClass property for length\n\t\t\tthis.rowsClass.splice(ri, 0, undefined);\n\t\t}\n\n\t\tthis.dataChange.emit();\n\t}\n\n\t/**\n\t * Deletes `index`th row.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param index\n\t */\n\tdeleteRow(index: number) {\n\t\tconst rri = this.realRowIndex(index);\n\t\tthis.data.splice(rri, 1);\n\t\tthis.rowsSelected.splice(rri, 1);\n\t\tthis.rowsExpanded.splice(rri, 1);\n\t\tthis.rowsContext.splice(rri, 1);\n\t\tthis.rowsClass.splice(rri, 1);\n\n\t\tthis.dataChange.emit();\n\t}\n\n\thasExpandableRows() {\n\t\treturn this.data.some(data => data.some(d => d && d.expandedData)); // checking for some in 2D array\n\t}\n\n\tisRowExpandable(index: number) {\n\t\treturn this.data[index].some(d => d && d.expandedData);\n\t}\n\n\tisRowExpanded(index: number) {\n\t\treturn this.rowsExpanded[index];\n\t}\n\n\tgetRowContext(index: number) {\n\t\treturn this.rowsContext[index];\n\t}\n\n\t/**\n\t * Returns `index`th column of the table.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param index\n\t */\n\tcolumn(index: number): TableItem[] {\n\t\tlet column = new Array<TableItem>();\n\t\tconst ri = this.realColumnIndex(index);\n\t\tconst rc = this.data.length;\n\n\t\tfor (let i = 0; i < rc; i++) {\n\t\t\tconst row = this.data[i];\n\t\t\tcolumn.push(row[ri]);\n\t\t}\n\n\t\treturn column;\n\t}\n\n\t/**\n\t * Adds a column to the `index`th column or appends to table if index not provided.\n\t *\n\t * If column is shorter than other columns or not provided, it will be padded with\n\t * empty `TableItem` elements.\n\t *\n\t * If column is longer than other columns, others will be extended to match so no data is lost.\n\t *\n\t * If called on an empty table with no parameters, it creates a 1x1 table.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param [column]\n\t * @param [index]\n\t */\n\taddColumn(column?: TableItem[], index?: number) {\n\t\t// if table empty create table with row\n\t\tif (!this.data || this.data.length === 0 || this.data[0].length === 0) {\n\t\t\tlet newData = new Array<Array<TableItem>>();\n\t\t\tif (column == null) {\n\t\t\t\tnewData.push([new TableItem()]);\n\t\t\t} else {\n\t\t\t\tfor (let i = 0; i < column.length; i++) {\n\t\t\t\t\tlet item = column[i];\n\t\t\t\t\tnewData.push([item]);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.data = newData;\n\n\t\t\treturn;\n\t\t}\n\n\t\tlet rc = this.data.length; // row count\n\t\tlet ci = this.realColumnIndex(index);\n\n\t\t// append missing rows\n\t\tfor (let i = 0; column != null && i < column.length - rc; i++) {\n\t\t\tthis.addRow();\n\t\t}\n\t\trc = this.data.length;\n\t\tif (index == null) {\n\t\t\t// append to end\n\t\t\tfor (let i = 0; i < rc; i++) {\n\t\t\t\tlet row = this.data[i];\n\t\t\t\trow.push(column == null || column[i] == null ? new TableItem() : column[i]);\n\t\t\t}\n\t\t\t// update header if not already set by user\n\t\t\tif (this.header.length < this.data[0].length) {\n\t\t\t\tthis.header.push(new TableHeaderItem());\n\t\t\t}\n\t\t} else {\n\t\t\tif (index >= this.data[0].length) {\n\t\t\t\t// if trying to append\n\t\t\t\tci++;\n\t\t\t}\n\t\t\t// insert\n\t\t\tfor (let i = 0; i < rc; i++) {\n\t\t\t\tlet row = this.data[i];\n\t\t\t\trow.splice(ci, 0, column == null || column[i] == null ? new TableItem() : column[i]);\n\t\t\t}\n\t\t\t// update header if not already set by user\n\t\t\tif (this.header.length < this.data[0].length) {\n\t\t\t\tthis.header.splice(ci, 0, new TableHeaderItem());\n\t\t\t}\n\t\t}\n\n\t\tthis.dataChange.emit();\n\t}\n\n\t/**\n\t * Deletes `index`th column.\n\t *\n\t * Negative index starts from the end. -1 being the last element.\n\t *\n\t * @param index\n\t */\n\tdeleteColumn(index: number) {\n\t\tconst rci = this.realColumnIndex(index);\n\t\tconst rowCount = this.data.length;\n\t\tfor (let i = 0; i < rowCount; i++) {\n\t\t\tthis.data[i].splice(rci, 1);\n\t\t}\n\t\t// update header if not already set by user\n\t\tif (this.header.length > this.data[0].length) {\n\t\t\tthis.header.splice(rci, 1);\n\t\t}\n\n\t\tthis.dataChange.emit();\n\t}\n\n\tmoveColumn(indexFrom: number, indexTo: number) {\n\t\tconst headerFrom = this.header[indexFrom];\n\n\t\tthis.addColumn(this.column(indexFrom), indexTo);\n\t\tthis.deleteColumn(indexFrom + (indexTo < indexFrom ? 1 : 0));\n\n\t\tthis.header[indexTo + (indexTo > indexFrom ? -1 : 0)] = headerFrom;\n\t}\n\n\t/**\n\t * Sorts the data currently present in the model based on `compare()`\n\t *\n\t * Direction is set by `ascending` and `descending` properties of `TableHeaderItem`\n\t * in `index`th column.\n\t *\n\t * @param index The column based on which it's sorting\n\t */\n\tsort(index: number) {\n\t\tthis.pushRowStateToModelData();\n\t\tthis.data.sort((a, b) => (this.header[index].descending ? -1 : 1) * this.header[index].compare(a[index], b[index]));\n\t\tthis.popRowStateFromModelData();\n\t\tthis.header.forEach(column => column.sorted = false);\n\t\tthis.header[index].sorted = true;\n\t}\n\n\t/**\n\t * Appends `rowsSelected` and `rowsExpanded` info to model data.\n\t *\n\t * When sorting rows, do this first so information about row selection\n\t * gets sorted with the other row info.\n\t *\n\t * Call `popRowSelectionFromModelData()` after sorting to make everything\n\t * right with the world again.\n\t */\n\tpushRowStateToModelData() {\n\t\tfor (let i = 0; i < this.data.length; i++) {\n\t\t\tconst rowSelectedMark = new TableItem();\n\t\t\trowSelectedMark.data = this.rowsSelected[i];\n\t\t\tthis.data[i].push(rowSelectedMark);\n\n\t\t\tconst rowExpandedMark = new TableItem();\n\t\t\trowExpandedMark.data = this.rowsExpanded[i];\n\t\t\tthis.data[i].push(rowExpandedMark);\n\n\t\t\tconst rowContext = new TableItem();\n\t\t\trowContext.data = this.rowsContext[i];\n\t\t\tthis.data[i].push(rowContext);\n\n\t\t\tconst rowClass = new TableItem();\n\t\t\trowClass.data = this.rowsClass[i];\n\t\t\tthis.data[i].push(rowClass);\n\t\t}\n\t}\n\n\t/**\n\t * Restores `rowsSelected` from data pushed by `pushRowSelectionToModelData()`\n\t *\n\t * Call after sorting data (if you previously pushed to maintain selection order)\n\t * to make everything right with the world again.\n\t */\n\tpopRowStateFromModelData() {\n\t\tfor (let i = 0; i < this.data.length; i++) {\n\t\t\tthis.rowsClass[i] = this.data[i].pop().data;\n\t\t\tthis.rowsContext[i] = this.data[i].pop().data;\n\t\t\tthis.rowsExpanded[i] = !!this.data[i].pop().data;\n\t\t\tthis.rowsSelected[i] = !!this.data[i].pop().data;\n\t\t}\n\t}\n\n\t/**\n\t * Checks if row is filtered out.\n\t *\n\t * @param index\n\t * @returns true if any of the filters in header filters out the `index`th row\n\t */\n\tisRowFiltered(index: number): boolean {\n\t\tconst realIndex = this.realRowIndex(index);\n\t\treturn this.header.some((item, i) => item && item.filter(this.row(realIndex)[i]));\n\t}\n\n\t/**\n\t * Select/deselect `index`th row based on value\n\t *\n\t * @param index index of the row to select\n\t * @param value state to set the row to. Defaults to `true`\n\t */\n\tselectRow(index: number, value = true) {\n\t\tif (this.isRowDisabled(index)) {\n\t\t\treturn;\n\t\t}\n\t\tthis.rowsSelected[index] = value;\n\t\tthis.rowsSelectedChange.emit(index);\n\t}\n\n\t/**\n\t * Selects or deselects all rows in the model\n\t *\n\t * @param value state to set all rows to. Defaults to `true`\n\t */\n\tselectAll(value = true) {\n\t\tif (this.data.length >= 1 && this.data[0].length >= 1) {\n\t\t\tfor (let i = 0; i < this.rowsSelected.length; i++) {\n\t\t\t\tthis.selectRow(i, value);\n\t\t\t}\n\t\t}\n\t\tthis.selectAllChange.next(value);\n\t}\n\n\tisRowSelected(index: number) {\n\t\treturn this.rowsSelected[index];\n\t}\n\n\t/**\n\t * Checks if row is disabled or not.\n\t */\n\tisRowDisabled(index: number) {\n\t\tconst row = this.data[index] as TableRow;\n\t\treturn !!row.disabled;\n\t}\n\n\t/**\n\t * Expands/Collapses `index`th row based on value\n\t *\n\t * @param index index of the row to expand or collapse\n\t * @param value expanded state of the row. `true` is expanded and `false` is collapsed\n\t */\n\texpandRow(index: number, value = true) {\n\t\tthis.rowsExpanded[index] = value;\n\t\tthis.rowsExpandedChange.emit(index);\n\t}\n\n\t/**\n\t * Gets the true index of a row based on it's relative position.\n\t * Like in Python, positive numbers start from the top and\n\t * negative numbers start from the bottom.\n\t *\n\t * @param index\n\t */\n\tprotected realRowIndex(index: number): number {\n\t\treturn this.realIndex(index, this.data.length);\n\t}\n\n\t/**\n\t * Gets the true index of a column based on it's relative position.\n\t * Like in Python, positive numbers start from the top and\n\t * negative numbers start from the bottom.\n\t *\n\t * @param index\n\t */\n\tprotected realColumnIndex(index: number): number {\n\t\treturn this.realIndex(index, this.data[0].length);\n\t}\n\n\t/**\n\t * Generic function to calculate the real index of something.\n\t * Used by `realRowIndex()` and `realColumnIndex()`\n\t *\n\t * @param index\n\t * @param length\n\t */\n\tprotected realIndex(index: number, length: number): number {\n\t\tif (index == null) {\n\t\t\treturn length - 1;\n\t\t} else if (index >= 0) {\n\t\t\treturn index >= length ? length - 1 : index;\n\t\t} else {\n\t\t\treturn -index >= length ? 0 : length + index;\n\t\t}\n\t}\n}\n","import {\n\tBehaviorSubject,\n\tObservable,\n\tcombineLatest\n} from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport { TableAdapter } from \"./table-adapter.class\";\nimport { tabbableSelectorIgnoreTabIndex, getFocusElementList } from \"carbon-components-angular/common\";\n\n/**\n * The current and previous position in the grid.\n *\n * `current` and `previous` are tuples that follow the `[row, column]` convention.\n */\nexport interface DataGridPosition {\n\tcurrent: [number, number];\n\tprevious: [number, number];\n}\n\n/**\n * `DataGridInteractionModel` provides centralized control over arbitrary 2d grids, following the w3 specs.\n *\n * Refs:\n * - https://www.w3.org/TR/wai-aria-practices/examples/grid/dataGrids.html\n * - https://www.w3.org/TR/wai-aria-practices/#grid\n *\n * Example usage (taken from `table.component`):\n```typescript\n// a standard HTML table\nconst table = this.elementRef.nativeElement.querySelector(\"table\") as HTMLTableElement;\n\n// `TableDomAdapter` implements `TableAdapter` and provides a consistent interface to query rows and columns in a table\nconst tableAdapter = new TableDomAdapter(table);\n\n// the keydown events that we'll use for keyboard navigation of the table\nconst keydownEventStream = fromEvent<KeyboardEvent>(table, \"keydown\");\n\n// the click events we'll use to ensure focus is updated correctly on click\nconst clickEventStream = fromEvent<MouseEvent>(table, \"click\");\n\n// the `DataGridInteractionModel` instance!\nthis.interactionModel = new DataGridInteractionModel(keydownEventStream, clickEventStream, tableAdapter);\n\n// subscribe to the combined position updates\nthis.interactionModel.position.subscribe(event => {\n\tconst [currentRow, currentColumn] = event.current;\n\tconst [previousRow, previousColumn] = event.previous;\n\n\t// query the TableAdapter for the cell at the current row and column ...\n\tconst currentElement = tableAdapter.getCell(currentRow, currentColumn);\n\t// ... and make it focusable it\n\tTable.setTabIndex(currentElement, 0);\n\n\t// if the model has just initialized don't focus or reset anything\n\tif (previousRow === -1 || previousColumn === -1) { return; }\n\n\t// query the TableAdapter for the cell at the previous row and column ...\n\tconst previousElement = tableAdapter.getCell(previousRow, previousColumn);\n\t// ... and make it unfocusable (now there is only a single focusable cell)\n\tTable.setTabIndex(previousElement, -1);\n\n\t// finally, focus the current cell (skipped during initilzation)\n\tTable.focus(currentElement);\n});\n```\n */\nexport class DataGridInteractionModel {\n\t/**\n\t * An Observable that provides an aggregated view of the `rowIndex` and `columnIndex` Observables\n\t */\n\treadonly position: Observable<DataGridPosition>;\n\t/**\n\t * An Observable that provides the current and previous row indexes.\n\t */\n\treadonly rowIndex: Observable<{ current: number, previous: number }>;\n\t/**\n\t * An Observable that provides the current and previous column indexes.\n\t */\n\treadonly columnIndex: Observable<{ current: number, previous: number }>;\n\n\t/**\n\t * Internal subject to handle changes in row\n\t */\n\tprotected rowSubject = new BehaviorSubject({ current: 0, previous: -1 });\n\t/**\n\t * Internal subject to handle changes in column\n\t */\n\tprotected columnSubject = new BehaviorSubject({ current: 0, previous: -1 });\n\n\t/**\n\t * The latest value emitted by the rowSubject\n\t */\n\tprotected get currentRow() {\n\t\treturn this.rowSubject.getValue().current;\n\t}\n\n\t/**\n\t * The latest value emitted by the columnSubject\n\t */\n\tprotected get currentColumn() {\n\t\treturn this.columnSubject.getValue().current;\n\t}\n\n\t/**\n\t * The last column as reported by the adapter\n\t */\n\tprotected get lastColumn() {\n\t\treturn this.tableAdapter.lastColumnIndex;\n\t}\n\n\t/**\n\t * The last row as reported by the adapter\n\t */\n\tprotected get lastRow() {\n\t\treturn this.tableAdapter.lastRowIndex;\n\t}\n\n\t/**\n\t * `DataGridInteractionModel` requires knowledge of events, and a representation of your table/grid to be useful.\n\t *\n\t * @param keyboardEventStream an Observable of KeyboardEvents. Should be scoped to the table container.\n\t * @param clickEventStream an Observable of ClickEvents. should only include clicks that take action on items known by the TableAdapter\n\t * @param tableAdapter an instance of a concrete class that implements TableAdapter. The standard carbon table uses TableDomAdapter\n\t */\n\tconstructor(\n\t\tprotected keyboardEventStream: Observable<KeyboardEvent>,\n\t\tprotected clickEventStream: Observable<MouseEvent>,\n\t\tprotected tableAdapter: TableAdapter\n\t) {\n\t\tthis.rowIndex = this.rowSubject.asObservable();\n\t\tthis.columnIndex = this.columnSubject.asObservable();\n\t\tthis.position = combineLatest(this.rowIndex, this.columnIndex).pipe(map(positions => {\n\t\t\tconst [row, column] = positions;\n\t\t\treturn {\n\t\t\t\tcurrent: [row.current, column.current],\n\t\t\t\tprevious: [row.previous, column.previous]\n\t\t\t};\n\t\t})) as Observable<DataGridPosition>;\n\t\tthis.keyboardEventStream.subscribe(this.handleKeyboardEvent.bind(this));\n\t\tthis.clickEventStream.subscribe(this.handleClickEvent.bind(this));\n\t}\n\n\t/**\n\t * Handles moving the position according to the w3 datagrid navigation specs\n\t *\n\t * Refs:\n\t * - https://www.w3.org/TR/wai-aria-practices/examples/grid/dataGrids.html\n\t * - https://www.w3.org/TR/wai-aria-practices/#grid\n\t *\n\t * @param event the KeyboardEvent to handle\n\t */\n\thandleKeyboardEvent(event: KeyboardEvent) {\n\t\tconst currentCell = this.tableAdapter.getCell(this.currentRow, this.currentColumn);\n\t\tlet currentColumn = this.tableAdapter.findColumnIndex(currentCell);\n\t\tlet currentRow = this.tableAdapter.findRowIndex(currentCell);\n\n\t\tswitch (event.key) {\n\t\t\tcase \"ArrowRight\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// add the colspan since findColumnIndex will return the\n\t\t\t\t// first column containing the cell (of N columns it may span)\n\t\t\t\t// and we want to navigate to the next \"real\" column\n\t\t\t\tthis.goToColumn(currentColumn + currentCell.colSpan);\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowLeft\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\t// we only ever need to subtract 1 from the column, since findColumnIndex returns the\n\t\t\t\t// first of N columns containing the cell\n\t\t\t\tthis.goToColumn(currentColumn - 1);\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowDown\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.goToRow(currentRow + currentCell.rowSpan);\n\t\t\t\tbreak;\n\t\t\tcase \"ArrowUp\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.goToRow(currentRow - 1);\n\t\t\t\tbreak;\n\t\t\tcase \"Home\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (event.ctrlKey) {\n\t\t\t\t\tthis.goTo({row: 0, column: 0});\n\t\t\t\t} else {\n\t\t\t\t\tthis.goToColumn(0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"End\":\n\t\t\t\tevent.preventDefault();\n\t\t\t\tif (event.ctrlKey) {\n\t\t\t\t\tthis.goTo({ row: this.lastRow, column: this.lastColumn });\n\t\t\t\t} else {\n\t\t\t\t\tthis.goToColumn(this.lastColumn);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/**\n\t * Handles moving the position to the clicked cell\n\t *\n\t * @param event the MouseEvent to handle\n\t */\n\thandleClickEvent(event: MouseEvent) {\n\t\tconst cell = (event.target as HTMLElement).closest(\"td, th\") as HTMLTableCellElement;\n\t\tconst [rowIndex, cellIndex] = this.tableAdapter.findIndex(cell);\n\t\tthis.goTo({ row: rowIndex, column: cellIndex });\n\t}\n\n\t/**\n\t * Jump to a specific column without changing the row\n\t *\n\t * @param index column to jump to\n\t */\n\tgoToColumn(index: number) {\n\t\tif (index > this.lastColumn || index < 0) { return; }\n\t\tthis.goTo({ row: this.currentRow, column: index});\n\t}\n\n\t/**\n\t * Jump to a specific row without changing the column\n\t *\n\t * @param index row to jump to\n\t */\n\tgoToRow(index: number) {\n\t\tif (index > this.lastRow || index < 0) { return; }\n\t\tthis.goTo({row: index, column: this.currentColumn});\n\t}\n\n\t/**\n\t * Jump to the specified row and column\n\t *\n\t * @param param0 an object that contains `row` and `column` properties\n\t */\n\tgoTo({row, column}) {\n\t\tthis.rowSubject.next({ current: row, previous: this.currentRow });\n\t\tthis.columnSubject.next({ current: column, previous: this.currentColumn });\n\t}\n\n\t/**\n\t * Convenience method to reset the tab indexes on a standard carbon table.\n\t * For custom tables you may want to reset the indexes manually and simply call `.reset()`\n\t */\n\tresetTabIndexes(newTabIndex = -1) {\n\t\tfor (let i = 0; i < this.tableAdapter.lastRowIndex; i++) {\n\t\t\tconst row = this.tableAdapter.getRow(i) as HTMLTableRowElement;\n\t\t\tfor (const cell of Array.from(row.cells)) {\n\t\t\t\tconst tabbableElements = getFocusElementList(cell, tabbableSelectorIgnoreTabIndex);\n\t\t\t\ttabbableElements.forEach((node: HTMLElement) => node.tabIndex = newTabIndex);\n\t\t\t\tcell.tabIndex = newTabIndex;\n\t\t\t}\n\t\t}\n\n\t\tthis.reset();\n\t}\n\n\t/**\n\t * Resets the models focus position\n\t */\n\treset() {\n\t\tthis.rowSubject.next({ current: 0, previous: -1 });\n\t\tthis.columnSubject.next({ current: 0, previous: -1 });\n\t}\n}\n","/**\n * An abstract class that represents a cell in a table\n */\nexport abstract class TableCellAdapter {\n\t/**\n\t * The index of the cell in the table\n\t */\n\tcellIndex: number;\n\t/**\n\t * The number of columns spanned by this cell\n\t */\n\tcolSpan: number;\n\t/**\n\t * The number of rows spanned by this cell\n\t */\n\trowSpan: number;\n}\n\n/**\n * An abstract class that represents a row in a table\n */\nexport abstract class TableRowAdapter {\n\t/**\n\t * The index of the row in the table\n\t */\n\trowIndex: number;\n\t/**\n\t * An array (or `HTMLCollection`) of `TableCellAdapter`s\n\t */\n\tcells: HTMLCollection | TableCellAdapter[];\n}\n\n/**\n * An abstract representation of a table that provides\n * a standard interface to query 2d tables for cell and row information.\n */\nexport abstract class TableAdapter {\n\t/**\n\t * The last accessible column in the table\n\t */\n\tpublic get lastColumnIndex(): number { return; }\n\n\t/**\n\t * The last accessible row in the table\n\t */\n\tpublic get lastRowIndex(): number { return; }\n\n\t/**\n\t * Returns a cell from the table\n\t *\n\t * @param row index of the row\n\t * @param column index of the column\n\t */\n\tgetCell(row: number, column: number): TableCellAdapter { return; }\n\n\t/**\n\t * Returns a row from the table\n\t *\n\t * @param column index of the column\n\t */\n\tgetColumn(column: number): TableCellAdapter[] { return; }\n\n\t/**\n\t * Returns a row from the table\n\t *\n\t * @param row index of the row\n\t */\n\tgetRow(row: number): TableRowAdapter { return; }\n\n\t/**\n\t * Finds the column index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t */\n\tfindColumnIndex(cell: TableCellAdapter): number { return; }\n\n\t/**\n\t * Finds the row index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t */\n\tfindRowIndex(cell: TableCellAdapter): number { return; }\n\n\t/**\n\t * Finds the row and column index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t * @returns a tuple that follows the `[row, column]` convention\n\t */\n\tfindIndex(cell: TableCellAdapter): [number, number] { return; }\n}\n\nenum TableDomSpanDirection {\n\tcolSpan = \"colSpan\",\n\trowSpan = \"rowSpan\"\n}\n\n/**\n * A concrete implementation of `TableAdapter`\n *\n * Provides standard and consistent access to table cells and rows\n */\nexport class TableDomAdapter implements TableAdapter {\n\t/**\n\t * The last accessible column in the table\n\t */\n\tpublic get lastColumnIndex() {\n\t\treturn this.getRealRowLength(this.tableElement.rows[0]);\n\t}\n\n\t/**\n\t * The last accessible row in the table\n\t */\n\tpublic get lastRowIndex() {\n\t\treturn this.tableElement.rows.length - 1;\n\t}\n\n\t/**\n\t * `TableDomAdapter` works on a normal HTML table structure.\n\t * Custom tables that don't follow the standard structure should use a custom implementation of `TableAdapter`.\n\t *\n\t * The standard structure allows us to directly query rows for cells and indexes - though we do have to handle colspans specially.\n\t *\n\t * @param tableElement the root HTML table element.\n\t */\n\tconstructor(public tableElement: HTMLTableElement) { }\n\n\t/**\n\t * Returns a cell from the table taking colspans in to account.\n\t *\n\t * @param row index of the row\n\t * @param column index of the column\n\t */\n\tgetCell(row: number, column: number): HTMLTableCellElement {\n\t\tconst col = this.getColumn(column);\n\n\t\treturn this.findCellInColumn(col, row).cell;\n\t}\n\n\t/**\n\t * Returns a column from the table, using the `id` and `headers` attributes\n\t *\n\t * See here for more detail these attributes: https://www.w3.org/TR/WCAG20-TECHS/H43.html\n\t *\n\t * @param column the index of the column\n\t */\n\tgetColumn(column: number): HTMLTableCellElement[] {\n\t\tconst firstHeader = Array.from(this.tableElement.rows[0].cells);\n\n\t\tconst { cell: header, realIndex: realColumnIndex } = this.findCellInRow(firstHeader, column);\n\n\t\tconst linkedCells: HTMLTableCellElement[] = [];\n\n\t\tfor (let i = 1; i < this.tableElement.rows.length; i++) {\n\t\t\tconst row = this.tableElement.rows[i];\n\t\t\t// query for any cells that are linked to the given header id\n\t\t\t// `~=` matches values in space separated lists - so `[headers~='foo']` would match `headers=\"foo bar\"` and `headers=\"foo\"`\n\t\t\t// but not `headers=\"bar\"` or `headers=\"bar baz\"`\n\t\t\tconst linkedRowCells: NodeListOf<HTMLTableCellElement> = row.querySelectorAll(`[headers~='${header.id}']`);\n\t\t\t// if we have more than one cell, get the one that is closest to the column\n\t\t\tif (linkedRowCells.length > 1) {\n\t\t\t\tconst { cell } = this.findCellInRow(Array.from(linkedRowCells), column - realColumnIndex);\n\t\t\t\tlinkedCells.push(cell);\n\t\t\t} else if (linkedRowCells[0]) {\n\t\t\t\tlinkedCells.push(linkedRowCells[0]);\n\t\t\t}\n\t\t}\n\n\t\t// return an empty array if we can't find any linked cells\n\t\t// returning anything else would be a lie\n\t\tif (!linkedCells) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [header, ...linkedCells];\n\t}\n\n\t/**\n\t * Returns a row from the table\n\t *\n\t * @param row index of the row\n\t */\n\tgetRow(row: number): HTMLTableRowElement {\n\t\treturn this.tableElement.rows[row];\n\t}\n\n\t/**\n\t * Finds the column index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t */\n\tfindColumnIndex(cell: HTMLTableCellElement): number {\n\t\tconst row = this.getRow(this.findRowIndex(cell));\n\t\tif (!row) {\n\t\t\treturn;\n\t\t}\n\t\t// if the cell has linked headers we can do a more accurate lookup\n\t\tif (cell && cell.headers) {\n\t\t\tconst ids = cell.headers.split(\" \");\n\t\t\tconst headerRows = Array.from(this.tableElement.tHead.rows);\n\t\t\tconst indexes = [];\n\n\t\t\t// start from the last row and work up\n\t\t\tfor (const headerRow of headerRows.reverse()) {\n\t\t\t\tconst headerCells = Array.from(headerRow.cells);\n\t\t\t\tconst header = headerCells.find(headerCell => ids.includes(headerCell.id));\n\t\t\t\t// if we have a matching header, find it's index (adjusting for colspans)\n\t\t\t\tif (header) {\n\t\t\t\t\t// this is borrowed from below\n\t\t\t\t\tlet cellIndex = 0;\n\t\t\t\t\tfor (const c of headerCells) {\n\t\t\t\t\t\tif (c === header) { break; }\n\t\t\t\t\t\tcellIndex += c.colSpan;\n\t\t\t\t\t}\n\t\t\t\t\tindexes.push(cellIndex);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// sort the indexes largest to smallest to find the closest matching header index\n\t\t\tconst firstIndex = indexes.sort((a, b) => b - a)[0];\n\n\t\t\t// search the row for cells that share the header\n\t\t\tlet similarCells = [];\n\t\t\tfor (const id of ids) {\n\t\t\t\t// there's no selector that will match two space separated lists,\n\t\t\t\t// so we have to iterate through the ids and query the row for each\n\t\t\t\tconst rowCells = Array.from(row.querySelectorAll(`[headers~='${id}']`));\n\t\t\t\tfor (const rowCell of rowCells) {\n\t\t\t\t\t// only keep one set of cells\n\t\t\t\t\tif (!similarCells.includes(rowCell)) {\n\t\t\t\t\t\tsimilarCells.push(rowCell);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// DOM order is not preserved, so we have to sort the row\n\t\t\tsimilarCells = similarCells.sort((a: HTMLTableCellElement, b: HTMLTableCellElement) => a.cellIndex - b.cellIndex);\n\n\t\t\t// return the header index plus any adjustment within that headers column\n\t\t\treturn firstIndex + similarCells.indexOf(cell);\n\t\t}\n\n\t\t// fallback if the cell isn't linked to any headers\n\t\tlet cellIndex = 0;\n\t\tfor (const c of Array.from(row.cells)) {\n\t\t\tif (c === cell) { break; }\n\t\t\tcellIndex += c.colSpan;\n\t\t}\n\t\treturn cellIndex;\n\t}\n\n\t/**\n\t * Finds the row index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t */\n\tfindRowIndex(cell: HTMLTableCellElement): number {\n\t\tfor (const row of Array.from(this.tableElement.rows)) {\n\t\t\tif (row.contains(cell)) {\n\t\t\t\treturn row.rowIndex;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Finds the row and column index of a given cell\n\t *\n\t * @param cell the cell to search for\n\t * @returns a tuple that follows the `[row, column]` convention\n\t */\n\tfindIndex(cell: HTMLTableCellElement): [number, number] {\n\t\treturn [this.findRowIndex(cell), this.findColumnIndex(cell)];\n\t}\n\n\t/**\n\t * Helper function that returns the \"real\" length of a row.\n\t * Only accurate with regard to colspans (though that's sufficient for it's uses here)\n\t *\n\t * TODO: Take rowSpan into account\n\t *\n\t * @param row the row to get the length of\n\t */\n\tprotected getRealRowLength(row: HTMLTableRowElement): number {\n\t\t// start at -1 since the colspans will sum to 1 index greater than the total\n\t\treturn Array.from(row.cells).reduce((count, cell) => count + cell.colSpan, -1);\n\t}\n\n\t/**\n\t * Finds a cell and it's real index given an array of cells, a target index, and the spanning direction\n\t *\n\t * @param cells An array of cells to search\n\t * @param targetIndex The index we think the cell is located at\n\t * @param spanDirection The direction of the cell spans. Should be `\"colSpan\"` for a row and `\"rowSpan\"` for a column\n\t */\n\tprotected findCell(cells: HTMLTableCellElement[], targetIndex: number, spanDirection: TableDomSpanDirection) {\n\t\t// rows/cols can have fewer total cells than the actual table\n\t\t// the model pretends all rows/cols behave the same (with col/row spans > 1 being N cells long)\n\t\t// this maps that view to the HTML view (col/row spans > 1 are one element, so the array is shorter)\n\t\tlet realIndex = 0;\n\t\t// i is only used for iterating the cells\n\t\tfor (let i = 0; i < targetIndex;) {\n\t\t\t// skip the next N cells\n\t\t\ti += cells[realIndex][spanDirection];\n\t\t\t// don't bump realIndex if i now exceeds the cell we're shooting for\n\t\t\tif (i > targetIndex) { break; }\n\t\t\t// finally, increment realIndex (to keep it generally in step with i)\n\t\t\trealIndex++;\n\t\t}\n\n\t\treturn {\n\t\t\tcell: cells[realIndex],\n\t\t\trealIndex\n\t\t};\n\t}\n\n\t/**\n\t * Helper method around `findCell`, searches based on a row of cells\n\t *\n\t * @param row the row of elements to search\n\t * @param index the index of the element\n\t */\n\tprotected findCellInRow(row: HTMLTableCellElement[], index: number) {\n\t\treturn this.findCell(row, index, TableDomSpanDirection.colSpan);\n\t}\n\n\t/**\n\t * Helper method around `findCell`, searches based on a column of cells\n\t *\n\t * @param col the column of elements to search\n\t * @param index the index of the element\n\t */\n\tprotected findCellInColumn(col: HTMLTableCellElement[], index: number) {\n\t\treturn this.findCell(col, index, TableDomSpanDirection.rowSpan);\n\t}\n}\n","import {\n\tComponent,\n\tHostBinding\n} from \"@angular/core\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableHeadExpand]\",\n\ttemplate: `\n\t\t<ng-content></ng-content>\n\t`\n})\nexport class TableHeadExpand {\n\t@HostBinding(\"class.cds--table-expand\") hostClass = true;\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tHostBinding,\n\tEventEmitter\n} from \"@angular/core\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\nimport { TableRowSize } from \"../table.types\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableHeadCheckbox]\",\n\ttemplate: `\n\t\t<ibm-checkbox\n\t\t\t*ngIf=\"!skeleton\"\n\t\t\tinline=\"true\"\n\t\t\t[name]=\"name\"\n\t\t\t[checked]=\"checked\"\n\t\t\t[indeterminate]=\"indeterminate\"\n\t\t\t(checkedChange)=\"change.emit()\"\n\t\t\t[ariaLabel]=\"getAriaLabel() | async\">\n\t\t</ibm-checkbox>\n\t`,\n\tstyles: [`\n :host { width: 10px; }\n `]\n})\nexport class TableHeadCheckbox {\n\tprivate static tableSelectAllCount = 0;\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t@Input() checked = false;\n\n\t@Input() indeterminate = false;\n\n\t@Input() skeleton = false;\n\n\t@Input() name = `select-all-${TableHeadCheckbox.tableSelectAllCount++}`;\n\n\t@Input()\n\tset ariaLabel(value: string | Observable<string>) {\n\t\tthis._ariaLabel.override(value);\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel.value;\n\t}\n\n\t@Output() change = new EventEmitter<void>();\n\n\t@HostBinding(\"class.cds--table-column-checkbox\") hostClass = true;\n\n\tprotected _ariaLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_HEADER\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\tgetAriaLabel(): Observable<string> {\n\t\treturn this._ariaLabel.subject;\n\t}\n}\n","import {\n\tDirective,\n\tHostBinding\n} from \"@angular/core\";\n\n@Directive({\n\tselector: \"[ibmTableHeadCellLabel]\"\n})\n\n\nexport class TableHeadCellLabel {\n\t@HostBinding(\"class.cds--table-header-label\") baseClass = true;\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding,\n\tOnChanges\n} from \"@angular/core\";\nimport { Observable, OperatorFunction } from \"rxjs\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { map } from \"rxjs/operators\";\nimport { TableHeaderItem } from \"../table-header-item.class\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableHeadCell]\",\n\ttemplate: `\n\t\t<button\n\t\t\tclass=\"cds--table-sort\"\n\t\t\t*ngIf=\"sortable && this.sort.observers.length > 0 && column.sortable\"\n\t\t\t[attr.aria-label]=\"(column.sorted && column.ascending ? getSortDescendingLabel() : getSortAscendingLabel()) | async\"\n\t\t\taria-live=\"polite\"\n\t\t\t[ngClass]=\"{\n\t\t\t\t'cds--table-sort--active': column.sorted,\n\t\t\t\t'cds--table-sort--ascending': column.ascending\n\t\t\t}\"\n\t\t\t(click)=\"onClick()\">\n\t\t\t<span\n\t\t\t\tclass=\"cds--table-sort__flex\"\n\t\t\t\t[title]=\"column.title\"\n\t\t\t\ttabindex=\"-1\">\n\t\t\t\t<div *ngIf=\"!skeleton && !column.template\" ibmTableHeadCellLabel>\n\t\t\t\t\t{{column.data}}\n\t\t\t\t</div>\n\t\t\t\t<ng-template\n\t\t\t\t\t*ngIf=\"!skeleton && column.template\"\n\t\t\t\t\t[ngTemplateOutlet]=\"column.template\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{data: column.data}\">\n\t\t\t\t</ng-template>\n\t\t\t\t<svg\n\t\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\tstyle=\"will-change: transform;\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tclass=\"cds--table-sort__icon\"\n\t\t\t\t\twidth=\"16\"\n\t\t\t\t\theight=\"16\"\n\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t<path d=\"M12.3 9.3l-3.8 3.8V1h-1v12.1L3.7 9.3 3 10l5 5 5-5z\"></path>\n\t\t\t\t</svg>\n\t\t\t\t<svg\n\t\t\t\t\t*ngIf=\"!skeleton\"\n\t\t\t\t\tfocusable=\"false\"\n\t\t\t\t\tpreserveAspectRatio=\"xMidYMid meet\"\n\t\t\t\t\tstyle=\"will-change: transform;\"\n\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\tclass=\"cds--table-sort__icon-unsorted\"\n\t\t\t\t\twidth=\"16\"\n\t\t\t\t\theight=\"16\"\n\t\t\t\t\tviewBox=\"0 0 16 16\"\n\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t<path d=\"M13.8 10.3L12 12.1V2h-1v10.1l-1.8-1.8-.7.7 3 3 3-3zM4.5 2l-3 3 .7.7L4 3.9V14h1V3.9l1.8 1.8.7-.7z\"></path>\n\t\t\t\t</svg>\n\t\t\t</span>\n\t\t</button>\n\t\t<div\n\t\t\tclass=\"cds--table-header-label\"\n\t\t\t*ngIf=\"!skeleton && this.sort.observers.length === 0 || (this.sort.observers.length > 0 && !column.sortable) || !sortable\">\n\t\t\t<span *ngIf=\"!column.template\" [title]=\"column.data\">{{column.data}}</span>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"column.template\" [ngTemplateOutletContext]=\"{data: column.data}\">\n\t\t\t</ng-template>\n\t\t</div>\n\t`\n})\nexport class TableHeadCell implements OnChanges {\n\t@Input() column: TableHeaderItem;\n\n\t@Input() skeleton = false;\n\n\t@Input() sortable = true;\n\n\t@Input()\n\tset sortDescendingLabel(value: string | Observable<string>) {\n\t\tthis._sortDescendingLabel.override(value);\n\t}\n\n\tget sortDescendingLabel() {\n\t\treturn this._sortDescendingLabel.value;\n\t}\n\n\t@Input()\n\tset sortAscendingLabel(value: string | Observable<string>) {\n\t\tthis._sortAscendingLabel.override(value);\n\t}\n\n\tget sortAscendingLabel() {\n\t\treturn this._sortAscendingLabel.value;\n\t}\n\n\t@Input()\n\tset filterTitle(value: string | Observable<string>) {\n\t\tthis._filterTitle.override(value);\n\t}\n\n\tget filterTitle() {\n\t\treturn this._filterTitle.value;\n\t}\n\n\t/**\n\t * Notifies that the column should be sorted\n\t */\n\t@Output() sort = new EventEmitter();\n\n\t@HostBinding(\"class.thead_action\") theadAction = false;\n\n\tprotected _sortDescendingLabel = this.i18n.getOverridable(\"TABLE.SORT_DESCENDING\");\n\tprotected _sortAscendingLabel = this.i18n.getOverridable(\"TABLE.SORT_ASCENDING\");\n\tprotected _filterTitle = this.i18n.getOverridable(\"TABLE.FILTER\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\tngOnChanges() {\n\t\t// Since it's not an input, and it touches the view, we're using `ngOnChanges`\n\t\t// `get`ters have caused issues in the past with the view updating outside of change detection\n\t\tthis.theadAction = !!this.column.filterTemplate || this.sort.observers.length > 0;\n\t}\n\n\tgetSortDescendingLabel(): Observable<string> {\n\t\treturn this._sortDescendingLabel.subject.pipe(this.sortLabelMap());\n\t}\n\n\tgetSortAscendingLabel(): Observable<string> {\n\t\treturn this._sortAscendingLabel.subject.pipe(this.sortLabelMap());\n\t}\n\n\tonClick() {\n\t\tif (!this.skeleton) {\n\t\t\tthis.sort.emit();\n\t\t}\n\t}\n\n\tprotected sortLabelMap(): OperatorFunction<string, string> {\n\t\treturn map((str: string) => {\n\t\t\tif (this.column.ariaSortLabel) {\n\t\t\t\treturn this.column.ariaSortLabel;\n\t\t\t}\n\t\t\tif (this.column.formatSortLabel) {\n\t\t\t\treturn this.column.formatSortLabel(str, this.column.ariaSortLabel);\n\t\t\t}\n\t\t\treturn `${this.column.data} - ${str}`;\n\t\t});\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tAfterViewInit\n} from \"@angular/core\";\n\nimport { TableModel } from \"../table-model.class\";\nimport { getScrollbarWidth } from \"carbon-components-angular/utils\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\nimport { TableRowSize } from \"../table.types\";\n\n/**\n * A subcomponent that creates the thead of the table\n *\n * ## Basic usage\n *\n * ```html\n * \t<thead ibmTableHead [model]=\"model\"></thead>\n * ```\n */\n@Component({\n\t// tslint:disable-next-line:component-selector\n\tselector: \"[ibmTableHead]\",\n\ttemplate: `\n\t<ng-container *ngIf=\"model\">\n\t\t<tr>\n\t\t\t<th\n\t\t\t\tibmTableHeadExpand\n\t\t\t\t*ngIf=\"model.hasExpandableRows()\"\n\t\t\t\tscope=\"col\"\n\t\t\t\t[ngClass]=\"{'cds--table-expand-v2': stickyHeader}\"\n\t\t\t\t[id]=\"model.getId('expand')\">\n\t\t\t</th>\n\t\t\t<th\n\t\t\t\t*ngIf=\"!skeleton && showSelectionColumn && enableSingleSelect\"\n\t\t\t\tscope=\"col\"\n\t\t\t\tstyle=\"width: 0;\"\n\t\t\t\t[id]=\"model.getId('select')\">\n\t\t\t\t<!-- add width 0; since the carbon styles don't seem to constrain this headers width -->\n\t\t\t</th>\n\t\t\t<th\n\t\t\t\tibmTableHeadCheckbox\n\t\t\t\t*ngIf=\"!skeleton && showSelectionColumn && !enableSingleSelect\"\n\t\t\t\tscope=\"col\"\n\t\t\t\t[checked]=\"selectAllCheckbox\"\n\t\t\t\t[indeterminate]=\"selectAllCheckboxSomeSelected\"\n\t\t\t\t[ariaLabel]=\"getCheckboxHeaderLabel()\"\n\t\t\t\t[size]=\"size\"\n\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t[name]=\"model.getHeaderId('select')\"\n\t\t\t\t(change)=\"onSelectAllCheckboxChange()\"\n\t\t\t\t[id]=\"model.getId('select')\">\n\t\t\t</th>\n\t\t\t<ng-container *ngFor=\"let column of model.header; let i = index\">\n\t\t\t\t<th\n\t\t\t\t\t*ngIf=\"column && column.visible\"\n\t\t\t\t\t[ngStyle]=\"column.style\"\n\t\t\t\t\tibmTableHeadCell\n\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t[class]=\"column.className\"\n\t\t\t\t\t[sortable]=\"sortable\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[id]=\"model.getId(i)\"\n\t\t\t\t\t[column]=\"column\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[filterTitle]=\"getFilterTitle()\"\n\t\t\t\t\t[attr.colspan]=\"column.colSpan\"\n\t\t\t\t\t[attr.rowspan]=\"column.rowSpan\"\n\t\t\t\t\t(sort)=\"sort.emit(i)\">\n\t\t\t\t</th>\n\t\t\t</ng-container>\n\t\t\t<th *ngIf=\"!skeleton && stickyHeader && scrollbarWidth\"\n\t\t\t\tscope=\"col\"\n\t\t\t\t[ngStyle]=\"{'width': scrollbarWidth + 'px', 'padding': 0, 'border': 0}\">\n\t\t\t\t<!--\n\t\t\t\t\tScrollbar pushes body to the left so this header column is added to push\n\t\t\t\t\tthe title bar the same amount and keep the header and body columns aligned.\n\t\t\t\t-->\n\t\t\t</th>\n\t\t</tr>\n\t</ng-container>\n\t<ng-content></ng-content>\n\t`,\n\tstyles: [`\n\t\t.cds--table-expand-v2 {\n\t\t\tpadding-left: 2.5rem;\n\t\t}\n\t`]\n})\nexport class TableHead implements AfterViewInit {\n\t@Input() model: TableModel;\n\n\t@Input() showSelectionColumn = true;\n\n\t@Input() enableSingleSelect = false;\n\n\t@Input() selectAllCheckboxSomeSelected = false;\n\n\t@Input() selectAllCheckbox = false;\n\n\t@Input() skeleton = false;\n\n\t@Input() stickyHeader = false;\n\n\t/**\n\t * Setting sortable to false will disable all headers including headers which are sortable. Is is\n\t * possible to set the sortable state on the header item to disable/enable sorting for only some headers.\n\t */\n\t@Input() sortable = true;\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t@Input()\n\tset checkboxHeaderLabel(value: string | Observable<string>) {\n\t\tthis._checkboxHeaderLabel.override(value);\n\t}\n\n\tget checkboxHeaderLabel() {\n\t\treturn this._checkboxHeaderLabel.value;\n\t}\n\n\t@Input()\n\tset sortDescendingLabel(value: string | Observable<string>) {\n\t\tthis._sortDescendingLabel.override(value);\n\t}\n\n\tget sortDescendingLabel() {\n\t\treturn this._sortDescendingLabel.value;\n\t}\n\n\t@Input()\n\tset sortAscendingLabel(value: string | Observable<string>) {\n\t\tthis._sortAscendingLabel.override(value);\n\t}\n\n\tget sortAscendingLabel() {\n\t\treturn this._sortAscendingLabel.value;\n\t}\n\n\t@Input()\n\tset filterTitle(value: string | Observable<string>) {\n\t\tthis._filterTitle.override(value);\n\t}\n\n\tget filterTitle() {\n\t\treturn this._filterTitle.value;\n\t}\n\n\t/**\n\t * Emits an index of the column that wants to be sorted.\n\t */\n\t@Output() sort = new EventEmitter<number>();\n\t/**\n\t * Emits if all rows are selected.\n\t *\n\t * @param model\n\t */\n\t@Output() selectAll = new EventEmitter<TableModel>();\n\t/**\n\t * Emits if all rows are deselected.\n\t *\n\t * @param model\n\t */\n\t@Output() deselectAll = new EventEmitter<TableModel>();\n\n\tpublic scrollbarWidth = 0;\n\n\tprotected _checkboxHeaderLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_HEADER\");\n\tprotected _sortDescendingLabel = this.i18n.getOverridable(\"TABLE.SORT_DESCENDING\");\n\tprotected _sortAscendingLabel = this.i18n.getOverridable(\"TABLE.SORT_ASCENDING\");\n\tprotected _filterTitle = this.i18n.getOverridable(\"TABLE.FILTER\");\n\n\tconstructor(protected i18n: I18n) {}\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tthis.scrollbarWidth = getScrollbarWidth();\n\t\t});\n\t}\n\n\tonSelectAllCheckboxChange() {\n\t\tif (!this.selectAllCheckbox && !this.selectAllCheckboxSomeSelected) {\n\t\t\tthis.selectAll.emit(this.model);\n\t\t} else {\n\t\t\tthis.deselectAll.emit(this.model);\n\t\t}\n\t}\n\n\tgetCheckboxHeaderLabel(): Observable<string> {\n\t\treturn this._checkboxHeaderLabel.subject;\n\t}\n\n\tgetSortDescendingLabel(): Observable<string> {\n\t\treturn this._sortDescendingLabel.subject;\n\t}\n\n\tgetSortAscendingLabel(): Observable<string> {\n\t\treturn this._sortAscendingLabel.subject;\n\t}\n\n\tgetFilterTitle(): Observable<string> {\n\t\treturn this._filterTitle.subject;\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding\n} from \"@angular/core\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableExpandButton]\",\n\ttemplate: `\n\t\t<button\n\t\t\t*ngIf=\"expandable\"\n\t\t\tclass=\"cds--table-expand__button\"\n\t\t\t[attr.aria-label]=\"getAriaLabel() | async\"\n\t\t\t(click)=\"expandRow.emit()\">\n\t\t\t<svg ibmIcon=\"chevron--right\" size=\"16\" class=\"cds--table-expand__svg\"></svg>\n\t\t</button>\n\t`\n})\nexport class TableExpandButton {\n\t/**\n\t * Set to true to indicate the row has expanded\n\t */\n\t@Input() expanded = false;\n\t/**\n\t * Set to true to indicate the row can be expanded.\n\t * Defaults to false to allow for correct column alignment\n\t */\n\t@Input() expandable = false;\n\n\t@Input()\n\tset ariaLabel(value: string | Observable<string>) {\n\t\tthis._ariaLabel.override(value);\n\t}\n\n\tget ariaLabel() {\n\t\treturn this._ariaLabel.value;\n\t}\n\n\t@Input() skeleton = false;\n\n\t@HostBinding(\"class.cds--table-expand\") expandClass = true;\n\n\t@HostBinding(\"attr.data-previous-value\") get previousValue() {\n\t\treturn this.expanded ? \"collapsed\" : null;\n\t}\n\n\t@Output() expandRow = new EventEmitter<void>();\n\n\tprotected _ariaLabel = this.i18n.getOverridable(\"TABLE.EXPAND_BUTTON\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\tgetAriaLabel(): Observable<string> {\n\t\treturn this._ariaLabel.subject;\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter\n} from \"@angular/core\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { TableItem } from \"../table-item.class\";\nimport { TableRow } from \"../table-row.class\";\nimport { Observable } from \"rxjs\";\nimport { TableRowSize } from \"../table.types\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableCheckbox]\",\n\ttemplate: `\n\t\t<ibm-checkbox\n\t\t\t*ngIf=\"!skeleton\"\n\t\t\tinline=\"true\"\n\t\t\t[name]=\"name\"\n\t\t\t[ariaLabel]=\"getLabel() | i18nReplace:getSelectionLabelValue(row) | async\"\n\t\t\t[checked]=\"selected\"\n\t\t\t[disabled]=\"disabled\"\n\t\t\t(checkedChange)=\"selectedChange.emit()\">\n\t\t</ibm-checkbox>\n\t`\n})\nexport class TableCheckbox {\n\t@Input() row: TableItem[];\n\n\t@Input() selected = false;\n\n\t@Input() name = \"\";\n\n\tget disabled(): boolean {\n\t\treturn this.row ? !!(this.row as TableRow).disabled : false;\n\t}\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t@Input()\n\tset label(value: string | Observable<string>) {\n\t\tthis._label.override(value);\n\t}\n\n\tget label() {\n\t\treturn this._label.value;\n\t}\n\n\t/**\n\t * Used to populate the row selection checkbox label with a useful value if set.\n\t *\n\t * Example:\n\t * ```\n\t * <ibm-table [selectionLabelColumn]=\"0\"></ibm-table>\n\t * <!-- results in aria-label=\"Select first column value\"\n\t * (where \"first column value\" is the value of the first column in the row -->\n\t * ```\n\t */\n\t@Input() selectionLabelColumn: number;\n\n\t@Input() skeleton = false;\n\n\t/**\n\t * Emits if a single row is selected.\n\t */\n\t@Output() selectedChange = new EventEmitter();\n\n\tprotected _label = this.i18n.getOverridable(\"TABLE.CHECKBOX_ROW\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\tgetSelectionLabelValue(row: TableItem[]) {\n\t\tif (!this.selectionLabelColumn) {\n\t\t\treturn { value: this.i18n.get().TABLE.ROW };\n\t\t}\n\t\treturn { value: row[this.selectionLabelColumn].data };\n\t}\n\n\tgetLabel(): Observable<string> {\n\t\treturn this._label.subject;\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter\n} from \"@angular/core\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { TableItem } from \"../table-item.class\";\nimport { Observable } from \"rxjs\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableRadio]\",\n\ttemplate: `\n\t\t<ibm-radio\n\t\t\t*ngIf=\"!skeleton\"\n\t\t\t[attr.aria-label]=\"getLabel() | i18nReplace:getSelectionLabelValue(row) | async\"\n\t\t\t[ariaLabel]=\"getLabel() | i18nReplace:getSelectionLabelValue(row) | async\"\n\t\t\t[checked]=\"selected\"\n\t\t\t(change)=\"change.emit()\">\n\t\t</ibm-radio>\n\t`\n})\nexport class TableRadio {\n\t@Input() row: any[];\n\n\t@Input() selected = false;\n\n\t@Input()\n\tset label(value: string | Observable<string>) {\n\t\tthis._label.override(value);\n\t}\n\n\tget label() {\n\t\treturn this._label.value;\n\t}\n\n\t/**\n\t * Used to populate the row selection checkbox label with a useful value if set.\n\t *\n\t * Example:\n\t * ```\n\t * <ibm-table [selectionLabelColumn]=\"0\"></ibm-table>\n\t * <!-- results in aria-label=\"Select first column value\"\n\t * (where \"first column value\" is the value of the first column in the row -->\n\t * ```\n\t */\n\t@Input() selectionLabelColumn: number;\n\n\t@Input() skeleton = false;\n\n\t/**\n\t * Emits if a single row is selected.\n\t */\n\t@Output() change = new EventEmitter();\n\n\tprotected _label = this.i18n.getOverridable(\"TABLE.CHECKBOX_ROW\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\tgetSelectionLabelValue(row: TableItem[]) {\n\t\tif (!this.selectionLabelColumn) {\n\t\t\treturn { value: this.i18n.get().TABLE.ROW };\n\t\t}\n\t\treturn { value: row[this.selectionLabelColumn].data };\n\t}\n\n\tgetLabel(): Observable<string> {\n\t\treturn this._label.subject;\n\t}\n}\n","import {\n\tComponent,\n\tInput\n} from \"@angular/core\";\nimport { TableItem } from \"../table-item.class\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableData]\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"!skeleton && !item.template\">{{item.data}}</ng-container>\n\t\t<ng-template\n\t\t\t*ngIf=\"!skeleton\"\n\t\t\t[ngTemplateOutlet]=\"item.template\"\n\t\t\t[ngTemplateOutletContext]=\"{data: item.data}\">\n\t\t</ng-template>\n\t`\n})\nexport class TableData {\n\t@Input() item: TableItem;\n\n\t@Input() skeleton = false;\n}\n","import {\n\tComponent,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tHostBinding,\n\tHostListener\n} from \"@angular/core\";\nimport { TableModel } from \"../table-model.class\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { TableItem } from \"../table-item.class\";\nimport { Observable } from \"rxjs\";\nimport { TableRowSize } from \"../table.types\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableRow]\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"model\">\n\t\t\t<td\n\t\t\t\t*ngIf=\"model.hasExpandableRows()\"\n\t\t\t\tibmTableExpandButton\n\t\t\t\tclass=\"cds--table-expand-v2\"\n\t\t\t\t[expanded]=\"expanded\"\n\t\t\t\t[expandable]=\"expandable\"\n\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t[ariaLabel]=\"getExpandButtonAriaLabel()\"\n\t\t\t\t[headers]=\"model.getHeaderId('expand')\"\n\t\t\t\t(expandRow)=\"expandRow.emit()\">\n\t\t\t</td>\n\t\t\t<ng-container *ngIf=\"!skeleton && showSelectionColumn && !enableSingleSelect\">\n\t\t\t\t<td\n\t\t\t\t\t*ngIf=\"!showSelectionColumnCheckbox; else tableCheckboxTemplate\">\n\t\t\t\t</td>\n\t\t\t\t<ng-template #tableCheckboxTemplate>\n\t\t\t\t\t<td\n\t\t\t\t\t\tibmTableCheckbox\n\t\t\t\t\t\tclass=\"cds--table-column-checkbox\"\n\t\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t\t[selected]=\"selected\"\n\t\t\t\t\t\t[label]=\"getCheckboxLabel()\"\n\t\t\t\t\t\t[row]=\"row\"\n\t\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t\t[headers]=\"model.getHeaderId('select')\"\n\t\t\t\t\t\t(selectedChange)=\"onSelectionChange()\">\n\t\t\t\t\t</td>\n\t\t\t\t</ng-template>\n\t\t\t</ng-container>\n\t\t\t<td\n\t\t\t\t*ngIf=\"!skeleton && showSelectionColumn && enableSingleSelect\"\n\t\t\t\tibmTableRadio\n\t\t\t\t[selected]=\"selected\"\n\t\t\t\t[label]=\"getCheckboxLabel()\"\n\t\t\t\t[row]=\"row\"\n\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t[headers]=\"model.getHeaderId('select')\"\n\t\t\t\t(change)=\"onSelectionChange()\">\n\t\t\t</td>\n\t\t\t<ng-container *ngFor=\"let item of row; let j = index\">\n\t\t\t\t<td\n\t\t\t\t\t*ngIf=\"item && model.getHeader(j) && model.getHeader(j).visible\"\n\t\t\t\t\tibmTableData\n\t\t\t\t\t[headers]=\"model.getHeaderId(j, item.colSpan)\"\n\t\t\t\t\t[item]=\"item\"\n\t\t\t\t\t[title]=\"item.title\"\n\t\t\t\t\t[class]=\"model.getHeader(j).className\"\n\t\t\t\t\t[ngStyle]=\"model.getHeader(j).style\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[attr.colspan]=\"item.colSpan\"\n\t\t\t\t\t[attr.rowspan]=\"item.rowSpan\"\n\t\t\t\t\t(click)=\"onRowClick()\"\n\t\t\t\t\t(keydown.enter)=\"onRowClick()\">\n\t\t\t\t</td>\n\t\t\t\t<td\n\t\t\t\t\t*ngIf=\"item && model.getHeader(j) == null\"\n\t\t\t\t\tibmTableData\n\t\t\t\t\t[headers]=\"model.getHeaderId(j, item.colSpan)\"\n\t\t\t\t\t[item]=\"item\"\n\t\t\t\t\t[title]=\"item.title\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t[attr.colspan]=\"item.colSpan\"\n\t\t\t\t\t[attr.rowspan]=\"item.rowSpan\"\n\t\t\t\t\t(click)=\"onRowClick()\"\n\t\t\t\t\t(keydown.enter)=\"onRowClick()\">\n\t\t\t\t</td>\n\t\t\t</ng-container>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t`\n})\nexport class TableRowComponent {\n\t/**\n\t * `TableModel` with data the table is to display.\n\t */\n\t@Input() model: TableModel;\n\n\t@Input() row: TableItem[];\n\n\t@Input() expanded = false;\n\n\t@Input() expandable = false;\n\n\t@Input() selected = false;\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t/**\n\t * Controls whether to enable multiple or single row selection.\n\t */\n\t@Input() enableSingleSelect = false;\n\n\t@Input()\n\tset expandButtonAriaLabel(value: string | Observable<string>) {\n\t\tthis._expandButtonAriaLabel.override(value);\n\t}\n\n\tget expandButtonAriaLabel() {\n\t\treturn this._expandButtonAriaLabel.value;\n\t}\n\n\t@Input()\n\tset checkboxLabel(value: string | Observable<string>) {\n\t\tthis._checkboxLabel.override(value);\n\t}\n\n\tget checkboxLabel() {\n\t\treturn this._checkboxLabel.value;\n\t}\n\n\t/**\n\t * Controls whether to show the selection checkboxes column or not.\n\t */\n\t@Input() showSelectionColumn = true;\n\n\t/**\n\t * Shows or hide the checkbox in the selection column when `showSelectionColumn`\n\t * is set to true\n\t */\n\t@Input() showSelectionColumnCheckbox = true;\n\n\t/**\n\t * Used to populate the row selection checkbox label with a useful value if set.\n\t *\n\t * Example:\n\t * ```\n\t * <ibm-table [selectionLabelColumn]=\"0\"></ibm-table>\n\t * <!-- results in aria-label=\"Select first column value\"\n\t * (where \"first column value\" is the value of the first column in the row -->\n\t * ```\n\t */\n\t@Input() selectionLabelColumn: number;\n\n\t@Input() skeleton = false;\n\n\t/**\n\t * Emits when the row is selected.\n\t */\n\t@Output() selectRow = new EventEmitter();\n\n\t/**\n\t * Emits when the row is deselected.\n\t */\n\t@Output() deselectRow = new EventEmitter();\n\n\t/**\n\t * Emits when the row is expanded\n\t */\n\t@Output() expandRow = new EventEmitter();\n\n\t/**\n\t * Emits when a row is clicked regardless of `enableSingleSelect` or `showSelectionColumn`.\n\t * Should only get emitted when a row item is selected excluding expand buttons,\n\t * checkboxes, or radios.\n\t */\n\t@Output() rowClick = new EventEmitter();\n\n\t@HostBinding(\"class.cds--data-table--selected\") get selectedClass() {\n\t\treturn this.selected;\n\t}\n\n\t@HostBinding(\"class.cds--parent-row\") get parentRowClass() {\n\t\treturn this.expandable;\n\t}\n\n\t@HostBinding(\"class.cds--expandable-row\") get expandableRowClass() {\n\t\treturn this.expanded;\n\t}\n\n\t@HostBinding(\"class.tbody_row--selectable\") get selectableClass() {\n\t\treturn false; // this.singleSelect\n\t}\n\n\t@HostBinding(\"attr.data-parent-row\") get isParentRow() {\n\t\treturn this.expandable ? true : null;\n\t}\n\n\t@HostBinding(\"attr.tabindex\") get isAccessible() {\n\t\treturn this.enableSingleSelect && !this.showSelectionColumn ? 0 : null;\n\t}\n\n\tprotected _checkboxLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_ROW\");\n\tprotected _expandButtonAriaLabel = this.i18n.getOverridable(\"TABLE.EXPAND_BUTTON\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\t@HostListener(\"click\")\n\tonHostClick() {\n\t\tif (this.enableSingleSelect && !this.showSelectionColumn) {\n\t\t\tthis.onSelectionChange();\n\t\t}\n\t}\n\n\tonRowClick() {\n\t\tthis.rowClick.emit();\n\t}\n\n\tonSelectionChange() {\n\t\tif (this.selected) {\n\t\t\tthis.deselectRow.emit();\n\t\t} else {\n\t\t\tthis.selectRow.emit();\n\t\t}\n\t}\n\n\tgetCheckboxLabel(): Observable<string> {\n\t\treturn this._checkboxLabel.subject;\n\t}\n\n\tgetExpandButtonAriaLabel(): Observable<string> {\n\t\treturn this._expandButtonAriaLabel.subject;\n\t}\n}\n","import {\n\tComponent,\n\tHostBinding,\n\tInput\n} from \"@angular/core\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableExpandedRow]\",\n\ttemplate: `\n\t\t<td [attr.colspan]=\"row.length + 2\">\n\t\t\t<ng-container *ngIf=\"!firstExpandedTemplateInRow(row)\">\n\t\t\t\t{{firstExpandedDataInRow(row)}}\n\t\t\t</ng-container>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"firstExpandedTemplateInRow(row)\"\n\t\t\t\t[ngTemplateOutletContext]=\"{data: firstExpandedDataInRow(row)}\">\n\t\t\t</ng-template>\n\t\t</td>\n\t`\n})\nexport class TableExpandedRow {\n\t@Input() row: any[];\n\n\t@Input() skeleton = false;\n\n\t@HostBinding(\"class.cds--expandable-row\") expandableRowClass = true;\n\n\t@HostBinding(\"attr.data-child-row\") dataChildRow = true;\n\n\t@Input() expanded = false;\n\n\t@HostBinding(\"style.display\") get displayStyle() {\n\t\treturn this.expanded ? null : \"none\";\n\t}\n\n\tfirstExpandedTemplateInRow(row) {\n\t\tconst found = row.find(d => d.expandedTemplate);\n\t\tif (found) {\n\t\t\treturn found.expandedTemplate;\n\t\t}\n\t\treturn found;\n\t}\n\n\tfirstExpandedDataInRow(row) {\n\t\tconst found = row.find(d => d.expandedData);\n\t\tif (found) {\n\t\t\treturn found.expandedData;\n\t\t}\n\t\treturn found;\n\t}\n}\n","import {\n\tDirective,\n\tHostListener\n} from \"@angular/core\";\n\n@Directive({\n\tselector: \"[ibmExpandedRowHover]\"\n})\nexport class ExpandedRowHover {\n\t@HostListener(\"mouseenter\", [\"$event\"])\n\taddHoverClass(event) {\n\t\tevent.target.previousElementSibling.classList.add(\"cds--expandable-row--hover\");\n\t}\n\n\t@HostListener(\"mouseleave\", [\"$event\"])\n\tremoveHoverClass(event) {\n\t\tevent.target.previousElementSibling.classList.remove(\"cds--expandable-row--hover\");\n\t}\n}\n","import {\n\tComponent,\n\tInput,\n\tEventEmitter,\n\tOutput\n} from \"@angular/core\";\nimport { TableModel } from \"../table-model.class\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { Observable } from \"rxjs\";\nimport { TableRowSize } from \"../table.types\";\n\n@Component({\n\t// tslint:disable-next-line: component-selector\n\tselector: \"[ibmTableBody]\",\n\ttemplate: `\n\t\t<ng-container *ngIf=\"model\">\n\t\t\t<ng-container *ngFor=\"let row of model.data; let i = index\">\n\t\t\t\t<tr\n\t\t\t\t\tibmTableRow\n\t\t\t\t\t[model]=\"model\"\n\t\t\t\t\t[row]=\"row\"\n\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t[selected]=\"model.isRowSelected(i)\"\n\t\t\t\t\t[expandable]=\"model.isRowExpandable(i)\"\n\t\t\t\t\t[expanded]=\"model.isRowExpanded(i)\"\n\t\t\t\t\t[checkboxLabel]=\"getCheckboxRowLabel()\"\n\t\t\t\t\t[expandButtonAriaLabel]=\"getExpandButtonAriaLabel()\"\n\t\t\t\t\t[showSelectionColumn]=\"showSelectionColumn\"\n\t\t\t\t\t[enableSingleSelect]=\"enableSingleSelect\"\n\t\t\t\t\t[skeleton]=\"skeleton\"\n\t\t\t\t\t(selectRow)=\"onRowCheckboxChange(i)\"\n\t\t\t\t\t(deselectRow)=\"onRowCheckboxChange(i)\"\n\t\t\t\t\t(expandRow)=\"model.expandRow(i, !model.isRowExpanded(i))\"\n\t\t\t\t\t(rowClick)=\"onRowClick(i)\"\n\t\t\t\t\t*ngIf=\"!model.isRowFiltered(i)\"\n\t\t\t\t\t[class]=\"(model.rowsClass[i] ? model.rowsClass[i] : null)\"\n\t\t\t\t\t[ngClass]=\"{\n\t\t\t\t\t\t'tbody_row--success': !model.isRowSelected(i) && model.getRowContext(i) === 'success',\n\t\t\t\t\t\t'tbody_row--warning': !model.isRowSelected(i) && model.getRowContext(i) === 'warning',\n\t\t\t\t\t\t'tbody_row--info': !model.isRowSelected(i) && model.getRowContext(i) === 'info',\n\t\t\t\t\t\t'tbody_row--error': !model.isRowSelected(i) && model.getRowContext(i) === 'error'\n\t\t\t\t\t}\">\n\t\t\t\t</tr>\n\t\t\t\t<tr\n\t\t\t\t\t*ngIf=\"model.isRowExpandable(i) && !shouldExpandAsTable(row) && !model.isRowFiltered(i)\"\n\t\t\t\t\tibmTableExpandedRow\n\t\t\t\t\tibmExpandedRowHover\n\t\t\t\t\t[row]=\"row\"\n\t\t\t\t\t[expanded]=\"model.isRowExpanded(i)\"\n\t\t\t\t\t[skeleton]=\"skeleton\">\n\t\t\t\t</tr>\n\t\t\t\t<ng-container\n\t\t\t\t\t*ngIf=\"model.isRowExpandable(i) && shouldExpandAsTable(row) && model.isRowExpanded(i) && !model.isRowFiltered(i)\">\n\t\t\t\t\t<tr\n\t\t\t\t\t\t*ngFor=\"let expandedDataRow of firstExpandedDataInRow(row)\"\n\t\t\t\t\t\tibmTableRow\n\t\t\t\t\t\t[model]=\"model\"\n\t\t\t\t\t\t[showSelectionColumnCheckbox]=\"false\"\n\t\t\t\t\t\t[showSelectionColumn]=\"showSelectionColumn\"\n\t\t\t\t\t\t[row]=\"expandedDataRow\"\n\t\t\t\t\t\t[size]=\"size\"\n\t\t\t\t\t\t[skeleton]=\"skeleton\">\n\t\t\t\t\t</tr>\n\t\t\t\t</ng-container>\n\t\t\t</ng-container>\n\t\t</ng-container>\n\t\t<ng-content></ng-content>\n\t`\n})\nexport class TableBody {\n\t@Input() model: TableModel;\n\n\t/**\n\t * Controls whether to enable multiple or single row selection.\n\t */\n\t@Input() enableSingleSelect = false;\n\n\t@Input()\n\tset expandButtonAriaLabel(value: string | Observable<string>) {\n\t\tthis._expandButtonAriaLabel.override(value);\n\t}\n\n\tget expandButtonAriaLabel() {\n\t\treturn this._expandButtonAriaLabel.value;\n\t}\n\n\t@Input()\n\tset checkboxRowLabel(value: string | Observable<string>) {\n\t\tthis._checkboxRowLabel.override(value);\n\t}\n\n\tget checkboxRowLabel() {\n\t\treturn this._checkboxRowLabel.value;\n\t}\n\n\t/**\n\t * Controls whether to show the selection checkboxes column or not.\n\t */\n\t@Input() showSelectionColumn = true;\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t/**\n\t * Used to populate the row selection checkbox label with a useful value if set.\n\t *\n\t * Example:\n\t * ```\n\t * <ibm-table [selectionLabelColumn]=\"0\"></ibm-table>\n\t * <!-- results in aria-label=\"Select first column value\"\n\t * (where \"first column value\" is the value of the first column in the row -->\n\t * ```\n\t */\n\t@Input() selectionLabelColumn: number;\n\n\t@Input() skeleton = false;\n\n\t/**\n\t * Emits if a single row is selected.\n\t *\n\t * @param ({model: this.model, selectedRowIndex: index})\n\t */\n\t@Output() selectRow = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if a single row is deselected.\n\t *\n\t * @param ({model: this.model, deselectedRowIndex: index})\n\t */\n\t@Output() deselectRow = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if a row item excluding expandButtons, checkboxes, or radios is clicked.\n\t */\n\t@Output() rowClick = new EventEmitter<number>();\n\n\tprotected _checkboxRowLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_ROW\");\n\tprotected _expandButtonAriaLabel = this.i18n.getOverridable(\"TABLE.EXPAND_BUTTON\");\n\n\tconstructor(protected i18n: I18n) { }\n\n\t/**\n\t * Triggered when a single row is clicked.\n\t * Updates the header checkbox state.\n\t * Emits the `selectRow` or `deselectRow` event.\n\t */\n\tonRowCheckboxChange(index: number) {\n\t\tif (this.model.isRowSelected(index)) {\n\t\t\tthis.deselectRow.emit({ model: this.model, deselectedRowIndex: index });\n\t\t} else {\n\t\t\tthis.selectRow.emit({ model: this.model, selectedRowIndex: index });\n\t\t}\n\t}\n\n\tonRowClick(index: number) {\n\t\tthis.rowClick.emit(index);\n\t}\n\n\tgetCheckboxRowLabel(): Observable<string> {\n\t\treturn this._checkboxRowLabel.subject;\n\t}\n\n\tgetExpandButtonAriaLabel(): Observable<string> {\n\t\treturn this._expandButtonAriaLabel.subject;\n\t}\n\n\tfirstExpandedDataInRow(row) {\n\t\tconst found = row.find(d => d.expandedData);\n\t\tif (found) {\n\t\t\treturn found.expandedData;\n\t\t}\n\t\treturn found;\n\t}\n\n\tshouldExpandAsTable(row) {\n\t\treturn row.some(d => d.expandAsTable);\n\t}\n}\n","import { Directive, HostBinding, Input } from \"@angular/core\";\nimport { TableRowSize } from \"./table.types\";\n\n@Directive({\n\tselector: \"[ibmTable]\"\n})\nexport class TableDirective {\n\t@Input() @HostBinding(\"class.cds--data-table--sort\") sortable = true;\n\n\t@Input() @HostBinding(\"class.cds--data-table--no-border\") noBorder = true;\n\n\t@Input() @HostBinding(\"class.cds--data-table--zebra\") striped = false;\n\n\t@Input() @HostBinding(\"class.cds--skeleton\") skeleton = false;\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\n\t@HostBinding(\"class.cds--data-table\") tableClass = true;\n\n\t// Bind table size class\n\t@HostBinding(\"class.cds--data-table--xs\") get extraSmallSize() { return this.size === \"xs\"; }\n\t@HostBinding(\"class.cds--data-table--sm\") get smallSize() { return this.size === \"sm\"; }\n\t@HostBinding(\"class.cds--data-table--md\") get mediumSize() { return this.size === \"md\"; }\n\t@HostBinding(\"class.cds--data-table--lg\") get LargeSize() { return this.size === \"lg\"; }\n\t@HostBinding(\"class.cds--data-table--xl\") get extraLargeSize() { return this.size === \"xl\"; }\n\n}\n","import {\n\tComponent,\n\tApplicationRef,\n\tInput,\n\tOutput,\n\tEventEmitter,\n\tElementRef,\n\tAfterViewInit,\n\tTemplateRef,\n\tOnDestroy,\n\tHostBinding\n} from \"@angular/core\";\nimport { Subscription, fromEvent, Observable } from \"rxjs\";\n\nimport { TableModel } from \"./table-model.class\";\nimport { TableHeaderItem } from \"./table-header-item.class\";\nimport { TableItem } from \"./table-item.class\";\n\nimport { getFocusElementList, tabbableSelectorIgnoreTabIndex } from \"carbon-components-angular/common\";\nimport { I18n, Overridable } from \"carbon-components-angular/i18n\";\nimport { merge } from \"carbon-components-angular/utils\";\nimport { DataGridInteractionModel } from \"./data-grid-interaction-model.class\";\nimport { TableDomAdapter } from \"./table-adapter.class\";\nimport { TableRowSize } from \"./table.types\";\n\n/**\n * Build your table with this component by extending things that differ from default.\n *\n * [See demo](../../?path=/story/components-table--basic)\n *\n * Instead of the usual write-your-own-html approach you had with `<table>`,\n * carbon table uses model-view-controller approach.\n *\n * Here, you create a view (with built-in controller) and provide it a model.\n * Changes you make to the model are reflected in the view. Provide same model you use\n * in the table to the `<ibm-pagination>` components.\n * They provide a different view over the same data.\n *\n * ## Basic usage\n *\n * ```html\n * <ibm-table [model]=\"model\"></ibm-table>\n * ```\n *\n * ```typescript\n * public model = new TableModel();\n *\n * this.model.data = [\n * \t[new TableItem({data: \"asdf\"}), new TableItem({data: \"qwer\"})],\n * \t[new TableItem({data: \"csdf\"}), new TableItem({data: \"zwer\"})],\n * \t[new TableItem({data: \"bsdf\"}), new TableItem({data: \"swer\"})],\n * \t[new TableItem({data: \"csdf\"}), new TableItem({data: \"twer\"})]\n * ];\n * ```\n *\n * ## Customization\n *\n * If you have custom data in your table, you need a way to display it. You can do that\n * by providing a template to `TableItem`.\n *\n * ```html\n * <ng-template #customTableItemTemplate let-data=\"data\">\n * \t<a [routerLink]=\"data.link\">{{data.name}} {{data.surname}}</a>\n * </ng-template>\n * ```\n *\n * ```typescript\n * customTableItemTemplate: TemplateRef<any>;\n *\n * this.customModel.data = [\n * \t[new TableItem({data: \"asdf\"}), new TableItem({data: {name: \"Lessy\", link: \"/table\"}, template: this.customTableItemTemplate})],\n * \t[new TableItem({data: \"csdf\"}), new TableItem({data: \"swer\"})],\n * \t[new TableItem({data: \"bsdf\"}), new TableItem({data: {name: \"Alice\", surname: \"Bob\"}, template: this.customTableItemTemplate})],\n * \t[new TableItem({data: \"csdf\"}), new TableItem({data: \"twer\"})],\n * ];\n * ```\n *\n * ### Sorting and filtering\n *\n * In case you need custom sorting and/or filtering you should subclass `TableHeaderItem`\n * and override needed functions.\n *\n * ```typescript\n * class FilterableHeaderItem extends TableHeaderItem {\n * \t// custom filter function\n * \tfilter(item: TableItem): boolean {\n * \t\tif (typeof item.data === \"string\" && item.data.toLowerCase().indexOf(this.filterData.data.toLowerCase()) >= 0 ||\n * \t\titem.data.name && item.data.name.toLowerCase().indexOf(this.filterData.data.toLowerCase()) >= 0 ||\n * \t\titem.data.surname && item.data.surname.toLowerCase().indexOf(this.filterData.data.toLowerCase()) >= 0) {\n * \t\t\treturn false;\n * \t\t}\n * \t\treturn true;\n * \t}\n *\n * \tset filterCount(n) {}\n * \tget filterCount() {\n * \t\treturn (this.filterData && this.filterData.data && this.filterData.data.length > 0) ? 1 : 0;\n * \t}\n *\n * \t// used for custom sorting\n * \tcompare(one: TableItem, two: TableItem) {\n * \t\tconst stringOne = (one.data.name || one.data.surname || one.data).toLowerCase();\n * \t\tconst stringTwo = (two.data.name || two.data.surname || two.data).toLowerCase();\n *\n * \t\tif (stringOne > stringTwo) {\n * \t\t\treturn 1;\n * \t\t} else if (stringOne < stringTwo) {\n * \t\t\treturn -1;\n * \t\t} else {\n * \t\t\treturn 0;\n * \t\t}\n * \t}\n * }\n * ```\n *\n * If you want to do your sorting on the backend or query for sorted data as a result of user\n * clicking the table header, check table [`sort`](#sort) output documentation\n *\n * See `TableHeaderItem` class for more information.\n *\n * ## No data template\n *\n * When table has no data to show, it can show a message you provide it instead.\n *\n * ```html\n * <ibm-table [model]=\"model\">No data.</ibm-table>\n * ```\n *\n * ... will show `No data.` message, but you can get creative and provide any template you want\n * to replace table's default `tbody`.\n *\n * ## Use pagination as table footer\n *\n * ```html\n * <ibm-pagination [model]=\"model\" (selectPage)=\"selectPage($event)\"></ibm-pagination>\n * ```\n *\n * `selectPage()` function should fetch the data from backend, create new `data`, apply it to `model.data`,\n * and update `model.currentPage`.\n *\n * If the data your server returns is a two dimensional array of objects, it would look something like this:\n *\n * ```typescript\n * selectPage(page) {\n * \tthis.getPage(page).then((data: Array<Array<any>>) => {\n * \t\t// set the data and update page\n * \t\tthis.model.data = this.prepareData(data);\n * \t\tthis.model.currentPage = page;\n * \t});\n * }\n *\n * protected prepareData(data: Array<Array<any>>) {\n * \t// create new data from the service data\n * \tlet newData = [];\n * \tdata.forEach(dataRow => {\n * \t\tlet row = [];\n * \t\tdataRow.forEach(dataElement => {\n * \t\t\trow.push(new TableItem({\n * \t\t\t\tdata: dataElement,\n * \t\t\t\ttemplate: typeof dataElement === \"string\" ? undefined : this.paginationTableItemTemplate\n * \t\t\t\t// your template can handle all the data types so you don't have to conditionally set it\n * \t\t\t\t// you can also set different templates for different columns based on index\n * \t\t\t}));\n * \t\t});\n * \t\tnewData.push(row);\n * \t});\n * \treturn newData;\n * }\n * ```\n */\n@Component({\n\tselector: \"ibm-table\",\n\ttemplate: `\n\t<table\n\t\tibmTable\n\t\t[sortable]=\"sortable\"\n\t\t[noBorder]=\"noBorder\"\n\t\t[ngClass]=\"{'cds--data-table--sticky-header': stickyHeader}\"\n\t\t[size]=\"size\"\n\t\t[striped]=\"striped\"\n\t\t[skeleton]=\"skeleton\"\n\t\t[attr.aria-labelledby]=\"ariaLabelledby\"\n\t\t[attr.aria-describedby]=\"ariaDescribedby\">\n\t\t<thead\n\t\t\tibmTableHead\n\t\t\t[sortable]=\"sortable\"\n\t\t\t(deselectAll)=\"onDeselectAll()\"\n\t\t\t(selectAll)=\"onSelectAll()\"\n\t\t\t(sort)=\"doSort($event)\"\n\t\t\t[checkboxHeaderLabel]=\"getCheckboxHeaderLabel()\"\n\t\t\t[filterTitle]=\"getFilterTitle()\"\n\t\t\t[model]=\"model\"\n\t\t\t[size]=\"size\"\n\t\t\t[selectAllCheckbox]=\"selectAllCheckbox\"\n\t\t\t[selectAllCheckboxSomeSelected]=\"selectAllCheckboxSomeSelected\"\n\t\t\t[showSelectionColumn]=\"showSelectionColumn\"\n\t\t\t[enableSingleSelect]=\"enableSingleSelect\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t[sortAscendingLabel]=\"sortAscendingLabel\"\n\t\t\t[sortDescendingLabel]=\"sortDescendingLabel\"\n\t\t\t[stickyHeader]=\"stickyHeader\">\n\t\t</thead>\n\t\t<tbody\n\t\t\tibmTableBody\n\t\t\t(deselectRow)=\"onSelectRow($event)\"\n\t\t\t(scroll)=\"onScroll($event)\"\n\t\t\t(selectRow)=\"onSelectRow($event)\"\n\t\t\t[checkboxRowLabel]=\"getCheckboxRowLabel()\"\n\t\t\t[enableSingleSelect]=\"enableSingleSelect\"\n\t\t\t(rowClick)=\"onRowClick($event)\"\n\t\t\t[expandButtonAriaLabel]=\"expandButtonAriaLabel\"\n\t\t\t[model]=\"model\"\n\t\t\t[size]=\"size\"\n\t\t\t[ngStyle]=\"{'overflow-y': 'scroll'}\"\n\t\t\t[selectionLabelColumn]=\"selectionLabelColumn\"\n\t\t\t[showSelectionColumn]=\"showSelectionColumn\"\n\t\t\t[skeleton]=\"skeleton\"\n\t\t\t*ngIf=\"!noData; else noDataTemplate\">\n\t\t</tbody>\n\t\t<ng-template #noDataTemplate><ng-content></ng-content></ng-template>\n\t\t<tfoot>\n\t\t\t<ng-template\n\t\t\t\t[ngTemplateOutlet]=\"footerTemplate\">\n\t\t\t</ng-template>\n\t\t\t<tr *ngIf=\"this.model.isLoading\">\n\t\t\t\t<td class=\"table_loading-indicator\">\n\t\t\t\t\t<div class=\"cds--loading cds--loading--small\">\n\t\t\t\t\t\t<svg class=\"cds--loading__svg\" viewBox=\"-75 -75 150 150\">\n\t\t\t\t\t\t\t<circle class=\"cds--loading__stroke\" cx=\"0\" cy=\"0\" r=\"37.5\" />\n\t\t\t\t\t\t</svg>\n\t\t\t\t\t</div>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr *ngIf=\"this.model.isEnd\">\n\t\t\t\t<td class=\"table_end-indicator\">\n\t\t\t\t\t<h5>{{getEndOfDataText() | async}}</h5>\n\t\t\t\t\t<button (click)=\"scrollToTop($event)\" class=\"btn--secondary-sm\">\n\t\t\t\t\t\t{{getScrollTopText() | async}}\n\t\t\t\t\t</button>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t</tfoot>\n\t</table>\n\t`,\n\tstyles: [`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\t`]\n})\nexport class Table implements AfterViewInit, OnDestroy {\n\t/**\n\t * Creates a skeleton model with a row and column count specified by the user\n\t *\n\t * Example:\n\t *\n\t * ```typescript\n\t * this.model = Table.skeletonModel(5, 5);\n\t * ```\n\t */\n\tstatic skeletonModel(rowCount: number, columnCount: number) {\n\t\tconst model = new TableModel();\n\t\tlet header = new Array<TableHeaderItem>();\n\t\tlet data = new Array<Array<TableItem>>();\n\t\tlet row = new Array<TableItem>();\n\n\t\tfor (let i = 0; i < columnCount; i++) {\n\t\t\theader.push(new TableHeaderItem());\n\t\t\trow.push(new TableItem());\n\t\t}\n\t\tfor (let i = 0; i < rowCount - 1; i++) {\n\t\t\tdata.push(row);\n\t\t}\n\n\t\tmodel.header = header;\n\t\tmodel.data = data;\n\t\treturn model;\n\t}\n\n\tstatic setTabIndex(element: HTMLElement, index: -1 | 0) {\n\t\tconst focusElementList = getFocusElementList(element, tabbableSelectorIgnoreTabIndex);\n\t\tif (element.firstElementChild && element.firstElementChild.classList.contains(\"cds--table-sort\") && focusElementList.length > 1) {\n\t\t\tfocusElementList[1].tabIndex = index;\n\t\t} else if (focusElementList.length > 0) {\n\t\t\tfocusElementList[0].tabIndex = index;\n\t\t} else {\n\t\t\telement.tabIndex = index;\n\t\t}\n\t}\n\n\tstatic focus(element: HTMLElement) {\n\t\tconst focusElementList = getFocusElementList(element, tabbableSelectorIgnoreTabIndex);\n\t\tif (element.firstElementChild && element.firstElementChild.classList.contains(\"cds--table-sort\") && focusElementList.length > 1) {\n\t\t\tfocusElementList[1].focus();\n\t\t} else if (focusElementList.length > 0) {\n\t\t\tfocusElementList[0].focus();\n\t\t} else {\n\t\t\telement.focus();\n\t\t}\n\t}\n\n\t/**\n\t * Id of the table header title element\n\t */\n\t@Input() ariaLabelledby: string;\n\t/**\n\t * Id of the table header description element\n\t */\n\t@Input() ariaDescribedby: string;\n\n\t/**\n\t * `TableModel` with data the table is to display.\n\t */\n\t@Input()\n\tset model(m: TableModel) {\n\t\tif (this._model) {\n\t\t\tthis.subscriptions.unsubscribe();\n\t\t\t// Need to create a new subscription instance here because unsubscribing prevents any new subscriptions\n\t\t\t// from being added for some reason. When a new model is set, none of the subscriptions would exist.\n\t\t\tthis.subscriptions = new Subscription();\n\t\t}\n\n\t\tthis._model = m;\n\n\t\tconst rowsChange = this._model.rowsSelectedChange.subscribe(() => this.updateSelectAllCheckbox());\n\t\tconst dataChange = this._model.dataChange.subscribe(() => {\n\t\t\tif (this.isDataGrid) {\n\t\t\t\tthis.resetTabIndex();\n\t\t\t}\n\t\t\tthis.updateSelectAllCheckbox();\n\t\t});\n\n\t\tthis.subscriptions.add(rowsChange);\n\t\tthis.subscriptions.add(dataChange);\n\n\t\tif (this.isDataGrid) {\n\t\t\tconst expandedChange = this._model.rowsExpandedChange.subscribe(() => {\n\t\t\t\t// Allows the expanded row to have a focus state when it exists in the DOM\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tconst expandedRows = this.elementRef.nativeElement.querySelectorAll(\".cds--expandable-row:not(.cds--parent-row)\");\n\t\t\t\t\tArray.from<any>(expandedRows).forEach(row => {\n\t\t\t\t\t\tif (row.firstElementChild.tabIndex === undefined || row.firstElementChild.tabIndex !== -1) {\n\t\t\t\t\t\t\trow.firstElementChild.tabIndex = -1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t\tthis.subscriptions.add(expandedChange);\n\t\t}\n\t}\n\n\tget model(): TableModel {\n\t\treturn this._model;\n\t}\n\n\t/**\n\t * Size of the table rows.\n\t */\n\t@Input() size: TableRowSize = \"md\";\n\t/**\n\t * Set to `true` for a loading table.\n\t */\n\t@Input() skeleton = false;\n\t/**\n\t * Set to `true` for a data grid with keyboard interactions.\n\t */\n\t@Input() set isDataGrid(value: boolean) {\n\t\tthis._isDataGrid = value;\n\t\tif (this.isViewReady) {\n\t\t\tif (value) {\n\t\t\t\tthis.enableDataGridInteractions();\n\t\t\t} else {\n\t\t\t\tthis.disableDataGridInteractions();\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Setting sortable to false will disable all headers including headers which are sortable. Is is\n\t * possible to set the sortable state on the header item to disable/enable sorting for only some headers.\n\t */\n\t@Input() sortable = true;\n\n\t@Input() noBorder = true;\n\n\tget isDataGrid(): boolean {\n\t\treturn this._isDataGrid;\n\t}\n\n\t/**\n\t * Controls whether to show the selection checkboxes column or not.\n\t */\n\t@Input() showSelectionColumn = true;\n\n\t/**\n\t * Controls whether to enable multiple or single row selection.\n\t */\n\t@Input() enableSingleSelect = false;\n\n\t/**\n\t * Distance (in px) from the bottom that view has to reach before\n\t * `scrollLoad` event is emitted.\n\t */\n\t@Input() scrollLoadDistance = 0;\n\n\t/**\n\t * @todo - Enable column resize when Carbon officially supports feature\n\t * Set to `true` to enable users to resize columns.\n\t *\n\t * Works for columns with width set in pixels.\n\t *\n\t */\n\t// @Input() columnsResizable = false;\n\n\t/**\n\t * @todo - Enable columns drag & drop when Carbon officially supports feature\n\t * Set to `true` to enable users to drag and drop columns.\n\t *\n\t * Changing the column order in table changes table model. Be aware of it when you add additional data\n\t * to the model.\n\t *\n\t */\n\t// @Input() columnsDraggable = false;\n\n\t@Input()\n\tset expandButtonAriaLabel(value: string | Observable<string>) {\n\t\tthis._expandButtonAriaLabel.override(value);\n\t}\n\tget expandButtonAriaLabel() {\n\t\treturn this._expandButtonAriaLabel.value;\n\t}\n\t@Input()\n\tset sortDescendingLabel(value: string | Observable<string>) {\n\t\tthis._sortDescendingLabel.override(value);\n\t}\n\tget sortDescendingLabel() {\n\t\treturn this._sortDescendingLabel.value;\n\t}\n\t@Input()\n\tset sortAscendingLabel(value: string | Observable<string>) {\n\t\tthis._sortAscendingLabel.override(value);\n\t}\n\tget sortAscendingLabel() {\n\t\treturn this._sortAscendingLabel.value;\n\t}\n\n\t/**\n\t * Expects an object that contains some or all of:\n\t * ```\n\t * {\n\t *\t\t\"FILTER\": \"Filter\",\n\t *\t\t\"END_OF_DATA\": \"You've reached the end of your content\",\n\t *\t\t\"SCROLL_TOP\": \"Scroll to top\",\n\t *\t\t\"CHECKBOX_HEADER\": \"Select all rows\",\n\t *\t\t\"CHECKBOX_ROW\": \"Select row\"\n\t * }\n\t * ```\n\t */\n\t@Input()\n\tset translations(value) {\n\t\tconst valueWithDefaults = merge(this.i18n.getMultiple(\"TABLE\"), value);\n\t\tthis._filterTitle.override(valueWithDefaults.FILTER);\n\t\tthis._endOfDataText.override(valueWithDefaults.END_OF_DATA);\n\t\tthis._scrollTopText.override(valueWithDefaults.SCROLL_TOP);\n\t\tthis._checkboxHeaderLabel.override(valueWithDefaults.CHECKBOX_HEADER);\n\t\tthis._checkboxRowLabel.override(valueWithDefaults.CHECKBOX_ROW);\n\t}\n\n\t/**\n\t * Set to `false` to remove table rows (zebra) stripes.\n\t */\n\t@Input() striped = true;\n\n\t/**\n\t * Allows table content to scroll horizontally\n\t */\n\t@HostBinding(\"class.cds--data-table-content\") tableContent = true;\n\n\t/**\n\t * Set to `true` to stick the header to the top of the table\n\t */\n\t@HostBinding(\"class.cds--data-table_inner-container\") @Input() stickyHeader = false;\n\n\t/**\n\t * Set footer template to customize what is displayed in the tfoot section of the table\n\t */\n\t@Input() footerTemplate: TemplateRef<any>;\n\n\t/**\n\t * Used to populate the row selection checkbox label with a useful value if set.\n\t *\n\t * Example:\n\t * ```\n\t * <ibm-table [selectionLabelColumn]=\"0\"></ibm-table>\n\t * <!-- results in aria-label=\"Select first column value\"\n\t * (where \"first column value\" is the value of the first column in the row -->\n\t * ```\n\t */\n\t@Input() selectionLabelColumn: number;\n\n\t/**\n\t * Emits an index of the column that wants to be sorted.\n\t *\n\t * If no observers are provided (default), table will attempt to do a simple sort of the data loaded\n\t * into the model.\n\t *\n\t * If an observer is provided, table will not attempt any sorting of its own and it is up to the observer\n\t * to sort the table. This is what you typically want if you're using a backend query to get the sorted\n\t * data or want to sort data across multiple pages.\n\t *\n\t * Usage:\n\t *\n\t * ```typescript\n\t * @Component({\n\t * \tselector: \"app-table\",\n\t * \ttemplate: `\n\t * \t\t<ibm-table\n\t * \t\t\t[model]=\"model\"\n\t * \t\t\t(sort)=\"simpleSort($event)\">\n\t * \t\t\tNo data.\n\t * \t\t</ibm-table>\n\t * \t`\n\t * })\n\t * export class TableApp implements OnInit, OnChanges {\n\t * \t@Input() model = new TableModel();\n\t *\n\t * \tngOnInit() {\n\t * \t\tthis.model.header = [\n\t * \t\t\tnew TableHeaderItem({ data: \"Name\" }),\n\t * \t\t\tnew TableHeaderItem({ data: \"hwer\" })\n\t * \t\t];\n\t *\n\t * \t\tthis.model.data = [\n\t * \t\t\t[new TableItem({ data: \"Name 1\" }), new TableItem({ data: \"qwer\" })],\n\t * \t\t\t[new TableItem({ data: \"Name 3\" }), new TableItem({ data: \"zwer\" })],\n\t * \t\t\t[new TableItem({ data: \"Name 2\" }), new TableItem({ data: \"swer\" })],\n\t * \t\t\t[new TableItem({ data: \"Name 4\" }), new TableItem({data: \"twer\"})],\n\t * \t\t\t[new TableItem({ data: \"Name 5\" }), new TableItem({data: \"twer\"})],\n\t * \t\t\t[new TableItem({ data: \"Name 6\" }), new TableItem({data: \"twer\"})]\n\t * \t\t];\n\t * \t}\n\t *\n\t * \tsimpleSort(index: number) {\n\t * \t\t// this function does a simple sort, which is the default for the table and if that's\n\t * \t\t// all you want, you don't need to do this.\n\t *\n\t * \t\t// here you can query your backend and update the model.data based on the result\n\t * \t\tif (this.model.header[index].sorted) {\n\t * \t\t\t// if already sorted flip sorting direction\n\t * \t\t\tthis.model.header[index].ascending = this.model.header[index].descending;\n\t * \t\t}\n\t * \t\tthis.model.sort(index);\n\t * \t}\n\t * }\n\t * ```\n\t */\n\t@Output() sort = new EventEmitter<number>();\n\n\t/**\n\t * Emits if all rows are selected.\n\t *\n\t * @param model\n\t */\n\t@Output() selectAll = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if all rows are deselected.\n\t *\n\t * @param model\n\t */\n\t@Output() deselectAll = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if a single row is selected.\n\t *\n\t * @param ({model: this.model, selectedRowIndex: index})\n\t */\n\t@Output() selectRow = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if a single row is deselected.\n\t *\n\t * @param ({model: this.model, deselectedRowIndex: index})\n\t */\n\t@Output() deselectRow = new EventEmitter<Object>();\n\n\t/**\n\t * Emits if a row item excluding expandButtons, checkboxes, or radios is clicked.\n\t */\n\t@Output() rowClick = new EventEmitter<number>();\n\n\t/**\n\t * Emits when table requires more data to be loaded.\n\t */\n\t@Output() scrollLoad = new EventEmitter<TableModel>();\n\n\t/**\n\t * Controls if all checkboxes are viewed as selected.\n\t */\n\tselectAllCheckbox = false;\n\n\t/**\n\t * Controls the indeterminate state of the header checkbox.\n\t */\n\tselectAllCheckboxSomeSelected = false;\n\n\tget noData() {\n\t\treturn !this.model.data ||\n\t\t\tthis.model.data.length === 0 ||\n\t\t\tthis.model.data.length === 1 && this.model.data[0].length === 0;\n\t}\n\n\tpublic isColumnDragging = false;\n\tpublic columnDraggedHoverIndex = -1;\n\tpublic columnDraggedPosition = \"\";\n\n\tprotected _model: TableModel;\n\tprotected _isDataGrid = false;\n\t// flag to prevent getters/setters from querying the view before it's fully instantiated\n\tprotected isViewReady = false;\n\n\tprotected subscriptions = new Subscription();\n\tprotected positionSubscription: Subscription;\n\n\tprotected interactionModel: DataGridInteractionModel;\n\tprotected interactionPositionSubscription: Subscription;\n\n\tprotected _expandButtonAriaLabel = this.i18n.getOverridable(\"TABLE.EXPAND_BUTTON\");\n\tprotected _sortDescendingLabel = this.i18n.getOverridable(\"TABLE.SORT_DESCENDING\");\n\tprotected _sortAscendingLabel = this.i18n.getOverridable(\"TABLE.SORT_ASCENDING\");\n\tprotected _checkboxHeaderLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_HEADER\");\n\tprotected _checkboxRowLabel = this.i18n.getOverridable(\"TABLE.CHECKBOX_ROW\");\n\tprotected _endOfDataText = this.i18n.getOverridable(\"TABLE.END_OF_DATA\");\n\tprotected _scrollTopText = this.i18n.getOverridable(\"TABLE.SCROLL_TOP\");\n\tprotected _filterTitle = this.i18n.getOverridable(\"TABLE.FILTER\");\n\n\tprotected columnResizeWidth: number;\n\tprotected columnResizeMouseX: number;\n\tprotected mouseMoveSubscription: Subscription;\n\tprotected mouseUpSubscription: Subscription;\n\n\t/**\n\t * Creates an instance of Table.\n\t */\n\tconstructor(\n\t\tprotected elementRef: ElementRef,\n\t\tprotected applicationRef: ApplicationRef,\n\t\tprotected i18n: I18n\n\t) { }\n\n\tngAfterViewInit() {\n\t\tthis.isViewReady = true;\n\t\tif (this.isDataGrid) {\n\t\t\tthis.enableDataGridInteractions();\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscriptions.unsubscribe();\n\t\tif (this.positionSubscription) {\n\t\t\tthis.positionSubscription.unsubscribe();\n\t\t}\n\t}\n\n\tenableDataGridInteractions() {\n\t\t// if we have an `interactioModel` we've already enabled datagrid\n\t\tif (this.interactionModel) {\n\t\t\treturn;\n\t\t}\n\t\tconst table = this.elementRef.nativeElement.querySelector(\"table\") as HTMLTableElement;\n\t\tconst tableAdapter = new TableDomAdapter(table);\n\t\tconst keydownEventStream = fromEvent<KeyboardEvent>(table, \"keydown\");\n\t\tconst clickEventStream = fromEvent<MouseEvent>(table, \"click\");\n\t\tthis.interactionModel = new DataGridInteractionModel(keydownEventStream, clickEventStream, tableAdapter);\n\t\tthis.positionSubscription = this.interactionModel.position.subscribe(event => {\n\t\t\tconst [currentRow, currentColumn] = event.current;\n\t\t\tconst [previousRow, previousColumn] = event.previous;\n\n\t\t\tconst currentElement = tableAdapter.getCell(currentRow, currentColumn);\n\t\t\tTable.setTabIndex(currentElement, 0);\n\n\t\t\t// if the model has just initialized don't focus or reset anything\n\t\t\tif (previousRow === -1 || previousColumn === -1) { return; }\n\t\t\t// Make the previous cell unfocusable (if it's not the current)\n\t\t\tif (previousRow !== currentRow || previousColumn !== currentColumn) {\n\t\t\t\tconst previousElement = tableAdapter.getCell(previousRow, previousColumn);\n\t\t\t\tTable.setTabIndex(previousElement, -1);\n\t\t\t}\n\t\t\tTable.focus(currentElement);\n\t\t});\n\t\t// call this after assigning `this.interactionModel` since it depends on it\n\t\tthis.resetTabIndex();\n\t}\n\n\tdisableDataGridInteractions() {\n\t\t// unsubscribe first so we don't cause the focus to fly around\n\t\tif (this.positionSubscription) {\n\t\t\tthis.positionSubscription.unsubscribe();\n\t\t}\n\t\t// undo tab indexing (also resets the model)\n\t\tthis.resetTabIndex(0);\n\t\t// null out the model ref\n\t\tthis.interactionModel = null;\n\t}\n\n\tonSelectAll() {\n\t\tthis.model.selectAll(true);\n\t\tthis.selectAll.emit(this.model);\n\t}\n\n\tonDeselectAll() {\n\t\tthis.model.selectAll(false);\n\t\tthis.deselectAll.emit(this.model);\n\t}\n\n\tonSelectRow(event) {\n\t\t// check for the existence of the selectedRowIndex property\n\t\tif (Object.keys(event).includes(\"selectedRowIndex\")) {\n\t\t\tif (this.enableSingleSelect) {\n\t\t\t\tthis.model.selectAll(false);\n\t\t\t}\n\t\t\tthis.model.selectRow(event.selectedRowIndex, true);\n\t\t\tthis.selectRow.emit(event);\n\t\t} else {\n\t\t\tthis.model.selectRow(event.deselectedRowIndex, false);\n\t\t\tthis.deselectRow.emit(event);\n\t\t}\n\t}\n\n\tonRowClick(index: number) {\n\t\tthis.rowClick.emit(index);\n\t}\n\n\tupdateSelectAllCheckbox() {\n\t\tconst selectedRowsCount = this.model.selectedRowsCount();\n\n\t\tif (selectedRowsCount <= 0) {\n\t\t\t// reset select all checkbox if nothing selected\n\t\t\tthis.selectAllCheckbox = false;\n\t\t\tthis.selectAllCheckboxSomeSelected = false;\n\t\t} else if (selectedRowsCount < this.model.data.length) {\n\t\t\tthis.selectAllCheckbox = true;\n\t\t\tthis.selectAllCheckboxSomeSelected = true;\n\t\t} else {\n\t\t\tthis.selectAllCheckbox = true;\n\t\t\tthis.selectAllCheckboxSomeSelected = false;\n\t\t}\n\t}\n\n\tresetTabIndex(newTabIndex = -1) {\n\t\t// ensure the view is ready for the reset before we preform the actual reset\n\t\tsetTimeout(() => {\n\t\t\t// reset all the tabIndexes we can find\n\t\t\tconst focusElementList = getFocusElementList(this.elementRef.nativeElement, tabbableSelectorIgnoreTabIndex);\n\t\t\tif (focusElementList) {\n\t\t\t\tfocusElementList.forEach(tabbable => {\n\t\t\t\t\ttabbable.tabIndex = newTabIndex;\n\t\t\t\t});\n\t\t\t}\n\t\t\t// reset interaction model positions and tabIndexes\n\t\t\tif (this.interactionModel) {\n\t\t\t\tthis.interactionModel.resetTabIndexes(newTabIndex);\n\t\t\t}\n\t\t});\n\t}\n\n\tcolumnResizeStart(event, column) {\n\t\tthis.columnResizeWidth = parseInt(column.style.width, 10);\n\t\tthis.columnResizeMouseX = event.clientX;\n\t\tevent.preventDefault();\n\n\t\tthis.mouseMoveSubscription = fromEvent(document.body, \"mousemove\").subscribe(event => {\n\t\t\tthis.columnResizeProgress(event, column);\n\t\t});\n\t\tthis.mouseUpSubscription = fromEvent(document.body, \"mouseup\").subscribe(event => {\n\t\t\tthis.columnResizeEnd(event, column);\n\t\t});\n\t}\n\n\tcolumnResizeProgress(event, column) {\n\t\tconst move = event.clientX - this.columnResizeMouseX;\n\t\tcolumn.style.width = `${this.columnResizeWidth + move}px`;\n\t}\n\n\tcolumnResizeEnd(event, column) {\n\t\tthis.mouseMoveSubscription.unsubscribe();\n\t\tthis.mouseUpSubscription.unsubscribe();\n\t}\n\n\t/**\n\t * Triggered when the user scrolls on the `<tbody>` element.\n\t * Emits the `scrollLoad` event.\n\t */\n\tonScroll(event) {\n\t\tconst distanceFromBottom = event.target.scrollHeight - event.target.clientHeight - event.target.scrollTop;\n\n\t\tif (distanceFromBottom <= this.scrollLoadDistance) {\n\t\t\tthis.scrollLoad.emit(this.model);\n\t\t} else {\n\t\t\tthis.model.isEnd = false;\n\t\t}\n\t}\n\n\tcolumnDragStart(event, columnIndex) {\n\t\tthis.isColumnDragging = true;\n\t\tthis.columnDraggedHoverIndex = columnIndex;\n\t\tevent.dataTransfer.setData(\"columnIndex\", JSON.stringify(columnIndex));\n\t}\n\n\tcolumnDragEnd(event, columnIndex) {\n\t\tthis.isColumnDragging = false;\n\t\tthis.columnDraggedHoverIndex = -1;\n\t}\n\n\tcolumnDragEnter(event, position, columnIndex) {\n\t\tthis.columnDraggedPosition = position;\n\t\tthis.columnDraggedHoverIndex = columnIndex;\n\t}\n\n\tcolumnDragLeave(event, position, columnIndex) {\n\t\tthis.columnDraggedPosition = \"\";\n\t}\n\n\tcolumnDragover(event, position, columnIndex) {\n\t\tthis.columnDraggedHoverIndex = columnIndex;\n\t\tthis.columnDraggedPosition = position;\n\n\t\t// needed to tell browser to allow dropping\n\t\tevent.preventDefault();\n\t}\n\n\tcolumnDrop(event, position, columnIndex) {\n\t\tthis.isColumnDragging = false;\n\t\tthis.columnDraggedHoverIndex = -1;\n\t\tthis.columnDraggedPosition = \"\";\n\n\t\tthis.model.moveColumn(\n\t\t\tparseInt(event.dataTransfer.getData(\"columnIndex\"), 10),\n\t\t\tcolumnIndex + (position === \"right\" ? 1 : 0)\n\t\t);\n\t}\n\n\tdoSort(index: number) {\n\t\tif (this.sort.observers.length === 0) {\n\t\t\t// no sort provided so do the simple sort\n\t\t\tif (this.model.header[index].sorted) {\n\t\t\t\t// if already sorted flip sorting direction\n\t\t\t\tthis.model.header[index].ascending = this.model.header[index].descending;\n\t\t\t}\n\t\t\tthis.model.sort(index);\n\t\t}\n\n\t\tthis.sort.emit(index);\n\t}\n\n\t/**\n\t * Triggered when the user scrolls on the `<tbody>` element.\n\t * Emits the `scrollLoad` event.\n\t */\n\tscrollToTop(event) {\n\t\tevent.target.parentElement.parentElement.parentElement.parentElement.children[1].scrollTop = 0;\n\t\tthis.model.isEnd = false;\n\t}\n\n\tgetSelectionLabelValue(row: TableItem[]) {\n\t\tif (!this.selectionLabelColumn) {\n\t\t\treturn { value: this.i18n.get().TABLE.ROW };\n\t\t}\n\t\treturn { value: row[this.selectionLabelColumn].data };\n\t}\n\n\tgetExpandButtonAriaLabel() {\n\t\treturn this._expandButtonAriaLabel.subject;\n\t}\n\tgetSortDescendingLabel() {\n\t\treturn this._sortDescendingLabel.subject;\n\t}\n\tgetSortAscendingLabel() {\n\t\treturn this._sortAscendingLabel.subject;\n\t}\n\n\tgetCheckboxHeaderLabel() {\n\t\treturn this._checkboxHeaderLabel.subject;\n\t}\n\n\tgetCheckboxRowLabel() {\n\t\treturn this._checkboxRowLabel.subject;\n\t}\n\n\tgetEndOfDataText() {\n\t\treturn this._endOfDataText.subject;\n\t}\n\n\tgetScrollTopText() {\n\t\treturn this._scrollTopText.subject;\n\t}\n\n\tgetFilterTitle() {\n\t\treturn this._filterTitle.subject;\n\t}\n}\n","import {\n\tAfterContentInit,\n\tComponent,\n\tContentChild,\n\tHostBinding\n} from \"@angular/core\";\nimport { TableHeaderDescription } from \"./header/table-header-description.directive\";\nimport { TableHeaderTitle } from \"./header/table-header-title.directive\";\nimport { Table } from \"./table.component\";\n\n@Component({\n\tselector: \"ibm-table-container\",\n\ttemplate: `<ng-content></ng-content>`,\n\tstyles: [`\n\t\t:host { display: block }\n\t`]\n})\nexport class TableContainer implements AfterContentInit {\n\t@HostBinding(\"class.cds--data-table-container\") containerClass = true;\n\n\t@ContentChild(TableHeaderTitle) headerTitle: TableHeaderTitle;\n\t@ContentChild(TableHeaderDescription) headerDescription: TableHeaderDescription;\n\t@ContentChild(Table) table: Table;\n\n\tngAfterContentInit() {\n\t\t// Set aria properties if values exist otherwise keep undefined\n\t\tif (this.table) {\n\t\t\tthis.table.ariaLabelledby = this.headerTitle?.id;\n\t\t\tthis.table.ariaDescribedby = this.headerDescription?.id;\n\t\t}\n\t}\n}\n","import { Component, HostBinding } from \"@angular/core\";\n\n@Component({\n\tselector: \"ibm-table-header\",\n\ttemplate: `\n\t\t<ng-content></ng-content>\n\t`\n})\nexport class TableHeader {\n\t@HostBinding(\"class.cds--data-table-header\") headerClass = true;\n\t@HostBinding(\"style.display\") displayStyle = \"block\";\n}\n","import { TableItem } from \"./table-item.class\";\n\n/**\n * Represents a table row, which is essentially an array of TableItem.\n */\nexport class TableRow extends Array<TableItem> {\n\t/**\n\t * Whether row is disabled or not.\n\t */\n\tdisabled = false;\n}\n","// modules\nimport { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\n\n// internal module imports\nimport { NFormsModule } from \"carbon-components-angular/forms\";\nimport { DialogModule } from \"carbon-components-angular/dialog\";\nimport { I18nModule } from \"carbon-components-angular/i18n\";\nimport { ButtonModule } from \"carbon-components-angular/button\";\nimport { SearchModule } from \"carbon-components-angular/search\";\nimport { IconModule } from \"carbon-components-angular/icon\";\n\n// table utilities/toolbar imports\nimport { TableToolbar } from \"./toolbar/table-toolbar.component\";\nimport { TableToolbarActions } from \"./toolbar/table-toolbar-actions.component\";\nimport { TableToolbarSearch } from \"./toolbar/table-toolbar-search.component\";\nimport { TableToolbarContent } from \"./toolbar/table-toolbar-content.component\";\n\nimport { TableContainer } from \"./table-container.component\";\nimport { TableHeader } from \"./header/table-header.component\";\nimport { TableHeaderTitle } from \"./header/table-header-title.directive\";\nimport { TableHeaderDescription } from \"./header/table-header-description.directive\";\n\nimport { ExpandedRowHover } from \"./expanded-row-hover.directive\";\n\n// core table imports\nimport { Table } from \"./table.component\";\nimport { TableDirective } from \"./table.directive\";\nimport { TableHead } from \"./head/table-head.component\";\nimport { TableHeadCell } from \"./head/table-head-cell.component\";\nimport { TableHeadCheckbox } from \"./head/table-head-checkbox.component\";\nimport { TableHeadExpand } from \"./head/table-head-expand.component\";\nimport { TableBody } from \"./body/table-body.component\";\nimport { TableRowComponent } from \"./body/table-row.component\";\nimport { TableExpandedRow } from \"./body/table-expanded-row.component\";\nimport { TableData } from \"./cell/table-data.component\";\nimport { TableCheckbox } from \"./cell/table-checkbox.component\";\nimport { TableRadio } from \"./cell/table-radio.component\";\nimport { TableExpandButton } from \"./cell/table-expand-button.component\";\nimport { TableHeadCellLabel } from \"./head/table-head-cell-label.directive\";\n\n// model exports\nexport { TableModel } from \"./table-model.class\";\nexport { TableRow } from \"./table-row.class\";\nexport { TableItem } from \"./table-item.class\";\nexport { TableHeaderItem } from \"./table-header-item.class\";\nexport * from \"./table-adapter.class\";\nexport * from \"./data-grid-interaction-model.class\";\n\n@NgModule({\n\tdeclarations: [\n\t\t// toolbar and utility components\n\t\tTableToolbar,\n\t\tTableContainer,\n\t\tTableHeader,\n\t\tTableHeaderTitle,\n\t\tTableHeaderDescription,\n\t\tTableHeadCellLabel,\n\t\tTableToolbarActions,\n\t\tTableToolbarSearch,\n\t\tTableToolbarContent,\n\t\tExpandedRowHover,\n\t\t// core table components\n\t\tTable,\n\t\tTableDirective,\n\t\tTableHead,\n\t\tTableHeadCell,\n\t\tTableHeadCheckbox,\n\t\tTableHeadExpand,\n\t\tTableBody,\n\t\tTableRowComponent,\n\t\tTableExpandedRow,\n\t\tTableData,\n\t\tTableCheckbox,\n\t\tTableRadio,\n\t\tTableExpandButton\n\t],\n\texports: [\n\t\t// toolbar and utility components\n\t\tTableToolbar,\n\t\tTableContainer,\n\t\tTableHeader,\n\t\tTableHeaderTitle,\n\t\tTableHeaderDescription,\n\t\tTableHeadCellLabel,\n\t\tTableToolbarActions,\n\t\tTableToolbarSearch,\n\t\tTableToolbarContent,\n\t\tExpandedRowHover,\n\t\t// core table components\n\t\tTable,\n\t\tTableDirective,\n\t\tTableHead,\n\t\tTableHeadCell,\n\t\tTableHeadCheckbox,\n\t\tTableHeadExpand,\n\t\tTableBody,\n\t\tTableRowComponent,\n\t\tTableExpandedRow,\n\t\tTableData,\n\t\tTableCheckbox,\n\t\tTableRadio,\n\t\tTableExpandButton\n\t],\n\timports: [\n\t\tCommonModule,\n\t\tNFormsModule,\n\t\tFormsModule,\n\t\tDialogModule,\n\t\tButtonModule,\n\t\tSearchModule,\n\t\tI18nModule,\n\t\tIconModule\n\t]\n})\nexport class TableModule {}\n","// table utilities/toolbar imports\nexport { TableToolbar } from \"./toolbar/table-toolbar.component\";\nexport { TableToolbarActions } from \"./toolbar/table-toolbar-actions.component\";\nexport { TableToolbarSearch } from \"./toolbar/table-toolbar-search.component\";\nexport { TableToolbarContent } from \"./toolbar/table-toolbar-content.component\";\n\nexport { TableContainer } from \"./table-container.component\";\nexport { TableHeader } from \"./header/table-header.component\";\nexport { TableHeaderTitle } from \"./header/table-header-title.directive\";\nexport { TableHeadCellLabel } from \"./head/table-head-cell-label.directive\";\nexport { TableHeaderDescription } from \"./header/table-header-description.directive\";\n\nexport { ExpandedRowHover } from \"./expanded-row-hover.directive\";\n\n// core table imports\nexport { Table } from \"./table.component\";\nexport { TableRowSize, TableTranslations } from \"./table.types\";\nexport { TableDirective } from \"./table.directive\";\nexport { TableHead } from \"./head/table-head.component\";\nexport { TableHeadCell } from \"./head/table-head-cell.component\";\nexport { TableHeadCheckbox } from \"./head/table-head-checkbox.component\";\nexport { TableHeadExpand } from \"./head/table-head-expand.component\";\nexport { TableBody } from \"./body/table-body.component\";\nexport { TableRowComponent } from \"./body/table-row.component\";\nexport { TableExpandedRow } from \"./body/table-expanded-row.component\";\nexport { TableData } from \"./cell/table-data.component\";\nexport { TableCheckbox } from \"./cell/table-checkbox.component\";\nexport { TableRadio } from \"./cell/table-radio.component\";\nexport { TableExpandButton } from \"./cell/table-expand-button.component\";\n\n// model exports\nexport { TableModel } from \"./table-model.class\";\nexport { TableItem } from \"./table-item.class\";\nexport { TableHeaderItem } from \"./table-header-item.class\";\nexport * from \"./table-adapter.class\";\nexport * from \"./data-grid-interaction-model.class\";\n\nexport * from \"./table.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["EventEmitter","i1","i0","i2","i3","Component","Input","Output","Search","NG_VALUE_ACCESSOR","HostBinding","Directive","Subject","BehaviorSubject","combineLatest","map","getFocusElementList","tabbableSelectorIgnoreTabIndex","i3.TableHeadCellLabel","getScrollbarWidth","i2.TableHeadExpand","i3.TableHeadCheckbox","i4.TableHeadCell","i5","i2.TableExpandButton","i3.TableCheckbox","i4.TableRadio","i5.TableData","i6","HostListener","i2.TableRowComponent","i3.TableExpandedRow","i4","i5.ExpandedRowHover","Subscription","merge","fromEvent","i2.TableHead","i3.TableBody","i4.TableDirective","ContentChild","CommonModule","NFormsModule","FormsModule","DialogModule","ButtonModule","SearchModule","I18nModule","IconModule","NgModule"],"mappings":"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"}
|