@theseam/ui-common 0.3.9 → 0.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/theseam-ui-common-framework.umd.js +10 -3
- package/bundles/theseam-ui-common-framework.umd.js.map +1 -1
- package/bundles/theseam-ui-common-table-cell-types.umd.js +2 -5
- package/bundles/theseam-ui-common-table-cell-types.umd.js.map +1 -1
- package/esm2015/framework/side-nav/side-nav.component.js +11 -4
- package/esm2015/table-cell-types/table-cell-type-date/table-cell-type-date.component.js +3 -6
- package/fesm2015/theseam-ui-common-framework.js +10 -3
- package/fesm2015/theseam-ui-common-framework.js.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-types.js +2 -5
- package/fesm2015/theseam-ui-common-table-cell-types.js.map +1 -1
- package/framework/theseam-ui-common-framework.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -116,11 +116,8 @@ class TableCellTypeDateComponent {
|
|
|
116
116
|
}
|
|
117
117
|
if (v.changes.hasOwnProperty('colData')) {
|
|
118
118
|
const colData = v.changes.colData.currentValue;
|
|
119
|
-
if (colData && colData.format !== this.format) {
|
|
120
|
-
this.format = colData.format;
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
this.format = undefined;
|
|
119
|
+
if (colData && colData.cellTypeConfig && colData.cellTypeConfig.format !== this.format) {
|
|
120
|
+
this.format = colData.cellTypeConfig.format;
|
|
124
121
|
}
|
|
125
122
|
this._cdf.markForCheck();
|
|
126
123
|
}
|
|
@@ -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'\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":"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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.cellTypeConfig && colData.cellTypeConfig.format !== this.format) {\n this.format = colData.cellTypeConfig.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 { 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":"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"}
|