Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Basic Setup Wizard / Admin UI #2057

Merged
merged 155 commits into from
Dec 13, 2023
Merged
Show file tree
Hide file tree
Changes from 143 commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
e52a160
basic initial entity config admin ui
sleidig Oct 26, 2023
2aaa83d
refactor(core): implement RoutedViewComponent to generalize loading o…
sleidig Oct 28, 2023
c103ee9
Merge branch 'routed-view' into setup-field-config
sleidig Oct 28, 2023
ad8ef3a
simplify and polish the basic entity admin ui
sleidig Oct 28, 2023
143463d
avoid innerDataType
sleidig Oct 28, 2023
eda4778
basic field config admin ui
sleidig Oct 28, 2023
e9e40e3
basic drag & drop form admin ui
sleidig Oct 28, 2023
d1cb4e9
feat(export): export only human-readable fields and use better header…
brajesh-lab Oct 31, 2023
47de3e7
basic create new field + hide fields
sleidig Nov 3, 2023
f97a631
options to select entity-type as additional
sleidig Nov 6, 2023
4a6900d
human-readable dataType labels
sleidig Nov 6, 2023
2e28d3d
feat(*): allow to export only displayed, filtered data (#2059)
brajesh-lab Nov 6, 2023
05c6b15
feat(*): duplicate records from list views (#2042)
brajesh-lab Nov 6, 2023
c10c49a
refactor: lint check for prettier formatting (#2039)
rudresh Nov 6, 2023
6a1ef72
pass schemaField into config popup only
sleidig Nov 7, 2023
b6a0360
Merge branch 'master' into setup-field-config
sleidig Nov 7, 2023
4345d24
correctly add a new field's schema
sleidig Nov 8, 2023
8501529
fix(core): support "required" indicator for custom form-controls
sleidig Nov 8, 2023
dd4800c
form validity for entity schema field
sleidig Nov 8, 2023
91c3f76
drag&drop tweaks
sleidig Nov 8, 2023
4e684f4
Merge branch 'master' into setup-field-config
sleidig Nov 8, 2023
8dc785b
drag&drop design
sleidig Nov 8, 2023
8788d28
test fixes and cleanups
sleidig Nov 8, 2023
cc9b584
fix invalid hidden "additional" field
sleidig Nov 13, 2023
09bc2bd
auto-generate initial field id
sleidig Nov 13, 2023
4c0f222
code simplification additional
sleidig Nov 13, 2023
892205d
simplify UX for labelShort
sleidig Nov 13, 2023
0464eee
allow creating of new dropdown options id
sleidig Nov 13, 2023
9172ab1
fix(ui): tooltip explaining disabled report calculation button (#2072)
sleidig Nov 13, 2023
f4f8525
fix: panels are only initialized once (#2071)
TheSlimvReal Nov 13, 2023
fbe1435
deps: upgrade multiple dependencies with Snyk (#2070)
sleidig Nov 13, 2023
95412de
build(deps-dev): bump axios from 1.5.1 to 1.6.1 (#2074)
dependabot[bot] Nov 13, 2023
9b5803d
refactor: remove custom implementation for activities-overview
sleidig Nov 10, 2023
73e293e
fix(core): subrecord lists update for external changes in real-time
sleidig Nov 10, 2023
09c78b5
fix: support avg queries (#2026)
TheSlimvReal Nov 14, 2023
88a739c
Merge remote-tracking branch 'origin/master' into setup-field-config
sleidig Nov 15, 2023
a6dfd95
Merge branch 'master' into setup-field-config
sleidig Nov 19, 2023
33f4f32
Merge branch 'master' into setup-field-config
sleidig Nov 19, 2023
e56f294
add save for updated config
sleidig Nov 21, 2023
086e74a
Merge branch 'master' into setup-field-config
sleidig Nov 21, 2023
7865589
Merge branch 'master' into setup-field-config
sleidig Nov 23, 2023
e619aa5
change entity.attributes config structure
sleidig Nov 23, 2023
fd9063a
change FormConfig.fieldGroups config structure
sleidig Nov 24, 2023
5917075
refactor(core): change FormConfig structure to use .fieldGroups inste…
sleidig Nov 24, 2023
e9968fe
refactor(core): change EntityConfig to flattened structure with Entit…
sleidig Nov 23, 2023
9753483
fix tests
sleidig Nov 27, 2023
286a9c8
refactor EntityFormComponent to use new config structure too
sleidig Nov 27, 2023
45dcf33
Merge branch 'master' into form-config
sleidig Nov 27, 2023
04cda0d
config-fix sample
sleidig Nov 27, 2023
1b8e72c
fix circular dep
sleidig Nov 27, 2023
6136eb0
note header fields layout
sleidig Nov 27, 2023
3751634
Merge branch 'master' into setup-field-config
sleidig Nov 27, 2023
d6c7220
Merge branch 'entity-config' into setup-field-config
sleidig Nov 27, 2023
cc1b652
Merge branch 'form-config' into setup-field-config
sleidig Nov 27, 2023
2d6b4ff
make save work
sleidig Nov 27, 2023
2a9c536
keep new format unchanged from migration
sleidig Nov 27, 2023
13c12a6
Merge branch 'master' into form-config
sleidig Nov 27, 2023
9b77484
Merge branch 'form-config' into setup-field-config
sleidig Nov 27, 2023
9ee06ff
fix error and duplication for required indicator update in custom for…
sleidig Nov 27, 2023
0c0d162
fix test after note schema update
sleidig Nov 27, 2023
8c0f405
no unnecessary statechanges.next
sleidig Nov 27, 2023
2d1da56
start fixing tests
sleidig Nov 28, 2023
15f0ca7
clean up note-details changes
sleidig Nov 28, 2023
c63d5b7
config migrations during load instead of get
sleidig Nov 28, 2023
a53c8f8
simplify form-service + FormFieldConfig
sleidig Nov 28, 2023
59b63bd
align FormFieldConfig and EntitySchemaConfig
sleidig Nov 28, 2023
01e28d1
migrate from old FormFieldConfig format
sleidig Nov 28, 2023
8c52319
fix entity-subrecord with new entity-form-service logic
sleidig Nov 28, 2023
8018712
remove component config interfaces (as the component @Inputs can dire…
sleidig Nov 28, 2023
b25b63b
Merge branch 'master' into form-config
sleidig Nov 29, 2023
9cfdbad
Merge branch 'form-config' into setup-field-config
sleidig Nov 29, 2023
dc03a79
show available unused fields from schema to easily add to form
sleidig Nov 29, 2023
bd70f77
add support for editing panel-components / sections
sleidig Nov 29, 2023
73535a4
add support for editing panel-components / sections
sleidig Nov 29, 2023
7903ef6
cleaned up some code
TheSlimvReal Nov 30, 2023
3c3e2f5
Update src/app/core/common-components/entity-form/entity-form.service.ts
sleidig Nov 30, 2023
46d8acb
Update src/app/core/common-components/entity-form/entity-form.service.ts
sleidig Nov 30, 2023
a6c39bc
simplify ConfigMigration interface
sleidig Nov 30, 2023
7137c26
use form-field-component in subrecord
sleidig Nov 30, 2023
9b17965
improve migration test for editComponent
sleidig Nov 30, 2023
94ddcf2
simplify dynamic-component interface
sleidig Nov 30, 2023
d36e957
do tooltip forTable logic in entity-form.service
sleidig Nov 30, 2023
b958615
remove unused file
sleidig Nov 30, 2023
73d9ff4
introducing a form-field-label component parallel to form-field compo…
sleidig Nov 30, 2023
1f7ca65
fix subrecord tests
sleidig Dec 1, 2023
f5a75b5
remove unnecessary extendSchema from entity-subrecord (!!!)
sleidig Dec 1, 2023
02a66f7
Update src/app/core/common-components/entity-form/form-field-label/fo…
sleidig Dec 1, 2023
0aefedd
remove unneccesary propertySchema input from EditComponent
sleidig Dec 1, 2023
49a99ff
fix isActive field
sleidig Dec 1, 2023
1f3d921
revert to filtering fields when creating form
sleidig Dec 1, 2023
e3702ca
update config and docs
sleidig Dec 1, 2023
70d4ceb
fix automatic sort order detection
sleidig Dec 1, 2023
7fc75ae
rename and split field-edit and field-view components
sleidig Dec 1, 2023
8064568
fix lint
sleidig Dec 1, 2023
0f8a5cd
Merge branch 'form-config' into setup-field-config
sleidig Dec 1, 2023
5c224ed
fix test
sleidig Dec 1, 2023
e93a1c1
move css for tooltip layout
sleidig Dec 1, 2023
7552f24
move css for tooltip layout
sleidig Dec 1, 2023
a7d7254
Merge branch 'form-config' into setup-field-config
sleidig Dec 1, 2023
f404b3b
adapt test
sleidig Dec 1, 2023
404e57b
Merge branch 'master' into setup-field-config
sleidig Dec 4, 2023
b898c0d
fix test
sleidig Dec 4, 2023
a6097f5
fix lint
sleidig Dec 4, 2023
d822ffa
editing of tabs
sleidig Dec 4, 2023
a61d8d5
update saving of config after refactorings
sleidig Dec 4, 2023
f85ebba
fix route update error
sleidig Dec 5, 2023
bda1c36
update preview field after editing in popup
sleidig Dec 5, 2023
33f3b8d
allow undo of config change save
sleidig Dec 5, 2023
bf27c1f
Update src/app/core/basic-datatypes/date-with-age/date-with-age.datat…
sleidig Dec 5, 2023
9c20628
Update src/app/core/config-ui/config-field/config-field.component.html
sleidig Dec 5, 2023
cdd0c92
Update src/app/core/config-ui/config-entity-form/config-entity-form.c…
sleidig Dec 5, 2023
2f3fcc4
Update src/app/core/config-ui/config-field/config-field.component.ts
sleidig Dec 5, 2023
cc8549b
Update src/app/core/basic-datatypes/string/long-text.datatype.ts
sleidig Dec 5, 2023
07bd4c4
Merge branch 'master' into setup-field-config
sleidig Dec 5, 2023
fe58c49
code cleanups
sleidig Dec 5, 2023
bd5705a
Update src/app/core/config-ui/config-entity/config-entity.component.html
sleidig Dec 6, 2023
d539b90
handle schema updates to trigger change detection and revert changes …
sleidig Dec 6, 2023
92bc91c
fix adding available/new fields
sleidig Dec 6, 2023
36e9362
make datatypes more lenient handling invalid data, in case a user cha…
sleidig Dec 6, 2023
8dccca0
fixed test for automatic ID generation
TheSlimvReal Dec 7, 2023
0efcc35
simplify enum settings logic and add option to edit enum values
sleidig Dec 7, 2023
134958b
merge id generation functions
sleidig Dec 7, 2023
3487857
fix tests for new datatypes
sleidig Dec 7, 2023
9a06bcf
fix tests
sleidig Dec 7, 2023
c2e06e6
removed unused code
sleidig Dec 7, 2023
7a8b6cb
only show admin entity button if user has permission
sleidig Dec 7, 2023
5bb33d7
additional tests
sleidig Dec 7, 2023
e76ceef
tests for config-entity-form
sleidig Dec 8, 2023
b6c2066
tests for config-entity
sleidig Dec 8, 2023
238691d
fixed and simplified tests
sleidig Dec 8, 2023
b643a0c
Update src/app/child-dev-project/attendance/model/event-attendance.ts
sleidig Dec 8, 2023
692bb67
revert karma.conf changes
sleidig Dec 8, 2023
e93523e
refactor: move & rename all admin module stuff
sleidig Dec 8, 2023
104e36b
code cleanups from review
sleidig Dec 8, 2023
827065a
use able pipe from library
sleidig Dec 8, 2023
1cf09a8
last fixes & cleanups
sleidig Dec 8, 2023
1585705
improve enum edit button
sleidig Dec 8, 2023
1ae1176
correct export of config as json
sleidig Dec 8, 2023
958805d
Merge branch 'master' into setup-field-config
sleidig Dec 8, 2023
e3c4da8
fix new field being added to form + available fields both
sleidig Dec 8, 2023
7408e5f
permissions for admin routes (TODO: hide button from entity-details i…
sleidig Dec 8, 2023
3846da4
further renaming
sleidig Dec 8, 2023
3c28a99
use labelShort for id generation if available
sleidig Dec 8, 2023
dbdb124
removed unnecessary code
TheSlimvReal Dec 9, 2023
8d6ce6a
avoid errors with invalid dates
sleidig Dec 11, 2023
f35684b
revert wrong renaming
sleidig Dec 11, 2023
83cf6f7
give standard demo user permission to access admin ui
sleidig Dec 11, 2023
3f379ec
user-role-guard can handle nested child routes for pre-check
sleidig Dec 11, 2023
f4b4c7c
move RouteTarget to own file
sleidig Dec 11, 2023
03dea01
new EntityPermissionGuard to check for EntityAbility
sleidig Dec 11, 2023
0666ee9
better route guards for admin module
sleidig Dec 11, 2023
f5da706
fix test
sleidig Dec 11, 2023
a479678
fix demo mode
TheSlimvReal Dec 11, 2023
05e4e43
Merge branch 'master' into setup-field-config
sleidig Dec 13, 2023
5f4f1c9
hide date (date with time) datatype
sleidig Dec 13, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/app/app-initializers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export const appInitializers = {
loginState: LoginStateSubject,
) =>
async () => {
// Re-trigger services that depend on the config when something changes
// Re-trigger backup that depend on the config when something changes
sleidig marked this conversation as resolved.
Show resolved Hide resolved
configService.configUpdates.subscribe(() => {
routerService.initRouting();
entityConfigService.setupEntitiesFromConfig();
Expand Down
6 changes: 0 additions & 6 deletions src/app/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ import {
import { AttendanceModule } from "./child-dev-project/attendance/attendance.module";
import { NotesModule } from "./child-dev-project/notes/notes.module";
import { SchoolsModule } from "./child-dev-project/schools/schools.module";
import { ConflictResolutionModule } from "./features/conflict-resolution/conflict-resolution.module";
import { HistoricalDataModule } from "./features/historical-data/historical-data.module";
import { MatchingEntitiesModule } from "./features/matching-entities/matching-entities.module";
import { ProgressDashboardWidgetModule } from "./features/dashboard-widgets/progress-dashboard-widget/progress-dashboard-widget.module";
Expand All @@ -87,9 +86,7 @@ import { ImportModule } from "./core/import/import.module";
import { ShortcutDashboardWidgetModule } from "./features/dashboard-widgets/shortcut-dashboard-widget/shortcut-dashboard-widget.module";
import { EntityCountDashboardWidgetModule } from "./features/dashboard-widgets/entity-count-dashboard-widget/entity-count-dashboard-widget.module";
import { BirthdayDashboardWidgetModule } from "./features/dashboard-widgets/birthday-dashboard-widget/birthday-dashboard-widget.module";
import { ConfigSetupModule } from "./features/config-setup/config-setup.module";
import { MarkdownPageModule } from "./features/markdown-page/markdown-page.module";
import { AdminModule } from "./features/admin/admin.module";
import { LoginStateSubject } from "./core/session/session-type";

/**
Expand Down Expand Up @@ -123,10 +120,7 @@ import { LoginStateSubject } from "./core/session/session-type";
NotesModule,
SchoolsModule,
// feature module
ConflictResolutionModule,
AdminModule,
ImportModule,
ConfigSetupModule,
FileModule,
MarkdownPageModule,
HistoricalDataModule,
Expand Down
10 changes: 10 additions & 0 deletions src/app/app.routing.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { UserAccountComponent } from "./core/user/user-account/user-account.comp
import { SupportComponent } from "./core/support/support/support.component";
import { AuthGuard } from "./core/session/auth.guard";
import { LoginComponent } from "./core/session/login/login.component";
import { UserRoleGuard } from "./core/permissions/permission-guard/user-role.guard";

/**
* Marks a class to be the target when routing.
Expand Down Expand Up @@ -60,6 +61,15 @@ export const allRoutes: Routes = [
(c) => c.PublicFormComponent,
),
},
{
path: "admin",
loadChildren: () =>
import("./core/admin/admin.module").then((m) => m.AdminModule),
canActivate: [UserRoleGuard],
data: {
permittedUserRoles: ["admin_app"],
},
},
{ path: "login", component: LoginComponent },
{ path: "404", component: NotFoundComponent },

Expand Down
12 changes: 11 additions & 1 deletion src/app/child-dev-project/attendance/attendance.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,18 @@ import { ComponentRegistry } from "../../dynamic-components";
import { attendanceComponents } from "./attendance-components";
import { RecurringActivity } from "./model/recurring-activity";
import { EventNote } from "./model/event-note";
import { DefaultDatatype } from "../../core/entity/default-datatype/default.datatype";
import { EventAttendanceDatatype } from "./model/event-attendance.datatype";

@NgModule({})
@NgModule({
providers: [
{
provide: DefaultDatatype,
useClass: EventAttendanceDatatype,
multi: true,
},
],
})
export class AttendanceModule {
static databaseEntities = [RecurringActivity, EventNote];

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { testDatatype } from "../../../core/entity/schema/entity-schema.service.spec";
import { EventAttendanceDatatype } from "./event-attendance.datatype";
import { EventAttendance } from "./event-attendance";
import { defaultAttendanceStatusTypes } from "../../../core/config/default-config/default-attendance-status-types";
import { DefaultDatatype } from "../../../core/entity/default-datatype/default.datatype";
import { StringDatatype } from "../../../core/basic-datatypes/string/string.datatype";
import { ConfigurableEnumDatatype } from "../../../core/basic-datatypes/configurable-enum/configurable-enum-datatype/configurable-enum.datatype";
import { ConfigurableEnumService } from "../../../core/basic-datatypes/configurable-enum/configurable-enum.service";

describe("Schema data type: event-attendance", () => {
testDatatype(
EventAttendanceDatatype,
new EventAttendance(defaultAttendanceStatusTypes[0], "test remark"),
{
status: defaultAttendanceStatusTypes[0].id,
remarks: "test remark",
},
undefined,
[
{ provide: DefaultDatatype, useClass: StringDatatype, multi: true },
{
provide: DefaultDatatype,
useClass: ConfigurableEnumDatatype,
multi: true,
},
{
provide: ConfigurableEnumService,
useValue: { getEnumValues: () => defaultAttendanceStatusTypes },
},
],
);
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { Injectable } from "@angular/core";
import { SchemaEmbedDatatype } from "../../../core/basic-datatypes/schema-embed/schema-embed.datatype";
import { EntitySchemaService } from "../../../core/entity/schema/entity-schema.service";
import { EntityConstructor } from "../../../core/entity/model/entity";
import { EventAttendance } from "./event-attendance";

@Injectable()
export class EventAttendanceDatatype extends SchemaEmbedDatatype {
static override dataType = EventAttendance.DATA_TYPE;

override embeddedType = EventAttendance as unknown as EntityConstructor;

constructor(schemaService: EntitySchemaService) {
super(schemaService);
}
sleidig marked this conversation as resolved.
Show resolved Hide resolved
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import { DatabaseField } from "../../../core/entity/database-field.decorator";
* TODO overwork this concept to either be a sublass of Entity or not (at the moment it uses a lot of casting, e.g. to be used in the entity subrecord)
*/
export class EventAttendance {
static DATA_TYPE = "event-attendance";

private _status: AttendanceStatusType;
@DatabaseField({
dataType: "configurable-enum",
Expand Down
3 changes: 1 addition & 2 deletions src/app/child-dev-project/notes/model/note.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,7 @@ export class Note extends Entity {
* No direct access to change this property. Use the `.getAttendance()` method to have safe access.
*/
@DatabaseField({
innerDataType: "schema-embed",
additional: EventAttendance,
innerDataType: EventAttendance.DATA_TYPE,
anonymize: "retain",
})
private childrenAttendance: Map<string, EventAttendance> = new Map();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
<h2 mat-dialog-title i18n>Configure Field "{{ entitySchemaField.label }}"</h2>
<app-dialog-close mat-dialog-close></app-dialog-close>

<mat-dialog-content>
<p i18n>
The field settings here apply to the record type overall and affect both the
field here in the current view as well as all other forms and lists where
this field is displayed.
</p>

<form [formGroup]="form">
<mat-tab-group formGroupName="schemaFields">
<mat-tab label="Basics" i18n-label>
<div class="grid-layout margin-top-regular">
<div class="entity-form-cell">
<mat-form-field>
<mat-label>Label</mat-label>
<input formControlName="label" matInput #formLabel />
</mat-form-field>

<mat-form-field floatLabel="always">
<mat-label>
Label (short)
<fa-icon
icon="question-circle"
matTooltip="Optionally you can define an additional shorter label to be displayed in table headers and other places where space is limited."
i18n-matTooltip
></fa-icon>
</mat-label>
<input
formControlName="labelShort"
matInput
[placeholder]="formLabel.value"
/>
</mat-form-field>

<mat-form-field>
<mat-label i18n>
Description
<fa-icon
icon="question-circle"
matTooltip="The description provides additional explanation or context about this field. It is usually displayed as a help icon with tooltip."
i18n-matTooltip
></fa-icon>
</mat-label>
<textarea
formControlName="description"
matInput
rows="3"
></textarea>
</mat-form-field>
</div>

<div class="entity-form-cell">
<mat-form-field>
<mat-label i18n>
Field ID (readonly)
<fa-icon
icon="question-circle"
matTooltip="The internal ID of the field is used at a technical level in the database. The ID cannot be changed after the field has been created."
i18n-matTooltip
></fa-icon>
</mat-label>
<input [formControl]="fieldIdForm" matInput />
<fa-icon
*ngIf="fieldIdForm.disabled"
icon="lock"
matSuffix
></fa-icon>
<mat-error *ngIf="fieldIdForm.hasError('uniqueId')">
{{ fieldIdForm.getError("uniqueId") }}
</mat-error>
</mat-form-field>

<mat-form-field>
<mat-label>Type</mat-label>
<app-basic-autocomplete
formControlName="dataType"
#formDataType
[options]="dataTypes"
[optionToString]="objectToLabel"
[valueMapper]="objectToValue"
></app-basic-autocomplete>
</mat-form-field>

<!-- "additional" for enum datatype -->
<mat-form-field
*ngIf="
typeAdditionalOptions &&
formDataType.value === 'configurable-enum'
"
>
<mat-label i18n>
Type Details (dropdown options set)
<fa-icon
icon="question-circle"
matTooltip="Select an existing set of options to share between multiple fields or create a new, independent list of dropdown options."
i18n-matTooltip
></fa-icon>
</mat-label>

<app-basic-autocomplete
formControlName="additional"
[options]="typeAdditionalOptions ?? []"
[optionToString]="objectToLabel"
[valueMapper]="objectToValue"
[createOption]="createNewAdditionalOption"
></app-basic-autocomplete>

<button
mat-icon-button
matSuffix
(click)="openEnumOptions($event)"
>
<fa-icon icon="wrench"></fa-icon>
</button>
</mat-form-field>

<!-- "additional" for entity ref datatypes -->
<mat-form-field
*ngIf="
(typeAdditionalOptions && formDataType.value === 'entity') ||
formDataType.value === 'entity-array'
"
>
<mat-label i18n>
Type Details (target record type)
<fa-icon
icon="question-circle"
matTooltip="Select from which type of records the user can select and link to with this field."
i18n-matTooltip
></fa-icon>
</mat-label>

<app-basic-autocomplete
formControlName="additional"
[options]="typeAdditionalOptions ?? []"
[optionToString]="objectToLabel"
[valueMapper]="objectToValue"
[createOption]="createNewAdditionalOption"
></app-basic-autocomplete>
</mat-form-field>
</div>
</div>
</mat-tab>

<!--
ADVANCED SETTINGS
-->
<mat-tab
label="Advanced Options & Validation [COMING SOON]"
i18n-label
[disabled]="true"
>
<div class="grid-layout margin-top-regular">
<div class="entity-form-cell">
<mat-form-field>
<mat-label>Default Value</mat-label>
<input formControlName="defaultValue" matInput />
</mat-form-field>

<mat-form-field>
<mat-label>Anonymize</mat-label>
<input formControlName="anonymize" matInput />
</mat-form-field>

<mat-form-field>
<mat-label>Searchable</mat-label>
<input formControlName="searchable" matInput />
</mat-form-field>
</div>

<div class="entity-form-cell">
<mat-form-field>
<mat-label>Field Validation</mat-label>
<input formControlName="validators" matInput />
</mat-form-field>
</div>
</div>
</mat-tab>
</mat-tab-group>
</form>
</mat-dialog-content>

<mat-dialog-actions>
<button mat-button (click)="save()">Save</button>
<button mat-button mat-dialog-close>Cancel</button>
</mat-dialog-actions>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
@use "../../../../../styles/mixins/grid-layout";

.grid-layout {
@include grid-layout.adaptive(
$min-block-width: 250px,
$max-screen-width: 414px
);
}
Loading
Loading