@theseam/ui-common 0.2.15 → 0.3.0

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.
Files changed (73) hide show
  1. package/bundles/theseam-ui-common-datatable.umd.js +1 -7
  2. package/bundles/theseam-ui-common-datatable.umd.js.map +1 -1
  3. package/bundles/theseam-ui-common-framework.umd.js +1 -1
  4. package/bundles/theseam-ui-common-framework.umd.js.map +1 -1
  5. package/bundles/theseam-ui-common-scrollbar.umd.js +1 -1
  6. package/bundles/theseam-ui-common-scrollbar.umd.js.map +1 -1
  7. package/bundles/theseam-ui-common-table-cell-types.umd.js +89 -4
  8. package/bundles/theseam-ui-common-table-cell-types.umd.js.map +1 -1
  9. package/bundles/theseam-ui-common-tel-input.umd.js +59 -7
  10. package/bundles/theseam-ui-common-tel-input.umd.js.map +1 -1
  11. package/bundles/theseam-ui-common-testing.umd.js.map +1 -1
  12. package/bundles/theseam-ui-common-utils.umd.js.map +1 -1
  13. package/bundles/theseam-ui-common-viewers.umd.js +269 -4
  14. package/bundles/theseam-ui-common-viewers.umd.js.map +1 -1
  15. package/datatable/datatable-column-preferences/datatable-column-preferences.component.d.ts +0 -1
  16. package/datatable/theseam-ui-common-datatable.metadata.json +1 -1
  17. package/esm2015/datatable/datatable-column-preferences/datatable-column-preferences.component.js +4 -10
  18. package/esm2015/datatable/models/columns-alteration.js +1 -1
  19. package/esm2015/datatable/models/columns-alterations/hide-column.columns-alteration.js +1 -1
  20. package/esm2015/datatable/models/columns-alterations/sort.columns-alteration.js +1 -1
  21. package/esm2015/datatable/models/columns-alterations/width.columns-alteration.js +1 -1
  22. package/esm2015/datatable/models/internal-column-props.js +1 -1
  23. package/esm2015/datatable/services/columns-alterations-manager.service.js +1 -1
  24. package/esm2015/datatable/utils/map-columns-alterations-states.js +1 -1
  25. package/esm2015/framework/top-bar/top-bar.component.js +2 -2
  26. package/esm2015/graphql/models/gql-datatable-accessor.js +1 -1
  27. package/esm2015/scrollbar/overlay-scrollbar.directive.js +2 -2
  28. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.js +1 -1
  29. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.js +17 -2
  30. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.js +1 -1
  31. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.js +16 -2
  32. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.js +1 -1
  33. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.js +16 -2
  34. package/esm2015/table-cell-types/table-cell-type-string/table-cell-type-string-config.js +1 -1
  35. package/esm2015/table-cell-types/table-cell-type-string/table-cell-type-string.component.js +32 -4
  36. package/esm2015/tel-input/tel-input/tel-input.component.js +10 -2
  37. package/esm2015/tel-input/tel-input.directive.js +50 -5
  38. package/esm2015/testing/current-tick-time.js +1 -1
  39. package/esm2015/utils/array-move.js +1 -1
  40. package/esm2015/utils/router/is-empty-url-route.js +1 -1
  41. package/esm2015/viewers/html-template-viewer/html-template-viewer.component.js +219 -0
  42. package/esm2015/viewers/html-template-viewer/html-template-viewer.module.js +23 -0
  43. package/esm2015/viewers/html-template-viewer/index.js +3 -0
  44. package/esm2015/viewers/public-api.js +2 -1
  45. package/fesm2015/theseam-ui-common-datatable.js +1 -7
  46. package/fesm2015/theseam-ui-common-datatable.js.map +1 -1
  47. package/fesm2015/theseam-ui-common-framework.js +1 -1
  48. package/fesm2015/theseam-ui-common-framework.js.map +1 -1
  49. package/fesm2015/theseam-ui-common-scrollbar.js +1 -1
  50. package/fesm2015/theseam-ui-common-scrollbar.js.map +1 -1
  51. package/fesm2015/theseam-ui-common-table-cell-types.js +74 -5
  52. package/fesm2015/theseam-ui-common-table-cell-types.js.map +1 -1
  53. package/fesm2015/theseam-ui-common-tel-input.js +58 -6
  54. package/fesm2015/theseam-ui-common-tel-input.js.map +1 -1
  55. package/fesm2015/theseam-ui-common-testing.js.map +1 -1
  56. package/fesm2015/theseam-ui-common-utils.js.map +1 -1
  57. package/fesm2015/theseam-ui-common-viewers.js +237 -2
  58. package/fesm2015/theseam-ui-common-viewers.js.map +1 -1
  59. package/framework/theseam-ui-common-framework.metadata.json +1 -1
  60. package/package.json +1 -1
  61. package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +5 -0
  62. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +5 -0
  63. package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +5 -0
  64. package/table-cell-types/table-cell-type-string/table-cell-type-string-config.d.ts +8 -0
  65. package/table-cell-types/table-cell-type-string/table-cell-type-string.component.d.ts +9 -0
  66. package/table-cell-types/theseam-ui-common-table-cell-types.metadata.json +1 -1
  67. package/tel-input/tel-input.directive.d.ts +7 -3
  68. package/tel-input/theseam-ui-common-tel-input.metadata.json +1 -1
  69. package/viewers/html-template-viewer/html-template-viewer.component.d.ts +67 -0
  70. package/viewers/html-template-viewer/html-template-viewer.module.d.ts +2 -0
  71. package/viewers/html-template-viewer/index.d.ts +2 -0
  72. package/viewers/public-api.d.ts +1 -0
  73. package/viewers/theseam-ui-common-viewers.metadata.json +1 -1
@@ -112,7 +112,7 @@ class OverlayScrollbarDirective {
112
112
  set overlayScrollbarEnabled(value) {
113
113
  this._disabled = !coerceBooleanProperty(value);
114
114
  if (!this._disabled) {
115
- this._scrollbars.initializeInstance(this._ref.nativeElement);
115
+ this._scrollbars.initializeInstance(this._ref.nativeElement, this._options);
116
116
  }
117
117
  else {
118
118
  this._scrollbars.destroyInstance(this._ref.nativeElement);
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-scrollbar.js","sources":["../../../projects/ui-common/scrollbar/overlay-scrollbars-config.ts","../../../projects/ui-common/scrollbar/overlay-scrollbars.service.ts","../../../projects/ui-common/scrollbar/overlay-scrollbar.directive.ts","../../../projects/ui-common/scrollbar/scrollbar.module.ts","../../../projects/ui-common/scrollbar/theseam-ui-common-scrollbar.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\n\nimport { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\nexport const _OverlayScrollbarDefaults: IOverlayScrollbarsConfig = {\n className: 'os-theme-dark os-theme-no-hover',\n sizeAutoCapable: false,\n paddingAbsolute: true,\n autoUpdate: true\n}\n\nexport function mergeOverlayScrollbarsConfigs(a: IOverlayScrollbarsConfig, b: IOverlayScrollbarsConfig) {\n return { ...a, ...b }\n}\n\n/** Injection token that can be used to specify overlayscrollbars options. */\nexport const LIB_OVERLAY_SCROLLBARS_CONFIG = new InjectionToken<IOverlayScrollbarsConfig>('seamOverlayScrollbarsConfig')\n","import { Platform } from '@angular/cdk/platform'\nimport { forwardRef, inject, Injectable, InjectionToken, Injector, INJECTOR, NgZone } from '@angular/core'\nimport { fromEvent, Subscription } from 'rxjs'\n\nimport OverlayScrollbars from 'overlayscrollbars'\n\nimport { LIB_OVERLAY_SCROLLBARS_CONFIG } from './overlay-scrollbars-config'\nimport { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OverlayScrollbarsService {\n\n private _inputEventSubscription = Subscription.EMPTY\n\n constructor(\n private _ngZone: NgZone,\n private injector: Injector,\n private _platform: Platform\n ) { }\n\n public initializeInstance(element: HTMLElement, options?: IOverlayScrollbarsConfig): void {\n if (!this.isInstanceEnabled(element) &&\n // The 'overlayscrollbars' library is causing an issue on iOS. Since iOS\n // already has native overlay scrollbars it shouldn't really effect the\n // app layout.\n !(this._isTextarea(element) && this._platform.IOS)\n ) {\n this._ngZone.runOutsideAngular(() => {\n OverlayScrollbars(element, this._applyConfigDefaults(options))\n\n if (this._isTextarea(element)) {\n // TODO: Make this more accurate. Right now this is just relying on\n // the fact that timing out for 100ms is usually enough time to wait\n // for update to correctly calculate.\n // NOTE: This may be fixed in a newer version to not need this hack.\n fromEvent(element, 'change').subscribe(_ => {\n this._ngZone.run(() => {\n setTimeout(() => {\n if (this.isInstanceEnabled(element)) {\n this.getInstance(element).update()\n }\n }, 100)\n })\n })\n }\n })\n }\n }\n\n public destroyInstance(element: HTMLElement): void {\n if (this.isInstanceEnabled(element)) {\n this._ngZone.runOutsideAngular(() => {\n this.getInstance(element).destroy()\n if (this._inputEventSubscription && !this._inputEventSubscription.closed) {\n this._inputEventSubscription.unsubscribe()\n }\n })\n }\n }\n\n public getInstance(element: HTMLElement): OverlayScrollbars {\n return OverlayScrollbars(element) as OverlayScrollbars\n }\n\n public isInstanceEnabled(element: HTMLElement): boolean {\n return !!this.getInstance(element)\n }\n\n public setOptions(element: HTMLElement, options: IOverlayScrollbarsConfig): boolean {\n if (!this.isInstanceEnabled(element)) { return false }\n\n this.getInstance(element).options(this._applyConfigDefaults(options))\n\n return true\n }\n\n public getOptions(element: HTMLElement): IOverlayScrollbarsConfig {\n return this.getInstance(element).options()\n }\n\n private _applyConfigDefaults(config?: IOverlayScrollbarsConfig): IOverlayScrollbarsConfig {\n const _config: IOverlayScrollbarsConfig = this.injector.get(LIB_OVERLAY_SCROLLBARS_CONFIG)\n return {..._config, ...config}\n }\n\n /** Determines if the component host is a textarea. */\n protected _isTextarea(element: HTMLElement) {\n return element.nodeName.toLowerCase() === 'textarea'\n }\n\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { AfterViewInit, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core'\n\nimport OverlayScrollbars from 'overlayscrollbars'\n\nimport { OverlayScrollbarsService } from './overlay-scrollbars.service'\n\nimport type { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\n@Directive({\n selector: '[seamOverlayScrollbar]',\n exportAs: 'seamOverlayScrollbar'\n})\nexport class OverlayScrollbarDirective implements OnInit, AfterViewInit, OnDestroy {\n static ngAcceptInputType_seamOverlayScrollbar: IOverlayScrollbarsConfig | undefined | null | ''\n\n private _disabled = false\n\n @Input()\n set seamOverlayScrollbar(value: IOverlayScrollbarsConfig | undefined | null) { this.options = value }\n\n @Input()\n get overlayScrollbarEnabled(): boolean {\n return this._scrollbars.isInstanceEnabled(this._ref.nativeElement)\n }\n set overlayScrollbarEnabled(value: boolean) {\n this._disabled = !coerceBooleanProperty(value)\n if (!this._disabled) {\n this._scrollbars.initializeInstance(this._ref.nativeElement)\n } else {\n this._scrollbars.destroyInstance(this._ref.nativeElement)\n }\n }\n\n set options(value: IOverlayScrollbarsConfig | undefined | null) {\n this._options = value || {}\n this._scrollbars.setOptions(this._ref.nativeElement, this._options)\n }\n get options() {\n if (this._scrollbars.isInstanceEnabled(this._ref.nativeElement)) {\n return this._scrollbars.getOptions(this._ref.nativeElement)\n }\n return this._options\n }\n private _options: IOverlayScrollbarsConfig = {}\n\n constructor(\n private _ref: ElementRef,\n private _scrollbars: OverlayScrollbarsService\n ) { }\n\n ngOnInit() { }\n\n ngAfterViewInit() {\n if (!this._disabled) {\n this._scrollbars.initializeInstance(this._ref.nativeElement, this._options)\n }\n }\n\n ngOnDestroy() {\n this._scrollbars.destroyInstance(this._ref.nativeElement)\n }\n\n get instance(): OverlayScrollbars {\n return this._scrollbars.getInstance(this._ref.nativeElement)\n }\n\n}\n","import { PlatformModule } from '@angular/cdk/platform'\nimport { NgModule } from '@angular/core'\n\nimport { OverlayScrollbarDirective } from './overlay-scrollbar.directive'\nimport { LIB_OVERLAY_SCROLLBARS_CONFIG, _OverlayScrollbarDefaults } from './overlay-scrollbars-config'\n\n@NgModule({\n declarations: [\n OverlayScrollbarDirective\n ],\n imports: [\n PlatformModule\n ],\n providers: [\n { provide: LIB_OVERLAY_SCROLLBARS_CONFIG, useValue: _OverlayScrollbarDefaults }\n ],\n exports: [\n OverlayScrollbarDirective\n ]\n})\nexport class TheSeamScrollbarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-scrollbar.js","sources":["../../../projects/ui-common/scrollbar/overlay-scrollbars-config.ts","../../../projects/ui-common/scrollbar/overlay-scrollbars.service.ts","../../../projects/ui-common/scrollbar/overlay-scrollbar.directive.ts","../../../projects/ui-common/scrollbar/scrollbar.module.ts","../../../projects/ui-common/scrollbar/theseam-ui-common-scrollbar.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\n\nimport { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\nexport const _OverlayScrollbarDefaults: IOverlayScrollbarsConfig = {\n className: 'os-theme-dark os-theme-no-hover',\n sizeAutoCapable: false,\n paddingAbsolute: true,\n autoUpdate: true\n}\n\nexport function mergeOverlayScrollbarsConfigs(a: IOverlayScrollbarsConfig, b: IOverlayScrollbarsConfig) {\n return { ...a, ...b }\n}\n\n/** Injection token that can be used to specify overlayscrollbars options. */\nexport const LIB_OVERLAY_SCROLLBARS_CONFIG = new InjectionToken<IOverlayScrollbarsConfig>('seamOverlayScrollbarsConfig')\n","import { Platform } from '@angular/cdk/platform'\nimport { forwardRef, inject, Injectable, InjectionToken, Injector, INJECTOR, NgZone } from '@angular/core'\nimport { fromEvent, Subscription } from 'rxjs'\n\nimport OverlayScrollbars from 'overlayscrollbars'\n\nimport { LIB_OVERLAY_SCROLLBARS_CONFIG } from './overlay-scrollbars-config'\nimport { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OverlayScrollbarsService {\n\n private _inputEventSubscription = Subscription.EMPTY\n\n constructor(\n private _ngZone: NgZone,\n private injector: Injector,\n private _platform: Platform\n ) { }\n\n public initializeInstance(element: HTMLElement, options?: IOverlayScrollbarsConfig): void {\n if (!this.isInstanceEnabled(element) &&\n // The 'overlayscrollbars' library is causing an issue on iOS. Since iOS\n // already has native overlay scrollbars it shouldn't really effect the\n // app layout.\n !(this._isTextarea(element) && this._platform.IOS)\n ) {\n this._ngZone.runOutsideAngular(() => {\n OverlayScrollbars(element, this._applyConfigDefaults(options))\n\n if (this._isTextarea(element)) {\n // TODO: Make this more accurate. Right now this is just relying on\n // the fact that timing out for 100ms is usually enough time to wait\n // for update to correctly calculate.\n // NOTE: This may be fixed in a newer version to not need this hack.\n fromEvent(element, 'change').subscribe(_ => {\n this._ngZone.run(() => {\n setTimeout(() => {\n if (this.isInstanceEnabled(element)) {\n this.getInstance(element).update()\n }\n }, 100)\n })\n })\n }\n })\n }\n }\n\n public destroyInstance(element: HTMLElement): void {\n if (this.isInstanceEnabled(element)) {\n this._ngZone.runOutsideAngular(() => {\n this.getInstance(element).destroy()\n if (this._inputEventSubscription && !this._inputEventSubscription.closed) {\n this._inputEventSubscription.unsubscribe()\n }\n })\n }\n }\n\n public getInstance(element: HTMLElement): OverlayScrollbars {\n return OverlayScrollbars(element) as OverlayScrollbars\n }\n\n public isInstanceEnabled(element: HTMLElement): boolean {\n return !!this.getInstance(element)\n }\n\n public setOptions(element: HTMLElement, options: IOverlayScrollbarsConfig): boolean {\n if (!this.isInstanceEnabled(element)) { return false }\n\n this.getInstance(element).options(this._applyConfigDefaults(options))\n\n return true\n }\n\n public getOptions(element: HTMLElement): IOverlayScrollbarsConfig {\n return this.getInstance(element).options()\n }\n\n private _applyConfigDefaults(config?: IOverlayScrollbarsConfig): IOverlayScrollbarsConfig {\n const _config: IOverlayScrollbarsConfig = this.injector.get(LIB_OVERLAY_SCROLLBARS_CONFIG)\n return {..._config, ...config}\n }\n\n /** Determines if the component host is a textarea. */\n protected _isTextarea(element: HTMLElement) {\n return element.nodeName.toLowerCase() === 'textarea'\n }\n\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { AfterViewInit, Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core'\n\nimport OverlayScrollbars from 'overlayscrollbars'\n\nimport { OverlayScrollbarsService } from './overlay-scrollbars.service'\n\nimport type { IOverlayScrollbarsConfig } from './overlay-scrollbars-config-model'\n\n@Directive({\n selector: '[seamOverlayScrollbar]',\n exportAs: 'seamOverlayScrollbar'\n})\nexport class OverlayScrollbarDirective implements OnInit, AfterViewInit, OnDestroy {\n static ngAcceptInputType_seamOverlayScrollbar: IOverlayScrollbarsConfig | undefined | null | ''\n\n private _disabled = false\n\n @Input()\n set seamOverlayScrollbar(value: IOverlayScrollbarsConfig | undefined | null) { this.options = value }\n\n @Input()\n get overlayScrollbarEnabled(): boolean {\n return this._scrollbars.isInstanceEnabled(this._ref.nativeElement)\n }\n set overlayScrollbarEnabled(value: boolean) {\n this._disabled = !coerceBooleanProperty(value)\n if (!this._disabled) {\n this._scrollbars.initializeInstance(this._ref.nativeElement, this._options)\n } else {\n this._scrollbars.destroyInstance(this._ref.nativeElement)\n }\n }\n\n set options(value: IOverlayScrollbarsConfig | undefined | null) {\n this._options = value || {}\n this._scrollbars.setOptions(this._ref.nativeElement, this._options)\n }\n get options() {\n if (this._scrollbars.isInstanceEnabled(this._ref.nativeElement)) {\n return this._scrollbars.getOptions(this._ref.nativeElement)\n }\n return this._options\n }\n private _options: IOverlayScrollbarsConfig = {}\n\n constructor(\n private _ref: ElementRef,\n private _scrollbars: OverlayScrollbarsService\n ) { }\n\n ngOnInit() { }\n\n ngAfterViewInit() {\n if (!this._disabled) {\n this._scrollbars.initializeInstance(this._ref.nativeElement, this._options)\n }\n }\n\n ngOnDestroy() {\n this._scrollbars.destroyInstance(this._ref.nativeElement)\n }\n\n get instance(): OverlayScrollbars {\n return this._scrollbars.getInstance(this._ref.nativeElement)\n }\n\n}\n","import { PlatformModule } from '@angular/cdk/platform'\nimport { NgModule } from '@angular/core'\n\nimport { OverlayScrollbarDirective } from './overlay-scrollbar.directive'\nimport { LIB_OVERLAY_SCROLLBARS_CONFIG, _OverlayScrollbarDefaults } from './overlay-scrollbars-config'\n\n@NgModule({\n declarations: [\n OverlayScrollbarDirective\n ],\n imports: [\n PlatformModule\n ],\n providers: [\n { provide: LIB_OVERLAY_SCROLLBARS_CONFIG, useValue: _OverlayScrollbarDefaults }\n ],\n exports: [\n OverlayScrollbarDirective\n ]\n})\nexport class TheSeamScrollbarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { formatCurrency, formatNumber, CommonModule } from '@angular/common';
3
3
  import { Component, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Inject, Input, HostBinding, NgModule } from '@angular/core';
4
4
  import { Subject } from 'rxjs';
5
5
  import { takeUntil } from 'rxjs/operators';
6
- import { notNullOrUndefined, hasProperty } from '@theseam/ui-common/utils';
6
+ import { notNullOrUndefined, isNumeric, hasProperty } from '@theseam/ui-common/utils';
7
7
  import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
8
8
  import { DatatableComponent } from '@theseam/ui-common/datatable';
9
9
  import { getKnownIcon, TheSeamIconModule } from '@theseam/ui-common/icon';
@@ -55,11 +55,24 @@ class TableCellTypeCurrencyComponent {
55
55
  _formatCurrency(currentValue, tableData) {
56
56
  var _a;
57
57
  const config = (_a = tableData === null || tableData === void 0 ? void 0 : tableData.colData) === null || _a === void 0 ? void 0 : _a.cellTypeConfig;
58
+ const defaultToEmpty = notNullOrUndefined(config === null || config === void 0 ? void 0 : config.defaultToEmpty) ?
59
+ this._parseConfigValue(coerceBooleanProperty(config === null || config === void 0 ? void 0 : config.defaultToEmpty), tableData) : true;
60
+ const valueIsNumeric = isNumeric(currentValue);
61
+ if (!valueIsNumeric) {
62
+ if (defaultToEmpty) {
63
+ // return empty string instead of $0 when currentValue is empty or unparseable
64
+ return '';
65
+ }
66
+ else {
67
+ // set non-numeric value to 0 so it can be formatted the same as other numbers
68
+ currentValue = 0;
69
+ }
70
+ }
58
71
  const locale = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.locale, tableData) || 'en-US';
59
72
  const currency = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.currency, tableData) || '$';
60
73
  const currencyCode = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.currencyCode, tableData) || 'USD';
61
74
  const minIntegerDigits = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.minIntegerDigits, tableData) || 1;
62
- const minFractionDigits = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.minFractionDigits, tableData) || 0;
75
+ const minFractionDigits = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.minFractionDigits, tableData) || 2;
63
76
  const maxFractionDigits = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.maxFractionDigits, tableData) || 2;
64
77
  const format = `${minIntegerDigits}.${minFractionDigits}-${maxFractionDigits}`;
65
78
  return formatCurrency(currentValue, locale, currency, currencyCode, format);
@@ -172,8 +185,22 @@ class TableCellTypeDecimalComponent {
172
185
  _formatDecimal(currentValue, tableData) {
173
186
  var _a;
174
187
  const config = (_a = tableData === null || tableData === void 0 ? void 0 : tableData.colData) === null || _a === void 0 ? void 0 : _a.cellTypeConfig;
188
+ const defaultToEmpty = notNullOrUndefined(config === null || config === void 0 ? void 0 : config.defaultToEmpty) ?
189
+ this._parseConfigValue(coerceBooleanProperty(config === null || config === void 0 ? void 0 : config.defaultToEmpty), tableData) : true;
175
190
  const formatDecimal = notNullOrUndefined(config === null || config === void 0 ? void 0 : config.formatNumber) ?
176
191
  this._parseConfigValue(coerceBooleanProperty(config === null || config === void 0 ? void 0 : config.formatNumber), tableData) : true;
192
+ const valueIsNumeric = isNumeric(currentValue);
193
+ // unparseable values are OK to return as long as we're not trying to format them
194
+ if (!valueIsNumeric && formatDecimal) {
195
+ if (defaultToEmpty) {
196
+ // return empty string instead of 0 when currentValue is empty or unparseable
197
+ return '';
198
+ }
199
+ else {
200
+ // set non-numeric value to 0 so it can be formatted the same as other numbers
201
+ currentValue = 0;
202
+ }
203
+ }
177
204
  const locale = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.locale, tableData) || 'en-US';
178
205
  const minIntegerDigits = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.minIntegerDigits, tableData) || 1;
179
206
  const minFractionDigits = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.minFractionDigits, tableData) || 0;
@@ -397,8 +424,22 @@ class TableCellTypeIntegerComponent {
397
424
  _formatInteger(currentValue, tableData) {
398
425
  var _a;
399
426
  const config = (_a = tableData === null || tableData === void 0 ? void 0 : tableData.colData) === null || _a === void 0 ? void 0 : _a.cellTypeConfig;
427
+ const defaultToEmpty = notNullOrUndefined(config === null || config === void 0 ? void 0 : config.defaultToEmpty) ?
428
+ this._parseConfigValue(coerceBooleanProperty(config === null || config === void 0 ? void 0 : config.defaultToEmpty), tableData) : true;
400
429
  const formatInteger = notNullOrUndefined(config === null || config === void 0 ? void 0 : config.formatNumber) ?
401
430
  this._parseConfigValue(coerceBooleanProperty(config === null || config === void 0 ? void 0 : config.formatNumber), tableData) : true;
431
+ const valueIsNumeric = isNumeric(currentValue);
432
+ // unparseable values are OK to return as long as we're not trying to format them
433
+ if (!valueIsNumeric && formatInteger) {
434
+ if (defaultToEmpty) {
435
+ // return empty string instead of 0 when currentValue is empty or unparseable
436
+ return '';
437
+ }
438
+ else {
439
+ // set non-numeric value to 0 so it can be formatted the same as other numbers
440
+ currentValue = 0;
441
+ }
442
+ }
402
443
  const locale = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.locale, tableData) || 'en-US';
403
444
  const minIntegerDigits = this._parseConfigValue(config === null || config === void 0 ? void 0 : config.minIntegerDigits, tableData) || 1;
404
445
  const format = `${minIntegerDigits}.0-0`;
@@ -748,12 +789,18 @@ class TableCellTypeStringComponent {
748
789
  set config(value) {
749
790
  this._config = value;
750
791
  if (value) {
751
- this.setAction(value.action);
792
+ this.setConfig(value);
752
793
  }
753
794
  }
754
- set title(value) { this.title = value; }
795
+ set title(value) { this._title = value; }
755
796
  get title() { return this._title; }
756
797
  get _titleAttr() { return this.title || this.value; }
798
+ set style(value) { this._style = value; }
799
+ get style() { return this._style; }
800
+ get _styleAttr() { return this.style; }
801
+ set classAttr(value) { this._class = value; }
802
+ get classAttr() { return this._class; }
803
+ get _classAttr() { return this.classAttr; }
757
804
  ngOnInit() {
758
805
  const _data = this._tableData;
759
806
  if (_data) {
@@ -814,6 +861,24 @@ class TableCellTypeStringComponent {
814
861
  this._detectMimeContent = detectMimeContent;
815
862
  this._queryParams = queryParams;
816
863
  }
864
+ setConfig(config) {
865
+ if (!config) {
866
+ return;
867
+ }
868
+ const title = this._parseConfigValue(config.titleAttr);
869
+ if (title) {
870
+ this.title = title;
871
+ }
872
+ const style = this._parseConfigValue(config.styleAttr);
873
+ if (style) {
874
+ this.style = style;
875
+ }
876
+ const classAttr = this._parseConfigValue(config.classAttr);
877
+ if (classAttr) {
878
+ this.classAttr = classAttr;
879
+ }
880
+ this.setAction(config.action);
881
+ }
817
882
  _parseConfigValue(val) {
818
883
  const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData);
819
884
  return this._tableCellTypeHelpers.parseValueProp(val, contextFn);
@@ -854,7 +919,11 @@ TableCellTypeStringComponent.propDecorators = {
854
919
  value: [{ type: Input }],
855
920
  config: [{ type: Input }],
856
921
  title: [{ type: Input }],
857
- _titleAttr: [{ type: HostBinding, args: ['attr.title',] }]
922
+ _titleAttr: [{ type: HostBinding, args: ['attr.title',] }],
923
+ style: [{ type: Input }],
924
+ _styleAttr: [{ type: HostBinding, args: ['attr.style',] }],
925
+ classAttr: [{ type: Input }],
926
+ _classAttr: [{ type: HostBinding, args: ['class',] }]
858
927
  };
859
928
 
860
929
  const ɵ0 = {
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-table-cell-types.js","sources":["../../../projects/ui-common/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-date/table-cell-type-date.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-string/table-cell-type-string.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-manifests.ts","../../../projects/ui-common/table-cell-types/table-cell-types.module.ts","../../../projects/ui-common/table-cell-types/theseam-ui-common-table-cell-types.ts"],"sourcesContent":["import { formatCurrency } from '@angular/common'\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigCurrency } from './table-cell-type-currency-config'\n\n@Component({\n selector: 'seam-table-cell-type-currency',\n templateUrl: './table-cell-type-currency.component.html',\n styleUrls: ['./table-cell-type-currency.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeCurrencyComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | null | undefined\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'currency', TableCellTypeConfigCurrency>\n textAlign?: 'left' | 'center' | 'right'\n // TODO: implement\n // titleAttr?: string\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'currency', TableCellTypeConfigCurrency>\n ) {\n const tableData = _tableData\n this.value = tableData && this._formatCurrency(tableData.value, tableData)\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n this.textAlign = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.textAlign, tableData) || 'right'\n // this.titleAttr = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.titleAttr, tableData) || this.value\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = this._formatCurrency(v.changes.value.currentValue, tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _formatCurrency(currentValue?: any, tableData?: TableCellData<'currency', TableCellTypeConfigCurrency>): string {\n const config = tableData?.colData?.cellTypeConfig\n const locale = this._parseConfigValue(config?.locale, tableData) || 'en-US'\n const currency = this._parseConfigValue(config?.currency, tableData) || '$'\n const currencyCode = this._parseConfigValue(config?.currencyCode, tableData) || 'USD'\n const minIntegerDigits = this._parseConfigValue(config?.minIntegerDigits, tableData) || 1\n const minFractionDigits = this._parseConfigValue(config?.minFractionDigits, tableData) || 0\n const maxFractionDigits = this._parseConfigValue(config?.maxFractionDigits, tableData) || 2\n const format = `${ minIntegerDigits }.${ minFractionDigits }-${ maxFractionDigits }`\n\n return formatCurrency(currentValue, locale, currency, currencyCode, format )\n }\n\n private _parseConfigValue(val?: any, tableData?: TableCellData<'currency', TableCellTypeConfigCurrency>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigDate } from './table-cell-type-date-config'\n\n@Component({\n selector: 'seam-table-cell-type-date',\n templateUrl: './table-cell-type-date.component.html',\n styleUrls: ['./table-cell-type-date.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeDateComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | undefined | null\n @Input() format: string | undefined | null\n\n constructor(\n private _cdf: ChangeDetectorRef,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'date', TableCellTypeConfigDate>\n ) {\n const _data = _tableData\n\n this.value = _data && _data.value\n this.format = _data && _data.colData && _data.colData.cellTypeConfig && _data.colData.cellTypeConfig.format\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.format !== this.format) {\n this.format = colData.format\n } else {\n this.format = undefined\n }\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import { formatNumber } from '@angular/common'\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { TableCellTypeConfigDecimal } from './table-cell-type-decimal-config'\n\n@Component({\n selector: 'seam-table-cell-type-decimal',\n templateUrl: './table-cell-type-decimal.component.html',\n styleUrls: ['./table-cell-type-decimal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeDecimalComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | undefined | null\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'decimal', TableCellTypeConfigDecimal>\n textAlign?: 'left' | 'center' | 'right'\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'decimal', TableCellTypeConfigDecimal>\n ) {\n const tableData = _tableData\n this.value = tableData && this._formatDecimal(tableData.value, tableData)\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n this.textAlign = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.textAlign, tableData) || 'right'\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = this._formatDecimal(v.changes.value.currentValue, tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _formatDecimal(currentValue?: any, tableData?: TableCellData<'decimal', TableCellTypeConfigDecimal> | undefined): string {\n const config = tableData?.colData?.cellTypeConfig\n const formatDecimal = notNullOrUndefined(config?.formatNumber) ?\n this._parseConfigValue(coerceBooleanProperty(config?.formatNumber), tableData) : true\n const locale = this._parseConfigValue(config?.locale, tableData) || 'en-US'\n const minIntegerDigits = this._parseConfigValue(config?.minIntegerDigits, tableData) || 1\n const minFractionDigits = this._parseConfigValue(config?.minFractionDigits, tableData) || 0\n const maxFractionDigits = this._parseConfigValue(config?.maxFractionDigits, tableData) || 3\n const format = `${ minIntegerDigits }.${ minFractionDigits }-${ maxFractionDigits }`\n\n return formatDecimal ? formatNumber(currentValue, locale, format) : currentValue\n }\n\n private _parseConfigValue(val?: any, tableData?: TableCellData<'decimal', TableCellTypeConfigDecimal>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { getKnownIcon, SeamIcon, TheSeamIconType } from '@theseam/ui-common/icon'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigIcon, TableCellTypeIconConfigAction } from './table-cell-type-icon-config'\n\nexport type IconTemplateType = 'default' | 'link' | 'link-external' | 'link-encrypted' | 'button'\n\n@Component({\n selector: 'seam-table-cell-type-icon',\n templateUrl: './table-cell-type-icon.component.html',\n styleUrls: ['./table-cell-type-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeIconComponent<R = any, V = any> implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input()\n get value() { return this._value }\n set value(value: string | undefined | null) {\n this._value = value\n this._icon = value ? getKnownIcon(value) || value : value\n }\n private _value: string | undefined | null\n\n @Input()\n get config() { return this._config }\n set config(value: TableCellTypeConfigIcon | undefined | null) {\n this._config = value\n if (value) {\n this.setAction(value.action)\n this._linkClass = this._parseConfigValue(value.linkClass)\n this._iconClass = this._parseConfigValue(value.iconClass)\n this._iconType = value.iconType\n this._title = this._parseConfigValue(value.titleAttr)\n this._srOnly = this._parseConfigValue(value.srOnly)\n this._tooltip = this._parseConfigValue(value.tooltip)\n if (this._tooltip) {\n this._tooltipClass = this._parseConfigValue(value.tooltipClass)\n this._tooltipPlacement = this._parseConfigValue(value.tooltipPlacement) || 'auto'\n this._tooltipContainer = this._parseConfigValue(value.tooltipContainer)\n this._tooltipDisabled = false\n } else {\n this._tooltipDisabled = true\n }\n }\n }\n private _config: TableCellTypeConfigIcon | undefined | null\n\n _icon: SeamIcon | undefined | null\n _link?: string\n _queryParams?: { [k: string]: any }\n _tplType: IconTemplateType = 'default'\n _title?: string\n _srOnly?: string\n _linkClass?: string\n _iconClass?: string\n _iconType?: TheSeamIconType\n _target?: string\n _tooltip?: string\n _tooltipClass?: string\n _tooltipPlacement?: string\n _tooltipContainer?: string\n _tooltipDisabled: boolean = true\n\n _buttonAction?: TableCellTypeIconConfigAction\n\n _tableCellData?: TableCellData<'icon', TableCellTypeConfigIcon>\n _row?: any\n _rowIndex?: number\n _colData?: TheSeamTableColumn<'icon', TableCellTypeConfigIcon>\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n @HostBinding('class.datatable-cell-type') _isDatatable = false\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'icon', TableCellTypeConfigIcon>\n ) {\n if (_datatable) {\n this._isDatatable = true\n // console.log('isDataTable')\n }\n // if (_table) {\n // console.log('isTable')\n // }\n\n const _data = _tableData\n this._tableCellData = _tableData\n\n this._row = _data && _data.row\n this._rowIndex = _data && _data.rowIndex\n\n this.value = _data && _data.value\n this._colData = _data && _data.colData\n if (_data && _data.colData && (<any>_data.colData).cellTypeConfig) {\n this.config = (<any>_data.colData).cellTypeConfig\n }\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this.config = this._config\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.cellTypeConfig !== this.config) {\n this.config = colData.cellTypeConfig\n } else {\n this.config = undefined\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this.config = this.config\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n public setAction(configAction?: TableCellTypeIconConfigAction) {\n let newTplType: IconTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let target: string | undefined\n let queryParams: { [l: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset)\n ? 'link-encrypted'\n : this._parseConfigValue(configAction.external) ? 'link-external' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n target = this._parseConfigValue(configAction.target)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._target = target\n this._queryParams = queryParams\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import { formatNumber } from '@angular/common'\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\nimport { notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { TableCellTypeConfigInteger } from './table-cell-type-integer-config'\n\n@Component({\n selector: 'seam-table-cell-type-integer',\n templateUrl: './table-cell-type-integer.component.html',\n styleUrls: ['./table-cell-type-integer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeIntegerComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | null | undefined\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'integer', TableCellTypeConfigInteger>\n textAlign?: 'left' | 'center' | 'right'\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'integer', TableCellTypeConfigInteger>\n ) {\n const tableData = _tableData\n this.value = tableData && this._formatInteger(tableData.value, tableData)\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n this.textAlign = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.textAlign, tableData) || 'right'\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = this._formatInteger(v.changes.value.currentValue, tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _formatInteger(currentValue?: any, tableData?: TableCellData<'integer', TableCellTypeConfigInteger> | undefined): string {\n const config = tableData?.colData?.cellTypeConfig\n const formatInteger = notNullOrUndefined(config?.formatNumber) ?\n this._parseConfigValue(coerceBooleanProperty(config?.formatNumber), tableData) : true\n const locale = this._parseConfigValue(config?.locale, tableData) || 'en-US'\n const minIntegerDigits = this._parseConfigValue(config?.minIntegerDigits, tableData) || 1\n const format = `${ minIntegerDigits }.0-0`\n\n return formatInteger ? formatNumber(currentValue, locale, format ) : currentValue\n }\n\n private _parseConfigValue(val?: any, tableData?: TableCellData<'integer', TableCellTypeConfigInteger>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\nimport { coercePhoneNumberFormat, THESEAM_DEFAULT_PHONE_NUMBER_FORMAT } from '@theseam/ui-common/tel-input'\nimport type { intlTelInputUtils } from '@theseam/ui-common/tel-input'\nimport { hasProperty } from '@theseam/ui-common/utils'\n\nimport { TableCellTypeConfigPhone } from './table-cell-type-phone-config'\n\n@Component({\n selector: 'seam-table-cell-type-phone',\n templateUrl: './table-cell-type-phone.component.html',\n styleUrls: ['./table-cell-type-phone.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypePhoneComponent implements OnInit, OnDestroy {\n\n /** @ignore */\n private readonly _ngUnsubscribe = new Subject()\n\n /** @ignore */\n _format: intlTelInputUtils.numberFormat = THESEAM_DEFAULT_PHONE_NUMBER_FORMAT\n\n @Input() value?: string | null\n @Input()\n set format(value: intlTelInputUtils.numberFormat) { this._format = coercePhoneNumberFormat(value) }\n get format() { return this._format }\n\n constructor(\n private _cdf: ChangeDetectorRef,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'phone', TableCellTypeConfigPhone>\n ) {\n const _data = _tableData\n\n this.value = _data && _data.value\n if (_data && _data.colData && _data.colData.cellTypeConfig && hasProperty(_data.colData.cellTypeConfig, 'format')) {\n this.format = _data.colData.cellTypeConfig.format as intlTelInputUtils.numberFormat\n }\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && hasProperty(colData, 'cellTypeConfig') &&\n hasProperty(colData.cellTypeConfig, 'format') &&\n colData.cellTypeConfig.format !== this.format\n ) {\n this.format = colData.cellTypeConfig.format\n } else {\n this.format = THESEAM_DEFAULT_PHONE_NUMBER_FORMAT\n }\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { SeamIcon } from '@theseam/ui-common/icon'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigProgressCircleIcon } from './table-cell-type-progress-circle-icon-config'\n\n@Component({\n selector: 'seam-table-cell-type-progress-circle-icon',\n templateUrl: './table-cell-type-progress-circle-icon.component.html',\n styleUrls: ['./table-cell-type-progress-circle-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeProgressCircleIconComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: number | null | undefined\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>\n\n displayIcon: boolean = false\n icon?: SeamIcon\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>\n ) {\n const tableData = _tableData\n this.value = tableData && tableData.value\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n\n this._setIcon(tableData)\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._setIcon(tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._setIcon(tableData)\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this._setIcon(tableData)\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n private _setIcon(tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>) {\n if (tableData &&\n tableData.colData &&\n tableData.colData.cellTypeConfig &&\n tableData.colData.cellTypeConfig.displayIcon &&\n tableData.colData.cellTypeConfig.icon &&\n this._parseConfigValue(tableData.colData.cellTypeConfig.displayIcon, tableData) &&\n this._parseConfigValue(tableData.colData.cellTypeConfig.icon, tableData)) {\n this.icon = this._parseConfigValue(tableData.colData.cellTypeConfig.icon, tableData)\n this.displayIcon = this._parseConfigValue(tableData.colData.cellTypeConfig.displayIcon, tableData)\n }\n }\n\n private _parseConfigValue(val: any, tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion'\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { IconTemplateType } from './../table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypeConfigProgressCircle, TableCellTypeProgressCircleConfigAction } from './table-cell-type-progress-circle-config'\n\n@Component({\n selector: 'seam-table-cell-type-progress-circle',\n templateUrl: './table-cell-type-progress-circle.component.html',\n styleUrls: ['./table-cell-type-progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeProgressCircleComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: number | null | undefined\n\n _tableCellData?: TableCellData<'progress-circle', TableCellTypeConfigProgressCircle>\n colData?: TheSeamTableColumn<'progress-circle', TableCellTypeConfigProgressCircle>\n\n fillBackground: boolean = false\n showText: boolean = false\n hiddenOnEmpty: boolean = true\n pending: boolean = false\n tooltip?: string\n tooltipClass?: string\n tooltipPlacement?: string\n tooltipContainer?: string\n _tooltipDisabled: boolean = false\n\n _title?: string\n _srOnly?: string\n\n _link?: string\n _linkClass = '' // TODO: Decide if this makes sense\n _tplType: IconTemplateType = 'default'\n _target?: string\n _queryParams?: { [k: string]: any }\n\n _buttonAction?: TableCellTypeProgressCircleConfigAction\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n private _config: TableCellTypeConfigProgressCircle | undefined | null\n\n @HostBinding('class.datatable-cell-type') _isDatatable = false\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'progress-circle', TableCellTypeConfigProgressCircle>\n ) {\n if (_datatable) {\n this._isDatatable = true\n }\n\n const tableData = _tableData\n this._tableCellData = _tableData\n\n this.value = tableData && coerceNumberProperty(tableData.value)\n this.colData = tableData && tableData.colData\n\n if (this.colData && this.colData.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n }\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = coerceNumberProperty(v.changes.value.currentValue)\n if (this._config) {\n this._setCellTypeConfigProps(this._config)\n }\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n if (this.colData && this.colData.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n if (this.colData?.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n this._cdf.markForCheck()\n }\n }\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n public setAction(configAction?: TableCellTypeProgressCircleConfigAction) {\n let newTplType: IconTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let target: string | undefined\n let queryParams: { [k: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset)\n ? 'link-encrypted'\n : this._parseConfigValue(configAction.external) ? 'link-external' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n target = this._parseConfigValue(configAction.target)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._target = target\n this._queryParams = queryParams\n }\n\n private _setCellTypeConfigProps(config: TableCellTypeConfigProgressCircle): void {\n this._config = config\n this.setAction(config.action)\n this.fillBackground = coerceBooleanProperty(this._parseConfigValue(config.fillBackground))\n this.showText = coerceBooleanProperty(this._parseConfigValue(config.showText))\n this.hiddenOnEmpty = coerceBooleanProperty(this._parseConfigValue(config.hiddenOnEmpty))\n this.pending = coerceBooleanProperty(this._parseConfigValue(config.pending))\n this.tooltip = this._parseConfigValue(config.tooltip)\n\n this.tooltip = this._parseConfigValue(config.tooltip)\n if (this.tooltip) {\n this.tooltipClass = this._parseConfigValue(config.tooltipClass)\n this.tooltipPlacement = this._parseConfigValue(config.tooltipPlacement) || 'auto'\n this.tooltipContainer = this._parseConfigValue(config.tooltipContainer)\n this._tooltipDisabled = false\n } else {\n this._tooltipDisabled = true\n }\n\n this._title = this._parseConfigValue(config.titleAttr)\n this._srOnly = this._parseConfigValue(config.srOnly)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\n\nimport { TableCellTypeConfigString, TableCellTypeStringConfigAction } from './table-cell-type-string-config'\n\nexport type StringTemplateType = 'default' | 'link' | 'link-external' | 'link-encrypted' | 'button'\n\n@Component({\n selector: 'seam-table-cell-type-string',\n templateUrl: './table-cell-type-string.component.html',\n styleUrls: ['./table-cell-type-string.component.scss'],\n host: { },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeStringComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input()\n get value() { return this._value }\n set value(val: string | null | undefined) {\n this._value = val\n // TODO: This is temporary to test the feature and will be fixed when the\n // dynamic column data is fixed. The plan is to add a config toggle to\n // always enable and depending on performance it could try to decide on its\n // own based on content size.\n if (this.value && this.value.length > 30) {\n this.canPopover = true\n }\n }\n _value: string | null | undefined\n\n @Input()\n get config() { return this._config }\n set config(value: TableCellTypeConfigString | undefined | null) {\n this._config = value\n if (value) {\n this.setAction(value.action)\n }\n }\n private _config: TableCellTypeConfigString | undefined | null\n\n _tplType: StringTemplateType = 'default'\n _link?: string\n _title?: string\n _queryParams?: { [k: string]: any }\n\n _buttonAction?: TableCellTypeStringConfigAction\n\n _tableCellData?: TableCellData<'string', TableCellTypeConfigString>\n _row?: any\n _rowIndex?: number\n _colData?: TheSeamTableColumn<'string', TableCellTypeConfigString>\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n @Input()\n set title(value: string | undefined) { this.title = value }\n get title(): string | undefined { return this._title }\n\n @HostBinding('attr.title') get _titleAttr() { return this.title || this.value }\n\n canPopover = false\n\n constructor(\n private readonly _cdf: ChangeDetectorRef,\n private readonly _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) readonly _tableData?: TableCellData<'string', TableCellTypeConfigString>\n ) {\n const _data = _tableData\n this._tableCellData = _tableData\n\n this._row = _data && _data.row\n this._rowIndex = _data && _data.rowIndex\n\n this.value = _data && _data.value\n this._colData = _data && _data.colData\n if (_data && _data.colData && (<any>_data.colData).cellTypeConfig) {\n this.config = (<any>_data.colData).cellTypeConfig\n }\n }\n\n ngOnInit() {\n const _data = this._tableData\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.cellTypeConfig !== this.config) {\n this.config = colData.cellTypeConfig\n } else {\n this.config = undefined\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this.config = this.config\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n public setAction(configAction?: TableCellTypeStringConfigAction) {\n let newTplType: StringTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let queryParams: { [k: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset) ? 'link-encrypted' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._queryParams = queryParams\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import { ITableCellTypeManifestProvider, TABLE_CELL_TYPE_MANIFEST } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeCurrencyComponent } from './table-cell-type-currency/table-cell-type-currency.component'\nimport { TableCellTypeDateComponent } from './table-cell-type-date/table-cell-type-date.component'\nimport { TableCellTypeDecimalComponent } from './table-cell-type-decimal/table-cell-type-decimal.component'\nimport { TableCellTypeIconComponent } from './table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypeIntegerComponent } from './table-cell-type-integer/table-cell-type-integer.component'\nimport { TableCellTypePhoneComponent } from './table-cell-type-phone/table-cell-type-phone.component'\n// tslint:disable-next-line: max-line-length\nimport { TableCellTypeProgressCircleIconComponent } from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component'\nimport { TableCellTypeProgressCircleComponent } from './table-cell-type-progress-circle/table-cell-type-progress-circle.component'\nimport { TableCellTypeStringComponent } from './table-cell-type-string/table-cell-type-string.component'\n\nexport const TABLE_CELL_TYPE_MANIFEST_STRING: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'string',\n component: TableCellTypeStringComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_CURRENCY: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'currency',\n component: TableCellTypeCurrencyComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_DECIMAL: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'decimal',\n component: TableCellTypeDecimalComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_INTEGER: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'integer',\n component: TableCellTypeIntegerComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_DATE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'date',\n component: TableCellTypeDateComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_ICON: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'icon',\n component: TableCellTypeIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_IMAGE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'image',\n component: TableCellTypeIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'progress-circle',\n component: TableCellTypeProgressCircleComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'progress-circle-icon',\n component: TableCellTypeProgressCircleIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PHONE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'phone',\n component: TableCellTypePhoneComponent\n },\n multi: true\n}\n","import { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'\n\nimport { TheSeamAssetReaderModule } from '@theseam/ui-common/asset-reader'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamPopoverModule } from '@theseam/ui-common/popover'\nimport { TheSeamProgressModule } from '@theseam/ui-common/progress'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\nimport { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type'\nimport { TheSeamTelInputModule } from '@theseam/ui-common/tel-input'\n\nimport { TableCellTypeCurrencyComponent } from './table-cell-type-currency/table-cell-type-currency.component'\nimport { TableCellTypeDateComponent } from './table-cell-type-date/table-cell-type-date.component'\nimport { TableCellTypeDecimalComponent } from './table-cell-type-decimal/table-cell-type-decimal.component'\nimport { TableCellTypeIconComponent } from './table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypeIntegerComponent } from './table-cell-type-integer/table-cell-type-integer.component'\nimport { TableCellTypePhoneComponent } from './table-cell-type-phone/table-cell-type-phone.component'\n// tslint:disable-next-line: max-line-length\nimport { TableCellTypeProgressCircleIconComponent } from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component'\nimport { TableCellTypeProgressCircleComponent } from './table-cell-type-progress-circle/table-cell-type-progress-circle.component'\nimport { TableCellTypeStringComponent } from './table-cell-type-string/table-cell-type-string.component'\n\nimport {\n TABLE_CELL_TYPE_MANIFEST_CURRENCY,\n TABLE_CELL_TYPE_MANIFEST_DATE,\n TABLE_CELL_TYPE_MANIFEST_DECIMAL,\n TABLE_CELL_TYPE_MANIFEST_ICON,\n TABLE_CELL_TYPE_MANIFEST_IMAGE,\n TABLE_CELL_TYPE_MANIFEST_INTEGER,\n TABLE_CELL_TYPE_MANIFEST_PHONE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON,\n TABLE_CELL_TYPE_MANIFEST_STRING\n} from './table-cell-type-manifests'\n\nconst cellTypeComponents = [\n TableCellTypeStringComponent,\n TableCellTypeCurrencyComponent,\n TableCellTypeDateComponent,\n TableCellTypeDecimalComponent,\n TableCellTypeIconComponent,\n TableCellTypeIntegerComponent,\n TableCellTypeProgressCircleComponent,\n TableCellTypeProgressCircleIconComponent,\n TableCellTypePhoneComponent\n]\n\nconst cellTypeProviders = [\n TABLE_CELL_TYPE_MANIFEST_STRING,\n TABLE_CELL_TYPE_MANIFEST_INTEGER,\n TABLE_CELL_TYPE_MANIFEST_CURRENCY,\n TABLE_CELL_TYPE_MANIFEST_DECIMAL,\n TABLE_CELL_TYPE_MANIFEST_DATE,\n TABLE_CELL_TYPE_MANIFEST_ICON,\n TABLE_CELL_TYPE_MANIFEST_IMAGE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON,\n TABLE_CELL_TYPE_MANIFEST_PHONE\n]\n\n@NgModule({\n declarations: [\n ...cellTypeComponents\n ],\n imports: [\n CommonModule,\n NgbTooltipModule,\n RouterModule,\n TheSeamSharedModule,\n TheSeamIconModule,\n PortalModule,\n TheSeamPopoverModule,\n TheSeamProgressModule,\n TheSeamTelInputModule,\n TheSeamAssetReaderModule,\n TheSeamTableCellTypeModule\n ],\n providers: [\n ...cellTypeProviders\n ],\n exports: [\n ...cellTypeComponents\n ],\n entryComponents: [\n ...cellTypeComponents\n ]\n})\nexport class TheSeamTableCellTypesModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {TableCellTypeConfigProgressCircleIcon as ɵb} from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config';\nexport {TableCellTypeConfigProgressCircle as ɵa} from './table-cell-type-progress-circle/table-cell-type-progress-circle-config';"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-table-cell-types.js","sources":["../../../projects/ui-common/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-date/table-cell-type-date.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-string/table-cell-type-string.component.ts","../../../projects/ui-common/table-cell-types/table-cell-type-manifests.ts","../../../projects/ui-common/table-cell-types/table-cell-types.module.ts","../../../projects/ui-common/table-cell-types/theseam-ui-common-table-cell-types.ts"],"sourcesContent":["import { formatCurrency } from '@angular/common'\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\nimport { isNumeric, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion'\n\nimport { TableCellTypeConfigCurrency } from './table-cell-type-currency-config'\n\n@Component({\n selector: 'seam-table-cell-type-currency',\n templateUrl: './table-cell-type-currency.component.html',\n styleUrls: ['./table-cell-type-currency.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeCurrencyComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | null | undefined\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'currency', TableCellTypeConfigCurrency>\n textAlign?: 'left' | 'center' | 'right'\n // TODO: implement\n // titleAttr?: string\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'currency', TableCellTypeConfigCurrency>\n ) {\n const tableData = _tableData\n this.value = tableData && this._formatCurrency(tableData.value, tableData)\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n this.textAlign = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.textAlign, tableData) || 'right'\n // this.titleAttr = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.titleAttr, tableData) || this.value\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = this._formatCurrency(v.changes.value.currentValue, tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _formatCurrency(currentValue?: any, tableData?: TableCellData<'currency', TableCellTypeConfigCurrency>): string {\n const config = tableData?.colData?.cellTypeConfig\n const defaultToEmpty = notNullOrUndefined(config?.defaultToEmpty) ?\n this._parseConfigValue(coerceBooleanProperty(config?.defaultToEmpty), tableData) : true\n const valueIsNumeric = isNumeric(currentValue)\n\n if (!valueIsNumeric) {\n if (defaultToEmpty) {\n // return empty string instead of $0 when currentValue is empty or unparseable\n return ''\n } else {\n // set non-numeric value to 0 so it can be formatted the same as other numbers\n currentValue = 0\n }\n }\n\n const locale = this._parseConfigValue(config?.locale, tableData) || 'en-US'\n const currency = this._parseConfigValue(config?.currency, tableData) || '$'\n const currencyCode = this._parseConfigValue(config?.currencyCode, tableData) || 'USD'\n\n const minIntegerDigits = this._parseConfigValue(config?.minIntegerDigits, tableData) || 1\n const minFractionDigits = this._parseConfigValue(config?.minFractionDigits, tableData) || 2\n const maxFractionDigits = this._parseConfigValue(config?.maxFractionDigits, tableData) || 2\n const format = `${ minIntegerDigits }.${ minFractionDigits }-${ maxFractionDigits }`\n\n return formatCurrency(currentValue, locale, currency, currencyCode, format )\n }\n\n private _parseConfigValue(val?: any, tableData?: TableCellData<'currency', TableCellTypeConfigCurrency>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigDate } from './table-cell-type-date-config'\n\n@Component({\n selector: 'seam-table-cell-type-date',\n templateUrl: './table-cell-type-date.component.html',\n styleUrls: ['./table-cell-type-date.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeDateComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | undefined | null\n @Input() format: string | undefined | null\n\n constructor(\n private _cdf: ChangeDetectorRef,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'date', TableCellTypeConfigDate>\n ) {\n const _data = _tableData\n\n this.value = _data && _data.value\n this.format = _data && _data.colData && _data.colData.cellTypeConfig && _data.colData.cellTypeConfig.format\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.format !== this.format) {\n this.format = colData.format\n } else {\n this.format = undefined\n }\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import { formatNumber } from '@angular/common'\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\nimport { isNumeric, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { TableCellTypeConfigDecimal } from './table-cell-type-decimal-config'\n\n@Component({\n selector: 'seam-table-cell-type-decimal',\n templateUrl: './table-cell-type-decimal.component.html',\n styleUrls: ['./table-cell-type-decimal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeDecimalComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | undefined | null\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'decimal', TableCellTypeConfigDecimal>\n textAlign?: 'left' | 'center' | 'right'\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'decimal', TableCellTypeConfigDecimal>\n ) {\n const tableData = _tableData\n this.value = tableData && this._formatDecimal(tableData.value, tableData)\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n this.textAlign = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.textAlign, tableData) || 'right'\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = this._formatDecimal(v.changes.value.currentValue, tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _formatDecimal(currentValue?: any, tableData?: TableCellData<'decimal', TableCellTypeConfigDecimal> | undefined): string {\n const config = tableData?.colData?.cellTypeConfig\n const defaultToEmpty = notNullOrUndefined(config?.defaultToEmpty) ?\n this._parseConfigValue(coerceBooleanProperty(config?.defaultToEmpty), tableData) : true\n const formatDecimal = notNullOrUndefined(config?.formatNumber) ?\n this._parseConfigValue(coerceBooleanProperty(config?.formatNumber), tableData) : true\n const valueIsNumeric = isNumeric(currentValue)\n\n // unparseable values are OK to return as long as we're not trying to format them\n if (!valueIsNumeric && formatDecimal) {\n if (defaultToEmpty) {\n // return empty string instead of 0 when currentValue is empty or unparseable\n return ''\n } else {\n // set non-numeric value to 0 so it can be formatted the same as other numbers\n currentValue = 0\n }\n }\n\n const locale = this._parseConfigValue(config?.locale, tableData) || 'en-US'\n const minIntegerDigits = this._parseConfigValue(config?.minIntegerDigits, tableData) || 1\n const minFractionDigits = this._parseConfigValue(config?.minFractionDigits, tableData) || 0\n const maxFractionDigits = this._parseConfigValue(config?.maxFractionDigits, tableData) || 3\n const format = `${ minIntegerDigits }.${ minFractionDigits }-${ maxFractionDigits }`\n\n return formatDecimal ? formatNumber(currentValue, locale, format) : currentValue\n }\n\n private _parseConfigValue(val?: any, tableData?: TableCellData<'decimal', TableCellTypeConfigDecimal>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { getKnownIcon, SeamIcon, TheSeamIconType } from '@theseam/ui-common/icon'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigIcon, TableCellTypeIconConfigAction } from './table-cell-type-icon-config'\n\nexport type IconTemplateType = 'default' | 'link' | 'link-external' | 'link-encrypted' | 'button'\n\n@Component({\n selector: 'seam-table-cell-type-icon',\n templateUrl: './table-cell-type-icon.component.html',\n styleUrls: ['./table-cell-type-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeIconComponent<R = any, V = any> implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input()\n get value() { return this._value }\n set value(value: string | undefined | null) {\n this._value = value\n this._icon = value ? getKnownIcon(value) || value : value\n }\n private _value: string | undefined | null\n\n @Input()\n get config() { return this._config }\n set config(value: TableCellTypeConfigIcon | undefined | null) {\n this._config = value\n if (value) {\n this.setAction(value.action)\n this._linkClass = this._parseConfigValue(value.linkClass)\n this._iconClass = this._parseConfigValue(value.iconClass)\n this._iconType = value.iconType\n this._title = this._parseConfigValue(value.titleAttr)\n this._srOnly = this._parseConfigValue(value.srOnly)\n this._tooltip = this._parseConfigValue(value.tooltip)\n if (this._tooltip) {\n this._tooltipClass = this._parseConfigValue(value.tooltipClass)\n this._tooltipPlacement = this._parseConfigValue(value.tooltipPlacement) || 'auto'\n this._tooltipContainer = this._parseConfigValue(value.tooltipContainer)\n this._tooltipDisabled = false\n } else {\n this._tooltipDisabled = true\n }\n }\n }\n private _config: TableCellTypeConfigIcon | undefined | null\n\n _icon: SeamIcon | undefined | null\n _link?: string\n _queryParams?: { [k: string]: any }\n _tplType: IconTemplateType = 'default'\n _title?: string\n _srOnly?: string\n _linkClass?: string\n _iconClass?: string\n _iconType?: TheSeamIconType\n _target?: string\n _tooltip?: string\n _tooltipClass?: string\n _tooltipPlacement?: string\n _tooltipContainer?: string\n _tooltipDisabled: boolean = true\n\n _buttonAction?: TableCellTypeIconConfigAction\n\n _tableCellData?: TableCellData<'icon', TableCellTypeConfigIcon>\n _row?: any\n _rowIndex?: number\n _colData?: TheSeamTableColumn<'icon', TableCellTypeConfigIcon>\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n @HostBinding('class.datatable-cell-type') _isDatatable = false\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'icon', TableCellTypeConfigIcon>\n ) {\n if (_datatable) {\n this._isDatatable = true\n // console.log('isDataTable')\n }\n // if (_table) {\n // console.log('isTable')\n // }\n\n const _data = _tableData\n this._tableCellData = _tableData\n\n this._row = _data && _data.row\n this._rowIndex = _data && _data.rowIndex\n\n this.value = _data && _data.value\n this._colData = _data && _data.colData\n if (_data && _data.colData && (<any>_data.colData).cellTypeConfig) {\n this.config = (<any>_data.colData).cellTypeConfig\n }\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this.config = this._config\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.cellTypeConfig !== this.config) {\n this.config = colData.cellTypeConfig\n } else {\n this.config = undefined\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this.config = this.config\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n public setAction(configAction?: TableCellTypeIconConfigAction) {\n let newTplType: IconTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let target: string | undefined\n let queryParams: { [l: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset)\n ? 'link-encrypted'\n : this._parseConfigValue(configAction.external) ? 'link-external' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n target = this._parseConfigValue(configAction.target)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._target = target\n this._queryParams = queryParams\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import { formatNumber } from '@angular/common'\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\nimport { isNumeric, notNullOrUndefined } from '@theseam/ui-common/utils'\n\nimport { coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { TableCellTypeConfigInteger } from './table-cell-type-integer-config'\n\n@Component({\n selector: 'seam-table-cell-type-integer',\n templateUrl: './table-cell-type-integer.component.html',\n styleUrls: ['./table-cell-type-integer.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeIntegerComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: string | null | undefined\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'integer', TableCellTypeConfigInteger>\n textAlign?: 'left' | 'center' | 'right'\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'integer', TableCellTypeConfigInteger>\n ) {\n const tableData = _tableData\n this.value = tableData && this._formatInteger(tableData.value, tableData)\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n this.textAlign = this._parseConfigValue(tableData?.colData?.cellTypeConfig?.textAlign, tableData) || 'right'\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = this._formatInteger(v.changes.value.currentValue, tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() {}\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _formatInteger(currentValue?: any, tableData?: TableCellData<'integer', TableCellTypeConfigInteger> | undefined): string {\n const config = tableData?.colData?.cellTypeConfig\n const defaultToEmpty = notNullOrUndefined(config?.defaultToEmpty) ?\n this._parseConfigValue(coerceBooleanProperty(config?.defaultToEmpty), tableData) : true\n const formatInteger = notNullOrUndefined(config?.formatNumber) ?\n this._parseConfigValue(coerceBooleanProperty(config?.formatNumber), tableData) : true\n const valueIsNumeric = isNumeric(currentValue)\n\n // unparseable values are OK to return as long as we're not trying to format them\n if (!valueIsNumeric && formatInteger) {\n if (defaultToEmpty) {\n // return empty string instead of 0 when currentValue is empty or unparseable\n return ''\n } else {\n // set non-numeric value to 0 so it can be formatted the same as other numbers\n currentValue = 0\n }\n }\n\n const locale = this._parseConfigValue(config?.locale, tableData) || 'en-US'\n const minIntegerDigits = this._parseConfigValue(config?.minIntegerDigits, tableData) || 1\n const format = `${ minIntegerDigits }.0-0`\n\n return formatInteger ? formatNumber(currentValue, locale, format ) : currentValue\n }\n\n private _parseConfigValue(val?: any, tableData?: TableCellData<'integer', TableCellTypeConfigInteger>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData } from '@theseam/ui-common/table-cell-type'\nimport { coercePhoneNumberFormat, THESEAM_DEFAULT_PHONE_NUMBER_FORMAT } from '@theseam/ui-common/tel-input'\nimport type { intlTelInputUtils } from '@theseam/ui-common/tel-input'\nimport { hasProperty } from '@theseam/ui-common/utils'\n\nimport { TableCellTypeConfigPhone } from './table-cell-type-phone-config'\n\n@Component({\n selector: 'seam-table-cell-type-phone',\n templateUrl: './table-cell-type-phone.component.html',\n styleUrls: ['./table-cell-type-phone.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypePhoneComponent implements OnInit, OnDestroy {\n\n /** @ignore */\n private readonly _ngUnsubscribe = new Subject()\n\n /** @ignore */\n _format: intlTelInputUtils.numberFormat = THESEAM_DEFAULT_PHONE_NUMBER_FORMAT\n\n @Input() value?: string | null\n @Input()\n set format(value: intlTelInputUtils.numberFormat) { this._format = coercePhoneNumberFormat(value) }\n get format() { return this._format }\n\n constructor(\n private _cdf: ChangeDetectorRef,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'phone', TableCellTypeConfigPhone>\n ) {\n const _data = _tableData\n\n this.value = _data && _data.value\n if (_data && _data.colData && _data.colData.cellTypeConfig && hasProperty(_data.colData.cellTypeConfig, 'format')) {\n this.format = _data.colData.cellTypeConfig.format as intlTelInputUtils.numberFormat\n }\n\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && hasProperty(colData, 'cellTypeConfig') &&\n hasProperty(colData.cellTypeConfig, 'format') &&\n colData.cellTypeConfig.format !== this.format\n ) {\n this.format = colData.cellTypeConfig.format\n } else {\n this.format = THESEAM_DEFAULT_PHONE_NUMBER_FORMAT\n }\n this._cdf.markForCheck()\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Input, OnDestroy, OnInit, Optional } from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { SeamIcon } from '@theseam/ui-common/icon'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeConfigProgressCircleIcon } from './table-cell-type-progress-circle-icon-config'\n\n@Component({\n selector: 'seam-table-cell-type-progress-circle-icon',\n templateUrl: './table-cell-type-progress-circle-icon.component.html',\n styleUrls: ['./table-cell-type-progress-circle-icon.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeProgressCircleIconComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: number | null | undefined\n\n row?: any\n rowIndex?: number\n colData?: TheSeamTableColumn<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>\n\n displayIcon: boolean = false\n icon?: SeamIcon\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>\n ) {\n const tableData = _tableData\n this.value = tableData && tableData.value\n this.row = tableData && tableData.row\n this.rowIndex = tableData && tableData.rowIndex\n this.colData = tableData && tableData.colData\n\n this._setIcon(tableData)\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._setIcon(tableData)\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n this._setIcon(tableData)\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this._setIcon(tableData)\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n private _setIcon(tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>) {\n if (tableData &&\n tableData.colData &&\n tableData.colData.cellTypeConfig &&\n tableData.colData.cellTypeConfig.displayIcon &&\n tableData.colData.cellTypeConfig.icon &&\n this._parseConfigValue(tableData.colData.cellTypeConfig.displayIcon, tableData) &&\n this._parseConfigValue(tableData.colData.cellTypeConfig.icon, tableData)) {\n this.icon = this._parseConfigValue(tableData.colData.cellTypeConfig.icon, tableData)\n this.displayIcon = this._parseConfigValue(tableData.colData.cellTypeConfig.displayIcon, tableData)\n }\n }\n\n private _parseConfigValue(val: any, tableData?: TableCellData<'progress-circle-icon', TableCellTypeConfigProgressCircleIcon>) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, tableData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n}\n","import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion'\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\nimport { IconTemplateType } from './../table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypeConfigProgressCircle, TableCellTypeProgressCircleConfigAction } from './table-cell-type-progress-circle-config'\n\n@Component({\n selector: 'seam-table-cell-type-progress-circle',\n templateUrl: './table-cell-type-progress-circle.component.html',\n styleUrls: ['./table-cell-type-progress-circle.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeProgressCircleComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input() value: number | null | undefined\n\n _tableCellData?: TableCellData<'progress-circle', TableCellTypeConfigProgressCircle>\n colData?: TheSeamTableColumn<'progress-circle', TableCellTypeConfigProgressCircle>\n\n fillBackground: boolean = false\n showText: boolean = false\n hiddenOnEmpty: boolean = true\n pending: boolean = false\n tooltip?: string\n tooltipClass?: string\n tooltipPlacement?: string\n tooltipContainer?: string\n _tooltipDisabled: boolean = false\n\n _title?: string\n _srOnly?: string\n\n _link?: string\n _linkClass = '' // TODO: Decide if this makes sense\n _tplType: IconTemplateType = 'default'\n _target?: string\n _queryParams?: { [k: string]: any }\n\n _buttonAction?: TableCellTypeProgressCircleConfigAction\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n private _config: TableCellTypeConfigProgressCircle | undefined | null\n\n @HostBinding('class.datatable-cell-type') _isDatatable = false\n\n constructor(\n private _cdf: ChangeDetectorRef,\n private _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) _tableData?: TableCellData<'progress-circle', TableCellTypeConfigProgressCircle>\n ) {\n if (_datatable) {\n this._isDatatable = true\n }\n\n const tableData = _tableData\n this._tableCellData = _tableData\n\n this.value = tableData && coerceNumberProperty(tableData.value)\n this.colData = tableData && tableData.colData\n\n if (this.colData && this.colData.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n }\n\n if (tableData) {\n tableData.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = coerceNumberProperty(v.changes.value.currentValue)\n if (this._config) {\n this._setCellTypeConfigProps(this._config)\n }\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n this.colData = v.changes.colData.currentValue\n if (this.colData && this.colData.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n if (this.colData?.cellTypeConfig) {\n this._setCellTypeConfigProps(this.colData.cellTypeConfig)\n this._cdf.markForCheck()\n }\n }\n }\n })\n }\n }\n\n ngOnInit() { }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n public setAction(configAction?: TableCellTypeProgressCircleConfigAction) {\n let newTplType: IconTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let target: string | undefined\n let queryParams: { [k: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset)\n ? 'link-encrypted'\n : this._parseConfigValue(configAction.external) ? 'link-external' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n target = this._parseConfigValue(configAction.target)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._target = target\n this._queryParams = queryParams\n }\n\n private _setCellTypeConfigProps(config: TableCellTypeConfigProgressCircle): void {\n this._config = config\n this.setAction(config.action)\n this.fillBackground = coerceBooleanProperty(this._parseConfigValue(config.fillBackground))\n this.showText = coerceBooleanProperty(this._parseConfigValue(config.showText))\n this.hiddenOnEmpty = coerceBooleanProperty(this._parseConfigValue(config.hiddenOnEmpty))\n this.pending = coerceBooleanProperty(this._parseConfigValue(config.pending))\n this.tooltip = this._parseConfigValue(config.tooltip)\n\n this.tooltip = this._parseConfigValue(config.tooltip)\n if (this.tooltip) {\n this.tooltipClass = this._parseConfigValue(config.tooltipClass)\n this.tooltipPlacement = this._parseConfigValue(config.tooltipPlacement) || 'auto'\n this.tooltipContainer = this._parseConfigValue(config.tooltipContainer)\n this._tooltipDisabled = false\n } else {\n this._tooltipDisabled = true\n }\n\n this._title = this._parseConfigValue(config.titleAttr)\n this._srOnly = this._parseConfigValue(config.srOnly)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Optional\n} from '@angular/core'\nimport { Subject } from 'rxjs'\nimport { takeUntil } from 'rxjs/operators'\n\nimport { DatatableComponent } from '@theseam/ui-common/datatable'\nimport { TableComponent } from '@theseam/ui-common/table'\nimport { TableCellTypesHelpersService, TABLE_CELL_DATA } from '@theseam/ui-common/table-cell-type'\nimport type { TableCellData, TheSeamTableColumn } from '@theseam/ui-common/table-cell-type'\n\n\nimport { TableCellTypeConfigString, TableCellTypeStringConfigAction } from './table-cell-type-string-config'\n\nexport type StringTemplateType = 'default' | 'link' | 'link-external' | 'link-encrypted' | 'button'\n\n@Component({\n selector: 'seam-table-cell-type-string',\n templateUrl: './table-cell-type-string.component.html',\n styleUrls: ['./table-cell-type-string.component.scss'],\n host: { },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TableCellTypeStringComponent implements OnInit, OnDestroy {\n\n private readonly _ngUnsubscribe = new Subject()\n\n @Input()\n get value() { return this._value }\n set value(val: string | null | undefined) {\n this._value = val\n // TODO: This is temporary to test the feature and will be fixed when the\n // dynamic column data is fixed. The plan is to add a config toggle to\n // always enable and depending on performance it could try to decide on its\n // own based on content size.\n if (this.value && this.value.length > 30) {\n this.canPopover = true\n }\n }\n _value: string | null | undefined\n\n @Input()\n get config() { return this._config }\n set config(value: TableCellTypeConfigString | undefined | null) {\n this._config = value\n if (value) {\n this.setConfig(value)\n }\n }\n private _config: TableCellTypeConfigString | undefined | null\n\n _tplType: StringTemplateType = 'default'\n _link?: string\n _title?: string\n _queryParams?: { [k: string]: any }\n\n _style?: string\n _class?: string\n\n _buttonAction?: TableCellTypeStringConfigAction\n\n _tableCellData?: TableCellData<'string', TableCellTypeConfigString>\n _row?: any\n _rowIndex?: number\n _colData?: TheSeamTableColumn<'string', TableCellTypeConfigString>\n\n _download?: boolean\n _detectMimeContent?: boolean\n\n @Input()\n set title(value: string | undefined) { this._title = value }\n get title(): string | undefined { return this._title }\n\n @HostBinding('attr.title') get _titleAttr() { return this.title || this.value }\n\n @Input()\n set style(value: string | undefined) { this._style = value }\n get style(): string | undefined { return this._style }\n\n @HostBinding('attr.style') get _styleAttr() { return this.style }\n\n @Input()\n set classAttr(value: string | undefined) { this._class = value }\n get classAttr(): string | undefined { return this._class }\n\n @HostBinding('class') get _classAttr() { return this.classAttr }\n\n canPopover = false\n\n constructor(\n private readonly _cdf: ChangeDetectorRef,\n private readonly _tableCellTypeHelpers: TableCellTypesHelpersService,\n @Optional() private _datatable?: DatatableComponent,\n @Optional() private _table?: TableComponent,\n @Optional() @Inject(TABLE_CELL_DATA) readonly _tableData?: TableCellData<'string', TableCellTypeConfigString>\n ) {\n const _data = _tableData\n this._tableCellData = _tableData\n\n this._row = _data && _data.row\n this._rowIndex = _data && _data.rowIndex\n\n this.value = _data && _data.value\n this._colData = _data && _data.colData\n if (_data && _data.colData && (<any>_data.colData).cellTypeConfig) {\n this.config = (<any>_data.colData).cellTypeConfig\n }\n }\n\n ngOnInit() {\n const _data = this._tableData\n if (_data) {\n _data.changed\n .pipe(takeUntil(this._ngUnsubscribe))\n .subscribe(v => {\n if (v.changes.hasOwnProperty('value')) {\n this.value = v.changes.value.currentValue\n this._cdf.markForCheck()\n }\n\n if (v.changes.hasOwnProperty('colData')) {\n const colData = v.changes.colData.currentValue\n if (colData && colData.cellTypeConfig !== this.config) {\n this.config = colData.cellTypeConfig\n } else {\n this.config = undefined\n }\n this._cdf.markForCheck()\n } else {\n if (v.changes.hasOwnProperty('row')) {\n this.config = this.config\n this._cdf.markForCheck()\n }\n }\n })\n }\n }\n\n ngOnDestroy() {\n this._ngUnsubscribe.next()\n this._ngUnsubscribe.complete()\n }\n\n public setAction(configAction?: TableCellTypeStringConfigAction) {\n let newTplType: StringTemplateType = 'default'\n let link: string | undefined\n let download: boolean = false\n let detectMimeContent = false\n let queryParams: { [k: string]: any } | undefined\n\n if (configAction) {\n if (configAction.type === 'link') {\n link = this._parseConfigValue(configAction.link)\n if (link !== undefined && link !== null) {\n newTplType = this._parseConfigValue(configAction.asset) ? 'link-encrypted' : 'link'\n download = !!this._parseConfigValue(configAction.download)\n detectMimeContent = !!this._parseConfigValue(configAction.detectMimeContent)\n queryParams = this._parseConfigValue(configAction.queryParams)\n }\n } else if (configAction.type === 'modal') {\n newTplType = 'button'\n this._buttonAction = configAction\n }\n }\n\n this._tplType = newTplType\n this._link = link\n this._download = download\n this._detectMimeContent = detectMimeContent\n this._queryParams = queryParams\n }\n\n public setConfig(config?: TableCellTypeConfigString): void {\n if (!config) { return }\n\n const title = this._parseConfigValue(config.titleAttr)\n if (title) {\n this.title = title\n }\n\n const style = this._parseConfigValue(config.styleAttr)\n if (style) {\n this.style = style\n }\n\n const classAttr = this._parseConfigValue(config.classAttr)\n if (classAttr) {\n this.classAttr = classAttr\n }\n\n this.setAction(config.action)\n }\n\n private _parseConfigValue(val: any) {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(val, this._tableCellData)\n return this._tableCellTypeHelpers.parseValueProp(val, contextFn)\n }\n\n _doButtonAction() {\n if (this._buttonAction && this._buttonAction.type === 'modal') {\n const contextFn = () => this._tableCellTypeHelpers.getValueContext(this.value, this._tableCellData)\n this._tableCellTypeHelpers.handleModalAction(this._buttonAction, contextFn)\n .subscribe(\n r => {},\n err => console.error(err),\n () => this._actionRefreshRequest()\n )\n }\n }\n\n private _actionRefreshRequest() {\n if (this._datatable) {\n this._datatable.triggerActionRefreshRequest()\n } else if (this._table) {\n this._table.triggerActionRefreshRequest()\n }\n }\n\n}\n","import { ITableCellTypeManifestProvider, TABLE_CELL_TYPE_MANIFEST } from '@theseam/ui-common/table-cell-type'\n\nimport { TableCellTypeCurrencyComponent } from './table-cell-type-currency/table-cell-type-currency.component'\nimport { TableCellTypeDateComponent } from './table-cell-type-date/table-cell-type-date.component'\nimport { TableCellTypeDecimalComponent } from './table-cell-type-decimal/table-cell-type-decimal.component'\nimport { TableCellTypeIconComponent } from './table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypeIntegerComponent } from './table-cell-type-integer/table-cell-type-integer.component'\nimport { TableCellTypePhoneComponent } from './table-cell-type-phone/table-cell-type-phone.component'\n// tslint:disable-next-line: max-line-length\nimport { TableCellTypeProgressCircleIconComponent } from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component'\nimport { TableCellTypeProgressCircleComponent } from './table-cell-type-progress-circle/table-cell-type-progress-circle.component'\nimport { TableCellTypeStringComponent } from './table-cell-type-string/table-cell-type-string.component'\n\nexport const TABLE_CELL_TYPE_MANIFEST_STRING: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'string',\n component: TableCellTypeStringComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_CURRENCY: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'currency',\n component: TableCellTypeCurrencyComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_DECIMAL: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'decimal',\n component: TableCellTypeDecimalComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_INTEGER: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'integer',\n component: TableCellTypeIntegerComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_DATE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'date',\n component: TableCellTypeDateComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_ICON: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'icon',\n component: TableCellTypeIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_IMAGE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'image',\n component: TableCellTypeIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'progress-circle',\n component: TableCellTypeProgressCircleComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'progress-circle-icon',\n component: TableCellTypeProgressCircleIconComponent\n },\n multi: true\n}\n\nexport const TABLE_CELL_TYPE_MANIFEST_PHONE: ITableCellTypeManifestProvider = {\n provide: TABLE_CELL_TYPE_MANIFEST,\n useValue: {\n name: 'phone',\n component: TableCellTypePhoneComponent\n },\n multi: true\n}\n","import { PortalModule } from '@angular/cdk/portal'\nimport { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { RouterModule } from '@angular/router'\n\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap'\n\nimport { TheSeamAssetReaderModule } from '@theseam/ui-common/asset-reader'\nimport { TheSeamIconModule } from '@theseam/ui-common/icon'\nimport { TheSeamPopoverModule } from '@theseam/ui-common/popover'\nimport { TheSeamProgressModule } from '@theseam/ui-common/progress'\nimport { TheSeamSharedModule } from '@theseam/ui-common/shared'\nimport { TheSeamTableCellTypeModule } from '@theseam/ui-common/table-cell-type'\nimport { TheSeamTelInputModule } from '@theseam/ui-common/tel-input'\n\nimport { TableCellTypeCurrencyComponent } from './table-cell-type-currency/table-cell-type-currency.component'\nimport { TableCellTypeDateComponent } from './table-cell-type-date/table-cell-type-date.component'\nimport { TableCellTypeDecimalComponent } from './table-cell-type-decimal/table-cell-type-decimal.component'\nimport { TableCellTypeIconComponent } from './table-cell-type-icon/table-cell-type-icon.component'\nimport { TableCellTypeIntegerComponent } from './table-cell-type-integer/table-cell-type-integer.component'\nimport { TableCellTypePhoneComponent } from './table-cell-type-phone/table-cell-type-phone.component'\n// tslint:disable-next-line: max-line-length\nimport { TableCellTypeProgressCircleIconComponent } from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component'\nimport { TableCellTypeProgressCircleComponent } from './table-cell-type-progress-circle/table-cell-type-progress-circle.component'\nimport { TableCellTypeStringComponent } from './table-cell-type-string/table-cell-type-string.component'\n\nimport {\n TABLE_CELL_TYPE_MANIFEST_CURRENCY,\n TABLE_CELL_TYPE_MANIFEST_DATE,\n TABLE_CELL_TYPE_MANIFEST_DECIMAL,\n TABLE_CELL_TYPE_MANIFEST_ICON,\n TABLE_CELL_TYPE_MANIFEST_IMAGE,\n TABLE_CELL_TYPE_MANIFEST_INTEGER,\n TABLE_CELL_TYPE_MANIFEST_PHONE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON,\n TABLE_CELL_TYPE_MANIFEST_STRING\n} from './table-cell-type-manifests'\n\nconst cellTypeComponents = [\n TableCellTypeStringComponent,\n TableCellTypeCurrencyComponent,\n TableCellTypeDateComponent,\n TableCellTypeDecimalComponent,\n TableCellTypeIconComponent,\n TableCellTypeIntegerComponent,\n TableCellTypeProgressCircleComponent,\n TableCellTypeProgressCircleIconComponent,\n TableCellTypePhoneComponent\n]\n\nconst cellTypeProviders = [\n TABLE_CELL_TYPE_MANIFEST_STRING,\n TABLE_CELL_TYPE_MANIFEST_INTEGER,\n TABLE_CELL_TYPE_MANIFEST_CURRENCY,\n TABLE_CELL_TYPE_MANIFEST_DECIMAL,\n TABLE_CELL_TYPE_MANIFEST_DATE,\n TABLE_CELL_TYPE_MANIFEST_ICON,\n TABLE_CELL_TYPE_MANIFEST_IMAGE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE,\n TABLE_CELL_TYPE_MANIFEST_PROGRESS_CIRCLE_ICON,\n TABLE_CELL_TYPE_MANIFEST_PHONE\n]\n\n@NgModule({\n declarations: [\n ...cellTypeComponents\n ],\n imports: [\n CommonModule,\n NgbTooltipModule,\n RouterModule,\n TheSeamSharedModule,\n TheSeamIconModule,\n PortalModule,\n TheSeamPopoverModule,\n TheSeamProgressModule,\n TheSeamTelInputModule,\n TheSeamAssetReaderModule,\n TheSeamTableCellTypeModule\n ],\n providers: [\n ...cellTypeProviders\n ],\n exports: [\n ...cellTypeComponents\n ],\n entryComponents: [\n ...cellTypeComponents\n ]\n})\nexport class TheSeamTableCellTypesModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {TableCellTypeConfigProgressCircleIcon as ɵb} from './table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config';\nexport {TableCellTypeConfigProgressCircle as ɵa} from './table-cell-type-progress-circle/table-cell-type-progress-circle-config';"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;MAmBa,8BAA8B;;;IAazC,YACU,IAAuB,EACvB,qBAAmD,EACtB,UAAmE;;QAFhG,SAAI,GAAJ,IAAI,CAAmB;QACvB,0BAAqB,GAArB,qBAAqB,CAA8B;QAb5C,mBAAc,GAAG,IAAI,OAAO,EAAE,CAAA;QAgB7C,MAAM,SAAS,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QAC1E,IAAI,CAAC,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,CAAA;QACrC,IAAI,CAAC,QAAQ,GAAG,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAA;QAC/C,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,SAAS,CAAC,OAAO,CAAA;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,cAAc,0CAAE,SAAS,EAAE,SAAS,CAAC,IAAI,OAAO,CAAA;;QAG5G,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,OAAO;iBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpC,SAAS,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;oBAC1E,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;gBAED,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACvC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAA;oBAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;aACF,CAAC,CAAA;SACL;KACF;IAED,QAAQ,MAAK;IAEb,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAA;KAC/B;IAEO,eAAe,CAAC,YAAkB,EAAE,SAAkE;;QAC1G,MAAM,MAAM,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,cAAc,CAAA;QACjD,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAC;YAC/D,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAA;QACzF,MAAM,cAAc,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;QAE9C,IAAI,CAAC,cAAc,EAAE;YACnB,IAAI,cAAc,EAAE;;gBAElB,OAAO,EAAE,CAAA;aACV;iBAAM;;gBAEL,YAAY,GAAG,CAAC,CAAA;aACjB;SACF;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE,SAAS,CAAC,IAAI,OAAO,CAAA;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE,SAAS,CAAC,IAAI,GAAG,CAAA;QAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,EAAE,SAAS,CAAC,IAAI,KAAK,CAAA;QAErF,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QACzF,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QAC3F,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QAC3F,MAAM,MAAM,GAAG,GAAI,gBAAiB,IAAK,iBAAkB,IAAK,iBAAkB,EAAE,CAAA;QAEpF,OAAO,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAE,CAAA;KAC/E;IAEO,iBAAiB,CAAC,GAAS,EAAE,SAAkE;QACrG,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAClF,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;KACjE;;;YAvFF,SAAS,SAAC;gBACT,QAAQ,EAAE,+BAA+B;gBACzC,qPAAwD;gBAExD,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;YAjBiC,iBAAiB;YAI1C,4BAA4B;4CA8BhC,QAAQ,YAAI,MAAM,SAAC,eAAe;;;oBAZpC,KAAK;;;MCRK,0BAA0B;IAOrC,YACU,IAAuB,EACM,UAA2D;QADxF,SAAI,GAAJ,IAAI,CAAmB;QANhB,mBAAc,GAAG,IAAI,OAAO,EAAE,CAAA;QAS7C,MAAM,KAAK,GAAG,UAAU,CAAA;QAExB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAA;QACjC,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAA;QAE3G,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,OAAO;iBACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpC,SAAS,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBACrC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAA;oBACzC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;gBAED,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACvC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAA;oBAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;wBAC7C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;qBAC7B;yBAAM;wBACL,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;qBACxB;oBACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;aACF,CAAC,CAAA;SACL;KACF;IAED,QAAQ,MAAM;IAEd,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAA;KAC/B;;;YAjDF,SAAS,SAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,uKAAoD;gBAEpD,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;YAdiC,iBAAiB;4CAwB9C,QAAQ,YAAI,MAAM,SAAC,eAAe;;;oBALpC,KAAK;qBACL,KAAK;;;MCFK,6BAA6B;IAWxC,YACU,IAAuB,EACvB,qBAAmD,EACtB,UAAiE;;QAF9F,SAAI,GAAJ,IAAI,CAAmB;QACvB,0BAAqB,GAArB,qBAAqB,CAA8B;QAX5C,mBAAc,GAAG,IAAI,OAAO,EAAE,CAAA;QAc7C,MAAM,SAAS,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QACzE,IAAI,CAAC,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,CAAA;QACrC,IAAI,CAAC,QAAQ,GAAG,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAA;QAC/C,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,SAAS,CAAC,OAAO,CAAA;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,cAAc,0CAAE,SAAS,EAAE,SAAS,CAAC,IAAI,OAAO,CAAA;QAE5G,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,OAAO;iBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpC,SAAS,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;oBACzE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;gBAED,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACvC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAA;oBAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;aACF,CAAC,CAAA;SACL;KACF;IAED,QAAQ,MAAK;IAEb,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAA;KAC/B;IAEO,cAAc,CAAC,YAAkB,EAAE,SAA4E;;QACrH,MAAM,MAAM,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,cAAc,CAAA;QACjD,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAC;YAC/D,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAA;QACzF,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC;YAC5D,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAA;QACvF,MAAM,cAAc,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;;QAG9C,IAAI,CAAC,cAAc,IAAI,aAAa,EAAE;YACpC,IAAI,cAAc,EAAE;;gBAElB,OAAO,EAAE,CAAA;aACV;iBAAM;;gBAEL,YAAY,GAAG,CAAC,CAAA;aACjB;SACF;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE,SAAS,CAAC,IAAI,OAAO,CAAA;QAC3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QACzF,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QAC3F,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QAC3F,MAAM,MAAM,GAAG,GAAI,gBAAiB,IAAK,iBAAkB,IAAK,iBAAkB,EAAE,CAAA;QAEpF,OAAO,aAAa,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAA;KACjF;IAEO,iBAAiB,CAAC,GAAS,EAAE,SAAgE;QACnG,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAClF,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;KACjE;;;YApFF,SAAS,SAAC;gBACT,QAAQ,EAAE,8BAA8B;gBACxC,qPAAuD;gBAEvD,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;YAhBiC,iBAAiB;YAI1C,4BAA4B;4CA2BhC,QAAQ,YAAI,MAAM,SAAC,eAAe;;;oBAVpC,KAAK;;;MCQK,0BAA0B;IAgErC,YACU,IAAuB,EACvB,qBAAmD,EACvC,UAA+B,EAC/B,MAAuB,EACN,UAA2D;QAJxF,SAAI,GAAJ,IAAI,CAAmB;QACvB,0BAAqB,GAArB,qBAAqB,CAA8B;QACvC,eAAU,GAAV,UAAU,CAAqB;QAC/B,WAAM,GAAN,MAAM,CAAiB;QAlE5B,mBAAc,GAAG,IAAI,OAAO,EAAE,CAAA;QAqC/C,aAAQ,GAAqB,SAAS,CAAA;QAWtC,qBAAgB,GAAY,IAAI,CAAA;QAYU,iBAAY,GAAG,KAAK,CAAA;QAS5D,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;;SAEzB;;;;QAKD,MAAM,KAAK,GAAG,UAAU,CAAA;QACxB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAA;QAEhC,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAA;QAExC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAA;QACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAA;QACtC,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,IAAU,KAAK,CAAC,OAAQ,CAAC,cAAc,EAAE;YACjE,IAAI,CAAC,MAAM,GAAS,KAAK,CAAC,OAAQ,CAAC,cAAc,CAAA;SAClD;QAED,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,OAAO;iBACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpC,SAAS,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBACrC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAA;oBACzC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAA;oBAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;gBAED,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACvC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAA;oBAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,CAAC,MAAM,EAAE;wBACrD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc,CAAA;qBACrC;yBAAM;wBACL,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;qBACxB;oBACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;qBAAM;oBACL,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;wBACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;wBACzB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;qBACzB;iBACF;aACF,CAAC,CAAA;SACL;KACF;IAjHD,IACI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAA,EAAE;IAClC,IAAI,KAAK,CAAC,KAAgC;QACxC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,KAAK,CAAA;KAC1D;IAGD,IACI,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAA,EAAE;IACpC,IAAI,MAAM,CAAC,KAAiD;QAC1D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACzD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACzD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAA;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;YACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;gBAC/D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAA;gBACjF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;gBACvE,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;aAC9B;iBAAM;gBACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;aAC7B;SACF;KACF;IAsFD,QAAQ,MAAM;IAEd,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAA;KAC/B;IAEM,SAAS,CAAC,YAA4C;QAC3D,IAAI,UAAU,GAAqB,SAAS,CAAA;QAC5C,IAAI,IAAwB,CAAA;QAC5B,IAAI,QAAQ,GAAY,KAAK,CAAA;QAC7B,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAC7B,IAAI,MAA0B,CAAA;QAC9B,IAAI,WAA6C,CAAA;QAEjD,IAAI,YAAY,EAAE;YAChB,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE;gBAChC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBAChD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE;oBACvC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,CAAC;0BACnD,gBAAgB;0BAChB,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,eAAe,GAAG,MAAM,CAAA;oBAC5E,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;oBAC1D,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;oBAC5E,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;oBACpD,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;iBAC/D;aACF;iBAAM,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE;gBACxC,UAAU,GAAG,QAAQ,CAAA;gBACrB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;aAClC;SACF;QAED,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;KAChC;IAEO,iBAAiB,CAAC,GAAQ;QAChC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC5F,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;KACjE;IAED,eAAe;QACb,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE;YAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;YACnG,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;iBACxE,SAAS,CACR,CAAC,OAAM,EACP,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EACzB,MAAM,IAAI,CAAC,qBAAqB,EAAE,CACnC,CAAA;SACJ;KACF;IAEO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAA;SAC9C;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAA;SAC1C;KACF;;;YA7LF,SAAS,SAAC;gBACT,QAAQ,EAAE,2BAA2B;gBACrC,wmIAAoD;gBAEpD,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;YA3BC,iBAAiB;YAeV,4BAA4B;YAH5B,kBAAkB,uBAmFtB,QAAQ;YAjFJ,cAAc,uBAkFlB,QAAQ;4CACR,QAAQ,YAAI,MAAM,SAAC,eAAe;;;oBAjEpC,KAAK;qBAQL,KAAK;2BAkDL,WAAW,SAAC,2BAA2B;;;MC1E7B,6BAA6B;IAWxC,YACU,IAAuB,EACvB,qBAAmD,EACtB,UAAiE;;QAF9F,SAAI,GAAJ,IAAI,CAAmB;QACvB,0BAAqB,GAArB,qBAAqB,CAA8B;QAX5C,mBAAc,GAAG,IAAI,OAAO,EAAE,CAAA;QAc7C,MAAM,SAAS,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QACzE,IAAI,CAAC,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,CAAA;QACrC,IAAI,CAAC,QAAQ,GAAG,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAA;QAC/C,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,SAAS,CAAC,OAAO,CAAA;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,cAAc,0CAAE,SAAS,EAAE,SAAS,CAAC,IAAI,OAAO,CAAA;QAE5G,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,OAAO;iBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpC,SAAS,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA;oBACzE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;gBAED,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACvC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAA;oBAC7C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;aACF,CAAC,CAAA;SACL;KACF;IAED,QAAQ,MAAK;IAEb,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAA;KAC/B;IAEO,cAAc,CAAC,YAAkB,EAAE,SAA4E;;QACrH,MAAM,MAAM,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,cAAc,CAAA;QACjD,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAC;YAC/D,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAA;QACzF,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC;YAC5D,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAA;QACvF,MAAM,cAAc,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;;QAG9C,IAAI,CAAC,cAAc,IAAI,aAAa,EAAE;YACpC,IAAI,cAAc,EAAE;;gBAElB,OAAO,EAAE,CAAA;aACV;iBAAM;;gBAEL,YAAY,GAAG,CAAC,CAAA;aACjB;SACF;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE,SAAS,CAAC,IAAI,OAAO,CAAA;QAC3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAA;QACzF,MAAM,MAAM,GAAG,GAAI,gBAAiB,MAAM,CAAA;QAE1C,OAAO,aAAa,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAE,GAAG,YAAY,CAAA;KAClF;IAEO,iBAAiB,CAAC,GAAS,EAAE,SAAgE;QACnG,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAClF,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;KACjE;;;YAlFF,SAAS,SAAC;gBACT,QAAQ,EAAE,8BAA8B;gBACxC,qPAAuD;gBAEvD,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;YAhBiC,iBAAiB;YAI1C,4BAA4B;4CA2BhC,QAAQ,YAAI,MAAM,SAAC,eAAe;;;oBAVpC,KAAK;;;MCJK,2BAA2B;IAatC,YACU,IAAuB,EACM,UAA6D;QAD1F,SAAI,GAAJ,IAAI,CAAmB;;QAXhB,mBAAc,GAAG,IAAI,OAAO,EAAE,CAAA;;QAG/C,YAAO,GAAmC,mCAAmC,CAAA;QAW3E,MAAM,KAAK,GAAG,UAAU,CAAA;QAExB,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAA;QACjC,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE;YACjH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,MAAwC,CAAA;SACpF;QAED,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,OAAO;iBACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpC,SAAS,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBACrC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAA;oBACzC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;gBAED,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACvC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAA;oBAC9C,IAAI,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAAC;wBACnD,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC;wBAC7C,OAAO,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAC7C;wBACA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,CAAA;qBAC5C;yBAAM;wBACL,IAAI,CAAC,MAAM,GAAG,mCAAmC,CAAA;qBAClD;oBACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;aACF,CAAC,CAAA;SACL;KACF;IAtCD,IACI,MAAM,CAAC,KAAqC,IAAI,IAAI,CAAC,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAA,EAAE;IACnG,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAA,EAAE;IAsCpC,QAAQ,MAAM;IAEd,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAA;KAC/B;;;YA5DF,SAAS,SAAC;gBACT,QAAQ,EAAE,4BAA4B;gBACtC,qUAAqD;gBAErD,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;YAjBiC,iBAAiB;4CAiC9C,QAAQ,YAAI,MAAM,SAAC,eAAe;;;oBAPpC,KAAK;qBACL,KAAK;;;MCXK,wCAAwC;IAanD,YACU,IAAuB,EACvB,qBAAmD,EACtB,UAAyF;QAFtH,SAAI,GAAJ,IAAI,CAAmB;QACvB,0BAAqB,GAArB,qBAAqB,CAA8B;QAb5C,mBAAc,GAAG,IAAI,OAAO,EAAE,CAAA;QAQ/C,gBAAW,GAAY,KAAK,CAAA;QAQ1B,MAAM,SAAS,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,KAAK,GAAG,SAAS,IAAI,SAAS,CAAC,KAAK,CAAA;QACzC,IAAI,CAAC,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC,GAAG,CAAA;QACrC,IAAI,CAAC,QAAQ,GAAG,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAA;QAC/C,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,SAAS,CAAC,OAAO,CAAA;QAE7C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAExB,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,OAAO;iBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpC,SAAS,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBACrC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAA;oBACzC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACxB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;gBAED,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACvC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAA;oBAC7C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;oBACxB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;qBAAM;oBACL,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;wBACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;wBACxB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;qBACzB;iBACF;aACF,CAAC,CAAA;SACL;KACF;IAEO,QAAQ,CAAC,SAAwF;QACvG,IAAI,SAAS;YACX,SAAS,CAAC,OAAO;YACjB,SAAS,CAAC,OAAO,CAAC,cAAc;YAChC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW;YAC5C,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI;YACrC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC;YAC/E,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;YACxE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;YACpF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;SACnG;KACJ;IAEO,iBAAiB,CAAC,GAAQ,EAAE,SAAwF;QAC1H,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAClF,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;KACjE;IAED,QAAQ,MAAM;IAEd,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAA;KAC/B;;;YA/EF,SAAS,SAAC;gBACT,QAAQ,EAAE,2CAA2C;gBACrD,udAAoE;gBAEpE,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;YAfiC,iBAAiB;YAK1C,4BAA4B;4CA2BhC,QAAQ,YAAI,MAAM,SAAC,eAAe;;;oBAZpC,KAAK;;;MCSK,oCAAoC;IAqC/C,YACU,IAAuB,EACvB,qBAAmD,EACvC,UAA+B,EAC/B,MAAuB,EACN,UAAgF;QAJ7G,SAAI,GAAJ,IAAI,CAAmB;QACvB,0BAAqB,GAArB,qBAAqB,CAA8B;QACvC,eAAU,GAAV,UAAU,CAAqB;QAC/B,WAAM,GAAN,MAAM,CAAiB;QAvC5B,mBAAc,GAAG,IAAI,OAAO,EAAE,CAAA;QAO/C,mBAAc,GAAY,KAAK,CAAA;QAC/B,aAAQ,GAAY,KAAK,CAAA;QACzB,kBAAa,GAAY,IAAI,CAAA;QAC7B,YAAO,GAAY,KAAK,CAAA;QAKxB,qBAAgB,GAAY,KAAK,CAAA;QAMjC,eAAU,GAAG,EAAE,CAAA;QACf,aAAQ,GAAqB,SAAS,CAAA;QAWI,iBAAY,GAAG,KAAK,CAAA;QAS5D,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;SACzB;QAED,MAAM,SAAS,GAAG,UAAU,CAAA;QAC5B,IAAI,CAAC,cAAc,GAAG,UAAU,CAAA;QAEhC,IAAI,CAAC,KAAK,GAAG,SAAS,IAAI,oBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAC/D,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,SAAS,CAAC,OAAO,CAAA;QAE7C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;YAC/C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;SAC1D;QAED,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,OAAO;iBACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpC,SAAS,CAAC,CAAC;;gBACV,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBACrC,IAAI,CAAC,KAAK,GAAG,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;oBAC/D,IAAI,IAAI,CAAC,OAAO,EAAE;wBAChB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;qBAC3C;oBACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;gBAED,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACvC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAA;oBAC7C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE;wBAC/C,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;qBAC1D;oBACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;qBAAM;oBACL,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;wBACnC,IAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,cAAc,EAAE;4BAChC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;4BACzD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;yBACzB;qBACF;iBACF;aACF,CAAC,CAAA;SACL;KACF;IAED,QAAQ,MAAM;IAEd,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAA;KAC/B;IAEO,iBAAiB,CAAC,GAAQ;QAChC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC5F,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;KACjE;IAEM,SAAS,CAAC,YAAsD;QACrE,IAAI,UAAU,GAAqB,SAAS,CAAA;QAC5C,IAAI,IAAwB,CAAA;QAC5B,IAAI,QAAQ,GAAY,KAAK,CAAA;QAC7B,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAC7B,IAAI,MAA0B,CAAA;QAC9B,IAAI,WAA6C,CAAA;QAEjD,IAAI,YAAY,EAAE;YAChB,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE;gBAChC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBAChD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE;oBACvC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,CAAC;0BACnD,gBAAgB;0BAChB,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,eAAe,GAAG,MAAM,CAAA;oBAC5E,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;oBAC1D,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;oBAC5E,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;oBACpD,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;iBAC/D;aACF;iBAAM,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE;gBACxC,UAAU,GAAG,QAAQ,CAAA;gBACrB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;aAClC;SACF;QAED,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAA;QAC3C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;KAChC;IAEO,uBAAuB,CAAC,MAAyC;QACvE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC7B,IAAI,CAAC,cAAc,GAAG,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAA;QAC1F,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC9E,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;QACxF,IAAI,CAAC,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QAC5E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAErD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YAC/D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAA;YACjF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAA;YACvE,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAA;SAC9B;aAAM;YACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;SAC7B;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;KACrD;IAED,eAAe;QACb,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE;YAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;YACnG,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;iBACxE,SAAS,CACR,CAAC,OAAM,EACP,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EACzB,MAAM,IAAI,CAAC,qBAAqB,EAAE,CACnC,CAAA;SACJ;KACF;IAEO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAA;SAC9C;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAA;SAC1C;KACF;;;YArLF,SAAS,SAAC;gBACT,QAAQ,EAAE,sCAAsC;gBAChD,okFAA+D;gBAE/D,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;YAzBC,iBAAiB;YAcV,4BAA4B;YAF5B,kBAAkB,uBAsDtB,QAAQ;YArDJ,cAAc,uBAsDlB,QAAQ;4CACR,QAAQ,YAAI,MAAM,SAAC,eAAe;;;oBAtCpC,KAAK;2BA+BL,WAAW,SAAC,2BAA2B;;;MCjC7B,4BAA4B;IAkEvC,YACmB,IAAuB,EACvB,qBAAmD,EAChD,UAA+B,EAC/B,MAAuB,EACG,UAA+D;QAJ5F,SAAI,GAAJ,IAAI,CAAmB;QACvB,0BAAqB,GAArB,qBAAqB,CAA8B;QAChD,eAAU,GAAV,UAAU,CAAqB;QAC/B,WAAM,GAAN,MAAM,CAAiB;QACG,eAAU,GAAV,UAAU,CAAqD;QArE9F,mBAAc,GAAG,IAAI,OAAO,EAAE,CAAA;QA0B/C,aAAQ,GAAuB,SAAS,CAAA;QAoCxC,eAAU,GAAG,KAAK,CAAA;QAShB,MAAM,KAAK,GAAG,UAAU,CAAA;QACxB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAA;QAEhC,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,CAAA;QAC9B,IAAI,CAAC,SAAS,GAAG,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAA;QAExC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,CAAA;QACjC,IAAI,CAAC,QAAQ,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAA;QACtC,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,IAAU,KAAK,CAAC,OAAQ,CAAC,cAAc,EAAE;YACjE,IAAI,CAAC,MAAM,GAAS,KAAK,CAAC,OAAQ,CAAC,cAAc,CAAA;SAClD;KACF;IAhFD,IACI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAM,CAAA,EAAE;IAClC,IAAI,KAAK,CAAC,GAA8B;QACtC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;;;;;QAKjB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE;YACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;SACvB;KACF;IAGD,IACI,MAAM,KAAK,OAAO,IAAI,CAAC,OAAO,CAAA,EAAE;IACpC,IAAI,MAAM,CAAC,KAAmD;QAC5D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACpB,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;SACtB;KACF;IAqBD,IACI,KAAK,CAAC,KAAyB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA,EAAE;IAC5D,IAAI,KAAK,KAAyB,OAAO,IAAI,CAAC,MAAM,CAAA,EAAE;IAEtD,IAA+B,UAAU,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAA,EAAE;IAE/E,IACI,KAAK,CAAC,KAAyB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA,EAAE;IAC5D,IAAI,KAAK,KAAyB,OAAO,IAAI,CAAC,MAAM,CAAA,EAAE;IAEtD,IAA+B,UAAU,KAAK,OAAO,IAAI,CAAC,KAAK,CAAA,EAAE;IAEjE,IACI,SAAS,CAAC,KAAyB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA,EAAE;IAChE,IAAI,SAAS,KAAyB,OAAO,IAAI,CAAC,MAAM,CAAA,EAAE;IAE1D,IAA0B,UAAU,KAAK,OAAO,IAAI,CAAC,SAAS,CAAA,EAAE;IAwBhE,QAAQ;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAA;QAC7B,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,OAAO;iBACV,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpC,SAAS,CAAC,CAAC;gBACV,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;oBACrC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAA;oBACzC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;gBAED,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;oBACvC,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAA;oBAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,CAAC,MAAM,EAAE;wBACrD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,cAAc,CAAA;qBACrC;yBAAM;wBACL,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;qBACxB;oBACD,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;iBACzB;qBAAM;oBACL,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;wBACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;wBACzB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAA;qBACzB;iBACF;aACF,CAAC,CAAA;SACL;KACF;IAED,WAAW;QACT,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;QAC1B,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAA;KAC/B;IAEM,SAAS,CAAC,YAA8C;QAC7D,IAAI,UAAU,GAAuB,SAAS,CAAA;QAC9C,IAAI,IAAwB,CAAA;QAC5B,IAAI,QAAQ,GAAY,KAAK,CAAA;QAC7B,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAC7B,IAAI,WAA6C,CAAA;QAEjD,IAAI,YAAY,EAAE;YAChB,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE;gBAChC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBAChD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE;oBACvC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,gBAAgB,GAAG,MAAM,CAAA;oBACnF,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;oBAC1D,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAA;oBAC5E,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;iBAC/D;aACF;iBAAM,IAAI,YAAY,CAAC,IAAI,KAAK,OAAO,EAAE;gBACxC,UAAU,GAAG,QAAQ,CAAA;gBACrB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAA;aAClC;SACF;QAED,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,kBAAkB,GAAG,iBAAiB,CAAA;QAC3C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;KAChC;IAEM,SAAS,CAAC,MAAkC;QACjD,IAAI,CAAC,MAAM,EAAE;YAAE,OAAM;SAAE;QAEvB,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;SACnB;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;SACnB;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC1D,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;SAC3B;QAED,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;KAC9B;IAEO,iBAAiB,CAAC,GAAQ;QAChC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;QAC5F,OAAO,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;KACjE;IAED,eAAe;QACb,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,OAAO,EAAE;YAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;YACnG,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC;iBACxE,SAAS,CACR,CAAC,OAAM,EACP,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EACzB,MAAM,IAAI,CAAC,qBAAqB,EAAE,CACnC,CAAA;SACJ;KACF;IAEO,qBAAqB;QAC3B,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,2BAA2B,EAAE,CAAA;SAC9C;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,IAAI,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAA;SAC1C;KACF;;;YAxMF,SAAS,SAAC;gBACT,QAAQ,EAAE,6BAA6B;gBACvC,gqDAAsD;gBAEtD,IAAI,EAAE,EAAG;gBACT,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;YA5BC,iBAAiB;YAcV,4BAA4B;YAF5B,kBAAkB,uBAsFtB,QAAQ;YArFJ,cAAc,uBAsFlB,QAAQ;4CACR,QAAQ,YAAI,MAAM,SAAC,eAAe;;;oBAnEpC,KAAK;qBAcL,KAAK;oBA4BL,KAAK;yBAIL,WAAW,SAAC,YAAY;oBAExB,KAAK;yBAIL,WAAW,SAAC,YAAY;wBAExB,KAAK;yBAIL,WAAW,SAAC,OAAO;;;WC9EV;IACR,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,4BAA4B;;MAJ9B,+BAA+B,GAAmC;IAC7E,OAAO,EAAE,wBAAwB;IACjC,QAAQ,IAGP;IACD,KAAK,EAAE,IAAI;EACZ;WAIW;IACR,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,8BAA8B;;MAJhC,iCAAiC,GAAmC;IAC/E,OAAO,EAAE,wBAAwB;IACjC,QAAQ,IAGP;IACD,KAAK,EAAE,IAAI;EACZ;WAIW;IACR,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,6BAA6B;;MAJ/B,gCAAgC,GAAmC;IAC9E,OAAO,EAAE,wBAAwB;IACjC,QAAQ,IAGP;IACD,KAAK,EAAE,IAAI;EACZ;WAIW;IACR,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,6BAA6B;;MAJ/B,gCAAgC,GAAmC;IAC9E,OAAO,EAAE,wBAAwB;IACjC,QAAQ,IAGP;IACD,KAAK,EAAE,IAAI;EACZ;WAIW;IACR,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,0BAA0B;;MAJ5B,6BAA6B,GAAmC;IAC3E,OAAO,EAAE,wBAAwB;IACjC,QAAQ,IAGP;IACD,KAAK,EAAE,IAAI;EACZ;WAIW;IACR,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,0BAA0B;;MAJ5B,6BAA6B,GAAmC;IAC3E,OAAO,EAAE,wBAAwB;IACjC,QAAQ,IAGP;IACD,KAAK,EAAE,IAAI;EACZ;WAIW;IACR,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,0BAA0B;;MAJ5B,8BAA8B,GAAmC;IAC5E,OAAO,EAAE,wBAAwB;IACjC,QAAQ,IAGP;IACD,KAAK,EAAE,IAAI;EACZ;WAIW;IACR,IAAI,EAAE,iBAAiB;IACvB,SAAS,EAAE,oCAAoC;;MAJtC,wCAAwC,GAAmC;IACtF,OAAO,EAAE,wBAAwB;IACjC,QAAQ,IAGP;IACD,KAAK,EAAE,IAAI;EACZ;WAIW;IACR,IAAI,EAAE,sBAAsB;IAC5B,SAAS,EAAE,wCAAwC;;MAJ1C,6CAA6C,GAAmC;IAC3F,OAAO,EAAE,wBAAwB;IACjC,QAAQ,IAGP;IACD,KAAK,EAAE,IAAI;EACZ;WAIW;IACR,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,2BAA2B;;MAJ7B,8BAA8B,GAAmC;IAC5E,OAAO,EAAE,wBAAwB;IACjC,QAAQ,IAGP;IACD,KAAK,EAAE,IAAI;;;AC7Db,MAAM,kBAAkB,GAAG;IACzB,4BAA4B;IAC5B,8BAA8B;IAC9B,0BAA0B;IAC1B,6BAA6B;IAC7B,0BAA0B;IAC1B,6BAA6B;IAC7B,oCAAoC;IACpC,wCAAwC;IACxC,2BAA2B;CAC5B,CAAA;AAED,MAAM,iBAAiB,GAAG;IACxB,+BAA+B;IAC/B,gCAAgC;IAChC,iCAAiC;IACjC,gCAAgC;IAChC,6BAA6B;IAC7B,6BAA6B;IAC7B,8BAA8B;IAC9B,wCAAwC;IACxC,6CAA6C;IAC7C,8BAA8B;CAC/B,CAAA;MA6BY,2BAA2B;;;YA3BvC,QAAQ,SAAC;gBACR,YAAY,EAAE;oBACZ,GAAG,kBAAkB;iBACtB;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,gBAAgB;oBAChB,YAAY;oBACZ,mBAAmB;oBACnB,iBAAiB;oBACjB,YAAY;oBACZ,oBAAoB;oBACpB,qBAAqB;oBACrB,qBAAqB;oBACrB,wBAAwB;oBACxB,0BAA0B;iBAC3B;gBACD,SAAS,EAAE;oBACT,GAAG,iBAAiB;iBACrB;gBACD,OAAO,EAAE;oBACP,GAAG,kBAAkB;iBACtB;gBACD,eAAe,EAAE;oBACf,GAAG,kBAAkB;iBACtB;aACF;;;AC1FD;;;;;;"}