novo-elements 5.10.0 → 5.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/novo-elements.umd.js +99 -35
- package/bundles/novo-elements.umd.js.map +1 -1
- package/bundles/novo-elements.umd.min.js +1 -1
- package/bundles/novo-elements.umd.min.js.map +1 -1
- package/elements/data-table/cell-headers/data-table-checkbox-header-cell.component.d.ts +2 -0
- package/elements/data-table/data-table.component.d.ts +5 -0
- package/elements/date-picker/DatePicker.d.ts +1 -0
- package/elements/date-picker/DatePicker.scss +7 -1
- package/elements/date-picker/DatePickerInput.d.ts +6 -0
- package/elements/date-time-picker/DateTimePicker.d.ts +1 -0
- package/elements/date-time-picker/DateTimePickerInput.d.ts +1 -0
- package/elements/form/Form.scss +2 -1
- package/elements/form/NovoFormControl.d.ts +1 -0
- package/elements/form/controls/BaseControl.d.ts +1 -0
- package/esm2015/elements/data-table/cell-headers/data-table-checkbox-header-cell.component.js +27 -2
- package/esm2015/elements/data-table/data-table.component.js +10 -2
- package/esm2015/elements/date-picker/DatePicker.js +3 -2
- package/esm2015/elements/date-picker/DatePickerInput.js +28 -2
- package/esm2015/elements/date-time-picker/DateTimePicker.js +3 -1
- package/esm2015/elements/date-time-picker/DateTimePickerInput.js +3 -1
- package/esm2015/elements/form/ControlTemplates.js +2 -2
- package/esm2015/elements/form/NovoFormControl.js +2 -1
- package/esm2015/elements/form/controls/BaseControl.js +2 -1
- package/esm2015/services/date-format/DateFormat.js +4 -2
- package/esm2015/utils/form-utils/FormUtils.js +17 -17
- package/fesm2015/novo-elements.js +90 -22
- package/fesm2015/novo-elements.js.map +1 -1
- package/novo-elements.metadata.json +1 -1
- package/package.json +1 -1
- package/services/date-format/DateFormat.d.ts +2 -2
- package/utils/form-utils/FormUtils.d.ts +3 -3
|
@@ -8030,8 +8030,10 @@
|
|
|
8030
8030
|
this.templates = {};
|
|
8031
8031
|
this.fixedHeader = false;
|
|
8032
8032
|
this.maxSelected = undefined;
|
|
8033
|
+
this.canSelectAll = false;
|
|
8033
8034
|
this._hideGlobalSearch = true;
|
|
8034
8035
|
this.preferencesChanged = new core.EventEmitter();
|
|
8036
|
+
this.allSelected = new core.EventEmitter();
|
|
8035
8037
|
this.loading = true;
|
|
8036
8038
|
this.columnToTemplate = {};
|
|
8037
8039
|
this.columnsLoaded = false;
|
|
@@ -8371,6 +8373,10 @@
|
|
|
8371
8373
|
this.state.onSelectionChange();
|
|
8372
8374
|
};
|
|
8373
8375
|
NovoDataTable.prototype.allCurrentRowsSelected = function () {
|
|
8376
|
+
var _a, _b;
|
|
8377
|
+
if (!((_b = (_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
8378
|
+
return false;
|
|
8379
|
+
}
|
|
8374
8380
|
for (var i = 0; i < (this.dataSource.data || []).length; i++) {
|
|
8375
8381
|
if (!this.isSelected((this.dataSource.data || [])[i])) {
|
|
8376
8382
|
return false;
|
|
@@ -8458,11 +8464,11 @@
|
|
|
8458
8464
|
this.ref.markForCheck();
|
|
8459
8465
|
};
|
|
8460
8466
|
NovoDataTable.prototype.performInteractions = function (event) {
|
|
8461
|
-
var e_1,
|
|
8467
|
+
var e_1, _c;
|
|
8462
8468
|
if (this.listInteractions) {
|
|
8463
8469
|
try {
|
|
8464
|
-
for (var
|
|
8465
|
-
var column =
|
|
8470
|
+
for (var _d = __values(this.columns), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
8471
|
+
var column = _e.value;
|
|
8466
8472
|
var allListColumnInteractions = this.listInteractions[column.id];
|
|
8467
8473
|
var listColumnInteraction = allListColumnInteractions && allListColumnInteractions.find(function (int) { return int.event.includes(event); });
|
|
8468
8474
|
if (listColumnInteraction) {
|
|
@@ -8473,7 +8479,7 @@
|
|
|
8473
8479
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
8474
8480
|
finally {
|
|
8475
8481
|
try {
|
|
8476
|
-
if (
|
|
8482
|
+
if (_e && !_e.done && (_c = _d.return)) _c.call(_d);
|
|
8477
8483
|
}
|
|
8478
8484
|
finally { if (e_1) throw e_1.error; }
|
|
8479
8485
|
}
|
|
@@ -8491,7 +8497,7 @@
|
|
|
8491
8497
|
animations.transition('void <=> *', animations.animate('70ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
|
|
8492
8498
|
]),
|
|
8493
8499
|
],
|
|
8494
|
-
template: "\n <header\n *ngIf=\"(!(dataSource?.totallyEmpty && !state.userFiltered) && !loading) || forceShowHeader\"\n [class.empty]=\"hideGlobalSearch && !paginationOptions && !templates['customActions']\"\n >\n <ng-container *ngTemplateOutlet=\"templates['customHeader']\"></ng-container>\n <novo-search\n alwaysOpen=\"true\"\n (searchChanged)=\"onSearchChange($event)\"\n [(ngModel)]=\"state.globalSearch\"\n *ngIf=\"!hideGlobalSearch\"\n [placeholder]=\"searchOptions?.placeholder\"\n [hint]=\"searchOptions?.tooltip\"\n >\n </novo-search>\n <novo-data-table-pagination\n *ngIf=\"paginationOptions\"\n [theme]=\"paginationOptions.theme\"\n [length]=\"dataSource?.currentTotal\"\n [page]=\"paginationOptions.page\"\n [pageSize]=\"paginationOptions.pageSize\"\n [pageSizeOptions]=\"paginationOptions.pageSizeOptions\"\n [dataFeatureId]=\"paginatorDataFeatureId\"\n >\n </novo-data-table-pagination>\n <div class=\"novo-data-table-actions\" *ngIf=\"templates['customActions']\">\n <ng-container *ngTemplateOutlet=\"templates['customActions']\"></ng-container>\n </div>\n </header>\n <div class=\"novo-data-table-loading-mask\" *ngIf=\"dataSource?.loading || loading\" data-automation-id=\"novo-data-table-loading\">\n <novo-loading></novo-loading>\n </div>\n <div class=\"novo-data-table-outside-container\" [ngClass]=\"{ 'novo-data-table-outside-container-fixed': fixedHeader }\">\n <div class=\"novo-data-table-custom-filter\" *ngIf=\"customFilter\">\n <ng-container *ngTemplateOutlet=\"templates['customFilter']\"></ng-container>\n </div>\n <div\n #novoDataTableContainer\n class=\"novo-data-table-container\"\n [ngClass]=\"{ 'novo-data-table-container-fixed': fixedHeader }\"\n [class.empty-user-filtered]=\"dataSource?.currentlyEmpty && state.userFiltered\"\n [class.empty]=\"dataSource?.totallyEmpty && !dataSource?.loading && !loading && !state.userFiltered && !dataSource.pristine\"\n >\n <cdk-table\n *ngIf=\"columns?.length > 0 && columnsLoaded && dataSource\"\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackByFn\"\n novoDataTableSortFilter\n [class.expandable]=\"expandable\"\n [class.empty]=\"dataSource?.currentlyEmpty && state.userFiltered\"\n [hidden]=\"dataSource?.totallyEmpty && !state.userFiltered\"\n >\n <ng-container cdkColumnDef=\"selection\">\n <novo-data-table-checkbox-header-cell *cdkHeaderCellDef [maxSelected]=\"maxSelected\"></novo-data-table-checkbox-header-cell>\n <novo-data-table-checkbox-cell *cdkCellDef=\"let row; let i = index\" [row]=\"row\" [maxSelected]=\"maxSelected\"></novo-data-table-checkbox-cell>\n </ng-container>\n <ng-container cdkColumnDef=\"expand\">\n <novo-data-table-expand-header-cell *cdkHeaderCellDef></novo-data-table-expand-header-cell>\n <novo-data-table-expand-cell *cdkCellDef=\"let row; let i = index\" [row]=\"row\"></novo-data-table-expand-cell>\n </ng-container>\n <ng-container *ngFor=\"let column of columns; trackBy: trackColumnsBy\" [cdkColumnDef]=\"column.id\">\n <novo-data-table-header-cell\n *cdkHeaderCellDef\n [column]=\"column\"\n [filterTemplate]=\"templates['column-filter-' + column.id]\"\n [novo-data-table-cell-config]=\"column\"\n [resized]=\"resized\"\n [defaultSort]=\"defaultSort\"\n [allowMultipleFilters]=\"allowMultipleFilters\"\n [class.empty]=\"column?.type === 'action' && !column?.label\"\n [class.button-header-cell]=\"column?.type === 'expand' || (column?.type === 'action' && !column?.action?.options)\"\n [class.dropdown-header-cell]=\"column?.type === 'action' && column?.action?.options\"\n [class.fixed-header]=\"fixedHeader\"\n ></novo-data-table-header-cell>\n <novo-data-table-cell\n *cdkCellDef=\"let row\"\n [resized]=\"resized\"\n [column]=\"column\"\n [row]=\"row\"\n [template]=\"columnToTemplate[column.id]\"\n [class.empty]=\"column?.type === 'action' && !column?.label\"\n [class.button-cell]=\"column?.type === 'expand' || (column?.type === 'action' && !column?.action?.options)\"\n [class.dropdown-cell]=\"column?.type === 'action' && column?.action?.options\"\n ></novo-data-table-cell>\n </ng-container>\n <novo-data-table-header-row\n *cdkHeaderRowDef=\"displayedColumns\"\n [fixedHeader]=\"fixedHeader\"\n data-automation-id=\"novo-data-table-header-row\"\n ></novo-data-table-header-row>\n <novo-data-table-row\n *cdkRowDef=\"let row; columns: displayedColumns\"\n [ngClass]=\"{ active: row[rowIdentifier] == activeRowIdentifier }\"\n [novoDataTableExpand]=\"detailRowTemplate\"\n [row]=\"row\"\n [id]=\"name + '-' + row[rowIdentifier]\"\n [dataAutomationId]=\"row[rowIdentifier]\"\n ></novo-data-table-row>\n </cdk-table>\n <div class=\"novo-data-table-footer\" *ngIf=\"templates['footer']\">\n <ng-container *ngTemplateOutlet=\"templates['footer']; context: { $implicit: columns, data: dataSource.data }\"></ng-container>\n </div>\n <div\n class=\"novo-data-table-no-results-container\"\n [style.left.px]=\"scrollLeft\"\n *ngIf=\"dataSource?.currentlyEmpty && state.userFiltered && !dataSource?.loading && !loading && !dataSource.pristine\"\n >\n <div class=\"novo-data-table-empty-message\">\n <ng-container *ngTemplateOutlet=\"templates['noResultsMessage'] || templates['defaultNoResultsMessage']\"></ng-container>\n </div>\n </div>\n </div>\n <div\n class=\"novo-data-table-empty-container\"\n *ngIf=\"dataSource?.totallyEmpty && !dataSource?.loading && !loading && !state.userFiltered && !dataSource.pristine\"\n >\n <div class=\"novo-data-table-empty-message\">\n <ng-container *ngTemplateOutlet=\"templates['emptyMessage'] || templates['defaultNoResultsMessage']\"></ng-container>\n </div>\n </div>\n </div>\n <!-- DEFAULT CELL TEMPLATE -->\n <ng-template novoTemplate=\"textCellTemplate\" let-row let-col=\"col\">\n <span [style.width.px]=\"col?.width\" [style.min-width.px]=\"col?.width\" [style.max-width.px]=\"col?.width\">{{\n row[col.id] | dataTableInterpolate: col\n }}</span>\n </ng-template>\n <ng-template novoTemplate=\"dateCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableDateRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"datetimeCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableDateTimeRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"timeCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableTimeRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"currencyCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableCurrencyRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"bigdecimalCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableBigDecimalRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"numberCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableNumberRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"percentCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableNumberRenderer: col:true }}</span>\n </ng-template>\n <ng-template novoTemplate=\"linkCellTemplate\" let-row let-col=\"col\">\n <a\n [attr.data-feature-id]=\"col?.attributes?.dataFeatureId\"\n (click)=\"col.handlers?.click({ originalEvent: $event, row: row })\"\n [style.width.px]=\"col?.width\"\n [style.min-width.px]=\"col?.width\"\n [style.max-width.px]=\"col?.width\"\n >{{ row[col.id] | dataTableInterpolate: col }}</a\n >\n </ng-template>\n <ng-template novoTemplate=\"telCellTemplate\" let-row let-col=\"col\">\n <a href=\"tel:{{ row[col.id] | dataTableInterpolate: col }}\" [target]=\"col?.attributes?.target\">{{\n row[col.id] | dataTableInterpolate: col\n }}</a>\n </ng-template>\n <ng-template novoTemplate=\"mailtoCellTemplate\" let-row let-col=\"col\">\n <a href=\"mailto:{{ row[col.id] | dataTableInterpolate: col }}\" [target]=\"col?.attributes?.target\">{{\n row[col.id] | dataTableInterpolate: col\n }}</a>\n </ng-template>\n <ng-template novoTemplate=\"buttonCellTemplate\" let-row let-col=\"col\">\n <p [tooltip]=\"col?.action?.tooltip\" tooltipPosition=\"right\" [attr.data-feature-id]=\"col?.attributes?.dataFeatureId\">\n <i\n class=\"bhi-{{ col?.action?.icon }} data-table-icon\"\n (click)=\"col.handlers?.click({ originalEvent: $event, row: row })\"\n [class.disabled]=\"isDisabled(col, row)\"\n ></i>\n </p>\n </ng-template>\n <ng-template novoTemplate=\"dropdownCellTemplate\" let-row let-col=\"col\">\n <novo-dropdown parentScrollSelector=\".novo-data-table-container\" containerClass=\"novo-data-table-dropdown\">\n <button type=\"button\" theme=\"dialogue\" [icon]=\"col.action.icon\" inverse>{{ col.label }}</button>\n <list>\n <item\n *ngFor=\"let option of col?.action?.options\"\n (action)=\"option.handlers.click({ originalEvent: $event?.originalEvent, row: row })\"\n [disabled]=\"isDisabled(option, row)\"\n >\n <span [attr.data-automation-id]=\"option.label\">{{ option.label }}</span>\n </item>\n </list>\n </novo-dropdown>\n </ng-template>\n <ng-template novoTemplate=\"defaultNoResultsMessage\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.noMatchingRecordsMessage }}</h4>\n </ng-template>\n <ng-template novoTemplate=\"defaultEmptyMessage\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.emptyTableMessage }}</h4>\n </ng-template>\n <ng-template novoTemplate=\"expandedRow\"> You did not provide an \"expandedRow\" template! </ng-template>\n <ng-template #detailRowTemplate let-row>\n <div class=\"novo-data-table-detail-row\" [@expand] style=\"overflow: hidden\">\n <ng-container *ngTemplateOutlet=\"templates['expandedRow']; context: { $implicit: row }\"></ng-container>\n </div>\n </ng-template>\n <!-- CUSTOM CELLS PASSED IN -->\n <ng-content></ng-content>\n ",
|
|
8500
|
+
template: "\n <header\n *ngIf=\"(!(dataSource?.totallyEmpty && !state.userFiltered) && !loading) || forceShowHeader\"\n [class.empty]=\"hideGlobalSearch && !paginationOptions && !templates['customActions']\"\n >\n <ng-container *ngTemplateOutlet=\"templates['customHeader']\"></ng-container>\n <novo-search\n alwaysOpen=\"true\"\n (searchChanged)=\"onSearchChange($event)\"\n [(ngModel)]=\"state.globalSearch\"\n *ngIf=\"!hideGlobalSearch\"\n [placeholder]=\"searchOptions?.placeholder\"\n [hint]=\"searchOptions?.tooltip\"\n >\n </novo-search>\n <novo-data-table-pagination\n *ngIf=\"paginationOptions\"\n [theme]=\"paginationOptions.theme\"\n [length]=\"dataSource?.currentTotal\"\n [page]=\"paginationOptions.page\"\n [pageSize]=\"paginationOptions.pageSize\"\n [pageSizeOptions]=\"paginationOptions.pageSizeOptions\"\n [dataFeatureId]=\"paginatorDataFeatureId\"\n >\n </novo-data-table-pagination>\n <div class=\"novo-data-table-actions\" *ngIf=\"templates['customActions']\">\n <ng-container *ngTemplateOutlet=\"templates['customActions']\"></ng-container>\n </div>\n </header>\n <div class=\"novo-data-table-loading-mask\" *ngIf=\"dataSource?.loading || loading\" data-automation-id=\"novo-data-table-loading\">\n <novo-loading></novo-loading>\n </div>\n <div class=\"novo-data-table-outside-container\" [ngClass]=\"{ 'novo-data-table-outside-container-fixed': fixedHeader }\">\n <div class=\"novo-data-table-custom-filter\" *ngIf=\"customFilter\">\n <ng-container *ngTemplateOutlet=\"templates['customFilter']\"></ng-container>\n </div>\n <div\n #novoDataTableContainer\n class=\"novo-data-table-container\"\n [ngClass]=\"{ 'novo-data-table-container-fixed': fixedHeader }\"\n [class.empty-user-filtered]=\"dataSource?.currentlyEmpty && state.userFiltered\"\n [class.empty]=\"dataSource?.totallyEmpty && !dataSource?.loading && !loading && !state.userFiltered && !dataSource.pristine\"\n >\n <cdk-table\n *ngIf=\"columns?.length > 0 && columnsLoaded && dataSource\"\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackByFn\"\n novoDataTableSortFilter\n [class.expandable]=\"expandable\"\n [class.empty]=\"dataSource?.currentlyEmpty && state.userFiltered\"\n [hidden]=\"dataSource?.totallyEmpty && !state.userFiltered\"\n >\n <ng-container cdkColumnDef=\"selection\">\n <novo-data-table-checkbox-header-cell *cdkHeaderCellDef [maxSelected]=\"maxSelected\" [canSelectAll]=\"canSelectAll\"></novo-data-table-checkbox-header-cell>\n <novo-data-table-checkbox-cell *cdkCellDef=\"let row; let i = index\" [row]=\"row\" [maxSelected]=\"maxSelected\"></novo-data-table-checkbox-cell>\n </ng-container>\n <ng-container cdkColumnDef=\"expand\">\n <novo-data-table-expand-header-cell *cdkHeaderCellDef></novo-data-table-expand-header-cell>\n <novo-data-table-expand-cell *cdkCellDef=\"let row; let i = index\" [row]=\"row\"></novo-data-table-expand-cell>\n </ng-container>\n <ng-container *ngFor=\"let column of columns; trackBy: trackColumnsBy\" [cdkColumnDef]=\"column.id\">\n <novo-data-table-header-cell\n *cdkHeaderCellDef\n [column]=\"column\"\n [filterTemplate]=\"templates['column-filter-' + column.id]\"\n [novo-data-table-cell-config]=\"column\"\n [resized]=\"resized\"\n [defaultSort]=\"defaultSort\"\n [allowMultipleFilters]=\"allowMultipleFilters\"\n [class.empty]=\"column?.type === 'action' && !column?.label\"\n [class.button-header-cell]=\"column?.type === 'expand' || (column?.type === 'action' && !column?.action?.options)\"\n [class.dropdown-header-cell]=\"column?.type === 'action' && column?.action?.options\"\n [class.fixed-header]=\"fixedHeader\"\n ></novo-data-table-header-cell>\n <novo-data-table-cell\n *cdkCellDef=\"let row\"\n [resized]=\"resized\"\n [column]=\"column\"\n [row]=\"row\"\n [template]=\"columnToTemplate[column.id]\"\n [class.empty]=\"column?.type === 'action' && !column?.label\"\n [class.button-cell]=\"column?.type === 'expand' || (column?.type === 'action' && !column?.action?.options)\"\n [class.dropdown-cell]=\"column?.type === 'action' && column?.action?.options\"\n ></novo-data-table-cell>\n </ng-container>\n <novo-data-table-header-row\n *cdkHeaderRowDef=\"displayedColumns\"\n [fixedHeader]=\"fixedHeader\"\n data-automation-id=\"novo-data-table-header-row\"\n ></novo-data-table-header-row>\n <novo-data-table-row\n *cdkRowDef=\"let row; columns: displayedColumns\"\n [ngClass]=\"{ active: row[rowIdentifier] == activeRowIdentifier }\"\n [novoDataTableExpand]=\"detailRowTemplate\"\n [row]=\"row\"\n [id]=\"name + '-' + row[rowIdentifier]\"\n [dataAutomationId]=\"row[rowIdentifier]\"\n ></novo-data-table-row>\n </cdk-table>\n <div class=\"novo-data-table-footer\" *ngIf=\"templates['footer']\">\n <ng-container *ngTemplateOutlet=\"templates['footer']; context: { $implicit: columns, data: dataSource.data }\"></ng-container>\n </div>\n <div\n class=\"novo-data-table-no-results-container\"\n [style.left.px]=\"scrollLeft\"\n *ngIf=\"dataSource?.currentlyEmpty && state.userFiltered && !dataSource?.loading && !loading && !dataSource.pristine\"\n >\n <div class=\"novo-data-table-empty-message\">\n <ng-container *ngTemplateOutlet=\"templates['noResultsMessage'] || templates['defaultNoResultsMessage']\"></ng-container>\n </div>\n </div>\n </div>\n <div\n class=\"novo-data-table-empty-container\"\n *ngIf=\"dataSource?.totallyEmpty && !dataSource?.loading && !loading && !state.userFiltered && !dataSource.pristine\"\n >\n <div class=\"novo-data-table-empty-message\">\n <ng-container *ngTemplateOutlet=\"templates['emptyMessage'] || templates['defaultNoResultsMessage']\"></ng-container>\n </div>\n </div>\n </div>\n <!-- DEFAULT CELL TEMPLATE -->\n <ng-template novoTemplate=\"textCellTemplate\" let-row let-col=\"col\">\n <span [style.width.px]=\"col?.width\" [style.min-width.px]=\"col?.width\" [style.max-width.px]=\"col?.width\">{{\n row[col.id] | dataTableInterpolate: col\n }}</span>\n </ng-template>\n <ng-template novoTemplate=\"dateCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableDateRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"datetimeCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableDateTimeRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"timeCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableTimeRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"currencyCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableCurrencyRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"bigdecimalCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableBigDecimalRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"numberCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableNumberRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"percentCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableNumberRenderer: col:true }}</span>\n </ng-template>\n <ng-template novoTemplate=\"linkCellTemplate\" let-row let-col=\"col\">\n <a\n [attr.data-feature-id]=\"col?.attributes?.dataFeatureId\"\n (click)=\"col.handlers?.click({ originalEvent: $event, row: row })\"\n [style.width.px]=\"col?.width\"\n [style.min-width.px]=\"col?.width\"\n [style.max-width.px]=\"col?.width\"\n >{{ row[col.id] | dataTableInterpolate: col }}</a\n >\n </ng-template>\n <ng-template novoTemplate=\"telCellTemplate\" let-row let-col=\"col\">\n <a href=\"tel:{{ row[col.id] | dataTableInterpolate: col }}\" [target]=\"col?.attributes?.target\">{{\n row[col.id] | dataTableInterpolate: col\n }}</a>\n </ng-template>\n <ng-template novoTemplate=\"mailtoCellTemplate\" let-row let-col=\"col\">\n <a href=\"mailto:{{ row[col.id] | dataTableInterpolate: col }}\" [target]=\"col?.attributes?.target\">{{\n row[col.id] | dataTableInterpolate: col\n }}</a>\n </ng-template>\n <ng-template novoTemplate=\"buttonCellTemplate\" let-row let-col=\"col\">\n <p [tooltip]=\"col?.action?.tooltip\" tooltipPosition=\"right\" [attr.data-feature-id]=\"col?.attributes?.dataFeatureId\">\n <i\n class=\"bhi-{{ col?.action?.icon }} data-table-icon\"\n (click)=\"col.handlers?.click({ originalEvent: $event, row: row })\"\n [class.disabled]=\"isDisabled(col, row)\"\n ></i>\n </p>\n </ng-template>\n <ng-template novoTemplate=\"dropdownCellTemplate\" let-row let-col=\"col\">\n <novo-dropdown parentScrollSelector=\".novo-data-table-container\" containerClass=\"novo-data-table-dropdown\">\n <button type=\"button\" theme=\"dialogue\" [icon]=\"col.action.icon\" inverse>{{ col.label }}</button>\n <list>\n <item\n *ngFor=\"let option of col?.action?.options\"\n (action)=\"option.handlers.click({ originalEvent: $event?.originalEvent, row: row })\"\n [disabled]=\"isDisabled(option, row)\"\n >\n <span [attr.data-automation-id]=\"option.label\">{{ option.label }}</span>\n </item>\n </list>\n </novo-dropdown>\n </ng-template>\n <ng-template novoTemplate=\"defaultNoResultsMessage\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.noMatchingRecordsMessage }}</h4>\n </ng-template>\n <ng-template novoTemplate=\"defaultEmptyMessage\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.emptyTableMessage }}</h4>\n </ng-template>\n <ng-template novoTemplate=\"expandedRow\"> You did not provide an \"expandedRow\" template! </ng-template>\n <ng-template #detailRowTemplate let-row>\n <div class=\"novo-data-table-detail-row\" [@expand] style=\"overflow: hidden\">\n <ng-container *ngTemplateOutlet=\"templates['expandedRow']; context: { $implicit: row }\"></ng-container>\n </div>\n </ng-template>\n <!-- CUSTOM CELLS PASSED IN -->\n <ng-content></ng-content>\n ",
|
|
8495
8501
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
8496
8502
|
providers: [DataTableState]
|
|
8497
8503
|
},] }
|
|
@@ -8522,6 +8528,7 @@
|
|
|
8522
8528
|
fixedHeader: [{ type: core.Input }],
|
|
8523
8529
|
paginatorDataFeatureId: [{ type: core.Input }],
|
|
8524
8530
|
maxSelected: [{ type: core.Input }],
|
|
8531
|
+
canSelectAll: [{ type: core.Input }],
|
|
8525
8532
|
dataTableService: [{ type: core.Input }],
|
|
8526
8533
|
rows: [{ type: core.Input }],
|
|
8527
8534
|
outsideFilter: [{ type: core.Input }],
|
|
@@ -8532,6 +8539,7 @@
|
|
|
8532
8539
|
forceShowHeader: [{ type: core.Input }],
|
|
8533
8540
|
hideGlobalSearch: [{ type: core.Input }],
|
|
8534
8541
|
preferencesChanged: [{ type: core.Output }],
|
|
8542
|
+
allSelected: [{ type: core.Output }],
|
|
8535
8543
|
empty: [{ type: core.HostBinding, args: ['class.empty',] }],
|
|
8536
8544
|
loadingClass: [{ type: core.HostBinding, args: ['class.loading',] }],
|
|
8537
8545
|
listInteractions: [{ type: core.Input }]
|
|
@@ -28169,7 +28177,7 @@
|
|
|
28169
28177
|
animations.transition('startDate <=> endDate', animations.animate('200ms ease-in')),
|
|
28170
28178
|
]),
|
|
28171
28179
|
],
|
|
28172
|
-
template: "\n <div class=\"calendar\">\n <div class=\"calendar-top\" *ngIf=\"!inline && !range\">\n <h4 class=\"day\" [attr.data-automation-id]=\"heading?.day\">{{heading?.day}}</h4>\n <h2 class=\"month\" [attr.data-automation-id]=\"heading?.month\">{{heading?.month}}</h2>\n <h1 class=\"date\" [attr.data-automation-id]=\"heading?.date\">{{heading?.date}}</h1>\n <h3 class=\"year\" [attr.data-automation-id]=\"heading?.year\">{{heading?.year}}</h3>\n </div>\n <div class=\"date-range-tabs\" *ngIf=\"range\" [class.week-select-mode]=\"weekRangeSelect\">\n <span class=\"range-tab\" (click)=\"toggleRangeSelect('startDate')\" [@startDateTextState]=\"rangeSelectMode\" data-automation-id=\"calendar-start-date\">{{selectedLabel}}</span>\n <span class=\"range-tab\" (click)=\"toggleRangeSelect('endDate')\" [@endDateTextState]=\"rangeSelectMode\" data-automation-id=\"calendar-end-date\">{{selected2Label}}</span>\n <i class=\"indicator\" [@indicatorState]=\"rangeSelectMode\"></i>\n </div>\n <div class=\"calendar-header\">\n <span class=\"previous\" (click)=\"prevMonth($event)\" data-automation-id=\"calendar-previous\"></span>\n <span class=\"heading\">\n <span class=\"month\" (click)=\"open($event, 'months')\" data-automation-id=\"header-month\">{{monthLabel}}</span>\n <span class=\"year\" (click)=\"open($event, 'years')\" data-automation-id=\"header-year\">{{month?.getFullYear()}}</span>\n </span>\n <span class=\"next\" (click)=\"nextMonth($event)\" data-automation-id=\"calendar-next\"></span>\n </div>\n <table class=\"calendar-content days\" cellspacing=\"0\" cellpadding=\"0\" [hidden]=\"!(view=='days')\">\n <thead>\n <tr>\n <th *ngFor=\"let day of weekdays\" title=\"{{day}}\" class=\"weekday\" [attr.data-automation-id]=\"day.substr(0, 2)\">{{day.substr(0, 2)}}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let week of weeks\">\n <td *ngFor=\"let day of week.days\" [ngClass]=\"{\n today: day.isToday,\n 'notinmonth': day.date.getMonth() !== this.month.getMonth(),\n selected: isSelected(range, day.date, selected, selected2),\n filler: isFiller(range, day.date, selected, selected2),\n startfill: isStartFill(range, day.date, selected, selected2),\n endfill: isEndFill(range, day.date, selected, selected2),\n 'selecting-range': isSelectingRange(range, day.date, selected, selected2, hoverDay, rangeSelectMode, weekRangeSelect)\n }\" (mouseover)=\"rangeHover($event, day)\" [attr.data-automation-id]=\"day.number\">\n <button class=\"day\" [attr.data-automation-id]=\"day.number\" [disabled]=\"isDisabled(day.date, start, end)\" (click)=\"select($event, day, true)\">{{day.number}}</button>\n </td>\n </tr>\n </tbody>\n </table>\n <section class=\"calendar-content months\" [hidden]=\"view !== 'months'\">\n <div *ngFor=\"let month of months;let i = index\" (click)=\"setMonth(i)\">\n <div class=\"month\" [ngClass]=\"{selected: i === selected?.getMonth()}\" [attr.data-automation-id]=\"month\">{{month}}</div>\n </div>\n </section>\n <section class=\"calendar-content years\" [hidden]=\"view !== 'years'\">\n <div *ngFor=\"let year of years\" (click)=\"setYear(year)\">\n <div class=\"year\" [ngClass]=\"{selected: year == selected?.getFullYear()}\" [attr.data-automation-id]=\"year\">{{year}}</div>\n </div>\n </section>\n <div class=\"calendar-footer\">\n <span (click)=\"setToday()\" class=\"today\" data-automation-id=\"calendar-today\">{{ labels.today }}</span>\n </div>\n </div>\n "
|
|
28180
|
+
template: "\n <div class=\"calendar\">\n <div class=\"calendar-top\" *ngIf=\"!inline && !range\">\n <h4 class=\"day\" [attr.data-automation-id]=\"heading?.day\">{{heading?.day}}</h4>\n <h2 class=\"month\" [attr.data-automation-id]=\"heading?.month\">{{heading?.month}}</h2>\n <h1 class=\"date\" [attr.data-automation-id]=\"heading?.date\">{{heading?.date}}</h1>\n <h3 class=\"year\" [attr.data-automation-id]=\"heading?.year\">{{heading?.year}}</h3>\n </div>\n <div class=\"date-range-tabs\" *ngIf=\"range\" [class.week-select-mode]=\"weekRangeSelect\">\n <span class=\"range-tab\" (click)=\"toggleRangeSelect('startDate')\" [@startDateTextState]=\"rangeSelectMode\" data-automation-id=\"calendar-start-date\">{{selectedLabel}}</span>\n <span class=\"range-tab\" (click)=\"toggleRangeSelect('endDate')\" [@endDateTextState]=\"rangeSelectMode\" data-automation-id=\"calendar-end-date\">{{selected2Label}}</span>\n <i class=\"indicator\" [@indicatorState]=\"rangeSelectMode\"></i>\n </div>\n <div class=\"calendar-header\">\n <span class=\"previous\" (click)=\"prevMonth($event)\" data-automation-id=\"calendar-previous\"></span>\n <span class=\"heading\">\n <span class=\"month\" (click)=\"open($event, 'months')\" data-automation-id=\"header-month\">{{monthLabel}}</span>\n <span class=\"year\" (click)=\"open($event, 'years')\" data-automation-id=\"header-year\">{{month?.getFullYear()}}</span>\n </span>\n <span class=\"next\" (click)=\"nextMonth($event)\" data-automation-id=\"calendar-next\"></span>\n </div>\n <table class=\"calendar-content days\" cellspacing=\"0\" cellpadding=\"0\" [hidden]=\"!(view=='days')\">\n <thead>\n <tr>\n <th *ngFor=\"let day of weekdays\" title=\"{{day}}\" class=\"weekday\" [attr.data-automation-id]=\"day.substr(0, 2)\">{{day.substr(0, 2)}}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let week of weeks\">\n <td *ngFor=\"let day of week.days\" [ngClass]=\"{\n today: day.isToday,\n 'notinmonth': day.date.getMonth() !== this.month.getMonth(),\n selected: isSelected(range, day.date, selected, selected2),\n filler: isFiller(range, day.date, selected, selected2),\n startfill: isStartFill(range, day.date, selected, selected2),\n endfill: isEndFill(range, day.date, selected, selected2),\n 'selecting-range': isSelectingRange(range, day.date, selected, selected2, hoverDay, rangeSelectMode, weekRangeSelect)\n }\" (mouseover)=\"rangeHover($event, day)\" [attr.data-automation-id]=\"day.number\">\n <button [title]=\"isDisabled(day.date, start, end) ? disabledDateMessage : ''\" class=\"day\" [attr.data-automation-id]=\"day.number\" [disabled]=\"isDisabled(day.date, start, end)\" (click)=\"select($event, day, true)\">{{day.number}}</button>\n </td>\n </tr>\n </tbody>\n </table>\n <section class=\"calendar-content months\" [hidden]=\"view !== 'months'\">\n <div *ngFor=\"let month of months;let i = index\" (click)=\"setMonth(i)\">\n <div class=\"month\" [ngClass]=\"{selected: i === selected?.getMonth()}\" [attr.data-automation-id]=\"month\">{{month}}</div>\n </div>\n </section>\n <section class=\"calendar-content years\" [hidden]=\"view !== 'years'\">\n <div *ngFor=\"let year of years\" (click)=\"setYear(year)\">\n <div class=\"year\" [ngClass]=\"{selected: year == selected?.getFullYear()}\" [attr.data-automation-id]=\"year\">{{year}}</div>\n </div>\n </section>\n <div class=\"calendar-footer\">\n <span (click)=\"setToday()\" class=\"today\" data-automation-id=\"calendar-today\">{{ labels.today }}</span>\n </div>\n </div>\n "
|
|
28173
28181
|
},] }
|
|
28174
28182
|
];
|
|
28175
28183
|
NovoDatePickerElement.ctorParameters = function () { return [
|
|
@@ -28185,6 +28193,7 @@
|
|
|
28185
28193
|
range: [{ type: core.Input }],
|
|
28186
28194
|
weekRangeSelect: [{ type: core.Input }],
|
|
28187
28195
|
weekStart: [{ type: core.Input }],
|
|
28196
|
+
disabledDateMessage: [{ type: core.Input }],
|
|
28188
28197
|
onSelect: [{ type: core.Output }]
|
|
28189
28198
|
};
|
|
28190
28199
|
|
|
@@ -28251,6 +28260,7 @@
|
|
|
28251
28260
|
var month;
|
|
28252
28261
|
var day;
|
|
28253
28262
|
var date = new Date();
|
|
28263
|
+
var isInvalidDate = true;
|
|
28254
28264
|
if (Helpers.isEmpty(dateFormat)) {
|
|
28255
28265
|
// Default to MM/dd/yyyy
|
|
28256
28266
|
dateFormat = 'mm/dd/yyyy';
|
|
@@ -28274,6 +28284,7 @@
|
|
|
28274
28284
|
}
|
|
28275
28285
|
if (month >= 0 && month <= 11 && year > 1900 && day > 0 && day <= 31) {
|
|
28276
28286
|
date = new Date(year, month, day);
|
|
28287
|
+
isInvalidDate = false;
|
|
28277
28288
|
}
|
|
28278
28289
|
}
|
|
28279
28290
|
else if (dateFormatTokens && dateFormatTokens.length === 4 && dateString.length >= 1) {
|
|
@@ -28288,7 +28299,7 @@
|
|
|
28288
28299
|
dateString = "" + dateString + delimiter[1];
|
|
28289
28300
|
}
|
|
28290
28301
|
}
|
|
28291
|
-
return [date, dateString];
|
|
28302
|
+
return [date, dateString, isInvalidDate];
|
|
28292
28303
|
};
|
|
28293
28304
|
DateFormatService.prototype.parseTimeString = function (timeString, militaryTime) {
|
|
28294
28305
|
var e_2, _a;
|
|
@@ -28409,6 +28420,7 @@
|
|
|
28409
28420
|
this._changeDetectorRef = _changeDetectorRef;
|
|
28410
28421
|
this.dateFormatService = dateFormatService;
|
|
28411
28422
|
this.formattedValue = '';
|
|
28423
|
+
this.invalidDateErrorMessage = '';
|
|
28412
28424
|
/** View -> model callback called when value changes */
|
|
28413
28425
|
this._onChange = function () { };
|
|
28414
28426
|
/** View -> model callback called when autocomplete has been touched */
|
|
@@ -28435,6 +28447,7 @@
|
|
|
28435
28447
|
else {
|
|
28436
28448
|
this.maskOptions = { mask: false };
|
|
28437
28449
|
}
|
|
28450
|
+
this.setupInvalidDateErrorMessage();
|
|
28438
28451
|
};
|
|
28439
28452
|
/** BEGIN: Convenient Panel Methods. */
|
|
28440
28453
|
NovoDatePickerInputElement.prototype.openPanel = function () {
|
|
@@ -28466,9 +28479,11 @@
|
|
|
28466
28479
|
}
|
|
28467
28480
|
};
|
|
28468
28481
|
NovoDatePickerInputElement.prototype._handleBlur = function (event) {
|
|
28482
|
+
this.handleInvalidDate();
|
|
28469
28483
|
this.blurEvent.emit(event);
|
|
28470
28484
|
};
|
|
28471
28485
|
NovoDatePickerInputElement.prototype._handleFocus = function (event) {
|
|
28486
|
+
this.showInvalidDateError = false;
|
|
28472
28487
|
this.openPanel();
|
|
28473
28488
|
this.focusEvent.emit(event);
|
|
28474
28489
|
};
|
|
@@ -28485,7 +28500,8 @@
|
|
|
28485
28500
|
};
|
|
28486
28501
|
NovoDatePickerInputElement.prototype.formatDate = function (value, blur) {
|
|
28487
28502
|
try {
|
|
28488
|
-
var _a = __read(this.dateFormatService.parseString(value, false, 'date'),
|
|
28503
|
+
var _a = __read(this.dateFormatService.parseString(value, false, 'date'), 3), dateTimeValue = _a[0], formatted = _a[1], isInvalidDate = _a[2];
|
|
28504
|
+
this.isInvalidDate = isInvalidDate;
|
|
28489
28505
|
if (!isNaN(dateTimeValue.getUTCDate())) {
|
|
28490
28506
|
var dt = new Date(dateTimeValue);
|
|
28491
28507
|
this.dispatchOnChange(dt, blur);
|
|
@@ -28509,6 +28525,24 @@
|
|
|
28509
28525
|
NovoDatePickerInputElement.prototype.setDisabledState = function (disabled) {
|
|
28510
28526
|
this.disabled = disabled;
|
|
28511
28527
|
};
|
|
28528
|
+
NovoDatePickerInputElement.prototype.handleInvalidDate = function () {
|
|
28529
|
+
if (this.isInvalidDate && this.value) {
|
|
28530
|
+
this.showInvalidDateError = true;
|
|
28531
|
+
this.clearValue();
|
|
28532
|
+
this.closePanel();
|
|
28533
|
+
}
|
|
28534
|
+
};
|
|
28535
|
+
NovoDatePickerInputElement.prototype.setupInvalidDateErrorMessage = function () {
|
|
28536
|
+
var dateFormat = this.labels.dateFormatString();
|
|
28537
|
+
if (Helpers.isEmpty(dateFormat)) {
|
|
28538
|
+
// Default to mm/dd/yyyy
|
|
28539
|
+
dateFormat = 'mm/dd/yyyy';
|
|
28540
|
+
}
|
|
28541
|
+
else {
|
|
28542
|
+
dateFormat = dateFormat.toLowerCase();
|
|
28543
|
+
}
|
|
28544
|
+
this.invalidDateErrorMessage = "Invalid date field entered. Date format of " + dateFormat + " is required.";
|
|
28545
|
+
};
|
|
28512
28546
|
NovoDatePickerInputElement.prototype.dispatchOnChange = function (newValue, blur, skip) {
|
|
28513
28547
|
if (blur === void 0) { blur = false; }
|
|
28514
28548
|
if (skip === void 0) { skip = false; }
|
|
@@ -28601,7 +28635,7 @@
|
|
|
28601
28635
|
{ type: core.Component, args: [{
|
|
28602
28636
|
selector: 'novo-date-picker-input',
|
|
28603
28637
|
providers: [DATE_VALUE_ACCESSOR],
|
|
28604
|
-
template: "\n <input\n type=\"text\"\n [name]=\"name\"\n [(ngModel)]=\"formattedValue\"\n [textMask]=\"maskOptions\"\n [placeholder]=\"placeholder\"\n (focus)=\"_handleFocus($event)\"\n (keydown)=\"_handleKeydown($event)\"\n (input)=\"_handleInput($event)\"\n (blur)=\"_handleBlur($event)\"\n #input\n data-automation-id=\"date-input\"\n [disabled]=\"disabled\"\n />\n <i *ngIf=\"!hasValue\" (click)=\"openPanel()\" class=\"bhi-calendar\"></i>\n <i *ngIf=\"hasValue\" (click)=\"clearValue()\" class=\"bhi-times\"></i>\n <novo-overlay-template [parent]=\"element\" position=\"above-below\">\n <novo-date-picker\n [start]=\"start\"\n [end]=\"end\"\n inline=\"true\"\n (onSelect)=\"setValueAndClose($event)\"\n [ngModel]=\"value\"\n [weekStart]=\"weekStart\"\n ></novo-date-picker>\n </novo-overlay-template>\n "
|
|
28638
|
+
template: "\n <input\n type=\"text\"\n [name]=\"name\"\n [(ngModel)]=\"formattedValue\"\n [textMask]=\"maskOptions\"\n [placeholder]=\"placeholder\"\n (focus)=\"_handleFocus($event)\"\n (keydown)=\"_handleKeydown($event)\"\n (input)=\"_handleInput($event)\"\n (blur)=\"_handleBlur($event)\"\n #input\n data-automation-id=\"date-input\"\n [disabled]=\"disabled\"\n />\n <span class=\"error-text\" *ngIf=\"showInvalidDateError\">{{invalidDateErrorMessage}}</span>\n <i *ngIf=\"!hasValue\" (click)=\"openPanel()\" class=\"bhi-calendar\"></i>\n <i *ngIf=\"hasValue\" (click)=\"clearValue()\" class=\"bhi-times\"></i>\n <novo-overlay-template [parent]=\"element\" position=\"above-below\">\n <novo-date-picker\n [start]=\"start\"\n [end]=\"end\"\n inline=\"true\"\n (onSelect)=\"setValueAndClose($event)\"\n [disabledDateMessage]=\"disabledDateMessage\"\n [ngModel]=\"value\"\n [weekStart]=\"weekStart\"\n ></novo-date-picker>\n </novo-overlay-template>\n "
|
|
28605
28639
|
},] }
|
|
28606
28640
|
];
|
|
28607
28641
|
NovoDatePickerInputElement.ctorParameters = function () { return [
|
|
@@ -28619,6 +28653,7 @@
|
|
|
28619
28653
|
format: [{ type: core.Input }],
|
|
28620
28654
|
textMaskEnabled: [{ type: core.Input }],
|
|
28621
28655
|
allowInvalidDate: [{ type: core.Input }],
|
|
28656
|
+
disabledDateMessage: [{ type: core.Input }],
|
|
28622
28657
|
disabled: [{ type: core.HostBinding, args: ['class.disabled',] }, { type: core.Input }],
|
|
28623
28658
|
weekStart: [{ type: core.Input }],
|
|
28624
28659
|
blurEvent: [{ type: core.Output }],
|
|
@@ -29121,28 +29156,41 @@
|
|
|
29121
29156
|
_this.toaster = toaster;
|
|
29122
29157
|
_this.role = 'columnheader';
|
|
29123
29158
|
_this.maxSelected = undefined;
|
|
29159
|
+
_this.canSelectAll = false;
|
|
29124
29160
|
_this.checked = false;
|
|
29125
29161
|
renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', "novo-checkbox-column-header-" + columnDef.cssClassFriendlyName);
|
|
29126
29162
|
renderer.addClass(elementRef.nativeElement, "novo-checkbox-column-" + columnDef.cssClassFriendlyName);
|
|
29127
29163
|
renderer.addClass(elementRef.nativeElement, 'novo-data-table-checkbox-header-cell');
|
|
29128
29164
|
_this.selectionSubscription = _this.dataTable.state.selectionSource.subscribe(function () {
|
|
29129
29165
|
_this.checked = _this.dataTable.allCurrentRowsSelected();
|
|
29166
|
+
if (_this.canSelectAll) {
|
|
29167
|
+
_this.selectAllChanged();
|
|
29168
|
+
}
|
|
29130
29169
|
_this.ref.markForCheck();
|
|
29131
29170
|
});
|
|
29132
29171
|
_this.paginationSubscription = _this.dataTable.state.paginationSource.subscribe(function (event) {
|
|
29133
29172
|
if (event.isPageSizeChange) {
|
|
29134
29173
|
_this.checked = false;
|
|
29174
|
+
if (_this.canSelectAll) {
|
|
29175
|
+
_this.selectAllChanged();
|
|
29176
|
+
}
|
|
29135
29177
|
_this.dataTable.selectRows(false);
|
|
29136
29178
|
_this.dataTable.state.checkRetainment('pageSize');
|
|
29137
29179
|
_this.dataTable.state.reset(false, true);
|
|
29138
29180
|
}
|
|
29139
29181
|
else {
|
|
29140
29182
|
_this.checked = _this.dataTable.allCurrentRowsSelected();
|
|
29183
|
+
if (_this.canSelectAll) {
|
|
29184
|
+
_this.selectAllChanged();
|
|
29185
|
+
}
|
|
29141
29186
|
}
|
|
29142
29187
|
_this.ref.markForCheck();
|
|
29143
29188
|
});
|
|
29144
29189
|
_this.resetSubscription = _this.dataTable.state.resetSource.subscribe(function () {
|
|
29145
29190
|
_this.checked = false;
|
|
29191
|
+
if (_this.canSelectAll) {
|
|
29192
|
+
_this.selectAllChanged();
|
|
29193
|
+
}
|
|
29146
29194
|
_this.ref.markForCheck();
|
|
29147
29195
|
});
|
|
29148
29196
|
return _this;
|
|
@@ -29177,6 +29225,17 @@
|
|
|
29177
29225
|
else {
|
|
29178
29226
|
this.dataTable.selectRows(!this.checked);
|
|
29179
29227
|
}
|
|
29228
|
+
if (this.canSelectAll) {
|
|
29229
|
+
this.selectAllChanged();
|
|
29230
|
+
}
|
|
29231
|
+
};
|
|
29232
|
+
NovoDataTableCheckboxHeaderCell.prototype.selectAllChanged = function () {
|
|
29233
|
+
var _a, _b, _c;
|
|
29234
|
+
var allSelectedEvent = {
|
|
29235
|
+
allSelected: this.checked,
|
|
29236
|
+
selectedCount: (_c = (_b = (_a = this.dataTable) === null || _a === void 0 ? void 0 : _a.state) === null || _b === void 0 ? void 0 : _b.selected) === null || _c === void 0 ? void 0 : _c.length,
|
|
29237
|
+
};
|
|
29238
|
+
this.dataTable.allSelected.emit(allSelectedEvent);
|
|
29180
29239
|
};
|
|
29181
29240
|
return NovoDataTableCheckboxHeaderCell;
|
|
29182
29241
|
}(table.CdkHeaderCell));
|
|
@@ -29197,7 +29256,8 @@
|
|
|
29197
29256
|
]; };
|
|
29198
29257
|
NovoDataTableCheckboxHeaderCell.propDecorators = {
|
|
29199
29258
|
role: [{ type: core.HostBinding, args: ['attr.role',] }],
|
|
29200
|
-
maxSelected: [{ type: core.Input }]
|
|
29259
|
+
maxSelected: [{ type: core.Input }],
|
|
29260
|
+
canSelectAll: [{ type: core.Input }]
|
|
29201
29261
|
};
|
|
29202
29262
|
|
|
29203
29263
|
var NovoDataTableHeaderCell = /** @class */ (function (_super) {
|
|
@@ -29859,7 +29919,7 @@
|
|
|
29859
29919
|
animations.transition('date <=> time', animations.animate('200ms ease-in')),
|
|
29860
29920
|
]),
|
|
29861
29921
|
],
|
|
29862
|
-
template: "\n <div class=\"date-time-container\">\n <div class=\"date-time-tabs\">\n <span\n class=\"date-tab\"\n (click)=\"toggleView('date')\"\n [@dateTextState]=\"componentTabState\"\n data-automation-id=\"novo-date-time-date-tab\"\n >{{ selectedLabel }}</span\n >\n <span\n class=\"time-tab\"\n (click)=\"toggleView('time')\"\n [@timeTextState]=\"componentTabState\"\n data-automation-id=\"novo-date-time-time-tab\"\n >\n <span class=\"hours\" data-automation-id=\"novo-time-picker-hours\">{{ hours }}</span\n >:<span class=\"minutes\" data-automation-id=\"novo-time-picker-minutes\">{{ minutes }}</span>\n <span *ngIf=\"!military\" class=\"meridian\"> {{ meridian }}</span>\n </span>\n <i class=\"date-time-indicator\" [@indicatorState]=\"componentTabState\"></i>\n </div>\n <div class=\"view-container\" [@containerState]=\"componentTabState\">\n <div class=\"calendar\">\n <novo-date-picker\n (onSelect)=\"onDateSelected($event)\"\n [(ngModel)]=\"model\"\n inline=\"true\"\n [minYear]=\"minYear\"\n [maxYear]=\"maxYear\"\n [start]=\"start\"\n [end]=\"end\"\n [weekStart]=\"weekStart\"\n ></novo-date-picker>\n </div>\n <div class=\"time-picker\">\n <novo-time-picker (onSelect)=\"onTimeSelected($event)\" [(ngModel)]=\"model\" [military]=\"military\" inline=\"true\"></novo-time-picker>\n </div>\n </div>\n </div>\n "
|
|
29922
|
+
template: "\n <div class=\"date-time-container\">\n <div class=\"date-time-tabs\">\n <span\n class=\"date-tab\"\n (click)=\"toggleView('date')\"\n [@dateTextState]=\"componentTabState\"\n data-automation-id=\"novo-date-time-date-tab\"\n >{{ selectedLabel }}</span\n >\n <span\n class=\"time-tab\"\n (click)=\"toggleView('time')\"\n [@timeTextState]=\"componentTabState\"\n data-automation-id=\"novo-date-time-time-tab\"\n >\n <span class=\"hours\" data-automation-id=\"novo-time-picker-hours\">{{ hours }}</span\n >:<span class=\"minutes\" data-automation-id=\"novo-time-picker-minutes\">{{ minutes }}</span>\n <span *ngIf=\"!military\" class=\"meridian\"> {{ meridian }}</span>\n </span>\n <i class=\"date-time-indicator\" [@indicatorState]=\"componentTabState\"></i>\n </div>\n <div class=\"view-container\" [@containerState]=\"componentTabState\">\n <div class=\"calendar\">\n <novo-date-picker\n (onSelect)=\"onDateSelected($event)\"\n [(ngModel)]=\"model\"\n inline=\"true\"\n [minYear]=\"minYear\"\n [maxYear]=\"maxYear\"\n [start]=\"start\"\n [end]=\"end\"\n [disabledDateMessage]=\"disabledDateMessage\"\n [weekStart]=\"weekStart\"\n ></novo-date-picker>\n </div>\n <div class=\"time-picker\">\n <novo-time-picker (onSelect)=\"onTimeSelected($event)\" [(ngModel)]=\"model\" [military]=\"military\" inline=\"true\"></novo-time-picker>\n </div>\n </div>\n </div>\n "
|
|
29863
29923
|
},] }
|
|
29864
29924
|
];
|
|
29865
29925
|
NovoDateTimePickerElement.ctorParameters = function () { return [
|
|
@@ -29873,6 +29933,7 @@
|
|
|
29873
29933
|
end: [{ type: core.Input }],
|
|
29874
29934
|
military: [{ type: core.Input }],
|
|
29875
29935
|
weekStart: [{ type: core.Input }],
|
|
29936
|
+
disabledDateMessage: [{ type: core.Input }],
|
|
29876
29937
|
onSelect: [{ type: core.Output }]
|
|
29877
29938
|
};
|
|
29878
29939
|
|
|
@@ -29984,7 +30045,7 @@
|
|
|
29984
30045
|
{ type: core.Component, args: [{
|
|
29985
30046
|
selector: 'novo-date-time-picker-input',
|
|
29986
30047
|
providers: [DATE_VALUE_ACCESSOR$1],
|
|
29987
|
-
template: "\n <novo-date-picker-input\n [ngModel]=\"datePart\"\n (ngModelChange)=\"updateDate($event)\"\n [start]=\"start\"\n [end]=\"end\"\n [maskOptions]=\"maskOptions\"\n (blurEvent)=\"handleBlur($event)\"\n (focusEvent)=\"handleFocus($event)\"\n [disabled]=\"disabled\"\n [weekStart]=\"weekStart\"\n ></novo-date-picker-input>\n <novo-time-picker-input\n [ngModel]=\"timePart\"\n (ngModelChange)=\"updateTime($event)\"\n [military]=\"military\"\n (blurEvent)=\"handleBlur($event)\"\n (focusEvent)=\"handleFocus($event)\"\n [disabled]=\"disabled\"\n ></novo-time-picker-input>\n "
|
|
30048
|
+
template: "\n <novo-date-picker-input\n [ngModel]=\"datePart\"\n (ngModelChange)=\"updateDate($event)\"\n [start]=\"start\"\n [end]=\"end\"\n [disabledDateMessage]=\"disabledDateMessage\"\n [maskOptions]=\"maskOptions\"\n (blurEvent)=\"handleBlur($event)\"\n (focusEvent)=\"handleFocus($event)\"\n [disabled]=\"disabled\"\n [weekStart]=\"weekStart\"\n ></novo-date-picker-input>\n <novo-time-picker-input\n [ngModel]=\"timePart\"\n (ngModelChange)=\"updateTime($event)\"\n [military]=\"military\"\n (blurEvent)=\"handleBlur($event)\"\n (focusEvent)=\"handleFocus($event)\"\n [disabled]=\"disabled\"\n ></novo-time-picker-input>\n "
|
|
29988
30049
|
},] }
|
|
29989
30050
|
];
|
|
29990
30051
|
NovoDateTimePickerInputElement.ctorParameters = function () { return [
|
|
@@ -30002,6 +30063,7 @@
|
|
|
30002
30063
|
disabled: [{ type: core.Input }],
|
|
30003
30064
|
format: [{ type: core.Input }],
|
|
30004
30065
|
weekStart: [{ type: core.Input }],
|
|
30066
|
+
disabledDateMessage: [{ type: core.Input }],
|
|
30005
30067
|
blurEvent: [{ type: core.Output }],
|
|
30006
30068
|
focusEvent: [{ type: core.Output }],
|
|
30007
30069
|
changeEvent: [{ type: core.Output }]
|
|
@@ -30882,6 +30944,7 @@
|
|
|
30882
30944
|
_this.isEmpty = config.isEmpty;
|
|
30883
30945
|
}
|
|
30884
30946
|
_this.weekStart = config.weekStart || 0;
|
|
30947
|
+
_this.disabledDateMessage = config.disabledDateMessage;
|
|
30885
30948
|
return _this;
|
|
30886
30949
|
}
|
|
30887
30950
|
return BaseControl;
|
|
@@ -31379,6 +31442,7 @@
|
|
|
31379
31442
|
_this.tipWell = control.tipWell;
|
|
31380
31443
|
_this.customControlConfig = control.customControlConfig;
|
|
31381
31444
|
_this.warning = control.warning;
|
|
31445
|
+
_this.disabledDateMessage = control.disabledDateMessage;
|
|
31382
31446
|
// Reactive Form, need to enable/disable, can't bind to [disabled]
|
|
31383
31447
|
if (_this.readOnly) {
|
|
31384
31448
|
_this.disable();
|
|
@@ -31731,7 +31795,7 @@
|
|
|
31731
31795
|
return key.indexOf('customEncrypted') > -1;
|
|
31732
31796
|
};
|
|
31733
31797
|
FormUtils.prototype.getControlForField = function (field, http, config, overrides, forTable, fieldData) {
|
|
31734
|
-
var e_1,
|
|
31798
|
+
var e_1, _b;
|
|
31735
31799
|
if (forTable === void 0) { forTable = false; }
|
|
31736
31800
|
// TODO: if field.type overrides `determineInputType` we should use it in that method or use this method
|
|
31737
31801
|
// TODO: (cont.) as the setter of the field argument
|
|
@@ -31770,7 +31834,7 @@
|
|
|
31770
31834
|
closeOnSelect: field.closeOnSelect,
|
|
31771
31835
|
layoutOptions: field.layoutOptions,
|
|
31772
31836
|
};
|
|
31773
|
-
this.
|
|
31837
|
+
this.inferDateRange(controlConfig, field);
|
|
31774
31838
|
// TODO: getControlOptions should always return the correct format
|
|
31775
31839
|
var optionsConfig = this.getControlOptions(field, http, config, fieldData);
|
|
31776
31840
|
if (Array.isArray(optionsConfig) && !(type === 'chips' || type === 'picker')) {
|
|
@@ -31910,8 +31974,8 @@
|
|
|
31910
31974
|
controlConfig.config.readOnly = controlConfig.readOnly;
|
|
31911
31975
|
if (field.fields && field.fields.length) {
|
|
31912
31976
|
try {
|
|
31913
|
-
for (var
|
|
31914
|
-
var subfield =
|
|
31977
|
+
for (var _c = __values(field.fields), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
31978
|
+
var subfield = _d.value;
|
|
31915
31979
|
controlConfig.config[subfield.name] = {
|
|
31916
31980
|
required: !!subfield.required,
|
|
31917
31981
|
hidden: !!subfield.readOnly,
|
|
@@ -31949,7 +32013,7 @@
|
|
|
31949
32013
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
31950
32014
|
finally {
|
|
31951
32015
|
try {
|
|
31952
|
-
if (
|
|
32016
|
+
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
|
31953
32017
|
}
|
|
31954
32018
|
finally { if (e_1) throw e_1.error; }
|
|
31955
32019
|
}
|
|
@@ -32077,7 +32141,7 @@
|
|
|
32077
32141
|
return (data && data[field.name]) || null;
|
|
32078
32142
|
};
|
|
32079
32143
|
FormUtils.prototype.getEmbeddedFieldData = function (field, data) {
|
|
32080
|
-
var
|
|
32144
|
+
var _b = __read(field.name.split('.'), 2), parentFieldName = _b[0], fieldName = _b[1];
|
|
32081
32145
|
return (data && data[parentFieldName] && data[parentFieldName][fieldName]) || null;
|
|
32082
32146
|
};
|
|
32083
32147
|
FormUtils.prototype.getFormFields = function (meta) {
|
|
@@ -32296,23 +32360,23 @@
|
|
|
32296
32360
|
return dateFns.addDays(dateFns.startOfToday(), dateRange.minOffset);
|
|
32297
32361
|
}
|
|
32298
32362
|
};
|
|
32299
|
-
|
|
32300
|
-
|
|
32301
|
-
|
|
32302
|
-
|
|
32303
|
-
if (
|
|
32304
|
-
return
|
|
32363
|
+
FormUtils.prototype.getEndDateFromRange = function (dateRange) {
|
|
32364
|
+
if (dateRange.maxDate) {
|
|
32365
|
+
return dateFns.parse(dateRange.maxDate);
|
|
32366
|
+
}
|
|
32367
|
+
else if (dateRange.minOffset) {
|
|
32368
|
+
return dateFns.addDays(dateFns.startOfToday(), dateRange.minOffset);
|
|
32305
32369
|
}
|
|
32306
|
-
// there is no restriction on the start date
|
|
32307
|
-
return null;
|
|
32308
32370
|
};
|
|
32309
|
-
|
|
32310
|
-
|
|
32311
|
-
|
|
32312
|
-
|
|
32313
|
-
|
|
32314
|
-
|
|
32315
|
-
|
|
32371
|
+
/**
|
|
32372
|
+
* Get the min start date and max end date of a Date base on field data.
|
|
32373
|
+
*/
|
|
32374
|
+
FormUtils.prototype.inferDateRange = function (controlConfig, field) {
|
|
32375
|
+
var _a;
|
|
32376
|
+
if (field.dataType === 'Date' && field.allowedDateRange) {
|
|
32377
|
+
controlConfig.startDate = this.getStartDateFromRange(field.allowedDateRange);
|
|
32378
|
+
controlConfig.endDate = this.getEndDateFromRange(field.allowedDateRange);
|
|
32379
|
+
controlConfig.disabledDateMessage = (_a = field.allowedDateRange) === null || _a === void 0 ? void 0 : _a.disabledDateMessage;
|
|
32316
32380
|
}
|
|
32317
32381
|
};
|
|
32318
32382
|
FormUtils.prototype.inflateEmbeddedProperties = function (data) {
|
|
@@ -32320,7 +32384,7 @@
|
|
|
32320
32384
|
Object.keys(data)
|
|
32321
32385
|
.filter(function (fieldName) { return fieldName.includes('.'); })
|
|
32322
32386
|
.forEach(function (field) {
|
|
32323
|
-
var
|
|
32387
|
+
var _b = __read(field.split('.'), 2), parentFieldName = _b[0], fieldName = _b[1];
|
|
32324
32388
|
if (!data[parentFieldName]) {
|
|
32325
32389
|
data[parentFieldName] = {};
|
|
32326
32390
|
}
|
|
@@ -34267,7 +34331,7 @@
|
|
|
34267
34331
|
NovoControlTemplates.decorators = [
|
|
34268
34332
|
{ type: core.Component, args: [{
|
|
34269
34333
|
selector: 'novo-control-templates',
|
|
34270
|
-
template: "\n <!---Readonly--->\n <ng-template novoTemplate=\"read-only\" let-form=\"form\" let-control>\n <div>{{ form.value[control.key] }}</div>\n </ng-template>\n <!--Textbox--->\n <ng-template novoTemplate=\"textbox\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container novo-control-input-with-label\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <input *ngIf=\"control?.type !== 'number' && control?.textMaskEnabled\" [textMask]=\"control.maskOptions\" [formControlName]=\"control.key\" [id]=\"control.key\" [type]=\"control?.type\" [placeholder]=\"control?.placeholder\" (input)=\"methods.emitChange($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" autocomplete>\n <input *ngIf=\"control?.type !== 'number' && !control?.textMaskEnabled\" [class.maxlength-error]=\"errors?.maxlength\" [formControlName]=\"control.key\" [id]=\"control.key\" [type]=\"control?.type\" [placeholder]=\"control?.placeholder\" (input)=\"methods.emitChange($event)\" [maxlength]=\"control?.maxlength\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" autocomplete>\n <input *ngIf=\"control?.type === 'number' && control?.subType !== 'percentage'\" [class.maxlength-error]=\"errors?.maxlength\" [formControlName]=\"control.key\" [id]=\"control.key\" [type]=\"control?.type\" [placeholder]=\"control?.placeholder\" (keydown)=\"methods.restrictKeys($event)\" (input)=\"methods.emitChange($event)\" [maxlength]=\"control?.maxlength\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" step=\"any\" (mousewheel)=\"numberInput.blur()\" #numberInput>\n <!-- the percentage input does not use formControlName like a normal reactive input because instead of setting the floating point value directly, it is multiplied by 100 into a percentage value -->\n <input *ngIf=\"control?.type === 'number' && control?.subType === 'percentage'\" [id]=\"control.key\" [type]=\"control?.type\" [placeholder]=\"control?.placeholder\" (keydown)=\"methods.restrictKeys($event)\" [value]=\"control?.percentValue\" [disabled]=\"control?.readOnly\" (input)=\"methods.handlePercentChange($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" step=\"any\" (mousewheel)=\"percentInput.blur()\" #percentInput>\n <label class=\"input-label\" *ngIf=\"control?.subType === 'currency'\">{{ control.currencyFormat }}</label>\n <label class=\"input-label\" *ngIf=\"control?.subType === 'percentage'\">%</label>\n </div>\n </ng-template>\n\n <!--Textarea--->\n <ng-template novoTemplate=\"text-area\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div class=\"textarea-container\" [formGroup]=\"form\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <textarea [class.maxlength-error]=\"errors?.maxlength\" [name]=\"control.key\" [attr.id]=\"control.key\" [placeholder]=\"control.placeholder\" [formControlName]=\"control.key\" autosize (input)=\"methods.handleTextAreaInput($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" [maxlength]=\"control?.maxlength\"></textarea>\n </div>\n </ng-template>\n\n <!--Editor-->\n <ng-template novoTemplate=\"editor\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-editor [name]=\"control.key\" [formControlName]=\"control.key\" [startupFocus]=\"control.startupFocus\" [minimal]=\"control.minimal\" [fileBrowserImageUploadUrl]=\"control.fileBrowserImageUploadUrl\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" [config]=\"control.config\"></novo-editor>\n </div>\n </ng-template>\n\n <!--AceEditor-->\n <ng-template novoTemplate=\"ace-editor\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-ace-editor [name]=\"control.key\" [formControlName]=\"control.key\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\"></novo-ace-editor>\n </div>\n </ng-template>\n\n <!--HTML5 Select-->\n <ng-template novoTemplate=\"native-select\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <select [id]=\"control.key\" [formControlName]=\"control.key\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <option *ngIf=\"control.placeholder\" value=\"\" disabled selected hidden>{{ control.placeholder }}</option>\n <option *ngFor=\"let opt of control.options\" [value]=\"opt.key\">{{opt.value}}</option>\n </select>\n </div>\n </ng-template>\n\n <!--File-->\n <ng-template novoTemplate=\"file\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-file-input [formControlName]=\"control.key\" [id]=\"control.key\" [name]=\"control.key\" [placeholder]=\"control.placeholder\" [value]=\"control.value\" [multiple]=\"control.multiple\" [layoutOptions]=\"control.layoutOptions\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" (edit)=\"methods.handleEdit($event)\" (save)=\"methods.handleSave($event)\" (delete)=\"methods.handleDelete($event)\" (upload)=\"methods.handleUpload($event)\"></novo-file-input>\n </div>\n </ng-template>\n\n <!--Tiles-->\n <ng-template novoTemplate=\"tiles\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-tiles [options]=\"control.options\" [formControlName]=\"control.key\" (onChange)=\"methods.modelChange($event)\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" [controlDisabled]=\"control.disabled\"></novo-tiles>\n </div>\n </ng-template>\n\n <!--Picker-->\n <ng-template novoTemplate=\"picker\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container\">\n <novo-picker [config]=\"control.config\" [formControlName]=\"control.key\" [placeholder]=\"control.placeholder\" [parentScrollSelector]=\"control.parentScrollSelector\" *ngIf=\"!control.multiple\" (select)=\"methods.modelChange($event);\" (changed)=\"methods.modelChangeWithRaw($event)\" (typing)=\"methods.handleTyping($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\"></novo-picker>\n <novo-chips [source]=\"control.config\" [type]=\"control.config.type\" [formControlName]=\"control.key\" [placeholder]=\"control.placeholder\" [maxlength]=\"control?.maxlength\" *ngIf=\"control.multiple && !control.config.columns\" [closeOnSelect]=\"control.closeOnSelect\" (changed)=\"methods.modelChangeWithRaw($event)\" (typing)=\"methods.handleTyping($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\"></novo-chips>\n <novo-row-chips [source]=\"control.config\" [type]=\"control.config.type\" [formControlName]=\"control.key\" [placeholder]=\"control.placeholder\" *ngIf=\"control.multiple && control.config.columns\" [closeOnSelect]=\"control.closeOnSelect\" (changed)=\"methods.modelChangeWithRaw($event)\" (typing)=\"methods.handleTyping($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\"></novo-row-chips>\n </div>\n </ng-template>\n\n <!--Novo Select-->\n <ng-template novoTemplate=\"select\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-select [options]=\"control.options\" [headerConfig]=\"control.headerConfig\" [placeholder]=\"control.placeholder\" [formControlName]=\"control.key\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" (onSelect)=\"methods.modelChange($event)\"></novo-select>\n </div>\n </ng-template>\n\n <!--Radio-->\n <ng-template novoTemplate=\"radio\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container\">\n <novo-radio [name]=\"control.key\" [formControlName]=\"control.key\" *ngFor=\"let option of control.options\" [value]=\"option.value\" [label]=\"option.label\" [checked]=\"option.value === form.value[control.key] || (form.value[control.key] && option.value === form.value[control.key].id)\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" [button]=\"!!option.icon\" [icon]=\"option.icon\" [attr.data-automation-id]=\"control.key + '-' + (option?.label || option?.value)\"></novo-radio>\n </div>\n </ng-template>\n\n <!--Time-->\n <ng-template novoTemplate=\"time\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <novo-time-picker-input [attr.id]=\"control.key\" [name]=\"control.key\" [formControlName]=\"control.key\" [placeholder]=\"control.placeholder\" [military]=\"control.military\"></novo-time-picker-input>\n </div>\n </ng-template>\n\n <!--Date-->\n <ng-template novoTemplate=\"date\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <novo-date-picker-input [attr.id]=\"control.key\" [name]=\"control.key\" [formControlName]=\"control.key\" [start]=\"control.startDate\" [end]=\"control.endDate\" [format]=\"control.dateFormat\" [allowInvalidDate]=\"control.allowInvalidDate\" [textMaskEnabled]=\"control.textMaskEnabled\" [placeholder]=\"control.placeholder\" [weekStart]=\"control.weekStart\" (focusEvent)=\"methods.handleFocus($event)\" (blurEvent)=\"methods.handleBlur($event)\" (changeEvent)=\"methods.emitChange($event)\"></novo-date-picker-input>\n </div>\n </ng-template>\n\n <!--Date and Time-->\n <ng-template novoTemplate=\"date-time\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <novo-date-time-picker-input [attr.id]=\"control.key\" [name]=\"control.key\" [formControlName]=\"control.key\" [start]=\"control.startDate\" [end]=\"control.endDate\" [placeholder]=\"control.placeholder\" [military]=\"control.military\" [weekStart]=\"control.weekStart\" (focusEvent)=\"methods.handleFocus($event)\" (blurEvent)=\"methods.handleBlur($event)\" (changeEvent)=\"methods.emitChange($event)\" ></novo-date-time-picker-input>\n </div>\n </ng-template>\n\n <!--Address-->\n <ng-template novoTemplate=\"address\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-address [formControlName]=\"control.key\" [config]=\"control?.config\" [readOnly]=\"control?.readOnly\" (change)=\"methods.handleAddressChange($event)\" (focus)=\"methods.handleFocus($event.event, $event.field)\" (blur)=\"methods.handleBlur($event.event, $event.field)\" (validityChange)=\"methods.updateValidity()\"></novo-address>\n </div>\n </ng-template>\n\n <!--Checkbox-->\n <ng-template novoTemplate=\"checkbox\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-checkbox [formControlName]=\"control?.key\" [name]=\"control?.key\" [label]=\"control?.checkboxLabel\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" [layoutOptions]=\"control?.layoutOptions\"></novo-checkbox>\n </div>\n </ng-template>\n\n <!--Checklist-->\n <ng-template novoTemplate=\"checklist\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-check-list [formControlName]=\"control.key\" [name]=\"control.key\" [options]=\"control?.options\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" (onSelect)=\"methods.modelChange($event)\"></novo-check-list>\n </div>\n </ng-template>\n\n <!--QuickNote-->\n <ng-template novoTemplate=\"quick-note\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-quick-note [formControlName]=\"control.key\" [startupFocus]=\"control?.startupFocus\" [placeholder]=\"control?.placeholder\" [config]=\"control?.config\" (change)=\"methods.modelChange($event)\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" [tooltipPreline]=\"control?.tooltipPreline\"></novo-quick-note>\n </div>\n </ng-template>\n "
|
|
34334
|
+
template: "\n <!---Readonly--->\n <ng-template novoTemplate=\"read-only\" let-form=\"form\" let-control>\n <div>{{ form.value[control.key] }}</div>\n </ng-template>\n <!--Textbox--->\n <ng-template novoTemplate=\"textbox\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container novo-control-input-with-label\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <input *ngIf=\"control?.type !== 'number' && control?.textMaskEnabled\" [textMask]=\"control.maskOptions\" [formControlName]=\"control.key\" [id]=\"control.key\" [type]=\"control?.type\" [placeholder]=\"control?.placeholder\" (input)=\"methods.emitChange($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" autocomplete>\n <input *ngIf=\"control?.type !== 'number' && !control?.textMaskEnabled\" [class.maxlength-error]=\"errors?.maxlength\" [formControlName]=\"control.key\" [id]=\"control.key\" [type]=\"control?.type\" [placeholder]=\"control?.placeholder\" (input)=\"methods.emitChange($event)\" [maxlength]=\"control?.maxlength\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" autocomplete>\n <input *ngIf=\"control?.type === 'number' && control?.subType !== 'percentage'\" [class.maxlength-error]=\"errors?.maxlength\" [formControlName]=\"control.key\" [id]=\"control.key\" [type]=\"control?.type\" [placeholder]=\"control?.placeholder\" (keydown)=\"methods.restrictKeys($event)\" (input)=\"methods.emitChange($event)\" [maxlength]=\"control?.maxlength\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" step=\"any\" (mousewheel)=\"numberInput.blur()\" #numberInput>\n <!-- the percentage input does not use formControlName like a normal reactive input because instead of setting the floating point value directly, it is multiplied by 100 into a percentage value -->\n <input *ngIf=\"control?.type === 'number' && control?.subType === 'percentage'\" [id]=\"control.key\" [type]=\"control?.type\" [placeholder]=\"control?.placeholder\" (keydown)=\"methods.restrictKeys($event)\" [value]=\"control?.percentValue\" [disabled]=\"control?.readOnly\" (input)=\"methods.handlePercentChange($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" step=\"any\" (mousewheel)=\"percentInput.blur()\" #percentInput>\n <label class=\"input-label\" *ngIf=\"control?.subType === 'currency'\">{{ control.currencyFormat }}</label>\n <label class=\"input-label\" *ngIf=\"control?.subType === 'percentage'\">%</label>\n </div>\n </ng-template>\n\n <!--Textarea--->\n <ng-template novoTemplate=\"text-area\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div class=\"textarea-container\" [formGroup]=\"form\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <textarea [class.maxlength-error]=\"errors?.maxlength\" [name]=\"control.key\" [attr.id]=\"control.key\" [placeholder]=\"control.placeholder\" [formControlName]=\"control.key\" autosize (input)=\"methods.handleTextAreaInput($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" [maxlength]=\"control?.maxlength\"></textarea>\n </div>\n </ng-template>\n\n <!--Editor-->\n <ng-template novoTemplate=\"editor\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-editor [name]=\"control.key\" [formControlName]=\"control.key\" [startupFocus]=\"control.startupFocus\" [minimal]=\"control.minimal\" [fileBrowserImageUploadUrl]=\"control.fileBrowserImageUploadUrl\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" [config]=\"control.config\"></novo-editor>\n </div>\n </ng-template>\n\n <!--AceEditor-->\n <ng-template novoTemplate=\"ace-editor\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-ace-editor [name]=\"control.key\" [formControlName]=\"control.key\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\"></novo-ace-editor>\n </div>\n </ng-template>\n\n <!--HTML5 Select-->\n <ng-template novoTemplate=\"native-select\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <select [id]=\"control.key\" [formControlName]=\"control.key\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <option *ngIf=\"control.placeholder\" value=\"\" disabled selected hidden>{{ control.placeholder }}</option>\n <option *ngFor=\"let opt of control.options\" [value]=\"opt.key\">{{opt.value}}</option>\n </select>\n </div>\n </ng-template>\n\n <!--File-->\n <ng-template novoTemplate=\"file\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-file-input [formControlName]=\"control.key\" [id]=\"control.key\" [name]=\"control.key\" [placeholder]=\"control.placeholder\" [value]=\"control.value\" [multiple]=\"control.multiple\" [layoutOptions]=\"control.layoutOptions\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" (edit)=\"methods.handleEdit($event)\" (save)=\"methods.handleSave($event)\" (delete)=\"methods.handleDelete($event)\" (upload)=\"methods.handleUpload($event)\"></novo-file-input>\n </div>\n </ng-template>\n\n <!--Tiles-->\n <ng-template novoTemplate=\"tiles\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-tiles [options]=\"control.options\" [formControlName]=\"control.key\" (onChange)=\"methods.modelChange($event)\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" [controlDisabled]=\"control.disabled\"></novo-tiles>\n </div>\n </ng-template>\n\n <!--Picker-->\n <ng-template novoTemplate=\"picker\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container\">\n <novo-picker [config]=\"control.config\" [formControlName]=\"control.key\" [placeholder]=\"control.placeholder\" [parentScrollSelector]=\"control.parentScrollSelector\" *ngIf=\"!control.multiple\" (select)=\"methods.modelChange($event);\" (changed)=\"methods.modelChangeWithRaw($event)\" (typing)=\"methods.handleTyping($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\"></novo-picker>\n <novo-chips [source]=\"control.config\" [type]=\"control.config.type\" [formControlName]=\"control.key\" [placeholder]=\"control.placeholder\" [maxlength]=\"control?.maxlength\" *ngIf=\"control.multiple && !control.config.columns\" [closeOnSelect]=\"control.closeOnSelect\" (changed)=\"methods.modelChangeWithRaw($event)\" (typing)=\"methods.handleTyping($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\"></novo-chips>\n <novo-row-chips [source]=\"control.config\" [type]=\"control.config.type\" [formControlName]=\"control.key\" [placeholder]=\"control.placeholder\" *ngIf=\"control.multiple && control.config.columns\" [closeOnSelect]=\"control.closeOnSelect\" (changed)=\"methods.modelChangeWithRaw($event)\" (typing)=\"methods.handleTyping($event)\" (focus)=\"methods.handleFocus($event)\" (blur)=\"methods.handleBlur($event)\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\"></novo-row-chips>\n </div>\n </ng-template>\n\n <!--Novo Select-->\n <ng-template novoTemplate=\"select\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-select [options]=\"control.options\" [headerConfig]=\"control.headerConfig\" [placeholder]=\"control.placeholder\" [formControlName]=\"control.key\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" (onSelect)=\"methods.modelChange($event)\"></novo-select>\n </div>\n </ng-template>\n\n <!--Radio-->\n <ng-template novoTemplate=\"radio\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container\">\n <novo-radio [name]=\"control.key\" [formControlName]=\"control.key\" *ngFor=\"let option of control.options\" [value]=\"option.value\" [label]=\"option.label\" [checked]=\"option.value === form.value[control.key] || (form.value[control.key] && option.value === form.value[control.key].id)\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" [button]=\"!!option.icon\" [icon]=\"option.icon\" [attr.data-automation-id]=\"control.key + '-' + (option?.label || option?.value)\"></novo-radio>\n </div>\n </ng-template>\n\n <!--Time-->\n <ng-template novoTemplate=\"time\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <novo-time-picker-input [attr.id]=\"control.key\" [name]=\"control.key\" [formControlName]=\"control.key\" [placeholder]=\"control.placeholder\" [military]=\"control.military\"></novo-time-picker-input>\n </div>\n </ng-template>\n\n <!--Date-->\n <ng-template novoTemplate=\"date\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <novo-date-picker-input [attr.id]=\"control.key\" [name]=\"control.key\" [formControlName]=\"control.key\" [start]=\"control.startDate\" [end]=\"control.endDate\" [disabledDateMessage]=\"control.disabledDateMessage\" [format]=\"control.dateFormat\" [allowInvalidDate]=\"control.allowInvalidDate\" [textMaskEnabled]=\"control.textMaskEnabled\" [placeholder]=\"control.placeholder\" [weekStart]=\"control.weekStart\" (focusEvent)=\"methods.handleFocus($event)\" (blurEvent)=\"methods.handleBlur($event)\" (changeEvent)=\"methods.emitChange($event)\"></novo-date-picker-input>\n </div>\n </ng-template>\n\n <!--Date and Time-->\n <ng-template novoTemplate=\"date-time\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\" class=\"novo-control-input-container\" [tooltip]=\"control.tooltip\" [tooltipPosition]=\"control.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\">\n <novo-date-time-picker-input [attr.id]=\"control.key\" [name]=\"control.key\" [formControlName]=\"control.key\" [start]=\"control.startDate\" [end]=\"control.endDate\" [placeholder]=\"control.placeholder\" [military]=\"control.military\" [weekStart]=\"control.weekStart\" (focusEvent)=\"methods.handleFocus($event)\" (blurEvent)=\"methods.handleBlur($event)\" (changeEvent)=\"methods.emitChange($event)\" ></novo-date-time-picker-input>\n </div>\n </ng-template>\n\n <!--Address-->\n <ng-template novoTemplate=\"address\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-address [formControlName]=\"control.key\" [config]=\"control?.config\" [readOnly]=\"control?.readOnly\" (change)=\"methods.handleAddressChange($event)\" (focus)=\"methods.handleFocus($event.event, $event.field)\" (blur)=\"methods.handleBlur($event.event, $event.field)\" (validityChange)=\"methods.updateValidity()\"></novo-address>\n </div>\n </ng-template>\n\n <!--Checkbox-->\n <ng-template novoTemplate=\"checkbox\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-checkbox [formControlName]=\"control?.key\" [name]=\"control?.key\" [label]=\"control?.checkboxLabel\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" [layoutOptions]=\"control?.layoutOptions\"></novo-checkbox>\n </div>\n </ng-template>\n\n <!--Checklist-->\n <ng-template novoTemplate=\"checklist\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-check-list [formControlName]=\"control.key\" [name]=\"control.key\" [options]=\"control?.options\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [tooltipPreline]=\"control?.tooltipPreline\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" (onSelect)=\"methods.modelChange($event)\"></novo-check-list>\n </div>\n </ng-template>\n\n <!--QuickNote-->\n <ng-template novoTemplate=\"quick-note\" let-control let-form=\"form\" let-errors=\"errors\" let-methods=\"methods\">\n <div [formGroup]=\"form\">\n <novo-quick-note [formControlName]=\"control.key\" [startupFocus]=\"control?.startupFocus\" [placeholder]=\"control?.placeholder\" [config]=\"control?.config\" (change)=\"methods.modelChange($event)\" [tooltip]=\"control?.tooltip\" [tooltipPosition]=\"control?.tooltipPosition\" [tooltipSize]=\"control?.tooltipSize\" [removeTooltipArrow]=\"control?.removeTooltipArrow\" [tooltipAutoPosition]=\"control?.tooltipAutoPosition\" [tooltipPreline]=\"control?.tooltipPreline\"></novo-quick-note>\n </div>\n </ng-template>\n "
|
|
34271
34335
|
},] }
|
|
34272
34336
|
];
|
|
34273
34337
|
NovoControlTemplates.ctorParameters = function () { return [
|