@meshmakers/octo-ui 3.5.10 → 3.5.20
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/fesm2022/meshmakers-octo-ui-entity-forms.mjs +65 -12
- package/fesm2022/meshmakers-octo-ui-entity-forms.mjs.map +1 -1
- package/fesm2022/meshmakers-octo-ui-tree-navigation-settings.mjs +4 -4
- package/fesm2022/meshmakers-octo-ui-tree-navigation-settings.mjs.map +1 -1
- package/package.json +1 -1
- package/types/meshmakers-octo-ui-entity-forms.d.ts +54 -5
- package/types/meshmakers-octo-ui-tree-navigation-settings.d.ts +1 -0
|
@@ -43,6 +43,7 @@ const DEFAULT_ENTITY_FORMS_MESSAGES = {
|
|
|
43
43
|
cancel: 'Cancel',
|
|
44
44
|
delete: 'Delete',
|
|
45
45
|
new: 'New',
|
|
46
|
+
newEntity: 'New {title}',
|
|
46
47
|
edit: 'Edit',
|
|
47
48
|
duplicate: 'Duplicate',
|
|
48
49
|
export: 'Export',
|
|
@@ -6514,6 +6515,14 @@ function toEntityListColumn(column, labels = {}, unsetPlaceholders, options = {}
|
|
|
6514
6515
|
return { ...base, dataType: 'text', truncate: true, ...(isFormattedType(column) ? { formatter: format } : {}) };
|
|
6515
6516
|
}
|
|
6516
6517
|
}
|
|
6518
|
+
/**
|
|
6519
|
+
* Label of a list's create action (AB#6211): `newEntity` with the form title ("New Discord
|
|
6520
|
+
* configuration"), or `new` when the form has no title.
|
|
6521
|
+
*/
|
|
6522
|
+
function entityListCreateLabel(messages, formTitle) {
|
|
6523
|
+
const title = formTitle?.trim();
|
|
6524
|
+
return title ? formatEntityFormsMessage(messages.newEntity, { title }) : messages.new;
|
|
6525
|
+
}
|
|
6517
6526
|
/**
|
|
6518
6527
|
* `<mm-entity-list>` — the list view of a resolved entity form.
|
|
6519
6528
|
*
|
|
@@ -6578,6 +6587,20 @@ class EntityListComponent {
|
|
|
6578
6587
|
/** Host toolbar actions, shown after "New" (AB#5623). */
|
|
6579
6588
|
toolbarActions = input([], /* @ts-ignore */
|
|
6580
6589
|
...(ngDevMode ? [{ debugName: "toolbarActions" }] : /* istanbul ignore next */ []));
|
|
6590
|
+
/**
|
|
6591
|
+
* Whether the list's toolbar carries the create action ("New {form title}", AB#6211). Default
|
|
6592
|
+
* `true`. `<mm-entity-page>` sets `false` and shows the action as the page's one solid primary
|
|
6593
|
+
* in its header instead (Studio action guideline §9). In the toolbar it renders flat.
|
|
6594
|
+
*/
|
|
6595
|
+
showCreateAction = input(true, /* @ts-ignore */
|
|
6596
|
+
...(ngDevMode ? [{ debugName: "showCreateAction" }] : /* istanbul ignore next */ []));
|
|
6597
|
+
/**
|
|
6598
|
+
* The row "open" action (AB#6222): `'auto'` (default) = Edit with write permission and an
|
|
6599
|
+
* editable form, else View; `'edit'` = always Edit (pencil) for lists whose rows open a
|
|
6600
|
+
* host-written editor although the generic form is read-only (Studio service accounts).
|
|
6601
|
+
*/
|
|
6602
|
+
openAction = input('auto', /* @ts-ignore */
|
|
6603
|
+
...(ngDevMode ? [{ debugName: "openAction" }] : /* istanbul ignore next */ []));
|
|
6581
6604
|
/**
|
|
6582
6605
|
* Host row actions (AB#5623): icon buttons in the actions column after Edit / View. Set
|
|
6583
6606
|
* `svgIcon` and `text` (tooltip / aria-label); `onClick` gets the row as `e.data`.
|
|
@@ -6653,6 +6676,9 @@ class EntityListComponent {
|
|
|
6653
6676
|
...(ngDevMode ? [{ debugName: "canDelete" }] : /* istanbul ignore next */ []));
|
|
6654
6677
|
editable = computed(() => this.canWrite() && this.model().capabilities.canEdit, /* @ts-ignore */
|
|
6655
6678
|
...(ngDevMode ? [{ debugName: "editable" }] : /* istanbul ignore next */ []));
|
|
6679
|
+
/** Whether the row action reads "Edit" (see {@link openAction}). */
|
|
6680
|
+
opensForEdit = computed(() => this.openAction() === 'edit' ? this.canWrite() : this.editable(), /* @ts-ignore */
|
|
6681
|
+
...(ngDevMode ? [{ debugName: "opensForEdit" }] : /* istanbul ignore next */ []));
|
|
6656
6682
|
/** Copy ID submenu (Studio convention, see the refinery-studio CLAUDE.md). */
|
|
6657
6683
|
copyIdMenuItem = computed(() => {
|
|
6658
6684
|
const m = this.msgs();
|
|
@@ -6694,8 +6720,8 @@ class EntityListComponent {
|
|
|
6694
6720
|
{
|
|
6695
6721
|
id: 'open',
|
|
6696
6722
|
type: 'link',
|
|
6697
|
-
text: this.
|
|
6698
|
-
svgIcon: this.
|
|
6723
|
+
text: this.opensForEdit() ? this.msgs().edit : this.msgs().viewTitle,
|
|
6724
|
+
svgIcon: this.opensForEdit() ? MM_ACTION_ICONS.edit : MM_ACTION_ICONS.view,
|
|
6699
6725
|
onClick: async (e) => this.open(e.data),
|
|
6700
6726
|
},
|
|
6701
6727
|
...this.rowActions(),
|
|
@@ -6707,10 +6733,16 @@ class EntityListComponent {
|
|
|
6707
6733
|
/** Width of the actions column: Edit/View + the row menu, plus one icon button per host row action. */
|
|
6708
6734
|
actionsColumnWidth = computed(() => 80 + 40 * this.rowActions().length, /* @ts-ignore */
|
|
6709
6735
|
...(ngDevMode ? [{ debugName: "actionsColumnWidth" }] : /* istanbul ignore next */ []));
|
|
6710
|
-
/**
|
|
6736
|
+
/** Label of the create action: "New {form title}" (AB#6211), "New" without a title. */
|
|
6737
|
+
createLabel = computed(() => entityListCreateLabel(this.msgs(), localizeEntityFormTitle(this.model(), this.labelResolver() ?? this.injectedLabelResolver)), /* @ts-ignore */
|
|
6738
|
+
...(ngDevMode ? [{ debugName: "createLabel" }] : /* istanbul ignore next */ []));
|
|
6739
|
+
/**
|
|
6740
|
+
* Toolbar: New (only with `canCreate && canWrite` and `showCreateAction`), then the host's
|
|
6741
|
+
* `toolbarActions`.
|
|
6742
|
+
*/
|
|
6711
6743
|
toolbarItems = computed(() => [
|
|
6712
|
-
...(this.canCreate()
|
|
6713
|
-
? [{ id: 'new', type: 'link', text: this.
|
|
6744
|
+
...(this.canCreate() && this.showCreateAction()
|
|
6745
|
+
? [{ id: 'new', type: 'link', text: this.createLabel(), svgIcon: MM_ACTION_ICONS.add, onClick: async () => this.requestCreate() }]
|
|
6714
6746
|
: []),
|
|
6715
6747
|
...this.toolbarActions(),
|
|
6716
6748
|
], /* @ts-ignore */
|
|
@@ -6848,12 +6880,12 @@ class EntityListComponent {
|
|
|
6848
6880
|
}
|
|
6849
6881
|
}
|
|
6850
6882
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: EntityListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6851
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.5", type: EntityListComponent, isStandalone: true, selector: "mm-entity-list", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, canWrite: { classPropertyName: "canWrite", publicName: "canWrite", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, listStateKey: { classPropertyName: "listStateKey", publicName: "listStateKey", isSignal: true, isRequired: false, transformFunction: null }, showTypeColumn: { classPropertyName: "showTypeColumn", publicName: "showTypeColumn", isSignal: true, isRequired: false, transformFunction: null }, defaultSort: { classPropertyName: "defaultSort", publicName: "defaultSort", isSignal: true, isRequired: false, transformFunction: null }, labelResolver: { classPropertyName: "labelResolver", publicName: "labelResolver", isSignal: true, isRequired: false, transformFunction: null }, toolbarActions: { classPropertyName: "toolbarActions", publicName: "toolbarActions", isSignal: true, isRequired: false, transformFunction: null }, rowActions: { classPropertyName: "rowActions", publicName: "rowActions", isSignal: true, isRequired: false, transformFunction: null }, rowMenuActions: { classPropertyName: "rowMenuActions", publicName: "rowMenuActions", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, booleanDisplay: { classPropertyName: "booleanDisplay", publicName: "booleanDisplay", isSignal: true, isRequired: false, transformFunction: null }, rowLabelField: { classPropertyName: "rowLabelField", publicName: "rowLabelField", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { createRequested: "createRequested", openRequested: "openRequested", deleted: "deleted" }, viewQueries: [{ propertyName: "dataSource", first: true, predicate: EntityListDataSourceDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<mm-list-view\n mmEntityListDataSource\n [columns]=\"columns()\"\n [sortable]=\"true\"\n [rowFilterEnabled]=\"true\"\n [searchTextBoxEnabled]=\"true\"\n [autoPageSize]=\"true\"\n [selectable]=\"{ mode: 'single', enabled: true }\"\n [showRowCheckBoxes]=\"false\"\n [actionsColumnWidth]=\"actionsColumnWidth()\"\n [actionCommandItems]=\"actionItems()\"\n [contextMenuCommandItems]=\"contextMenuItems()\"\n [leftToolbarActions]=\"toolbarItems()\"\n [listStateKey]=\"listStateKey()\"\n [messages]=\"listViewMessages()\"\n [rowClass]=\"listViewRowClass()\"\n [rowLabelField]=\"rowLabelField() || 'name'\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n</mm-list-view>\n", styles: [":host{display:flex;flex-direction:column;min-height:0;height:100%}mm-list-view{flex:1 1 auto;min-height:0}\n"], dependencies: [{ kind: "component", type: ListViewComponent, selector: "mm-list-view", inputs: ["pageSize", "skip", "autoPageSize", "rowIsClickable", "showRowCheckBoxes", "showRowSelectAllCheckBox", "contextMenuType", "leftToolbarActions", "rightToolbarActions", "actionCommandItems", "contextMenuCommandItems", "rowActions", "maxInlineRowActions", "excelExportFileName", "pdfExportFileName", "pageable", "sortable", "rowFilterEnabled", "searchTextBoxEnabled", "persistListState", "listStateKey", "resizable", "actionsColumnWidth", "hideCheckboxesBelow", "cardModeBelow", "collapseCommandsBelow", "hasExternalFilters", "emptyState", "emptyTemplate", "rowClass", "messages", "selectable", "columns", "rowLabelField"], outputs: ["rowClicked", "rowAction", "resetFilters"] }, { kind: "directive", type: EntityListDataSourceDirective, selector: "[mmEntityListDataSource]", exportAs: ["mmEntityListDataSource"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6883
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.1.5", type: EntityListComponent, isStandalone: true, selector: "mm-entity-list", inputs: { model: { classPropertyName: "model", publicName: "model", isSignal: true, isRequired: true, transformFunction: null }, canWrite: { classPropertyName: "canWrite", publicName: "canWrite", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, listStateKey: { classPropertyName: "listStateKey", publicName: "listStateKey", isSignal: true, isRequired: false, transformFunction: null }, showTypeColumn: { classPropertyName: "showTypeColumn", publicName: "showTypeColumn", isSignal: true, isRequired: false, transformFunction: null }, defaultSort: { classPropertyName: "defaultSort", publicName: "defaultSort", isSignal: true, isRequired: false, transformFunction: null }, labelResolver: { classPropertyName: "labelResolver", publicName: "labelResolver", isSignal: true, isRequired: false, transformFunction: null }, toolbarActions: { classPropertyName: "toolbarActions", publicName: "toolbarActions", isSignal: true, isRequired: false, transformFunction: null }, showCreateAction: { classPropertyName: "showCreateAction", publicName: "showCreateAction", isSignal: true, isRequired: false, transformFunction: null }, openAction: { classPropertyName: "openAction", publicName: "openAction", isSignal: true, isRequired: false, transformFunction: null }, rowActions: { classPropertyName: "rowActions", publicName: "rowActions", isSignal: true, isRequired: false, transformFunction: null }, rowMenuActions: { classPropertyName: "rowMenuActions", publicName: "rowMenuActions", isSignal: true, isRequired: false, transformFunction: null }, rowClass: { classPropertyName: "rowClass", publicName: "rowClass", isSignal: true, isRequired: false, transformFunction: null }, booleanDisplay: { classPropertyName: "booleanDisplay", publicName: "booleanDisplay", isSignal: true, isRequired: false, transformFunction: null }, rowLabelField: { classPropertyName: "rowLabelField", publicName: "rowLabelField", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { createRequested: "createRequested", openRequested: "openRequested", deleted: "deleted" }, viewQueries: [{ propertyName: "dataSource", first: true, predicate: EntityListDataSourceDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<mm-list-view\n mmEntityListDataSource\n [columns]=\"columns()\"\n [sortable]=\"true\"\n [rowFilterEnabled]=\"true\"\n [searchTextBoxEnabled]=\"true\"\n [autoPageSize]=\"true\"\n [selectable]=\"{ mode: 'single', enabled: true }\"\n [showRowCheckBoxes]=\"false\"\n [actionsColumnWidth]=\"actionsColumnWidth()\"\n [actionCommandItems]=\"actionItems()\"\n [contextMenuCommandItems]=\"contextMenuItems()\"\n [leftToolbarActions]=\"toolbarItems()\"\n [listStateKey]=\"listStateKey()\"\n [messages]=\"listViewMessages()\"\n [rowClass]=\"listViewRowClass()\"\n [rowLabelField]=\"rowLabelField() || 'name'\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n</mm-list-view>\n", styles: [":host{display:flex;flex-direction:column;min-height:0;height:100%}mm-list-view{flex:1 1 auto;min-height:0}\n"], dependencies: [{ kind: "component", type: ListViewComponent, selector: "mm-list-view", inputs: ["pageSize", "skip", "autoPageSize", "rowIsClickable", "showRowCheckBoxes", "showRowSelectAllCheckBox", "contextMenuType", "leftToolbarActions", "rightToolbarActions", "actionCommandItems", "contextMenuCommandItems", "rowActions", "maxInlineRowActions", "excelExportFileName", "pdfExportFileName", "pageable", "sortable", "rowFilterEnabled", "searchTextBoxEnabled", "persistListState", "listStateKey", "resizable", "actionsColumnWidth", "hideCheckboxesBelow", "cardModeBelow", "collapseCommandsBelow", "hasExternalFilters", "emptyState", "emptyTemplate", "rowClass", "messages", "selectable", "columns", "rowLabelField"], outputs: ["rowClicked", "rowAction", "resetFilters"] }, { kind: "directive", type: EntityListDataSourceDirective, selector: "[mmEntityListDataSource]", exportAs: ["mmEntityListDataSource"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
6852
6884
|
}
|
|
6853
6885
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: EntityListComponent, decorators: [{
|
|
6854
6886
|
type: Component,
|
|
6855
6887
|
args: [{ selector: 'mm-entity-list', standalone: true, imports: [ListViewComponent, EntityListDataSourceDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mm-list-view\n mmEntityListDataSource\n [columns]=\"columns()\"\n [sortable]=\"true\"\n [rowFilterEnabled]=\"true\"\n [searchTextBoxEnabled]=\"true\"\n [autoPageSize]=\"true\"\n [selectable]=\"{ mode: 'single', enabled: true }\"\n [showRowCheckBoxes]=\"false\"\n [actionsColumnWidth]=\"actionsColumnWidth()\"\n [actionCommandItems]=\"actionItems()\"\n [contextMenuCommandItems]=\"contextMenuItems()\"\n [leftToolbarActions]=\"toolbarItems()\"\n [listStateKey]=\"listStateKey()\"\n [messages]=\"listViewMessages()\"\n [rowClass]=\"listViewRowClass()\"\n [rowLabelField]=\"rowLabelField() || 'name'\"\n (rowClicked)=\"onRowClicked($event)\"\n>\n</mm-list-view>\n", styles: [":host{display:flex;flex-direction:column;min-height:0;height:100%}mm-list-view{flex:1 1 auto;min-height:0}\n"] }]
|
|
6856
|
-
}], ctorParameters: () => [], propDecorators: { model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: true }] }], canWrite: [{ type: i0.Input, args: [{ isSignal: true, alias: "canWrite", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], listStateKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "listStateKey", required: false }] }], showTypeColumn: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTypeColumn", required: false }] }], defaultSort: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSort", required: false }] }], labelResolver: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelResolver", required: false }] }], toolbarActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolbarActions", required: false }] }], rowActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowActions", required: false }] }], rowMenuActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowMenuActions", required: false }] }], rowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClass", required: false }] }], booleanDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "booleanDisplay", required: false }] }], rowLabelField: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowLabelField", required: false }] }], createRequested: [{ type: i0.Output, args: ["createRequested"] }], openRequested: [{ type: i0.Output, args: ["openRequested"] }], deleted: [{ type: i0.Output, args: ["deleted"] }], dataSource: [{ type: i0.ViewChild, args: [i0.forwardRef(() => EntityListDataSourceDirective), { isSignal: true }] }] } });
|
|
6888
|
+
}], ctorParameters: () => [], propDecorators: { model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: true }] }], canWrite: [{ type: i0.Input, args: [{ isSignal: true, alias: "canWrite", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], listStateKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "listStateKey", required: false }] }], showTypeColumn: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTypeColumn", required: false }] }], defaultSort: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSort", required: false }] }], labelResolver: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelResolver", required: false }] }], toolbarActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "toolbarActions", required: false }] }], showCreateAction: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCreateAction", required: false }] }], openAction: [{ type: i0.Input, args: [{ isSignal: true, alias: "openAction", required: false }] }], rowActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowActions", required: false }] }], rowMenuActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowMenuActions", required: false }] }], rowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowClass", required: false }] }], booleanDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "booleanDisplay", required: false }] }], rowLabelField: [{ type: i0.Input, args: [{ isSignal: true, alias: "rowLabelField", required: false }] }], createRequested: [{ type: i0.Output, args: ["createRequested"] }], openRequested: [{ type: i0.Output, args: ["openRequested"] }], deleted: [{ type: i0.Output, args: ["deleted"] }], dataSource: [{ type: i0.ViewChild, args: [i0.forwardRef(() => EntityListDataSourceDirective), { isSignal: true }] }] } });
|
|
6857
6889
|
function rowName(row, labelField) {
|
|
6858
6890
|
const label = labelField ? resolveListRowLabel(row, labelField, []) : '';
|
|
6859
6891
|
if (label) {
|
|
@@ -6997,7 +7029,7 @@ class EntityPageComponent {
|
|
|
6997
7029
|
*/
|
|
6998
7030
|
beforeSave = input(undefined, /* @ts-ignore */
|
|
6999
7031
|
...(ngDevMode ? [{ debugName: "beforeSave" }] : /* istanbul ignore next */ []));
|
|
7000
|
-
/** Host toolbar actions of the list
|
|
7032
|
+
/** Host toolbar actions of the list (AB#5623); "New {form title}" sits in the page header (AB#6211). */
|
|
7001
7033
|
listToolbarActions = input([], /* @ts-ignore */
|
|
7002
7034
|
...(ngDevMode ? [{ debugName: "listToolbarActions" }] : /* istanbul ignore next */ []));
|
|
7003
7035
|
/** Host row actions of the list (icon buttons after Edit / View, AB#5623). */
|
|
@@ -7087,6 +7119,7 @@ class EntityPageComponent {
|
|
|
7087
7119
|
saveIcon = saveIcon;
|
|
7088
7120
|
backIcon = arrowLeftIcon;
|
|
7089
7121
|
deleteIcon = MM_ACTION_ICONS.delete;
|
|
7122
|
+
addIcon = MM_ACTION_ICONS.add;
|
|
7090
7123
|
msgs = computed(() => mergeEntityFormsMessages(this.messages() ?? this.inheritedData('messages')), /* @ts-ignore */
|
|
7091
7124
|
...(ngDevMode ? [{ debugName: "msgs" }] : /* istanbul ignore next */ []));
|
|
7092
7125
|
effectiveCanWrite = computed(() => {
|
|
@@ -7148,6 +7181,12 @@ class EntityPageComponent {
|
|
|
7148
7181
|
return typeof bound === 'string' && bound.trim() ? bound.trim() : undefined;
|
|
7149
7182
|
}, /* @ts-ignore */
|
|
7150
7183
|
...(ngDevMode ? [{ debugName: "effectiveRowLabelField" }] : /* istanbul ignore next */ []));
|
|
7184
|
+
/** Row open action of the list (AB#6222): route data `entityListOpenAction` (`'edit'`), else auto. */
|
|
7185
|
+
effectiveListOpenAction = computed(() => {
|
|
7186
|
+
this.routeData();
|
|
7187
|
+
return this.inheritedData('entityListOpenAction') === 'edit' ? 'edit' : 'auto';
|
|
7188
|
+
}, /* @ts-ignore */
|
|
7189
|
+
...(ngDevMode ? [{ debugName: "effectiveListOpenAction" }] : /* istanbul ignore next */ []));
|
|
7151
7190
|
/** Boolean columns of the list: input, else route data `entityListBooleanDisplay`, else text. */
|
|
7152
7191
|
effectiveListBooleanDisplay = computed(() => {
|
|
7153
7192
|
this.routeData();
|
|
@@ -7205,6 +7244,19 @@ class EntityPageComponent {
|
|
|
7205
7244
|
}
|
|
7206
7245
|
isSingleton = computed(() => !!this.baseModel()?.singleton, /* @ts-ignore */
|
|
7207
7246
|
...(ngDevMode ? [{ debugName: "isSingleton" }] : /* istanbul ignore next */ []));
|
|
7247
|
+
/**
|
|
7248
|
+
* The list's create action sits in the page header as the page's one solid primary (AB#6211,
|
|
7249
|
+
* Studio action guideline §9): only with write permission and a creatable form.
|
|
7250
|
+
*/
|
|
7251
|
+
canCreateFromList = computed(() => this.effectiveCanWrite() && !!this.baseModel()?.capabilities.canCreate, /* @ts-ignore */
|
|
7252
|
+
...(ngDevMode ? [{ debugName: "canCreateFromList" }] : /* istanbul ignore next */ []));
|
|
7253
|
+
/** "New {form title}" (AB#6211), e.g. "New Discord configuration". */
|
|
7254
|
+
createLabel = computed(() => entityListCreateLabel(this.msgs(), this.localizedBase()?.title), /* @ts-ignore */
|
|
7255
|
+
...(ngDevMode ? [{ debugName: "createLabel" }] : /* istanbul ignore next */ []));
|
|
7256
|
+
/** Header create action: same flow as the list's former toolbar "New" (subtype picker, dialog mode). */
|
|
7257
|
+
onCreateFromHeader() {
|
|
7258
|
+
void this.list()?.requestCreate();
|
|
7259
|
+
}
|
|
7208
7260
|
/** Host heading override (`entityListTitle` route data), else the resolved form title. */
|
|
7209
7261
|
listTitle = computed(() => {
|
|
7210
7262
|
this.routeData();
|
|
@@ -7814,11 +7866,11 @@ class EntityPageComponent {
|
|
|
7814
7866
|
}
|
|
7815
7867
|
}
|
|
7816
7868
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: EntityPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7817
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: EntityPageComponent, isStandalone: true, selector: "mm-entity-page", inputs: { formKey: { classPropertyName: "formKey", publicName: "formKey", isSignal: true, isRequired: false, transformFunction: null }, ckTypeId: { classPropertyName: "ckTypeId", publicName: "ckTypeId", isSignal: true, isRequired: false, transformFunction: null }, rtId: { classPropertyName: "rtId", publicName: "rtId", isSignal: true, isRequired: false, transformFunction: null }, canWrite: { classPropertyName: "canWrite", publicName: "canWrite", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, routerNavigation: { classPropertyName: "routerNavigation", publicName: "routerNavigation", isSignal: true, isRequired: false, transformFunction: null }, actionBarPosition: { classPropertyName: "actionBarPosition", publicName: "actionBarPosition", isSignal: true, isRequired: false, transformFunction: null }, labelResolver: { classPropertyName: "labelResolver", publicName: "labelResolver", isSignal: true, isRequired: false, transformFunction: null }, defaultSort: { classPropertyName: "defaultSort", publicName: "defaultSort", isSignal: true, isRequired: false, transformFunction: null }, initialValues: { classPropertyName: "initialValues", publicName: "initialValues", isSignal: true, isRequired: false, transformFunction: null }, beforeSave: { classPropertyName: "beforeSave", publicName: "beforeSave", isSignal: true, isRequired: false, transformFunction: null }, listToolbarActions: { classPropertyName: "listToolbarActions", publicName: "listToolbarActions", isSignal: true, isRequired: false, transformFunction: null }, listRowActions: { classPropertyName: "listRowActions", publicName: "listRowActions", isSignal: true, isRequired: false, transformFunction: null }, listRowMenuActions: { classPropertyName: "listRowMenuActions", publicName: "listRowMenuActions", isSignal: true, isRequired: false, transformFunction: null }, editMode: { classPropertyName: "editMode", publicName: "editMode", isSignal: true, isRequired: false, transformFunction: null }, listRowClass: { classPropertyName: "listRowClass", publicName: "listRowClass", isSignal: true, isRequired: false, transformFunction: null }, listBooleanDisplay: { classPropertyName: "listBooleanDisplay", publicName: "listBooleanDisplay", isSignal: true, isRequired: false, transformFunction: null }, listRowLabelField: { classPropertyName: "listRowLabelField", publicName: "listRowLabelField", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { navigate: "navigate", saved: "saved", deleted: "deleted" }, providers: [{ provide: HAS_UNSAVED_CHANGES, useExisting: EntityPageComponent }], queries: [{ propertyName: "pageActions", first: true, predicate: EntityPageActionsDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "form", first: true, predicate: ["entityForm"], descendants: true, isSignal: true }, { propertyName: "list", first: true, predicate: ["entityList"], descendants: true, isSignal: true }, { propertyName: "listElement", first: true, predicate: ["entityList"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<div class=\"mm-entity-page\">\n @switch (view()) {\n @case ('loading') {\n <div class=\"mm-entity-page__state\">{{ msgs().loading }}</div>\n }\n\n @case ('error') {\n <div class=\"mm-entity-page__state mm-entity-page__state--error\" role=\"alert\">\n <p>{{ errorMessage() }}</p>\n @if (baseModel() && !isSingleton()) {\n <button kendoButton fillMode=\"flat\" [svgIcon]=\"backIcon\" (click)=\"onBack()\">{{ msgs().back }}</button>\n }\n </div>\n }\n\n @case ('list') {\n @if (baseModel(); as model) {\n <header class=\"mm-entity-page__header\">\n <div class=\"mm-entity-page__titles\">\n <h2 class=\"mm-entity-page__title\">{{ listTitle() }}</h2>\n @if (localizedBase()?.description; as description) {\n <p class=\"mm-entity-page__description\">{{ description }}</p>\n }\n </div>\n @if (pageActions(); as actions) {\n <div class=\"mm-entity-page__actions\" data-entity-page-host-actions>\n <ng-container *ngTemplateOutlet=\"actions.templateRef; context: actionsContext()\" />\n </div>\n }\n </header>\n <mm-entity-list\n #entityList\n class=\"mm-entity-page__list\"\n [model]=\"model\"\n [canWrite]=\"effectiveCanWrite()\"\n [messages]=\"msgs()\"\n [showTypeColumn]=\"showTypeColumn()\"\n [defaultSort]=\"effectiveDefaultSort()\"\n [labelResolver]=\"effectiveLabelResolver()\"\n [toolbarActions]=\"listToolbarActions()\"\n [rowActions]=\"listRowActions()\"\n [rowMenuActions]=\"listRowMenuActions()\"\n [rowClass]=\"effectiveListRowClass()\"\n [booleanDisplay]=\"effectiveListBooleanDisplay()\"\n [rowLabelField]=\"effectiveRowLabelField()\"\n (createRequested)=\"onCreateRequested($event)\"\n (openRequested)=\"onOpenRequested($event)\"\n />\n\n <!-- Dialog mode (editMode 'dialog', AB#5623): create / edit over the list, actions in the\n dialog's bottom bar (Cancel left of the primary Save, as in the record row dialog). -->\n @if (dialogOpen()) {\n @if (formModel(); as formModelInDialog) {\n <kendo-dialog\n class=\"mm-entity-page__dialog\"\n data-entity-page-dialog\n [title]=\"title()\"\n [width]=\"760\"\n [maxWidth]=\"'95vw'\"\n [maxHeight]=\"'90vh'\"\n (close)=\"onDialogCancel()\"\n >\n <kendo-dialog-messages [closeTitle]=\"msgs().close\" />\n <div class=\"mm-entity-page__dialog-body\">\n @if (mode() === 'view') {\n <p class=\"mm-entity-page__notice\">{{ msgs().readOnlyNotice }}</p>\n }\n <mm-entity-form\n #entityForm\n class=\"mm-entity-page__form\"\n [model]=\"formModelInDialog\"\n [mode]=\"mode()\"\n [state]=\"state()\"\n [readOnly]=\"readOnly()\"\n [messages]=\"msgs()\"\n [records]=\"records()\"\n [labelResolver]=\"effectiveLabelResolver()\"\n [initialValues]=\"createInitialValues()\"\n />\n </div>\n <kendo-dialog-actions layout=\"end\">\n @if (pageActions(); as actions) {\n <ng-container *ngTemplateOutlet=\"actions.templateRef; context: dialogActionsContext()\" />\n }\n <button kendoButton type=\"button\" data-entity-page-dialog-cancel (click)=\"onDialogCancel()\">\n {{ mode() === 'view' ? msgs().close : msgs().cancel }}\n </button>\n @if (canDeleteEntity()) {\n <button kendoButton type=\"button\" fillMode=\"outline\" themeColor=\"error\" [svgIcon]=\"deleteIcon\" (click)=\"onDelete()\">\n {{ msgs().delete }}\n </button>\n }\n @if (mode() !== 'view') {\n <button kendoButton type=\"button\" themeColor=\"primary\" [svgIcon]=\"saveIcon\"\n [disabled]=\"saving() || !!saveBlockedReason()\" [attr.title]=\"saveBlockedReason()\"\n data-entity-page-save (click)=\"onSave()\">\n {{ msgs().save }}\n </button>\n }\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n }\n }\n }\n\n @case ('form') {\n @if (formModel(); as model) {\n <header class=\"mm-entity-page__header\">\n <div class=\"mm-entity-page__titles\">\n <h2 class=\"mm-entity-page__title\">{{ title() }}</h2>\n @if (mode() !== 'create' && entityRtId()) {\n <mm-entity-id-info\n [rtId]=\"entityRtId()!\"\n [rtCkTypeId]=\"entityCkTypeId() ?? model.rtCkTypeId\"\n [ckTypeId]=\"entityCkTypeId() ?? model.rtCkTypeId\"\n [buttonText]=\"msgs().copyId\"\n [tooltip]=\"msgs().copyIdTooltip\"\n [copiedMessage]=\"msgs().copiedId\"\n [copyFailedMessage]=\"msgs().copyFailed\"\n />\n }\n </div>\n @if (effectiveActionBarPosition() === 'top') {\n <ng-container *ngTemplateOutlet=\"formActions\" />\n }\n </header>\n @if (mode() === 'view') {\n <p class=\"mm-entity-page__notice\">{{ msgs().readOnlyNotice }}</p>\n }\n @if (mode() === 'create' && singletonWellKnownName()) {\n <p class=\"mm-entity-page__notice\">{{ msgs().singletonCreateHint }}</p>\n }\n <mm-entity-form\n #entityForm\n class=\"mm-entity-page__form\"\n [model]=\"model\"\n [mode]=\"mode()\"\n [state]=\"state()\"\n [readOnly]=\"readOnly()\"\n [messages]=\"msgs()\"\n [records]=\"records()\"\n [labelResolver]=\"effectiveLabelResolver()\"\n [initialValues]=\"createInitialValues()\"\n />\n @if (effectiveActionBarPosition() === 'bottom') {\n <footer class=\"mm-entity-page__footer\" data-entity-page-footer>\n <ng-container *ngTemplateOutlet=\"formActions\" />\n </footer>\n }\n\n <ng-template #formActions>\n <div class=\"mm-entity-page__actions\">\n @if (pageActions(); as actions) {\n <ng-container *ngTemplateOutlet=\"actions.templateRef; context: actionsContext()\" />\n }\n @if (!isSingleton()) {\n <button kendoButton fillMode=\"flat\" [svgIcon]=\"backIcon\" data-entity-page-back (click)=\"onBack()\">\n {{ mode() === 'view' ? msgs().back : msgs().cancel }}\n </button>\n }\n @if (canDeleteEntity()) {\n <button kendoButton fillMode=\"outline\" themeColor=\"error\" [svgIcon]=\"deleteIcon\" (click)=\"onDelete()\">\n {{ msgs().delete }}\n </button>\n }\n @if (mode() !== 'view') {\n <button kendoButton themeColor=\"primary\" [svgIcon]=\"saveIcon\" [disabled]=\"saving() || !!saveBlockedReason()\"\n [attr.title]=\"saveBlockedReason()\" data-entity-page-save (click)=\"onSave()\">\n {{ msgs().save }}\n </button>\n }\n </div>\n </ng-template>\n }\n }\n }\n</div>\n", styles: [":host{display:block;height:100%;min-height:0}.mm-entity-page{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0;padding:16px;box-sizing:border-box;color:var(--theme-text-primary, inherit)}.mm-entity-page__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.mm-entity-page__titles{display:flex;flex-direction:column;gap:4px;min-width:0}.mm-entity-page__title{margin:0;font-size:1.25rem;font-weight:600;overflow-wrap:anywhere}.mm-entity-page__description,.mm-entity-page__notice{margin:0;color:var(--theme-text-secondary, inherit);opacity:.85}.mm-entity-page__actions{display:flex;flex-wrap:wrap;gap:8px}.mm-entity-page__list{flex:1 1 auto;min-height:300px}.mm-entity-page__form{flex:1 1 auto;min-height:0;overflow:auto}.mm-entity-page__state{padding:24px 0;color:var(--theme-text-secondary, inherit)}.mm-entity-page__state--error{color:var(--theme-status-error, inherit)}.mm-entity-page__footer{display:flex;justify-content:flex-end;flex-shrink:0;padding-top:12px;border-top:1px solid var(--theme-border-subtle, rgba(0, 0, 0, .12))}.mm-entity-page__dialog-body{display:flex;flex-direction:column;gap:12px}\n"], dependencies: [{ kind: "component", type: EntityListComponent, selector: "mm-entity-list", inputs: ["model", "canWrite", "messages", "listStateKey", "showTypeColumn", "defaultSort", "labelResolver", "toolbarActions", "rowActions", "rowMenuActions", "rowClass", "booleanDisplay", "rowLabelField"], outputs: ["createRequested", "openRequested", "deleted"] }, { kind: "component", type: EntityFormComponent, selector: "mm-entity-form", inputs: ["model", "mode", "state", "readOnly", "messages", "records", "labelResolver", "initialValues", "beforeSave"], outputs: ["changeSetChange", "validChange", "dirtyChange"] }, { kind: "component", type: EntityIdInfoComponent, selector: "mm-entity-id-info", inputs: ["rtId", "rtCkTypeId", "ckTypeId", "buttonText", "tooltip", "copiedMessage", "copyFailedMessage"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$3.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "closable", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i1$3.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "directive", type: i1$3.CustomMessagesComponent, selector: "kendo-dialog-messages, kendo-window-messages" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7869
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.5", type: EntityPageComponent, isStandalone: true, selector: "mm-entity-page", inputs: { formKey: { classPropertyName: "formKey", publicName: "formKey", isSignal: true, isRequired: false, transformFunction: null }, ckTypeId: { classPropertyName: "ckTypeId", publicName: "ckTypeId", isSignal: true, isRequired: false, transformFunction: null }, rtId: { classPropertyName: "rtId", publicName: "rtId", isSignal: true, isRequired: false, transformFunction: null }, canWrite: { classPropertyName: "canWrite", publicName: "canWrite", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, routerNavigation: { classPropertyName: "routerNavigation", publicName: "routerNavigation", isSignal: true, isRequired: false, transformFunction: null }, actionBarPosition: { classPropertyName: "actionBarPosition", publicName: "actionBarPosition", isSignal: true, isRequired: false, transformFunction: null }, labelResolver: { classPropertyName: "labelResolver", publicName: "labelResolver", isSignal: true, isRequired: false, transformFunction: null }, defaultSort: { classPropertyName: "defaultSort", publicName: "defaultSort", isSignal: true, isRequired: false, transformFunction: null }, initialValues: { classPropertyName: "initialValues", publicName: "initialValues", isSignal: true, isRequired: false, transformFunction: null }, beforeSave: { classPropertyName: "beforeSave", publicName: "beforeSave", isSignal: true, isRequired: false, transformFunction: null }, listToolbarActions: { classPropertyName: "listToolbarActions", publicName: "listToolbarActions", isSignal: true, isRequired: false, transformFunction: null }, listRowActions: { classPropertyName: "listRowActions", publicName: "listRowActions", isSignal: true, isRequired: false, transformFunction: null }, listRowMenuActions: { classPropertyName: "listRowMenuActions", publicName: "listRowMenuActions", isSignal: true, isRequired: false, transformFunction: null }, editMode: { classPropertyName: "editMode", publicName: "editMode", isSignal: true, isRequired: false, transformFunction: null }, listRowClass: { classPropertyName: "listRowClass", publicName: "listRowClass", isSignal: true, isRequired: false, transformFunction: null }, listBooleanDisplay: { classPropertyName: "listBooleanDisplay", publicName: "listBooleanDisplay", isSignal: true, isRequired: false, transformFunction: null }, listRowLabelField: { classPropertyName: "listRowLabelField", publicName: "listRowLabelField", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { navigate: "navigate", saved: "saved", deleted: "deleted" }, providers: [{ provide: HAS_UNSAVED_CHANGES, useExisting: EntityPageComponent }], queries: [{ propertyName: "pageActions", first: true, predicate: EntityPageActionsDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "form", first: true, predicate: ["entityForm"], descendants: true, isSignal: true }, { propertyName: "list", first: true, predicate: ["entityList"], descendants: true, isSignal: true }, { propertyName: "listElement", first: true, predicate: ["entityList"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<div class=\"mm-entity-page\">\n @switch (view()) {\n @case ('loading') {\n <div class=\"mm-entity-page__state\">{{ msgs().loading }}</div>\n }\n\n @case ('error') {\n <div class=\"mm-entity-page__state mm-entity-page__state--error\" role=\"alert\">\n <p>{{ errorMessage() }}</p>\n @if (baseModel() && !isSingleton()) {\n <button kendoButton fillMode=\"flat\" [svgIcon]=\"backIcon\" (click)=\"onBack()\">{{ msgs().back }}</button>\n }\n </div>\n }\n\n @case ('list') {\n @if (baseModel(); as model) {\n <header class=\"mm-entity-page__header\">\n <div class=\"mm-entity-page__titles\">\n <h2 class=\"mm-entity-page__title\">{{ listTitle() }}</h2>\n @if (localizedBase()?.description; as description) {\n <p class=\"mm-entity-page__description\">{{ description }}</p>\n }\n </div>\n @if (pageActions() || canCreateFromList()) {\n <div class=\"mm-entity-page__header-actions\">\n @if (pageActions(); as actions) {\n <div class=\"mm-entity-page__actions\" data-entity-page-host-actions>\n <ng-container *ngTemplateOutlet=\"actions.templateRef; context: actionsContext()\" />\n </div>\n }\n <!-- The page's one solid primary action (AB#6211, action guideline \u00A79). -->\n @if (canCreateFromList()) {\n <button kendoButton type=\"button\" themeColor=\"primary\" [svgIcon]=\"addIcon\"\n data-entity-page-create (click)=\"onCreateFromHeader()\">{{ createLabel() }}</button>\n }\n </div>\n }\n </header>\n <mm-entity-list\n #entityList\n class=\"mm-entity-page__list\"\n [model]=\"model\"\n [canWrite]=\"effectiveCanWrite()\"\n [messages]=\"msgs()\"\n [showTypeColumn]=\"showTypeColumn()\"\n [defaultSort]=\"effectiveDefaultSort()\"\n [labelResolver]=\"effectiveLabelResolver()\"\n [showCreateAction]=\"false\"\n [openAction]=\"effectiveListOpenAction()\"\n [toolbarActions]=\"listToolbarActions()\"\n [rowActions]=\"listRowActions()\"\n [rowMenuActions]=\"listRowMenuActions()\"\n [rowClass]=\"effectiveListRowClass()\"\n [booleanDisplay]=\"effectiveListBooleanDisplay()\"\n [rowLabelField]=\"effectiveRowLabelField()\"\n (createRequested)=\"onCreateRequested($event)\"\n (openRequested)=\"onOpenRequested($event)\"\n />\n\n <!-- Dialog mode (editMode 'dialog', AB#5623): create / edit over the list, actions in the\n dialog's bottom bar (Cancel left of the primary Save, as in the record row dialog). -->\n @if (dialogOpen()) {\n @if (formModel(); as formModelInDialog) {\n <kendo-dialog\n class=\"mm-entity-page__dialog\"\n data-entity-page-dialog\n [title]=\"title()\"\n [width]=\"760\"\n [maxWidth]=\"'95vw'\"\n [maxHeight]=\"'90vh'\"\n (close)=\"onDialogCancel()\"\n >\n <kendo-dialog-messages [closeTitle]=\"msgs().close\" />\n <div class=\"mm-entity-page__dialog-body\">\n @if (mode() === 'view') {\n <p class=\"mm-entity-page__notice\">{{ msgs().readOnlyNotice }}</p>\n }\n <mm-entity-form\n #entityForm\n class=\"mm-entity-page__form\"\n [model]=\"formModelInDialog\"\n [mode]=\"mode()\"\n [state]=\"state()\"\n [readOnly]=\"readOnly()\"\n [messages]=\"msgs()\"\n [records]=\"records()\"\n [labelResolver]=\"effectiveLabelResolver()\"\n [initialValues]=\"createInitialValues()\"\n />\n </div>\n <kendo-dialog-actions layout=\"end\">\n @if (pageActions(); as actions) {\n <ng-container *ngTemplateOutlet=\"actions.templateRef; context: dialogActionsContext()\" />\n }\n <button kendoButton type=\"button\" data-entity-page-dialog-cancel (click)=\"onDialogCancel()\">\n {{ mode() === 'view' ? msgs().close : msgs().cancel }}\n </button>\n @if (canDeleteEntity()) {\n <button kendoButton type=\"button\" fillMode=\"outline\" themeColor=\"error\" [svgIcon]=\"deleteIcon\" (click)=\"onDelete()\">\n {{ msgs().delete }}\n </button>\n }\n @if (mode() !== 'view') {\n <button kendoButton type=\"button\" themeColor=\"primary\" [svgIcon]=\"saveIcon\"\n [disabled]=\"saving() || !!saveBlockedReason()\" [attr.title]=\"saveBlockedReason()\"\n data-entity-page-save (click)=\"onSave()\">\n {{ msgs().save }}\n </button>\n }\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n }\n }\n }\n\n @case ('form') {\n @if (formModel(); as model) {\n <header class=\"mm-entity-page__header\">\n <div class=\"mm-entity-page__titles\">\n <h2 class=\"mm-entity-page__title\">{{ title() }}</h2>\n @if (mode() !== 'create' && entityRtId()) {\n <mm-entity-id-info\n [rtId]=\"entityRtId()!\"\n [rtCkTypeId]=\"entityCkTypeId() ?? model.rtCkTypeId\"\n [ckTypeId]=\"entityCkTypeId() ?? model.rtCkTypeId\"\n [buttonText]=\"msgs().copyId\"\n [tooltip]=\"msgs().copyIdTooltip\"\n [copiedMessage]=\"msgs().copiedId\"\n [copyFailedMessage]=\"msgs().copyFailed\"\n />\n }\n </div>\n @if (effectiveActionBarPosition() === 'top') {\n <ng-container *ngTemplateOutlet=\"formActions\" />\n }\n </header>\n @if (mode() === 'view') {\n <p class=\"mm-entity-page__notice\">{{ msgs().readOnlyNotice }}</p>\n }\n @if (mode() === 'create' && singletonWellKnownName()) {\n <p class=\"mm-entity-page__notice\">{{ msgs().singletonCreateHint }}</p>\n }\n <mm-entity-form\n #entityForm\n class=\"mm-entity-page__form\"\n [model]=\"model\"\n [mode]=\"mode()\"\n [state]=\"state()\"\n [readOnly]=\"readOnly()\"\n [messages]=\"msgs()\"\n [records]=\"records()\"\n [labelResolver]=\"effectiveLabelResolver()\"\n [initialValues]=\"createInitialValues()\"\n />\n @if (effectiveActionBarPosition() === 'bottom') {\n <footer class=\"mm-entity-page__footer\" data-entity-page-footer>\n <ng-container *ngTemplateOutlet=\"formActions\" />\n </footer>\n }\n\n <ng-template #formActions>\n <div class=\"mm-entity-page__actions\">\n @if (pageActions(); as actions) {\n <ng-container *ngTemplateOutlet=\"actions.templateRef; context: actionsContext()\" />\n }\n @if (!isSingleton()) {\n <button kendoButton fillMode=\"flat\" [svgIcon]=\"backIcon\" data-entity-page-back (click)=\"onBack()\">\n {{ mode() === 'view' ? msgs().back : msgs().cancel }}\n </button>\n }\n @if (canDeleteEntity()) {\n <button kendoButton fillMode=\"outline\" themeColor=\"error\" [svgIcon]=\"deleteIcon\" (click)=\"onDelete()\">\n {{ msgs().delete }}\n </button>\n }\n @if (mode() !== 'view') {\n <button kendoButton themeColor=\"primary\" [svgIcon]=\"saveIcon\" [disabled]=\"saving() || !!saveBlockedReason()\"\n [attr.title]=\"saveBlockedReason()\" data-entity-page-save (click)=\"onSave()\">\n {{ msgs().save }}\n </button>\n }\n </div>\n </ng-template>\n }\n }\n }\n</div>\n", styles: [":host{display:block;height:100%;min-height:0}.mm-entity-page{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0;padding:16px;box-sizing:border-box;color:var(--theme-text-primary, inherit)}.mm-entity-page__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.mm-entity-page__titles{display:flex;flex-direction:column;gap:4px;min-width:0}.mm-entity-page__title{margin:0;font-size:1.25rem;font-weight:600;overflow-wrap:anywhere}.mm-entity-page__description,.mm-entity-page__notice{margin:0;color:var(--theme-text-secondary, inherit);opacity:.85}.mm-entity-page__actions,.mm-entity-page__header-actions{display:flex;flex-wrap:wrap;gap:8px}.mm-entity-page__list{flex:1 1 auto;min-height:300px}.mm-entity-page__form{flex:1 1 auto;min-height:0;overflow:auto}.mm-entity-page__state{padding:24px 0;color:var(--theme-text-secondary, inherit)}.mm-entity-page__state--error{color:var(--theme-status-error, inherit)}.mm-entity-page__footer{display:flex;justify-content:flex-end;flex-shrink:0;padding-top:12px;border-top:1px solid var(--theme-border-subtle, rgba(0, 0, 0, .12))}.mm-entity-page__dialog-body{display:flex;flex-direction:column;gap:12px}\n"], dependencies: [{ kind: "component", type: EntityListComponent, selector: "mm-entity-list", inputs: ["model", "canWrite", "messages", "listStateKey", "showTypeColumn", "defaultSort", "labelResolver", "toolbarActions", "showCreateAction", "openAction", "rowActions", "rowMenuActions", "rowClass", "booleanDisplay", "rowLabelField"], outputs: ["createRequested", "openRequested", "deleted"] }, { kind: "component", type: EntityFormComponent, selector: "mm-entity-form", inputs: ["model", "mode", "state", "readOnly", "messages", "records", "labelResolver", "initialValues", "beforeSave"], outputs: ["changeSetChange", "validChange", "dirtyChange"] }, { kind: "component", type: EntityIdInfoComponent, selector: "mm-entity-id-info", inputs: ["rtId", "rtCkTypeId", "ckTypeId", "buttonText", "tooltip", "copiedMessage", "copyFailedMessage"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$3.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "closable", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i1$3.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "directive", type: i1$3.CustomMessagesComponent, selector: "kendo-dialog-messages, kendo-window-messages" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7818
7870
|
}
|
|
7819
7871
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.5", ngImport: i0, type: EntityPageComponent, decorators: [{
|
|
7820
7872
|
type: Component,
|
|
7821
|
-
args: [{ selector: 'mm-entity-page', standalone: true, imports: [EntityListComponent, EntityFormComponent, EntityIdInfoComponent, ButtonComponent, NgTemplateOutlet, KENDO_DIALOG], providers: [{ provide: HAS_UNSAVED_CHANGES, useExisting: EntityPageComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mm-entity-page\">\n @switch (view()) {\n @case ('loading') {\n <div class=\"mm-entity-page__state\">{{ msgs().loading }}</div>\n }\n\n @case ('error') {\n <div class=\"mm-entity-page__state mm-entity-page__state--error\" role=\"alert\">\n <p>{{ errorMessage() }}</p>\n @if (baseModel() && !isSingleton()) {\n <button kendoButton fillMode=\"flat\" [svgIcon]=\"backIcon\" (click)=\"onBack()\">{{ msgs().back }}</button>\n }\n </div>\n }\n\n @case ('list') {\n @if (baseModel(); as model) {\n <header class=\"mm-entity-page__header\">\n <div class=\"mm-entity-page__titles\">\n <h2 class=\"mm-entity-page__title\">{{ listTitle() }}</h2>\n @if (localizedBase()?.description; as description) {\n <p class=\"mm-entity-page__description\">{{ description }}</p>\n }\n </div>\n @if (pageActions(); as actions) {\n
|
|
7873
|
+
args: [{ selector: 'mm-entity-page', standalone: true, imports: [EntityListComponent, EntityFormComponent, EntityIdInfoComponent, ButtonComponent, NgTemplateOutlet, KENDO_DIALOG], providers: [{ provide: HAS_UNSAVED_CHANGES, useExisting: EntityPageComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mm-entity-page\">\n @switch (view()) {\n @case ('loading') {\n <div class=\"mm-entity-page__state\">{{ msgs().loading }}</div>\n }\n\n @case ('error') {\n <div class=\"mm-entity-page__state mm-entity-page__state--error\" role=\"alert\">\n <p>{{ errorMessage() }}</p>\n @if (baseModel() && !isSingleton()) {\n <button kendoButton fillMode=\"flat\" [svgIcon]=\"backIcon\" (click)=\"onBack()\">{{ msgs().back }}</button>\n }\n </div>\n }\n\n @case ('list') {\n @if (baseModel(); as model) {\n <header class=\"mm-entity-page__header\">\n <div class=\"mm-entity-page__titles\">\n <h2 class=\"mm-entity-page__title\">{{ listTitle() }}</h2>\n @if (localizedBase()?.description; as description) {\n <p class=\"mm-entity-page__description\">{{ description }}</p>\n }\n </div>\n @if (pageActions() || canCreateFromList()) {\n <div class=\"mm-entity-page__header-actions\">\n @if (pageActions(); as actions) {\n <div class=\"mm-entity-page__actions\" data-entity-page-host-actions>\n <ng-container *ngTemplateOutlet=\"actions.templateRef; context: actionsContext()\" />\n </div>\n }\n <!-- The page's one solid primary action (AB#6211, action guideline \u00A79). -->\n @if (canCreateFromList()) {\n <button kendoButton type=\"button\" themeColor=\"primary\" [svgIcon]=\"addIcon\"\n data-entity-page-create (click)=\"onCreateFromHeader()\">{{ createLabel() }}</button>\n }\n </div>\n }\n </header>\n <mm-entity-list\n #entityList\n class=\"mm-entity-page__list\"\n [model]=\"model\"\n [canWrite]=\"effectiveCanWrite()\"\n [messages]=\"msgs()\"\n [showTypeColumn]=\"showTypeColumn()\"\n [defaultSort]=\"effectiveDefaultSort()\"\n [labelResolver]=\"effectiveLabelResolver()\"\n [showCreateAction]=\"false\"\n [openAction]=\"effectiveListOpenAction()\"\n [toolbarActions]=\"listToolbarActions()\"\n [rowActions]=\"listRowActions()\"\n [rowMenuActions]=\"listRowMenuActions()\"\n [rowClass]=\"effectiveListRowClass()\"\n [booleanDisplay]=\"effectiveListBooleanDisplay()\"\n [rowLabelField]=\"effectiveRowLabelField()\"\n (createRequested)=\"onCreateRequested($event)\"\n (openRequested)=\"onOpenRequested($event)\"\n />\n\n <!-- Dialog mode (editMode 'dialog', AB#5623): create / edit over the list, actions in the\n dialog's bottom bar (Cancel left of the primary Save, as in the record row dialog). -->\n @if (dialogOpen()) {\n @if (formModel(); as formModelInDialog) {\n <kendo-dialog\n class=\"mm-entity-page__dialog\"\n data-entity-page-dialog\n [title]=\"title()\"\n [width]=\"760\"\n [maxWidth]=\"'95vw'\"\n [maxHeight]=\"'90vh'\"\n (close)=\"onDialogCancel()\"\n >\n <kendo-dialog-messages [closeTitle]=\"msgs().close\" />\n <div class=\"mm-entity-page__dialog-body\">\n @if (mode() === 'view') {\n <p class=\"mm-entity-page__notice\">{{ msgs().readOnlyNotice }}</p>\n }\n <mm-entity-form\n #entityForm\n class=\"mm-entity-page__form\"\n [model]=\"formModelInDialog\"\n [mode]=\"mode()\"\n [state]=\"state()\"\n [readOnly]=\"readOnly()\"\n [messages]=\"msgs()\"\n [records]=\"records()\"\n [labelResolver]=\"effectiveLabelResolver()\"\n [initialValues]=\"createInitialValues()\"\n />\n </div>\n <kendo-dialog-actions layout=\"end\">\n @if (pageActions(); as actions) {\n <ng-container *ngTemplateOutlet=\"actions.templateRef; context: dialogActionsContext()\" />\n }\n <button kendoButton type=\"button\" data-entity-page-dialog-cancel (click)=\"onDialogCancel()\">\n {{ mode() === 'view' ? msgs().close : msgs().cancel }}\n </button>\n @if (canDeleteEntity()) {\n <button kendoButton type=\"button\" fillMode=\"outline\" themeColor=\"error\" [svgIcon]=\"deleteIcon\" (click)=\"onDelete()\">\n {{ msgs().delete }}\n </button>\n }\n @if (mode() !== 'view') {\n <button kendoButton type=\"button\" themeColor=\"primary\" [svgIcon]=\"saveIcon\"\n [disabled]=\"saving() || !!saveBlockedReason()\" [attr.title]=\"saveBlockedReason()\"\n data-entity-page-save (click)=\"onSave()\">\n {{ msgs().save }}\n </button>\n }\n </kendo-dialog-actions>\n </kendo-dialog>\n }\n }\n }\n }\n\n @case ('form') {\n @if (formModel(); as model) {\n <header class=\"mm-entity-page__header\">\n <div class=\"mm-entity-page__titles\">\n <h2 class=\"mm-entity-page__title\">{{ title() }}</h2>\n @if (mode() !== 'create' && entityRtId()) {\n <mm-entity-id-info\n [rtId]=\"entityRtId()!\"\n [rtCkTypeId]=\"entityCkTypeId() ?? model.rtCkTypeId\"\n [ckTypeId]=\"entityCkTypeId() ?? model.rtCkTypeId\"\n [buttonText]=\"msgs().copyId\"\n [tooltip]=\"msgs().copyIdTooltip\"\n [copiedMessage]=\"msgs().copiedId\"\n [copyFailedMessage]=\"msgs().copyFailed\"\n />\n }\n </div>\n @if (effectiveActionBarPosition() === 'top') {\n <ng-container *ngTemplateOutlet=\"formActions\" />\n }\n </header>\n @if (mode() === 'view') {\n <p class=\"mm-entity-page__notice\">{{ msgs().readOnlyNotice }}</p>\n }\n @if (mode() === 'create' && singletonWellKnownName()) {\n <p class=\"mm-entity-page__notice\">{{ msgs().singletonCreateHint }}</p>\n }\n <mm-entity-form\n #entityForm\n class=\"mm-entity-page__form\"\n [model]=\"model\"\n [mode]=\"mode()\"\n [state]=\"state()\"\n [readOnly]=\"readOnly()\"\n [messages]=\"msgs()\"\n [records]=\"records()\"\n [labelResolver]=\"effectiveLabelResolver()\"\n [initialValues]=\"createInitialValues()\"\n />\n @if (effectiveActionBarPosition() === 'bottom') {\n <footer class=\"mm-entity-page__footer\" data-entity-page-footer>\n <ng-container *ngTemplateOutlet=\"formActions\" />\n </footer>\n }\n\n <ng-template #formActions>\n <div class=\"mm-entity-page__actions\">\n @if (pageActions(); as actions) {\n <ng-container *ngTemplateOutlet=\"actions.templateRef; context: actionsContext()\" />\n }\n @if (!isSingleton()) {\n <button kendoButton fillMode=\"flat\" [svgIcon]=\"backIcon\" data-entity-page-back (click)=\"onBack()\">\n {{ mode() === 'view' ? msgs().back : msgs().cancel }}\n </button>\n }\n @if (canDeleteEntity()) {\n <button kendoButton fillMode=\"outline\" themeColor=\"error\" [svgIcon]=\"deleteIcon\" (click)=\"onDelete()\">\n {{ msgs().delete }}\n </button>\n }\n @if (mode() !== 'view') {\n <button kendoButton themeColor=\"primary\" [svgIcon]=\"saveIcon\" [disabled]=\"saving() || !!saveBlockedReason()\"\n [attr.title]=\"saveBlockedReason()\" data-entity-page-save (click)=\"onSave()\">\n {{ msgs().save }}\n </button>\n }\n </div>\n </ng-template>\n }\n }\n }\n</div>\n", styles: [":host{display:block;height:100%;min-height:0}.mm-entity-page{display:flex;flex-direction:column;gap:12px;height:100%;min-height:0;padding:16px;box-sizing:border-box;color:var(--theme-text-primary, inherit)}.mm-entity-page__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}.mm-entity-page__titles{display:flex;flex-direction:column;gap:4px;min-width:0}.mm-entity-page__title{margin:0;font-size:1.25rem;font-weight:600;overflow-wrap:anywhere}.mm-entity-page__description,.mm-entity-page__notice{margin:0;color:var(--theme-text-secondary, inherit);opacity:.85}.mm-entity-page__actions,.mm-entity-page__header-actions{display:flex;flex-wrap:wrap;gap:8px}.mm-entity-page__list{flex:1 1 auto;min-height:300px}.mm-entity-page__form{flex:1 1 auto;min-height:0;overflow:auto}.mm-entity-page__state{padding:24px 0;color:var(--theme-text-secondary, inherit)}.mm-entity-page__state--error{color:var(--theme-status-error, inherit)}.mm-entity-page__footer{display:flex;justify-content:flex-end;flex-shrink:0;padding-top:12px;border-top:1px solid var(--theme-border-subtle, rgba(0, 0, 0, .12))}.mm-entity-page__dialog-body{display:flex;flex-direction:column;gap:12px}\n"] }]
|
|
7822
7874
|
}], ctorParameters: () => [], propDecorators: { formKey: [{ type: i0.Input, args: [{ isSignal: true, alias: "formKey", required: false }] }], ckTypeId: [{ type: i0.Input, args: [{ isSignal: true, alias: "ckTypeId", required: false }] }], rtId: [{ type: i0.Input, args: [{ isSignal: true, alias: "rtId", required: false }] }], canWrite: [{ type: i0.Input, args: [{ isSignal: true, alias: "canWrite", required: false }] }], messages: [{ type: i0.Input, args: [{ isSignal: true, alias: "messages", required: false }] }], routerNavigation: [{ type: i0.Input, args: [{ isSignal: true, alias: "routerNavigation", required: false }] }], actionBarPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "actionBarPosition", required: false }] }], labelResolver: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelResolver", required: false }] }], defaultSort: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultSort", required: false }] }], initialValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialValues", required: false }] }], beforeSave: [{ type: i0.Input, args: [{ isSignal: true, alias: "beforeSave", required: false }] }], listToolbarActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "listToolbarActions", required: false }] }], listRowActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "listRowActions", required: false }] }], listRowMenuActions: [{ type: i0.Input, args: [{ isSignal: true, alias: "listRowMenuActions", required: false }] }], editMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "editMode", required: false }] }], listRowClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "listRowClass", required: false }] }], listBooleanDisplay: [{ type: i0.Input, args: [{ isSignal: true, alias: "listBooleanDisplay", required: false }] }], listRowLabelField: [{ type: i0.Input, args: [{ isSignal: true, alias: "listRowLabelField", required: false }] }], navigate: [{ type: i0.Output, args: ["navigate"] }], saved: [{ type: i0.Output, args: ["saved"] }], deleted: [{ type: i0.Output, args: ["deleted"] }], form: [{ type: i0.ViewChild, args: ['entityForm', { isSignal: true }] }], list: [{ type: i0.ViewChild, args: ['entityList', { isSignal: true }] }], listElement: [{ type: i0.ViewChild, args: ['entityList', { ...{ read: ElementRef }, isSignal: true }] }], pageActions: [{ type: i0.ContentChild, args: [i0.forwardRef(() => EntityPageActionsDirective), { isSignal: true }] }] } });
|
|
7823
7875
|
/** The focused element (the dialog's trigger), or `null` outside a browser. */
|
|
7824
7876
|
function activeElement() {
|
|
@@ -7870,7 +7922,7 @@ var entityPage_component = /*#__PURE__*/Object.freeze({
|
|
|
7870
7922
|
* ```
|
|
7871
7923
|
*/
|
|
7872
7924
|
function entityFormRoutes(opts = {}) {
|
|
7873
|
-
const { formKey, ckTypeId, canWrite, messages, breadcrumbUrl, breadcrumbLabel = '{{entityFormTitle}}', newBreadcrumbLabel = 'New', entityBreadcrumbLabel = '{{entityName}}', svgIcon, title, showTypeColumn, defaultSort, actionBarPosition, initialValues, beforeSave, rowClass, editMode, booleanDisplay, rowLabelField, data = {}, } = opts;
|
|
7925
|
+
const { formKey, ckTypeId, canWrite, messages, breadcrumbUrl, breadcrumbLabel = '{{entityFormTitle}}', newBreadcrumbLabel = 'New', entityBreadcrumbLabel = '{{entityName}}', svgIcon, title, showTypeColumn, defaultSort, actionBarPosition, initialValues, beforeSave, rowClass, editMode, booleanDisplay, rowLabelField, openAction, data = {}, } = opts;
|
|
7874
7926
|
const baseData = {
|
|
7875
7927
|
...data,
|
|
7876
7928
|
...(formKey !== undefined && { formKey }),
|
|
@@ -7887,6 +7939,7 @@ function entityFormRoutes(opts = {}) {
|
|
|
7887
7939
|
...(editMode !== undefined && { entityPageEditMode: editMode }),
|
|
7888
7940
|
...(booleanDisplay !== undefined && { entityListBooleanDisplay: booleanDisplay }),
|
|
7889
7941
|
...(rowLabelField !== undefined && { entityListRowLabelField: rowLabelField }),
|
|
7942
|
+
...(openAction !== undefined && { entityListOpenAction: openAction }),
|
|
7890
7943
|
};
|
|
7891
7944
|
const listCrumb = breadcrumbUrl !== undefined
|
|
7892
7945
|
? { label: breadcrumbLabel, url: breadcrumbUrl, ...(svgIcon && { svgIcon }) }
|
|
@@ -7940,5 +7993,5 @@ function entityFormRoutes(opts = {}) {
|
|
|
7940
7993
|
* Generated bundle index. Do not edit.
|
|
7941
7994
|
*/
|
|
7942
7995
|
|
|
7943
|
-
export { BUILT_IN_DEFAULT_FORM, DEFAULT_ENTITY_FORMS_MESSAGES, DEFAULT_GENERATED_SECTION_TITLE, DEFAULT_SECTION_KEY, ENTITY_FORM_ACTION_CONFIRMATION, ENTITY_FORM_BEFORE_SAVE, ENTITY_FORM_DANGER_CONFIRMATION, ENTITY_FORM_FALLBACK_FORMS, ENTITY_FORM_LABEL_RESOLVER, ENTITY_FORM_SECRET_KEY_RING_CONFIGURED, ENTITY_FORM_SECRET_PLACEHOLDER_VALUES, ENTITY_FORM_UNSET_PLACEHOLDER_VALUES, ENTITY_LIST_ROW_CLASS, ENTITY_PAGE_NEW, ENTITY_PAGE_TYPE_QUERY_PARAM, EntityFormComponent, EntityFormDataService, EntityFormRecordsFieldComponent, EntityFormReferenceFieldComponent, EntityFormSaveVeto, EntityFormSecretEditorComponent, EntityFormService, EntityListComponent, EntityListDataSourceDirective, EntityPageActionsDirective, EntityPageComponent, GENERATED_SECTION_KEY, SYSTEM_PROPERTIES, associationFieldKey, associationRoleName, autoEditorFor, buildChangeSet, canonicaliseEntityFormPrefill, canonicalisePath, ckTypeDisplayName, ckTypeShortName, confirmEntityFormAction, confirmEntityFormDanger, entityDeleteConfirmation, entityFormCatalog, entityFormKey, entityFormPrefillState, entityFormRoutes, entityFormTypeTitles, entityFormUnsetPlaceholderFields, entityFormUnsetPlaceholderLookup, entityListAttributeNames, entityListIncludesDerivedTypes, formatEntityFormsMessage, humanizeCkTypeName, isChainEndForm, isEditorCompatible, isEntityFormSaveVeto, isEntityFormUnsetPlaceholder, isSecretMetaData, isVisible, localizeEntityForm, localizeEntityFormTitle, localizeEntityListColumns, mergeEntityFormPrefill, mergeEntityFormsMessages, parseDefault, parseEntityForm, parseEntityForms, parseVisibleWhen, pickEntityForm, provideEntityFormFallbacks, resolveEntityForm, resolveEntityFormLabel, resolveListDefaultSort, runEntityFormBeforeSave, secretMetaDataMarker, secretStatusLabelsOf, selectFallbackForms, shortTypeName, toAttributeInputs, toCkRecordInfo, toCkTypeInfo, toEntityListColumn, toEntityListRow, toFormValue, toKebabTypeKey, toListViewRowClass, withFallbackForms };
|
|
7996
|
+
export { BUILT_IN_DEFAULT_FORM, DEFAULT_ENTITY_FORMS_MESSAGES, DEFAULT_GENERATED_SECTION_TITLE, DEFAULT_SECTION_KEY, ENTITY_FORM_ACTION_CONFIRMATION, ENTITY_FORM_BEFORE_SAVE, ENTITY_FORM_DANGER_CONFIRMATION, ENTITY_FORM_FALLBACK_FORMS, ENTITY_FORM_LABEL_RESOLVER, ENTITY_FORM_SECRET_KEY_RING_CONFIGURED, ENTITY_FORM_SECRET_PLACEHOLDER_VALUES, ENTITY_FORM_UNSET_PLACEHOLDER_VALUES, ENTITY_LIST_ROW_CLASS, ENTITY_PAGE_NEW, ENTITY_PAGE_TYPE_QUERY_PARAM, EntityFormComponent, EntityFormDataService, EntityFormRecordsFieldComponent, EntityFormReferenceFieldComponent, EntityFormSaveVeto, EntityFormSecretEditorComponent, EntityFormService, EntityListComponent, EntityListDataSourceDirective, EntityPageActionsDirective, EntityPageComponent, GENERATED_SECTION_KEY, SYSTEM_PROPERTIES, associationFieldKey, associationRoleName, autoEditorFor, buildChangeSet, canonicaliseEntityFormPrefill, canonicalisePath, ckTypeDisplayName, ckTypeShortName, confirmEntityFormAction, confirmEntityFormDanger, entityDeleteConfirmation, entityFormCatalog, entityFormKey, entityFormPrefillState, entityFormRoutes, entityFormTypeTitles, entityFormUnsetPlaceholderFields, entityFormUnsetPlaceholderLookup, entityListAttributeNames, entityListCreateLabel, entityListIncludesDerivedTypes, formatEntityFormsMessage, humanizeCkTypeName, isChainEndForm, isEditorCompatible, isEntityFormSaveVeto, isEntityFormUnsetPlaceholder, isSecretMetaData, isVisible, localizeEntityForm, localizeEntityFormTitle, localizeEntityListColumns, mergeEntityFormPrefill, mergeEntityFormsMessages, parseDefault, parseEntityForm, parseEntityForms, parseVisibleWhen, pickEntityForm, provideEntityFormFallbacks, resolveEntityForm, resolveEntityFormLabel, resolveListDefaultSort, runEntityFormBeforeSave, secretMetaDataMarker, secretStatusLabelsOf, selectFallbackForms, shortTypeName, toAttributeInputs, toCkRecordInfo, toCkTypeInfo, toEntityListColumn, toEntityListRow, toFormValue, toKebabTypeKey, toListViewRowClass, withFallbackForms };
|
|
7944
7997
|
//# sourceMappingURL=meshmakers-octo-ui-entity-forms.mjs.map
|