ms-data-grid 0.0.94 → 0.0.98

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.
@@ -9,7 +9,7 @@ export class CommonService {
9
9
  }
10
10
  gethasVisibleColumns(columns) {
11
11
  const checkVisible = (columns) => {
12
- return columns?.some((col) => {
12
+ return columns.some((col) => {
13
13
  if (col?.is_visible)
14
14
  return true;
15
15
  if (col?.children?.length) {
@@ -22,7 +22,7 @@ export class CommonService {
22
22
  }
23
23
  gethasInVisibleColumns(columns) {
24
24
  const checkVisible = (columns) => {
25
- return columns?.some((col) => {
25
+ return columns.some((col) => {
26
26
  if (!col?.is_visible)
27
27
  return true;
28
28
  if (col?.children?.length) {
@@ -35,7 +35,7 @@ export class CommonService {
35
35
  }
36
36
  getTotalColumnsLength(columns) {
37
37
  let count = 0;
38
- columns?.forEach(col => {
38
+ columns.forEach(col => {
39
39
  if (col.children && Array.isArray(col.children) && col.children.length) {
40
40
  count += col.children.length; // count children instead of parent
41
41
  }
@@ -47,7 +47,7 @@ export class CommonService {
47
47
  }
48
48
  gethasRightPinnedColumns(columns) {
49
49
  const checkPinnedRight = (columns) => {
50
- return columns?.some((col) => {
50
+ return columns.some((col) => {
51
51
  if (col?.pinned === 'right' && col?.is_visible)
52
52
  return true;
53
53
  if (col?.children?.length) {
@@ -60,7 +60,7 @@ export class CommonService {
60
60
  }
61
61
  gethasLeftPinnedColumns(columns) {
62
62
  const checkPinnedRight = (columns) => {
63
- return columns?.some((col) => {
63
+ return columns.some((col) => {
64
64
  if (col?.pinned === 'left' && col?.is_visible)
65
65
  return true;
66
66
  if (col?.children?.length) {
@@ -74,7 +74,7 @@ export class CommonService {
74
74
  getExpandedRowCount(data) {
75
75
  let groupCount = 0;
76
76
  let rowCount = 0;
77
- data?.forEach(group => {
77
+ data.forEach(group => {
78
78
  if (group?.isGroup) {
79
79
  groupCount++;
80
80
  if (group?.isExpand && Array.isArray(group?.children)) {
@@ -127,7 +127,7 @@ export class CommonService {
127
127
  col.query = {
128
128
  first_value: null,
129
129
  second_value: null,
130
- first_condition: col.type !== 'date' && col.type !== 'number' ? 'contain' : 'equal',
130
+ first_condition: col.type !== 'date' && col.type !== 'number' && col.type !== 'time' ? 'contain' : 'equal',
131
131
  second_condition: null,
132
132
  condition: 'none',
133
133
  _ids: []
@@ -327,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
327
327
  providedIn: 'root',
328
328
  }]
329
329
  }], ctorParameters: function () { return []; } });
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS25ELE1BQU0sT0FBTyxhQUFhO0lBR3hCO1FBRFEsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUc3QixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUE2TTdCLDBCQUFxQixHQUFVLEVBQUUsQ0FBQztJQS9NbEIsQ0FBQztJQUlqQixvQkFBb0IsQ0FBQyxPQUFjO1FBQ2pDLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBYyxFQUFXLEVBQUU7WUFDL0MsT0FBTyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzNCLElBQUksR0FBRyxFQUFFLFVBQVU7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQ2pDLElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7b0JBQ3pCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUNGLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUFjO1FBQ25DLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBYyxFQUFXLEVBQUU7WUFDL0MsT0FBTyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVTtv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QUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzthQUN4QixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzthQUN4QixPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQzthQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQzthQUN4QixPQUFPLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQzthQUN0QixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQzthQUNwQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQzthQUNsQixPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBYTtRQUNqQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUV4QixNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV4QyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUk7WUFDakMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUs7WUFDekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEdBQUcsQ0FBQztZQUN2QixDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDOytHQTlYVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29tbW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBkYXRlUGlwZSA9IGluamVjdChEYXRlUGlwZSk7IFxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBtYWluQ29udGFpbmVyTGVmdCA9IDA7XG5cbiAgZ2V0aGFzVmlzaWJsZUNvbHVtbnMoY29sdW1uczogYW55W10pOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGVja1Zpc2libGUgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW5zPy5zb21lKChjb2wpID0+IHtcbiAgICAgICAgaWYgKGNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbC5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbHVtbnMpO1xuICB9XG5cbiAgZ2V0aGFzSW5WaXNpYmxlQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoZWNrVmlzaWJsZSA9IChjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIGNvbHVtbnM/LnNvbWUoKGNvbCkgPT4ge1xuICAgICAgICBpZiAoIWNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbC5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gY2hlY2tWaXNpYmxlKGNvbHVtbnMpO1xuICB9XG5cblxuICBnZXRUb3RhbENvbHVtbnNMZW5ndGgoY29sdW1uczogYW55W10pOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICBjb2x1bW5zPy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICBpZiAoY29sLmNoaWxkcmVuICYmIEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIGNvdW50ICs9IGNvbC5jaGlsZHJlbi5sZW5ndGg7IC8vIGNvdW50IGNoaWxkcmVuIGluc3RlYWQgb2YgcGFyZW50XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3VudCArPSAxOyAvLyBjb3VudCBwYXJlbnQgZGlyZWN0bHlcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIGdldGhhc1JpZ2h0UGlubmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoZWNrUGlubmVkUmlnaHQgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW5zPy5zb21lKChjb2wpID0+IHtcbiAgICAgICAgaWYgKGNvbD8ucGlubmVkID09PSAncmlnaHQnICYmIGNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2wuY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIGNoZWNrUGlubmVkUmlnaHQoY29sdW1ucyk7XG4gIH1cblxuICBnZXRoYXNMZWZ0UGlubmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoZWNrUGlubmVkUmlnaHQgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW5zPy5zb21lKChjb2wpID0+IHtcbiAgICAgICAgaWYgKGNvbD8ucGlubmVkID09PSAnbGVmdCcgJiYgY29sPy5pc192aXNpYmxlKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBjaGVja1Bpbm5lZFJpZ2h0KGNvbC5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2x1bW5zKTtcbiAgfVxuXG5cbiAgZ2V0RXhwYW5kZWRSb3dDb3VudChkYXRhOiBhbnlbXSk6IG51bWJlciB7XG4gICAgbGV0IGdyb3VwQ291bnQgPSAwO1xuICAgIGxldCByb3dDb3VudCA9IDA7XG5cbiAgICBkYXRhPy5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgIGlmIChncm91cD8uaXNHcm91cCkge1xuICAgICAgICBncm91cENvdW50Kys7XG5cbiAgICAgICAgaWYgKGdyb3VwPy5pc0V4cGFuZCAmJiBBcnJheS5pc0FycmF5KGdyb3VwPy5jaGlsZHJlbikpIHtcbiAgICAgICAgICBncm91cC5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQuaXNHcm91cCkge1xuICAgICAgICAgICAgICBpZiAoY2hpbGQuaXNFeHBhbmQgJiYgQXJyYXkuaXNBcnJheShjaGlsZC5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICByb3dDb3VudCArPSBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJvd0NvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChncm91cENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gZGF0YS5sZW5ndGg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwQ291bnQgKyByb3dDb3VudDtcbiAgfVxuXG5cbiAgZ2V0RmlsdGVyc0Zyb21Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzQ29uZmlnOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICBjb25zdCBjaGVja0NvbHVtbiA9IChjb2w6IGFueSkgPT4ge1xuICAgICAgaWYgKGNvbC5xdWVyeT8uY29uZGl0aW9uID09PSAnbm9uZScpIHtcbiAgICAgICAgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSA9IG51bGw7XG4gICAgICAgIGNvbC5xdWVyeS5zZWNvbmRfY29uZGl0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhc0ZpcnN0VmFsdWUgPSBjb2wucXVlcnk/LmZpcnN0X3ZhbHVlICE9IG51bGwgJiYgY29sLnF1ZXJ5Py5maXJzdF92YWx1ZSAhPT0gXCJcIiAmJiBmaWx0ZXJzQ29uZmlnLnNvbWUoKGVsZSkgPT4gZWxlLmZpZWxkID09IGNvbC5maWVsZCk7XG4gICAgICBjb25zdCBoYXNJZHMgPSBBcnJheS5pc0FycmF5KGNvbC5xdWVyeT8uX2lkcykgJiYgY29sLnF1ZXJ5Ll9pZHMubGVuZ3RoID4gMCAmJiBmaWx0ZXJzQ29uZmlnLnNvbWUoKGVsZSkgPT4gZWxlLmZpZWxkID09IGNvbC5maWVsZCk7XG4gICAgICBpZiAoaGFzRmlyc3RWYWx1ZSB8fCBoYXNJZHMpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgIHNlYXJjaDogY29sLnNlYXJjaCA/PyBcIlwiLFxuICAgICAgICAgIGZpZWxkOiBjb2wuZmllbGQsXG4gICAgICAgICAgdHlwZTogY29sLnR5cGUsXG4gICAgICAgICAgX2lkczogKGNvbC50eXBlID09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5JykgPyBjb2wucXVlcnk/Ll9pZHMgOiBbXSxcbiAgICAgICAgICBxdWVyeTogKGNvbC50eXBlID09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5JykgPyBudWxsIDogKGNvbD8ucXVlcnk/LmZpcnN0X3ZhbHVlID8gY29sPy5xdWVyeSA6IG51bGwpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb2wuY2hpbGRyZW4pICYmIGNvbC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbC5jaGlsZHJlbi5mb3JFYWNoKGNoZWNrQ29sdW1uKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbHVtbnMuZm9yRWFjaChjaGVja0NvbHVtbik7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYXN5bmMgYXBwbHlGaWx0ZXJzVG9Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICBpZiAoIWNvbC5xdWVyeSkge1xuICAgICAgICBjb2wucXVlcnkgPSB7XG4gICAgICAgICAgZmlyc3RfdmFsdWU6IG51bGwsXG4gICAgICAgICAgc2Vjb25kX3ZhbHVlOiBudWxsLFxuICAgICAgICAgIGZpcnN0X2NvbmRpdGlvbjogY29sLnR5cGUgIT09ICdkYXRlJyAmJiBjb2wudHlwZSAhPT0gJ251bWJlcicgPyAnY29udGFpbicgOiAnZXF1YWwnLFxuICAgICAgICAgIHNlY29uZF9jb25kaXRpb246IG51bGwsXG4gICAgICAgICAgY29uZGl0aW9uOiAnbm9uZScsXG4gICAgICAgICAgX2lkczogW11cbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsdGVyID0gZmlsdGVycy5maW5kKGYgPT4gZi5maWVsZCA9PT0gY29sLmZpZWxkKTtcblxuICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICBpZiAoY29sLnR5cGUgPT09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5Jykge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gZmlsdGVyLl9pZHMgPz8gW107XG4gICAgICAgICAgY29uc3QgZHJvcGRvd25WYWx1ZXMgPSBjb2wuY29sdW1uX2Ryb3Bkb3duX3ZhbHVlID8/IFtdO1xuXG4gICAgICAgICAgLy8g4pyFIE1hcCBkZXBlbmRpbmcgb24gZHJvcGRvd24gdmFsdWUgc3RydWN0dXJlXG4gICAgICAgICAgbGV0IHNlbGVjdGVkTGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZHJvcGRvd25WYWx1ZXMpICYmIGRyb3Bkb3duVmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgZHJvcGRvd25WYWx1ZXNbMF0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgIC8vIG9iamVjdC1iYXNlZCBkcm9wZG93bnM6IHsgaWQsIG5hbWUvbGFiZWwvdmFsdWUvdGV4dCB9XG4gICAgICAgICAgICAgIHNlbGVjdGVkTGFiZWxzID0gZHJvcGRvd25WYWx1ZXNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKG9wdCA9PiBzZWxlY3RlZElkcy5pbmNsdWRlcyhvcHQuaWQpKVxuICAgICAgICAgICAgICAgIC5tYXAob3B0ID0+IG9wdC5uYW1lID8/IG9wdC5sYWJlbCA/PyBvcHQudmFsdWUgPz8gb3B0LnRleHQgPz8gJycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gc3RyaW5nLWJhc2VkIGRyb3Bkb3duc1xuICAgICAgICAgICAgICBzZWxlY3RlZExhYmVscyA9IGRyb3Bkb3duVmFsdWVzLmZpbHRlcihvcHQgPT4gc2VsZWN0ZWRJZHMuaW5jbHVkZXMob3B0KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8g4pyFIFN0b3JlIHJlYWRhYmxlIHRleHQgaW4gZmlsdGVyVmFsdWUgKGNvbW1hLXNlcGFyYXRlZClcbiAgICAgICAgICBjb2wuZmlsdGVyVmFsdWUgPSBzZWxlY3RlZExhYmVscy5qb2luKCcsICcpO1xuXG4gICAgICAgICAgLy8gbWFpbnRhaW4gcXVlcnkgc3RhdGVcbiAgICAgICAgICBjb2wucXVlcnkuX2lkcyA9IHNlbGVjdGVkSWRzO1xuICAgICAgICAgIGNvbC5zZWFyY2ggPSBmaWx0ZXIuc2VhcmNoID8/ICcnO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8g4pyFIE5vbi1kcm9wZG93biBmaWx0ZXJzICh0ZXh0L2RhdGUvbnVtYmVyKVxuICAgICAgICAgIGNvbC5maWx0ZXJWYWx1ZSA9IGZpbHRlci5zZWFyY2ggfHwgZmlsdGVyLnF1ZXJ5Py5maXJzdF92YWx1ZSB8fCAnJztcbiAgICAgICAgICBjb2wuc2VhcmNoID0gZmlsdGVyLnNlYXJjaCA/PyAnJztcbiAgICAgICAgICBjb2wucXVlcnkuZmlyc3RfdmFsdWUgPSBmaWx0ZXIucXVlcnk/LmZpcnN0X3ZhbHVlID8/IG51bGw7XG4gICAgICAgICAgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSA9IGZpbHRlci5xdWVyeT8uc2Vjb25kX3ZhbHVlID8/IG51bGw7XG4gICAgICAgICAgY29sLnF1ZXJ5LmZpcnN0X2NvbmRpdGlvbiA9XG4gICAgICAgICAgICBmaWx0ZXIucXVlcnk/LmZpcnN0X2NvbmRpdGlvbiA/P1xuICAgICAgICAgICAgKGNvbC50eXBlICE9PSAnZGF0ZScgJiYgY29sLnR5cGUgIT0gJ251bWJlcicgPyAnY29udGFpbicgOiAnZXF1YWwnKTtcbiAgICAgICAgICBjb2wucXVlcnkuc2Vjb25kX2NvbmRpdGlvbiA9IGZpbHRlci5xdWVyeT8uc2Vjb25kX2NvbmRpdGlvbiA/PyBudWxsO1xuICAgICAgICAgIGNvbC5xdWVyeS5jb25kaXRpb24gPSBmaWx0ZXIucXVlcnk/LmNvbmRpdGlvbiA/PyAnbm9uZSc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENsZWFyIGZpbHRlciBpZiBub3QgcHJlc2VudFxuICAgICAgICBjb2wuZmlsdGVyVmFsdWUgPSBudWxsO1xuICAgICAgICBjb2wuc2VhcmNoID0gJyc7XG4gICAgICAgIGNvbC5xdWVyeS5faWRzID0gW107XG4gICAgICAgIGNvbC5xdWVyeS5maXJzdF92YWx1ZSA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vIOKchSBSZWN1cnNpdmVseSBhcHBseSBmb3IgY2hpbGRyZW5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGNvbC5jaGlsZHJlbikgJiYgY29sLmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY29sLmNoaWxkcmVuID0gYXdhaXQgdGhpcy5hcHBseUZpbHRlcnNUb0NvbHVtbnMoY29sLmNoaWxkcmVuLCBmaWx0ZXJzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gY29sdW1ucztcbiAgfVxuXG5cblxuXG5cblxuICBhY3RpdmVGaWx0ZXJlZENvbHVtbnM6IGFueVtdID0gW107XG4gIHVwZGF0ZUFjdGl2ZUZpbHRlcmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCBjb2xsZWN0RmlsdGVyZWQgPSAoY29sczogYW55W10pOiBhbnlbXSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBhbnlbXSA9IFtdO1xuXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY29sID0gY29sc1tpXTtcbiAgICAgICAgaWYgKGNvbC5jaGlsZHJlbiAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoY29sbGVjdEZpbHRlcmVkKGNvbC5jaGlsZHJlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNvbC5xdWVyeSkge1xuICAgICAgICAgIGNvbnN0IGhhc0Ryb3Bkb3duRmlsdGVyID1cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkoY29sLnF1ZXJ5Ll9pZHMpICYmIGNvbC5xdWVyeS5faWRzLmxlbmd0aCA+IDA7XG5cbiAgICAgICAgICBjb25zdCBoYXNWYWx1ZUZpbHRlciA9XG4gICAgICAgICAgICAoY29sLnF1ZXJ5LmZpcnN0X3ZhbHVlICYmIGNvbC5xdWVyeS5maXJzdF92YWx1ZSAhPT0gJycpIHx8XG4gICAgICAgICAgICAoY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSAmJiBjb2wucXVlcnkuc2Vjb25kX3ZhbHVlICE9PSAnJyk7XG5cbiAgICAgICAgICBpZiAoaGFzRHJvcGRvd25GaWx0ZXIgfHwgaGFzVmFsdWVGaWx0ZXIpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKGNvbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gICAgdGhpcy5hY3RpdmVGaWx0ZXJlZENvbHVtbnMgPSBbLi4uY29sbGVjdEZpbHRlcmVkKGNvbHVtbnMpXTtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVGaWx0ZXJlZENvbHVtbnM7XG4gIH1cblxuXG5cbiAgaGFzRmllbGRDaGFuZ2VkKGN1cnJlbnQ6IGFueSwgb3JpZ2luYWw6IGFueSwgdHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICByZXR1cm4gTnVtYmVyKGN1cnJlbnQpICE9PSBOdW1iZXIob3JpZ2luYWwpO1xuXG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICByZXR1cm4gU3RyaW5nKGN1cnJlbnQgfHwgJycpICE9PSBTdHJpbmcob3JpZ2luYWwgfHwgJycpO1xuXG4gICAgICBjYXNlICdkcm9wZG93bic6XG4gICAgICAgIGlmICh0eXBlb2YgY3VycmVudCA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG9yaWdpbmFsID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHJldHVybiBjdXJyZW50Py5pZCAhPT0gb3JpZ2luYWw/LmlkIHx8IGN1cnJlbnQ/LnZhbHVlICE9PSBvcmlnaW5hbD8udmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGN1cnJlbnQgIT09IG9yaWdpbmFsO1xuXG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oY3VycmVudCkgIT09IEJvb2xlYW4ob3JpZ2luYWwpO1xuXG4gICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZShjdXJyZW50KS5nZXRUaW1lKCk7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRGF0ZSA9IG5ldyBEYXRlKG9yaWdpbmFsKS5nZXRUaW1lKCk7XG4gICAgICAgIHJldHVybiBpc05hTihjdXJyZW50RGF0ZSkgfHwgaXNOYU4ob3JpZ2luYWxEYXRlKVxuICAgICAgICAgID8gY3VycmVudCAhPT0gb3JpZ2luYWxcbiAgICAgICAgICA6IGN1cnJlbnREYXRlICE9PSBvcmlnaW5hbERhdGU7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShjdXJyZW50KSAhPT0gSlNPTi5zdHJpbmdpZnkob3JpZ2luYWwpO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gQ29weSBjb2x1bW4gZGF0YSB0byBjb2x1bW4gZHJvcGRvd24gdmFsdWVzIGluIGNhc2Ugb2YgYWJzZW5jZVxuICBhc3luYyBjb3B5RHJvcGRvd25EYXRhUmVjdXJzaXZlbHkoY29sdW1uczogYW55W10pOiBQcm9taXNlPGFueVtdPiB7XG4gICAgZm9yIChjb25zdCBjb2wgb2YgY29sdW1ucykge1xuICAgICAgaWYgKGNvbC50eXBlID09PSAnZHJvcGRvd24nIHx8IGNvbC50eXBlID09ICdhcnJheScpIHtcbiAgICAgICAgY29uc3QgZHJvcGRvd25WYWx1ZXMgPSBjb2wuY29sdW1uX2Ryb3Bkb3duX3ZhbHVlO1xuICAgICAgICBjb25zdCBkYXRhVmFsdWVzID0gY29sLmNvbHVtbl9kYXRhO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAoIUFycmF5LmlzQXJyYXkoZHJvcGRvd25WYWx1ZXMpIHx8IGRyb3Bkb3duVmFsdWVzLmxlbmd0aCA9PT0gMCkgJiZcbiAgICAgICAgICBBcnJheS5pc0FycmF5KGRhdGFWYWx1ZXMpICYmXG4gICAgICAgICAgZGF0YVZhbHVlcy5sZW5ndGggPiAwXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbC5jb2x1bW5fZHJvcGRvd25fdmFsdWUgPSBkYXRhVmFsdWVzLm1hcChpdGVtID0+XG4gICAgICAgICAgICB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgPyBpdGVtXG4gICAgICAgICAgICAgIDogeyBpZDogaXRlbSwgbmFtZTogaXRlbSwgdmFsdWU6IGl0ZW0gfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBjb2wuY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmNvcHlEcm9wZG93bkRhdGFSZWN1cnNpdmVseShjb2wuY2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5zO1xuICB9XG5cblxuICBmb3JtYXREYXRlVmFsdWUodmFsdWU6IGFueSwgbW9tZW50Rm9ybWF0Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cnlGb3JtYXQgPSAoZGF0ZTogRGF0ZSkgPT4ge1xuICAgICAgY29uc3QgYW5ndWxhckZvcm1hdCA9IG1vbWVudEZvcm1hdFxuICAgICAgICA/IHRoaXMuY29udmVydE1vbWVudFRvQW5ndWxhckRhdGVGb3JtYXQobW9tZW50Rm9ybWF0KVxuICAgICAgICA6ICdkZC9NTS95eXl5JztcbiAgICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCBhbmd1bGFyRm9ybWF0KSA/PyAnLSc7XG4gICAgfTtcblxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKHZhbHVlLmdldFRpbWUoKSkpIHtcbiAgICAgIHJldHVybiB0cnlGb3JtYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBsZXQgY2xlYW5lZFZhbHVlID0gdmFsdWUucmVwbGFjZSgvXkRELywgJzAxJyk7XG5cbiAgICAgIGNvbnN0IHBhcnNlZERETU0gPSB0aGlzLnBhcnNlRERNTVlZWVkoY2xlYW5lZFZhbHVlKTtcbiAgICAgIGlmIChwYXJzZWRERE1NKSByZXR1cm4gdHJ5Rm9ybWF0KHBhcnNlZERETU0pO1xuXG4gICAgICBpZiAoIWlzTmFOKERhdGUucGFyc2UoY2xlYW5lZFZhbHVlKSkpIHtcbiAgICAgICAgcmV0dXJuIHRyeUZvcm1hdChuZXcgRGF0ZShjbGVhbmVkVmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICFpc05hTihEYXRlLnBhcnNlKHZhbHVlKSkpIHtcbiAgICAgIHJldHVybiB0cnlGb3JtYXQobmV3IERhdGUodmFsdWUpKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWU/Lm5hbWUgfHwgdmFsdWU/LnZhbHVlKSB7XG4gICAgICByZXR1cm4gdmFsdWUudmFsdWUgPz8gdmFsdWUubmFtZSA/PyAnLSc7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlICE9IG51bGwpIHJldHVybiBTdHJpbmcodmFsdWUpO1xuXG4gICAgcmV0dXJuICctJztcbiAgfVxuXG5cblxuXG4gIHByaXZhdGUgY29udmVydE1vbWVudFRvQW5ndWxhckRhdGVGb3JtYXQobW9tZW50Rm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghbW9tZW50Rm9ybWF0KSByZXR1cm4gJ21lZGl1bURhdGUnO1xuXG4gICAgcmV0dXJuIG1vbWVudEZvcm1hdFxuICAgICAgLnJlcGxhY2UoL0REL2csICdkZCcpXG4gICAgICAucmVwbGFjZSgvRC9nLCAnZCcpXG4gICAgICAucmVwbGFjZSgvWVlZWS9nLCAneXl5eScpXG4gICAgICAucmVwbGFjZSgvWVkvZywgJ3l5JylcbiAgICAgIC5yZXBsYWNlKC9NTU1NL2csICdNTU1NJylcbiAgICAgIC5yZXBsYWNlKC9NTU0vZywgJ01NTScpXG4gICAgICAucmVwbGFjZSgvTU0vZywgJ01NJylcbiAgICAgIC5yZXBsYWNlKC9NL2csICdNJylcbiAgICAgIC5yZXBsYWNlKC9kZGRkL2csICdFRUVFJylcbiAgICAgIC5yZXBsYWNlKC9kZGQvZywgJ0VFRScpXG4gICAgICAucmVwbGFjZSgvSEgvZywgJ0hIJylcbiAgICAgIC5yZXBsYWNlKC9IL2csICdIJylcbiAgICAgIC5yZXBsYWNlKC9oaC9nLCAnaGgnKVxuICAgICAgLnJlcGxhY2UoL2gvZywgJ2gnKVxuICAgICAgLnJlcGxhY2UoL21tL2csICdtbScpXG4gICAgICAucmVwbGFjZSgvbS9nLCAnbScpXG4gICAgICAucmVwbGFjZSgvc3MvZywgJ3NzJylcbiAgICAgIC5yZXBsYWNlKC9zL2csICdzJylcbiAgICAgIC5yZXBsYWNlKC9BL2csICdhJylcbiAgICAgIC5yZXBsYWNlKC9hL2csICdhJyk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRERNTVlZWVkodmFsdWU6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcbiAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9eKFxcZHsyfSlcXC8oXFxkezJ9KVxcLyhcXGR7NH0pJC8pO1xuICAgIGlmICghbWF0Y2gpIHJldHVybiBudWxsO1xuXG4gICAgY29uc3QgZGF5ID0gK21hdGNoWzFdO1xuICAgIGNvbnN0IG1vbnRoID0gK21hdGNoWzJdIC0gMTtcbiAgICBjb25zdCB5ZWFyID0gK21hdGNoWzNdO1xuXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpO1xuXG4gICAgcmV0dXJuIChkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHllYXIgJiZcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSA9PT0gbW9udGggJiZcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpID09PSBkYXkpXG4gICAgICA/IGRhdGVcbiAgICAgIDogbnVsbDtcbiAgfVxuXG59XG5cblxuXG5cbiJdfQ==
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWdyaWQvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS25ELE1BQU0sT0FBTyxhQUFhO0lBR3hCO1FBRFEsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUc3QixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUE2TTdCLDBCQUFxQixHQUFVLEVBQUUsQ0FBQztJQS9NbEIsQ0FBQztJQUlqQixvQkFBb0IsQ0FBQyxPQUFjO1FBQ2pDLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBYyxFQUFXLEVBQUU7WUFDL0MsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksR0FBRyxFQUFFLFVBQVU7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQ2pDLElBQUksR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUU7b0JBQ3pCLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbkM7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQztRQUNGLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxPQUFjO1FBQ25DLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBYyxFQUFXLEVBQUU7WUFDL0MsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVTtv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QUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV4QyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUk7WUFDakMsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUs7WUFDekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEdBQUcsQ0FBQztZQUN2QixDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDOytHQTlYVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ29tbW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSBkYXRlUGlwZSA9IGluamVjdChEYXRlUGlwZSk7IFxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBtYWluQ29udGFpbmVyTGVmdCA9IDA7XG5cbiAgZ2V0aGFzVmlzaWJsZUNvbHVtbnMoY29sdW1uczogYW55W10pOiBib29sZWFuIHtcbiAgICBjb25zdCBjaGVja1Zpc2libGUgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW5zLnNvbWUoKGNvbCkgPT4ge1xuICAgICAgICBpZiAoY29sPy5pc192aXNpYmxlKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBjaGVja1Zpc2libGUoY29sLmNoaWxkcmVuKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiBjaGVja1Zpc2libGUoY29sdW1ucyk7XG4gIH1cblxuICBnZXRoYXNJblZpc2libGVDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2hlY2tWaXNpYmxlID0gKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiA9PiB7XG4gICAgICByZXR1cm4gY29sdW1ucy5zb21lKChjb2wpID0+IHtcbiAgICAgICAgaWYgKCFjb2w/LmlzX3Zpc2libGUpIHJldHVybiB0cnVlO1xuICAgICAgICBpZiAoY29sPy5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIGNoZWNrVmlzaWJsZShjb2wuY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIGNoZWNrVmlzaWJsZShjb2x1bW5zKTtcbiAgfVxuXG5cbiAgZ2V0VG90YWxDb2x1bW5zTGVuZ3RoKGNvbHVtbnM6IGFueVtdKTogbnVtYmVyIHtcbiAgICBsZXQgY291bnQgPSAwO1xuXG4gICAgY29sdW1ucy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICBpZiAoY29sLmNoaWxkcmVuICYmIEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIGNvdW50ICs9IGNvbC5jaGlsZHJlbi5sZW5ndGg7IC8vIGNvdW50IGNoaWxkcmVuIGluc3RlYWQgb2YgcGFyZW50XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb3VudCArPSAxOyAvLyBjb3VudCBwYXJlbnQgZGlyZWN0bHlcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBjb3VudDtcbiAgfVxuXG4gIGdldGhhc1JpZ2h0UGlubmVkQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoZWNrUGlubmVkUmlnaHQgPSAoY29sdW1uczogYW55W10pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBjb2x1bW5zLnNvbWUoKGNvbCkgPT4ge1xuICAgICAgICBpZiAoY29sPy5waW5uZWQgPT09ICdyaWdodCcgJiYgY29sPy5pc192aXNpYmxlKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgaWYgKGNvbD8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybiBjaGVja1Bpbm5lZFJpZ2h0KGNvbC5jaGlsZHJlbik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2x1bW5zKTtcbiAgfVxuXG4gIGdldGhhc0xlZnRQaW5uZWRDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2hlY2tQaW5uZWRSaWdodCA9IChjb2x1bW5zOiBhbnlbXSk6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIGNvbHVtbnMuc29tZSgoY29sKSA9PiB7XG4gICAgICAgIGlmIChjb2w/LnBpbm5lZCA9PT0gJ2xlZnQnICYmIGNvbD8uaXNfdmlzaWJsZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIGlmIChjb2w/LmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm4gY2hlY2tQaW5uZWRSaWdodChjb2wuY2hpbGRyZW4pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIGNoZWNrUGlubmVkUmlnaHQoY29sdW1ucyk7XG4gIH1cblxuXG4gIGdldEV4cGFuZGVkUm93Q291bnQoZGF0YTogYW55W10pOiBudW1iZXIge1xuICAgIGxldCBncm91cENvdW50ID0gMDtcbiAgICBsZXQgcm93Q291bnQgPSAwO1xuXG4gICAgZGF0YS5mb3JFYWNoKGdyb3VwID0+IHtcbiAgICAgIGlmIChncm91cD8uaXNHcm91cCkge1xuICAgICAgICBncm91cENvdW50Kys7XG5cbiAgICAgICAgaWYgKGdyb3VwPy5pc0V4cGFuZCAmJiBBcnJheS5pc0FycmF5KGdyb3VwPy5jaGlsZHJlbikpIHtcbiAgICAgICAgICBncm91cC5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoY2hpbGQuaXNHcm91cCkge1xuICAgICAgICAgICAgICBpZiAoY2hpbGQuaXNFeHBhbmQgJiYgQXJyYXkuaXNBcnJheShjaGlsZC5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICByb3dDb3VudCArPSBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJvd0NvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChncm91cENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gZGF0YS5sZW5ndGg7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdyb3VwQ291bnQgKyByb3dDb3VudDtcbiAgfVxuXG5cbiAgZ2V0RmlsdGVyc0Zyb21Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzQ29uZmlnOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICBjb25zdCBjaGVja0NvbHVtbiA9IChjb2w6IGFueSkgPT4ge1xuICAgICAgaWYgKGNvbC5xdWVyeT8uY29uZGl0aW9uID09PSAnbm9uZScpIHtcbiAgICAgICAgY29sLnF1ZXJ5LnNlY29uZF92YWx1ZSA9IG51bGw7XG4gICAgICAgIGNvbC5xdWVyeS5zZWNvbmRfY29uZGl0aW9uID0gbnVsbDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGhhc0ZpcnN0VmFsdWUgPSBjb2wucXVlcnk/LmZpcnN0X3ZhbHVlICE9IG51bGwgJiYgY29sLnF1ZXJ5Py5maXJzdF92YWx1ZSAhPT0gXCJcIiAmJiBmaWx0ZXJzQ29uZmlnLnNvbWUoKGVsZSkgPT4gZWxlLmZpZWxkID09IGNvbC5maWVsZCk7XG4gICAgICBjb25zdCBoYXNJZHMgPSBBcnJheS5pc0FycmF5KGNvbC5xdWVyeT8uX2lkcykgJiYgY29sLnF1ZXJ5Ll9pZHMubGVuZ3RoID4gMCAmJiBmaWx0ZXJzQ29uZmlnLnNvbWUoKGVsZSkgPT4gZWxlLmZpZWxkID09IGNvbC5maWVsZCk7XG4gICAgICBpZiAoaGFzRmlyc3RWYWx1ZSB8fCBoYXNJZHMpIHtcbiAgICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICAgIHNlYXJjaDogY29sLnNlYXJjaCA/PyBcIlwiLFxuICAgICAgICAgIGZpZWxkOiBjb2wuZmllbGQsXG4gICAgICAgICAgdHlwZTogY29sLnR5cGUsXG4gICAgICAgICAgX2lkczogKGNvbC50eXBlID09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5JykgPyBjb2wucXVlcnk/Ll9pZHMgOiBbXSxcbiAgICAgICAgICBxdWVyeTogKGNvbC50eXBlID09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5JykgPyBudWxsIDogKGNvbD8ucXVlcnk/LmZpcnN0X3ZhbHVlID8gY29sPy5xdWVyeSA6IG51bGwpXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb2wuY2hpbGRyZW4pICYmIGNvbC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbC5jaGlsZHJlbi5mb3JFYWNoKGNoZWNrQ29sdW1uKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbHVtbnMuZm9yRWFjaChjaGVja0NvbHVtbik7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYXN5bmMgYXBwbHlGaWx0ZXJzVG9Db2x1bW5zKGNvbHVtbnM6IGFueVtdLCBmaWx0ZXJzOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICBpZiAoIWNvbC5xdWVyeSkge1xuICAgICAgICBjb2wucXVlcnkgPSB7XG4gICAgICAgICAgZmlyc3RfdmFsdWU6IG51bGwsXG4gICAgICAgICAgc2Vjb25kX3ZhbHVlOiBudWxsLFxuICAgICAgICAgIGZpcnN0X2NvbmRpdGlvbjogY29sLnR5cGUgIT09ICdkYXRlJyAmJiBjb2wudHlwZSAhPT0gJ251bWJlcicgJiYgIGNvbC50eXBlICE9PSAndGltZSc/ICdjb250YWluJyA6ICdlcXVhbCcsXG4gICAgICAgICAgc2Vjb25kX2NvbmRpdGlvbjogbnVsbCxcbiAgICAgICAgICBjb25kaXRpb246ICdub25lJyxcbiAgICAgICAgICBfaWRzOiBbXVxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJzLmZpbmQoZiA9PiBmLmZpZWxkID09PSBjb2wuZmllbGQpO1xuXG4gICAgICBpZiAoZmlsdGVyKSB7XG4gICAgICAgIGlmIChjb2wudHlwZSA9PT0gJ2Ryb3Bkb3duJyB8fCBjb2wudHlwZSA9PSAnYXJyYXknKSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBmaWx0ZXIuX2lkcyA/PyBbXTtcbiAgICAgICAgICBjb25zdCBkcm9wZG93blZhbHVlcyA9IGNvbC5jb2x1bW5fZHJvcGRvd25fdmFsdWUgPz8gW107XG5cbiAgICAgICAgICAvLyDinIUgTWFwIGRlcGVuZGluZyBvbiBkcm9wZG93biB2YWx1ZSBzdHJ1Y3R1cmVcbiAgICAgICAgICBsZXQgc2VsZWN0ZWRMYWJlbHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkcm9wZG93blZhbHVlcykgJiYgZHJvcGRvd25WYWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBkcm9wZG93blZhbHVlc1swXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgLy8gb2JqZWN0LWJhc2VkIGRyb3Bkb3duczogeyBpZCwgbmFtZS9sYWJlbC92YWx1ZS90ZXh0IH1cbiAgICAgICAgICAgICAgc2VsZWN0ZWRMYWJlbHMgPSBkcm9wZG93blZhbHVlc1xuICAgICAgICAgICAgICAgIC5maWx0ZXIob3B0ID0+IHNlbGVjdGVkSWRzLmluY2x1ZGVzKG9wdC5pZCkpXG4gICAgICAgICAgICAgICAgLm1hcChvcHQgPT4gb3B0Lm5hbWUgPz8gb3B0LmxhYmVsID8/IG9wdC52YWx1ZSA/PyBvcHQudGV4dCA/PyAnJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBzdHJpbmctYmFzZWQgZHJvcGRvd25zXG4gICAgICAgICAgICAgIHNlbGVjdGVkTGFiZWxzID0gZHJvcGRvd25WYWx1ZXMuZmlsdGVyKG9wdCA9PiBzZWxlY3RlZElkcy5pbmNsdWRlcyhvcHQpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyDinIUgU3RvcmUgcmVhZGFibGUgdGV4dCBpbiBmaWx0ZXJWYWx1ZSAoY29tbWEtc2VwYXJhdGVkKVxuICAgICAgICAgIGNvbC5maWx0ZXJWYWx1ZSA9IHNlbGVjdGVkTGFiZWxzLmpvaW4oJywgJyk7XG5cbiAgICAgICAgICAvLyBtYWludGFpbiBxdWVyeSBzdGF0ZVxuICAgICAgICAgIGNvbC5xdWVyeS5faWRzID0gc2VsZWN0ZWRJZHM7XG4gICAgICAgICAgY29sLnNlYXJjaCA9IGZpbHRlci5zZWFyY2ggPz8gJyc7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyDinIUgTm9uLWRyb3Bkb3duIGZpbHRlcnMgKHRleHQvZGF0ZS9udW1iZXIpXG4gICAgICAgICAgY29sLmZpbHRlclZhbHVlID0gZmlsdGVyLnNlYXJjaCB8fCBmaWx0ZXIucXVlcnk/LmZpcnN0X3ZhbHVlIHx8ICcnO1xuICAgICAgICAgIGNvbC5zZWFyY2ggPSBmaWx0ZXIuc2VhcmNoID8/ICcnO1xuICAgICAgICAgIGNvbC5xdWVyeS5maXJzdF92YWx1ZSA9IGZpbHRlci5xdWVyeT8uZmlyc3RfdmFsdWUgPz8gbnVsbDtcbiAgICAgICAgICBjb2wucXVlcnkuc2Vjb25kX3ZhbHVlID0gZmlsdGVyLnF1ZXJ5Py5zZWNvbmRfdmFsdWUgPz8gbnVsbDtcbiAgICAgICAgICBjb2wucXVlcnkuZmlyc3RfY29uZGl0aW9uID1cbiAgICAgICAgICAgIGZpbHRlci5xdWVyeT8uZmlyc3RfY29uZGl0aW9uID8/XG4gICAgICAgICAgICAoY29sLnR5cGUgIT09ICdkYXRlJyAmJiBjb2wudHlwZSAhPSAnbnVtYmVyJyA/ICdjb250YWluJyA6ICdlcXVhbCcpO1xuICAgICAgICAgIGNvbC5xdWVyeS5zZWNvbmRfY29uZGl0aW9uID0gZmlsdGVyLnF1ZXJ5Py5zZWNvbmRfY29uZGl0aW9uID8/IG51bGw7XG4gICAgICAgICAgY29sLnF1ZXJ5LmNvbmRpdGlvbiA9IGZpbHRlci5xdWVyeT8uY29uZGl0aW9uID8/ICdub25lJztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQ2xlYXIgZmlsdGVyIGlmIG5vdCBwcmVzZW50XG4gICAgICAgIGNvbC5maWx0ZXJWYWx1ZSA9IG51bGw7XG4gICAgICAgIGNvbC5zZWFyY2ggPSAnJztcbiAgICAgICAgY29sLnF1ZXJ5Ll9pZHMgPSBbXTtcbiAgICAgICAgY29sLnF1ZXJ5LmZpcnN0X3ZhbHVlID0gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8g4pyFIFJlY3Vyc2l2ZWx5IGFwcGx5IGZvciBjaGlsZHJlblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29sLmNoaWxkcmVuKSAmJiBjb2wuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICBjb2wuY2hpbGRyZW4gPSBhd2FpdCB0aGlzLmFwcGx5RmlsdGVyc1RvQ29sdW1ucyhjb2wuY2hpbGRyZW4sIGZpbHRlcnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb2x1bW5zO1xuICB9XG5cblxuXG5cblxuXG4gIGFjdGl2ZUZpbHRlcmVkQ29sdW1uczogYW55W10gPSBbXTtcbiAgdXBkYXRlQWN0aXZlRmlsdGVyZWRDb2x1bW5zKGNvbHVtbnM6IGFueVtdKTogYW55W10ge1xuICAgIGNvbnN0IGNvbGxlY3RGaWx0ZXJlZCA9IChjb2xzOiBhbnlbXSk6IGFueVtdID0+IHtcbiAgICAgIGxldCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29scy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBjb2wgPSBjb2xzW2ldO1xuICAgICAgICBpZiAoY29sLmNoaWxkcmVuICYmIGNvbC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChjb2xsZWN0RmlsdGVyZWQoY29sLmNoaWxkcmVuKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sLnF1ZXJ5KSB7XG4gICAgICAgICAgY29uc3QgaGFzRHJvcGRvd25GaWx0ZXIgPVxuICAgICAgICAgICAgQXJyYXkuaXNBcnJheShjb2wucXVlcnkuX2lkcykgJiYgY29sLnF1ZXJ5Ll9pZHMubGVuZ3RoID4gMDtcblxuICAgICAgICAgIGNvbnN0IGhhc1ZhbHVlRmlsdGVyID1cbiAgICAgICAgICAgIChjb2wucXVlcnkuZmlyc3RfdmFsdWUgJiYgY29sLnF1ZXJ5LmZpcnN0X3ZhbHVlICE9PSAnJykgfHxcbiAgICAgICAgICAgIChjb2wucXVlcnkuc2Vjb25kX3ZhbHVlICYmIGNvbC5xdWVyeS5zZWNvbmRfdmFsdWUgIT09ICcnKTtcblxuICAgICAgICAgIGlmIChoYXNEcm9wZG93bkZpbHRlciB8fCBoYXNWYWx1ZUZpbHRlcikge1xuICAgICAgICAgICAgcmVzdWx0LnB1c2goY29sKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgICB0aGlzLmFjdGl2ZUZpbHRlcmVkQ29sdW1ucyA9IFsuLi5jb2xsZWN0RmlsdGVyZWQoY29sdW1ucyldO1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbHRlcmVkQ29sdW1ucztcbiAgfVxuXG5cblxuICBoYXNGaWVsZENoYW5nZWQoY3VycmVudDogYW55LCBvcmlnaW5hbDogYW55LCB0eXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiBOdW1iZXIoY3VycmVudCkgIT09IE51bWJlcihvcmlnaW5hbCk7XG5cbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIHJldHVybiBTdHJpbmcoY3VycmVudCB8fCAnJykgIT09IFN0cmluZyhvcmlnaW5hbCB8fCAnJyk7XG5cbiAgICAgIGNhc2UgJ2Ryb3Bkb3duJzpcbiAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50ID09PSAnb2JqZWN0JyAmJiB0eXBlb2Ygb3JpZ2luYWwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcmV0dXJuIGN1cnJlbnQ/LmlkICE9PSBvcmlnaW5hbD8uaWQgfHwgY3VycmVudD8udmFsdWUgIT09IG9yaWdpbmFsPy52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY3VycmVudCAhPT0gb3JpZ2luYWw7XG5cbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICByZXR1cm4gQm9vbGVhbihjdXJyZW50KSAhPT0gQm9vbGVhbihvcmlnaW5hbCk7XG5cbiAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKGN1cnJlbnQpLmdldFRpbWUoKTtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxEYXRlID0gbmV3IERhdGUob3JpZ2luYWwpLmdldFRpbWUoKTtcbiAgICAgICAgcmV0dXJuIGlzTmFOKGN1cnJlbnREYXRlKSB8fCBpc05hTihvcmlnaW5hbERhdGUpXG4gICAgICAgICAgPyBjdXJyZW50ICE9PSBvcmlnaW5hbFxuICAgICAgICAgIDogY3VycmVudERhdGUgIT09IG9yaWdpbmFsRGF0ZTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGN1cnJlbnQpICE9PSBKU09OLnN0cmluZ2lmeShvcmlnaW5hbCk7XG4gICAgfVxuICB9XG5cblxuICAvLyBDb3B5IGNvbHVtbiBkYXRhIHRvIGNvbHVtbiBkcm9wZG93biB2YWx1ZXMgaW4gY2FzZSBvZiBhYnNlbmNlXG4gIGFzeW5jIGNvcHlEcm9wZG93bkRhdGFSZWN1cnNpdmVseShjb2x1bW5zOiBhbnlbXSk6IFByb21pc2U8YW55W10+IHtcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICBpZiAoY29sLnR5cGUgPT09ICdkcm9wZG93bicgfHwgY29sLnR5cGUgPT0gJ2FycmF5Jykge1xuICAgICAgICBjb25zdCBkcm9wZG93blZhbHVlcyA9IGNvbC5jb2x1bW5fZHJvcGRvd25fdmFsdWU7XG4gICAgICAgIGNvbnN0IGRhdGFWYWx1ZXMgPSBjb2wuY29sdW1uX2RhdGE7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICghQXJyYXkuaXNBcnJheShkcm9wZG93blZhbHVlcykgfHwgZHJvcGRvd25WYWx1ZXMubGVuZ3RoID09PSAwKSAmJlxuICAgICAgICAgIEFycmF5LmlzQXJyYXkoZGF0YVZhbHVlcykgJiZcbiAgICAgICAgICBkYXRhVmFsdWVzLmxlbmd0aCA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29sLmNvbHVtbl9kcm9wZG93bl92YWx1ZSA9IGRhdGFWYWx1ZXMubWFwKGl0ZW0gPT5cbiAgICAgICAgICAgIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgICA/IGl0ZW1cbiAgICAgICAgICAgICAgOiB7IGlkOiBpdGVtLCBuYW1lOiBpdGVtLCB2YWx1ZTogaXRlbSB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjb2wuY2hpbGRyZW4pICYmIGNvbC5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbC5jaGlsZHJlbiA9IGF3YWl0IHRoaXMuY29weURyb3Bkb3duRGF0YVJlY3Vyc2l2ZWx5KGNvbC5jaGlsZHJlbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbHVtbnM7XG4gIH1cblxuXG4gIGZvcm1hdERhdGVWYWx1ZSh2YWx1ZTogYW55LCBtb21lbnRGb3JtYXQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyeUZvcm1hdCA9IChkYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBhbmd1bGFyRm9ybWF0ID0gbW9tZW50Rm9ybWF0XG4gICAgICAgID8gdGhpcy5jb252ZXJ0TW9tZW50VG9Bbmd1bGFyRGF0ZUZvcm1hdChtb21lbnRGb3JtYXQpXG4gICAgICAgIDogJ2RkL01NL3l5eXknO1xuICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsIGFuZ3VsYXJGb3JtYXQpID8/ICctJztcbiAgICB9O1xuXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSAmJiAhaXNOYU4odmFsdWUuZ2V0VGltZSgpKSkge1xuICAgICAgcmV0dXJuIHRyeUZvcm1hdCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGxldCBjbGVhbmVkVmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9eREQvLCAnMDEnKTtcblxuICAgICAgY29uc3QgcGFyc2VkRERNTSA9IHRoaXMucGFyc2VERE1NWVlZWShjbGVhbmVkVmFsdWUpO1xuICAgICAgaWYgKHBhcnNlZERETU0pIHJldHVybiB0cnlGb3JtYXQocGFyc2VkRERNTSk7XG5cbiAgICAgIGlmICghaXNOYU4oRGF0ZS5wYXJzZShjbGVhbmVkVmFsdWUpKSkge1xuICAgICAgICByZXR1cm4gdHJ5Rm9ybWF0KG5ldyBEYXRlKGNsZWFuZWRWYWx1ZSkpO1xuICAgICAgfVxuICAgIH1cblxuXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgIWlzTmFOKERhdGUucGFyc2UodmFsdWUpKSkge1xuICAgICAgcmV0dXJuIHRyeUZvcm1hdChuZXcgRGF0ZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZT8ubmFtZSB8fCB2YWx1ZT8udmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZS52YWx1ZSA/PyB2YWx1ZS5uYW1lID8/ICctJztcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgIT0gbnVsbCkgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG5cbiAgICByZXR1cm4gJy0nO1xuICB9XG5cblxuXG5cbiAgcHJpdmF0ZSBjb252ZXJ0TW9tZW50VG9Bbmd1bGFyRGF0ZUZvcm1hdChtb21lbnRGb3JtYXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFtb21lbnRGb3JtYXQpIHJldHVybiAnbWVkaXVtRGF0ZSc7XG5cbiAgICByZXR1cm4gbW9tZW50Rm9ybWF0XG4gICAgICAucmVwbGFjZSgvREQvZywgJ2RkJylcbiAgICAgIC5yZXBsYWNlKC9EL2csICdkJylcbiAgICAgIC5yZXBsYWNlKC9ZWVlZL2csICd5eXl5JylcbiAgICAgIC5yZXBsYWNlKC9ZWS9nLCAneXknKVxuICAgICAgLnJlcGxhY2UoL01NTU0vZywgJ01NTU0nKVxuICAgICAgLnJlcGxhY2UoL01NTS9nLCAnTU1NJylcbiAgICAgIC5yZXBsYWNlKC9NTS9nLCAnTU0nKVxuICAgICAgLnJlcGxhY2UoL00vZywgJ00nKVxuICAgICAgLnJlcGxhY2UoL2RkZGQvZywgJ0VFRUUnKVxuICAgICAgLnJlcGxhY2UoL2RkZC9nLCAnRUVFJylcbiAgICAgIC5yZXBsYWNlKC9ISC9nLCAnSEgnKVxuICAgICAgLnJlcGxhY2UoL0gvZywgJ0gnKVxuICAgICAgLnJlcGxhY2UoL2hoL2csICdoaCcpXG4gICAgICAucmVwbGFjZSgvaC9nLCAnaCcpXG4gICAgICAucmVwbGFjZSgvbW0vZywgJ21tJylcbiAgICAgIC5yZXBsYWNlKC9tL2csICdtJylcbiAgICAgIC5yZXBsYWNlKC9zcy9nLCAnc3MnKVxuICAgICAgLnJlcGxhY2UoL3MvZywgJ3MnKVxuICAgICAgLnJlcGxhY2UoL0EvZywgJ2EnKVxuICAgICAgLnJlcGxhY2UoL2EvZywgJ2EnKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VERE1NWVlZWSh2YWx1ZTogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IG1hdGNoID0gdmFsdWUubWF0Y2goL14oXFxkezJ9KVxcLyhcXGR7Mn0pXFwvKFxcZHs0fSkkLyk7XG4gICAgaWYgKCFtYXRjaCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBkYXkgPSArbWF0Y2hbMV07XG4gICAgY29uc3QgbW9udGggPSArbWF0Y2hbMl0gLSAxO1xuICAgIGNvbnN0IHllYXIgPSArbWF0Y2hbM107XG5cbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRheSk7XG5cbiAgICByZXR1cm4gKGRhdGUuZ2V0RnVsbFllYXIoKSA9PT0geWVhciAmJlxuICAgICAgZGF0ZS5nZXRNb250aCgpID09PSBtb250aCAmJlxuICAgICAgZGF0ZS5nZXREYXRlKCkgPT09IGRheSlcbiAgICAgID8gZGF0ZVxuICAgICAgOiBudWxsO1xuICB9XG5cbn1cblxuXG5cblxuIl19
@@ -93,7 +93,7 @@ export class SplitColumnsService {
93
93
  // ✅ Total width already consumed
94
94
  const usedWidth = fixedCols.reduce((sum, col) => sum + col.width, 0);
95
95
  // ✅ Remaining width after fixed columns
96
- let remainingWidth = containerWidth - usedWidth;
96
+ let remainingWidth = containerWidth - (usedWidth + 50);
97
97
  if (remainingWidth < 0)
98
98
  remainingWidth = 0;
99
99
  // ✅ Average width for columns without width
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
145
145
  providedIn: 'root',
146
146
  }]
147
147
  }] });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtY29sdW1ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1ncmlkL3NyYy9saWIvc2VydmljZXMvc3BsaXQtY29sdW1ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsY0FBYyxDQUFDLE9BQWMsRUFBRSxjQUFzQjtRQUNuRCxNQUFNLElBQUksR0FBVSxFQUFFLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFVLEVBQUUsQ0FBQztRQUV4QixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRTtZQUN6QixJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFO2dCQUN4QixNQUFNLFlBQVksR0FBVSxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sY0FBYyxHQUFVLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxhQUFhLEdBQVUsRUFBRSxDQUFDO2dCQUVoQyxLQUFLLE1BQU0sS0FBSyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7b0JBQ2hDLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxLQUFLO3dCQUFFLFNBQVM7b0JBRXpDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7b0JBQ2xELE1BQU0sZUFBZSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBRTdDLElBQUksTUFBTSxLQUFLLE1BQU07d0JBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQzt5QkFDckQsSUFBSSxNQUFNLEtBQUssT0FBTzt3QkFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDOzt3QkFDNUQsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDM0M7Z0JBRUQsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO29CQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztpQkFDcEY7Z0JBQ0QsSUFBSSxjQUFjLENBQUMsTUFBTSxFQUFFO29CQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNWLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTt3QkFDbEIsUUFBUSxFQUFFLGNBQWM7d0JBQ3hCLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHO3FCQUN0QixDQUFDLENBQUM7aUJBQ0o7Z0JBQ0QsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFO29CQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDO3dCQUNULE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTTt3QkFDbEIsUUFBUSxFQUFFLGFBQWE7d0JBQ3ZCLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxHQUFHO3FCQUN0QixDQUFDLENBQUM7aUJBQ0o7YUFDRjtpQkFBTSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssS0FBSyxFQUFFO2dCQUNuQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQztnQkFDbEMsSUFBSSxNQUFNLEtBQUssTUFBTTtvQkFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUNqQyxJQUFJLE1BQU0sS0FBSyxPQUFPO29CQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7O29CQUN4QyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO1NBQ0Y7UUFFRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWM7UUFDNUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUU7WUFDekIsOEJBQThCO1lBQzlCLHdDQUF3QztZQUN4QyxzRUFBc0U7WUFDdEUsMkJBQTJCO1lBQzNCLHNDQUFzQztZQUN0Qyw2QkFBNkI7WUFDN0IsNkJBQTZCO1lBQzdCLHVDQUF1QztZQUN2Qyw4QkFBOEI7WUFDOUIsb0JBQW9CO1lBQ3BCLFdBQVc7WUFDWCxRQUFRO1lBQ1IsTUFBTTtZQUNOLElBQUk7WUFDSiw4REFBOEQ7WUFDOUQsa0JBQWtCO1lBQ2xCLGtDQUFrQztZQUNsQyx5QkFBeUI7WUFDekIseUJBQXlCO1lBQ3pCLG1DQUFtQztZQUNuQywwQkFBMEI7WUFDMUIsZ0JBQWdCO1lBQ2hCLE9BQU87WUFDUCxJQUFJO1NBQ0w7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxPQUFjLEVBQUUsY0FBc0I7UUFDMUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTTtZQUFFLE9BQU8sT0FBTyxDQUFDO1FBRTVDLG9DQUFvQztRQUNwQyxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUN0QyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQ2xDLENBQUM7UUFFRiw0QkFBNEI7UUFDNUIsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDekMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQzlDLENBQUM7UUFFRixpQ0FBaUM7UUFDakMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFDN0IsQ0FBQyxDQUNGLENBQUM7UUFFRix3Q0FBd0M7UUFDeEMsSUFBSSxjQUFjLEdBQUcsY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUNoRCxJQUFJLGNBQWMsR0FBRyxDQUFDO1lBQUUsY0FBYyxHQUFHLENBQUMsQ0FBQztRQUUzQyw0Q0FBNEM7UUFDNUMsSUFBSSxZQUFZLEdBQ2QsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ3JCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFUixvQkFBb0I7UUFDcEIsSUFBSSxZQUFZLEdBQUcsR0FBRztZQUFFLFlBQVksR0FBRyxHQUFHLENBQUM7UUFFM0MsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFXLEVBQVMsRUFBRSxDQUMxQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRTtnQkFDeEIsT0FBTztvQkFDTCxHQUFHLEdBQUc7b0JBQ04sUUFBUSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO2lCQUNyQyxDQUFDO2FBQ0g7WUFFRCx3QkFBd0I7WUFDeEIsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFO2dCQUNiLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO2FBQ25CO1lBRUQsdUNBQXVDO1lBQ3ZDLElBQUksR0FBRyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7Z0JBQzVCLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7YUFDL0I7WUFFRCxvQ0FBb0M7WUFDcEMsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUVMLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFJUyxxQkFBcUIsQ0FBQyxPQUFjO1FBQzFDLE1BQU0sTUFBTSxHQUFVLEVBQUUsQ0FBQztRQUV6QixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRTtZQUN6QixJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFO2dCQUN4QixNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDekMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUNuQyxDQUFDO2dCQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQzthQUNqQztpQkFBTSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEtBQUssS0FBSyxFQUFFO2dCQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xCO1NBQ0Y7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOytHQWpLVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU3BsaXRDb2x1bW5zU2VydmljZSB7XG4gIHByZXBhcmVDb2x1bW5zKGNvbHVtbnM6IGFueVtdLCBjb250YWluZXJXaWR0aDogbnVtYmVyKTogYW55IHtcbiAgICBjb25zdCBsZWZ0OiBhbnlbXSA9IFtdO1xuICAgIGNvbnN0IGNlbnRlcjogYW55W10gPSBbXTtcbiAgICBjb25zdCByaWdodDogYW55W10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbHVtbnMpIHtcbiAgICAgIGlmIChjb2wuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICBjb25zdCBsZWZ0Q2hpbGRyZW46IGFueVtdID0gW107XG4gICAgICAgIGNvbnN0IGNlbnRlckNoaWxkcmVuOiBhbnlbXSA9IFtdO1xuICAgICAgICBjb25zdCByaWdodENoaWxkcmVuOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY29sLmNoaWxkcmVuKSB7XG4gICAgICAgICAgaWYgKGNoaWxkLmlzX3Zpc2libGUgPT09IGZhbHNlKSBjb250aW51ZTtcblxuICAgICAgICAgIGNvbnN0IHBpbm5lZCA9IGNoaWxkLnBpbm5lZCA/PyBjb2wucGlubmVkID8/IG51bGw7XG4gICAgICAgICAgY29uc3QgY2hpbGRXaXRoUGlubmVkID0geyAuLi5jaGlsZCwgcGlubmVkIH07XG5cbiAgICAgICAgICBpZiAocGlubmVkID09PSAnbGVmdCcpIGxlZnRDaGlsZHJlbi5wdXNoKGNoaWxkV2l0aFBpbm5lZCk7XG4gICAgICAgICAgZWxzZSBpZiAocGlubmVkID09PSAncmlnaHQnKSByaWdodENoaWxkcmVuLnB1c2goY2hpbGRXaXRoUGlubmVkKTtcbiAgICAgICAgICBlbHNlIGNlbnRlckNoaWxkcmVuLnB1c2goY2hpbGRXaXRoUGlubmVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsZWZ0Q2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgbGVmdC5wdXNoKHsgaGVhZGVyOiBjb2wuaGVhZGVyLCBjaGlsZHJlbjogbGVmdENoaWxkcmVuLCBpZDogY29sPy5pZCB8fCBjb2w/Ll9pZCB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2VudGVyQ2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgY2VudGVyLnB1c2goe1xuICAgICAgICAgICAgaGVhZGVyOiBjb2wuaGVhZGVyLFxuICAgICAgICAgICAgY2hpbGRyZW46IGNlbnRlckNoaWxkcmVuLFxuICAgICAgICAgICAgaWQ6IGNvbC5pZCB8fCBjb2wuX2lkLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyaWdodENoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgIHJpZ2h0LnB1c2goe1xuICAgICAgICAgICAgaGVhZGVyOiBjb2wuaGVhZGVyLFxuICAgICAgICAgICAgY2hpbGRyZW46IHJpZ2h0Q2hpbGRyZW4sXG4gICAgICAgICAgICBpZDogY29sLmlkIHx8IGNvbC5faWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY29sLmlzX3Zpc2libGUgIT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IHBpbm5lZCA9IGNvbC5waW5uZWQgPz8gbnVsbDtcbiAgICAgICAgaWYgKHBpbm5lZCA9PT0gJ2xlZnQnKSBsZWZ0LnB1c2goY29sKTtcbiAgICAgICAgZWxzZSBpZiAocGlubmVkID09PSAncmlnaHQnKSByaWdodC5wdXNoKGNvbCk7XG4gICAgICAgIGVsc2UgY2VudGVyLnB1c2goY29sKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBsZWZ0LCBjZW50ZXIsIHJpZ2h0IH07XG4gIH1cblxuICBzZXRDb2x1bW5zUXVlcnkoY29sdW1uczogYW55W10pIHtcbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICAvLyBpZiAoY29sLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgIC8vICAgZm9yIChjb25zdCBjaGlsZCBvZiBjb2wuY2hpbGRyZW4pIHtcbiAgICAgIC8vICAgICBpZiAoIWNoaWxkPy5xdWVyeT8uZmlydF92YWx1ZSAmJiAhY2hpbGQ/LnF1ZXJ5Py5faWRzPy5sZW5ndGgpIHtcbiAgICAgIC8vICAgICAgIGNoaWxkWydxdWVyeSddID0ge1xuICAgICAgLy8gICAgICAgICBmaXJzdF9jb25kaXRpb246ICdjb250YWluJyxcbiAgICAgIC8vICAgICAgICAgZmlyc3RfdmFsdWU6IG51bGwsXG4gICAgICAvLyAgICAgICAgIGNvbmRpdGlvbjogJ25vbmUnLFxuICAgICAgLy8gICAgICAgICBzZWNvbmRfY29uZGl0aW9uOiAnY29udGFpbicsXG4gICAgICAvLyAgICAgICAgIHNlY29uZF92YWx1ZTogbnVsbCxcbiAgICAgIC8vICAgICAgICAgX2lkczogW10sXG4gICAgICAvLyAgICAgICB9O1xuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgICAgLy8gaWYgKCFjb2w/LnF1ZXJ5Py5maXJ0X3ZhbHVlICYmICFjb2w/LnF1ZXJ5Py5faWRzPy5sZW5ndGgpIHtcbiAgICAgIC8vICAgY29sLnF1ZXJ5ID0ge1xuICAgICAgLy8gICAgIGZpcnN0X2NvbmRpdGlvbjogJ2NvbnRhaW4nLFxuICAgICAgLy8gICAgIGZpcnN0X3ZhbHVlOiBudWxsLFxuICAgICAgLy8gICAgIGNvbmRpdGlvbjogJ25vbmUnLFxuICAgICAgLy8gICAgIHNlY29uZF9jb25kaXRpb246ICdjb250YWluJyxcbiAgICAgIC8vICAgICBzZWNvbmRfdmFsdWU6IG51bGwsXG4gICAgICAvLyAgICAgX2lkczogW10sXG4gICAgICAvLyAgIH07XG4gICAgICAvLyB9XG4gICAgfVxuXG4gICAgY29uc29sZS5sb2coJ1VwZGF0ZWQgQ29sdW1uczogJywgY29sdW1ucyk7XG5cbiAgICByZXR1cm4gY29sdW1ucztcbiAgfVxuXG4gIGFzc2lnbkRlZmF1bHRXaWR0aHMoY29sdW1uczogYW55W10sIGNvbnRhaW5lcldpZHRoOiBudW1iZXIpOiBhbnlbXSB7XG4gIGNvbnN0IHZpc2libGVMZWFmQ29scyA9IHRoaXMuZ2V0VmlzaWJsZUxlYWZDb2x1bW5zKGNvbHVtbnMpO1xuXG4gIGlmICghdmlzaWJsZUxlYWZDb2xzLmxlbmd0aCkgcmV0dXJuIGNvbHVtbnM7XG5cbiAgLy8g4pyFIENvbHVtbnMgdGhhdCBhbHJlYWR5IGhhdmUgd2lkdGhcbiAgY29uc3QgZml4ZWRDb2xzID0gdmlzaWJsZUxlYWZDb2xzLmZpbHRlcihcbiAgICBjb2wgPT4gY29sLndpZHRoICYmIGNvbC53aWR0aCA+IDBcbiAgKTtcblxuICAvLyDinIUgQ29sdW1ucyB0aGF0IG5lZWQgd2lkdGhcbiAgY29uc3QgZmxleGlibGVDb2xzID0gdmlzaWJsZUxlYWZDb2xzLmZpbHRlcihcbiAgICBjb2wgPT4gIWNvbC53aWR0aCAmJiBjb2wuaXNfdmlzaWJsZSAhPT0gZmFsc2VcbiAgKTtcblxuICAvLyDinIUgVG90YWwgd2lkdGggYWxyZWFkeSBjb25zdW1lZFxuICBjb25zdCB1c2VkV2lkdGggPSBmaXhlZENvbHMucmVkdWNlKFxuICAgIChzdW0sIGNvbCkgPT4gc3VtICsgY29sLndpZHRoLFxuICAgIDBcbiAgKTtcblxuICAvLyDinIUgUmVtYWluaW5nIHdpZHRoIGFmdGVyIGZpeGVkIGNvbHVtbnNcbiAgbGV0IHJlbWFpbmluZ1dpZHRoID0gY29udGFpbmVyV2lkdGggLSB1c2VkV2lkdGg7XG4gIGlmIChyZW1haW5pbmdXaWR0aCA8IDApIHJlbWFpbmluZ1dpZHRoID0gMDtcblxuICAvLyDinIUgQXZlcmFnZSB3aWR0aCBmb3IgY29sdW1ucyB3aXRob3V0IHdpZHRoXG4gIGxldCBkZWZhdWx0V2lkdGggPVxuICAgIGZsZXhpYmxlQ29scy5sZW5ndGggPiAwXG4gICAgICA/IE1hdGguZmxvb3IocmVtYWluaW5nV2lkdGggLyBmbGV4aWJsZUNvbHMubGVuZ3RoKVxuICAgICAgOiAwO1xuXG4gIC8vIOKchSBFbmZvcmNlIG1pbmltdW1cbiAgaWYgKGRlZmF1bHRXaWR0aCA8IDE1MCkgZGVmYXVsdFdpZHRoID0gMTUwO1xuXG4gIGNvbnN0IGNsb25lQ29sdW1ucyA9IChjb2xzOiBhbnlbXSk6IGFueVtdID0+XG4gICAgY29scy5tYXAoY29sID0+IHtcbiAgICAgIGlmIChjb2wuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmNvbCxcbiAgICAgICAgICBjaGlsZHJlbjogY2xvbmVDb2x1bW5zKGNvbC5jaGlsZHJlbilcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8g4pyFIEtlZXAgZXhpc3Rpbmcgd2lkdGhcbiAgICAgIGlmIChjb2wud2lkdGgpIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uY29sIH07XG4gICAgICB9XG5cbiAgICAgIC8vIOKchSBIaWRkZW4gY29sdW1ucyDihpIgZml4ZWQgc21hbGwgd2lkdGhcbiAgICAgIGlmIChjb2wuaXNfdmlzaWJsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uY29sLCB3aWR0aDogMTUwIH07XG4gICAgICB9XG5cbiAgICAgIC8vIOKchSBBc3NpZ24gY2FsY3VsYXRlZCBkZWZhdWx0IHdpZHRoXG4gICAgICByZXR1cm4geyAuLi5jb2wsIHdpZHRoOiBkZWZhdWx0V2lkdGggfTtcbiAgICB9KTtcblxuICByZXR1cm4gY2xvbmVDb2x1bW5zKGNvbHVtbnMpO1xufVxuXG5cblxuICBwcml2YXRlIGdldFZpc2libGVMZWFmQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICBpZiAoY29sLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNoaWxkcmVuID0gY29sLmNoaWxkcmVuLmZpbHRlcihcbiAgICAgICAgICAoYzogYW55KSA9PiBjLmlzX3Zpc2libGUgIT09IGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIHJlc3VsdC5wdXNoKC4uLnZpc2libGVDaGlsZHJlbik7XG4gICAgICB9IGVsc2UgaWYgKGNvbC5pc192aXNpYmxlICE9PSBmYWxzZSkge1xuICAgICAgICByZXN1bHQucHVzaChjb2wpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtY29sdW1ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1ncmlkL3NyYy9saWIvc2VydmljZXMvc3BsaXQtY29sdW1ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsY0FBYyxDQUFDLE9BQWMsRUFBRSxjQUFzQjtRQUNuRCxNQUFNLElBQUksR0FBVSxFQUFFLENBQUM7UUFDdkIsTUFBTSxNQUFNLEdBQVUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFVLEVBQUUsQ0FBQztRQUV4QixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRTtZQUN6QixJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFO2dCQUN4QixNQUFNLFlBQVksR0FBVSxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sY0FBYyxHQUFVLEVBQUUsQ0FBQztnQkFDakMsTUFBTSxhQUFhLEdBQVUsRUFBRSxDQUFDO2dCQUVoQyxLQUFLLE1BQU0sS0FBSyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7b0JBQ2hDLElBQUksS0FBSyxDQUFDLFVBQVUsS0FBSyxLQUFLO3dCQUFFLFNBQVM7b0JBRXpDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7b0JBQ2xELE1BQU0sZUFBZSxHQUFHLEVBQUUsR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBRTdDLElBQUksTUFBTSxLQUFLLE1BQU07d0JBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQzt5QkFDckQsSUFBSSxNQUFNLEtBQUssT0FBTzt3QkFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDOzt3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QyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUwsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUlTLHFCQUFxQixDQUFDLE9BQWM7UUFDMUMsTUFBTSxNQUFNLEdBQVUsRUFBRSxDQUFDO1FBRXpCLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1lBQ3pCLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUU7Z0JBQ3hCLE1BQU0sZUFBZSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUN6QyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQ25DLENBQUM7Z0JBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDO2FBQ2pDO2lCQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7Z0JBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbEI7U0FDRjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7K0dBaktVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTcGxpdENvbHVtbnNTZXJ2aWNlIHtcbiAgcHJlcGFyZUNvbHVtbnMoY29sdW1uczogYW55W10sIGNvbnRhaW5lcldpZHRoOiBudW1iZXIpOiBhbnkge1xuICAgIGNvbnN0IGxlZnQ6IGFueVtdID0gW107XG4gICAgY29uc3QgY2VudGVyOiBhbnlbXSA9IFtdO1xuICAgIGNvbnN0IHJpZ2h0OiBhbnlbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjb2wgb2YgY29sdW1ucykge1xuICAgICAgaWYgKGNvbC5jaGlsZHJlbj8ubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGxlZnRDaGlsZHJlbjogYW55W10gPSBbXTtcbiAgICAgICAgY29uc3QgY2VudGVyQ2hpbGRyZW46IGFueVtdID0gW107XG4gICAgICAgIGNvbnN0IHJpZ2h0Q2hpbGRyZW46IGFueVtdID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjb2wuY2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAoY2hpbGQuaXNfdmlzaWJsZSA9PT0gZmFsc2UpIGNvbnRpbnVlO1xuXG4gICAgICAgICAgY29uc3QgcGlubmVkID0gY2hpbGQucGlubmVkID8/IGNvbC5waW5uZWQgPz8gbnVsbDtcbiAgICAgICAgICBjb25zdCBjaGlsZFdpdGhQaW5uZWQgPSB7IC4uLmNoaWxkLCBwaW5uZWQgfTtcblxuICAgICAgICAgIGlmIChwaW5uZWQgPT09ICdsZWZ0JykgbGVmdENoaWxkcmVuLnB1c2goY2hpbGRXaXRoUGlubmVkKTtcbiAgICAgICAgICBlbHNlIGlmIChwaW5uZWQgPT09ICdyaWdodCcpIHJpZ2h0Q2hpbGRyZW4ucHVzaChjaGlsZFdpdGhQaW5uZWQpO1xuICAgICAgICAgIGVsc2UgY2VudGVyQ2hpbGRyZW4ucHVzaChjaGlsZFdpdGhQaW5uZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxlZnRDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICBsZWZ0LnB1c2goeyBoZWFkZXI6IGNvbC5oZWFkZXIsIGNoaWxkcmVuOiBsZWZ0Q2hpbGRyZW4sIGlkOiBjb2w/LmlkIHx8IGNvbD8uX2lkIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjZW50ZXJDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICBjZW50ZXIucHVzaCh7XG4gICAgICAgICAgICBoZWFkZXI6IGNvbC5oZWFkZXIsXG4gICAgICAgICAgICBjaGlsZHJlbjogY2VudGVyQ2hpbGRyZW4sXG4gICAgICAgICAgICBpZDogY29sLmlkIHx8IGNvbC5faWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJpZ2h0Q2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgcmlnaHQucHVzaCh7XG4gICAgICAgICAgICBoZWFkZXI6IGNvbC5oZWFkZXIsXG4gICAgICAgICAgICBjaGlsZHJlbjogcmlnaHRDaGlsZHJlbixcbiAgICAgICAgICAgIGlkOiBjb2wuaWQgfHwgY29sLl9pZCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjb2wuaXNfdmlzaWJsZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgcGlubmVkID0gY29sLnBpbm5lZCA/PyBudWxsO1xuICAgICAgICBpZiAocGlubmVkID09PSAnbGVmdCcpIGxlZnQucHVzaChjb2wpO1xuICAgICAgICBlbHNlIGlmIChwaW5uZWQgPT09ICdyaWdodCcpIHJpZ2h0LnB1c2goY29sKTtcbiAgICAgICAgZWxzZSBjZW50ZXIucHVzaChjb2wpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IGxlZnQsIGNlbnRlciwgcmlnaHQgfTtcbiAgfVxuXG4gIHNldENvbHVtbnNRdWVyeShjb2x1bW5zOiBhbnlbXSkge1xuICAgIGZvciAoY29uc3QgY29sIG9mIGNvbHVtbnMpIHtcbiAgICAgIC8vIGlmIChjb2wuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgLy8gICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNvbC5jaGlsZHJlbikge1xuICAgICAgLy8gICAgIGlmICghY2hpbGQ/LnF1ZXJ5Py5maXJ0X3ZhbHVlICYmICFjaGlsZD8ucXVlcnk/Ll9pZHM/Lmxlbmd0aCkge1xuICAgICAgLy8gICAgICAgY2hpbGRbJ3F1ZXJ5J10gPSB7XG4gICAgICAvLyAgICAgICAgIGZpcnN0X2NvbmRpdGlvbjogJ2NvbnRhaW4nLFxuICAgICAgLy8gICAgICAgICBmaXJzdF92YWx1ZTogbnVsbCxcbiAgICAgIC8vICAgICAgICAgY29uZGl0aW9uOiAnbm9uZScsXG4gICAgICAvLyAgICAgICAgIHNlY29uZF9jb25kaXRpb246ICdjb250YWluJyxcbiAgICAgIC8vICAgICAgICAgc2Vjb25kX3ZhbHVlOiBudWxsLFxuICAgICAgLy8gICAgICAgICBfaWRzOiBbXSxcbiAgICAgIC8vICAgICAgIH07XG4gICAgICAvLyAgICAgfVxuICAgICAgLy8gICB9XG4gICAgICAvLyB9XG4gICAgICAvLyBpZiAoIWNvbD8ucXVlcnk/LmZpcnRfdmFsdWUgJiYgIWNvbD8ucXVlcnk/Ll9pZHM/Lmxlbmd0aCkge1xuICAgICAgLy8gICBjb2wucXVlcnkgPSB7XG4gICAgICAvLyAgICAgZmlyc3RfY29uZGl0aW9uOiAnY29udGFpbicsXG4gICAgICAvLyAgICAgZmlyc3RfdmFsdWU6IG51bGwsXG4gICAgICAvLyAgICAgY29uZGl0aW9uOiAnbm9uZScsXG4gICAgICAvLyAgICAgc2Vjb25kX2NvbmRpdGlvbjogJ2NvbnRhaW4nLFxuICAgICAgLy8gICAgIHNlY29uZF92YWx1ZTogbnVsbCxcbiAgICAgIC8vICAgICBfaWRzOiBbXSxcbiAgICAgIC8vICAgfTtcbiAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygnVXBkYXRlZCBDb2x1bW5zOiAnLCBjb2x1bW5zKTtcblxuICAgIHJldHVybiBjb2x1bW5zO1xuICB9XG5cbiAgYXNzaWduRGVmYXVsdFdpZHRocyhjb2x1bW5zOiBhbnlbXSwgY29udGFpbmVyV2lkdGg6IG51bWJlcik6IGFueVtdIHtcbiAgY29uc3QgdmlzaWJsZUxlYWZDb2xzID0gdGhpcy5nZXRWaXNpYmxlTGVhZkNvbHVtbnMoY29sdW1ucyk7XG5cbiAgaWYgKCF2aXNpYmxlTGVhZkNvbHMubGVuZ3RoKSByZXR1cm4gY29sdW1ucztcblxuICAvLyDinIUgQ29sdW1ucyB0aGF0IGFscmVhZHkgaGF2ZSB3aWR0aFxuICBjb25zdCBmaXhlZENvbHMgPSB2aXNpYmxlTGVhZkNvbHMuZmlsdGVyKFxuICAgIGNvbCA9PiBjb2wud2lkdGggJiYgY29sLndpZHRoID4gMFxuICApO1xuXG4gIC8vIOKchSBDb2x1bW5zIHRoYXQgbmVlZCB3aWR0aFxuICBjb25zdCBmbGV4aWJsZUNvbHMgPSB2aXNpYmxlTGVhZkNvbHMuZmlsdGVyKFxuICAgIGNvbCA9PiAhY29sLndpZHRoICYmIGNvbC5pc192aXNpYmxlICE9PSBmYWxzZVxuICApO1xuXG4gIC8vIOKchSBUb3RhbCB3aWR0aCBhbHJlYWR5IGNvbnN1bWVkXG4gIGNvbnN0IHVzZWRXaWR0aCA9IGZpeGVkQ29scy5yZWR1Y2UoXG4gICAgKHN1bSwgY29sKSA9PiBzdW0gKyBjb2wud2lkdGgsXG4gICAgMFxuICApO1xuXG4gIC8vIOKchSBSZW1haW5pbmcgd2lkdGggYWZ0ZXIgZml4ZWQgY29sdW1uc1xuICBsZXQgcmVtYWluaW5nV2lkdGggPSBjb250YWluZXJXaWR0aCAtICh1c2VkV2lkdGggKyA1MCk7XG4gIGlmIChyZW1haW5pbmdXaWR0aCA8IDApIHJlbWFpbmluZ1dpZHRoID0gMDtcblxuICAvLyDinIUgQXZlcmFnZSB3aWR0aCBmb3IgY29sdW1ucyB3aXRob3V0IHdpZHRoXG4gIGxldCBkZWZhdWx0V2lkdGggPVxuICAgIGZsZXhpYmxlQ29scy5sZW5ndGggPiAwXG4gICAgICA/IE1hdGguZmxvb3IocmVtYWluaW5nV2lkdGggLyBmbGV4aWJsZUNvbHMubGVuZ3RoKVxuICAgICAgOiAwO1xuXG4gIC8vIOKchSBFbmZvcmNlIG1pbmltdW1cbiAgaWYgKGRlZmF1bHRXaWR0aCA8IDE1MCkgZGVmYXVsdFdpZHRoID0gMTUwO1xuXG4gIGNvbnN0IGNsb25lQ29sdW1ucyA9IChjb2xzOiBhbnlbXSk6IGFueVtdID0+XG4gICAgY29scy5tYXAoY29sID0+IHtcbiAgICAgIGlmIChjb2wuY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmNvbCxcbiAgICAgICAgICBjaGlsZHJlbjogY2xvbmVDb2x1bW5zKGNvbC5jaGlsZHJlbilcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8g4pyFIEtlZXAgZXhpc3Rpbmcgd2lkdGhcbiAgICAgIGlmIChjb2wud2lkdGgpIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uY29sIH07XG4gICAgICB9XG5cbiAgICAgIC8vIOKchSBIaWRkZW4gY29sdW1ucyDihpIgZml4ZWQgc21hbGwgd2lkdGhcbiAgICAgIGlmIChjb2wuaXNfdmlzaWJsZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgcmV0dXJuIHsgLi4uY29sLCB3aWR0aDogMTUwIH07XG4gICAgICB9XG5cbiAgICAgIC8vIOKchSBBc3NpZ24gY2FsY3VsYXRlZCBkZWZhdWx0IHdpZHRoXG4gICAgICByZXR1cm4geyAuLi5jb2wsIHdpZHRoOiBkZWZhdWx0V2lkdGggfTtcbiAgICB9KTtcblxuICByZXR1cm4gY2xvbmVDb2x1bW5zKGNvbHVtbnMpO1xufVxuXG5cblxuICBwcml2YXRlIGdldFZpc2libGVMZWFmQ29sdW1ucyhjb2x1bW5zOiBhbnlbXSk6IGFueVtdIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgICBpZiAoY29sLmNoaWxkcmVuPy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNoaWxkcmVuID0gY29sLmNoaWxkcmVuLmZpbHRlcihcbiAgICAgICAgICAoYzogYW55KSA9PiBjLmlzX3Zpc2libGUgIT09IGZhbHNlXG4gICAgICAgICk7XG4gICAgICAgIHJlc3VsdC5wdXNoKC4uLnZpc2libGVDaGlsZHJlbik7XG4gICAgICB9IGVsc2UgaWYgKGNvbC5pc192aXNpYmxlICE9PSBmYWxzZSkge1xuICAgICAgICByZXN1bHQucHVzaChjb2wpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
@@ -5,5 +5,4 @@ export * from './lib/data-grid.module';
5
5
  export * from './lib/data-grid/data-grid.component';
6
6
  // export * from './lib/interfaces/data-grid-config.ts';
7
7
  export * from './lib/services/common.service';
8
- // import './lib/styles/styles.css';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGEtZ3JpZC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCx3REFBd0Q7QUFDeEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxvQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGRhdGEtZ3JpZFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGEtZ3JpZC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9kYXRhLWdyaWQtY29uZmlnLnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcbi8vIGltcG9ydCAnLi9saWIvc3R5bGVzL3N0eWxlcy5jc3MnOyJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2RhdGEtZ3JpZC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCx3REFBd0Q7QUFDeEQsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZGF0YS1ncmlkXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1ncmlkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kYXRhLWdyaWQvZGF0YS1ncmlkLmNvbXBvbmVudCc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2RhdGEtZ3JpZC1jb25maWcudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xuIl19